SIGIR2022 | 流行度偏差如何利用?探索解耦域适应无偏召回模型

简介: SIGIR2022 | 流行度偏差如何利用?探索解耦域适应无偏召回模型

1.gif

召回模型中流行度偏差的现象主要有两种:流行度分部差异、长尾分布差异。本工作主要探索如何改善召回阶段中的双塔模型来缓解流行度偏差。目前已有缓解流行度偏差的方法主要有两大类:逆倾向评分(IPS)和因果图推断。但是,我们认为不能盲目抑制流行度偏差,而应探索如何更好将其利用。所以,本次工作从缓解流行度偏差的角度调整为合理利用流行度偏差的角度。此工作已被SIGIR-2022接收。


背景

推荐链路大概率会面临流行度偏差问题,即少量的热门商品占据了大部分的曝光,如图1柱状图所示,在有好货场景中,Top 10%的商品占据了63%的曝光量。在排序阶段去缓解马太效应,破除信息茧房,往往对效率的负面影响较大;而召回阶段作为整条召回链路的基底,在处理流行度偏差上的优势在于:召回阶段一般由多路组成,额外增加一路无偏探索更为平滑,后链路顶多不认该路的召回结果而减少透出,对效率指标的负面影响一定程度能降至最低。因此,该工作主要探索如何改善召回阶段中的双塔模型来缓解流行度偏差。

image.gif

图片.png

图1:流行度偏差展示。Item Group通过曝光频率的排名进行分组。直方图表示每个组的曝光量在总曝光量的占比;绿线表示每个组正样本的平均分值(流行度分布差异);红线表示每个组的Hitrate(长尾分布差异)。



我们将流行度偏差的产生归因于两个:

  1. 由于日志中包含了大量的热门商品正样本,目前的训练范式,如pointwise和pair-wise损失,鼓励模型推荐更多的热门品以达到更低的损失,将流行度信息注入ID表征中,如item id(例如,在训练模型时,即使商品特征仅用不含流行度特征的ID类信息,马太效应同样存在,证明ID embedding会在训练的时候记住流行度信息),从而往这个方向更新参数。如图1绿线所示,即使都为正样本,高曝品的打分均值也高于长尾品。我们将该现象定义为流行度分布差异,即在商品ID表征中所包含的流行度存在差异。
  2. 由于长尾商品日志的稀疏性,使得这类商品的表征学习不够充分,模型(过拟合于热门品)难以准确的预估它们,如图1红线所示,我们将此现象定义为长尾分布差异


目前,已有缓解流行度偏差的方法主要有两大类,逆倾向评分(IPS)【1】和因果图推断【2】。但是,我们认为不能盲目的抑制流行度偏差,而应探索如何更好将其利用。原因是:相比于长尾商品,热门商品的质量往往更好或者符合当前趋势,因此值得更多的推荐。而用户发生点击收到两个因素的影响,一种是从众心理,一种是真实兴趣。因此,盲目地去除流行度偏差将忽略交互日志提供的重要信息,抑制优质品的透出,影响从众心理带来的点击。综上,本次工作从缓解流行度偏差的角度调整为合理利用流行度偏差的角度。


方法

图片.png


图2:推荐过程的因果图表示,U-用户;I-商品;P-流行度;C-点击概率。


如图2a因果图所示,当前的训练范式会使得流行度信息不仅会影响用户的点击,还会被注入商品id表征中,从而加剧流行度偏差。因此,我们设计模型如图2b红线所示,从商品属性表征中解耦出原始的内容表示和流行度表示。具体来说,我们设计了可以联合训练有偏模型和无偏模型的解耦域适应网络图片.png,其难点在于如何提取无偏且学习充分的商品表示。针对流行度分布差异,我们设计了特征解耦模块(FDM)从商品属性embedding分离出属性表示和流行度表示;针对长尾分布差异,我们额外引入未曝光商品(大多数为长尾商品)来实现热门商品和长尾商品分布粒度上的对齐,进一步的,利用I2I范式,我们基于用户行为序列,设计商品相似度损失函数促使越相似的商品有越相似的商品向量表示,实现实例粒度上的对齐。接下来,我们将具体介绍我们的模型结构。

图片.png


图片.png

 Embedding Layer


图片.png


 特征解耦模块(FDM)


图片.png

 正则化缓解长尾分布差异

图片.png图片.png


 联合训练及在线服务    

图片.png


图片.png

实验部分

 离线实验


图片.png

图片.png

 线上实验


图片.png

 向量可视化


图片.png

图4 商品向量的T-sne可视化,红点为热门商品,蓝点为长尾商品,黄点为热门商品解耦出的流行度表示,绿点为长尾商品解耦出的流行度表示。

从图4a可以发现,由于流行度偏差的存在,Base模型所提取的商品向量表示存在着分布差异,这会导致过拟合于热门商品的模型难以精准评估长尾商品的好坏;从图4b可以看出,提取的无偏属性向量和解耦流行度向量符合预期,即属性向量不存在分布差异,而流行度向量具有区分度,且和属性向量有着明显的分界线。

图片.png

图5 每种颜色代表一个类目


为了验证的有效性,我们对进行了消融研究并进行了向量可视化,可以发现基于实例对齐的可以促使同一个类目的商品向量聚类的更紧凑。

 流行度偏移权重分析


图片.png
总结

虽然分发侧总是存在着流行度偏差,但不可否认的是该偏差体现了用户的反馈,一味的去抑制流行度偏差使得整体模型是无偏的并不能带来最好的收益。因此,我们认为模型应该去利用流行度偏差,但不能毫无扩张的去放大它。正如本文所说,用户的反馈是从众性和真实兴趣的体现,但是在此工作中只在商品测进行探索,并没有去建模用户侧每个用户从众性和真实兴趣的个性化倾向,在后期工作中,我们将会去探索如何分开去建模用户的这两种倾向。
致谢

感谢怀风、从之、徐往、斯陌、孑行、晨良等团队成员的帮助,感谢横云、明逸、文通等各位老师的支持。


参考文献

【1】A re-visit of the popularity baseline in recommender systems.

【2】Model-agnostic counterfactual reasoning for eliminating popularity bias in recommender system.


团队介绍

有好货算法团队:有好货做为淘宝中的内容导购场景,旨在帮助消费者发现新颖好货。团队主要负责整体推荐链路的技术探索,目前主要致力于无偏学习,全链路建模、连续迁移范式、不确定性量化、长短期兴趣挖掘等方面的探索,以提高优势商品挖掘能力和频道导购能力。在创造业务的同时,我们同样在进行技术沉淀,在SIGIR等国际会议上发表数篇论文,主要成果有PDN,UMI等。

相关文章
|
Java 对象存储
|
缓存 PyTorch 数据处理
基于Pytorch的PyTorch Geometric(PYG)库构造个人数据集
基于Pytorch的PyTorch Geometric(PYG)库构造个人数据集
1341 0
基于Pytorch的PyTorch Geometric(PYG)库构造个人数据集
|
7月前
|
容器
vllm+vllm-ascend本地部署QwQ-32B
本指南介绍如何下载、安装和启动基于Ascend的vLLM模型。首先,可通过华为镜像或Hugging Face下载预训练模型;其次,安装vllm-ascend,支持通过基础镜像(如`quay.io/ascend/vllm-ascend:v0.7.3-dev`)或源码编译方式完成;最后,使用OpenAI兼容接口启动模型,例如运行`vllm serve`命令,设置模型路径、并行规模等参数。适用于大模型推理场景,需注意显存需求(如QwQ-32B需70G以上)。
3172 17
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能城市交通管控与优化
【8月更文挑战第17天】 使用Python实现深度学习模型:智能城市交通管控与优化
538 0
|
存储 人机交互 数据库
如何数据库设计?
本文介绍了数据库设计的四种方法和基本步骤。直观设计法依赖设计者经验,规范设计法(如新奥尔良法)遵循软件工程原理,分为需求分析、概念设计、逻辑设计和物理设计四个阶段。计算机辅助设计法借助软件工具,自动化设计法则通过人机会话自动生成数据库。设计步骤包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和运行维护。需求分析是关键,概念结构设计是基础,逻辑和物理设计涉及数据模型转换和存储优化,而运行维护是持续改进的过程。
670 0
如何数据库设计?
|
机器学习/深度学习
从RNN、LSTM到GRU的介绍
从RNN、LSTM到GRU的介绍
|
机器学习/深度学习 数据可视化 算法
【Python机器学习专栏】t-SNE算法在数据可视化中的应用
【4月更文挑战第30天】t-SNE算法是用于高维数据可视化的非线性降维技术,通过最小化Kullback-Leibler散度在低维空间保持数据点间关系。其特点包括:高维到二维/三维映射、保留局部结构、无需预定义簇数量,但计算成本高。Python中可使用`scikit-learn`的`TSNE`类实现,结合`matplotlib`进行可视化。尽管计算昂贵,t-SNE在揭示复杂数据集结构上极具价值。
1059 1
|
存储 算法 数据可视化
深入解析力扣160题:相交链表的解决方法(哈希表法与双指针法详细图解)
深入解析力扣160题:相交链表的解决方法(哈希表法与双指针法详细图解)
|
网络协议 安全 网络安全
你了解计算机网络的发展历史吗?
你了解计算机网络的发展历史吗?