前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对比学习技术在推荐系统的应用学习笔记

对比学习技术在推荐系统的应用学习笔记

作者头像
锅逗逗
发布2022-10-05 16:52:05
9620
发布2022-10-05 16:52:05
举报
文章被收录于专栏:锅逗逗的杂学笔记

先占个坑~

本文首先分析推荐系统预测不准的部分因素:数据稀疏和数据分布偏差,其次基于这些因素从增广数据、定义Loss、设计Encoder来介绍对比学习技术是如何帮助推荐系统预估地更准,最后给出一些前人的实践经验和一些个人理解。

本文仅学习笔记,如有理解不到位或者理解有误的地方,还请评论区批评指教~

“猜不准你喜欢”:数据稀疏和数据分布偏差

推荐系统中有相当大的功夫都花费在“猜你喜欢”上,即为用户提供个性化的建议。然而有时候预估的并不是那么准,可能受到数据稀疏和数据分布偏差的影响:

数据稀疏

  • 整体

各类反馈信号的比例极度不均衡,某类稀疏的反馈信号对应的梯度更新被其他反馈对应的梯度淹没,模型没训好,预估不准。

  • 个体

模型对长尾Item预估和长尾User学习不充分,预估不准。

长尾item:用户行为数据分布通常呈现长尾分布,大部分item不存在或者存在极少的用户行为数据。

长尾user:这类用户在推荐系统具有极少行为

数据分布偏差:曝光偏差和流行度偏差

理论上要在公平的环境下,让user对所有item都存在交互才是无偏的。

然而推荐系统能只暴露有限数量item给user,这部分item才能和user进行交互,未曝光的item和user的实际交互是未知的,所以是有偏的。

对比无偏数据,模型使用有偏的数据建模,学习user有偏的喜好,预估不准(即推荐质量次优)。

曝光偏差会形成马太效应,user只和有曝光的item进行交互,慢慢的,多人都点的item(即流行item)会主导模型的梯度更新,使得模型更倾向预测流行的item高分推送给user,无法学习到个体user的兴趣偏好,导致预估不准。

增广数据

针对上述两个问题,可以通过从各种方式来补充训练样本的角度,即增广数据,来使得模型预估地更准。

基于自身数据做增广

基于自身数据做增广,可以用来调整反馈信号的比例、增加用户行为、缓解数据分布偏差,最终达到模型的预估更准一点的效果。

  1. 基于样本

1.1 自监督方式生成新样本

a. 调整user、item输入特征

该方法可以生成多个user, item的view,借助这些增强的样本可以丰富user和item在推荐系统中的行为。

  • Dropout:随机丢弃掉某些特征,这些特征不参与网络训练
  • Mask:将某些特征Mask,这些特征用默认的embedding特征参与网络训练

b. 调整user行为序列

该方法可以生成多个user行为序列,进而得到user增广后的序列表征,用于挖掘user的兴趣意图。

  • Mask:随机Mask user行为序列中的item,避免行为序列被局部信息主导
  • Shuffle:打乱user行为序列的item位置,改变时序性
  • Sample:使用不同的权重采样方法,在长期行为序列上随机采样

c. 调整图结构

  • Node Dropout:以一定概率从图上被丢弃节点
  • Edge Dropout:以一定概率从图上被丢弃边
  • Random Walk:通过随机游走的方式生成不同的待聚合的子图

1.2 调整样本比例,主要用于加强学习稀疏反馈信号,和调整数据分布偏差

这块工作主要集中在负样本采样上,有以下几种方案

  • In-Batch采样,如GoogleDNN双塔
  • 负例队列采样,如阿里的CLRec
  • 全局随机采样,如YoutubeDNN
  • 全局+In-Batch采样,如Google双塔改进方案
  • In-Batch+曝光未点击,如微博的FM召回

2. 基于模型

模型中有部分结构用于生成个体(如user或item)的表达向量,可以在隐层通过Dropout或增加随机噪声的方式生成不同的个体embedding。

  • Dropout:在某个隐层,随机地 mask 掉一些神经元
  • 增加随机噪声:如Gauss噪声

引入外部(跨域、跨场景)数据做增广

如果自身数据并不丰富,可以考虑引入外部数据做增广,来增加用户行为。

如果自身场景与辅助场景的User和Item都存在部分交集,则为跨场景推荐。

如果自身场景与辅助场景的User存在部分交集,Item不存在交集,则为跨域推荐。

定义Loss

衡量相似

对于使用自监督方式生成的新样本,约束其和原始样本在投影空间相似;

对于各种策略负采样得到的样本,约束其和正样本在投影空间不相似;

对于引入外部数据得到的样本,其样本和特征分布一般和目标场景分布不一致,需要约束两个场景的分布相似。

  1. 衡量样本相似

常见的有Cosine,内积等

其中Cosine = L2 norm + 内积

2. 衡量分布相似

常见的有MMD,KL散度等

Loss设计

  1. NCE Loss 和 InfoNCE Loss
  • NCE

输入一个pair,预测相似或者不相似

Word2Vec(Negative sampling),图里的DeepWalk用的就是这样的Loss,此处不再赘述。

  • InfoNCE

输入一个正pair,若干个负pair

使得正样本对之间的互信息最大,使负样本对之间的互信息最小,其中调整超参温度因子可以帮助挖掘困难负样本。

这个算是当前对比学习主流的Loss设计方法。

2. MMD Loss 和 KL Loss

直接从度量方法KL和MMD演变出来的Loss,用于约束两个分布相似性。

例如微信的多目标GNN提取模型中,通过MMD loss平滑跨域用户embedding分布。

同样的微信的C2-Rec模型中,通过KL loss约束对增广前后计算得到的softmax概率分布相似。

写累了,待补充~

参考文献

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

Self-supervised Graph Learning for Recommendation

Self-supervised Learning for Large-scale Item Recommendations

罗清:对比学习在快手推荐排序的应用

S^3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization

C^2-Rec: An Effective Consistency Constraint for Sequential Recommendation

Rethinking the Promotion Brought by Contrastive Learning to Semi-Supervised Node Classification

Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation

腾讯图神经网络与推荐预训练模型

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • “猜不准你喜欢”:数据稀疏和数据分布偏差
    • 数据稀疏
      • 数据分布偏差:曝光偏差和流行度偏差
      • 增广数据
        • 基于自身数据做增广
          • 引入外部(跨域、跨场景)数据做增广
          • 定义Loss
            • 衡量相似
              • Loss设计
              • 参考文献
              相关产品与服务
              智能数据分析
              腾讯云智能数据分析 Intellectual Data Analysis 是新一代云原生大数据敏捷分析解决方案。产品具备存算分离、动态扩缩容等特点,并内置事件、转化、留存、行为路径等成熟分析模型,提供高可用、低成本的全场景敏捷分析服务,可同时满足数据分析师、数据开发工程师和业务决策人的关键分析需求,帮助企业大幅降低数据分析成本,支撑业务更高效决策。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档