重点回顾
1:多个目标分数怎么融合?其中每个 w 确定每个预测的相对重要性score, f (video_len) 是视频时长中的非线性变换函数,例如 sigmoid 或 log 函数。wV T R,wV CR,wSH R,wCMR是通过在线实验搜索优化的超参数,目的是最大化在线指标。
2:解决了mmoe每个任务都是从共享专家网络中进行选择,ple除了共享专家网络还有自己的独有网络,然后这些合并在一起(假设有8个专家网络,4个独有网络),那么就有12个softmax过后的权重进行相乘
3:不同的Expert(共享和独有)之间没有交互,联合优化的效果有所折扣
像ple或者mooe这种,假设ple吧,batch_size是512,特征维度是3698,输入input就是(512,3698),一共8个共享专家网络(每个的shape假设是 512*128),2个子任务(ctr cvr)每个子任务的独有网络分别是4个(每个的shape假设是 512*128)
假设Multi-level Extraction Networds是7层,前6层计算都一样,最后1层会少个共享专家的输出
前6层Experts A和Experts B计算一样,Exerts Shared和A B不一样
前6层Experts A和Experts B
通过input做softmax得到(8+4,1)的一个权重矩阵,和8+4个专家网络相乘后得到8+4个512*128的矩阵,接下来这8+4个矩阵是concat后得到(512,(8+4)*128)的矩阵再过mlp层作为每个子网络的tower?还是做reduce_sum变成 1个512*128的矩阵再过mlp层作为每个子网络的tower?这里论文中没有说明,这篇文章最下面贴着的那个源码采用的是reduce_sum,但是这样可能不太合适,因为每个专家网络都是特征的一种高阶抽象,就可以看做是不同的特征,既然是不同的特征reduce_sum可能不太合适,应该像普通的那种做法concat再mlp来压缩维度才对
前6层Exerts Shared
Experts A和Experts B只考虑自己的4个独有网络+8个共享专家网络,但是Exerts Shared要考虑两个子任务的4个独有网络+8个共享专家网络
第7层:只用Experts A和Experts B就可以了
多目标学习在推荐系统的应用(MMOE/ESMM/PLE) - 知乎
腾讯 at RecSys2020最佳长论文 - 多任务学习模型PLE
ple的实现代码:DeepCTR/ple.py at 35288ae484d7a32887d6a75bdb48d84db992a892 · shenweichen/DeepCTR · GitHub