长尾物品(Tail Items)在推荐系统中是非常常见的,长尾的存在导致了样本的不均衡,对于热门头部物品(Head Items)的样本量多,模型学习这部分的效果越好,而长尾物品的样本量少,导致模型对该部分Item的理解不够充分,效果自然也就较差。

那么,针对长尾物品的推荐,有哪些较好的解决方法呢?本文从几个角度来聊一下这个问题。长尾问题,可以看成是推荐系统倾向于推荐热门商品,而忽略了非热门物品,即推荐系统如何解决纠偏问题?

在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘?大多数论文致力于开发机器学习模型来更好地拟合用户行为数据。然而,用户行为数据是观察性的,而不是实验性的。这里面带来了非常多的偏差,典型的有:选择偏差位置偏差曝光偏差流行度偏差等。如果不考虑固有的偏差,盲目地对数据进行拟合,会导致很多严重的问题,如线下评价与在线指标的不一致,损害用户对推荐服务的满意度和信任度等。下面我们聊一下与长尾问题相关的两个偏差。

曝光偏差的发生是因为用户只接触到特定项目的一部分,因此未观察到的交互并不总是代表消极偏好。特殊地,用户和商品之间未被观察到的交互可以归因于两大原因:

1)商品与用户兴趣不匹配;

2)用户不知道该商品。

因此,在解释未观察到的相互作用时会产生歧义。无法区分真正的消极互动(如暴露但不感兴趣)和潜在的积极互动(如未暴露)将导致严重的Bias。

解决方法:

目前处理该问题的策略主要还是使用inverse propersity score。为了解决这个问题,类似于外显反馈数据中的选择偏差处理,Yang等人建议用隐式反馈数据倾向的倒数来加权每个观测值。intuition是把经常观察到的交互降权,而对少的样本进行升权。

为了解决曝光偏差的问题,传统的策略就是将所有被观测的交互作为负例并且明确它们的交互。confidence weight可以被分为三类:

1.Heuristic:典型的例子是加权的矩阵分解以及动态MF,未观测到的交互被赋予较低的权重。还有很多工作则基于用户的活跃度指定置信度等,但是赋予准确的置信权重是非常有挑战的,所以这块依然处理的不是非常好。

2.Sampling:另一种解决曝光bias的方式就是采样,经常采用的采样策略有均匀的负采样,对于流行的负样本过采样,但是这些策略却较难捕捉到真实的负样本。

3.Exposure-based model:另外一个策略是开发基于曝光的模型,这样可以知道一个商品被曝光到某个用户的可能性等。

热门商品的推荐频率甚至超过了它们的受欢迎程度。长尾现象在推荐数据中很常见:在大多数情况下,一小部分受欢迎的商品占了大多数用户交互的比例。当对这些长尾数据进行训练时,该模型通常会给热门项目的评分高于其理想值,而只是简单地将不受欢迎的商品预测为负值。因此,推荐热门商品的频率甚至比数据集中显示的原始受欢迎程度还要高

忽略流行度经常会带来非常多的问题:

(1) 降低个性化的程度影响,影响用户的体验;

(2) 降低了推荐系统的公平性, 流行的商品却不一定是高质量的, 对流行商品的推荐会降低其它商品的曝光,这是不公平的;

(3) Popular Bias会增加流行商品的曝光率, 使得流行的商品越加流行,使模型训练更加不平衡;

另外一个不平衡的问题的原因是由于推荐结果的不公平带来的。基于诸如种族、性别、年龄、教育程度或财富等属性,不同的用户群体通常在数据中不平等地表示。在对这些不平衡数据进行训练时,模型很可能学习这些表示性过高的群体,在排名结果中对其进行强化,并可能导致系统性歧视,降低弱势群体的可见度(例如,代表少数群体不足、种族或性别陈规定型观念)。

解决方法:

解决流行度偏差的方案有四类:

1.正则

合适的正则可以将模型推向平衡的推荐列表。

CTR预估场景下,构造的模型越复杂参数越多,越容易过拟合。实际场景中,存在着大量的长尾数据,这些数据的存在一方面在训练过程中增加了复杂度,另一方面在结果上产生了过拟合。直接去掉这些长尾数据是一种简单的处理方式,但也丢掉了很多信息。因此,DIN文章中给出了自适应正则化调整的方式(Adaptive正则化方法),对高频减小正则,对低频增大正则。

2. 对抗训练

基本思路在推荐G以及引入的adversary D进行min-max博弈,这样D可以给出提升推荐锡惠的信号。通过G和D之间的对抗学习,D学习流行项和利基项之间的隐式关联,G学习捕捉更多与用户历史相关的niche商品,从而为用户推荐更多长尾商品。

3. Causal graph

因果图是反事实推理的有力工具。Zheng等人利用因果推理解决流行偏差。他们假设用户对商品的点击行为取决于兴趣和流行程度,并构建了一个特定的因果图。为了解决用户兴趣和流行偏差的问题,作者考虑了两种嵌入方法:兴趣嵌入以捕获用户对商品的真实兴趣,以及流行度嵌入来捕获由流行度引起的伪兴趣。在多任务学习的框架下,可以利用特定原因的数据对这些嵌入进行训练。最后,兴趣嵌入将被用于最终推荐,在这里,受欢迎度偏差已经被消除。

4. 其它方法

通过引入其它side information来降低流行度的偏差, propensity score也可以被用来做popularity的bias。通过降低流行项对模型训练的影响,可以减轻流行偏差。

由于大多数现有推荐系统中的的长尾模型只关注尾部,而没有考虑与头部们的联系—头部包含丰富的用户反馈信息和与尾部相关的可转移上下文信息。为了改进长尾问题,谷歌进行了将知识从头部转移到尾部的研究,提出了一个新的对偶迁移学习框架,它可以从模型层和物品层协同学习知识迁移,利用了头部中丰富的用户反馈以及头尾部之间的语义联系。

(1)橙色部分学习通用的元迁移器;

(2)绿色部分学习Item之间的语义关系;

模型探究使用少量训练样本学习的模型与相同物品使用足够训练样本学习的模型之间的联系。

Base-Learner: 通过双塔模型得到的user embedding和item embedding,然后使用内积的方式得出预测的Score。

Meta-Learner:通过基学习器得到few-shot模型和many-shot模型之后,利用元学习器映射两个模型的参数,从而捕捉元级知识。

在KDD Cup2020中,美团技术团队给出了基于时间加权和图的解决方案,大概思路如下:

针对选择性偏差和流行度偏差两方面挑战,学习用户的每个历史点击商品和候选商品的关系,可以理解为u2i2i的建模。这种建模方法更有助于学习多种i2i关系,并且可以容易地将i2i图中的一跳关系拓展到多跳关系,多种i2i关系可以探索更多无偏数据来增大商品候选集和训练集,达到了缓解选择性偏差的目的。

同时,考虑到流行商品引起的流行度偏差,我们在构图过程中对边权引入流行度惩罚,使得多跳游走时更有机会探索到低流行度的商品,同时在建模过程以及后处理过程中我们也引入了流行度惩罚,缓解了流行度偏差。

点击共现边通过用户的历史商品点击序列所构建,边的权重通过以下的公式得到,其在两个商品间的用户历史点击共现频数的基础上,考虑了每次点击共现的时间间隔因子,并加入了用户活跃度惩罚以及商品流行度惩罚。

时间间隔因子考虑到了两个商品间的共现时间越短则这两个商品有更大的相似度;用户活跃度惩罚考虑了活跃用户与不活跃用户的公平性,通过用户历史商品点击次数来惩罚活跃用户;商品流行度惩罚考虑了商品的历史点击频数,对流行商品进行惩罚,缓解了流行度偏差。

推荐系统中的长尾物品(Tail Items)推荐问题

推荐系统中的长尾物品(Tail Items)推荐问题相关推荐

  1. 关于推荐系统中的长尾商品

    关于长尾,<推荐系统实践>一书中的解释为: 从物品的角度出发,推荐系统可以更好地发掘物品的长尾(long tail).美国<连线>杂志主编Chris Anderson在2004 ...

  2. 自然语言处理技术(NLP)在推荐系统中的应用 原2017.06.29人工智能头条 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索、推荐以及算法相关工作。多年来主要从事推荐系统以及机

    自然语言处理技术(NLP)在推荐系统中的应用 原2017.06.29人工智能头条 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索.推荐以及算法相关工作.多年来主要从事推荐系统以及机 ...

  3. 自然语言处理技术(NLP)在推荐系统中的应用

    作者:CSDN云计算 来源:CSDN云计算 2017-07-03 16:19:00 个性化推荐是大数据时代不可或缺的技术,在电商.信息分发.计算广告.互联网金融等领域都起着重要的作用.具体来讲,个性化 ...

  4. SIGIR 2021 | AutoDebias:推荐系统中通用的自动去偏方法

    ©PaperWeekly 原创 · 作者|董汉德 学校|中国科学技术大学硕士生 研究方向|信息检索 摘要 近些年来,推荐系统的偏差越来越受到研究者的关注.训练推荐模型的数据大多为观测所得,而非实验所得 ...

  5. Doc2vec在推荐系统中的应用(含算法原理、代码实现)

    点击标题下「智能推荐系统」可快速关注 Doc2vec是Mikolov2014年提出的论文,也被成为Paragraph Vector,下面的内容分为三方面进行介绍,分别为: Doc2vec的原理 Doc ...

  6. 【推荐实践】Bandit算法在携程推荐系统中的应用与实践

    文章作者:携程技术团队 编辑整理:Hoh 出品平台:DataFun 导读:携程作为全球领先的 OTA 服务平台,为用户提供诸多推荐服务.下面我们介绍几个在实际推荐场景中面临的问题: 假设一个用户对不同 ...

  7. 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...

    自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...

  8. 【推荐实践】腾讯推荐系统中的深度匹配模型

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年6月热门报告合集从零开始了解推荐系统全貌机器学习在B站推荐系统中的应用实践微信视频号实时推 ...

  9. 【推荐实践】腾讯-推荐系统中的深度匹配模型

    导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索的本质是给定 query,匹配 doc:推荐的本质是给定 user,推 ...

最新文章

  1. mac 不显示 外接屏幕_Mac移动硬盘热拔(直接拔掉)后,再插上不显示移动硬盘解决办法...
  2. python 爬虫代理
  3. 【转】ofbiz数据库表结构设计
  4. HALCON示例程序count_pellets.hdev分割豆子,基本形态学的使用
  5. Vue首屏加载白屏问题及解决方案
  6. 宁波Uber优步司机奖励政策(12月21日到12月27日)
  7. HTML页面用ajax方式传递表单数据给后台,数据库插入信息后将json对象传回前端JS处理(前后台交互)
  8. java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 解决
  9. BricsCAD 21 for Mac(CAD建模软件)多语言版
  10. 下列选项中非法的c语言转义字符,c语言练习题t答案
  11. AOF -- Redis 设计与实现
  12. LCD1602显示中文汉字
  13. php pdf 生成分页,关于XSL生成PDF分页的问题
  14. 综合布线系统计算机网络,综合布线 计算机网络系统
  15. Android app分享文件到微信
  16. Vue的渐进式怎么理解
  17. 微信小程序之一本地图片处理--按屏幕尺寸插入图片
  18. android gridview 详解,Android GridView九宫图
  19. 元宇宙也“炒房”?多个二手交易网站屏蔽元宇宙关键词
  20. 数学竞赛-全微分与解析几何

热门文章

  1. [原创]位运算符实现两个整数加法运算
  2. 位操作在算法中的运用
  3. Could not parse configuration: /hibernate.cfg.xml
  4. IIS上.Net 扩展中进行恢复
  5. 不唐突的JavaScript的七条准则
  6. 今天去医院拿宝宝的微量元素检查结果
  7. 最新临床肿瘤学文献精选(2021.12.5-2021.12.11)
  8. AnimalTFDB 3.0:动物转录因子注释和预测的综合资源库
  9. java父进程获取子进程异常_如何在perl的父进程中获取死亡的子进程的PID?
  10. 北斗导航 | 卫星导航基础知识(卫星轨道及卫星在轨运动)