本文是RecSys2020最佳长论文Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations的阅读笔记。
模型动机
模型主要用于解决multi-task模型中seesaw phenomenon的问题:预测的task A和task B不相关,优化task A的预测可能导致task B预测的性能下降。Google曾提出了MMoE模型,但MMoE模型忽略了experts之间的交互关系,同样对待所有的experts。
为此,腾讯提出了PLE模型。在线上表现上,提高了2.23%的view-count和1.84%的阅读时长。因此,ple模型已经被部署在了腾讯的视频推荐系统中。
腾讯的推荐系统模型总览
- w是参数
- f(video_len)是non-linear的函数,比如sigmoid或者log
对于所有任务而言,VCR (View Completion Rate)和VTR (View-Through-Rate)是最重要的指标。
PLE模型介绍
第一部分:Customized Gate Control
模型结构:
shared experts:学习share的部分
task-specific expert:学习task专门的信息
每个tower都从shared experts和自己的task-specific experts中学习。shared的部分会被所有tasks影响,task-specific的只会被自己的head影响。
shared和task-specific的experts会通过一个gating network选择性地融合起来:
其中wk(x)是一个计算task k权重的function,先计算一层linear,再计算一层softmax:
而Sk(x)则是一个包含shared experts和task k专有expert的一个matrix:
task k的模型预测表示为:
tk是task k的tower network.
第二部分:PLE模型
PLE模型是CGC的一个generalization,有多层的extraction networks来提取高级别的共享信息。
第三部分:Joint Loss Optimization的创新
在通常的Multi-task learning中,损失函数常常是各个task取个加权平均。但这样做忽略了各个task之间的样本空间是不一样的特点。比如用户只有在click了一篇article之后才能进行share。这时候应该把share当成click的一个subset,而不是以整个training set计算share rate的。
此外,Multi-task learning对loss weight很敏感,因为loss weight决定了每个task的相对重要性。实践中发现,每个task在训练过程中的不同阶段可能会有不同的重要性。所以,与其选择一个静态的weight,不如选取一个动态的weight。
先选择一个初始的loss weight,再在每一步update loss weight by update ratio。