背景
在推荐系统中存在用户行为稀疏的问题,特别是在召回阶段,用户有过交互的item只占非常少的一部分,只有这部分数据我们能用来训练,但是serving时要serving全库item,这可能会导致倾向热门的item,特别是对冷启动非常不友好。这篇论文引入来在CV、NLU中取得成功的对比学习方法,通过一个辅助任务来帮助主任务模型和底层embedding得到更充分的训练。
模型结构
模型结构如上图所示,在主任务的基础上增加一个辅助任务,两个任务共享底层的embedding(也可以共享nn参数),两个任务联合训练
辅助的任务的作用是在对样本进行变换后,辅助tower仍能区分出是不是同个样本,这样可以避免样本被少数强特征主导,是特征能学习的更充分。
正负样本构造方法
正样本:同个样本经过不同变换得到的两个样本构成正例
负样本:在batch内的其它样本经过变换后
样本变换方法
样本变换分位两个步骤:首先是mask一部分特征,然后是进NN前通过一个dropout层
有两种mask方法:
1. 随机mask一般feature得到样本1,然后mask另一半feature得到样本2(这两个样本会构成一个训练pair)
2. 首先随机选择一个种子特征,然后选择和这个种子特征互信息最大的一半特征mask后得到样本1,mask另一半特征得到样本2
损失函数
这个loss鼓励:
1. 同个样本经过不同的变换后,经过神经网络后得到的embedding有最大的余弦相似度
2. 不同样本经过不同的变换后,经过神经网络后得到的embedding有最小的余弦相似度