推荐学习(六)——点击原因解耦:用户兴趣,item流行度

2022-09-19 11:52:58 浏览数 (1)

Disentangling User Interest and Conformity for Recommendation with Causal Embedding http://staff.ustc.edu.cn/~hexn/papers/www21-dice.pdf

背景

本文依旧是利用因果推断相关理论进行推荐系统纠偏的一篇文章,相关详细例子可以前往deconfounded中的“举个栗子”进行查看。这里进行简述,作者分析在用户购物的过程中,用户点击某个商品,一方面可能是因为他对这个感兴趣,另一方面可能是因为该商品最近比较热门,流行。而如若不加区分的直接从原始数据中进行训练,推荐,会使得推荐系统进入一个恶性循环,因此通常会进行纠偏,而本文是从分解原因的角度进行纠正。

  • 本文点击原因分解为用户兴趣(interest)和一致性(conformity),结合因果推断构建推荐系统模型。
  • 使用特定于原因的数据捕获两类特征,并构建多任务学习和累积学习从不同原因的数据中进行学习。
  • 所提出的DICE框架具有较好的可解释性,并且在非独立同分布的数据上具有较好的鲁棒性

此处的一致性,本人也不是特别理解,从文中判断是和item流行度相对应的特征

方法

将原因分为两类之后,可以构建新的因果图,如下图:

难点:

如果我们需要训练这个结果,需要得到interest单独作为原因的数据和conformity单独作为原因的数据,但是我们用于训练的数据只是单纯的整体数据,是两个耦合在一起的数据,而这难点就在于如何解耦这两个原因 从图中可以发现,该因果图为_对撞结构_,interest和conformity两个节点相互独立,当以点击为条件时,这两个节点相关。作者利用这一点,来构建了以下方案。

方案:
M^I

表示user和item之间的兴趣匹配矩阵,

M^C

表示user和item之间的流行度一致性匹配矩阵。相当于将user-item矩阵分成了两个。

case1:负样本b(未点击)的流行度小于正样本a(点击)的流行度这样的情况可以说明负样本的流行度小于正样本,不过无法说明用户兴趣的相关信息,可以得到以下不等式

M_{ua}^C>M_{ub}^C
M_{ua}^I M_{ua}^C>M_{ub}^I M_{ub}^C

case2:负样本d的流行度大于正样本c这样的情况说明即使正样本不是热门样本,也被点击了,说明user对这个item的兴趣很高,可以的达到以下不等式

$$M_{ud}^C>M_{uc}^C,M_{ud}^IM_{ud}^I M_{ud}^C $$

根据以上两种情况,可以构建有样本对构成的数据集

O_1,O_2

分别表示以上两种情况。而这两个数据集可以分别对应一致性和兴趣度。本文构建三元组(u,i,j)分别表示用户,正样本,负样本,然后通过BPR模型进行建模,BPR模型是一个现有的模型,有兴趣的小伙伴可以查阅一下,后续有机会在做介绍。

一致性模型(Conformity Modeling)

整个DICE框架下,

u^{(con)},u^{(int)},i^{(con)},i^{(int)},j^{(con)},j^{(int)}

分别表示user对应的conformity特征和interest特征,以及item i,j的流行度特征和本身特征,这里item的流行度特征和用户的一致性特征是对应的,因此这里作者为了统一就都用con和int表示了。

begin{aligned}L_{text {conformity }}^{O_{1}} &=sum_{(u, i, j) in O_{1}} operatorname{BPR}left(leftlangleboldsymbol{u}^{(mathrm{con})}, boldsymbol{i}^{(operatorname{con})}rightrangle,leftlangleboldsymbol{u}^{(mathrm{con})}, boldsymbol{j}^{(mathrm{con})}rightrangleright), \L_{text {conformity }}^{O_{2}} &=sum_{(u, i, j) in O_{2}}-mathrm{BPR}left(leftlangleboldsymbol{u}^{(operatorname{con})}, boldsymbol{i}^{(mathrm{con})}rightrangle,leftlangleboldsymbol{u}^{(mathrm{con})}, boldsymbol{j}^{(mathrm{con})}rightrangleright) \L_{text {conformity }}^{mathrm{O}_{1} mathrm{O}_{2}} &=L_{text {conformity }}^{O_{1}} L_{text {conformity }}^{O_{2}}end{aligned}

其中<,>表示点积,通过BPR可以衡量三元组的关系,此处的构建方式正是对应于上面的两个case中

M^C

相关的不等式。

兴趣度模型(Interest Modeling)

L_{text {interest }}^{O_{2}}=sum_{(u, i, j) in O_{2}} operatorname{BPR}left(leftlangleboldsymbol{u}^{(mathrm{int})}, boldsymbol{i}^{(mathrm{int})}rightrangle,leftlangleboldsymbol{u}^{(mathrm{int})}, boldsymbol{j}^{(mathrm{int})}rightrangleright)

兴趣度模型的构建方式根据case2中的

M^I

相关的不等式。

点击率估计模型

L_{text {click }}^{O_{1} O_{2}}=sum_{(u, i, j) in O} operatorname{BPR}left(leftlangleboldsymbol{u}^{t}, boldsymbol{i}^{t}rightrangle,leftlangleboldsymbol{u}^{t}, boldsymbol{j}^{t}rightrangleright)
boldsymbol{u}^{t}=boldsymbol{u}^{(mathrm{int})}left|boldsymbol{u}^{(mathrm{con})}, boldsymbol{i}^{t}=boldsymbol{i}^{(mathrm{int})}right| boldsymbol{i}^{(mathrm{con})}, boldsymbol{j}^{t}=boldsymbol{j}^{(mathrm{int})} | boldsymbol{j}^{(mathrm{con})}

其中

||

表示特征的拼接,损失函数的构造是根据上述case的不等式,将con和int特征拼接后,进行点击预估

分离任务(Discrepancy Task)

分离任务主要的目的是使得两类特征尽量不相关,以此达到因果图中相互独立的条件。因此此处作者尝试了采用L1,L2以及distance correlation(dCor)来衡量两个embedding之间的关系。最小化-L1,-L2,dCor。

三元组采样方式(PNSM)

在正负样本流行度差别较大时,上述不等式就很可能成立,因此作者采用以下采样方式:假设正样本的流行度是p(流行度的计算就是其出现的次数),则在采样负样本时,采样流行度大于p mup的或者小于p-mdown的。mup和mdown均为设置好的数,表示正样本的边距。通过边距的设置

多任务累积学习

L=L_{text {click }}^{O_{1} O_{2}} alphaleft(L_{text {interest }}^{O_{2}} L_{text {conformity }}^{O_{1} O_{2}}right) beta L_{text {discrepancy }}

损失函数已经比较明显了,结合多个任务,click为主任务,加上超参数控制不同子任务对主任务的影响程度。当mup和mdown较大时,具有较高的置信度来得到上述case中的不等式,因此α的值可以较大。随着训练轮次增加,减小边距mup,mdown,并且逐渐减小α。累积学习方式使得训练得到的DICE更加健壮。

0 人点赞