KGCN 论文笔记
原文链接 : Knowledge Graph Convolutional Networks for Recommender Systems
1 问题定义
1.1已知条件
大小为 M 的用户集 U = { u 1 , u 2 , . . . , u M } U = \{u_1,u_2, ...,u_M \} U={u1,u2,...,uM}
大小为 N 的物品集 V = { v 1 , v 2 , . . . , v N } V = \{v_1,v_2, ...,v_N \} V={v1,v2,...,vN}
用户-物品互动关系矩阵
Y
∈
R
M
×
N
Y \in \mathbb{R}^{M×N}
Y∈RM×N
KaTeX parse error: Unknown column alignment: * at position 48: … \begin{array}{*̲*lr**} …
知识图谱 G G G 由 实体-关系-实体 三元组 ( h , r , t ) (h,r,t) (h,r,t) 组成
其中 h , t ∈ E ; h ∈ R h,t \in E\ \ ;\ h \in\ R h,t∈E ; h∈ R
例如三元组 $(A\ Song\ of\ Ice\ and\ Fire,\ book.book.author,\ George\ Martin) $ 表示t George Martin 写了书 “A Song of Ice and Fire"
在许多推荐系统中,物品 v ∈ V v \in V v∈V 可能也是知识图谱中的实体。
例如,在一个书本推荐系统中 “A Song of Ice and Fire" 也可以是知识图谱的实体 e ∈ E e \in E e∈E 。
1.2 需要求解的问题
给出 Y , G Y\ , \ G Y , G 预测用户 u 对物品 v 是否存在潜在的兴趣。
需要学习一个预测函数
y
^
u
v
=
F
(
u
,
v
∣
Θ
,
Y
,
G
)
\hat{y}_{uv} = F(u,v|\Theta ,Y,G)
y^uv=F(u,v∣Θ,Y,G)
y
^
u
v
\hat{y}_{uv}
y^uv 表示用户 u 喜爱物品 v 的潜在可能性
Θ \Theta Θ 表示函数 F 的模型参数
2 KGCN 层
N ( v ) N(v) N(v) 表示与物品 (实体) 直接相连的实体的集合
r e i , e j r_{e_i,e_j} rei,ej 表示实体 e i , e j e_i,\ e_j ei, ej 之间的关系
用函数 $g:\ \mathbb{R}^d \times \mathbb{R}^d \to \mathbb{R}^d $ 来计算用户和关系之间的关联,其中 u ∈ R d ; u ∈ R d u\in \mathbb{R}^d ; u\in \mathbb{R}^d u∈Rd;u∈Rd
π
r
u
\pi^u_r
πru 表示关系
r
r
r 对用户
u
u
u 的重要性
π
r
u
=
g
(
u
,
v
)
\pi^u_r\ = g(u,v)
πru =g(u,v)
采取线性组合来描述拓扑优先级,
和
v
v
v 直接相连接的实体
e
e
e 与
v
,
e
v, e
v,e 之间关系对用户
u
u
u 的重要性
π
r
u
\pi^u_r
πru 的线性组合
V
N
(
v
)
u
=
∑
e
∈
N
(
v
)
π
~
r
v
,
e
u
e
V^u_{N(v)} = \sum_{e\in N(v)} \tilde{\pi}^u_{r_{v,e}}e
VN(v)u=e∈N(v)∑π~rv,eue
π
~
r
v
,
e
u
\tilde{\pi}^u_{r_{v,e}}
π~rv,eu 是归一化之后的 用户-关系 重要性
π
~
r
v
,
e
u
=
e
x
p
(
π
r
v
,
e
u
)
∑
v
e
∈
N
(
v
)
e
x
p
(
π
r
v
,
e
u
)
\tilde{\pi}^u_{r_{v,e}} = \frac {exp(\pi^u_{r_{v,e}})}{\sum_{v_e\in N(v)}exp(\pi^u_{r_{v,e}})}
π~rv,eu=∑ve∈N(v)exp(πrv,eu)exp(πrv,eu)
在实际应用中, N ( e ) N(e) N(e) 的大小随着不同实体 e 的变化而剧烈变化,因此我们一般早取样时候,对所有实体取一个固定大小的邻居集合。将 v 的邻居的集合表示为 S ( v ) ≜ { e ∣ e ∼ N ( v ) } S(v) \triangleq \{e | e ∼ N (v)\} S(v)≜{e∣e∼N(v)} 并且 $|S(v)|=K $ 是一个常量。
KGCN的最后一步,是对实体向量 v,和邻居集合的表示向量聚合为一个向量
由三种聚合的方式,如下:
a
g
g
s
u
m
=
σ
(
W
⋅
(
V
+
V
S
(
v
)
u
)
+
b
)
agg_{sum} = \sigma(W\cdot (V + V^u_{S(v)}) + b)
aggsum=σ(W⋅(V+VS(v)u)+b)
a g g c o n c a t = σ ( W ⋅ c o n c a t ( V , V S ( v ) u ) + b ) agg_{concat} = \sigma(W\cdot concat(V, V^u_{S(v)}) + b) aggconcat=σ(W⋅concat(V,VS(v)u)+b)
a g g n e i g h b o r = σ ( W ⋅ V S ( v ) u + b ) agg_{neighbor} = \sigma(W\cdot V^u_{S(v)} + b) aggneighbor=σ(W⋅VS(v)u+b)