因果推断推荐系统工具箱 - DPA(一)

文章名称

Causal Intervention for Leveraging Popularity Bias in Recommendation

核心要点

为消除流行度偏差在训练模型时的影响,并且合理利用流行度偏差提升模型效果。作者提出PDA框架,在训练是利用算子进行概率推导并简化模型,消除Popularity Bias的影响;在预测时利用预测的物品流行度,影响模型的排序结果,提升模型和流行趋势的温和程度。

方法细节

问题引入

推荐系统会受到物品流行度偏差的影响,而协同过滤会放大这种影响(也不能怪协同过滤,用户只能看到这么多,当然选择更多人喜欢的)。现有的消除流行度偏差的方法主要利用IPS或者因果表示学习的方法。但是,有些物品的流行度体现了其自身的特质,比如,因简单好用而风靡全球。作者认为,一味地消除流行度偏差,可能导致数据的某些模式(特质)被磨平。
因此,平衡流行度偏差可能是更合理的做法,比如在训练的时候消除流行度偏差对模型精度带来的影响,在预测的时候适当引入流行度偏差。

具体做法

流行度是影响曝光和观测到点击交互的混淆变量,共同影响两者的结果。作者提出了Popularity-bias Deconfounding and Adjusting(PDA)框架,在训练是消除流行度偏差的影响,并在预测时利用因果干预的方式注入合理的流行度,提升推荐性能。

causal graph

从因果图中可以看出,物品的流行度通过两条通路影响用户的点击,1),2)。这样,物品流行度的混淆可能会增加我们观测到用户点击了该物品的概率,造成训练数据的偏差。在训练阶段,为了消除这种影响,我们需要利用(因果性)来估计来切断,消除带来的混淆影响。在这种操作下学习的模型(参数)相比在(相关性)下学习的模型会更加准确。作者把这个学习方法称为Popularity-bias Deconfounding。作者认为,对物品流行度进行预判,并给用户推荐可能会流行的物品,能够提升模型的效果(无论匹配的准确度还是后续的转化率)。个人认为,是因为这里预判的流行是由于物品本身的特质(比如上边说的简单好用的爆款),而不是之前推荐结果数据造成的误导。因此,在预测阶段,作者采用的方法(这里是因果的表述方式,模型上,就是利用纠偏后的预测模型,并且把物品的流行度当做输入,最终做整体预测)来提升模型效果,作者称之为Popularity-bias Adjusting。

作者通过观察发现,物品的流行度是随着有着明显时间变化的,并把这种现象称为Drift of Popularity。因此,作者把数据按时间分成了不同的子集,并在每个子集上,计算了物品的被点击频率,作为该时间段内的区间流行度(作者提到可以计算全局流行度,但是区间流行度可以反映出流行度的迁移)。因为是一个0到1之间的值,可以看做是一种概率。同一时刻,所有物品(或者说它的编号)的区间流行度构成了一个分布(分布律)。利用JS散度,对比不同时刻的区间流行度分布,其结果如下图所示。左侧图表示,不同数据集下,当前时刻和下一时刻的JS散度是不同的,表明流行度分布存在迁移现象。把左图的迁移取值进行累加,得到右图的结果。表明迁移是一直存在的。并且随着时间间隔增大,迁移到幅度更大。

Local Popularity
Drift of Popularity

通过这一发现,作者把模型的目标定义为准确度估计一下时刻的物品的点击情况,需要在悬链是消除流行度偏差影响,并在预测时合理利用可能的流行度趋势。

你可能感兴趣的:(因果推断推荐系统工具箱 - DPA(一))