Disentangling User Interest and Conformity for Recommendation with Causal Embedding
http://staff.ustc.edu.cn/~hexn/papers/www21-dice.pdf
本文依旧是利用因果推断相关理论进行推荐系统纠偏的一篇文章,相关详细例子可以前往deconfounded中的“举个栗子”进行查看。这里进行简述,作者分析在用户购物的过程中,用户点击某个商品,一方面可能是因为他对这个感兴趣,另一方面可能是因为该商品最近比较热门,流行。而如若不加区分的直接从原始数据中进行训练,推荐,会使得推荐系统进入一个恶性循环,因此通常会进行纠偏,而本文是从分解原因的角度进行纠正。
此处的一致性,本人也不是特别理解,从文中判断是和item流行度相对应的特征
将原因分为两类之后,可以构建新的因果图,如下图:
如果我们需要训练这个结果,需要得到interest单独作为原因的数据和conformity单独作为原因的数据,但是我们用于训练的数据只是单纯的整体数据,是两个耦合在一起的数据,而这难点就在于如何解耦这两个原因
从图中可以发现,该因果图为_对撞结构_,interest和conformity两个节点相互独立,当以点击为条件时,这两个节点相关。作者利用这一点,来构建了以下方案。
M I M^I MI表示user和item之间的兴趣匹配矩阵, M C M^C MC表示user和item之间的流行度一致性匹配矩阵。相当于将user-item矩阵分成了两个。
case1:负样本b(未点击)的流行度小于正样本a(点击)的流行度
这样的情况可以说明负样本的流行度小于正样本,不过无法说明用户兴趣的相关信息,可以得到以下不等式
M
u
a
C
>
M
u
b
C
M_{ua}^C>M_{ub}^C
MuaC>MubC
M
u
a
I
+
M
u
a
C
>
M
u
b
I
+
M
u
b
C
M_{ua}^I+M_{ua}^C>M_{ub}^I+M_{ub}^C
MuaI+MuaC>MubI+MubC
case2:负样本d的流行度大于正样本c
这样的情况说明即使正样本不是热门样本,也被点击了,说明user对这个item的兴趣很高,可以的达到以下不等式
M
u
d
C
>
M
u
c
C
,
M
u
d
I
<
M
u
c
I
M_{ud}^C>M_{uc}^C,M_{ud}^I<M_{uc}^I
MudC>MucC,MudI<MucI
M
u
c
I
+
M
u
c
C
>
M
u
d
I
+
M
u
d
C
M_{uc}^I+M_{uc}^C>M_{ud}^I+M_{ud}^C
MucI+MucC>MudI+MudC
根据以上两种情况,可以构建有样本对构成的数据集
O
1
,
O
2
O_1,O_2
O1,O2分别表示以上两种情况。而这两个数据集可以分别对应一致性和兴趣度。本文构建三元组(u,i,j)分别表示用户,正样本,负样本,然后通过BPR模型进行建模,BPR模型是一个现有的模型,有兴趣的小伙伴可以查阅一下,后续有机会在做介绍。
整个DICE框架下,
u
(
c
o
n
)
,
u
(
i
n
t
)
,
i
(
c
o
n
)
,
i
(
i
n
t
)
,
j
(
c
o
n
)
,
j
(
i
n
t
)
u^{(con)},u^{(int)},i^{(con)},i^{(int)},j^{(con)},j^{(int)}
u(con),u(int),i(con),i(int),j(con),j(int)分别表示user对应的conformity特征和interest特征,以及item i,j的流行度特征和本身特征,这里item的流行度特征和用户的一致性特征是对应的,因此这里作者为了统一就都用con和int表示了。
L
conformity
O
1
=
∑
(
u
,
i
,
j
)
∈
O
1
BPR
(
⟨
u
(
c
o
n
)
,
i
(
con
)
⟩
,
⟨
u
(
c
o
n
)
,
j
(
c
o
n
)
⟩
)
,
L
conformity
O
2
=
∑
(
u
,
i
,
j
)
∈
O
2
−
B
P
R
(
⟨
u
(
con
)
,
i
(
c
o
n
)
⟩
,
⟨
u
(
c
o
n
)
,
j
(
c
o
n
)
⟩
)
L
conformity
O
1
+
O
2
=
L
conformity
O
1
+
L
conformity
O
2
\begin{aligned}L_{\text {conformity }}^{O_{1}} &=\sum_{(u, i, j) \in O_{1}} \operatorname{BPR}\left(\left\langle\boldsymbol{u}^{(\mathrm{con})}, \boldsymbol{i}^{(\operatorname{con})}\right\rangle,\left\langle\boldsymbol{u}^{(\mathrm{con})}, \boldsymbol{j}^{(\mathrm{con})}\right\rangle\right), \\L_{\text {conformity }}^{O_{2}} &=\sum_{(u, i, j) \in O_{2}}-\mathrm{BPR}\left(\left\langle\boldsymbol{u}^{(\operatorname{con})}, \boldsymbol{i}^{(\mathrm{con})}\right\rangle,\left\langle\boldsymbol{u}^{(\mathrm{con})}, \boldsymbol{j}^{(\mathrm{con})}\right\rangle\right) \\L_{\text {conformity }}^{\mathrm{O}_{1}+\mathrm{O}_{2}} &=L_{\text {conformity }}^{O_{1}}+L_{\text {conformity }}^{O_{2}}\end{aligned}
Lconformity O1Lconformity O2Lconformity O1+O2=(u,i,j)∈O1∑BPR(⟨u(con),i(con)⟩,⟨u(con),j(con)⟩),=(u,i,j)∈O2∑−BPR(⟨u(con),i(con)⟩,⟨u(con),j(con)⟩)=Lconformity O1+Lconformity O2
其中<,>表示点积,通过BPR可以衡量三元组的关系,此处的构建方式正是对应于上面的两个case中
M
C
M^C
MC相关的不等式。
L
interest
O
2
=
∑
(
u
,
i
,
j
)
∈
O
2
BPR
(
⟨
u
(
i
n
t
)
,
i
(
i
n
t
)
⟩
,
⟨
u
(
i
n
t
)
,
j
(
i
n
t
)
⟩
)
L_{\text {interest }}^{O_{2}}=\sum_{(u, i, j) \in O_{2}} \operatorname{BPR}\left(\left\langle\boldsymbol{u}^{(\mathrm{int})}, \boldsymbol{i}^{(\mathrm{int})}\right\rangle,\left\langle\boldsymbol{u}^{(\mathrm{int})}, \boldsymbol{j}^{(\mathrm{int})}\right\rangle\right)
Linterest O2=(u,i,j)∈O2∑BPR(⟨u(int),i(int)⟩,⟨u(int),j(int)⟩)
兴趣度模型的构建方式根据case2中的
M
I
M^I
MI相关的不等式。
L
click
O
1
+
O
2
=
∑
(
u
,
i
,
j
)
∈
O
BPR
(
⟨
u
t
,
i
t
⟩
,
⟨
u
t
,
j
t
⟩
)
L_{\text {click }}^{O_{1}+O_{2}}=\sum_{(u, i, j) \in O} \operatorname{BPR}\left(\left\langle\boldsymbol{u}^{t}, \boldsymbol{i}^{t}\right\rangle,\left\langle\boldsymbol{u}^{t}, \boldsymbol{j}^{t}\right\rangle\right)
Lclick O1+O2=(u,i,j)∈O∑BPR(⟨ut,it⟩,⟨ut,jt⟩)
u
t
=
u
(
i
n
t
)
∥
u
(
c
o
n
)
,
i
t
=
i
(
i
n
t
)
∥
i
(
c
o
n
)
,
j
t
=
j
(
i
n
t
)
∥
j
(
c
o
n
)
\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})}
ut=u(int)∥∥∥u(con),it=i(int)∥∥∥i(con),jt=j(int)∥j(con)
其中
∣
∣
||
∣∣表示特征的拼接,损失函数的构造特使根据上述case的不等式
分离任务主要的目的是使得两类特征尽量不相关,以此达到因果图中相互独立的条件。因此此处作者尝试了采用L1,L2以及distance correlation(dCor)来衡量两个embedding之间的关系。最小化-L1,-L2,dCor。
在正负样本流行度差别较大时,上述不等式就很可能成立,因此作者采用以下采样方式:假设正样本的流行度是p(流行度根据item点击出现次数计算),则在采样负样本时,采样流行度大于p+mup的或者小于p-mdown的。mup和mdown均为设置好的数,表示正样本的边距。通过边距的设置
L
=
L
click
O
1
+
O
2
+
α
(
L
interest
O
2
+
L
conformity
O
1
+
O
2
)
+
β
L
discrepancy
L=L_{\text {click }}^{O_{1}+O_{2}}+\alpha\left(L_{\text {interest }}^{O_{2}}+L_{\text {conformity }}^{O_{1}+O_{2}}\right)+\beta L_{\text {discrepancy }}
L=Lclick O1+O2+α(Linterest O2+Lconformity O1+O2)+βLdiscrepancy
损失函数已经比较明显了,结合多个任务,click为主任务,加上超参数控制不同子任务对主任务的影响程度。当mup和mdown较大时,具有较高的置信度来得到上述case中的不等式,因此α的值可以较大。随着训练轮次增加,减小边距mup,mdown,并且逐渐减小α。累积学习方式使得训练得到的DICE更加健壮。