KGAT : Knowledge Graph Attention Network for Recommendation

KGAT(Knowledge Graph Attention Network)是推荐系统中的一种新方法,它结合了知识图谱和注意力机制,解决了传统推荐算法如协同过滤在处理稀疏数据和高阶连接性方面的局限。通过将用户、物品与知识图谱中的实体连接,形成协同知识图,KGAT能够捕捉复杂的高阶关系,提高推荐的准确性和解释性。模型包括嵌入层、注意力传播层和预测层,其中注意力机制用于信息传播和聚合,以权重方式考虑不同关系的重要性。KGAT的目标是利用知识图谱的高阶关系,解决传统SL算法无法触及的远程连通性问题,从而提供更精确的推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 ABSTRACT

在推荐系统领域中,为了使推荐结果更加准确、可解释性更高,不仅要考虑user-item之间的关系,引入外部知识丰富user-item之间的信息也非常有必要。在这方面比较常用的方法主要有FM算法(factorization machine,因子分解机),该方法主要问题在于将user-item作为相互独立的实例,忽视了item之间可能存在的相互作用关系。

本文提出了一种基于知识图谱和注意力机制的新方法-KGAT(Knowledge Graph Attention Network)。该方法通过user和item之间的属性将user-item实例链接在一起,摒弃user-item之间相互独立的假设。该方法将user-item和知识图谱融合在一起形成一种新的网络结构,并从该网络结构中抽取高阶链接路径用来表达网络中的节点。

1 INTRODUCTION

常用推荐算法主要有CF算法(collaborative filtering)和SL算法(supervised learning)。

协同过滤的模型一般为m个物品,m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。

一般来说,协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤,第二种是基于项目(item-based)的协同过滤,第三种是基于模型(model based)的协同过滤。基于模型(model based)的协同过滤是目前最主流的协同过滤类型了,我们的一大堆机器学习算法也可以在这里找到用武之地。

基于用户的CF(User-Based CF主要思想是利用<user,item>的打分矩阵, 利用统计信息计算用户和用户, item和item之间的相似度。然后再利用相似度排序, 最终得出推荐结果。
在协同过滤中,一个重要的环节就是如何选择合适的相似度计算方法,常用的两种相似度计算方法包括皮尔逊相关系数和余弦相似度等。皮尔逊相关系数的计算公式为:
在这里插入图片描述
根据皮尔逊公式,基于用户的CF算法公式为:
在这里插入图片描述
该公式要计算用户 i i i和用户 j j j之间的相似度, I i j I_{ij} Iij是代表用户i和用户j共同评价过的物品, R ( i , x ) R(i,x) R(i,x)代表用户i对物品 x x x的评分, R ( i ) ‾ \overline{R(i)} R(i)代表用户i所有评分的平均分:之所以要减去平均分是因为有的用户打分严有的松, 归一化用户打分避免相互影响。

基于项目的CF(Item-Based CF) 和基于用户的CF类似,只不过这时我们要求物品和物品之间的相似度,就先要找到(或获得)目标用户对某些物品的评分,那么我们就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给用户。比如你在网上买了一本机器学习相关的书,网站马上会推荐一堆机器学习,大数据相关的书给你,这里就明显用到了基于项目的协同过滤思想。
既然IBCF和UBCF是类似的,那就可以借鉴UBCF的思想,选一个合适的相似度呗——所以还可以用皮尔逊,最终得到IBCF公式:
在这里插入图片描述

我们从上面最最最传统的CF公式(好吧或者说是算法)可以看出它面临两个问题:

  • 矩阵稀疏问题
  • 计算资源有限导致的可扩展性不好

为什么会矩阵稀疏呢?

什么是稀疏矩阵:在矩阵中,如果数值为0的元素数目远远多于非0元素的数目,并且非0元素分布无规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。

那我还就稀疏了怎么着了?:稀疏矩阵会导致空间复杂度和时间复杂度的问题。1. 在空间上,非常大的矩阵需要大量的内存,稀疏的矩阵其零值比数据值要多,因为这些零值不包含任何信息,这显然是对内存资源的浪费。 2. 在时间上,对于我们输入的一个矩阵,如果该矩阵中大部分是零值,那么处理的时候计算机需要或将零值相加或相乘。而因为大多数O(N^3)算术运算都用于求解方程组或反转(invert)包含零操作数的矩阵。所以时间复杂

对于“可扩展性”也好理解,就以UBCF为例,随着系统用户数量的增大,计算Top-K Relevance User的时间会显著增长,使得该方法难以胜任用户量变化巨大的系统,该方法限制了系统的可扩展性。

回到论文中来:
为了解决CF上面的两个问题,现在国际惯例是用一个结合用户ID和项目ID的特征向量,扔到监督学习模型中,预测新用户和新项目的(契合)得分,比如我们的张量分解模型FM,xDeepFM模型云云…(下面我自己称这些方法叫SL方法吧)
考虑由导演 e 1 e_1 e1拍的电影 i 1 i_1 i1和客户 u 1 u_1 u1之间的交互影响(interact)(注意这里是电影和客户的交互而不是导员和客户的交互),CF算法会关注历史上同样看过电影 i 1 i_1 i1的用户,从而根据这些用户 u 4 , u 5 u_4,u_5 u4,u5对其他电影的喜好(如 i 2 i_2 i2)来推荐给 u 1 u_1 u1; SL算法关注导演的影响, e 1 e_1 e1导演拍过 i 1 和 i 2 i_1和i_2 i1i2两部电影,那么是否把 i 2 i_2 i2也推荐给 u 1 u_1 u1呢?

但是现实往往是残酷的…作者说上面的想法是需要"high-order connectivity"的,SL算法不能考虑到比如黄圈里的 i 3 , i 4 i_3,i_4 i3,i4看过同样由 e 1 e_1 e1导演的其他电影

那么怎么理解这里的“传统算法无法接触到黄圈等‘高维信息’呢?”以下是我个人理解,不一定正确甚至可能犯理论上的错误
在论文 《Neural Collective Entity Linking》中,作者认为传统模型不能获得“高度辨别的语义信号,比如实体关系(highly discriminative semantic signals)”,举例如下:
对于一句(超长超长的)话·

Hussain, considered surplus to England’s one-day requirements, struck 158, his first championship century of the season, as Essex reached 372 and took a first innings lead of 82.

Youdao翻译成中文是:“Hussain被认为超出了英格兰队的单日比赛要求,他打出了158分,这是他本赛季第一次获得冠军,埃塞克斯达到了372分,并在第一局以82分领先”,那么这里的England应该被理解成
除非传统模型利用到在England、Hussain、Essex附近的,和话题"cricket"有相互干系的相邻信息,才可能消除England的歧义

其实我觉得,这里的意思是不是这里England可能机器把他理解为一个人了?或者是英格兰的国家?(一个叫英格兰的小伙?),需要知道下文的英格兰的城市埃塞克斯才可以知道具体指的是英格兰队?…那感觉这个“多义词”的例子举得不是很好啊…消歧消的是多义词对吧。

所以上文的作者提出用图模型解决这一距离过长的问题:下图展示了命名实体消歧(England,Hussian,Essex)
在这里插入图片描述用箭头线连接的节点是候选实体,其中红色实线表示目标实体。
当然仅仅用图模型还是有很多缺陷,这也是 《Neural Collective Entity Linking》后续介绍的内容,但是图模型能将实体关系复杂化是很好的消息。

再扯回来,刚刚我们提出了两个目前对复杂高阶连通的挑战(黄色高亮),众多SL算法能够在一维实体关系层面解决上述两种挑战(计算能力和稀疏问题),那么我们现在只需要引入图模型,将SL算法扩展到在高维实体关系层面上。因此作者介绍了他的collective knowledge graph CKG模型:在这里插入图片描述
作者认为,成功推荐的关键在于充分利用CKG图的高阶关系,比如这种(能够到达SL所及不了的黄圈和灰圈)远程连通性:在这里插入图片描述

画饼简单,但是怎么用图模型具体实现呢?
考虑怎么实现,就要分析需要克服什么问题:

  • 与目标用户具有高阶关系的节点随着阶数的增加而急剧增加,给模型增加了计算负荷(也就是为后文embedding layer做铺垫)
  • 高阶关系对预测的贡献是不均衡的,这就要求模型仔细地权衡(或选择)它们(也就是为后文Attention引入的权值矩阵做铺垫)

接下来作者说,我们可以用图神经网络做,(但是这个我们目前懒(不)得做(会),你们谁会谁去做吧)。所以稳妥起见,作者提出了KGAT方法,这种方法有两大宝具

  1. 递归嵌入传播(对复杂度宝具)
  2. 基于attention的聚合方法(对预测宝具)

2 TASK FORMULATION

刚刚说我们KGAT有两大宝具,那么这两大宝具都是怎么被作出的呢?作者说,你们啊还是要学习一个,所以先提出了一些基本概念,不着急慢慢来:

2.1 User-Item Bipartite Graph

还是以看电影为例:用户(user)和电影(items)之间是有历史交互信息的,比如你们以前看过XXXX电影。那么我们把这个interaction data做成一个用户-项目的双边关系图 G 1 G_1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值