对比学习《Self-supervised Learning for Large-scale Item Recommendations》


背景

在推荐系统中存在用户行为稀疏的问题,特别是在召回阶段,用户有过交互的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有最小的余弦相似度 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM