KGAT 2019(KDD)Knowledge Graph Attention Network for Recommendation
提出背景
- 协同过滤方法未能充分挖掘用户的个人简介、物品属性以及上下文环境等辅助信息,在实际应用中当用户体验者与商品互动次数较小时表现出较低的性能。
 - FM、NFM、Wide&Deep等模型通过将用户与商品表示为低维向量形式,并将其与辅助信息特征相结合的方式显著提升了推荐效果。
 - 上述模型在处理每对用户体验者-商品关系时均采取了独立处理的方式,并未考虑其间的潜在关联性。
 
在知识图谱中更为充分地挖掘用户与物品之间的关系,在如图所示的协作知识图谱(CKG)中包含用户物品交互图和异构知识图谱两部分。目标用户为u_1。传统的基于用户的协同过滤方法考虑具有相似历史行为的用户作为相似用户。例如:u_1、u_4和u_5均购买了i_1;这三个用户被视为相似用户;而基于物品的内容协同过滤则关注物品间的相似性属性。例如:i_1和i_2均具有属性e_1;这些物品被视为相似物品。然而我们还可以探索更深层次的交互关系:如user_2与user_3与item_i2发生交互,并且item_i2与item_i1i以及实体e_i1有相同的关联关系;因此从某种程度上来说user_i1与$user_i2、user_i3也是具有相似性的 users;因此我们需要深入挖掘高阶关系中的高阶连通性

- 面临着高阶关系的发掘难题
当层次逐渐深入时(随着层次加深),网络中的节点数量呈现爆发式增长(急剧上涨),这会带来较大的计算负担。
高阶关系会对预测结果产生不同的影响(其对预测结果的影响各有差异),因此需要采取权衡手段以确保预测结果的准确性。 
现有的基于知识图谱的推荐方法的缺点
基于路径的方法
在两个节点之间存在众多可供选择的通路,在这些通路上需制定筛选算法来筛选出最优通路 或设定源路径模板对通路施加限制 两种方案都存在不足之处:首先 筛选算法的表现直接影响推荐效果;其次 源路径的设计不仅要求具备专业的领域知识还需耗费大量的人力资源投入研发工作
基于正则的方法
通过引入正则化的手段,设计了若干新的损失函数项。这些方法并未直接将高阶关系嵌入到推荐优化模型中,而是采用了隐式的编码方式。由于缺乏显式的建模机制,因此无法保证能够捕捉到长距离的关联性,并且对高阶建模的结果缺乏解释能力。
本文贡献
- 我们特别突出了协作知识图中显式建模高阶关系的关键作用,并借助附加信息来提升推荐质量。
 - 我们开发了一种创新的方法KGAT,在图神经网络框架下实现了一个显式的、端到端的高阶关系建模过程。
 - 在三个标准化的基准测试上系统地进行了系列实验验证,并展示了KGAT的有效性及其对理解高级关系重要性的解释能力。
 
基本架构
Embedding Layer
为了在知识图谱中保持结构信息、每个节点及其关系都被转化为相应的向量。在本文中、我们采用了transR模型来进行知识图谱嵌入。针对任意给定的一个三元组(h、r、t)、其得分为:
g(h,r,t)=||W_r e_h + e_r - W_r e_t||_2^2
定义损失函数如下:
\mathcal{L}_{KG} = \sum_{(h,\boldsymbol{r},t,t') \in \mathcal{T}} -\ln \sigma(g(h,r,t') - g(h,r,t))
Attentive Embedding Propagation Layers
我们可以基于图卷积网络GCN的架构,在沿着高阶连通性进行递归传播嵌入的同时;此外地讲授一种级联传播的注意力权重机制来揭示这种连通性的关键作用。在此处地阐述了一个模型体系;其核心组件由信息传递路径、知识感知子模块以及综合融合机制构成。随后分析其如何向多层次扩展。
Information Propagation
如图所示,在本研究中发现:每个实体都可以存在于多个三元组中,并且在这些三元组之间充当着重要的中介角色。以实例i₂\$为例,在两个不同的三元组间建立关联关系:即实例i₂$通过关系r₂\$连接到I₁$并反向通过r₁\$连接到I₂$;同时实例i₂\$还通过另一个关系r₃$连接到另一个实例I₃\$并同样反向连接到I₂$。需要注意的是,在这种情况下,实例i₂\$所具有的属性字段包括了两个关键属性值:即属性值为r₁$和r₃$的原因在于两者之间存在交互关系:由于实例I₂$与实例i₂$$之间存在交互关系,并由此形成了对这两个重要属性字段的定义依据

Definition:
设某个实体h存在,则所有以h为主语的三元组集合称为:
\mathcal{N}_{h}=\{(h, r, t) \mid (h, r, t)\in\mathcal{G}\}
我们称h的一阶传播性为:
\mathbf{e}_{\mathcal{N}_{h}}=\sum_{(h,r,t)\in\mathcal{N}_{h}} \pi(h,r,t)\cdot\mathbf{e}_t
其中,
\pi(h,r,t)
决定了关于关系r的信息传递强度,在条件关系r下表征了从客体t向主语h的信息衰减程度。
Knowledge-aware Attention
基于注意力机制的计算,在关系r空间中由t和h之间的距离决定其相关性评分,在这一空间中我们采用内积来衡量实体间的相似程度。随后经过\tanh函数进行非线性变换并乘以权重矩阵\mathbf{W}_r得到中间结果值\pi(h, r, t)。最终使用softmax函数对这些中间结果值进行归一化处理以获得最终的概率分配值\pi(h, r, t)
Information Aggregation
在最后一个阶段中, 我们通过将实体表示e_h与其对应的ego网络表示e_{N_h}进行综合生成, 以形成新的表示形式. 具体而言, 这一过程被定义为: e^{(1)}_h = f (e_h,e_{N_h} ), 其中函数f()被设计为整合不同输入特征的有效工具. 为此, 我们采用了三种不同的聚合策略来构建该函数.
GCN聚合函数通过将两个嵌入向量进行相加运算,并通过LeakyReLU激活函数进行非线性变换来实现信息融合
GraphSage的聚合函数用于融合两个表示信息,并通过非线性激活函数对其进行处理
该函数综合考虑了节点自身的特征及其邻居节点的特征e_h和{\mathcal N}_h之间的两种不同特征交互方式

高阶传播
通过高阶传播获取更多的高阶连接性信息,因此递归定义实体表示
其值由函数f计算得出,并基于实体h及其邻居节点的信息进行处理。
具体而言,在l-ego网络中,实体h的信息传播被定义为:
\mathbf{e}_{\mathcal{N}_{h}}^{(l-1)} = \sum_{(h,r,t) \in \mathcal{N}_h} \pi(h,r,t) \cdot \mathbf{e}_t^{(l-1)}
其中,
\mathbf{e}_t^{(l-1)}
表示在第l−1层中与t
相关的特定向量表示,
而\pi(h,r,t)则代表了关系(r)对t
节点的重要性权重。
模型预测
用户的特征向量与物品的特征向量分别进行拼接处理。\mathbf{e}_{u}^{*}=\mathbf{e}_{u}^{(0)}\|\cdots\| \mathbf{e}_{u}^{(L)}, \quad \mathbf{e}_{i}^{*}=\mathbf{e}_{i}^{(0)}\|\cdots\| \mathbf{e}_{i}^{(L)} 通过内积计算用户的偏好与各项属性之间的关联。\hat{y}(u, i)=\mathbf{e}_{u}^{* \top} \mathbf{e}_{i}^{*}
模型优化
基于BPR的损失函数被广泛应用于推荐系统中。在推荐系统中,整个系统的端到端训练损失函数被定义为\mathcal{L}_{\mathrm{KGAT}}=\mathcal{L}_{\mathrm{KG}}+\mathcal{L}_{\mathrm{CF}}+\lambda\|\Theta\|_{2}^{2}。其中,\mathcal{L}_{\mathrm{CF}}表示协同过滤相关的损失项。
数据集

