召回综述:【推荐系统】推荐系统主流召回方法综述
目录
一、DSSM概念
在推荐中的应用
1、输入层word hashing
2、中间层(常用的DNN模型)
3、匹配层
将doc和query(item和user)的embedding计算consine相似度,同时这是一个多分类问题,要使用softmax对匹配分数进行归一化,损失函数是交叉熵。
二、实践
三个实践经验决策点:
- 召回模型负例如何选择?
- User Embedding和Item Embedding要做Norm? 要做,做了效果好。
- Loss中相似性计算中要带温度超参么?
召回模型负例如何选择?
- In-Batch 负例(Google DNN双塔)
- 全局随机抽样(Youtube DNN)
- Mix{In-Batch负例+全局随机抽样}(Google)
- Mix{In-Batch+曝光未点击}{我们19年做FM召回时的做法}
是否做Norm? (应用trick)
(1)对双塔两侧输出的Embedding进行L2标准化;
为什么要做Norm? 增加训练稳定性以及线性可分性。
温度超参是什么?--> Loss要带温度超参
对于内积计算的结果,除以一个固定的超参。超参的设定可以通过实验结果的召回率或者精确率进行微调。除以超参的效果如下,可以看到Softmax的效果更加明显。
2.1. 美图架构图
美图个性化推荐的应用实践 中DSSM召回线下训练,线上serving的整体架构图。
将用户最近点击,消费,转化等的数据采集后作为正样本;采样些全局最热但未点击(Youtube负采样套路)作为负样本构造样本训练DSSM模型进行推荐召回。
DSSM在预测的时候就可以借助Faiss进行异步物料向量更新,加载模型后可以根据实时用户行为进行ANN检索(求Topk相似向量)。
2.2. 淘系架构图
优化版本
特别说明:self-attention就是Transformer 序列建模。
2.3. 全民k歌架构图
双塔最终优化结构
优化方法
1、Softmax with Temperature
温度超参可以将Loss聚焦在Hard负例。
- 说明了:如果温度超参越小,则将Hard负例在投影空间从Anchor推开能量越大;
- 推论:召回模型的温度超参应该也是类似的作用,小的温度超参将优化过程自动聚焦到Hard负例;
- 推论:可以再思考下召回模型的随机负例,引入温度超参可能更重要:Easy Example vs Hard Example;
- 推论:使用温度超参,其实你不用专门去挖掘Hard Neg Example;
2、序列attention概念
- 无法直接用item信息来attention;
- 用稳定的行为去attention动态行为历史;
- 短期动态行为方差更大,attention可以帮助提取信息;