Social Recommendation with Missing Not at Random Data(ICDM2018)--中文翻译(二)
第一部分 带图的文章链接: https://blog.csdn.net/ciecus_csdn/article/details/84454425
第二部分 算法以及实验部分链接:https://blog.csdn.net/ciecus_csdn/article/details/84454128
第三部分 参考文献:https://blog.csdn.net/ciecus_csdn/article/details/84480998
第四部分 模型和算法
在这一部分,我们将会展现我们的SPMF-MNAR模型,我们将从问题定义开始讲起。
一、问题定义
在推荐系统中,我们有一个用户集合 U U U(包括n个用户)和一个物品集合 I I I(包括m个商品),同时我们还有一个评分观察集合 R 0 = { r i j : i ∈ U , j ∈ I , ( i , j ) ∈ O } R^0 = \{r_{ij}:i\in U,j\in I,(i,j)\in O\} R0={rij:i∈U,j∈I,(i,j)∈O},这里 r i j r_{ij} rij代表用户i对物品j的评分,集合 O O O是有观察评分的用户和物品对构成的集合。实际生活中, R 0 R^0 R0通常是完整的 n ∗ m n*m n∗m评分矩阵 R R R的一个子集。需要互译的是,用户对评分的观察过程就体现了用户的消费情况,因为用户在评分之前必须对该商品产生消费行为【论文6,7】。因此,我们使用一个 n ∗ m n*m n∗m的消费矩阵 X X X对 R 0 R^0 R0中的入口位置进行建模。对于每一个 X X X , x i j = 1 x_{ij} =1 xij=1 表示用户i已经消费并且评论过物品j,( r i j ∈ R 0 r_{ij}\in R^0 rij∈R0可以被观察到), x i j = 0 x_{ij} =0 xij=0 表示评分不能被观察到( r i j ∉ R 0 r_{ij}\notin R^0 rij∈/R0)。当涉及到社交推荐时,我们还有社交网络信息,可以表示用户之间的联系。构建向量 g i = [ g 1 i , g 2 i , g 3 i , … , g ∣ g i ∣ i ] g^i = [g_1^i,g_2^i,g_3^i,\dots,g_{|g^i|}^i] gi=[g1i,g2i,g3i,…,g∣gi∣i],我们用它表示用户i的朋友们。其中 g i g^i gi的第k个元素 g k i g_k^i gki代表用户i的第k个朋友,向量 g i g^i gi的长度 ∣ g i ∣ |g^i| ∣gi∣代表了用户i的朋友数。社交推荐的任务,就是准确的预测用户的喜好或者评分以使得推荐符合用户的口味。
二、基于MNAR假设下的社交概率矩阵分解
和现有社交推荐方法不同,我们要在社交推荐中引入MNAR假设,并且对评分的观察过程进行建模。如图1所示,一方面,我们根据社交影响和用户喜好生成了他们的消费矩阵。另一方面,采用传统的CF模型对用户消费过的商品做评分预测。
我们将概述SPMF-MNAR模型的生成过程,然后描述每一步的细节。对于每一次消费
x
i
j
∈
X
x_{ij}\in X
xij∈X和每一次评分值
r
i
j
∈
R
r_{ij}\in R
rij∈R,SPMF-MNAR模型将根据图三展示的模型过程生成。
步骤:
1)计算朋友对消费的影响:
η
0
∼
B
e
t
a
(
ζ
)
\eta _0 \sim Beta(\zeta )
η0∼Beta(ζ),
η
1
∼
B
e
t
a
(
ζ
)
\eta _1 \sim Beta(\zeta )
η1∼Beta(ζ).
2)对每个用户i而言,
计算偏差:
a
i
∼
N
(
0
,
σ
a
2
)
a_i \sim N(0,\sigma_a^2)
ai∼N(0,σa2);
计算潜在喜好:
u
i
∼
N
(
0
,
σ
u
2
I
)
u_i\sim N(0,\sigma _u^2\bm{I})
ui∼N(0,σu2I)
计算接受的门限:
d
i
∼
N
(
0
,
σ
d
2
)
d_i\sim N(0,\sigma_d^2)
di∼N(0,σd2)
计算不同因素的重要性:
β
i
=
D
i
r
(
α
)
\beta_i = Dir(\alpha)
βi=Dir(α)
3)对每个物品j而言,
计算偏差:
b
j
∼
N
(
0
,
σ
b
2
)
b_j \sim N(0,\sigma_b^2)
bj∼N(0,σb2);
计算潜在价值:
v
j
∼
N
(
0
,
σ
v
2
I
)
v_j\sim N(0,\sigma _v^2\bm{I})
vj∼N(0,σv2I)
4) 对于每个物品和用户的组合对(i,j):
计算用户对物品的喜好:
z
i
j
∼
N
(
u
i
T
v
j
+
a
i
+
b
j
,
σ
z
2
)
z_{ij} \sim N(u_i^Tv_j + a_i +b_j,\sigma_z^2)
zij∼N(uiTvj+ai+bj,σz2)
计算元素对消费的贡献:
τ
i
j
∼
M
u
l
t
i
n
o
m
i
a
l
(
β
i
)
\tau_{ij} \sim Multinomial(\beta _i )
τij∼Multinomial(βi)
当
τ
i
j
0
=
=
1
\tau _{ij0} == 1
τij0==1时,说明消费受到了用户喜好的影响:
x
i
j
∼
B
e
r
n
o
u
l
l
i
(
x
i
j
∣
σ
(
c
(
z
i
j
−
d
i
)
)
)
x_{ij}\sim Bernoulli(x_{ij}| \sigma(c(z_{ij}-d_i)))
xij∼Bernoulli(xij∣σ(c(zij−di)))
当
τ
i
j
k
=
=
1
(
1
≤
k
≤
∣
g
i
∣
)
\tau _{ijk} == 1 (1 \leq k \leq |g^i|)
τijk==1(1≤k≤∣gi∣)时,说明消费是受到第k个朋友对用户的影响:
x
i
j
∼
B
e
r
n
o
u
l
l
i
(
x
i
j
∣
η
1
x
g
k
i
j
+
η
0
(
1
−
x
g
k
i
j
)
)
x_{ij}\sim Bernoulli(x_{ij}|\eta_1x_{g_k^ij}+\eta_0(1-x_{g_k^ij}))
xij∼Bernoulli(xij∣η1xgkij+η0(1−xgkij))
5) 对于每一个观察的评分
r
i
j
r_{ij}
rij:
根据用户的喜好推测用户评分:
r
i
j
∼
N
(
z
i
j
,
σ
r
2
)
r_{ij}\sim N(z_{ij},\sigma _r^2)
rij∼N(zij,σr2)
在SPMF-MNAR模型中,我们做了这些这些基本假设。
F
i
r
s
t
\bm{First}
First
用户对物品的喜好可以通过概率矩阵分解生成【论文10】。对于每一个用户物品对,我们生成一个隐藏的连续变量
z
i
j
z_{ij}
zij,这个变量刻画了用户i对物品j的喜好。
p
(
z
i
j
∣
a
i
,
b
j
,
u
i
,
v
j
)
=
N
(
z
i
j
∣
a
i
+
b
j
+
u
i
T
v
j
,
σ
z
2
)
⋅
⋅
⋅
(
1
)
p(z_{ij}|a_i,b_j,u_i,v_j) = N(z_{ij}|a_i+b_j+u_i^Tv_j,\sigma_z^2) ···(1)
p(zij∣ai,bj,ui,vj)=N(zij∣ai+bj+uiTvj,σz2)⋅⋅⋅(1)
其中
N
(
.
)
N(.)
N(.)服从高斯分布,
u
i
u_i
ui代表着代表了用户i的D-维潜在喜好向量,
v
j
v_j
vj代表了物品j的D-维潜在价值。
a
i
a_i
ai和
b
j
b_j
bj代表了用户i和物品j的偏置。这里我们用
a
i
a_i
ai和
b
j
b_j
bj去刻画一种常见现象–有一些用户喜好很广泛,而一部分物品·质量很好。接着,我们可以基于用户喜好生成用户评分值如公式(2)所示:
p
(
r
i
j
∣
z
i
j
)
=
N
(
r
i
j
∣
z
i
j
,
σ
r
2
)
⋅
⋅
⋅
(
2
)
p(r_{ij}|z_{ij}) = N(r_{ij}|z_{ij},\sigma_r^2)···(2)
p(rij∣zij)=N(rij∣zij,σr2)⋅⋅⋅(2)
这里,我们注意到我们简单的评分模型可以替代一些复杂的基于社交分析的推荐模型,比如SocialMF【论文19】,TrustMF【论文18】。但是我们同样承认,如果对社交影响建模可以进一步提升推荐效果。但是在这里我们只探究社交影响对用户评分过程(也就是购买行为)的影响,并探究它如何提升推荐效果。我们为了探究我们的基于社交模型的影响效果,所以我们排除了那些复杂的模型。
S
e
c
o
n
d
\bm{Second}
Second
从第三部分的分析可知,用户的消费时可以通过用户的喜好和社交影响对用户消费情况建模。对于每一个元素
x
i
j
∈
X
x_{ij}\in X
xij∈X,有
β
i
0
\beta_{i0}
βi0的概率购买行为是因为用户自己的喜好的概率
x
i
j
∼
p
(
x
i
j
∣
z
i
j
,
d
i
,
c
)
x_{ij}\sim p(x_{ij}|z_{ij},d_i,c)
xij∼p(xij∣zij,di,c) ,有
β
i
k
\beta_{ik}
βik的概率是被他第k个朋友影响
x
i
j
∼
p
(
x
i
j
∣
x
g
k
i
j
,
η
)
x_{ij}\sim p(x_{ij}|x_{g_k^ij,\eta})
xij∼p(xij∣xgkij,η) .这里
β
i
k
\beta_{ik}
βik 刻画了针对于每个人的社交影响的重要性。其中
β
I
=
[
β
i
0
,
β
i
1
,
…
,
β
i
∣
g
i
∣
]
\beta_I = [\beta_{i0},\beta_{i1},\dots,\beta_{i|g^i|}]
βI=[βi0,βi1,…,βi∣gi∣],并且满足
∑
k
=
0
∣
g
i
∣
β
i
k
=
1
\sum_{k=0}^{|g^i|}\beta_{ik} = 1
∑k=0∣gi∣βik=1,它服从Dirichlet分布,参数为
α
\alpha
α。基于这个生成过程,
x
i
j
x_{ij}
xij可以展现为用户自己喜好和社交影响的随机组合。
p
(
x
i
j
)
=
β
i
0
p
(
x
i
j
∣
z
i
j
,
d
i
,
c
)
+
∑
k
=
0
∣
g
i
∣
β
i
k
p
(
x
i
j
∣
x
g
k
i
j
,
η
)
⋅
⋅
⋅
(
3
)
p(x_{ij} ) = \beta_{i0}p(x_{ij}|z_{ij},d_i,c) + \sum_{k=0}^{|g^i|}\beta_{ik} p(x_{ij}|x_{g_k^ij,\eta})···(3)
p(xij)=βi0p(xij∣zij,di,c)+k=0∑∣gi∣βikp(xij∣xgkij,η)⋅⋅⋅(3)
为了更好的理解这些参数,我们引进多项式分布变量
τ
i
j
∼
M
u
l
t
i
(
β
i
)
\tau_{ij}\sim Multi(\beta_i)
τij∼Multi(βi) 去描述每一个参量对购买
x
i
j
x_{ij}
xij的贡献。
τ
i
j
=
[
τ
i
j
0
,
τ
i
j
1
,
…
,
τ
i
j
∣
g
i
∣
]
\tau_{ij} = [\tau _{ij0},\tau_{ij1},\dots,\tau_{ij|g^i|}]
τij=[τij0,τij1,…,τij∣gi∣] 是一个
∣
g
i
∣
+
1
|g^i|+1
∣gi∣+1维的的二元随机变量,有
∣
g
i
∣
+
1
|g^i|+1
∣gi∣+1种表达方式,每一种中只有一个元素为1,其余都为0。
T
h
i
r
d
\bm{Third}
Third
当
x
i
j
x_{ij}
xij是通过用户个人喜好生成的时候,即
τ
i
j
0
=
1
\tau _{ij0} = 1
τij0=1时,伯努利对数模型可以用来描述用户趋向于购买他们喜欢的商品(就像分析结果1中显示的那样):
p
(
x
i
j
∣
z
i
j
,
d
i
,
c
,
τ
i
j
0
=
1
)
=
B
e
r
n
o
u
l
l
i
(
x
i
j
∣
σ
(
c
(
z
i
j
−
d
i
)
)
)
⋅
⋅
⋅
(
4
)
p(x_{ij}|z_{ij},d_i,c,\tau_{ij0} =1) = Bernoulli(x_{ij}|\sigma(c(z_{ij}-d_{i}))) ···(4)
p(xij∣zij,di,c,τij0=1)=Bernoulli(xij∣σ(c(zij−di)))⋅⋅⋅(4) 其中
σ
(
.
)
\sigma(.)
σ(.)是逻辑函数。我们引入偏移量
d
i
d_i
di,
d
i
d_i
di定义了每个用户的接受门限,去描述以下直觉认知:当用户对一个物品的喜好大于接受门限时,即
z
i
j
>
d
i
z_{ij} > d_i
zij>di,用户就会倾向于购买某个物品,当用户对一个物品的喜好小于接受门限时,即
z
i
j
<
d
i
z_{ij} < d_i
zij<di时,用户就会倾向于拒绝购买某个物品。同时,我们引进了一个比例参数c,c > 0 去控制用户喜好性
z
i
j
z_{ij}
zij对消费行为
x
i
j
x_{ij}
xij的影响。当比例参数c值变大时,用户会对
z
i
j
z_{ij}
zij更敏感。换句话说,
z
i
j
z_{ij}
zij的轻微扰动都会带来
x
i
j
x_{ij}
xij的大的变化。总结一下,我们可以发现
z
i
j
z_{ij}
zij越大,
p
(
x
i
j
=
1
)
p(x_{ij} = 1)
p(xij=1) 就会越大,也就意味着用户更有可能去购买这个商品,和我们在观察结果1是吻合的。
F
o
u
r
t
h
\bm{Fourth}
Fourth
当用户的购买行为
x
i
j
x_{ij}
xij是他第k个朋友影响生成的时候,
τ
i
j
k
=
1
\tau_{ijk} = 1
τijk=1,我们对
x
i
j
x_{ij}
xij进行伯努利分布和他第k个朋友的购买情况
x
g
k
i
j
x_{g_k^ij}
xgkij的伯努利参数进行建模。
p
(
x
i
j
∣
x
g
k
i
j
,
η
,
τ
i
j
k
=
1
)
=
B
e
r
n
o
u
l
l
i
(
x
i
j
∣
η
1
x
g
k
i
j
+
η
0
(
1
−
x
g
k
i
j
)
)
⋅
⋅
⋅
(
5
)
p(x_{ij}|x_{g_k^ij},\eta,\tau_{ijk} =1) = Bernoulli(x_{ij}|\eta_1x_{g_k^ij}+\eta_0(1-x_{g_k^ij}))···(5)
p(xij∣xgkij,η,τijk=1)=Bernoulli(xij∣η1xgkij+η0(1−xgkij))⋅⋅⋅(5)
参数
η
=
[
η
0
,
η
1
]
\eta = [\eta_0,\eta_1]
η=[η0,η1]代表了用户消费行为对他指定朋友消费行为的条件依赖性。
η
1
=
p
(
x
i
j
=
1
∣
x
k
j
=
1
,
τ
i
j
k
=
1
)
\eta_1 = p(x_{ij} =1|x_{kj} =1,\tau_{ijk} =1)
η1=p(xij=1∣xkj=1,τijk=1)意味着用户会跟随他朋友的消费行为消费的概率。
η
0
=
p
(
x
i
j
=
1
∣
x
k
j
=
0
,
τ
i
j
k
=
1
)
\eta_0 = p(x_{ij} =1|x_{kj} =0,\tau_{ijk} =1)
η0=p(xij=1∣xkj=0,τijk=1)意味着当用户的朋友没有消费这个商品时,用户购买的概率。事实上,用户倾向于购买他们朋友购买过的商品,所以参数
η
0
\eta_0
η0和参数
η
1
\eta_1
η1应该有显著的不同。我们在第五部分实验结果也验证了这个观点,
η
1
\eta_1
η1的后验概率要远大于
η
0
\eta_0
η0。
三、推理猜想
考虑到SPMF-MNAR模型中的后验概率很难精确计算,所以我们我们建立了一种有效的估计方法去根据变分推断去计算后验概率,并且平均场理论要求我们把这些分离的隐藏变量划分成不相交的组,并且这些变量都有它们自己的变量参数管控。此外,我们可以它们的相关条件指出这些变量的分布情况【论文30】。也就是说,我们可以定义如下的变量分布:
q
(
u
,
v
,
a
,
b
,
β
,
τ
,
η
,
z
)
=
∏
i
∈
U
(
N
(
a
i
∣
μ
i
a
,
(
Λ
i
a
)
−
1
)
×
N
(
u
i
∣
μ
i
u
,
(
Λ
i
u
)
−
1
)
)
N
(
d
i
∣
μ
i
d
,
(
Λ
i
d
)
−
1
D
i
r
(
β
i
∣
k
i
β
)
)
q(u,v,a,b,\beta,\tau,\eta,z) = \prod_{i\in U}(N(a_i|\mu_i^a,(\Lambda_i^a)^{-1}) \times N(u_i|\mu_i^u,(\Lambda_i^u)^{-1}))N(d_i|\mu_i^d,(\Lambda_i^d)^{-1}Dir(\beta_i|k_i^\beta))
q(u,v,a,b,β,τ,η,z)=i∈U∏(N(ai∣μia,(Λia)−1)×N(ui∣μiu,(Λiu)−1))N(di∣μid,(Λid)−1Dir(βi∣kiβ))
×
∏
j
∈
I
N
(
b
j
∣
μ
j
b
,
(
Λ
i
b
)
−
1
)
N
(
u
j
∣
μ
j
v
,
(
Λ
j
v
)
−
1
)
)
∏
B
e
t
a
(
η
l
∣
k
l
η
)
×
∏
i
∈
U
,
j
∈
I
M
u
l
t
(
τ
i
j
∣
ϕ
i
j
)
N
(
z
i
j
∣
μ
i
j
z
,
(
Λ
i
j
z
)
−
1
)
⋅
⋅
⋅
(
6
)
\times\prod_{j\in I} N(b_j|\mu_j^b,(\Lambda_i^b)^{-1})N(u_j|\mu_j^v,(\Lambda_j^v)^{-1}))\prod Beta(\eta_l|k_l^\eta)\times \prod_{i\in U,j\in I}Mult(\tau_{ij}|\phi_{ij})N(z_{ij}|\mu_{ij}^z,(\Lambda_{ij}^z)^{-1})···(6)
×j∈I∏N(bj∣μjb,(Λib)−1)N(uj∣μjv,(Λjv)−1))∏Beta(ηl∣klη)×i∈U,j∈I∏Mult(τij∣ϕij)N(zij∣μijz,(Λijz)−1)⋅⋅⋅(6)
需要注意,伯努利对数似然函数不承认共轭先验。为了解决这个问题,我们应用高斯函数降低这个逻辑函数的约束性【论文31】。
σ
(
x
)
≥
h
(
x
,
ε
)
=
σ
(
ε
)
e
x
p
(
(
x
−
ε
)
/
2
−
λ
(
ε
)
(
x
2
−
ε
2
)
\sigma(x) \geq h(x,\varepsilon) = \sigma(\varepsilon)exp((x-\varepsilon)/2-\lambda(\varepsilon)(x^2-\varepsilon^2)
σ(x)≥h(x,ε)=σ(ε)exp((x−ε)/2−λ(ε)(x2−ε2),其中
λ
(
ε
)
=
1
2
ε
(
σ
(
ε
)
−
1
2
)
⋅
⋅
⋅
(
7
)
\lambda(\varepsilon) = \frac{1}{2\varepsilon}(\sigma(\varepsilon)-\frac{1}{2}) ···(7)
λ(ε)=2ε1(σ(ε)−21)⋅⋅⋅(7).
通过增加的参数
ε
\varepsilon
ε我们可以获得一个更低边界值的逻辑函数。因此我们有了以下目标函数,对观察值的似然函数取log。
L
(
q
)
=
ln
p
(
R
o
,
X
)
≥
E
q
[
ln
p
(
R
o
,
X
,
Θ
)
]
−
E
q
[
ln
q
(
Θ
)
]
≥
L
~
(
q
,
ε
)
L(q) = \ln p(R^o,X) \geq E_q[\ln p(R^o,X,\Theta)] - E_q[\ln q(\Theta)]\geq \widetilde{L}(q,\varepsilon)
L(q)=lnp(Ro,X)≥Eq[lnp(Ro,X,Θ)]−Eq[lnq(Θ)]≥L
(q,ε)
=
∑
i
∈
U
,
j
∈
I
E
q
[
τ
i
j
0
ln
(
h
(
(
2
x
i
j
−
1
)
γ
i
j
,
ε
i
j
)
)
]
+
∑
i
∈
U
,
j
∈
I
∑
k
=
1
∣
g
i
∣
E
q
[
τ
i
j
k
ln
p
(
x
i
j
∣
x
g
k
i
j
,
η
)
]
= \sum_{i \in U, j \in I}E_q[\tau_{ij0}\ln(h((2x_{ij}-1)\gamma_{ij},\varepsilon _{ij}))]+\sum_{i\in U, j\in I}\sum_{k=1}^{|g_i|}E_q[\tau_{ijk}\ln p(x_{ij}|x_{g_k^ij,\eta})]
=i∈U,j∈I∑Eq[τij0ln(h((2xij−1)γij,εij))]+i∈U,j∈I∑k=1∑∣gi∣Eq[τijklnp(xij∣xgkij,η)]
+
∑
i
∈
U
,
j
∈
I
E
q
[
ln
p
(
τ
i
j
∣
β
i
)
+
ln
p
(
z
i
j
∣
a
i
,
b
j
,
u
i
,
v
j
,
σ
z
)
]
+\sum_{i\in U, j\in I} E_q[\ln p(\tau_{ij|\beta_i})+\ln p(z_{ij}|a_i,b_j,u_i,v_j,\sigma_z)]
+i∈U,j∈I∑Eq[lnp(τij∣βi)+lnp(zij∣ai,bj,ui,vj,σz)]
+
∑
i
∈
U
E
q
[
ln
p
(
u
i
∣
σ
μ
)
+
ln
p
(
a
i
∣
σ
a
)
+
ln
p
(
β
i
∣
α
)
+
ln
p
(
d
i
∣
σ
d
)
]
+
∑
j
∈
I
E
q
[
ln
p
v
I
∣
σ
v
+
ln
p
(
b
I
∣
σ
b
)
]
+\sum_{i\in U}E_q[\ln p(u_i|\sigma_\mu)+\ln p(a_i|\sigma_a)+\ln p(\beta_i|\alpha)+\ln p(d_i|\sigma_d)]+\sum_{j\in I}E_q[\ln p{v_I|\sigma_v} +\ln p(b_I|\sigma_b)]
+i∈U∑Eq[lnp(ui∣σμ)+lnp(ai∣σa)+lnp(βi∣α)+lnp(di∣σd)]+j∈I∑Eq[lnpvI∣σv+lnp(bI∣σb)]
+
∑
i
j
∈
R
o
E
q
[
ln
p
(
r
i
j
∣
z
i
j
)
]
+
∑
l
=
0
,
1
E
q
[
ln
p
(
η
l
∣
ε
)
]
−
E
q
[
ln
q
(
Θ
)
]
⋅
⋅
⋅
(
8
)
+\sum_{ij\in R^o}Eq[\ln p(r_ij|z_ij)]+\sum_{l =0,1}E_q[\ln p(\eta_l|\varepsilon)]-E_q[\ln q(\Theta)]···(8)
+ij∈Ro∑Eq[lnp(rij∣zij)]+l=0,1∑Eq[lnp(ηl∣ε)]−Eq[lnq(Θ)]⋅⋅⋅(8)
其中
Θ
≡
{
u
,
v
,
a
,
b
,
d
,
β
,
τ
,
η
,
z
}
\Theta \equiv \{u,v,a,b,d,\beta,\tau,\eta,z \}
Θ≡{u,v,a,b,d,β,τ,η,z}代表潜变量,
λ
i
j
=
c
(
z
i
j
−
d
i
)
\lambda_{ij} = c(z_{ij}-d_i)
λij=c(zij−di).我们使用坐标上升法通过不变降低下限
L
~
(
q
,
ε
)
\widetilde{L}(q,\varepsilon)
L
(q,ε)交替优化变量参数,潜在局部变量
z
i
j
,
τ
i
j
,
ε
i
j
z_{ij},\tau_{ij},\varepsilon_{ij}
zij,τij,εij都有
n
×
m
n\times m
n×m个入口,如果在每一轮迭代中去优化每一个入口是非常低效的,事实上,我们更希望去学习一些全局变量的参数,比如
u
,
v
,
a
,
b
,
d
,
β
,
η
u,v,a,b,d,\beta,\eta
u,v,a,b,d,β,η.随机变量推断法(SVI)【论文30】可以快速优化全局变量参数。我们可以通过每次只使用子集数据就能学习到全局变量参数。在算法1中,我们展示了我们随机变量推断算法的为代码,细节在附录中。
随机初始化全局变量:
当没有收敛时
\quad
抽取用户物品对的子样本S :
\quad
对于子样本S每一个用户物品对(i,j)
\\ \qquad
如果没有收敛
\\ \hspace{3em}
根据全部和局部变量更新参数
ε
i
j
\varepsilon_{ij}
εij(公式(15)(16))
\\ \hspace{3em}
根据全局变量参数和参数
ε
i
j
\varepsilon_{ij}
εij更新局部变量
z
i
j
,
τ
i
j
z_{ij},\tau_{ij}
zij,τij(公式(17-19))
\\ \quad
根据局部变量参数,使用步长
ρ
t
\rho_t
ρt更新全局变量参数
u
,
v
,
a
,
b
,
d
,
β
,
η
u,v,a,b,d,\beta,\eta
u,v,a,b,d,β,η(公式(20-31))
复杂度分析:时间度主要是更新变量参数导致的,在每一个局部过程中,我们只更新针对在集合S中用户物品对(i,j)的局部参数,时间复杂度为 O ( t l ( ∣ S ∣ + ∣ G ∣ ) ) O(t_l(|S|+|G|)) O(tl(∣S∣+∣G∣))(公式(15-19)), ∣ S ∣ |S| ∣S∣代表了集合S中用户物品对的数量, ∣ G ∣ |G| ∣G∣表示数据集中变得数量, t l t_l tl代表了局部过程中的迭代次数.在全局过程中,我们只是将集合S中的参数求和,所以更新全局变量的计算复杂度为 O ( ( n + m ) D 3 + ∣ S ∣ + ∣ G ∣ ) O((n+m)D^3+|S|+|G|) O((n+m)D3+∣S∣+∣G∣)(公式(20-31)),其中n和m代表数据集中用户和物品的数量,D代表潜在向量 u i , v j u_i,v_j ui,vj的维度。因此一次的时间复杂度为 O ( ( n + m ) D 3 + t l ( ∣ S ∣ + ∣ G ∣ ) ) O((n+m)D^3+t_l(|S|+|G|)) O((n+m)D3+tl(∣S∣+∣G∣)).事实上,我们会让D和 t l t_l tl为一个固定的小数字,用户物品对|S|为评分数量的两倍。因此我们的算法在稀疏推荐矩阵上是高效的。
四、预测
一旦生成了合适的后验概率,我们就能预测用户i对物品j的评分。预测评分的计算公式如下式所示:
r
^
i
j
=
E
[
r
i
j
∣
x
i
j
,
Θ
]
=
E
[
z
i
j
∣
x
i
j
,
Θ
]
≈
E
q
(
z
i
j
∣
x
i
j
,
Θ
)
[
z
i
j
]
⋅
⋅
⋅
(
9
)
\hat{r}_{ij} = E[r_{ij}|x_{ij},\Theta] = E[z_{ij}|x_{ij},\Theta] \approx E_{q(z_{ij}|x_{ij},\Theta)}[z_{ij}]···(9)
r^ij=E[rij∣xij,Θ]=E[zij∣xij,Θ]≈Eq(zij∣xij,Θ)[zij]⋅⋅⋅(9)这里我们可以增加一个新步骤去计算
z
i
j
z_{ij}
zij的后验值。
需要注意的是在我们的SPMF-MNAR模型中是采用MNAR假设的,所以我们可以根据预测的购买情况作推荐,预测的购买情况是融合了用户喜好和社交影响的。
x
^
i
j
=
E
q
[
p
(
x
i
j
=
1
)
]
=
β
i
0
E
q
[
p
(
x
i
j
=
1
∣
z
i
j
,
d
i
,
c
)
]
+
∑
k
=
1
∣
g
i
∣
β
i
k
E
q
[
p
(
x
i
j
=
1
∣
η
1
x
g
k
i
j
+
η
0
(
1
−
x
g
k
i
j
)
)
]
\hat{x}_{ij} = E_q[p(x_{ij} = 1)] = \beta_{i0}E_q[p(x_ij = 1|z_{ij},d_i,c)]+\sum_{k=1}^{|g^i|}\beta_{ik}E_q[p(x_{ij }=1|\eta_1x_{g_k^ij }+ \eta_0(1-x_{g_k^ij }))]
x^ij=Eq[p(xij=1)]=βi0Eq[p(xij=1∣zij,di,c)]+k=1∑∣gi∣βikEq[p(xij=1∣η1xgkij+η0(1−xgkij))]
=
β
i
0
E
q
[
σ
(
c
(
z
i
j
−
d
i
)
)
]
+
∑
k
=
1
g
i
β
i
k
E
q
[
η
1
x
g
k
i
j
+
η
0
(
1
−
x
g
k
i
j
)
]
=\beta_{i0}E_q[\sigma(c(z_{ij}-d_i))]+\sum_{k=1}^{g^i}\beta_{ik}E_q[\eta_1x_{g_k^ij }+\eta_0(1-x_{g_k^ij })]
=βi0Eq[σ(c(zij−di))]+k=1∑giβikEq[η1xgkij+η0(1−xgkij)]
≈
β
i
0
σ
(
ϕ
(
s
i
j
2
)
α
i
j
)
+
∑
k
=
1
∣
g
i
∣
β
i
k
E
q
[
η
1
x
g
k
i
j
+
η
0
(
1
−
x
g
k
i
j
)
⋅
⋅
⋅
(
10
)
\approx \beta_{i0}\sigma(\phi(s_{ij}^2)\alpha_{ij})+\sum_{k=1}^{|g^i|}\beta_{ik}E_q[\eta_1x_{g_k^ij }+\eta_0(1-x_{g_k^ij })···(10)
≈βi0σ(ϕ(sij2)αij)+k=1∑∣gi∣βikEq[η1xgkij+η0(1−xgkij)⋅⋅⋅(10)
我们使用重标逻辑函数去近似逻辑函数使它和逻辑函数
σ
(
.
)
\sigma(.)
σ(.)有相同的切线斜率【论文32】,并且
ϕ
(
x
)
=
(
1
+
π
x
/
8
)
(
−
1
/
2
)
,
s
i
j
2
=
D
q
[
c
(
z
i
j
−
d
i
)
]
,
α
i
j
=
E
q
[
c
(
z
i
j
−
d
i
)
]
\phi(x) = (1+\pi x/8)^(-1/2),s_{ij}^2 = D_q[c(z_{ij}-d_i)],\alpha_{ij} = E_q[c(z_{ij}-d_i)]
ϕ(x)=(1+πx/8)(−1/2),sij2=Dq[c(zij−di)],αij=Eq[c(zij−di)]。
第五部分 实验和结果
在这一部分,我们在真实数据集上检验了我们的SPMF-MNAR模型,首先我们介绍一下我们的实验方案。
一、实验方案
我们将用第三部分介绍到的两个数据集Epinions和Ciao进行我们的实验。数据集包括了用户的消费情况,评分情况和社交关系。使用五折交叉验证的方式进行训练和测试。并且如果
x
i
j
=
1
x_{ij} =1
xij=1在测试集中出现了,我们就会让训练集中
x
i
j
=
0
x_{ij} = 0
xij=0,去表示
r
i
j
r_{ij}
rij没有被观察到【论文7】。
最优实验参数的获得方式来源有两个,前人推荐的最优参数和网格搜索法。对于一些超参数,我们在两个数据集中都设置
σ
r
2
=
0.1
,
σ
d
2
=
0.2
,
D
=
10
\sigma_r^2 = 0.1,\sigma_d^2 = 0.2,D = 10
σr2=0.1,σd2=0.2,D=10,其他为1,除了c有所不同,如图5所示。步长的设置我们参考了【论文30】设置
ρ
t
=
(
t
0
+
t
)
−
ϑ
,
t
0
=
0
,
ϑ
=
0.8
\rho_t = (t_0 +t)^-\vartheta,t_0 = 0,\vartheta = 0.8
ρt=(t0+t)−ϑ,t0=0,ϑ=0.8,对于每一次采样的集合S,我们选择所有
x
i
j
=
1
x_{ij} = 1
xij=1的数据,并且随机选择等数量的
x
i
j
=
0
x_{ij} = 0
xij=0的数据去训练我们的模型。
二、评估指标
我们采用下述评估指标去检验预测准确率和推荐效果。
MAE 平均绝对误差,RMSE 均方误差
M
A
E
=
∑
i
,
j
∣
r
^
i
j
−
r
i
j
∣
N
⋅
⋅
⋅
(
11
)
MAE = \frac{\sum_{i,j}|\hat{r}_{ij}-r_{ij}|}{N}···(11)
MAE=N∑i,j∣r^ij−rij∣⋅⋅⋅(11)
R
M
S
E
=
∑
i
,
j
(
r
^
i
j
−
r
i
j
)
2
N
⋅
⋅
⋅
(
12
)
RMSE = \sqrt{\frac{\sum_{i,j}(\hat{r}_{ij}-r_{ij})^2}{N}}···(12)
RMSE=N∑i,j(r^ij−rij)2⋅⋅⋅(12)
其中N是测试集中评分数量,
r
i
j
r_{ij}
rij是用户i对物品j评分的实际观察值,
r
^
i
j
\hat{r}_{ij}
r^ij是用户i对物品j的预测值。
NDCG(评价排序质量)
NDCG指标被广泛应用于信息抽取中,评估按照重要性降序排列的排序质量。在推荐中,NDCG的计算方法如图所示:
N
D
C
G
=
1
∣
U
∣
∑
i
∈
U
D
C
G
i
I
D
C
G
i
⋅
⋅
⋅
(
13
)
NDCG = \frac{1}{|U|}\sum_{i \in U}\frac{DCG_i}{IDCG_i}···(13)
NDCG=∣U∣1i∈U∑IDCGiDCGi⋅⋅⋅(13)
D
C
G
i
DCG_i
DCGi的定义如下面的公式所示,
I
D
C
G
i
IDCG_i
IDCGi是
D
C
G
i
DCG_i
DCGi最优排序的理想值。
D
C
G
i
=
∑
i
∈
F
a
v
(
i
)
1
log
2
(
r
a
n
k
i
j
+
1
)
⋅
⋅
⋅
(
14
)
DCG_i = \sum _{i \in Fav(i)}\frac{1}{\log_2(rank_{ij} +1)}···(14)
DCGi=i∈Fav(i)∑log2(rankij+1)1⋅⋅⋅(14)
其中
r
a
n
k
i
j
rank_{ij}
rankij代表了物品j在用户i的推荐列表上的排序位置;
F
a
v
(
i
)
Fav(i)
Fav(i)代表了用户i在测试集中喜欢的物品的集合。正如别人近期的工作【论文13】中所提到的,在测试集中高评分的物品就可以认为是喜欢的物品(比如5星中3星的物品),NDCG可以看作一种寻找所有喜欢的物品的难易程度,NDCG值越大,就意味着喜欢的物品在列表中越靠前的位置。
三、对比方法
为了证明SPMF-MNAR模型的有效性,我们和以下方法进行对比:
两条基线: Useravg,PMF【论文7】
Useravg是一个非社交关系的简单基线模型,通过用于的平均分取预测缺失的分数。
PMF是一个非社交的评分数据的经典概率矩阵分解模型。
不采用MNAR假设的社交推荐算法:
SoRec【论文16】,RSTE【论文21】,SocialMF【论文19】,TrustMF【论文18】,TrustSVD【论文3】都是社交推荐中最优的模型。需要注意的是,这些社交推荐模型都没有采用MNAR假设。
采用MNAR假设的非社交推荐算法:
GPMF【论文6】是一种采用MNAR假设的非社交推荐算法最优模型。我们也自己设计了一个SPMF-MNAR-nos模型作为比较去验证对社交关系建模对评分观察过程的影响。SPMF-MNAR-nos是SPMF-MNAR的简化版,排除了社交影响,只通过用户喜好生成用户购买情况。
四、实验结果和分析
表2展现了这是个推荐算法在两个数据集上的MAE和RMSE。我们发现SPMF-MNAR模型在所有数据集上都优于其他模型。SPMF-MNAR模型比其它方法的改善主要体现在两个方面,(1)在社交推荐中的评分不是随机丢失的,如果方法采用MAR的假设,忽略用户是否消费这个物品和用户评分的联系,预测结果会受损。(2)我们在推荐系统中融入社交信息。和以往探究社交影响对用户评分的研究不同,SPMF-MNAR模型致力于探究社交影响对用户评分过程也就是是否会产生购买行为进行研究,并且观察它如何改善推荐效果。事实上,我们在数据集上的分析表明在内容共享的社交网络中,相互连接的用户通常会不自觉的相互推荐,因此他们的消费会被社交关系强烈影响。所以,SPMF-MNAR的推荐效果比不应用社交关系的SPMF-MNAR-nos模型更好。
NDCG比较:
图4展现了不同方法的NDCG表现情况,NDCG刻画了排序质量,NDCG值越大,效果越好。我们观察到,SPMF-MNAR再一次比其它方法效果好。尤其,在NDCG上SPMF-MNAR比有了显著的提升,在数据集Ciao上提升了22.3%,数据集Epinions上提升了19.3%。这个结果充分展现了社交关系对用户消费情况的影响。
参数c的影响:
我们还做了一个实验去探究参数c对SPMF-MNAR模型的影响,其中c是一个规模参数控制用户喜好
z
i
j
z_{ij}
zij对他消费情况
x
i
j
x_{ij}
xij的影响。图5展现了不同c值下的MAE,c越大,MAE一开始变小,推荐效果变好,这是因为在社交推荐系统中,用户消费情况不是完全和用户喜好无关的。用户的消费也反映了用户对物品的喜好。因此,当我们增加用户喜好对用户消费情况的影响时,反过来我们也可以从用户的消费情况推断出更多的用户喜好。但是,当c大于判决门限0.5时,增加c推荐效果变差。因为c越大,我们使用更依赖于消费信息去推断用户的喜好,其它重要信息包括用户评分被忽略了。因此,只有c设置为一个合适的值,比如c=0.5,它才能平衡这些信息的重要性,SPMF-MNAR模型才能达到最佳效果。
参数
η
0
\eta_0
η0和
η
1
\eta_1
η1:
我们在表3中展现了
η
0
\eta_0
η0和
η
1
\eta_1
η1的最优参数分布情况。
η
0
\eta_0
η0和
η
1
\eta_1
η1表现了用户消费和他们朋友之间消费的依赖性。
η
1
=
p
(
x
i
j
=
1
∣
x
k
j
=
1
,
τ
i
j
k
=
1
)
\eta_1 = p(x_{ij} =1|x_{kj} =1,\tau_{ijk} = 1)
η1=p(xij=1∣xkj=1,τijk=1)意味着用户会跟随他指定朋友消费情况消费的概率。
η
0
=
p
(
x
i
j
=
1
∣
x
k
j
=
0
,
τ
i
j
k
=
1
)
\eta_0 = p(x_{ij} =1|x_{kj} =0,\tau_{ijk} = 1)
η0=p(xij=1∣xkj=0,τijk=1)意味着用户的第k个朋友没有消费该商品他消费的概率。从表3我们得知,
η
1
\eta_1
η1的数学期望大于0.99,
η
0
\eta_0
η0的数学期望小于0.01。这个结果表明了社交服从效应,用户会根据朋友的购买情况决定是否购买商品。所以我们在对用户购买情况建模时,我们需要考虑社交影响的影响可能会让我们更好的推断出用户真实的喜好。
不同用户的d值:
去探究用户的主观能动性和用户的接受门限d的联系是有意义的。图6展现了不同用户主观能动性不同时判决门限d的后验期望值。用户的接受门限d比较大时,用户会对物品更挑剔,用户通常不会接受朋友推荐的东西。与之相反的是,判决门限d小的用户通常比较宽容,他们通常会消费更多的东西。
第六部分 结论
本文中,我们对社交推荐的真实数据集自习分析,并且发现评分过程依赖于用户的喜好和社交关系。因此我们引入MNAR假设进入社交推荐系统,并且提出一种新的推荐方法SPMF-MNAR 通过一种概率生成模型。和现有推荐系统研究社交影响对用户评分的预测不同,我们把关注点放在了探究社交关系对评分过程的影响,也就是是否会购买。我们的实验结果展现了模型的有效性。
将来我们会探究更多会影响用户消费的因素,比如物品流行性和用户位置,我们将扩展SPMF-MNAR模型以获得更好的效果。