KGAT: Knowledge Graph Attention Network forRecommendation——学习笔记

本文主要是介绍KGAT: Knowledge Graph Attention Network forRecommendation——学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Knowledge Graph Attention Network for Recommendation:字面意思:用于推荐的知识图谱注意力网络,是基于知识图谱的图神经网络在推荐系统中的应用。

一、文章摘要

摘要的翻译如下:

“为了提供更准确、多样化和可解释的推荐,必须超越对用户-项目交互建模并考虑辅助信息。因子分解机 (FM) 等传统方法将其视为监督学习问题,假设每个交互都是一个独立的实例,并编码了边信息。由于忽略了实例或项目之间的关系(例如,一部电影的导演也是另一部电影的演员),这些方法不足以从用户的集体行为中提取协作信号。在这项工作中,我们研究了知识图谱 (KG) 的效用,它通过将项目与其属性联系起来打破独立交互假设。我们认为,在 KG 和用户项目图的这种混合结构中,高阶关系——将两个项目与一个或多个链接属性连接起来——是成功推荐的重要因素。我们提出了一种名为知识图谱注意网络(KGAT)的新方法,它以端到端的方式显式地对 KG 中的高阶连接进行建模。它递归地从节点的邻居(可以是用户、项目或属性)传播嵌入以改进节点的嵌入,并采用注意力机制来区分邻居的重要性。我们的 KGAT 在概念上优于现有的基于 KG 的推荐方法,后者要么通过提取路径来利用高阶关系,要么通过正则化对其进行隐式建模。三个公共基准的经验结果表明,KGAT 显着优于 Neural FM [11] 和 RippleNet [29] 等最先进的方法。进一步的研究验证了嵌入传播对高阶关系建模的有效性以及注意力机制带来的可解释性优势。我们在 https://github 上发布代码和数据集。 com/xiangwang1223/knowledge_graph_attention_network。”

在推荐系统中,users和items很少交互的情况下,CF仅仅通过已有的user和item间的交互信息来预测用户将对其它物品的交互概率将表现很差,此时应该考虑item的side information,对这些辅助信息的建模就可以看成监督学习,传统的因子分解机(FM)考虑到了item的属性,将item的多个属性加权平均后同user的属性一起来分析user将对item的一个交互情况。推荐系统的有监督模型在工业界已经被广泛的使用,其中常见的几种有FM(矩阵分解)、NFM(neural FM)、Wide&Deep和xDeepFM等等。但是它们都将每一次交互看成一次独立的数据实例,忽视了不同item间的属性是有可能存在内在关联的,这使得模型不足以从用户的集体行为中获取基于属性的协作信息,文章中举例了一个电影的director也可能是另一部电影的actor来说明。基于这种缺陷,本文提出了KGAT,用图神经网络来建模知识图谱,同时在推荐系统中使用到了知识图谱来优化。

二、KGAT模型总体介绍

模型的输入:CKG图

                                                                      图1

这是一个users和items的一个二部图与KG进行了一个组合,即CKG图。

模型的输出:users将和某item交互的一个概率。

                                                                               图2

此图以u_{1},i_{3}为例,embedding就是将实体映射成向量,u_{1}向量e^{\left ( 0 \right )}_{u_{1}}与经过三层迭代后得到三个向量 拼接成一个向量,该向量与i_{3}经过同样过程得到的向量进行一个内结,得到一个预测的概率y\widehat{}_{u_{1}i_{3}}

                                                               图3

在图3的信息传播过程中,引入了注意力机制。见图4

                                                   图4

文章举例说明了i_{3}有两个邻居节点e_{1},u_{2},在信息传播过程中,引入注意力机制,先算出一个权重\pi,再作一个加权平均,得到一个新的embedding,这里用到了LeakRelu激活函数(可以先了解一下Relu、LeakReluctant、sigmoid、hanH等激活函数) 。

三、模型详细介绍

1、Embedding Layer嵌入层

该层将图变向量,一开始向量可以随机赋值,经过该层后得到稳定合理非零的向量。深刻理解Embedding Layer需要了解知识图谱三元组(Head entity、Relation、Tail entity)概念和平移原理(e^{h}_{r}+e_{r}\approx e^{t}_{r})。

文章中的得分函数:

这里用到了transR,通过左乘一个变换矩阵将三元组的头节点h、尾节点t映射到了关系r所在向量空间。

1)KG里有n个Relation向量,就可以对应有n个向量空间

2)可以了解一下transE、transH、tansR等

3)为什么一个向量左乘一个矩阵就可以映射到另外一个向量空间?可以先理解在一个二维空间中一个点(点就可以当成是一个向量)经过平移后到达另外一个位置,平移后该点的坐标(向量)就可以通过该点原来的坐标(向量)左乘一个平移矩阵得到,实际上二维空间中一个点可以通过对应的平移矩阵、旋转矩阵、对称矩阵等来得到平移、旋转、对称等变换后的坐标(向量),这同样可以推广到三维空间。

使

最小为0,可以使式子中每个向量都为0就可以得到,这显然不行。所以得分函数引入了负采样。

 

 式子中的h,r,t{}'是一个伪三元组,h+r-t{}'是一个较大的值,h,r,t是一个真实的三元组,所以h+r-t较小,接近0,所以二者相减也是一个较大的值,函数ln是增函数,所以对数值也是一个较大的值,为了求得分函数的最小值,所以在前面加了一个负号,\sigma文章中指出是激活函数sigmoind函数,值域对应在(0,1)。

经过嵌入层,我们就可以由最先随机的一些向量得到非0的同时满足h+r\approx t 的embedding。(embedding你可以理解为就是向量)

   2、Information propagation 信息传播

通过embedding layer得到了每个结点的embedding,  信息在图中怎么传播的呢?

 上图式子表示所有以h结点为头结点的三元组的集合

    

上图式子表示所有h结点的邻居结点(尾结点)将自身的信息做一个加权平均,传播给头结点。\pi决定了多少信息从尾结点传播到头结点。

怎么理解权重\pi?这里就引入了注意力机制。

理解上面式子任然要知道transR,尾结点e_{t}通过左乘一个矩阵映射到r所在的向量空间得到一个向量,尾结点一样通过映射后得到一个向量 

两个向量做一个内积得到其相似度,如果h、r相似,就给其赋值一个较大的权重。

上面式子表示要对头结点对应的全部邻居结点(尾结点)计算权重 

并且通过softmax进行归一化处理。若不做归一化处理,通过多次迭代后 \pi可能会变得较大。

 3、information aggregation信息聚合

 

为了将头结点本身信息与邻居结点的信息聚合(向量聚合),文章中介绍了三种聚合方式。 一种是将向量相加、一种是将向量拼接、一种是双向聚合。

第一个式子就是将两组向量相加再左乘一个矩阵,再用激活函数LeakReLU处理。第三个式子是文章中提出的双向交互聚合,其中的\bigodot表示向量对应位置相乘,它可以提供一个非线性的交互。

4、High-order propagation高阶依赖传播

 上面式子表示第l-1 层的某头结点h得到的其全部尾结点通过注意力机制传播的信息(向量)

 上面式子表示将h结点信息和其邻居结点信息通过某种聚合方式f聚合后得到h结点在l层的embedding。同理可以得到l+1l+2层的embedding。

文章中举例:

 u_{2}通过四跳,编码进u_{1}

5、Model Prediction模型预测

上面式子表示将每一层的user和item的embedding拼接起来。

 

 上面式子表示将每一层的user和item的embedding拼接起来后做一个点乘计算相似度,得到一个概率。

6、Model optimization模型优化

假设观察到的交互(表明更多用户偏好)应该比未观察到的交互分配更高的预测值 ,其中 O = {(u,i, j)|(u,i) ∈ R+ , (u, j) ∈ R−} 表示训练集,R + 表示观察到的用户u 和项目 j 之间的(正)交互,而 R − 是采样的未观察(负)交互集; σ(·) 是 sigmoid 函数。

最终的函数包括transR的损失函数L_{KG}L_{CF}函数和一个L2正则。

 L2正则就是防止过拟合,让模型的参数变小,\lambda是正则强度。

这篇关于KGAT: Knowledge Graph Attention Network forRecommendation——学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204547

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识