一种挖掘任务之间关系的multi-task模型

今天的博客主要参考了2018年KDD会议上的paper《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》,提出了一种针对multi-task的通用处理架构。
话不多说,直接上图:
在这里插入图片描述
图中有a,b,c三种网络结构,其中网络a就是传统的multi-task结构,即两个不同的任务共享底层的特征表征Embedding部分网络结构信息,网络上层针对不同的应用使用不同的网络参数进行训练优化;b是单gate的multi-task网络结构,其中的expert 0,expert 1和expert 2其实都是神经网络单元(比方说多层的全连接网络等,这个和具体任务相关),所有的任务共享这部分网络参数;c是就是本篇文章提出的multi-task的网络结构,其中gate的数量和最终的目标数量是一致的,输出的内容是一个和expert个数一致的归一化向量,即针对不同的任务会有不同的expert权重配比。

那么问题就来了,既然已经有了图a中的网络(之前看到过的很多paper里都是这样用的),为什么要提出多gate的新网络结构呢?是因为作者发现当目标任务之间的相关性比较高的时候图a中的网络训练之后的效果是不错的;但是当目标任务之间的相关性下降的时候,图a中网络结构的效果下降的非常厉害。这就是说明了对目标任务关系之间的合理建模将对最终multi-task模型产生直接其较大的影响。

其实c中模型结构的计算公式是非常简单的:
y k = h k ( f k ( x ) ) y_k=h^k(f^k(x)) yk=hk(fk(x)) 其中 h k h^k hk是图中的Tower部分完网络参数
f k ( x ) = ∑ i = 1 n g k ( x ) i f i ( x ) f^k(x)=\sum_{i=1}^n g^k(x)_if_i(x) fk(x)=i=1ngk(x)ifi(x)
其中 g k ( x ) = s o f t m a x ( W g k x ) g^k(x)=softmax(W_{gk}x) gk(x)=softmax(Wgkx)
g k g^k gk就是图中的gate, f i f_i fi就是 e x p e r t i expert_i experti
到这里,其实整个模型已经介绍完了,下面就来讲一下作者做的一系列对比实验。

首先可能大家比较好奇的是,既然这篇paper说提出的模型在不相关的任务上也能有比较好的效果,其实如何知道2个不同的目标任务之间的相关性呢?(虽然业务上相似的任务会比业务上不相似的任务具有更好的相关性,但这只是一个定性的概念,如何定量的衡量显然是一个不小的困难)。这里作者采用了一种比较巧的方法,即自己构造了两批回归问题场景下使用的数据,既然是自己构造的,那么任务之间的相关性就可以随意指定了,构造过程如下:
(1) 假设目标任务的输入特征维度为d,首先随机生成2个正交单位向量 u 1 u_1 u1 u 2 u_2 u2,保证
u 1 T u 2 = 0 u_1^T u_2=0 u1Tu2=0 ∣ ∣ u 1 ∣ ∣ 2 = 1 ||u_1||_2=1 u12=1 ∣ ∣ u 2 ∣ ∣ 1 = 1 ||u_2||_1=1 u21=1
(2) 用户输入一个常量值 c c c和目标任务之间的相关性 − 1 &lt; = p &lt; = 1 -1&lt;=p&lt;=1 1<=p<=1,生成2个权重向量 w 1 w_1 w1 w 2 w_2 w2 w 1 = c u 1 w_1=cu_1 w1=cu1, w 2 = c ( p u 1 + ( 1 − p 2 ) u 2 ) w_2=c(pu_1+\sqrt{(1-p^2)u_2}) w2=c(pu1+(1p2)u2 )
(3) 随机生成d维向量x,其每一维度值都按照分布 N ( 0 , 1 ) N(0,1) N(0,1)产生;
(4) 生成2个回归任务的y值
y 1 = w 1 T x + ∑ i = 1 m s i n ( α i w 1 T x + β i ) + γ 1 y_1=w_1^Tx+\sum_{i=1}^msin(\alpha_iw_1^Tx+\beta_i)+\gamma_1 y1=w1Tx+i=1msin(αiw1Tx+βi)+γ1
y 2 = w 2 T x + ∑ i = 1 m s i n ( α i w 2 T x + β i ) + γ 2 y_2=w_2^Tx+\sum_{i=1}^msin(\alpha_iw_2^Tx+\beta_i)+\gamma_2 y2=w2Tx+i=1msin(αiw2Tx+βi)+γ2
其中 α i , β i 和 m \alpha_i,\beta_i和m αi,βim是用户给定的参数, γ 1 \gamma_1 γ1 γ 2 \gamma_2 γ2是加入的噪声变量,从分布 N ( 0 , 0.01 ) N(0,0.01) N(0,0.01)产生。
重复步骤(1)-(4)产生足够的样本数据,最终通过不同相关性任务下的对比实验,得到以下结果:
在这里插入图片描述
图中的MMOE就是本篇提出的多gate模型,OMoE是单gate模型,shared-Bottom就是共享底层特征表示的模型。

从图中可以看出越是相关性低的任务,MMOE模型领先的优势越明显。
同时为了探索不同结构对训练过程收敛速度的影响,作者通过大量的对比实验得到了以下的结果图像:
在这里插入图片描述
横轴代表了训练过程中能够到达最低的误差值,纵轴代表了百分比,即有百分之多少的实验能够收敛到这个误差值。可以看出在大部分的实验中MMOE相比于其他两种结构能更高概率收敛到这个误差值,进一步说明了这种多gate结构在multi-task任务中的合理性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值