KGAT: Knowledge Graph Attention Network for Recommendation
KGAT: Knowledge Graph Attention Network forRecommendation( SIGKDD)
ABSTRACT
为了提供更准确、多样化和可解释的推荐,必须超越对用户-项目交互的建模,并考虑到用户和项目侧的辅助信息。
提出了一种新的方法,称为知识图注意网络(KGAT),它显式地以端到端的方式模拟KG中的高阶连接性。 它递归地从节点的邻居(可以是用户、项或属性)传播嵌入来细化节点的嵌入,并使用注意机制来区分邻居的重要性。
KGAT优于现有的基于KG的推荐方法,现有的方法要么通过提取路径来利用高阶关系,要么用正则化隐式建模它们。
进一步的研究验证了嵌入传播用于高阶关系建模的有效性和注意机制带来的可解释性好处。
INTRODUCTION
提出了一种新的知识图注意网络(KGAT)方法,该方法配备了两种设计,以相应地解决高阶关系建模中的挑战。1) 递归嵌入传播,它根据节点的邻居嵌入更新节点的嵌入,并递归地执行这种嵌入传播以捕获高阶连接性。2) 基于注意的聚集,它利用神经注意机制来学习每个邻居在传播过程中的权重,从而级联传播的注意权重揭示高阶连通性的重要性。
KGAT在概念上优于现有的方法,因为:1)与基于路径的方法相比,它避免了实现路径的劳动密集型过程,从而更有效、更方便。2)与基于正则化的方法相比,它直接将高阶关系因素纳入预测模型,因此所有相关参数都是为了优化推荐的目标。
这项工作的贡献概述如下:
(1)强调了显式建模协作知识图中高阶关系的重要性,以提供更好的项目侧信息推荐。
(2) 本文提出了一种基于图神经网络框架的高阶关系建模方法——KGAT
(3) 在三个公共基准数据集上进行了广泛的实验,证明了KGAT的有效性和它在理解高阶关系重要性方面的可解释性
TASK FORMULATION


METHODOLOGY
模型框架由三个主要组成部分组成:
1) 嵌入层,通过保持CKG的结构,将每个节点参数化为向量;
2) 注意嵌入传播层,它递归地从节点的邻居传播嵌入以更新其表示,并使用知识感知的注意机制来学习每个邻居在传播过程中权重 ;
3) 预测层,它从所有传播层聚合用户和项目的表示,并输出预测的匹配分数。

该图以虚线分割为左右子图。左边的子图展示了KGAT的模型框架,该模型框架又分为三层:(1)CKG Embedding Layer (2)Attentive Embedding Propagation Layers (3)Prediction Layer .右边的子图是对KGAT模型第(2)层Attentive Embedding Propagation Layers过程的详细可视化描述。
(1)CKG Embedding Layer

知识图嵌入是将实体和关系参数化为向量表示的有效方法,同时保护了图形的结构。在这里使用Trans系列中的TransR方法。TransR,分别在实体空间和关系空间构建实体和关系嵌入。然后,我们学习嵌入,首先将实体投影到对应的关系空间中,然后再建立从头实体到尾实体的翻译关系。 更具体地说,它通过优化翻译原则e h r + e r≈ e tr来学习嵌入每个实体和关系。eg. 图中存在三元组(h,r,t),e h,e t ∈Rd,e r∈Rk分别是 h、t和r的嵌入,e h r,e tr是e h,e t在关系r空间的映射向量表示。(由于Rd,Rk的维度不一样,为了方便向量运算需要嵌入到同一维度的空间,eg.W re h =e h r)。因此,对于给定的三元组(h,r,t),其合理性分数(计算合理性分数的目的:是为了探究图中真实存在的三元组(h,r,t)的信息是否完整,有没有保护图的结构。)计算公式如下:

W r ∈Rk x d 是关系r的变换矩阵。 将实体从d维实体空间投影到k维关系空间。 较低的分数 g(h,r,t)表明三元组更有可能为真,损失的信息越少,反之亦然。
TransR的训练考虑了有效三元组和破碎三元组之间(这里指的是任意替换尾结点t成为t’,相当于负例)的相对顺序,使用成对损失函数(我的理解是:eg:(A,A’),(B,B‘),(g(h,r,t),g(h,r,t’))):


是通过随机替换有效三元组中的一个尾实体来构造的负例三元组。σ(.)是sigmoid函数。 该CKG Embedding Layer层对三元组粒度上的实体和关系进行建模,作为整个模型损失函数的正则化,从而增加模型表示能力。
(2)Attentive Embedding Propagation Layers

相关知识:
1.基于空间的图卷积网络
基于空间的图卷积网络模仿传统的卷积神经网络中的卷积运算,根据节点的空间关系定义图的卷积。对于图卷积而言,将图中的节点与其邻居节点进行聚合,得到该节点的新表示。
图卷积的卷积操作有三步:
(1)每个节点将自身的特征信息传递给邻居节点
(2)每个节点将邻居节点及自身的特征信息进行汇集,对局部结构进行进行融合
(3)与传统的深度学习中的激活函数类似,在图卷积我们同样要加入激活函数,对节点的信息做非线性变换,增强模型的表达能力
因此,图卷积网络的关键是学习到一个函数,将当前节点的特征信息与其邻居节点的特征信息进行汇集。
2.图注意力网络
与图卷积网络最大的不同是,图注意力网络引入了注意力机制,给与哪些较为重要的节点更大的权重。在端到端的框架中,注意力权重和神经网络参数共同被学习得到。
在图卷积网络体系结构的基础上,沿着高阶连通性递归地传播嵌入;此外,利用图注意网络的思想生成级联传播的注意力权重,以揭示这种连通性的重要性。由于多层传播过程和第一层类似,因此以其第一层为例做简单描述。每一层又由三部分组成:(1)information propagation(2)knowledge-aware attention(3)information aggregation
(1)Attention Embbeding Propagation Layers(Information Propagation)
**

eg. 在协作知识图(CKG)中以项目i3 为中心作为头结点向外传播信息,得到尾结点e1 、e3 和u2。这个过程就是信息传播(Information Propagation)过程。
为了表征实体i3的一阶连通性结构, 通过如下公式计算实体i3的邻居向量表示。
其中π(h,r,t)**是头结点h和尾结点t 之间关系r的权重,e t 是尾结点的向量表示,e Nh 是所有邻居节点的向量加和的最终向量表示。
(2)Attention Embbeding Propagation Layers(Knowledge-aware Attention)
通过关系注意力机制计算头结点h和尾结点t 之间关系r的权重,公式如下:
(3)Attention Embbeding Propagation Layers(Information Aggregation)
信息聚合是将头实体的向量表示e h 及它的邻居表示eNh
聚合为头实体h新的向量表示 e h(1)=f (e h,eNh)。对应的给出三种聚合器来聚合信息。在实验中比较哪种聚合器的效果好。



(3)KGAT模型(Model Prediction)
在执行L层注意力嵌入传播之后,得到了用户节点u的多个表示,即{e u(1),…,eu(L)};同理项目节点i的多个表示为,{e i(1),…,ei(L)}。采用层聚集机制将每一步的表示连接成最终的向量表示。

用户u和项目i的向量表示进行内积,以预测用户u和项目i的匹配分数。

KGAT模型(Optimization)
使用如下损失函数优化参数:




大多数模型参数来自实体嵌入。交替地优化LKG和LCF,其中采用小批量Adam来优化嵌入损失和预测损失。 Adam是一个广泛使用的优化器,它能够自适应地控制学习速率。 对于一批随机采样(h,r,t,t‘)的数据节点,更新所有节点的嵌入;此后,随机采样一批(u,i,j),在传播L层之后检索它们的向量表示, 然后利用预测损失的梯度更新模型参数。
EXPERIMENTS
代码和数据集的网址如下:
https://github.com/xiangwang1223/knowledge_graph_attention_network
Dataset Description
为了评估KGAT的有效性,我们使用了三个基准数据集:Amazon-book、Last-FM和Yelp2018,它们是公开访问的,并且在领域、大小和稀疏性方面有所不同。
为了确保KG的质量,通过过滤不充足的实体(不少于10)并保留至少出现在50个三元组中的关系。
对于每个数据集,我们随机选择每个用户交互历史的80%组成训练集,并将剩余的作为测试集。 从训练集中,我们随机抽取10% 交互作为验证集来调整超参数。 对于每个观察到的用户项交互,我们将其视为一个正实例,然后进行负采样策略来对其进行配对用户以前没有观察到过的负例项目。
Amazon-book
亚马逊评论是一个广泛使用的产品推荐数据集。从收集中选择亚马逊图书。 为了确保数据集的质量,使用10核设置,即保留用户和具有至少10个交互的项。
Last-FM
这是从Last.fm在线音乐系统收集的音乐听力数据集。 其中,轨道被视为物品。特别是,我们取数据集的子集,其中时间戳是从2015年1月到2015年6月。 我们使用相同的10核设置,以确保数据质量
Yelp2018
此数据集是从2018年版的Yelp挑战中采用的。 在这里,我们认为当地的企业,如餐馆和酒吧作为项目。 同样,我们使用10核设置来确保用户和项目至少有十个交互。
Experimental Settings
Evaluation Metrics:
为了评估top-k推荐和偏好排名的有效性。 我们采用了两种广泛使用的评价协议。 recall@K, ndcg@K。默认情况下,我们设置K=20。报告测试集中所有用户的平均指标。
recall@K:推荐系统中的召回(recall)本质上和二元分类中的概念是一样的。(也就是二元分类中的正例)。在推荐系统中指返回top k的items,如k=5,10,20,100等。那么该评价指标改为“recall@k”。
ndcg@K:在精确率与召回率中,返回集中每个项目的地位(权值)是一样,位置k处的项目与位置1处的项目地位一样,但是实际情况应该是越排在前面的项目越关性,得分越高。NDCG(normalizeddiscounted cumulative gain)指标便考虑了这种情况,在介绍NDCG之前,首先介绍一下CG (cumulativegain与DCG (discountedcumulative gain)。CG是对排序返回的top k个项目的相关性(即得分)求和,而DCG在每个项目的得分乘上一个权值,该权值与位置成反方向(如成反比),即位置越近,权值越大。而NDCG则是对每项得分所乘的权值先进行归一化,然后再求和。
Baselines:
FM :这是一个Bechmark因式分解模型,其中考虑了输入之间的二阶特征交互… 在这里,我们处理用户ID、项目及其知识(即与其连接的实体) 作为输入特性。
NFM:该方法是一种最先进的因式分解模型,它在神经网络下包含FM… 特别是,我们在输入特征上使用了一个隐藏层。
CKE: 这是一种具有代表性的基于正则化的方法,它利用TransR导出的语义嵌入来增强矩阵分解。
CFKG:该模型将TransE应用于包括用户、项目、实体和关系在内的统一图上,将推荐任务转换为(u,Interact,i)三元组的合理性预测。
MCRec:这是一个基于路径的模型,它提取合格的元路径作为用户和项之间的连接性。
RippleNet:这种模型结合了基于正则化和路径的方法,通过添加根植于每个用户的路径中的项来丰富用户表示。
GC-MC:该模型的设计是为了在图结构数据上使用GCN编码器,特别是对于用户项二部图。 在这里,我们将其应用于用户项知识图… 特别是用了一个图卷积层,其中隐藏维度为等于嵌入大小。
