推荐系统中常常需要在亿级别的候选集中找到上百个相关的item,俗称DCG问题(Deep candidate generation)。通常处理这类问题采用的类似语言建模的方法。然而显存的推荐系统都存在着曝光偏差,在候选集多的时候这个偏差更加的严重,导致模型只学习了曝光多的样本,因此这篇论文《Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems》使用了对比学习去解决曝光偏差问题,该方法已经成功部署在淘宝,并且效果有显著提升。

DCG问题中的对比学习

首先我们可以拿到这样的数据集和,D={(xu,t,yu,t): u=1,2,...,N, t=1,2,...Tu},xu,t= {yu,1:(t-1)},即我们在预估t时刻用户要点啥时,用到的是该用户t时刻前点击的所有items。在DCG问题中,我们需要学习用户的encoder和item的encoder把用户和item映射到一个空间中,并通过cos相似度找到top k的item,典型的学习方式如下,使用最大似然估计(MLE)去拟合上述数据集合:

然而使用观测到的点击数据训练模型会有严重的曝光偏差问题,对有潜力但没机会曝光的item是毁灭性打击。很多高质量的item但是在训练数据集中点击较少,在MLE这种学习方式就很难再曝光。

如何理解对比学习能解决曝光偏差呢?

论文中使用的对比loss类似Sampled Softmax,先看看Sampled Softmax:

L表示负采样的个数,pn(y|x)是预先定义好的负采样分布,减去logpn(y|x)是为了让该loss收敛到和MLE相似的结果。在实践中pn(y|x)往往就使用pn(y),pn(y)就等同于流行度,使用该流行度加速收敛,在实践中L取值上千。当候选集巨大时,sampled softmax效果要优于NCE和negative sampling。

接下来我们讨论对比学习中的contrastive loss,在负采样概率分布为pn(y|x),loss如下:

但是我们发现上式中不再减去logpn(y|x),因此该公式不再与MLE一致了,所以对比学习主要是优化pn(y|x)这个分布,使得模型收敛到合适的地方。

对比学习为什么能缓解曝光偏差?

让我们先看下IPW(inverse propensity weighted) loss:

q(y|x)就是调节loss的权重了,它可以是曝光的分布。实现IPW有两步,第一步用一个独立的模型(该模型作用就是得到q(y|x))并通过曝光产生的数据集拟合MLE loss,第二步拟合IPW loss,然而这种方式效率比较低下。

我们可以证明contrastive loss和IPW可以达到同样的效果,这两种方法都是最小化KL散度,证明过程可以参考论文附录。

CLRec

从上图中,我们可以清晰的看到负采样的方式,都近似pn(y|x)=pdata(y) (a)就是batch内负采样,(b)创建了一个固定大小的FIFO队列存取之前见到过的正例,然后用在当前batch内作为负样本。(c)和(b)不同在于队列直接缓存了encoder的结果。

如果是用IPW,很难估计到准确的q(y|x),CLRec就用q(y)代替q(y|x),q(y)和pdata(y)有高度相关性,很容易理解,系统曝光的item是因为这些item点击率较高,所以q(y)就可以近似pdata(y)。但是简单的使用pdata(y)进行负采样虽然可以缓解偏差,但是计算成本很高也不能保证每个item在一个epoch内被采样到,因此设计了(b)和(c)这种队列采样方法。(b)和(c)两种方法中,如果队列大小就是batch_size,那就等同于(a)方法。为了使得泛化效果更好,我们需要上千负样本,因此选择一个比较大的队列大小,但是较小的batch size去节约内存。e.g. batch size = 256 queue size = 2560。(b)和(c)本质区别时(c)需要更多steps才能收敛,因为梯度回传不到负样本,但是由于训练速度提升了,整体训练时间(c)是优于(b)的。论文中还提到了Multi-CLRec,缓解多意图偏差,感兴趣的可以看原文。

实验

论文中的实验持续了至少4个月,离线评估纠偏时,比较了sampled softmax和CLRec,在不同loss下我们可以看到CLRec显著提高了多样性(提升了1倍),并且从曝光分布我们可以看到sampled softmax更拟合训练集的分布而CLRec学到了一个相对不同的分布从而缓解了曝光偏差:

如果改变分布就是好的,那随机出岂不是更好?所以还必须对比点击率和recall才能真正说明CLRec是有效的,从下图我们可以看到CLRec提升了点击率和Recall:

参考文献

1、Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems https://arxiv.org/pdf/2005.12964.pdf

推荐系统遇到曝光偏差怎么办?用对比学习!相关推荐

  1. 技术动态 | 图对比学习的最新进展

    转载公众号 | DataFunSummit 分享嘉宾:朱彦樵 中国科学院自动化研究所 编辑整理:吴祺尧 加州大学圣地亚哥分校 出品平台:DataFunSummit 导读:本文跟大家分享下图自监督学习中 ...

  2. CIKM 2021 | Google出品:将对比学习用于解决推荐系统长尾问题

    ©作者 | Sybil Wu 单位 | 明略科技集团 研究方向 | NLP.推荐算法 本文主要分享一下 Google 发表于 CIKM 2021 的文章如何采用对比学习解决推荐长尾问题. 论文标题: ...

  3. ICLR‘23 UnderReview | LightGCL: 简单而有效的图对比学习推荐系统

    上周末梳理了NeurlPS'22中推荐系统相关论文,详见NeurlPS'22 推荐系统论文梳理.本想精读其中某篇,但是并没有公开.最近知乎刷到很多ICLR'23的总结文章,我把他们汇总在ICLR'23 ...

  4. 张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型

    分享嘉宾:张俊林博士 新浪微博 编辑整理:王岩 出品平台:DataFunTalk 导读:今天分享的主题是从对比学习的视角,即从一个不同的角度来看看推荐系统里面的召回和粗排模型.对比学习从去年年中开始比 ...

  5. 对比学习视角重新审视推荐系统

    目录 1 什么是对比学习 1.1 对比学习的渊源和谱系 1.2 什么是对比学习系统 1.3 对比学习的典型例子 SimCLR给出的解决办法 1.4 什么是不好的对比学习系统 1.5 什么是好的对比学习 ...

  6. Google提出用对比学习解决推荐系统长尾问题

    关注 ▲对白▲ 和百万AI爱好者,一起向上生长 这是对白的第 87 期分享 作者 l 知乎@吴家丫头1990 出品 l 对白的算法屋 大家好,我是对白. 本文主要分享一下Google今年提出的< ...

  7. 推荐系统笔记(九):SGL --利用自监督对比学习缓解推荐系统长尾效应

    背景 利用图卷积神经网络处理推荐系统的问题任然有很大局限性,即使是LightGCN也存在的问题,关于LightGCN的知识和原理实现可以参考我的另外几篇博客:链接 其局限性主要在于: (1)高度节点对 ...

  8. 对比学习视角:重新审视推荐系统的召回粗排模型

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 对比学习在快手推荐系统中的应用实践 机器学习在B站推荐系统中的应用实践 小红书推荐系统中台应用实践 微信视频号实 ...

  9. 【实践】对比学习在快手推荐系统中的的应用探索

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 知识图谱在美团推荐场景中的应用实践 搜索场景下的智能实体推荐 机器学习在B站推荐系统中的应用实践 小红书推荐系统 ...

最新文章

  1. Mac Os 基本命令行
  2. 网站前端和后台性能优化1
  3. 冯小刚导演系列公益短片之林心如版
  4. Hadoop和Spark生态圈了解
  5. 跟各位读者朋友分享下公众号运营策略
  6. 美企调查华为设备安全性,华为发长文质疑;摩根大通预计苹果2020年将推5G iPhone;谷歌拟联手Dish成立美国第四大运营商...
  7. Flask笔记-使用Cookie及简单加密判断是否为登录用户
  8. 手机MODEM 开发(28)--- VoLTE介绍
  9. 在暂存区域中显示文件中的git diff [复制]
  10. 02: DOM 实例
  11. java并发之线程安全---java并发编程实践
  12. Linux Kernel Linux内核项目
  13. 打开你企业发展之门的钥匙
  14. 网络工程师考试-计算机网络笔记
  15. EasyPlayer.js H5播放器帮助我这种不会前端的普通用户也能轻松实现直播接入
  16. Excel永远不会消亡!
  17. 数学建模层次分析法例题及答案_数学建模之层次分析法
  18. 企业财务数据分析指标
  19. 微信公众号已认证怎么改名字,公众号昵称可以改吗?
  20. 护眼灯色温和显色指数哪个重要?台灯显色和色温的关系是什么

热门文章

  1. Python——函数 8、可变长参数
  2. return 和 exit
  3. HDU-5900 QSC and Master
  4. Raw264.7培养经验分享
  5. Log binomial 回归在队列中的应用
  6. 电路 | 抗干扰技术
  7. 优秀的程序员都有哪些习惯?
  8. html em vw,CSS3 的视口单位vw、vh实现自适应(带有px,em,rem的简单介绍)
  9. sql如何遍历几百万的表_Oracle PL/SQL调优技巧分享
  10. wsl使用可视化界面_通过 VcXsrv 在 WSL2 上使用图形化界面(xfce4)