推荐系统旨在根据用户的偏好数据预测个性化的排名。随着语言模型(LM)的兴起,基于 LM 的推荐系统因其丰富的世界知识和强大的推理能力而受到广泛关注。大多数基于 LM 的推荐系统将历史交互转化为语言提示,将正向项目作为目标响应,并使用语言建模损失来微调 LM。然而,目前的优化目标未能充分利用偏好数据,也未针对个性化排名任务进行优化,这阻碍了基于 LM 的推荐系统的性能。
友情链接:ACEJoy
受人类偏好对齐中直接偏好优化 (DPO) 的最新进展以及 softmax 损失在推荐中的成功的启发,我们提出了 Softmax-DPO (S-DPO) 来将排名信息灌输到 LM 中,帮助基于 LM 的推荐系统区分首选项目和负向项目,而不是仅仅关注正向项目。
具体来说,我们将用户偏好数据中的多个负向项目纳入考虑,并设计了一个针对基于 LM 的推荐系统量身定制的 DPO 损失的替代版本,该版本与 softmax 采样策略相关联。从理论上讲,我们将 S-DPO 与负采样上的 softmax 损失联系起来,发现它具有挖掘难负样本的副作用,这确保了它在推荐任务中的出色能力。从经验上讲,在三个真实世界数据集上进行的大量实验表明,S-DPO 能够有效地模拟用户偏好,并进一步提高推荐性能,同时缓解 DPO 的数据似然下降问题。
为什么语言模型在推荐系统中表现不佳?
现有的基于 LM 的推荐系统通常使用语言建模损失来预测下一个 token,这与推荐任务中模拟用户偏好的目标存在显著差异。大多数基于 LM 的推荐系统通过利用专门的语言提示、将协作信号作为一种新的模态纳入,或扩展 LM 的词汇表来解决推荐任务。然而,这些推荐系统通常只考虑单个正向项目,并使用语言建模损失来更新 LM 参数,忽略了负向项目在推荐中的作用,阻碍了 LM 与用户偏好的对齐。
S-DPO 如何提升推荐效果?
S-DPO 是一种针对基于 LM 的推荐系统量身定制的 DPO 损失的替代版本,它通过整合多个负向项目来将排名信息灌输到 LM 中。S-DPO 首先利用监督微调来注入领域知识,提高 LM 遵循指令的能力,然后进入偏好对齐阶段。在偏好对齐阶段,S-DPO 将每个语言提示与正向项目和随机采样的多个负向项目配对,构建基于文本的偏好数据。
S-DPO 的优势在于:
- 利用多个负向项目: S-DPO 充分利用了用户偏好数据中的多个负向项目,而不是像 DPO 那样只考虑单个负向项目。这使得 S-DPO 能够更有效地学习用户偏好,并提升推荐性能。
- 与 softmax 损失的联系: S-DPO 与负采样上的 softmax 损失密切相关,这表明 S-DPO 能够有效地进行排名优化。
- 挖掘难负样本: S-DPO 能够挖掘难负样本,这些样本能够帮助模型更好地学习用户偏好,并提升推荐性能。
实验结果验证 S-DPO 的有效性
我们在三个真实世界数据集上进行了广泛的实验,结果表明 S-DPO 在 Hit Ratio@1 指标上比其他传统推荐系统和基于 LM 的推荐系统获得了显著的提升,验证了 S-DPO 的有效性。
此外,我们还进行了消融实验,结果表明:
- S-DPO 比仅使用单个负向项目的 DPO 性能更好,这表明多个负向项目能够提供更有效的排名梯度。
- S-DPO 能够缓解 DPO 的数据似然下降问题,这表明 S-DPO 能够更好地学习用户偏好,并提升推荐性能。
未来展望
S-DPO 作为 DPO 的一种推广,为未来的基于 LM 的推荐系统提供了宝贵的见解,并有可能惠及推荐系统以外的其他研究领域。未来,我们将继续探索 S-DPO 在其他场景下的应用,并进一步研究 softmax 排名损失在 LM 中的应用。