召回5:双塔模型¶
双塔模型基本就是矩阵补充模型的升级版。
用户塔:
使用这两个塔来做召回就是双塔模型:
模型训练方法¶
其中正样本的选取比较简单,负样本的选取比较讲究,论文中详细介绍了。小红书的选取方法基本参考了YouTube的做法。
pointwise训练¶
pairwise训练¶
listwise训练¶
对比学习?MOCO!
notation有小错误,问题不大。
正负样本的选取¶
正样本¶
正样本的选取比较简单,不过要解决一下二八定律:
负样本¶
在推荐系统的全链路中会有很多种负样本产生:
简单负样本¶
batch内负样本¶
甲之蜜糖乙之砒霜:
如果这样做的话会把热门物品打压太狠(负样本的概率过大了)。文献里YouTube的算法很有效,在训练的时候修正一下就行了:
困难负样本¶
被召回了但是在排序中被淘汰。
反面案例¶
错误的负样本策略¶
曝光但是没有点击的样本不能作为召回模型的负样本。
给用户展示的所有笔记都是结果层层排序的,理论上已经非常接近用户的兴趣了。
但是用户不可能每个点击,没有点击并非不感兴趣、而是对其他的物品更感兴趣,这就是不能把曝光但是每点击的样本作为召回模型负样本的原因。
召回模型的重点在于区分不感兴趣和感兴趣,而不是区分比较感兴趣和非常感兴趣,后者是排序模型应该做的。
当然,我们这里说的曝光未点击都是推荐系统产出的物品。如果是人为推送的物品(例如广告?)作为负样本可能就是比较有效的。
不适合召回的模型¶
这里最大的问题就是把物品和用户的特征进行了concatenate,前期就融合了特征肯定就没法做召回了。反而这个模型更适合做排序。
线上召回¶
1、把所有物品经过物品塔离线计算的特征保存到向量数据库,建立索引
模型更新¶
全量更新¶
离线学习
增量更新¶
在线学习
全量+增量¶
主要是shuffle的问题:
自监督学习¶
自监督学习是为了进一步提高物品塔的效果。算法来自Google,比较靠谱,很容易落地拿到收益:
基本思想¶
数据增强¶
- random mask
- dropout
- complementary
- mask一组关联的特征【实现比较复杂】
训练方法¶
最后更新: 2025-07-13 21:45:06
创建日期: 2025-07-13 21:45:06
创建日期: 2025-07-13 21:45:06
广告
人要恰饭的嘛🤑🤑