论文阅读笔记: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

实验结果:

--

--

No responses yet