关注 ▲对白▲ 和百万AI爱好者,一起向上生长

这是对白的第 87 期分享

作者 l 知乎@吴家丫头1990 出品 l 对白的算法屋


大家好,我是对白。

本文主要分享一下Google今年提出的《Self-supervised Learning for Large-scale Item Recommendations》如何采用对比学习解决推荐长尾问题 。

一、 定义


  • 长尾效应:20%的热门item占据了80%的曝光量,剩下80%的小众、长尾item得不到多少曝光机会,自然在训练样本中也是少数、弱势群体。

  • 一般的推荐模型是迎合多数人群的,长尾的item曝光机会少,就导致小众兴趣难以满足,这对一个成熟的生态系统来说,不利于用户增长。

  • 场景举例:有些原来不受到重视的销量小但种类多的商品,由于总量巨大,累积起来的总收益超过了主流商品。这种情况下,算法挖掘小众兴趣的能力显得尤为重要。

二、 对比学习


  • 对于样本不均衡的问题,一般首要想到的办法是做数据增强(data agument), 对比学习的核心就是采用数据增强构建正负变体,倾向于无监督学习,学习一个比较好的特征提取器。推荐系统中引入对比学习用于推荐debias,解决“少数人群+冷门物料,标注样本少”的问题,从逻辑上看是可行的。

  • 《Self-supervised Learning for Large-scale Item Recommendations》, 就是利用对比学习辅助训练双塔召回模型,目的是让item tower对冷门、小众item也能够学习出高质量的embedding,从而改善内容生态。从公式上看,可以理解为将对比学习的loss作为主任务loss的一个正则项。

三、 论文解读


我认为论文中有两个核心的技术点,一个在对比学习部分,另一个在联合训练部分。

3.1 数据增强


在对比学习数据增强部分,论文提出对于item特征的数据增强分为两个步骤:Masking和Dropout,其中masking是采用默认embedding随机掩盖一些输入特征,dropout就是简单的随机丢失一些输入特征。

3.2 Random Feature Masking(RFM)


文中定义了一个baseline Random Feature Masking(RFM) ,采用互补masking模式,即将特征集拆分为两个互斥特征集,构建为两个扩展变体。具体来说,将特征集随机分成两个不相交的子集。大致结构如下:

  • 某个item xi, 随机抽取一半的特征h,得到变体yi,再经过Encoder H,得到向量zi;保留剩下的另一半特征g,得到变体yi’,再经过Encoder G,得到向量zi’。

  • 来自同一个item xi 的两种变体对应的embedding zi和zi’,两者之间的相似度应该越大越好。

  • 按照同样的作法,另一个item xj,用一半特征h得到变体,再经过Encoder H得到yj;用另一半特征g,得到变体,再经过Encoder G得到yj’。

  • 来自不同item的变体对应的embedding,两者之间的相似度应该越低越好。

3.3 Correlated Feature Masking(CFM)


论文基于信息论中的互信息,提出了Correlated Feature Masking (CFM)方法,这个方法每个batch进行训练时,先会随机选取一个特征 f_seed , 然后选择topn(n 为item的特征总数的一半) 构建一个特征集做为变体。

3.4 为什么采用CFM


此处丫头主要想讨论一下的是:为什么要采用互补masking模式构建对比学习的变体呢,为什么采用互信息高的特征集会比随机masking效果好呢。

在论文中有这么一段描述:

For instance, the SSL contrastive learning task may exploitthe shortcut of highly correlated features between the twoaugmented examples, making the SSL task too easy.

从字面意思看,是说随机masking 可能有一些高度相关的feature 分到两个变体中, CL Train的就太easy了,所以要加大一下难度的样子。

大致意思是由于物品的不同特征可能存在着一些关联性,随机masking可能会使得模型在对比学习的过程中,通过关联度较高的特征来“猜”出被mask的特征,使得任务训练变得简单。

这里丫头尝试举个例子,来强行解释一下吧,假设:item是个商品,它有品类,品牌,产品系列,价格 等特征,假设“品牌“ 被拆分到变体h中,”产品系列“被拆分到变体g中,看上去两个变体都是不同的,但是两个特征包含的隐信息其实没太大区别,最终两个变体的embedding太容易相似,就不到训练模型的目的。至于为什么要采用互补masking模式,大致也是为了保证变体的差异性。

3.5 联合训练


做完对比学习,下一个步骤就是联合训练了 ,先上个论文中的模型图:

从上图可以看出,整个item tower是被user-item双塔召回的主任务、对比学习辅助任务中的encoder H和G,这三者所共享的。

异构的样本分布:从 中采样出来的样本的边缘item分布基本服从幂律分布,如果用 来采样计算 会使得学到的特征关联与头部item有出入。于是我们从 中采样item来计算 。我们在实践中发现两个任务分别采样对于SSL提升监督任务的性能是至关重要的。

主任务的loss:我们利用batch softmax loss作为主任务的loss。

D t r a i n D_{train}

论文的第二个重点来了,“We sample items uniformly from the corpus for Lself " ,论文中明确表示参与对比学习的样本,和参与主任务的样本,来自不同的样本空间。主任务,需要拟合用户与item之间的真实互动,还是以已经曝光过的user/item为主。对比学习部分,是为了消除推荐长尾问题,主要是要关注曝光率低的item。

四、 实验结果

评估结果显示,对比学习方法对于baseline方法,对于长尾item的推荐效果有更大的提升。

技术交流群邀请函

已建立CV/NLP/推荐系统/多模态/内推求职等交流群!想要进交流群学习的同学,可以直接扫下方二维码进群。

加的时候备注一下:昵称+学校/公司。群里聚集了很多学术界和工业界大佬,欢迎一起交流算法心得,日常还可以唠嗑~

往期精彩回顾

[

发了一篇小红书,阅读量破了20W…

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512282&idx=1&sn=27ad070913dba2fd9b5f8c322c302658&chksm=cf1d823bf86a0b2d4d9620e558a2defe92361ad976c8d58c5a24569dc2e23117a10b945e48df&scene=21#wechat_redirect)

[

《动手学深度学习》中文版2.0beta版发布!

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512169&idx=1&sn=b1084fc43adcae03cea154c6afec8e0c&chksm=cf1d8288f86a0b9e0bf3fc0b7f904095fa3790e3fc6a33958d6045eb77c3368977d66bce694d&scene=21#wechat_redirect)

[

业界总结 | BERT的花式玩法

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512141&idx=1&sn=d2ffb0d712ab1a2c52a9989cf77723d4&chksm=cf1d82acf86a0bbae568ec764bbda503a9ac1b16bb2ed3ab3bdba04833aa2854c6ffac6734f9&scene=21#wechat_redirect)

关于我

你好,我是对白,清华计算机硕士毕业,现大厂算法工程师,拿过8家大厂算法岗SSP offer(含特殊计划),薪资40+W-80+W不等。

高中荣获全国数学和化学竞赛二等奖。

本科独立创业五年,两家公司创始人,拿过三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研清华后退居股东。

我每周至少更新三篇原创,分享人工智能前沿算法、创业心得和人生感悟。我正在努力实现人生中的第二个小目标,上方关注后可以加我微信交流。

期待你的关注,我们一起悄悄拔尖,惊艳所有

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

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

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

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

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

  3. 对比学习用于推荐系统问题(SSL,S^3-Rec,SGL,DHCN,SEMI,MMCLR)

    本篇博文继续整理推荐系统系列,更多文章可以参考博主的以往系列论文:推荐系统专栏. 自监督学习在CV和NLP已经用的很多了,那很自然也会被迅速引进并占坑到推荐系统领域咯.而发掘推荐数据上的自监督信号,其 ...

  4. 华人博士提出原型对比学习,非监督学习效果远超MoCo和SimCLR

    点上方蓝字视学算法获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:新智元 继MoCo和SimCLR之后非监督学习的又一里程碑!Sales ...

  5. NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法

    ©PaperWeekly 原创 · 作者 | 李婧蕾 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 Abstract 无监督聚类的目的是根据在表示空间中的距离发现数据的语义类别.然而,在学 ...

  6. OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP

    OpenAI 打破了自然语言与视觉的次元壁,推出了一个连接文本与图像的神经网络模型CLIP. 相关资料 CLIP原论文:Radford et al. Learning transferable vis ...

  7. 使用联邦学习解决推荐系统中的隐私泄露问题

    推荐系统中的安全问题 <A NOVEL PRIVACY-PRESERVED RECOMMENDER SYSTEM FRAMEWORK BASED ON FEDERATED LEARNING> ...

  8. 推荐系统中不得不学的对比学习(Contrastive Learning)方法

    作者 | 对白 出品 | 公众号:对白的算法屋 大家好,我是对白. 今天我们来聊一聊推荐系统中不得不学的Contrastive Learning方法,近年来Contrastive Learning在C ...

  9. 购物篮推荐场景太复杂?没有商品相关性标签?看作者运用对比学习统统解决...

    ©PaperWeekly 原创 · 作者 | Yuqi Qin 学校 | 北京邮电大学 研究方向 | 推荐系统 本文关注的是对购物篮去噪.目的是:从历史购物篮序列中挑选出真正可信赖的相关商品,来对每个 ...

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版
  2. php表单数量,php – 解析具有未知数量字段的表单
  3. javascript精要(3)-动态加载脚本
  4. Ibatis 升级 Mybatis
  5. 1057 数零壹(PAT乙级 C++实现)
  6. 算法工程师和python_算法工程师只掌握Python行吗?如果在java和cpp中选一门语言学习哪个更有用?...
  7. linux dns区域传送,Linux DNS服务器主从复制及区域传送
  8. 众说纷“云”,看生态驱动工业物联网落地
  9. rehat 出现GDB debuginfo-install 问题处理
  10. java 传参数报文给and_技术岛-技术改变生活
  11. 计算机网络实验:无线组网
  12. 企业微信添加root主动发布消息
  13. john lim php,成都环球中心天堂洲际大饭店总经理Mr.John Lim:E-Con系统开启智慧服务新时代!...
  14. 功率放大器的指标是什么意思(功率放大器P1dB指标是什么)
  15. 基于SSM的网红书购物商城(源码+论文+开题报告+答辩PPT)
  16. 尿液分析仪工作原理及主要技术参数
  17. CAD数字求和lisp
  18. VIIRS TOOLSv3.0版本(专用于处理VIIRS一级数据,可反演气溶胶等)
  19. 【BLE】CC2541之发现服务与特征值
  20. home staging_homestaginginnovations.com

热门文章

  1. php 参数排序 计算sign_sign计算
  2. 【已解决】error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: expected
  3. 你学会怎样正确地使用CD刻录机了吗?
  4. 使用bat自动执行cmd命令(多个命令或单个命令)
  5. 学习 kity 笔记(三) 继续 SVG
  6. PPT control+D的应用
  7. 在Centos7下使用reportlab输出中文到pdf文档
  8. 音视频开发第一篇——音视频基础概念。
  9. Netty源码分析(六)—Future和Promis分析
  10. 【入门级】Java解决动态规划背包问题