RecSys'23 谷歌 | 召回负反馈建模


作者 | Conor 

整理 | NewBeeNLP

https://zhuanlan.zhihu.com/p/659719511


业界在负反馈领域已有不少探索,但鲜少有在流式召回模型中建模负反馈的研究。今天分享一篇来自谷歌RecSys'23的工作,探索如何在召回中引入负反馈建模

  • 论文题目:Learning from Negative User Feedback and Measuring Responsiveness for Sequential Recommenders
  • 论文地址:https://arxiv.org/abs/2308.12256

精华浓缩

  • 问题1:召回模型缺乏对负反馈的显式建模, 当推荐系统和用户兴趣不匹配时,很难快速有效得调整模型预估结果
    • 提出:利用显式和隐式的负反馈,提出一种「不该推荐」(not-to-recommend)的损失函数。
  • 问题2: 很难直观评估推荐系统对用户负反馈的响应方式和程度
    • 提出:一个反事实的仿真评估系统,通过不同的label生成不同的推荐结果,比较负反馈后相似度的降低程度来评估响应的有效性

前言

业界在负反馈领域已有不少探索,但鲜少有在流式召回模型中建模负反馈的研究。

目前召回算法主要的目标在于预测用户可能会喜欢什么,而不是预测用户不喜欢什么。所以很多时候召回模型在训练时都不会使用用户的负反馈信号,到了排序阶段才会利用用户的负反馈行为。

还有一些工作,将用户负反馈应用在特征、采样或其他辅助任务中,但很少有针对负反馈专门设计目标函数的工作。 所以当推荐系统和用户兴趣不匹配时,很难快速有效得调整模型预估结果。 尤其是对于低频场景、低活用户而言,负反馈的学习则更加重要。

本文则利用显式和隐式的负反馈,针对流式召回模型,提出一种「不推荐」(“not-to-recommend”)的损失函数。

除此之外,评估推荐系统对用户负反馈的响应也非常具有挑战性。 虽然通过A/B实验观测用户指标是一个金标准,但是知道推荐系统是如何响应用户负反馈的对于系统的可解释性至关重要。本文提出一个反事实的仿真评估系统,通过不同的label生成不同的推荐结果,比较负反馈后相似度的降低程度来评估响应的有效性。

负反馈目标函数

本文使用的完整目标函数如下图,包含两个部分:正反馈部分和负反馈部分。相对于基线,唯一的改动就是提出了负反馈目标函数。而做法也很简单,就是用得到负反馈预估概率,并在负反馈的样本上计算log似然函数。

值得说明的是,这里的正反馈和负反馈不一定是同一个行为的1或者0,而可能是不同的行为。 比如,对于抖音这样的沉浸式短视频应用,正例可以是完整播放一次视频,而负例可以是dislike或者停留的时长。

其中,表示基于用户状态s预估用户和候选发生正反馈的概率,通过如下softmax方式进行计算。

在训练时,一般会在采样batch内而非全局候选上进行计算。在线上serving时,一般通过最近邻检索算法进行召回。

用来表示「不推荐」损失函数的另一种做法是引入用户的负反馈,并在softmax负采样中提升真实负反馈样本的权重(相比于softmax随机负例),但是 本文提出的方法将正例和负例的目标函数解耦,一方面方便调节正负例的损失函数比重,另一方面可以引入多种负反馈行为,并赋予差异化的样本权重

本文分别尝试了显式和隐式负反馈的建模。显式负反馈使用了「不喜欢」(dislike)行为,隐式负反馈使用了「划走」(skip)。前者使用二值标签,后者使用停留时长作为标签。

Dislike行为本身比较稀疏,但该方法仍然可以显著降低用户的「不喜欢」次数,但是对于用户的正反馈指标并没有太大的改善。

划走行为则相对稠密,可以带来显著得用户满意度和活跃度指标的提升。

负反馈响应评估方法

在线的A/B实验虽然可以直接观察到用户满意度提升,或者不满意度下降,但是并不能直观地观测到用户发生负反馈后,推荐系统是否减少了相似内容地推荐,或者减少得程度。

本文设计了一个反事实的仿真系统来测试推荐系统对用户负反馈的响应。

测试的流程是:创建一个模拟用户,并交互k-1个物品,对于第k个物品而言,分别使用正反馈和负反馈得到两个推荐结果,然后比较两个推荐结果和第k个物品的相似度的差异。

简单理解一下,设计的目的就是观察第k个物品发生负反馈行为后,推荐系统是否推荐了更加不相似的物品,不相似的程度则以用户发生正反馈(比如较长的停留时间)后的推荐结果为基线。

论文以dislike为负反馈得到上图右侧的实验结果。当未使用负反馈信号时,模拟用户负反馈后未观测到任何响应,将负反馈信号加入到特征中,可以明显降低负反馈物品的相似度,但是降低程度相对有限,进一步进入负反馈label则可以大幅降低物品相似度。

Reference

负反馈的其他研究

  • How to deal with negative preferences in recommender systems: a theoretical framework. 2023.
  • Fifty shades of ratings: how to benefit from a negative feedback in top-N recommendations tasks
  • The impact of negative preferences on a recommendation process
  • Exploiting Negative Preference in Contentbased Music Recommendation with Contrastive Learning.
  • Loss aversion in recommender systems: Utilizing negative user preference to improve recommendation Quality. 2018.
  • SiReN: Sign-Aware Recommendation Using Graph Neural Networks. 2022.
  • Recommendations with negative feedback via pairwise deep reinforcement Learning. 2018.

正文引用

[1] Top-k off-policy correction for a REINFORCE recommender system. 2019.


一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)



相关推荐

  • 效率提升 100%,一款效果炸裂的白板神器!
  • 被忽略的缓存 -bfcache
  • zSet实现排行榜功能
  • 前OpenAI科学家:走一步看一步,未定目标也有路?!
  • 99%的时间里使用的14个git命令
  • 小米澎湃 OS 开机画面仍基于安卓;谷歌斥巨资以成多平台默认搜索引擎;Linux Mint 准备支持 Wayland|极客头条
  • 更简单、无痛的构建一个生产可用微前端架构系统
  • 商战激烈,太二酸菜鱼被美团关小黑屋
  • 作为前端开发者,你没有必要学 Rust
  • Spring 冷知识:一个提前 AOP 的机会
  • 关于语雀 23 日故障的公告
  • 一文搞懂“交易层”
  • 点击产生水波纹效果,vue自定义指令20行代码搞定~
  • Java中 4种 强大的缓存
  • 如何写出优雅的代码?试试这些开源项目「GitHub 热点速览」
  • Spring事务的传播机制
  • 香菜爱好者请进!大牌推出香菜口味新品?
  • DeepMind:谁说卷积网络不如ViT?
  • 35年首次证明!NYU重磅发现登Nature:神经网络具有类人泛化能力,举一反三超GPT-4
  • 面试太难,想要回去读研!