KGAT : Knowledge Graph Attention Network for Recommendation 用于推荐的知识图注意力网络 KDD2019

KGAT是一种结合知识图谱和注意力机制的推荐系统新方法,旨在通过用户、物品和知识图谱的高阶连接来提高推荐的准确性。模型通过信息传播、知识感知注意力和信息聚合来捕获网络中的复杂关系,实现在推荐任务中的高效表现。实验结果显示,KGAT在多个数据集上优于其他基线模型。

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

在这里插入图片描述
论文来源:KDD 2019
论文链接
代码及数据集链接

1、摘要

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

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

2、背景

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

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

一般来说,协同过滤推荐分为三种类型。第一种是基于用户(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 i i所有评分的平均分:之所以要减去平均分是因为有的用户打分严有的松, 归一化用户打分避免相互影响。

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

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

协同过滤CF算法利用用户的行为信息进行偏好预测,该方法在推荐系统里有较好的应用。但是CF算法不能对其他信息(比如商品的属性、用户信息、上文下)进行建模,而且在用户-商品交互信息较少的数据上表现较差。
为了能把其他信息利用起来,学术界常用的做法是:将用户跟商品都用embedding向量进行表示,然后将他们输入监督学习的模型里训练,将用户表示与商品表示的相关性作为训练目标。这里相关工作有:factorization machine (FM) [7], NFM (neural FM) [6], Wide&Deep [5], DCN[4],and xDeepFM [3]等。

扩展一下(加点小菜):

FM:在线性回归的基础上加入二阶线性特征。 y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i j x i x j y=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^n\sum_{j=i+1}^nw_{ij}x_ix_j y=w0+i=1nwixi+i=1nj=i+1nwijxixj,优点:考虑二阶特征之间的相互作用。缺点:仅仅考虑线性特征,没有加入非线性特征。

NFM:融合了FM提取二阶线性特征与神经网络提取高阶非线性特征的两者优点。 y = w 0 + ∑ i = 1 n w i x i + f ( x ) y=w_0+\sum_{i=1}^nw_ix_i+f(x) y=w0+i=1nwixi+f(x),其中 f ( x ) f(x) f(x)是用神经网络对输入特征 x x x进行特征抽取建模。

Wide&Deep:模型包括两个部分,分别为Wide部分和Deep部分,Wide部分如图1的左图所示,Deep部分如下图中的右图所示。Wide模型就是一个广义线性模型,Wide模型是前馈神经网络。两种模型进行联合训练,将两个模型的结果加权求和作为最终的预测结果。
在这里插入图片描述
虽然这些模型都能取得不错的效果,但是这些模型有个缺点:将训练数据里(用户交互数据)的特征进行独立建模,没有考虑到交互数据之间的关系。这使得这些模型不足以从用户的行为中提取出基于属性的协同信息。

比如下图2中,用户u1看了电影 i1,这个电影是e1导演的,传统的CF方法会着重去找那些也看了电影i1的用户,比如u4跟u5。而监督学习方法会重点关注那些有相同属性e1的电影,比如i2。很显然这两类信息都可以作为推荐信息的补充,但是现有的模型不能做到上面两者信息的融合,而且这里的高阶关系也可以作为推荐信息的补充的。比如图中黄色框图里的用户看了同样由e1导演的电影i2, 还有灰色框图里电影同样也有e1的参与。

为了解决上面提到的问题,本文提出 collaborative knowledge graph (CKG)方法,将图谱关系信息及用户user点击商品item的交互图融合到一个图空间里。这样就可以融合CF信息及KG信息,同时也可以通过CKG发现高阶的关系信息。
在这里插入图片描述
作者认为,成功推荐的关键在于充分利用CKG图的高阶关系,比如这种(能够到达SL所及不了的黄圈和灰圈)远程连通性:
在这里插入图片描述
那么,怎么使用图模型来实现呢?考虑怎么实现,就要分析需要克服什么问题:

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

本文的贡献:

  1. 强调了在CKG中显式建模高阶关系信息的重要性,以便提供更多信息的用于推荐。
  2. 提出来一种新的推荐方法KGAT,该方法在图神经网络框架下以显式且端到端的方式实现了高阶关系的建模。
  3. 我们在三个公开基准上进行了大量实验,证明了KGAT的有效性及其在理解高级关系重要性方面的可解释性。

3、任务描述

3.1、User-Item Bipartite Graph

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

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值