原文链接 : Knowledge Graph Convolutional Networks for Recommender Systems
1 问题定义
1.1已知条件
大小为 M 的用户集 \(U = \{u_1,u_2, ...,u_M \}\)
大小为 N 的物品集 \(V = \{v_1,v_2, ...,v_N \}\)
用户-物品互动关系矩阵 \(Y \in \mathbb{R}^{M×N}\) \[ Y_{uv} = \left\{ \begin{array}{**lr**} 1, & 用户 u 和 物品 v 之间存在点击、浏览、购买等关系 \\ 0, & 用户 u 与 物品 v 之间不存在上述关系 \\ \end{array} \right. \]
知识图谱 \(G\) 由 实体-关系-实体 三元组 \((h,r,t)\) 组成
其中 \(h,t \in E\ \ ;\ r \in\ R\)
例如三元组 $(A Song of Ice and Fire, book.book.author, George Martin) $ 表示t George Martin 写了书 “A Song of Ice and Fire"
在许多推荐系统中,物品 \(v \in V\) 可能也是知识图谱中的实体。
例如,在一个书本推荐系统中 “A Song of Ice and Fire" 也可以是知识图谱的实体 \(e \in E\) 。
1.2 需要求解的问题
给出 \(Y\ , \ G\) 预测用户 u 对物品 v 是否存在潜在的兴趣。
需要学习一个预测函数 \[ \hat{y}_{uv} = F(u,v|\Theta ,Y,G) \] \(\hat{y}_{uv}\) 表示用户 u 喜爱物品 v 的潜在可能性
\(\Theta\) 表示函数 F 的模型参数
2 KGCN 层
\(N(v)\) 表示与物品 (实体) 直接相连的实体的集合
\(r_{e_i,e_j}\) 表示实体 \(e_i,\ e_j\) 之间的关系
用函数 $g: ^d ^d ^d $ 来计算用户和关系之间的关联,其中\(u\in \mathbb{R}^d ; u\in \mathbb{R}^d\)
\(\pi^u_r\) 表示关系 \(r\) 对用户 \(u\) 的重要性 \[ \pi^u_r\ = g(u,v) \]
采取线性组合来描述拓扑优先级,
和 \(v\) 直接相连接的实体 \(e\) 与 \(v, e\) 之间关系对用户 \(u\) 的重要性 \(\pi^u_r\) 的线性组合 \[ V^u_{N(v)} = \sum_{e\in N(v)} \tilde{\pi}^u_{r_{v,e}}e \]
\(\tilde{\pi}^u_{r_{v,e}}\) 是归一化之后的 用户-关系 重要性 \[ \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}})} \]
在实际应用中,\(N(e)\) 的大小随着不同实体 e 的变化而剧烈变化,因此我们一般早取样时候,对所有实体取一个固定大小的邻居集合。将 v 的邻居的集合表示为 \(S(v) \triangleq \{e | e ∼ N (v)\}\) 并且 $|S(v)|=K $ 是一个常量。
KGCN的最后一步,是对实体向量 v,和邻居集合的表示向量聚合为一个向量
由三种聚合的方式,如下: \[ agg_{sum} = \sigma(W\cdot (V + V^u_{S(v)}) + b) \]
\[ agg_{concat} = \sigma(W\cdot concat(V, V^u_{S(v)}) + b) \]
\[ agg_{neighbor} = \sigma(W\cdot V^u_{S(v)} + b) \]