赞
踩
主要参考论文:《Personalized Entity Recommendation: A Heterogeneous Information Network Approach》
这篇论文讲的是异构信息网络中基于元路径的推荐算法,与之前讲的SemRec不同:1.SemRec针对评分预测任务,而HeteRec主要针对隐式反馈(点击、浏览等);2.SemRec根据元路径得到用户间的相似度,然后根据相似用户的偏好得到目标用户的偏好,得到预测分数,最后将不同元路径的分数加权求和得到最终分数;HeteRec则根据不同元路径得到不同的用户偏好矩阵,然后利用非负矩阵分解(NMF)得到相应的用户和物品的隐式表征,接着将不同元路径下用户和物品的隐式表征的内积按照权重整合为正反馈的概率,应用BPR优化,得到最终的推荐模型。
显式反馈指用户的评分,但实际应用中,显示反馈数据是比较难获取的,所以更多的研究集中在隐式反馈上。隐式反馈通常指用户与物品间的点击、浏览等交互行为,相较于显示反馈,隐式反馈更易获得,且往往在用户没有察觉的情况下收集到,更能反映出用户的真实想法。
设有
m
m
m个用户
U
=
{
u
1
,
⋅
⋅
⋅
,
u
m
}
U=\left \{u_1,\cdot \cdot \cdot ,u_m\right \}
U={u1,⋅⋅⋅,um},
n
n
n个物品
I
=
{
e
1
,
⋅
⋅
⋅
,
e
n
}
I=\left \{e_1,\cdot \cdot \cdot ,e_n\right \}
I={e1,⋅⋅⋅,en},定义用户隐式反馈矩阵
R
∈
R
m
×
n
R\in \mathrm{R}^{m\times n}
R∈Rm×n如下:
R
i
j
=
{
1
i
f
(
u
i
,
e
j
)
i
n
t
e
r
a
c
t
i
o
n
i
s
o
b
s
e
r
v
e
d
;
0
o
t
h
e
r
w
i
s
e
R_{ij}=
需要注意的是,
R
R
R中的值1表示用户与物品间的交互,比如用户观看了某部电影或用户浏览了某个网页,但是值1并不表示用户喜欢这个物品,比如用户觉得感兴趣买了一张电影票,但观看后发现并不喜欢。同样,值0也并不意味着用户不喜欢某个物品,既可能是用户不喜欢这个物品,也可能是用户还没看到过这个物品。大部分论文没有细致地区分值1和值0,只是笼统地当作正反馈和负反馈,本文也不例外。部分研究考虑了交互频率、停留时间(the dwelling time)等来细致划分正反馈;也可以像SemRec一样,将不同类型的反馈(SemRec中是不同的评分)作为不同的关系,构建不同的元路径,当然还可以是其他的方法。
一条元路径 P = A 0 → R 1 A 1 → R 2 ⋅ ⋅ ⋅ → R k A k P=A_{0}\overset{R_{1}}{\rightarrow}A_{1}\overset{R_{2}}{\rightarrow}\cdot \cdot \cdot \overset{R_{k}}{\rightarrow}A_{k} P=A0→R1A1→R2⋅⋅⋅→RkAk是指网络架构(network schema) G T = ( A , R ) G_{T}=\left (\mathcal{A},\mathcal{R}\right ) GT=(A,R)中的一条路径,定义了类型 A 0 A_{0} A0与 A k A_{k} Ak间的一种新的复合关系。其中, A i ∈ A A_{i}\in \mathcal{A} Ai∈A, R i ∈ R R_{i}\in \mathcal{R} Ri∈R, A i = r a n g e ( R i ) = d o m ( R i + 1 ) A_{i}=range\left ( R_{i}\right )=dom\left ( R_{i+1}\right ) Ai=range(Ri)=dom(Ri+1)。 d o m ( ⋅ ) dom\left ( \cdot \right ) dom(⋅)和 r a n g e ( ⋅ ) range\left ( \cdot \right ) range(⋅)分别表示定义域和值域,其实就是表达每种关系的头节点和尾节点的类型是有限制的。
元路径的确是一种可以充分利用异构图中信息的方式,不仅可以同时利用用户和物品间的多种关系,还使推荐具有了可解释性。但元路径需要人为精心的设计,对于某些场景不适用。
本文根据IMDb-MovieLens-100K数据集对应的异构网络架构图(如下面第一幅图所示)设计了10条不同的元路径,以下面第二幅图中的两条元路径为例。这两种元路径分别基于不同的语义假设连接用户和电影: P 1 P_1 P1偏向于探索其他看过同样电影的用户对目标用户的联系和影响; P 2 P_2 P2则利用“电影-演员”这种连边来联系用户和电影。通过度量不同元路径下用户与电影的相似度,我们可以从不同的语义角度给用户做推荐。
本文定义的元路径的格式局限于“user-item-*-item”。前半部分“user-item”表示用户与物品的交互,理解为用户偏好;后半部分“item-*-item”表示物品与其他物品间的各种复合关系,理解为用户交互过的物品(用户偏好)在异构网络中沿着元路径扩散。所以这种格式的元路径就是用户偏好扩散。
给定元路径 P = R 1 R 2 ⋅ ⋅ ⋅ R k P=R_{1}R_{2}\cdot \cdot \cdot R_{k} P=R1R2⋅⋅⋅Rk,且 d o m ( P ) = u s e r dom\left ( P\right )=user dom(P)=user, r a n g e ( P ) = i t e m range\left ( P\right )=item range(P)=item。(即“user-item-*-item”整条路径)
令 P ′ = R 2 ⋅ ⋅ ⋅ R k {P}'=R_{2}\cdot \cdot \cdot R_{k} P′=R2⋅⋅⋅Rk,且 d o m ( P ′ ) = i t e m dom\left ( {P}'\right )=item dom(P′)=item, r a n g e ( P ′ ) = i t e m range\left ( {P}'\right )=item range(P′)=item。(即“user-item-*-item”的后半部分“item-*-item”)
于是,通过对PathSim的改进,定义用户 u i u_{i} ui与物品 e j e_{j} ej间的用户偏好扩散分数为
s ( u i , e j ∣ P ) = ∑ e ∈ I 2 × R u i , e × ∣ { p e → e j : p e → e j ∈ P ′ } ∣ ∣ { p e → e : p e → e ∈ P ′ } ∣ + ∣ { p e j → e j : p e j → e j ∈ P ′ } ∣ s\left ( u_{i},e_{j}|P\right )\\=\sum_{e\in I}^{} \frac{2\times R_{u_{i},e}\times \left | \left \{p_{e\rightarrow e_{j}}:p_{e\rightarrow e_{j}}\in {P}'\right \}\right |}{\left | \left \{p_{e\rightarrow e}:p_{e\rightarrow e}\in {P}'\right \}\right |+\left | \left \{p_{e_{j}\rightarrow e_{j}}:p_{e_{j}\rightarrow e_{j}}\in {P}'\right \}\right |} s(ui,ej∣P)=∑e∈I∣{pe→e:pe→e∈P′}∣+∣{pej→ej:pej→ej∈P′}∣2×Rui,e×∣{pe→ej:pe→ej∈P′}∣
其中, p e → e j p_{e\rightarrow e_{j}} pe→ej为物品 e e e与 e j e_{j} ej间的一条路径; p e → e p_{e\rightarrow e} pe→e为物品 e e e与 e e e间的一条路径; p e j → e j p_{e_{j}\rightarrow e_{j}} pej→ej为物品 e j e_{j} ej与 e j e_{j} ej间的一条路径。
上式分为两部分:1)已经观察到针对用户 u i u_{i} ui的用户-物品交互 R u i , e R_{u_{i},e} Rui,e;(即“user-item-*-item”的前半部分“user-item”)2)用户已经交互过的物品 e e e与可能感兴趣的物品 e j e_{j} ej间的联系(相似度)。(即“user-item-*-item”的后半部分“item-*-item”)。
用户偏好扩散分数的意义是,如果物品 e e e与可能感兴趣的物品 e j e_{j} ej间的沿着元路径 P ′ {P}' P′的路径总数相对较多,则说明二者联系很强(相似度很高)。
公式的分子为用户已经交互过的物品 e e e与可能感兴趣的物品 e j e_{j} ej间的沿着元路径 P ′ {P}' P′的路径总数;分母为异构图中,沿着元路径 P ′ {P}' P′,物品 e e e经过一些关系回到自身和物品 e j e_{j} ej经过一些关系回到自身的路径总数。分母可以视为物品 e e e和 e j e_{j} ej的可见度(流行度、曝光率),通过分母可以使得计算出的用户偏好扩散分数是一个相对值,从而避免了流行物品的扩散分数过高。
举例,有一个小型的异构信息网络如下图所示,图中的红色实线表示已经观察到的用户隐式反馈。用户 u 1 u_1 u1已经看过了电影 e 2 e_2 e2,即 R u 1 , e 2 = 1 R_{u_{1},e_{2}}=1 Ru1,e2=1;按照元路径“user−movie−actor−movie”, e 1 e_1 e1与 e 2 e_2 e2间有1条路径, e 1 e_1 e1与 e 1 e_1 e1间有2条路径, e 2 e_2 e2与 e 2 e_2 e2间有2条路径,代入公式得到分数:
2 × 1 × 1 2 + 2 = 0.5 \frac{2\times 1\times 1}{2+2}=0.5 2+22×1×1=0.5
按照上述方式,可以求出元路径
P
P
P下所有用户和物品间的扩散分数矩阵
R
~
∈
R
m
×
n
\tilde{R}\in \textrm{R}^{m\times n}
R~∈Rm×n,
R
~
i
\tilde{R}_{i}
R~i表示用户
u
i
u_i
ui可能的偏好。如果有
L
L
L条元路径,则分别对应
L
L
L个扩散分数矩阵
R
~
(
1
)
,
R
~
(
2
)
,
⋅
⋅
⋅
R
~
(
L
)
\tilde{R}^{\left ( 1\right )},\tilde{R}^{\left ( 2\right )},\cdot \cdot \cdot \tilde{R}^{\left ( L\right )}
R~(1),R~(2),⋅⋅⋅R~(L)。不同的矩阵就表示不同的元路径语义下,对用户偏好的探索和发掘,可用于后续推荐。
令 R ~ ( q ) \tilde{R}^{\left ( q\right )} R~(q)表示由第 q q q条元路径得到的用户偏好扩散矩阵。首先利用非负矩阵分解技术分解扩散矩阵,得到用户和物品的隐式表征。分解过程如下:
( U ^ ( q ) , V ^ ( q ) ) = a r g m i n U , V ∥ R ~ ( q ) − U V T ∥ F 2 s . t . U ⩾ 0 , V ⩾ 0 \left ( \hat{U}^{\left ( q\right )},\hat{V}^{\left ( q\right )}\right )=argmin_{U,V}\left \| \tilde{R}^{\left ( q\right )}-UV^{T}\right \|_{F}^{2}\\ s.t.\ \ U\geqslant 0,V\geqslant 0 (U^(q),V^(q))=argminU,V∥∥∥R~(q)−UVT∥∥∥F2s.t. U⩾0,V⩾0
其中, U ^ ( q ) ∈ R m × d \hat{U}^{\left ( q\right )}\in \textrm{R}^{m\times d} U^(q)∈Rm×d和 V ^ ( q ) ∈ R n × d \hat{V}^{\left ( q\right )}\in \textrm{R}^{n\times d} V^(q)∈Rn×d分别表示元路径 q q q下,用户和物品的 d d d维隐式表征。
通过对 L L L个用户偏好扩散矩阵的分解,会得到L组用户和物品的隐式表征 ( U ^ ( 1 ) , V ^ ( 1 ) ) , ⋅ ⋅ ⋅ , ( U ^ ( L ) , V ^ ( L ) ) \left ( \hat{U}^{\left ( 1\right )},\hat{V}^{\left ( 1\right )}\right ),\cdot \cdot \cdot ,\left ( \hat{U}^{\left ( L\right )},\hat{V}^{\left ( L\right )}\right ) (U^(1),V^(1)),⋅⋅⋅,(U^(L),V^(L))。由于不同的隐式表征对可能有不同的重要性,所以定义了如下的推荐模型:
r ( u i , e j ) = ∑ q = 1 L θ q ⋅ U ^ i ( q ) V ^ j ( q ) T r\left ( u_{i},e_{j}\right )=\sum_{q=1}^{L}\theta _{q}\cdot \hat{U}_{i}^{\left ( q\right )}\hat{V}_{j}^{\left ( q\right )T} r(ui,ej)=∑q=1Lθq⋅U^i(q)V^j(q)T
其中, θ q \theta _{q} θq表示第 q q q组用户和物品隐式表征的权重。因为对所有用户,权重 θ q \theta _{q} θq都是一样的,所以成为全局推荐模型。
全局推荐模型不能在模型级别区分用户的兴趣或行为模型。比如,全局模型可能学习到大部分人喜欢看有著名演员的电影,即对应的那组表征的权重$ θ \theta θ就比较大,但并不是所有人都这样,所以需要有更细粒度的区分。
与全局推荐模型不同,个性化推荐模型拟为每个用户分配一个不同的权重 θ q \theta _{q} θq。但是用户的隐式反馈数量呈幂律分布,所以大部分的用户没有足够的隐式反馈去学习权重参数。
为此,假设在特定情况下,一簇(cluster)用户有相似的兴趣或偏好。与SemRec中“相似用户的权重偏好一致性原则”类似,比如,喜欢动漫的用户可能都会喜欢超级英雄、科幻冒险类的电影。首先对根据用户兴趣进行聚类,然后为每个簇学习一个推荐模型(即权重 θ \theta θ)。
具体地,在对用户进行聚类时,先将用户-物品隐式反馈矩阵利用非负矩阵分解技术,得到用户的隐式表征,然后利用余弦相似度作为度量的k-means算法对用户进行聚类;考虑到用户可能同时属于多个簇,在推荐时,不是只考虑用户属于的那个簇,而是整合多个相关簇的推荐模型,公式如下:
r ( u i , e j ) = ∑ k = 1 c s i m ( C k , u i ) ∑ q = 1 L θ q { k } ⋅ U ^ i ( q ) V ^ j ( q ) T r\left ( u_{i},e_{j}\right )=\sum_{k=1}^{c}sim\left ( C_{k},u_{i}\right )\sum_{q=1}^{L}\theta _{q}^{\left \{k\right \}}\cdot \hat{U}_{i}^{\left ( q\right )}\hat{V}_{j}^{\left ( q\right )T} r(ui,ej)=∑k=1csim(Ck,ui)∑q=1Lθq{k}⋅U^i(q)V^j(q)T
其中, C k C_k Ck表示第 k k k个簇, s i m ( ⋅ , ⋅ ) sim\left ( \cdot ,\cdot \right ) sim(⋅,⋅)为簇 C k C_k Ck的中心与 u i u_i ui的余弦相似度, θ q { k } \theta _{q}^{\left \{k\right \}} θq{k}表示簇 C k C_k Ck在第 q q q组用户和物品隐式表征的权重。所以,一共需要学习 c × L c\times L c×L个权重参数。
《Personalized Entity Recommendation: A Heterogeneous Information Network Approach》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。