论文阅读笔记:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
原文:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007
模型目的:
传统的multi-task model:有一个shared hidden layers对于所有的tasks,再有不同的hidden layer for 不同的task。但如果2个tasks相差太大,比如一个predict猫狗,一个predict房子,那么相关的features就会不一样,shared hidden layers就会很难训练。而在实际应用中,也很难区分两个task到底是相似还是不相似——这就为share hidden layers的训练造成了困难。
主要创新:
让模型自己来区分要share什么features。把features分成a group of bottom network(每一个bottom network叫做expert),再加一层weight gate,将每一个bottom network经过gate之后的weighted sum加起来,成为每个prediction task的input。
实现细节:
num_experts, number of units per experts都是传给模型的参数。
先算expert层的
- Initial experts的weight: 初始化shape是(number of input features, number of units per expert, number of experts)
- Initial experts的bias的shape: (number of units per expert, number of experts)
- expert层的output则是:ReLu(W_expert * inputs + B_expert)
对于每一个task的gate,计算每个gate的output:
- gate weight的初始shape是:(number of input features, number of experts, number of tasks)
- gate bias的初始shape是(number of experts * number of tasks)
- gate层的output是 softmax(W_gate*inputs + B_gate)
对于每个一个task:
- expert output和对应的gate output相乘
- 加权平均得到最终task的output
实验结果: