当前位置:网站首页>【多任务模型】Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized(RecSys‘20)
【多任务模型】Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized(RecSys‘20)
2022-08-01 19:53:00 【chad_lee】
腾讯的视频推荐团队,建模的目标包含用户的多种不同的行为:点击,分享,评论等等。每次请求,候选的排序分根据公式计算:
score = p V T R w V T R × p V C R w V C R × p S H R w S H R × … × p C M R w C M × f ( video l e n ) \text { score }=p V T R^{w V T R} \times p V C R^{w V C R} \times p S H R^{w S H R} \times \ldots \times p_{C M R}^{w C M} \times f(\text { video } l e n) score =pVTRwVTR×pVCRwVCR×pSHRwSHR×…×pCMRwCM×f( video len)
其中w是超参,表示相对重要性
多目标之间经常会有比较复杂的关系,因此同时建模多目标经常会出现跷跷板的现象,即多个任务negative transfer的问题:
GCG
MMOE理论上存在一种可以自动选特征的最优情况,但这个情况依赖:1、gate能不能选出来;2、也依赖expert能不能产生多样性的特征(所有expert输出类似,无可奈何)。
因此本文提出的Customized Gate Control把这个问题变得简单了一些,把专家分为大同行和小同行,既有共享的expert们,每个task也有专门的expert们,难度小了一些。
这样EA只被taskA训,EB只被taskB训,至少可以保底。
input是x,任务k的输出是
y k ( x ) = t k ( g k ( x ) ) y^{k}(x)=t^{k}\left(g^{k}(x)\right) yk(x)=tk(gk(x))
其中 t k t^k tk是这个任务的NN tower, g k ( x ) g^{k}(x) gk(x) 是第k个任务的门控网络的输出:
g k ( x ) = w k ( x ) S k ( x ) g^{k}(x)=w^{k}(x) S^{k}(x) gk(x)=wk(x)Sk(x)
其中x是原始输入, w k ( x ) w^{k}(x) wk(x)是一个加权函数,分别对应每个专家的权重,是一个softmax的输出:
w k ( x ) = Softmax ( W g k x ) w^{k}(x)=\operatorname{Softmax}\left(W_{g}^{k} x\right) wk(x)=Softmax(Wgkx)
其中 W g k ∈ R ( m k + m s ) × d W_{g}^{k} \in R^{\left(m_{k}+m_{s}\right) \times d} Wgk∈R(mk+ms)×d,mk和ms是 shared experts 和 specific experts 的个数。 S k ( x ) S^{k}(x) Sk(x)是所有专家的输出向量contack在一起的称之为selected matrix:
S k ( x ) = [ E ( k , 1 ) T , E ( k , 2 ) T , … , E ( k , m k ) T , E ( s , 1 ) T , E ( s , 2 ) T , … , E ( s , m s ) T ] T S^{k}(x)=\left[E_{(k, 1)}^{T}, E_{(k, 2)}^{T}, \ldots, E_{\left(k, m_{k}\right)}^{T}, E_{(s, 1)}^{T}, E_{(s, 2)}^{T}, \ldots, E_{\left(s, m_{s}\right)}^{T}\right]^{T} Sk(x)=[E(k,1)T,E(k,2)T,…,E(k,mk)T,E(s,1)T,E(s,2)T,…,E(s,ms)T]T
PLE
但是分了小同行后也有问题,不同task的辅助监督信号的作用又小了(因为和独立模型的区别就只有一个共享expert,能力有限)。所以PLE就是多接几层专家网络,让共享expert更强一些。
优化方法
一半多目标任务优化是针对不同的子任务设置不同的权重,损失函数加权:
L ( θ 1 , … … , θ K , θ s ) = ∑ k = 1 K ω k L k ( θ k , θ s ) L\left(\theta_{1}, \ldots \ldots, \theta_{K}, \theta_{s}\right)=\sum_{k=1}^{K} \omega_{k} L_{k}\left(\theta_{k}, \theta_{s}\right) L(θ1,……,θK,θs)=k=1∑KωkLk(θk,θs)
但是这篇文章更精细的考虑了训练样本空间不一致的问题:
比如用户只有点击后才能进行分享和评论。本文是在 Loss 上进行一定的优化,联合训练这些任务,在计算每个任务的损失时需要把样本空间相同的合并,并忽略不在自己样本空间的样本,即不同的任务仍使用其各自样本空间中的样本。我理解的意思是一次模型更新的时候,不会同时用SHR和CTR的loss来更新
同时这篇还考虑了不同任务设置一个动态权重,比如task k的初始loss权重为 ω k , 0 \omega_{k, 0} ωk,0,那么在第t个epoch的时候loss权重为:
ω k ( t ) = ω k , 0 × γ k t \omega_{k}^{(t)}=\omega_{k, 0} \times \gamma_{k}^{t} ωk(t)=ωk,0×γkt
其中 γ k t \gamma_{k}^{t} γkt 是上一步的更新率。
边栏推荐
- 终于有人把AB实验讲明白了
- 实用新型专利和发明专利的区别?秒懂!
- What are the application advantages of SaaS management system?How to efficiently improve the digital and intelligent development level of food manufacturing industry?
- 18. Distributed configuration center nacos
- Risc-v Process Attack
- Greenplum Database Source Code Analysis - Analysis of Standby Master Operation Tools
- Write code anytime, anywhere -- deploy your own cloud development environment based on Code-server
- 58: Chapter 5: Develop admin management services: 11: Develop [admin face login, interface]; (not measured) (using Ali AI face recognition) (demonstrated, using RestTemplate to implement interface cal
- 因斯布鲁克大学团队量子计算硬件突破了二进制
- 第59章 ApplicationPart内置依赖注入中间件
猜你喜欢
随机推荐
有点奇怪!访问目的网址,主机能容器却不行
Redis启动时提示Creating Server TCP listening socket *:6379: bind: No error
即时通讯开发移动端弱网络优化方法总结
第58章 结构、纪录与类
短视频软件开发,Android开发,使用Kotlin实现WebView
SIPp 安装及使用
SENSORO成长伙伴计划 x 怀柔黑马科技加速实验室丨以品牌力打造To B企业影响力
kubernetes - deploy nfs storage class
数值矩阵的图形表示
Greenplum数据库源码分析——Standby Master操作工具分析
第55章 业务逻辑之订单、支付实体定义
如何写一个vim插件?
Win11怎么安装语音包?Win11语音包安装教程
How to install voice pack in Win11?Win11 Voice Pack Installation Tutorial
常用命令备查
升哲科技携全域数字化方案亮相2022全球数字经济大会
Win11如何删除升级包?Win11删除升级包的方法
Combining two ordered arrays
Write code anytime, anywhere -- deploy your own cloud development environment based on Code-server
【kali-信息收集】(1.6)服务的指纹识别:Nmap、Amap