您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

精准推荐的秘术:阿里解耦域适应无偏召回模型详解

时间:2023-06-05 13:14:19  来源:微信公众号  作者:DataFunTalk
在训练过程中,为了降低损失,推荐系统往往更频繁地推荐流行商品,将流行度信息注入 ID 表征中,进而加剧热门商品表示与长尾商品表示之间的流行度分布差异。此外,长尾商品在交互中的稀疏性使其难以获得好的表示,导致长尾分布也发生转移。本次分享主要提出了一种解耦域适应无偏网络,可以在分离流行度表示和商品属性表示的前提下同时训练有偏和无偏模型,并有效利用流行度偏差。

一、场景介绍

 

图片

 

首先来介绍一下本文涉及的场景—— “有好货”场景。它的位置是在淘宝首页的四宫格,分为一跳精选页和二跳承接页。承接页主要有两种形式,一种是图文的承接页,另一种是短视频的承接页。这个场景的目标主要是为用户提供满意的好货,带动 GMV 的增长,从而进一步撬动达人的供给。

二、流行度偏差是什么,为什么

接下来进入本文的重点,流行度偏差。流行度偏差是什么?为什么会产生流行度偏差?

1、流行度偏差是什么

 

图片

 

流行度偏差有很多别名,比如马太效应、信息茧房,直观来讲它是高爆品的狂欢,越热门的商品,越容易曝光。这会导致优质的长尾商品或者达人创作的新商品没有曝光的机会。其危害主要有两点,第一点是用户的个性化不足,第二点是达人创作的新商品得不到足够的曝光,使得达人参与感降低,因此我们希望缓解流行度偏差。

从上图右边的蓝色柱状图可以看出,曝光 top10% 的商品在某一天中占据了 63% 的曝光,这证明在有好货的场景下马太效应是非常严重的。

2、为什么会产生流行度偏差

接下来我们去归因为什么会产生流行度偏差。首先,需要阐明我们为什么会在召回截断做缓解流行度偏差的工作。排序模型拟合的是商品的 CTR,它的训练样本包含正样本和负样本,CTR 越高的商品越容易获得曝光。但是在召回阶段,我们通常会采用双塔模型,它的负样本通常会通过两种方式产生,第一种是全局随机负采样,第二种是 batch 内负采样,batch 内负采样是将同一个 batch 取正样本的其它曝光日志当作负样本,所以它在一定程度上可以缓解马太效应。但是,通过实验我们发现,全局负采样实际的线上效率型效果会更好。不过,推荐系统中的全局随机负采样可能导致流行度偏差,因为它只为模型提供了正反馈。这种偏差可能归因于流行度分布差异和先验知识干扰,即用户倾向于点击更受欢迎的物品。因此,模型可能会优先推荐热门物品,而不考虑它们的相关性。

我们也分析了流行度分布差异,如上图右边绿线所示,通过将商品按照曝光频率分组并计算每组的正样本平均分,发现即使所有样本都是正样本,平均分数也随曝光频率的下降而下降。推荐系统模型训练时存在流行度分布差异和长尾分布差异。模型会倾向于把流行度信息注入到商品的 ID 特征中,导致流行度分布差异。高爆品获得的训练次数远大于长尾商品,使得模型过拟合于高爆品,长尾商品难以得到充足训练和合理向量表示。如上图右边的 TSN 图所示,蓝点表示高曝商品的商品向量,而红点表示长尾商品的商品向量,显示出分布上的显著差异。而且如上图右边的红线所示,hit ratio 也会随着曝光数的降低而降低。所以,我们把流行度偏差的产生归因于流行度分布差异和长尾分布差异。

三、流行度偏差当前解决方案

图片

当前业界的解决方案主要包括两种,分别是逆倾向评分(IPS)和因果推断。

1、逆倾向评分(IPS)

通俗来讲就是将主任务损失函数中高曝光概率商品的权重调低以避免过度关注于高曝光概率商品,从而可以更平均地关注整个正样本分布。但是,这种方法需要提前预测曝光概率,这种预测是不稳定的,容易失效或者波动较大。

2、因果推断

我们需要构建一张因果图,i 代表商品特征,u 代表用户特征,c 代表点击概率,这张图就表示给模型输入用户特征和商品特征,预测点击率。如果我们把流行度偏差也考虑到这个模型中,用 z 来代表,它不仅会影响点击率,还会影响商品的特征表示  i,因果推断的方法是尝试去阻断 z 对 i 的影响。

比较简单的方法是利用商品的一些统计特征单独得到一个 bias 塔,此时模型会输出两个分,一个是真实的点击率,另一个是商品的流行度分,在线上预测的时候会将商品的流行度分去掉,实现对流行度偏差的解耦。

第二种方法是将用户点击归因为两类,一类是从众兴趣,一类是真实兴趣,分别构建样本联合训练。相当于得到两个模型,一个模型去得到用户的从众兴趣分,一个模型去得到用户的真实兴趣分。因果推断其实也存在问题,它解决了流行度分布差异,但不能解决长尾商品缺乏训练数据的问题。当前的解决方案倾向于消除流行度偏见,但这对于需要“马太效应”来生存的推荐系统可能并不总是有益的。所以,我们建议不要完全去除推荐系统中的流行度偏差,因为流行的项目通常更优质,用户也有从众心理和真实兴趣两种心理,完全去除流行度偏差会影响用户从众兴趣的满足。应该合理利用流行度偏差,不加剧偏差。

四、CD2AN 基本框架

 

图片

 

我们这一次探索的工作就是如何合理地利用流行度偏差,要想合理地利用流行度偏差,需要解决一个难点:“如何提取无偏且学习充分的商品表示?”针对流行度分布差异,我们需要从商品 ID 中解耦出真实内容向量和流行度向量。针对长尾分布差异,我们借鉴了域适应的范式将整体分布对齐,借鉴了对比学习的范式将实例分布对齐。

先来介绍 base 模型的基本结构,base 模型其实就是一个经典的双塔模型。接下来详细介绍下我们是如何解决前面提到的两个问题的(流行度分布差异和长尾分布差异)。

1、特征解耦模块缓解流行度分布差异

 

图片

 

特征解耦模块是本文针对推荐系统中的流行度偏差问题提出的一种解决方案。该模块通过将物品向量表示中的流行度信息与属性信息分离开来,从而减轻流行度对物品向量表示的影响。具体地,该模块包括流行度编码器和属性编码器,通过多层感知器的组合学习得到每个物品的属性和流行度向量表示。这个模块的输入是物品的属性特征,例如物品 ID、物品类目、品牌等,如上图模型结构中的右边部分所示。这里会有两个约束,包括正交正则化和流行度相似度正则化,旨在将流行度信息与物品属性信息分离。其中,通过流行度相似度正则化,模块被鼓励将嵌入物品属性的流行度信息与真实流行度信息对齐,而通过正交正则化,模块被鼓励在编码中保留不同的信息,从而实现分离流行度信息和物品属性信息的目标。

我们还需要一个学习真实流行度的模块,如上图模型结构中的左边部分所示,它的输入主要就是商品的统计特征,然后经过一个 MLP 得到真实的流行度表示。

2、正则化缓解分布差异

 

图片

 

接下来,我们想要解决长尾分布差异的问题。

我们借鉴了迁移学习的思想,实现热门商品和长尾商品的分布对齐。我们在原来的双塔模型中,引入了一个未曝光商品,使用了 MMD 的损失函数(如上图左上所示),这个损失函数希望热门商品域和长尾商品域的簇中心尽可能靠近,如上图右上示意图所示。由于这种域对齐是无监督的,可能会产生负迁移,我们做了如下优化:曝光样本在域对齐损失上的梯度被停止,防止影响到任务损失;对于未曝光样本,引入精排分进行知识蒸馏。

我们还借鉴了实例对齐的思想,希望可以学习得到更好的商品向量表示,主要思想就是有效共现次数越多的商品,向量表示越相似。这里的难点是如何去构造 pAIr。在用户有过往行为的商品序列中,天然存在这样的 pair。以一个用户举例,一条样本包含了一个用户的行为序列和目标商品,那么目标商品和用户行为序列中的每个商品就能构成共现的 pair。我们在经典的对比学习的损失函数的基础上还考虑了用户的兴趣多样性和商品频率,具体的损失函数公式可见上图中左下部分。

我们可以看一个直观的示意图,如上图中右下所示,灰色的点是目标商品,橙色的点是用户的行为序列,蓝色的点是我们随机负采样得到的负样本。我们希望借鉴对比学习的方法去约束用户行为序列中每个商品都和目标商品靠近。

3、有偏无偏联合训练

 

图片

 

以上模块有效地得到了商品的无偏内容表示和解耦的流行度表示,我们应该怎样去应用呢?我们利用了无偏模型和有偏模型联合训练的方式,无偏商品向量可以基于解耦模块及正则化提取,为了能够利用流行度信息,我们还引入了流行度特征,有偏模型只会继承流行度偏差,不会加剧偏差。线上服务部分,如上图右边所示,我们将无偏的商品表示和有偏的商品表示通过参数 α 融合起来得到线上的商品表示,这样即可通过用户向量来召回商品,这个 α 是调节召回关注流行度信息的程度。

4、离线及线上实验

 

图片

 

上图中展示了这个模型离线及线上的效果。在离线实验中,我们引入了 C-Ratio 的指标,来衡量召回结果中有多少商品是高曝光商品。通过离线实验我们可以看出各个模块都有一定程度的贡献。无偏模型在线上效率指标方面并没有收益,说明流行度信息是有用的,我们还是需要使用有偏模型去利用流行度信息。

图片

最后,我们对模型结果做了可视化的展示。我们发现新的模型结构的确可以将高爆商品和长尾商品的分布记性对齐,解耦出来的流行度表示向量和商品无偏的内容表示几乎是没有交集的,并且同类目的商品能有更紧密的联系,通过对 α 的调整,可以让模型有方向地去拟合用户的从众兴趣和真实兴趣。

今天的分享论文标题是《Co-training Disentangled Domain Adaptation.NETwork for Leveraging Popularity Bias in Recommenders》。

五、问答环节

Q1:未曝光样本是怎么加入到样本中的?

A1:离线生成的,针对一条样本,我们可以拿到目标正样本及对应的类目,然后离线地随机采样出若干个和目标正样本相同类目的商品,挂载到训练样本中。

Q2:引入同类的未曝光样本,会不会增加学习难度?

A2:引入的未曝光样本是没有标签的,是通过无监督的方式来进行分布对齐,可能会存在负迁移的情况,我们用了两个技巧来解决这个问题:曝光样本在域对齐损失上的梯度被停止,防止影响到任务损失;对于未曝光样本,可以引入精排分进行知识蒸馏。

Q3:未曝光样本获取精排分成本会不会很高?

A3:离线对样本用精排模型打一遍分,作为特征来使用,性能还好。

Q4:未曝光样本是进精排未曝光的样本吗?

A4:不是,这样大概率还是一个高爆品,我们使用的是全局同类目下随机采样的结果。



Tags:模型   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
华为笔记本将接入盘古大模型!全新华为MateBook X Pro即将发布
快科技4月10日消息,华为官方宣布,华为将于4月11日举办新品发布会。据了解,此次发布会将推出全新的华为MateBook X Pro,而预热海报的主题是“轻且强”。这里的“强”不仅仅是指性...【详细内容】
2024-04-10  Search: 模型  点击:(4)  评论:(0)  加入收藏
行业大模型快速落地的一年,如何做?
生成式AI正成为时下科技企业“讲故事”的关键词之一。但从发展上看,无论是“文生文”的大语言模型,还是“文生图”的多模态模型,更多的是辅助人们进行一些简单的办公,或者提供一...【详细内容】
2024-04-10  Search: 模型  点击:(3)  评论:(0)  加入收藏
AI是万灵药?Meta要把大模型塞进AR眼镜里
寻找下一块“屏幕”,这无疑是最近几年科技行业的一个热门赛道。随着个人计算机点燃了互联网,智能手机让移动互联网无处不在之后,这前后两次造富神话的出现,也让所有人都在期待下...【详细内容】
2024-04-09  Search: 模型  点击:(5)  评论:(0)  加入收藏
AI程序员上岗 垂类大模型应用迎来井喷期
能自动写代码的“AI员工”、逐渐告别不够好用的智能客服,无需费时费力开发的工业AI控制器……随着人工智能大模型能力开始深入多个行业,IT、工业生产、金融、服务...【详细内容】
2024-04-07  Search: 模型  点击:(4)  评论:(0)  加入收藏
AI干掉声优?音频大模型追逐“图灵时刻”
七十年前,“人工智能之父”图灵提出,如果人无法判断屏幕的另一侧究竟是人还是机器,就证明机器具备了人一样的智能。这一经典的图灵测试如同北斗星一般,指引着AI行业的工作者们不...【详细内容】
2024-04-03  Search: 模型  点击:(5)  评论:(0)  加入收藏
大模型Kimi火了,长文本“卷”出新高度
近日,AI智能助手Kimi宣布支持200万字无损上下文,在长上下文窗口技术上再次取得突破,引燃人工智能领域新一轮投资热情。  摄影/宁颖OpenAI官方去年11月发布的GPT-4 Turbo,支持1...【详细内容】
2024-03-29  Search: 模型  点击:(13)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27  Search: 模型  点击:(13)  评论:(0)  加入收藏
Sora超逼真视频引恐慌!Nature刊文警示AI视频模型,或在2024年颠覆科学和社会
新智元报道编辑:LRS【新智元导读】王炸Sora发布后,想要分辨AI视频和真实视频变得更难了,各行各业都面临新的挑战与危机。‍技术的发展总是伴随着被滥用的风险,从ChatGPT到最...【详细内容】
2024-03-27  Search: 模型  点击:(19)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  Search: 模型  点击:(9)  评论:(0)  加入收藏
超长文本是AI大模型的能力突破口吗?
◎记者 刘怡鹤近日,能“一口气读完20万字小说”的AI大模型应用Kimi再次为国内AI产业添了一把火。业内认为,国产大模型能力提升或成今年国内AI领域最核心的主线。超长上下文是...【详细内容】
2024-03-26  Search: 模型  点击:(8)  评论:(0)  加入收藏
▌简易百科推荐
小红书、视频号、抖音流量算法解析,干货满满,值得一看!
咱们中国现在可不是一般的牛!网上的网友已经破了十个亿啦!到了这个互联网的新时代,谁有更多的人流量,谁就能赢得更多的掌声哦~抖音、小红书、、视频号,是很多品牌必争的流量洼地...【详细内容】
2024-02-23  二手车小胖说    Tags:流量算法   点击:(13)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03   一安未来  微信公众号  Tags:雪花算法   点击:(50)  评论:(0)  加入收藏
程序开发中常用的十种算法,你用过几种?
当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。1. 冒泡排序 (Bubble Sort):冒泡排序是一种简单的比...【详细内容】
2024-01-17  架构师老卢  今日头条  Tags:算法   点击:(44)  评论:(0)  加入收藏
百度推荐排序技术的思考与实践
本文将分享百度在推荐排序方面的思考与实践。在整个工业界的推广搜场景上,特征设计通常都是采用离散化的设计,需要保证两方面的效果,一方面是记忆,另一方面是泛化。特征都是通过...【详细内容】
2024-01-09  DataFunTalk  微信公众号  Tags:百度推荐   点击:(77)  评论:(0)  加入收藏
什么是布隆过滤器?如何实现布隆过滤器?
以下我们介绍了什么是布隆过滤器?它的使用场景和执行流程,以及在 Redis 中它的使用,那么问题来了,在日常开发中,也就是在 Java 开发中,我们又将如何操作布隆过滤器呢?布隆过滤器(Blo...【详细内容】
2024-01-05  Java中文社群  微信公众号  Tags:布隆过滤器   点击:(87)  评论:(0)  加入收藏
面向推荐系统的深度强化学习算法研究与应用
随着互联网的快速发展,推荐系统在各个领域中扮演着重要的角色。传统的推荐算法在面对大规模、复杂的数据时存在一定的局限性。为了解决这一问题,深度强化学习算法应运而生。本...【详细内容】
2024-01-04  数码小风向    Tags:算法   点击:(95)  评论:(0)  加入收藏
非负矩阵分解算法:从非负数据中提取主题、特征等信息
非负矩阵分解算法(Non-negativeMatrixFactorization,简称NMF)是一种常用的数据分析和特征提取方法,主要用于从非负数据中提取主题、特征等有意义的信息。本文将介绍非负矩阵分解...【详细内容】
2024-01-02  毛晓峰    Tags:算法   点击:(63)  评论:(0)  加入收藏
再谈前端算法,你这回明白了吗?
楔子 -- 青蛙跳台阶一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。分析: 当n=1的时候,①只需要跳一次即可;只有一种跳法,即f(...【详细内容】
2023-12-28  前端爱好者  微信公众号  Tags:前端算法   点击:(108)  评论:(0)  加入收藏
三分钟学习二分查找
二分查找是一种在有序数组中查找元素的算法,通过不断将搜索区域分成两半来实现。你可能在日常生活中已经不知不觉地使用了大脑里的二分查找。最常见的例子是在字典中查找一个...【详细内容】
2023-12-22  小技术君  微信公众号  Tags:二分查找   点击:(78)  评论:(0)  加入收藏
强化学习算法在资源调度与优化中的应用
随着云计算和大数据技术的快速发展,资源调度与优化成为了现代计算系统中的重要问题。传统的资源调度算法往往基于静态规则或启发式方法,无法适应动态变化的环境和复杂的任务需...【详细内容】
2023-12-14  职场小达人欢晓    Tags:算法   点击:(165)  评论:(0)  加入收藏
站内最新
站内热门
站内头条