精排 - 多目标模型

简单的多目标模型

模型结构

image-20230415222815622

损失函数和训练

image-20230415222946743

问题

数据集通常是类别及不平衡的,比如总共1000次曝光,其中只有100次点击,10次收藏,收藏次数对于曝光来说相差极大。

解决方案:通常使用负样本降采样的方法。

预估校准:负样本降采样之后,就改变了各个目标的实际分布,所以模型的预估值是有偏的,需要进行校准,通常使用Facebook提出的公式校准法

ptrue=αppred(1ppred)+αppred(1)p_{true} = \frac{\alpha · p_{pred}}{(1-p_{pred})+\alpha · p_{pred}} \tag{1}

MMoE

模型结构

MMoE上层结构

MMoE下层结构

极化现象

image-20230415224146171

解决方案是对softmax的输出使用dropout。比如softmax的n个输出被mask的概率都为10%,也就是每个专家有10%的概率不参与本次预测。

假如训练过程中发生了极化现象且对应专家被mask了,则最终预测输出为0,效果奇差,所以dropout可以解决极化现象,参考文献《Recommending What Video to Watch Next: A Multitask Ranking System》。

多目标预估分数融合

简单加权和

pclick+w1plike+w2pcollect+...p_{click} + w_1·p_{like} + w_2·p_{collect} + ...

点击率乘以其他项加权和

pclick(1+w1plike+w2pcollect+...)p_{click} · ( 1 + w_1·p_{like} + w_2·p_{collect} + ... )

某短视频APP1的融分公式

(1+w1ptime)α1(1+w2plike)α2...(1 + w_1 · p_{time})^{\alpha_1} · (1 + w_2 · p_{like})^{\alpha_2} ...

某短视频APP2的融分公式

image-20230415225304678

某电商的融分公式

pclickα1pcartα2ppayα3ppriceα4p_{click}^{\alpha_1} · p_{cart}^{\alpha_2} · p_{pay}^{\alpha_3} · p_{price}^{\alpha_4}

粗排 - 三塔

模型结构

image-20230415232327564

  • 用户塔:因为每次推理只有一个用户,只做一次推理,所以总计算量不大,所以可以设计的很复杂。
  • 物品塔:每次推理会有n个候选物品,因为物品特征比较稳定,所以可以通过缓存的方式避免大多数推理。只需要把没命中缓存的物品推理即可,因此总计算量也不算大,所以可以设计的比较复杂。
  • 交叉塔:统计和交叉等特征更新频繁,所以不能缓存。又因为每次推理n个候选物品就需要推理n次,所以通常设计的比较简单。

参考文献

公开课地址:GitHub

推荐系统中的多任务学习与多目标排序工程实践(上):https://zhuanlan.zhihu.com/p/422925553