1.本发明属于知识推动的推荐领域,具体涉及一种基于图注意力网络的自适应推荐方法和装置。
背景技术:2.推荐系统是当今互联网上最重要的信息服务之一,是一种以向用户呈现个性化信息为目标的过滤系统,可以提高用户体验,被广泛应用于各类领域推荐,包括看书推荐、看电影推荐以及购物推荐等。总结而言,推荐系统有3个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。
3.随着推荐算法的发展,图神经网络被应用于推荐系统,图神经网络的基本思想就是通过一个方法可以让两个东西产生关联,从最基本的原理来看,基于图结构的模型与基于特征表示的模型并无本质区别。这是因为知识图谱嵌入对特征表示向量的参数训练也是基于知识图谱的图结构设计的优化目标。由于知识图谱在各种任务中的成功应用,研究人员还试图利用知识图谱来提高推荐系统的性能。
4.现有的知识图谱感知可分为两类:第一类是基于嵌入的方法,它使用知识图谱算法预处理知识图谱,并将学习的实体嵌入合并到推荐框架中。但是基于嵌入的方法在利用知识图谱辅助推荐系统方面虽然很灵活但是更适合于图内应用,如申请公布号为cn112836123a的专利申请公开了一种基于知识图谱的可解释推荐系统。第二种是基于路径的方法,探索知识图谱中项目之间的各种连接模式,为建议提供额外的指导,如申请公布号为cn114691855a的专利申请公开了一种基于知识图谱的新闻推荐方法。
5.当前在各种类型的辅助信息中,知识图谱通常包含关于项目的更丰富的事实和联系。现有的知识化推荐模型基本上都是将知识图谱的拓扑结构特征作为最核心最重要的信息加以利用。虽然其推荐效果提升明显,但因为模型参数过多,导致模型的迭代训练收敛过慢,耗费时间过多。
技术实现要素:6.鉴于上述,本发明的目的是提供一种基于图注意力网络的自适应推荐方法和装置,为用户实现快速准确的物品推荐。
7.为实现上述发明目的,实施例提供一种基于图注意力网络的自适应推荐方法,包括:
8.步骤1,获取用户的历史交互物品集,并以历史交互物品集中的历史交互物品为起始,在知识图谱中进行交互路径的多跳扩展,以得到由三元组组成的多跳波纹集合,其中,三元组由用户、交互关系以及物品组成;
9.步骤2,将每跳波纹集合包含的三元组构建成图结构,图结构中节点表示用户或物
品,节点之间的连边表示交互关系;
10.步骤3,针对每跳波纹集合对应的图结构,利用参数优化的图注意力网络对图结构进行基于多头注意力机制的嵌入表示,以更新节点特征向量和连边特征向量;
11.步骤4,获取候选物品集合,利用参数优化的node2vec对所有候选物品进行嵌入表示,得到候选物品的嵌入向量;
12.步骤5,针对每条跳波纹集合,根据候选物品的嵌入向量、节点的更新特征向量以及连边的更新特征向量计算用户的响应向量,将所有跳波纹集合对应的响应向量加和作为用户的总响应向量;
13.步骤6,依据用户的总响应向量和候选物品的嵌入向量计算交互概率,依据交互概率进行物品推荐。
14.为实现上述发明目的,实施例还提供了一种基于图注意力网络的自适应推荐装置,包括:
15.获取及扩展模块,用于获取用户的历史交互物品集,并以历史交互物品集中的历史交互物品为起始,在知识图谱中进行交互路径的多跳扩展,以得到由三元组组成的多跳波纹集合,其中,三元组由用户、交互关系以及物品组成;
16.图构建模块,用于将每跳波纹集合包含的三元组构建成图结构,图结构中节点表示用户或物品,节点之间的连边表示交互关系;
17.图嵌入表示模块,用于针对每跳波纹集合对应的图结构,利用参数优化的图注意力网络对图结构进行基于多头注意力机制的嵌入表示,以更新节点特征向量和连边特征向量;
18.物体嵌入表示模块,用于获取候选物品集合,利用参数优化的node2vec对所有候选物品进行嵌入表示,得到候选物品的嵌入向量;
19.用户的总响应向量构建模块,用于针对每条跳波纹集合,根据候选物品的嵌入向量、节点的更新特征向量以及连边的更新特征向量计算用户的响应向量,将所有跳波纹集合对应的响应向量加和作为用户的总响应向量;
20.物品推荐模块,用于依据用户的总响应向量和候选物品的嵌入向量计算交互概率,依据交互概率进行物品推荐。
21.为实现上述发明目的,实施例还提供了一种基于图注意力网络的自适应推荐装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现上述基于图注意力网络的自适应推荐方法。
22.与现有技术相比,本发明具有的有益效果至少包括:
23.以历史交互物品为初始,引入偏好传播克服了现有的基于嵌入和基于路径的知识图谱感知推荐方法的局限性,实现了自动传播用户的潜在偏好,通过基于知识图谱进行交互路径的多跳扩展,并结合候选物品,探索在知识图谱中的层次兴趣,利用层次兴趣来构建用户的总响应向量,并基于此来计算与候选物品的嵌入向量的交互概率,实现物体推荐来提升物体推荐的准确性。通过图注意力网络和node2vec提升了嵌入表示的速度,可以有效的提高模型的迭代训练速度,减少迭代次数,降低模型训练时间成本。
附图说明
24.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
25.图1是实施例提供的基于图注意力网络的自适应推荐方法的流程图;
26.图2是实施例提供的基于图注意力网络的自适应推荐装置的结构示意图。
具体实施方式
27.为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
28.图神经网络是一种直接作用于图结构上的神经网络。图神经网络一个典型的应用就是节点分类,本质上,图中的每个节点都与一个标签相关联,希望预测未标记节点标签。所以实施例在图神经网络中增加自适应图结构,可以提升计算效率,并且可以应用于不同度的图节点,可以进行归纳学习。实施例提供的基于图注意力网络的自适应推荐方法和装置分为图嵌入和推荐任务两个部分,首先针对候选物品和用户,候选物品经过图嵌入后的嵌入向量不断地和知识图谱中该用户周围k跳的实体的图嵌入进行交互运算,最后组成用户的总响应向量再和候选物品的嵌入向量一起计算交互概率,提升交互概率的准确性。
29.图1是实施例提供的基于图注意力网络的自适应推荐方法的流程图。如图1所示,实施例提供的基于图注意力网络的自适应推荐方法,包括以下步骤:
30.步骤1,获取用户的历史交互物品集,并以历史交互物品集中的历史交互物品为起始,在知识图谱中进行交互路径的多跳扩展,以得到由三元组组成的多跳波纹集合。
31.实施例中,将由历史交互物品vu组成的历史交互物品集命名为即以中的历史交互物品vu为起始,然后沿着知识图谱路径来多跳扩展得到多跳波纹集合多跳波纹集合中的三元组由用户、交互关系以及物品组成。
32.跳数k的选择进行自适应选择,如果选择跳数过大,一方面整体涉及的实体会过多,导致计算困难,另一方面会出现实体的重合会导致整体计算引入噪音。如果跳数过小又不能更好的挖掘用户的潜在兴趣。具体选择还是可以直接通过实验来选择但是一般不会太大,并不会带来太大的计算负担。经过实验探究,跳数k的取值为2或3。
33.实施例中,在知识图谱中进行交互路径的多跳扩展,即以集合中的历史交互物品vu为出发,在知识图谱中向外经过k跳扩展,以得到由三元组组成的多跳波纹集合,每跳波纹集合描述了用户的分级扩展偏好,表示为:
[0034][0035]
其中,k为波纹集合的索引,k表示波纹集合总数,g表示知识图谱,(h,r,t)表示三元组,h表示头实体,为用户或物品,r表示交互关系,t表示尾实体,为用户或物品,表示由历史交互物品为起始第k跳得到的尾实体的集合,表示为:
[0036][0037]
步骤2,将每跳波纹集合包含的三元组构建成图结构,图结构中节点表示用户或物品,节点之间的连边表示交互关系。
[0038]
实施例中,每跳波纹集合均包含多个三元组,这样可以将每跳波纹集合包含的三元组构建成图结构,图结构中节点表示用户或物品,节点之间的连边表示交互关系。该图结构作为图注意力网络的输入。
[0039]
步骤3,针对每跳波纹集合对应的图结构,利用参数优化的图注意力网络对图结构进行基于多头注意力机制的嵌入表示,以更新节点特征向量和连边特征向量。
[0040]
实施例中,利用参数优化的图注意力网络对图结构进行基于多头注意力机制的嵌入表示,以更新节点特征向量和连边特征向量,包括:
[0041]
首先,针对第i个节点,采用单个独立的注意力机制来计算第i个节点与第j个邻居节点的相似系数对相关系数进行归一化处理,得到归一化的相关系数表示为:
[0042][0043][0044]
其中,pi和pj分别表示第i个节点与第j个邻居节点的节点特征,wf表示权重系数,g(
·
)表示计算相似系数的函数,leakyrelu(
·
)表示leakyrelu激活函数,表示第i个节点与第s个邻居节点采用第f个独立头的注意力机制计算得到的相似系数,exp(
·
)表示e指数函数,ni表示第个节点的邻居节点的总数;
[0045]
然后,合并所有独立头的注意力机制计算得到的相似系数以更新节点特征向量,表示为:
[0046][0047]
其中,pi′
表示第i个节点的更新特征向量,σ(
·
)表示激活函数,符号表示向量连接,f表示独立头的重量;
[0048]
最后,根据更新节点特征向量更新连边特征向量,表示为:
[0049]e′
ij
=g([wp
′i][wp
′j])
[0050]
其中,p
′j表示第j个节点的更新特征向量,e
′
ij
表示连边的更新特征向量,w表示权重系数。
[0051]
步骤4,获取候选物品集合,利用参数优化的node2vec对所有候选物品进行嵌入表示,得到候选物品的嵌入向量。
[0052]
实施例中,node2vec算法作用就是既能保持节点邻居信息而且又容易训练的模型,候选物品经过node2vec的图嵌入把最初始的物品信息用向量形式表达,这种图嵌入方
式可以提高网络嵌入效果,提高计算效率。利用参数优化的node2vec对所有候选物品进行嵌入表示时,输入为候选物品集合对应的候选图结构,候选图结构中节点表示候选物品,目的是通过游走来更新节点的嵌入向量,采样时综合了深度优先游走和广度优先游走两种方式,且引入参数β和γ来控制随机游走的方式,具体包括:
[0053]
对于一个随机游走,如果β>max(γ,1),那么游走采样会尽量不往回走,也就是不太可能走回上一个节点;如果β<min(γ,1),那么游走采样会更倾向于返回上一个节点;如果γ>1,那么游走采样会倾向于在起始节点点周围的节点间进行采样,反映节点采样的广度优先游走特性;如果γ<1,那么游走采样会倾向于远处节点,反映节点采样的深度优先游走特性,具体地,当前停留在第l个节点,那么下一个要采样的第m个节点的概率为:
[0054][0055]
如果第l个节点与第m个节点相等,即d
lm
=0,那么采样第m个节点的概率
[0056]
如果第l个节点与第m个节点相连,即d
lm
=1,那么采样第m个节点的概率p(l,m)=1;
[0057]
如果第l个节点与第m个节点不相连,即d
lm
=2,那么采样第m个节点的概率
[0058]
步骤5,针对每条跳波纹集合,根据候选物品的嵌入向量、节点的更新特征向量以及连边的更新特征向量计算用户的响应向量,将所有跳波纹集合对应的响应向量加和作为用户的总响应向量。
[0059]
实施例中,针对每条跳波纹集合,根据候选物品的嵌入向量、节点的更新特征向量以及连边的更新特征向量计算用户的响应向量,包括:
[0060]
首先,根据候选物品的嵌入向量、每跳波纹集合中实体对应的节点的更新特征向量以及连边的更新特征向量计算每条跳波纹集合中每个三元组与候选物品的关联概率pz,表示为:
[0061]
pz=softmax(v
trzhz
)
[0062]
其中,z表示三元组的索引,v
t
表示候选物品的嵌入向量的转置,hz表示三元组中头实体的特征向量,来自于节点的更新特征向量,rz表示三元组中交互关系的特征向量,来自于连边的更新特征向量;
[0063]
然后,将每条跳波纹集合中尾实体通过关联概率pz加权求和得到用户的响应向量表示为:
[0064][0065]
其中,k为波纹集合的索引,tz表示尾实体的特征向量,来自于节点的更新特征向量,(h
zrz
,tz)表示属于的第z个三元组。
[0066]
用户的响应向量可以看作是用户点击历史交互物品对候选物品的响应,用户的偏好从历史点击物品vu通过波纹集合中的连接转移到了它的多阶关联实体,这就是兴趣传播过程,能够发现用户的潜在兴趣。重复上述过程,可以得到用户的多阶响应,将所有跳波纹集合对应的响应向量加和作为用户的总响应向量u,表示为:
[0067][0068]
步骤6,依据用户的总响应向量和候选物品的嵌入向量计算交互概率,依据交互概率进行物品推荐。
[0069]
实施例中,依据用户的总响应向量u和候选物品的嵌入向量v计算交互概率表示为:
[0070][0071]
其中,u
t
表示总响应向量u的转置,σ(
·
)表示激活函数。
[0072]
实施例中,图注意力网络在被应用之前需要经过参数优化,训练策略的根本思想是最大化后验概率,整体的损失函数由三部分组成,包括:预测交互概率的交叉熵损失函数、知识图谱本身嵌入的损失、参数正则化的损失,采用该损失函数直接利用梯度下降的方法训练图注意力网络。采用的损失函数l为:
[0073][0074]
其中,y
uv
表示为用户u推荐候选物品v的真实交互概率,表示为用户u推荐候选物品v的交互概率,λ1和λ2分别表示防止过拟合的正则项权重,取值分别为10-5
和10-2
时性能最佳,r表示交互关系r的特征向量,v表示候选物品的嵌入向量,e表示每跳波纹集合中尾实体的特征向量,ir表示知识图谱中交互关系r的张量切片,具体含义为用于表示真实值的三元组向量中关系r。
[0075]
基于同样的发明构思,实施例还提供了一种基于图注意力网络的自适应推荐装置,如图2所示,包括:
[0076]
获取及扩展模块,用于获取用户的历史交互物品集,并以历史交互物品集中的历史交互物品为起始,在知识图谱中进行交互路径的多跳扩展,以得到由三元组组成的多跳波纹集合,其中,三元组由用户、交互关系以及物品组成;
[0077]
图构建模块,用于将每跳波纹集合包含的三元组构建成图结构,图结构中节点表示用户或物品,节点之间的连边表示交互关系;
[0078]
图嵌入表示模块,用于针对每跳波纹集合对应的图结构,利用参数优化的图注意
力网络对图结构进行基于多头注意力机制的嵌入表示,以更新节点特征向量和连边特征向量;
[0079]
物体嵌入表示模块,用于获取候选物品集合,利用参数优化的node2vec对所有候选物品进行嵌入表示,得到候选物品的嵌入向量;
[0080]
用户的总响应向量构建模块,用于针对每条跳波纹集合,根据候选物品的嵌入向量、节点的更新特征向量以及连边的更新特征向量计算用户的响应向量,将所有跳波纹集合对应的响应向量加和作为用户的总响应向量;
[0081]
物品推荐模块,用于依据用户的总响应向量和候选物品的嵌入向量计算交互概率,依据交互概率进行物品推荐。
[0082]
需要说明的是,上述实施例提供的基于图注意力网络的自适应推荐装置在进行基于图注意力网络的自适应推荐时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,即在终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于图注意力网络的自适应推荐装置与基于图注意力网络的自适应推荐方法实施例属于同一构思,其具体实现过程详见基于图注意力网络的自适应推荐方法实施例,这里不再赘述。
[0083]
基于同样的发明构思,实施例还提供了一种基于图注意力网络的自适应推荐装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序所述处理器执行所述计算机程序时实现上述基于图注意力网络的自适应推荐方法。
[0084]
实际应用中,存储器可以为在近端的易失性存储器,如ram,还可以是非易失性存储器,如rom,flash,软盘,机械硬盘等,还可以是远端的存储云。处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)、或现场可编程门阵列(fpga),即可以通过这些处理器实现基于图注意力网络的自适应推荐步骤。
[0085]
上述实施例提供的基于图注意力网络的自适应推荐方法和装置通过结合知识图谱和历史交互记录发现从用户交互历史中的物品到候选物品的可能路径,基于该路径信息实现候选物品的推荐。
[0086]
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。