多任务模型SNR:Sub-Network Routing for Flexible Parameter Sharing in Multi-Task Learni

497 阅读3分钟

Sub-Network Routing for Flexible Parameter Sharing in Multi-Task Learning

论文地址:ojs.aaai.org/index.php/A…

MMoE存在的问题

MMoE示意图: 在这里插入图片描述 MMoE虽然用多个门控网络解决了多个任务之间的耦合和差异问题,使得模型能较好的处理不同相关性的任务,但是MMoE里面的多个expert相互之间没有交互,这限制了模型的进一步表达。

SNR的改进之处

SNR示意图: 在这里插入图片描述 SNR将exper进行了细粒度的拆分,拆分为多层,每层由多个子网络组成。低层的子网络和高层的子网络的连接信息(路由)是由一组二值变量编码来控制的,如果变量值为0,则表示这个子网络和上层子网络没有路由连接,如果为1,则表示有路由连接。路由越多,越接近share-bottom的多任务结构,路由越少,越接近2个单独的多任务结构。同时,各个子网络之间的交互连接,也进一步提高了多个任务的精度,这就是论文说的“灵活的参数共享”。

其中论文提出2种SNR,一种是高层和低层相互连接路由的SNR-Trans,一种是高层子网络都是由底层子网络加权求和得到的SNR-Aver。

具体做法

假设有2层,高层有2个子网络,低层有3个子网络。u1\mathbf u_1,u2\mathbf u_2,u3\mathbf u_3表示低层子网络的输出,v1\mathbf v_1,v2\mathbf v_2表示高层子网络的输入,z\mathbf z表示二值编码变量zij{0,1}z_{ij} \in \{0, 1\}Wij\mathbf W_{ij}表示底层子网络和高层子网络的连接转换矩阵。

在这里插入图片描述 优化问题如下,f(xi;W,z)f(\mathbf x_i; \mathbf W, \mathbf z)是模型,这里ziz_i ~ Bern(πi)Bern(\pi_i),π\mathbf \pi是分布参数 在这里插入图片描述 由于ziz_i是二值变量,需要转换成连续变量来优化;随机变量 ss ~ q(s;ϕ)q(s;\phi),编码变量zz可以表示为 z=g(s)=min(1,max(0,s))z=g(s) = min(1, max(0,s)) 替换zz在这里插入图片描述s\mathbf s表示成一个函数h(ϕ,ϵ)h(\phi , \epsilon)ϵ\epsilon是噪音随机变量,ss可以进一步表示为 在这里插入图片描述 加L0正则到编码变量上面,能够减少需要计算的参数量,加速计算 在这里插入图片描述 QQ函数是关于sis_i累积分布函数 在这里插入图片描述 所以变成 在这里插入图片描述 因此,最终加了L0正则的目标函数变为 在这里插入图片描述 线上预估时,zz值由下面式子计算得到 在这里插入图片描述

实验部分

SNR效果显著优于各个基线,如下图 在这里插入图片描述 随模型参数量增加,SNR-Trans效果显著增加,SNR-Aver也增加,但不明显,如下: 在这里插入图片描述 同样效果下,加了L0的参数系数模型要比Dense模型size小11%,如下图

在这里插入图片描述

小结

SNR通过将共享参数层拆分为包含多个子网络的层,各个子网络之间的连接通过二值编码变量来控制连接,一方面增加各个子网络之间的交互,一方面减少总的参数量。另外通过引入随机变量来替换二值不连续编码变量等转换方式来优化模型;还通过L0来大幅减少参数量。总之,是比MMoE更加细粒度的一种多任务学习方法。