引言
近年来,预训练语言模型(PLMs)被用来利用商品的文本信息以丰富长尾商品的表示。其基本思想是通过 PLM 覆盖的外部语义知识来对齐热门商品和长尾商品表征。 然而,通过利用文本语义来消除流行度偏差并非易事。一个主要的障碍是模型训练仍依赖于稀疏但二元的用户行为作为监督数据。在前期实验中(下图),我们发现基于文本的推荐(PLMRec、MoRec)也遭受流行度偏差的影响。 为此,我们提出了一种基于预训练语言模型的新型自蒸馏框架,名为 STAPLE (self-distillation framework based on a pre-trained language model)。所提出的 STAPLE 包含两个主要组件:偏好排序模型和推荐模型,它们都被实例化为 PLM,以利用商品文本语义。 受最近强化学习结合人类反馈(RLHF)成功的启发,所提出的 STAPLE 旨在通过学习一个公平的偏好排序模型来恢复相对偏好,该模型可以成功区分与用户未互动商品的偏好等级。 具体而言,类似于大语言模型(LLMs)的训练,我们引入了预训练和解耦微调来构建偏好排序模型。然后,类似于 LLM 训练中的 RLHF,我们利用偏好排序模型在候选商品上估计的相对偏好信息来辅助推荐模型的学习。 我们证明了这种 RLHF 过程可以转化为高效的蒸馏学习过程。我们在三个真实世界的数据集上进行了广泛的实验。除了推荐性能指标外,我们还采用了两个额外的指标来衡量公平性和去偏性能。实验表明,我们的方法可以显著提高推荐的商品曝光公平性和减轻流行度偏差,同时也提高了推荐性能。
论文标题:
TEXT CAN BE FAIR: Mitigating Popularity Bias with PLMs by Learning Relative Preference
武汉大学、蚂蚁集团
https://dl.acm.org/doi/10.1145/3627673.3679581
https://github.com/WHUIR/STAPLE
相关定义
在序列推荐系统中,存在用户集 与商品集 ,针对用户集 中的任意用户 ,可以将其交互序列按照交互的时间先后组织成有序序列 ,其中 代表了用户 的第 个交互商品。 每个商品 都会关联一些文本特征,比如商品名称,商品描述等。我们使用 key-value 的形式来表示这些特征 ,其中 M 代表了文本特征数量。推荐模型形式化的被定义为一个打分函数 ,其计算商品 与用户 的相似度分数,因此序列推荐系统的目标是根据用户 与不同商品之间的分数,生成 Top-k 推荐列表。 1.2 PLMRec Backbone
识别未交互商品的相对偏好是一个挑战,因为我们只能获得稀疏且二元的用户行为数据。受预训练语言模型和基于文本推荐成功的启发,我们决定为偏好 Ranker model 和 Recommender model 构建一个基于 PLM 的模型(名为 PLMRec)。
我们通过将文本特征名称及其对应的值(包括商品 ID 信息)展开来对商品 进行 文本化表示 : 给定用户的交互序列 ,我们通过拼接用户交互过商品的文本化表示来对用户 进行 文本化表示 : 其中 = “Here is the visit history list of user” 和 = “recommend next item”” 是用于分别提示语言模型的两个不同模板,而符号 “;” 表示商品之间的分隔符。 然后,我们通过将 和 输入预训练语言模型生成商品 和用户 的表示: 其中 PLM() 表示建模用户或商品共享的任意预训练语言模型,例如 BERT、OPT、T5。PLM() 的输出是一系列上下文向量,而 AGG() 将这些向量聚合为一个表征。最终的输出 或 分别表示商品或用户的表征。之后,可以通过内积计算 和 的相关性评分。 最后,我们可以使用 Sampled cross-entropy 作为损失函数来优化模型参数: 其中 B 表示批次大小, 和 分别表示批次中第 个训练实例的 Ground-truth 商品和用户, 表示同一批次中随机负采样的商品。 一个长尾数据集中用户的行为分布是高度偏斜的,其中大多数用户交互集中在头部商品上。我们可以将每个训练样本的 Label 商品作为代理来构建训练集。设 表示商品 作为 Label 商品的训练样本数,因此商品 作为 Label 商品被采样的概率 如下所示: 其中 是一个超参数,用于控制流行度信息的重要性。我们可以通过设置不同的 值获得不同的采样策略: 实例采样: 当 时,这等价于原始长尾数据集,此时商品作为 Label 商品被采样的概率与其流行度成正比,在长尾数据集上训练的模型容易受到流行度偏差的影响。 目标采样: 当 时,我们确保每个商品被选为 Label 商品的概率相等。从这个角度来看,长尾数据集上的目标采样将生成一个均匀且公平的数据集。
方法
我们的偏好排序模型应能够准确识别未互动商品的不同偏好层次。这个目标在某种程度上与流行度去偏相关。如上所述,当我们使用目标采样时,所有商品都有相同的概率被选中进行模型训练。似乎直接使用这种采样策略来构建偏好排序模型是很简单的。然而,完全消除流行度的影响并不是最佳选择。
首先,目标采样会下采样热门商品,导致这些商品的训练不足。值得注意的是, 热门商品是将不同类型的商品连接在一起的语义中枢。 考虑到与热门商品共同出现的商品分布范围广泛,我们需要利用热门商品来构建 PLM 在推荐领域的语义连接。 其次,目标采样倾向于过度采样尾部商品。由于尾部商品可能占据商品空间的很大比例,通过分配更多权重给这些同样容易产生噪音的尾部商品,很容易导致过拟合。 因此,我们选择 两阶段 的方式进行偏好排序模型训练:在第一阶段使用实例采样对偏好排序模型进行预训练,旨在捕捉数据集中表达的常见模式,并实现一个鲁棒的预热模型初始化。然后,在第二阶段,我们可以使用目标采样对偏好排序模型进行微调。
然而,我们发现 PLM 中大量的参数容易导致对尾部商品的过拟合,并破坏先前学到的常见模式。借鉴于 CV、NLP 领域的一些前期工作,我们为 PLMRec 增加了一个额外的解耦多层感知器(Decoupled-MLP)来分离流行度因素: 上图左部分展示了偏好排序模型的整个两阶段训练过程: 在预训练阶段,所有参数都是可训练的,而在微调阶段,我们会冻结语言模型的参数,只更新 Decoupled-MLP。 之后,我们可以利用偏好排序模型为每个训练实例中未交互的商品生成相对偏好。这种思路类似于通过 RLHF 训练大语言模型,其使用奖励模型提供强化学习的监督信号。
在推荐系统的场景中,这种处理方式能够丰富监督信号,避免对长尾商品的训练不足。我们可以 将偏好排序模型视为 RLHF 中的奖励模型 。对于追求探索性和连续序列生成的语言模型而言,通常会采用强化学习来进行对齐。
相比之下,序列推荐系统的目标是预测下一个商品而不是生成一条商品序列。这种简单性使我们可以使用蒸馏学习进行偏好对齐:推荐模型变成了学习由教师(即偏好排序模型)产生的细粒度相对偏好的学生。
具体来说,我们重新初始化了另一个 PLMRec 模型作为推荐模型,并通过实例采样进行训练。对于每个训练实例 ( ) ,其中 是 的 Label 商品,我们随机抽取一组商品 作为负样本。 然后,我们利用偏好排序模型生成 Label 商品和负样本 的偏好分数,分别记 为 和 。 在这 里, 是 的偏好分数集合。 同样地,由推荐模型生成的分数分别记 为 和 。 在此,我们探讨了三种不同的蒸馏策略:成对蒸馏、硬蒸馏和软蒸馏。 成对蒸馏:在成对蒸馏过程中,推荐模型旨在学习随机负项与真实项之间的 相对偏好 。具体来说,当集合 中商品 的偏好评 分 小于 时 ,我们将其视为相对负项。否则,它就是相对正项。然后,可以按照以下方式计算成对蒸馏损失: 硬蒸馏: 我们直接将偏好排序模型排名最高的商品作为额外的 Label 用以监督推荐模型 软蒸馏: 在软蒸馏中,推荐模型会匹配 Label 商品和负采样商品的相对偏好排序。具体来说,优化目标是最小化两个概率分布之间的 KL 散度。 在本文中,我们选择软蒸馏作为默认设置,并将在后续进一步分析不同蒸馏策略的影响。训练推荐模型的最终损失函数如下: 其中 是蒸馏损失,可以是上述三种策略中的任意一种,即 , 是控制偏好对齐影响的超参数。
实验
数据集:采用 Amazon Review 下的 Food,Office,CDs 三个数据子集验证模型的有效性。 采用 5-core 的数据清洗方法,采用 leave-one-out 的训练集,验证集与测试集的划分方法,在验证集上验证,采用 Early-stop 策略 采用 Recall 与 NDCG 作为实验性能的评价指标,采用 C-Ratio(CR)与 Gini 作为曝光公平性的指标。其中 Gini 的计算方式如下,其中 是第 个商品的曝光次数:
3.2.1 主实验结果
上图展示了在三个数据集中我们与基线方法对应的结果,从实验结果中我们可以发现 STAPLE 相对于基线方法获得了稳定的性能提升。
3.3 深入分析
不同蒸馏方式的影响: 下表展示了不同蒸馏策略对最终性能的影响。我们可以看到,这三种策略的推荐性能表现差不多。然而, 仅选择最偏好的商品进行对齐的硬蒸馏 由于包含的信息较少导致去偏结果较差。成对蒸馏和软蒸馏在去偏性能上都优于硬蒸馏。这证明了来自相对偏好的更细粒度的监督对于消除受流行度偏差更有帮助。 Backbone 模型的影响: 我们认为,使用语言模型作为 Backbone 模型是更优的选择,因为预训练语言模型所涵盖的外部语义可以更好地表示长尾商品。幸运的是,我们提出的框架也能够适用于基于 ID 的模型。
具体来说,我们在文本到 ID(T2I)和 ID 到 ID(I2I)两种设置下进行了实验,以验证我们提出的偏好对齐框架的有效性。在文本到 ID 的设置中,我们使用 PLMRec 作为偏好排序模型,ID 模型作为推荐模型。在 ID 到 ID 的设置中,偏好排序模型和推荐模型都是基于 ID 的模型。这里,我们选择了 “GRU4Rec” 和 “SASRec” 来代表基于 ID 的模型。结果如下表所示。 在 I2I 设置中,我们发现虽然 HR 指标的表现大幅提升,但 CR 指标有所下降,然而 Gini 系数变得更糟。我们认为这是因为 CR 的下降是由于相对流行项目在长尾项目中的曝光增加。相比之下,在 ID 范式下,极端长尾项目的表示很难学习,导致 Gini 分数变差。
在 T2I 设置中,我们发现 SASRec 和 GRU4Rec 在三个指标上都取得了显著的性能提升,而 Gini 的下降幅度小于 CR。我们认为原因为:虽然基于蒸馏的学习可以将文本表示转化为 ID 表示,但极端长尾项目的 ID 表示仍然难以学习。实验验证了我们的观点,即蕴含通用知识的文本表示在流行度去偏方面更有效。
模型尺寸的影响: 在 Staple 中,我们使用 PLM 来编码商品文本的语义信息。众所周知,模型的大小在文本编码中起着关键作用,较大的模型拥有更强的语义理解能力。因此,我们用更大的模型(1.3B)测试了 PLMRec 的性能,并探讨我们提出的 STAPLE 是否能持续带来性能提升。实验结果如下表所示。根据结果,我们得出两个发现。
3.4 消融实验
我们设置了以下四种消融实验:
偏好排序模型缺少预训练步骤(w/o PT)
偏好排序模型缺少解耦合多层感知机(w/o DE)
偏好排序模型同时没有预训练步骤与解耦合多层感知机(w/o DE+PT)
偏好排序模型微调时没有冻结 PLM Backbone(w/o FR)
实验结果如上图所示,可以发现所有的模块对性能的提升都是有用的。
在这篇论文中,我们将流行度偏差归因于仅依赖于稀疏但二元的用户行为信号进行模型训练,并旨在生成对未交互商品的相对偏好,以实现去偏推荐。 受大语言模型训练中的 RLHF 范式启发,我们提出了一种基于预训练语言模型的新颖的两阶段自蒸馏框架,名为 STAPLE。类似于 RLHF 中的奖励模型,我们设计了一个偏好排序模型,通过目标采样学习用户所有商品的偏好。 然后,这个偏好排序模型用于为训练推荐模型提供额外的监督信号。我们通过在偏好排序模型和推荐模型之间进行蒸馏学习,直接对齐商品的相对偏好来代替 RLHF 中的强化学习。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读 ,也可以是学术热点剖析 、科研心得 或竞赛经验讲解 等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品 ,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬 ,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱: hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02 )快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」 也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」 订阅我们的专栏吧