Denoising in Rec(2):Denoising Implicit Feedback for Recommendation

  • WSDM 2021 Full Research Paper


摘要

隐式反馈的普遍存在使得他们成为构建在线推荐系统的默认选择。虽然大量的隐性反馈缓解了数据稀疏的问题,但缺点是它们在反映用户的实际满意度方面不够清晰。因此,在推荐人培训中,考虑隐式反馈中不可避免的噪声是至关重要的。然而,很少有关于推荐的研究考虑到了隐式反馈的噪声特性。

本文主要探讨利用隐式数据进行推荐训练中的去噪问题。隐反馈噪声会带来严重的负面影响,即拟合噪声数据阻碍了推荐算法学习实际用户偏好。我们的目标是识别和剪除噪声交互(identify and prune),从而提高推荐训练的有效性。通过观察正常推荐训练过程,作者发现噪声反馈在早期阶段通常具有较大的损失值。受这一观察结果的启发,文章提出了一种新的训练策略,称为自适应去噪训练(Adaptive Denoising Training, ADT),它可以自适应地修剪训练过程中的噪声交互

具体来说,设计了两种自适应损失公式:

  • 截断损失(Truncated Loss),即在每次迭代中丢弃具有动态阈值的大Loss样本;
  • 加权损失(Reweighted Loss):自适应降低具有大Loss样本的权重。
    在广泛使用的二元交叉熵损失上实例化了这两种范式,并在三个有代表性的推荐器上测试了所提出的ADT策略。在三个基准测试上的大量实验表明,ADT显著提高了推荐的质量。

Main Story

由于数量大且容易收集, 隐性反馈(如点击和购买)通常是训练推荐算法的默认数据。然而,之前的研究已经指出隐性反馈与实际用户满意度间存在差异,这是由于噪声交互(用户不喜欢交互物品)的普遍存在。例如,在电子商务中,很大一部分购买最终都会遭到负面评论或退货。这个例子合适吗?

这是因为隐式交互很容易受到用户的第一印象和其他因素的影响,如标题偏差和位置偏差。此外,现有的研究已经证明了这种偏差(false-positive interactions)会对用户体验产生负面影响。然而,少考虑隐反馈噪声问题的推荐算法研究工作。

在本文中,作者认为这种假阳性交互记录会影响推荐算法建模用户的实际偏好,导致推荐质量低下。表1提供了在两个真实数据集上训练NeuMF时,假阳性相互作用负面影响的实验证据。我们通过删除测试集中的假阳性交互数据,构建clean testing set (每个假阳性交互作用通过交互作用后行为的辅助信息来识别,例如,评分([1,5])<3的样本定义为假阳性样本)。使用假阳性交互(normal training)训练NeuMF会导致平均性能下降15.69%和6.37%。因此,考虑隐式反馈中不可避免的噪声并进行去噪是至关重要的。

已有的一些工作尝试通过以下方式消除假阳性互动的影响:1)负面经验识别(上图b),通过额外参数进行数据筛选;2)各种反馈的结合(上图c)。

  • 前者通过预测带有附加用户行为(如停留时间和注视模式)和辅助项目特征(如项目描述长度)的假阳性反馈提前处理隐式反馈
  • 后者将额外的反馈(如点赞、跳过、完播)也加入模型训练中,以减少false-positive交互的影响。

这些方法的一个关键限制是,它们需要额外的数据来执行去噪,这可能不容易收集。此外,额外的反馈(如评级和收藏)通常规模较小,这将受到稀疏性问题的影响。例如,许多用户在观看电影或购买产品后不会给出任何反馈。

而本文主要探讨如何在使用任何额外数据的情况下,对隐式反馈进行去噪操作(上图d)。即只依赖隐式交互,并提取不同用户和项目之间的误报交互信号。噪声交互相对较难融入模型,表明噪声交互在训练过程中损失值的不同模式。不同推荐算法和数据集的初步实验揭示了类似的现象:在训练的早期阶段,假阳性交互作用的损失值大于真阳性交互作用的损失值。因此,由于损失较大,假阳性交互在很大程度上会误导早期的模型训练。更糟糕的是,推荐者由于其较强的表达能力,拟合了假阳性交互,这可能会过度拟合并损害泛化。因此,去噪的一个潜在想法是减少假阳性交互的影响,例如,移除具有较大Loss的交互,其中的关键挑战是同时减少对真阳性交互的误删。


通过上图的loss变化情况可以反映前文所述的噪声交互的loss特点。

Method

  • 任务定义: 使用point-wise的形式定义推荐任务,loss函数即为二元交叉熵形式:

    然而,由于存在会误导用户偏好学习的噪声交互,传统的推荐算法训练过程可能会导致较差的模型(即“Θ”),在干净的测试集上缺乏泛化能力。因此,我们定义了一个去噪推荐训练任务
    本文关注对假阳性交互的去噪,而忽略假阴性交互,即假负样本的去噪。这是因为正样本是稀疏的,因此,假阳性比假阴性更具影响力。

作者通过实验观察的方法得到以下重要结论

  • 最终,真阳性和假阳性相互作用的损失会收敛到一个具有相近值的稳定状态,这意味着NeuMF可以拟合两种样本。它反映了深度推荐模型能够“记忆”所有的训练交互,包括噪声交互。因此,如果数据有噪声,记忆将导致较差的泛化性能。
  • 在训练的早期,真阳性和假阳性交互作用的损失值下降不同。从图3(b)中,我们可以看到假阳性样本的loss明显大于真阳性样的loss,这表明在早期阶段,假阳性互动比真阳性互动更难记忆。原因可能是,假阳性表示用户不喜欢的项目,它们与用户没有交互的物品(即负面交互)更相似。

Adaptive Denoising Training

为了减少噪声交互的影响,ADT在训练期间动态去除难样例(hard interations, large-loss)。特别是,ADT丢弃或重新加权具有较大损失值的交互,以减少其对训练目标的影响。
并以二元交叉损失熵为例进行了ADT定义:

  • Truncated Cross-Entropy Loss


    其中t即为预设的阈值。

虽然这种简单的T-CE损失易于解释和实现,但固定阈值可能没有作用,这是因为损失值随着训练迭代次数的增加而减少。受动态调整思想的启发,文中将固定阈值替换为动态阈值函数,这会在训练过程中调整阈值。此外,由于不同数据集的损失值不同,会设置drop函数

完整的算法流程如下图所示,相对容易理解
  • Reweighted Cross-Entropy Loss
    类似于Focal Loss,根据预测值调整样本权重,当预测值较小时、gt却为正样本时,即为难样例,在去噪的场景下将该样本的权重降低

实验

遵循之前的工作,将数据集进行train/val/test划分(统计数据见表2)。为了评估去噪隐式反馈的有效性,训练集和验证集保存所有的交互(包括假阳性交互),而并且只在真阳性交互上测试推荐算法。也就是说,期望模型推荐更令人满意的物品

总体实验对比效果如下,粗看提升其实不是很明显。

关于实验部分,有几个问题

  1. 按照数据同分布的假设,那么在测试集中同样存在着所谓的false-positive sample, 在这样本身就有噪声的数据下评估去噪操作带来的性能提升是否合适? (当然受限于数据制约, 这么做也算是最简单的评估指标了
  2. 对于所谓false-positive sample是通过评分之类的数据进行人为划分定义的,应该添加不同划分的规则下得到的不同数据集上的实验效果
  3. 测试中作者过滤掉了false-positive sample,但看人为假定的正样本的效果,个人认为应当也在false-positive sample集合上进行模型效果对比,观察去噪操作后是否带来相应的性能显著下降,以及性能下降的幅度,进一步验证所谓false-positive的真伪性。

总结

  • 本文基于样本loss进行假真样例的去噪,同样基于point-wise的范式进行相应的算法设计。
  • 如何将假真样例和假伪样例的去噪算法进行统一,将point-wise和pair-wise loss下的去噪框架进行统一,是十分值得研究的问题。

END

本人所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人主页查看最新信息https://www.jianshu.com/u/40d14973d97c

你可能感兴趣的:(Denoising in Rec(2):Denoising Implicit Feedback for Recommendation)