文章名称
【www-2021】Disentangling User Interest and Conformity for Recommendation with Causal Embedding
核心要点
文章旨在解决Popularity Bias(或者说Conformity Bias),期望从结构上区分交互(反馈,比如点击)发生的真正原因,并利用不同的embedding表示出来。作者提出DICE,为用户和物品分别学习兴趣向量和趋同向量(受流行度影响的向量表示)。同时,利用因果推断的collider结构(因果图),保证每一个交互仅由一种向量作用产生,实现兴趣和偏差隐向量解耦。并且,利用课程学习和多任务学(权重调节?)进行参数学习。结果证明,模型在Non-IID的数据集上具有更强的鲁棒性。
方法细节
问题引入
推荐系统通常采用观测数据进行模型学习,观测数据常常受到物品流行度的影响,导致Popularity Bias(用户虽然不一定喜欢某个物品却因为跟风点击了物品)。现有方法采用对训练样本调权的方法或者利用少量完全随机数据的方法进行矫正。但是,这些方法没有考虑到不同用户受流行度偏差的影响不同的,并且没有真正区分一个交互发生的原因(是因为跟风还是因为喜欢),而把所有交互原因都用统一的向量表示。
作者把推荐模型在具有偏差的数据上训练以及在应用时没有偏差(或者偏差发生变化)的情景,理解为训练数据和测试数据是非独立同分布的场景。其中一个简单的例子如下图所示。图中,左侧训练数据的方块(蓝色,体积大)和右侧测试数据的方块(绿色,体积中)相比发生了特征变化(可以理解为特征发生了变化,即变了)。推广这个例子到推荐系统的场景,如果搜集训练数据时用户对流行物品的倾向(conformity,注意不是relevance)和在测试(上线预测)时的倾向不变。那么,当前方法没有问题,推荐模型会推荐流行度高的物品给用户。然而,这种倾向会发生变化(Non-IID),因此需要更鲁棒的系统来处理这一问题(纠正偏差)。
作者把上述问题定义为如下形式。观测数据,分别为用户、物品标号以及用户对该物品的流行度偏差(conformity,可以被表示为所有用户在该物品上的点击频次)。进而可以得到两个数据集分别表示有偏差的训练数据及以及没有偏差的测试数据集(或者偏差不同的)。分别表示训练集和测试集中的分布。推荐模型要做的就是在是Non-IID,即不同的情况下能够进行很好的预测。
具体做法
针对上述问题,作者对现有模型进行了3方面改进,1)提出解耦用户的兴趣embedding和流行偏差倾向embedding(而不是用数值或者向量的某一维表示);2)利用具有特定因果关系的进行解耦学习;3)利用课程学习和多任务学习的方法,从易到难进行解耦学习。
作者把用户对某个物品的反馈分数拆分成用户兴趣和用户受流行度影响两部分的和,即。
基于如下图所示的因果图,作者提出的SCM结构如下图所示。其中分别表示兴趣、流行度倾向、点击概率生成SCM中的独立随机噪声。分别表示用户兴趣和流行度倾向的某种结果,比如预估的评分,表示点击反馈的评分。
分别表示三个数据生成过程的生成机制,这三种机制需要根据实际场景进行制定。其中,如上所述是可加模型。依据常用的协同过滤方法的思路,我们把简单定义为用户和物品embedding的内积,最终整个SCM可以具象化为如下表达式。
其中,表示两组拆分后的embedding(拆分是指兴趣embedding和流行度倾向embedding)。可以理解为物品的特性(为了tong(省)yi(事)作者也用int表示,其实可以理解为物品让人喜欢的特质)。
作者多次强调,相比于[2]用数值来反映流行度倾向,文章提出的用向量的方法,能够更充分、多元的表现流行度倾向。
至此,整个建模思路模型描述完了,下一节讲解如何求解。
心得体会
Non-IID的例子
例子中,物体的颜色、形状的分布发生了变化,可以理解为变了。从迁移学习的角度看,发生了变化,需要利用基于边缘分布的迁移学习。而作者从因果推断(数据生成的原因的角度)看待这个问题,利用解耦表示学习的方法来描述数据变化的原因,实现迁移。本质上是利用因果推断的迁移学习,(通过解耦)学习得到的是在各个场景(训练和测试)下的不变特征表示(方块有四个角、四条边)。
兴趣漂移
除了作者提到的偏差的情况,用户的兴趣随着时间漂移也会Non-IID的情况。比如,通常我们把旧的数据作为训练数据,把时间上较新的数据作为测试集,有可能出现这个问题,也许同样可以用这种方法进行纠正。
可加模型?
作者认为可加和是合理的,由于用户的反馈举动是两部分共同影响的整体结果,参考[1]。并且可加模型广泛应用在因果推断领域,效果不错。此外,可乘模型也在其他场景有应用,但是其实没有并不能独立拆分出兴趣和流行度倾向。个人认为,两者是没有存在相互协同的影响,但不存在加速和成倍的关系,即不会因为物品流行,而用户更喜欢(因为我们就希望把音流行度造成的跟风式的喜欢拆分出来)。因此,加和确实更合理。