【论文笔记】用于推荐的知识图注意力网络—KGAT

【导读】为了提供更加准确、多样化、和可解释的推荐,必须要在用户-项目交互基础上上,更多地考虑用户的辅助信息而知识图和用户-项目图的混合结构可以得到项目之间的高阶关系,获得更多的辅助信息以提升推荐的性能。本文主要介绍来自KDD 2019 的用于推荐的知识图注意力网络—KGAT,它以端到端的方式显式建模知识图中的高阶连通性。

论文链接:
http://staff.ustc.edu.cn/~hexn/papers/kdd19-KGAT.pdf

No.1

动机


1)传统的基于CF的方法是将每个交互建模为一个独立的实例来考虑交互间的关系,而没有考虑每个交互之间的关系。 因此,这些方法不能从用户的集体行为中提取基于属性的协作信号。


2)现在的有监督学习方法(如: FM、NFM、Wide&Deep等)无法统一相似用户的历史与属性联系,也无法考虑高阶连接性。


3)利用知识图与用户-项目图的混合模形(协同知识图CKG)可以对高阶关系构建预测模型,但是基于CKG的推荐仍存在计算过载与高阶关系对预测的贡献不应该相等的问题。


基于以上问题作者提出了知识图注意力网络(KGAT)的新方法,采用递归嵌入传播的方式来解决计算过载的问题,同时加入基于注意力的聚合方法来解决高阶关系贡献不平等问题。

No.2

核心思想


符号与名词解释


用户—项目二分图 将用户-项目的历史(购买或者点击)交互数据作为一个用户-项目二分图G_1 :


G_1 = { (u,y_{ui},i) | u ∈ U,i ∈ I) }


其中:
  • U和I分别表示用户和项目集,
  • y_ui = 1表示用户u和项目i之间存在观察到的交互,否则yui = 0。


知识图(KG):知识图G2是由实体-属性-实体三元组(每个三元组描述了从首部实体h到尾部实体t之间存在关系r)组成的有向图,由现实世界实体及其之间的关系组成,以对商品进行描述(例如:例如,电影可以由导演,演员和流派来描述)。


G_2= { (h,r,t) | h,t ∈ E,r ∈ R  }


目实体对齐方式:(i,e)表示项目i可以与知识图中的实体e对齐。


A = {(i,e)| i∈I,e∈E}}


协作知识图(CKG):CKG是基于项目实体对齐集A,将用户项目图与知识图无缝集成为统一图。


G = {(h,r,t)| h,t∈E′,r∈R′}


其中:
  • E'= E∪U
  • R'= R∪{Interact}。
  • Interact为每一个用户与项目之间的交互
  • 用户行为三元组表示为:(u,Interact,i)


高阶连接性:将节点之间的L阶连接性定义为multi-hop关系路径:
其中:
  • e_l∈E',r_l∈R'
  • (e_{l-1},r_l,e_l)是第 l 个三元组,L是序列的长度


    模型             


知识图注意力网络(KGAT)以端到端的方式显式建模知识图中的高阶连通性。 它以递归方式传播节点邻居的嵌入(可以是用户,项目或属性),以丰富节点的嵌入,并且使用了注意力机制来区别节点的重要性。 下图为该模型框架,由三个主要部分组成:


1)embedding层:用来进行知识图嵌入,将每个节点参数转化为向量。


2)注意力嵌入传播(attentive embedding propagation )层: 该层以递归的方式传播节点邻居嵌入来更新节点表示,并采用知识感知的注意力机制来学习传播过程中每个邻居的权重。


3)预测层,汇总来自所有传播层的用户和项目的表示,并输出预测的匹配分数。


Embedding层


Embedding层根据三元组的粒度对实体和关系进行建模,文中采用在CKG上利用Trans R将实体和关系参数化为向量表示的同时保留图形结构。 当图中存在一个三元组(h, r,t)时,优化如下 translation 准则,来学习嵌入每个实体和关系。
其中:
  • e_h,e_t∈R^ d分别是实体 h 和实体 t 的嵌入
  • e_r∈R^ k是r的嵌入
  • e ^ r_h,e ^ r_t是关系r空间中e_h和e_t的投影表示。
因此,对于给定的三元组(h,r,t),目标函数如下:
其中:
  • Wr∈R ^ {k×d}是关系r的变换矩阵,它将矩阵从d维实体空间投影到k维关系空间。
  • g(h,r,t)的值越低表明三元组更有可能是真实的,反之亦然。


TransR的训练通过成对的等级损失来实现:


其中:
  • (h,r,t')是通过随机替换有效三元组中的一个实体而构造的分解(broken)三元组
  • σ(·)为sigmod函数


注意力嵌入传播层


嵌入传播层的优势在于显式地利用一阶连通性信息来关联用户,项目和知识实体表示。由信息传播知识自注意力信息聚合三部分组成,下面图为注意力嵌入传播层的基本框架(以单独的一层为例):


信息传播


考虑一个实体h(上图中的e^(i-1)_{i3}),使用N_h = { (h,r,t) | (h,r,t) ∈ G} 来表示首部实体的三元组集,称为ego网络 。 为了描述实体h的一阶连通性结构,文中提出计算h的 ego网络的线性组合。
π(h,r,t)为边(h,r,t)上每次传播的衰减因子(相当于注意力得分),表示在关系r的条件下从t (上图中的e^(l-1)_{e1}、e^(l-1)_{u_2})传播到 h 的信息量。


tips:一个实体可以参与多个三元组。


知识自注意力


知识自注意力部分主要是通过关系注意力机制来得到π(h,r,t),其表达方式如下:


文中选择tanh()为非线性激活函数,使注意力得分取决于关系r空间中中e_h与e_t之间的距离。(越近的实体传播的信息越多)。然后通过采用softmax函数对与h连接的所有三元组的系数进行归一化:


通过注意力得分可以得到应该给哪个邻居节点更多的注意力以捕获协作信号。知识自注意力模块不仅利用图的邻近结构,而且指定了邻居的不同重要性。并且对e_h和e_t之间的关系e_r建模,在传播过程中对更多信息进行编码。


信息汇总


最后一步就是要汇总实体表示e_h和它的的ego网络表示e_{Nh}作为新的实体h的表示:


e^(1)_h=f(e_h,e_{Nh})


文中提出了三种方法可以实现聚合器f(·),其中主要介绍了Bi-Interaction聚合器(来自NFM中的BI-Interaction层),对e_h和e_Nh之间的特征交互进行编码,传递来自相似实体的更多消息。三种聚合器的实现如下:


1.GCN聚合器:对两个表示求和,并应用非线性变换,如下所示:
其中, W∈R ^ {d'×d}是可训练的权重矩阵,用于提取有用的传播信息,而d'是变换大小。


2.GraphSage 聚合器 连接(concat)两个表示并进行非线性变换:
其中,||表示concat连接操作


3.Bi-Interaction聚合器 用以考虑e_h和e_Nh之间的两种特征相互作用,如下所示
其中:
  • W1,W2∈R ^ d'×d是可训练的权重矩阵
  • ⊙点乘(按元素相乘)


高阶传播


为了探索高阶连接信息,文中堆叠了多个传播层,收集从higher-hop 邻居传播的信息。 即在第l步中,递归地将实体的表示形式表示为:
在 l-ego网络内传播的关于实体h的信息定义如下:


e ^(l−1)_t是从先前的信息传播步骤生成的实体t的表示,它存储了来自t的(l −1)hop 邻居


文中在初始信息传播迭代中将e ^(0)_h设置为e_h。


预测层


在执行了L层传播层获得了用户节点 u 、项目节点 i 的多种表示形式之后。


由于第 l 层的输出是基于u(或i)的 l 深度的树结构的信息聚合,因此不同层的输出会强调不同顺序的连接信息。因此,文中将每一步的表示连接(concate)成一个向量,如下所示:



这样,不仅可以通过执行嵌入传播操作来丰富初始嵌入,还可以通过调整L来控制传播强度。 最后,进行用户和项目表示的内积,以预测它们的匹配分数:


优化


为了优化推荐模型,文中选择了BPR损失。假设应将观察到的交互(表示更多的用户偏好)分配给比未观察到的更高的预测值:
其中:
  • O = {(u,i, j)|(u,i) ∈ R+ , (u, j) ∈ R−}表示训练集
  • R +表示用户u和项目j之间观察到的(正)交互
  • R-表示未采样的(负)交互集
  • σ(·)是sigmod函数
因此模型总体损失为:
其中:
  • Θ = {E, Wr,∀l ∈ R, W (l) 1 , W (l) 2 ,∀l ∈ {1, · · · , L}}
  • E是所有实体和关系的嵌入表;
  • λ为L2正则化参数以防止过度拟合。


在训练过程采用小批量Adam优化器来交替优化L_KG和L_CF.并且,对于一批随机采样的(h,r,t,t'),更新所有节点的嵌入;此后,随机采样一批(u,i,j),在传播L个步骤后检索其表示,然后使用预测损失的梯度更新模型参数

No.3

实验


数据集


文中利用三个基准数据集:Amazon-book,Last-FM和Yelp2018,这些数据集可公开访问,并且在领域,大小和稀疏性方面有所不同。


用户项目交互图


  • 亚马逊book2:是从亚马逊评论中选择Amazon-book数据。并且为了确保数据集的质量,只保留至少10次互动的用户和商品。
  • Last-FM3 是从Last.fm在线音乐系统收集的音乐收听数据, 频道被视为项目。 文中使用2015年1月至2015年6月的数据集的子集。 同样,只保留至少10次互动的用户和 频道。
  • Yelp20184 此数据集是从2018年Yelp挑战赛采用的,将诸如餐馆和酒吧之类的当地企业视为商品。 同样,确保每个用户和每个项目至少有十次互动
知识图


  • Amazon-book和Last-FM,我们将通过标题匹配将项目映射到Freebase实体中。
  • Yelp2018,从本地业务信息网络中提取商品知识(例如类别,位置和属性)作为KG数据。 并且过滤不常见的实体(即两个数据集中的低于10的实体)并保留至少出现在50个三元组中的关系


参数设置

  • 嵌入大小:64
  • batch size:1024
  • 学习率:{0.05,0.01,0.005,0.001}
  • L2归一化系数:{10−5,10−4,···,101,102}


实验结果


为了得到与最先进的知识感知推荐方法相比,KGAT的表现如何?文中对比了FM、NFM、CKE、CFKG、MCRec、RippleNet、GC-MC模型的recall@K 和ndcg@K指标,如下表所示:


KGAT在所有数据集上始终保持最佳性能,这表明注意力机制以及堆叠多个嵌入传播层的有效性。


除了对比模型的性能之外,作者还对文中提到的嵌入传播层的层数(表3)以及信息汇总中的三个聚合器(表4)对于模型性能的影响进行了比较。
从表3中可以看到增加KGAT嵌入传播层的深度能够显着提高性能,这些改进归因于有效地建模用户,项目和实体之间的高级连接。 但是当深度增加到第四层,性能的提升开始变得不明显,这表明实体之间的三阶关系可能足以捕获协作信号。


在表4中我们可以看到在三种聚合器中Bi-Interaction聚合器的效果最好,表明在执行信息聚合和传播时进行特征交互是十分重要的,并且合并其他特征交互可以改善表示学习。


为了更好地表明知识图嵌入和注意力机制的作用。 作者对KGAT-1的三个变体进行研究,实验结果如表5所示。
其中
  • w / o KGE: 禁用了KGAT的TransR嵌入组件
  • w / o Att : 禁用注意力机制,并将π(h,r,t)设置为1 / | Nh |
  • w / o K&A: 同时删除以上两个组件


最后,作者从Amazon-Book中随机选择了一个用户u208和一个相关项目i4293(未在训练集中)进行测试并给出了高阶连接的可视化结果,如下图所示:


-END-
专 · 知


专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询
请加专知小助手微信(扫一扫如下二维码添加),获取专知VIP会员码,加入专知人工智能主题群,咨询技术商务合作~
点击“阅读原文”,了解注册成为专知VIP会员
展开全文
Top
微信扫码咨询专知VIP会员