简介
对于解决implicit data recommendation的问题,最主要要难点是,user-item matrix只有0-1的信息,并且我们inference user preference的时候,我们必须要用到0的信息。但是我们不知道数值为0的item到底是真的用户不喜欢/不点击,还是这个item压根就没有被没有被推荐给用户。很多老的方法没有考虑这点,单纯的假设所有0的信息代表物品被推荐了但是用户不喜欢,或者目前很多已有的方法,downweight这些这些的数据的影响。
但是我们还是不知道不清楚这部分0的信息。到底是用户真的不喜欢用户根本没看见这些物品?
方法
作者从一个新的角度出发,在原有的MF基础上增加了一层latent exposure v
variable来对物品有没有被exposed to user建模,来帮助更好地理解0这部分信息的来源,例如:为什么这些数据没有被点击?到底是真不喜欢还是没有被暴露给用户?
原有的MF是由user-peferences和item-attribues两个laten factors组成, 他们和Exposure latent variable来共影响user-item里面最终的y值。下面重点介绍exposure model的部分。
当exposure variable a=0的时候,意味着当前的物品根本没有暴露给, 所以这个物品在user-tem的matrix里面的值一定是0, 因为user根本都没见过这个物品。
当a=1的时候,意味着当前的物品已经被暴露给了用户,那么用户如果喜欢的话,user-iem matrix所储存的值为1,如果不喜欢的话,user-item matrix所储存的值为0。
公式介绍
θ
u
∼
N
(
0
,
λ
θ
−
1
I
K
)
\theta_u \sim N(0, \lambda^{-1}_{\theta}I_K)
θu∼N(0,λθ−1IK)
β
i
∼
N
(
0
,
λ
β
−
1
I
K
)
\beta_i \sim N(0, \lambda^{-1}_{\beta}I_K)
βi∼N(0,λβ−1IK)
a
u
i
∼
B
e
r
n
o
u
l
l
i
(
u
u
i
)
a_{ui} \sim Bernoulli(u_{ui})
aui∼Bernoulli(uui)
y
u
i
∣
a
u
i
=
1
∼
N
(
θ
T
β
i
,
λ
y
−
1
)
y_{ui}|a_{ui} = 1 \sim N(\theta^{T}\beta_i, \lambda^{-1}_y)
yui∣aui=1∼N(θTβi,λy−1)
y
u
i
∣
a
u
i
=
0
∼
σ
0
y_{ui}|a_{ui} = 0 \sim \sigma_0
yui∣aui=0∼σ0
The joint probability of exposures and clicks for user u and item I
l
o
g
p
(
a
u
i
,
y
u
i
∣
u
u
i
,
θ
u
,
β
i
,
λ
y
−
1
)
=
l
o
g
B
e
r
n
o
u
l
l
i
(
a
u
i
∣
u
u
i
)
+
a
u
i
l
o
g
N
(
y
u
i
∣
θ
u
T
β
i
,
λ
y
−
1
)
+
(
1
−
a
u
i
)
l
o
g
I
[
y
u
i
=
0
]
\begin{aligned} logp(a_{ui}, y_{ui}|u_{ui}, \theta_u, \beta_i, \lambda^{-1}_y) & = logBernoulli(a_{ui}|u_{ui}) + a_{ui}logN(y_{ui}|\theta^T_u \beta_i, \lambda^{-1}_y)\\ &+(1-a_{ui})logI[y_{ui}=0] \end{aligned}
logp(aui,yui∣uui,θu,βi,λy−1)=logBernoulli(aui∣uui)+auilogN(yui∣θuTβi,λy−1)+(1−aui)logI[yui=0]
最简单的裂解:
当预测的用户对物品的喜好程度高的时候,通过观察
N
(
y
u
i
=
0
∣
θ
T
β
i
,
λ
−
1
)
N(y_{ui}=0|\theta^T \beta_i, \lambda^{-1})
N(yui=0∣θTβi,λ−1)的值会很小,最终会降低a=1的可能。所以最后的joint probability
l
o
g
p
(
a
=
1
,
y
=
0
)
会
很
小
logp(a=1, y=0)会很小
logp(a=1,y=0)会很小 (~log p(a=1|y=0)),意味着物品暴露给用户的可能会很小,所以这部分0应该理解成item还没有被暴露给用户。
当y>0时, 用户一定点击/喜欢这个物品,所以物品一定被暴露过给用户。
当y=0时,这个时候
a
u
i
a_{ui}
aui是隐藏变量。
延伸
作者发现,如果我们对latent exposure variable的prior做一些改动,改动后的模型会更好的帮助模型获取0这部分的信息。例如在餐馆的推荐上或者是文档推荐中,如果我们把位置信息或者文档topic的信息加入进模型,会得到更好的效果。
甚者有两篇基于这个理论,把social network的信息加入到模型中能过更好地给出推荐信息。如果有兴趣可以读下面这两篇
小结
data 全部为implicit data 不包括任何的 explicit data
这里用到的metric有:Recall@K, MAP@k, NDCG@k
[1]Modeling User Exposure in Recommendation
[2]Collaborative Filtering with Social Exposure: A Modular Approach to Social Recommendation
[3]Modeling Users’ Exposure with Social Knowledge Influence and Consumption Influence for Recommendation