基于时序增强的异构图推荐方法

专利2024-07-16  55



1.本发明涉及一种推荐系统方法,特别是涉及一种基于时序增强的异构图推荐方法。


背景技术:

2.推荐系统是缓解当前信息爆炸的关键。根据交互历史和用户偏好,系统会为特定的用户选择合适的物品。在早期的研究中,推荐总是使用协同过滤方法进行操作,该方法利用历史交互对推荐进行操作。其中最具代表性的矩阵分解方法学习用户和物品的潜在向量,重构交互矩阵。然而,由于冷启动问题,许多模型开始利用额外的信息,包括社会信息、位置信息和异构信息。由于深度学习体系结构的成功,近年来的研究利用卷积神经网络、自动编码器和多层感知等深度模型从数据中获取潜在特征。但是异构信息的复杂度和处理方法成了当前最大的挑战。
3.异构信息网络越来越受到人们的关注,它可以对复杂的对象和链接进行建模,分别对应于图中不同类型的节点和边,准确捕获到各节点之间的关系,有效地缓解了稀疏反馈的问题。以推荐为例,不同元路径下不同的语义导致不同的关联推荐链接。在异构信息网络中,用户和物品的表示通过基于路径的相似性度量来增强。此外,一个叫做元路径的新概念发挥了关键作用。通过它,具有不同含义的节点可相互连接。因此,基于hin的推荐系统正在蓬勃发展。然而,随着数据采集技术的发展,异构图越来越大,节点表示往往是高维稀疏的。相反,一个低维和密集的节点表示被需要来处理下游任务。
4.网络嵌入旨在为用户和项目提供低维、密集的向量表示,以理解节点之间的语义。deepwalk首先利用随机游走算法从图中提取一些顶点序列,然后借助自然语言处理的思路,将生成的定点序列看作由单词组成的句子,将每一个顶点表示为一个向量。node2vec采用偏随机游走,对上下文信息处理更加灵活。不过,这些模型都是应用在同构图上。当前,人们开始将目光转向异构图。hin2vec通过多个预测训练任务学习异构图的节点和元路径表示。hetgnn编码各种异构内容节点并按类别聚合它们。而对于在异构图上进行推荐任务的基于网络嵌入的模型,herec没有显式表示元路径的嵌入,而采用类型约束和过滤的方法在元路径中构造同构序列。mcrec明确地结合了基于元路径的上下文,并设计了一个三向神经交互模型,但它没有考虑元路径中节点之间的时序关系。nirec虽然可以通过卷积操作捕获和聚合节点级和路径级的丰富交互模式,但同样没有利用元路径中的时序关系。
5.专利(公告日:2021-06-18;公告号:cn112990972a),公开了一种基于异构图神经网络的推荐方法,包括:收集带有用户间社交关系、用户-商品交互历史数据及商品类别信息的数据集,并过滤无效数据以及进行负采样;随机选取用户集合及相关商品集合,并进行多阶图采样与建图;结点特征提取:将构建的图输入到异构图神经网络中进行处理,得到结点的融合结点嵌入向量;对于不需要经过重校准步骤的商品结点而言,商品结点的融合结点嵌入向量即为商品融合嵌入向量;重校准:对用户融合结点嵌入向量进行重校准,得到用户最终表示嵌入向量;使用用户最终表示嵌入向量和商品融合嵌入向量进行偏好预测,并
得到推荐顺序。本发明解决了数据稀疏和数据缺失的问题,具有推荐精准等优点。但是不能捕获元路径上不同类型节点的时序关系。


技术实现要素:

6.本发明提供了一种基于时序增强的异构图推荐方法,解决了现有方法未能够捕获元路径上不同类型节点的时序关系,以及在用户和节点嵌入学习中未关注同类型节点的时序关系及交互,对最终推荐效果造成影响的问题。
7.本发明所述的一种基于时序增强的异构图推荐方法,在元路径嵌入学习部分,设置时序卷积网络(temporal convolutional network,tcn)模块以捕捉每个元路径上的各不同类型节点的时序关系;在学习用户和项目嵌入学习部分时,加入长短期记忆网络(long short-term memory,lstm)架构以捕获同种类型节点的时序关系,将互注意力机制改为自注意力机制。
8.包括以下步骤:
9.s1、在用户和项目嵌入学习部分,经过查找层得到低维稠密向量后,利用lstm模块对数据进行处理;
10.s2、在元路径部分,使用优先级分数来生成高质量的路径实例,并通过tcn模块生成单个路径实例嵌入,tcn模块捕获每个序列的时序关系以增强表示,再通过互注意机制进行嵌入的聚合得到元路径的嵌入表示;
11.s3、将用户、项目和元路径三者的嵌入表示进行结合成为一个统一的表示,进行下游的推荐任务。
12.进一步的,s1中对用户和项目嵌入表示学习,具体包括以下步骤:
13.s101、将用户和项目的表示转换为低维稠密的向量:
14.xu=m
tmu
15.yi=n
t
ni16.其中,用户和项目表示分别为mu∈r
|u|
×1和ni∈r
|i|
×1,用户和项目转换矩阵分别为m∈r
|u|
×d和n∈r
|i|
×d,|u|和|i|分别表示用户和项目数目,d表示用户和项目的维度;
17.s102、使用lstm对向量进行处理,增强节点之间的关系:
18.xu'=lstm(xu,θ)
19.其中,xu'表示xu经过lstm操作后得到的向量,lstm表示使用lstm模块对低维向量进行处理,θ代表lstm中的相关参数;
20.s103、对于用户路径上的同类型节点,引入自注意力机制,具体操作如下:
[0021][0022]
同理可得,得到的项目嵌入为:
[0023][0024]
其中,wu和wi分别是用户注意力层和项目注意力层的权重矩阵,bu和bi是相对应的偏置向量。
[0025]
进一步的在于,lstm的具体操作如下:
[0026]
用户/项目序列中第t个用户的输入状态向量为:
[0027][0028]
其中,tanh表示双曲正切激活函数,
“⊙”
表示哈达玛积,h
t-1
代表用户/项目序列中第(t-1)个用户/项目的隐藏层输出向量,wc表示关于输入状态向量的可学习参数,bc表示关于输入状态的偏置向量;
[0029]
用户/项目序列中第t个用户/项目的输入向量为:
[0030]it
=σ(wi⊙
[h
t-1
,x
t
]+bi)
[0031]
其中,σ表示激活函数,x
t
是经过查找层之后序列中第t个用户/项目的嵌入表示,wi表示关于输入向量的可学习参数,bi表示关于输入的偏置向量;
[0032]
用户/项目序列中第t个用户的遗忘门向量为:
[0033]ft
=σ(wf⊙
[h
t-1
,x
t
]+bf)
[0034]
其中,wf表示关于遗忘门向量的可学习参数,bf表示关于遗忘门的偏置向量;
[0035]
用户/项目序列中第t个用户/项目的总体状态向量为:
[0036][0037]
其中,c
t-1
表示用户/项目序列中第(t-1)个用户/项目的总体状态向量。
[0038]
用户/项目序列中第t个用户/项目的输出向量为:
[0039]ot
=σ(w0⊙
[h
t-1
,x
t
]+b0)
[0040]
其中,o
t
表示用户/项目序列中第t个用户/项目输出向量;
[0041]
用户/项目序列中第t个用户/项目的隐藏层输出向量为:
[0042]ht
=o
t
*tanh(c
t
)。
[0043]
进一步的,s2中所述的对元路径的嵌入表示学习,具体包括以下步骤:
[0044]
s201、单个元路径实例的嵌入表示学习:
[0045]hp
=tcn(e
p
,θ)
[0046]
其中,tcn代表对单个元路径实例进行时序卷积操作,e
p
是单个元路径实例矩阵,θ是tcn中的相关参数;
[0047]
s202、进行最大池化操作,根据构成的元路径实例嵌入学习单个元路径的嵌入:
[0048][0049]
其中,m表示元路径实例的数量;
[0050]
s203、对于多条元路径的嵌入,采用协同注意力机制对嵌入进行聚合,注意力分数如下:
[0051][0052]
其中,表示第一层网络得到的注意力分数,relu表示激活函数,和分别是用户和项目的权重矩阵,a
(1)
是第一层网络的偏置向量;
[0053][0054]
其中,w
(2)
是第二层的权重矩阵,a
(2)
是第二层的偏置向量;
[0055]
s204、对注意力分数进行归一化,得到每个元路径的重要性程度:
[0056][0057]
其中,m
u,i
是元路径的集合;
[0058]
s205、对元路径进行加权求和,得到最终的元路径嵌入c
u,i

[0059][0060]
进一步的,s3中所述的嵌入的结合,具体包括以下步骤:
[0061][0062]
其中,r
u,i
是用户和项目之间的最终复杂交互表示,mlp组件由两个隐藏层实现,其中relu作为激活函数,输出层使用sigmoid函数,
“”
表示拼接操作。
[0063]
有益效果:本发明利用加入的tcn模块捕捉每个元路径上的各不同类型节点的时序关系,增强元路径的表示;在用户和项目嵌入学习部分中加入的lstm和自注意机制模块,突出了同一类型节点在路径上的时序关系和交互,增强用户和项目嵌入表示。因此,在推荐任务上,特别是针对异构图,本发明所取得的效果都优于其他模型的效果。
附图说明
[0064]
图1是本发明方法流程图;
[0065]
图2是本发明一个较佳实施例tmrec的网络整体架构;
具体实施方式
[0066]
如图1所示,一种基于时序增强的异构图推荐方法,包括以下步骤:
[0067]
s1、在用户和项目嵌入学习部分,经过查找层得到低维稠密向量后,利用lstm模块对数据进行处理;
[0068]
具体包括以下步骤:
[0069]
s101、将用户和项目的表示转换为低维稠密的向量:
[0070]
xu=m
tmu
[0071]
yi=n
t
ni[0072]
其中,用户和项目表示分别为mu∈r
|u|
×1和ni∈r
|i|
×1,用户和项目转换矩阵分别为m∈r
|u|
×d和n∈r
|i|
×d,|u|和|i|分别表示用户和项目数目,d表示用户和项目的维度;
[0073]
s102、使用lstm对向量进行处理,增强节点之间的关系:
[0074]
xu'=lstm(xu,θ)
[0075]
其中,xu'表示xu经过lstm操作后得到的向量,lstm表示使用lstm模块对低维向量进行处理,θ代表lstm中的相关参数;
[0076]
lstm的具体操作如下:
[0077]
用户/项目序列中第t个用户的输入状态向量为:
[0078]
[0079]
其中,tanh表示双曲正切激活函数,
“⊙”
表示哈达玛积,h
t-1
代表用户/项目序列中第(t-1)个用户/项目的隐藏层输出向量,wc表示关于输入状态向量的可学习参数,bc表示关于输入状态的偏置向量;
[0080]
用户/项目序列中第t个用户/项目的输入向量为:
[0081]it
=σ(wi⊙
[h
t-1
,x
t
]+bi)
[0082]
其中,σ表示激活函数,x
t
是经过查找层之后序列中第t个用户/项目的嵌入表示,wi表示关于输入向量的可学习参数,bi表示关于输入的偏置向量;
[0083]
用户/项目序列中第t个用户的遗忘门向量为:
[0084]ft
=σ(wf⊙
[h
t-1
,x
t
]+bf)
[0085]
其中,wf表示关于遗忘门向量的可学习参数,bf表示关于遗忘门的偏置向量;
[0086]
用户/项目序列中第t个用户/项目的总体状态向量为:
[0087][0088]
其中,c
t-1
表示用户/项目序列中第(t-1)个用户/项目的总体状态向量。
[0089]
用户/项目序列中第t个用户/项目的输出向量为:
[0090]ot
=σ(w0⊙
[h
t-1
,x
t
]+b0)
[0091]
其中,o
t
表示用户/项目序列中第t个用户/项目输出向量;
[0092]
用户/项目序列中第t个用户/项目的隐藏层输出向量为:
[0093]ht
=o
t
*tanh(c
t
)。
[0094]
s103、对于用户路径上的同类型节点,引入自注意力机制,具体操作如下:
[0095][0096]
同理可得,得到的项目嵌入为:
[0097][0098]
其中,wu和wi分别是用户注意力层和项目注意力层的权重矩阵,bu和bi是相对应的偏置向量。
[0099]
s2、在元路径部分,使用优先级分数来生成高质量的路径实例,并通过tcn模块生成单个路径实例嵌入,tcn模块捕获每个序列的时序关系以增强表示,再通过互注意机制进行嵌入的聚合得到元路径的嵌入表示;
[0100]
具体包括以下步骤:
[0101]
s201、单个元路径实例的嵌入表示学习:
[0102]hp
=tcn(e
p
,θ)
[0103]
其中,tcn代表对单个元路径实例进行时序卷积操作,e
p
是单个元路径实例矩阵,θ是tcn0的相关参数;
[0104]
s202、进行最大池化操作,根据构成的元路径实例嵌入学习单个元路径的嵌入:
[0105][0106]
其中,m表示元路径实例的数量;
[0107]
s203、对于多条元路径的嵌入,采用协同注意力机制对嵌入进行聚合,注意力分数如下:
[0108][0109]
其中,表示第一层网络得到的注意力分数,relu表示激活函数,和分别是用户和项目的权重矩阵,a
(1)
是第一层网络的偏置向量;
[0110][0111]
其中,w
(2)
是第二层的权重矩阵,a
(2)
是第二层的偏置向量;
[0112]
s204、对注意力分数进行归一化,得到每个元路径的重要性程度:
[0113][0114]
其中,m
u,i
是元路径的集合;
[0115]
s205、对元路径进行加权求和,得到最终的元路径嵌入c
u,i

[0116][0117]
s3、将用户、项目和元路径三者的嵌入表示进行结合成为一个统一的表示,进行下游的推荐任务。
[0118]
具体包括以下步骤:
[0119][0120]
其中,r
u,i
是用户和项目之间的最终复杂交互表示,mlp组件由两个隐藏层实现,其中relu作为激活函数,输出层使用sigmoid函数,
“”
表示拼接操作。
[0121]
下面结合一个较佳的实施例作出进一步说明:
[0122]
如图2所示,本实施例在推荐系统中采用了两个在不同领域广泛使用的数据集:音乐的lastfm数据集和电影的movielens数据集。moveieslens数据集是电影评级数据,它包括电影评级、电影元数据(类型、时代)和有关用户的人口统计数据(年龄、邮政编码、性别、职业等)。lastfm数据集中,对于数据集中的每个用户,都包含了他们最受欢迎的艺术家的列表以及他们被播放的次数。除了用户、物品及其交互的数量之外,还有选定的关系。为了衡量模型性能,本发明使用recall@k、ndcg@k和prec@k作为定量评价指标。
[0123]
本实施例使用keras和tensorflow的python库在提出的模型tmrec上进行实验。在训练神经网络之前,必须对其权值和偏差进行初始化。在实施例中,首先使用高斯分布随机初始化模型参数,采用自适应矩估计(adam)对模型进行优化,对每个参数使用相同的学习速率,并随着学习的进展独立适应。训练大小设置为256,正则化参数设置为0.001,学习速率设置为0.001。此外,tcn的卷积核大小设置为4,膨胀率设置为1,用户和项目嵌入的尺寸设置为128。隐层的激活函数为relu函数,层数k为5,每层对应的维数为[512,256,128,64,32]。此外,本实施例需要在数据集中选择合适的元路径,在movielens中选择umum、umgm、uuum和ummm,在lastfm中选择uata、uaua、uua和uua,路径实例数是5。对于比较的方法,本实施例使用10%的训练数据作为验证集来优化它们的参数。所有实验结果均为10次实验的平均值。最后,所有实验均在同一台机器上、相同条件下进行。
[0124]
本实施例选择了几种方法进行比较,以评估tmrec在top-n推荐中学习到的表示的有效性。它们可以分为两类。一种是基于cf的方法(itemknn,bpr,mf和neumf),另一种是基于hin的方法,利用元路径,如han,mcrec。将本发明的模型与这些模型进行对比。对比模型如下所列:
[0125]
itemknn:这是一种经典的协同过滤方法,使用以前的交互作为参考。例如,如果你想预测u1对电影m1的评级,首先找到u1已经评价过的k部与m1相似的电影,然后使用这k部电影的评级来预测u1对m1的评级;
[0126]
bpr:贝叶斯个性化排名,是目前推荐系统中常用的推荐算法。不同于其他基于用户打分矩阵的方法,它主要是利用用户的隐性反馈(如点击、收藏等),通过贝叶斯分析得到的最大后验概率对条目进行排序,然后生成推荐。
[0127]
mf:针对协同滤波算法(cf)处理稀疏矩阵能力弱的缺点,提出了mf。其利用交叉熵损失对模型进行了优化。
[0128]
neumf:是一种典型的基于深度学习的推荐算法。它结合了传统的矩阵分解和多层感知,可以同时提取低维和高维特征,具有良好的推荐效果。
[0129]
han:使用节点级注意和语义级注意。节点级的注意力用于学习中心节点与其不同类型邻居之间的重要性,而语义级的注意力用于学习不同元路径的重要性。
[0130]
mcrec:它是第一个显式表示元路径并将其添加到最终嵌入的模型。引入协同注意机制,以相互增强的方式改进基于元路径的上下文、用户和项目的表示。
[0131]
以recall@k,ndcg@k和prec@k作为定量指标对各种模型进行评价,其定量评价结果如表1所示。
[0132]
表1对比试验结果
[0133][0134]
注:最后一行粗体表示最佳性能,“*”表示性能次之。
[0135]
由表1可以得到以下结论:
[0136]
(1)提出的完整模型tmrec在三个数据集上始终优于所有基线。研究结果表明,tmrec考虑了用户和项目嵌入学习中不同类型节点之间的时间关系和同一类型节点之间的相互影响,对top-n推荐任务具有良好的效果。
[0137]
(2)很明显,在两种不同类型方法的比较中,基于hin的方法总体上优于基于cf的方法。这表明异构信息网络对于推荐任务是非常有用的,特别是当数据集中有许多不同类型的节点和链接。因此,我们将更多地关注异构信息网络及其中用于各种任务的元路径。
[0138]
(3)在基于hin的方法中,tmrec优于han和mcrec。han采用节点级和语义级的分层注意机制,mcrec采用用户、项目和元路径的共同注意机制。同样,提出的模型在元路径嵌入学习中使用了互注意力机制,在用户和项目嵌入学习中使用了自注意力机制。从结果可以看出,在由不同类型节点组成的路径中,协同注意机制更适用,而在由相同类型节点组成的路径中,自注意力机制更有用。因此,最好根据不同的情况选择不同的注意模块。
[0139]
综上,可以确定本发明提出的模型得出的各项指标性能都优于其他的基线模型,达到了最好的推荐效果。
[0140]
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

技术特征:
1.一种基于时序增强的异构图推荐方法,其特征在于,包括以下步骤:s1、在用户和项目嵌入学习部分,经过查找层得到低维稠密向量后,利用lstm模块对数据进行处理;s2、在元路径部分,使用优先级分数来生成高质量的路径实例,并通过tcn模块生成单个路径实例嵌入,tcn模块捕获每个序列的时序关系以增强表示,再通过互注意机制进行嵌入的聚合得到元路径的嵌入表示;s3、将用户、项目和元路径三者的嵌入表示进行结合成为一个统一的表示,进行下游的推荐任务。2.根据权利要求1所述的基于时序增强的异构图推荐方法,其特征在于,s1中对用户和项目嵌入表示学习,具体包括以下步骤:s101、将用户和项目的表示转换为低维稠密的向量:x
u
=m
t
m
u
y
i
=n
t
n
i
其中,用户和项目表示分别为m
u
∈r
|u|
×1和n
i
∈r
|i|
×1,用户和项目转换矩阵分别为m∈r
|u|
×
d
和n∈r
|i|
×
d
,|u|和|i|分别表示用户和项目数目,d表示用户和项目的维度;s102、使用lstm对向量进行处理,增强节点之间的关系:x
u
'=lstm(x
u
,θ)其中,x
u
'表示x
u
经过lstm操作后得到的向量,lstm表示使用lstm模块对低维向量进行处理,θ代表lstm中的相关参数;s103、对于用户路径上的同类型节点,引入自注意力机制,具体操作如下:同理可得,得到的项目嵌入为:其中,w
u
和w
i
分别是用户注意力层和项目注意力层的权重矩阵,b
u
和b
i
是相对应的偏置向量。3.根据权利要求2所述的基于时序增强的异构图推荐方法,其特征在于,lstm的具体操作如下:用户/项目序列中第t个用户的输入状态向量为:其中,tanh表示双曲正切激活函数,
“⊙”
表示哈达玛积,h
t-1
代表用户/项目序列中第(t-1)个用户/项目的隐藏层输出向量,w
c
表示关于输入状态向量的可学习参数,b
c
表示关于输入状态的偏置向量;用户/项目序列中第t个用户/项目的输入向量为:i
t
=σ(w
i

[h
t-1
,x
t
]+b
i
)其中,σ表示激活函数,x
t
是经过查找层之后序列中第t个用户/项目的嵌入表示,w
i
表示关于输入向量的可学习参数,b
i
表示关于输入的偏置向量;用户/项目序列中第t个用户的遗忘门向量为:f
t
=σ(w
f

[h
t-1
,x
t
]+b
f
)
其中,w
f
表示关于遗忘门向量的可学习参数,b
f
表示关于遗忘门的偏置向量;用户/项目序列中第t个用户/项目的总体状态向量为:其中,c
t-1
表示用户/项目序列中第(t-1)个用户/项目的总体状态向量。用户/项目序列中第t个用户/项目的输出向量为:o
t
=σ(w0⊙
[h
t-1
,x
t
]+b0)其中,o
t
表示用户/项目序列中第t个用户/项目输出向量;用户/项目序列中第t个用户/项目的隐藏层输出向量为:h
t
=o
t
*tanh(c
t
)。4.根据权利要求1所述的基于时序增强的异构图推荐方法,其特征在于,s2中所述的对元路径的嵌入表示学习,具体包括以下步骤:s201、单个元路径实例的嵌入表示学习:h
p
=tcn(e
p
,θ)其中,tcn代表对单个元路径实例进行时序卷积操作,e
p
是单个元路径实例矩阵,θ是tcn中的相关参数;s202、进行最大池化操作,根据构成的元路径实例嵌入学习单个元路径的嵌入:其中,m表示元路径实例的数量;s203、对于多条元路径的嵌入,采用协同注意力机制对嵌入进行聚合,注意力分数如下:其中,表示第一层网络得到的注意力分数,relu表示激活函数,和分别是用户和项目的权重矩阵,a
(1)
是第一层网络的偏置向量;其中,w
(2)
是第二层的权重矩阵,a
(2)
是第二层的偏置向量;s204、对注意力分数进行归一化,得到每个元路径的重要性程度:其中,m
u,i
是元路径的集合;s205、对元路径进行加权求和,得到最终的元路径嵌入c
u,i
:5.根据权利要求1所述的基于时序增强的异构图推荐方法,其特征在于,s3中所述的嵌入的结合,具体包括以下步骤:
其中,r
u,i
是用户和项目之间的最终复杂交互表示,mlp组件由两个隐藏层实现,其中relu作为激活函数,输出层使用sigmoid函数,表示拼接操作。

技术总结
本发明公开了一种基于时序增强的异构图推荐方法,包括以下步骤:S1、在用户和项目嵌入学习部分,经过查找层得到低维稠密向量后,利用LSTM模块对数据进行处理;S2、在元路径部分,使用优先级分数来生成高质量的路径实例,并通过TCN模块生成单个路径实例嵌入,TCN模块捕获每个序列的时序关系以增强表示,再通过互注意机制进行嵌入的聚合得到元路径的嵌入表示;S3、将用户、项目和元路径三者的嵌入表示进行结合成为一个统一的表示,进行下游的推荐任务。本发明在推荐系统方面,特别是基于由不同类型节点和边组成的异构图上,准确度、召回率上均实现了较佳的效果。上均实现了较佳的效果。上均实现了较佳的效果。


技术研发人员:杨真真 王东涛 杨永鹏 闫孟儒
受保护的技术使用者:南京邮电大学
技术研发日:2022.07.18
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8775.html

最新回复(0)