原文链接 : Knowledge Graph Convolutional Networks for Recommender Systems
大小为 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 。
给出 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 的模型参数
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)