一种融合协作信息和自注意力机制的序列推荐方法及系统

文档序号:32001103发布日期:2022-11-02 11:18阅读:53来源:国知局
一种融合协作信息和自注意力机制的序列推荐方法及系统

1.本发明涉及推荐系统技术领域,尤其是融合协作信息和自注意力机制的序列化推荐方法及系统。


背景技术:

2.互联网的快速发展,在便利人们生活的同时,也带来了信息过载问题,用户难以从海量数据中发现对自己真正有用的信息。推荐系统是一种缓解信息过载问题的工具,它旨在基于用户的历史交互记录向用户提供个性化推荐服务,在日常生活中发挥着越来越重要的作用。
3.基于协同过滤的推荐算法是推荐系统中应用最广泛的方法,它们通常利用全局用户交互数据为用户推荐前n个项目,如矩阵分解模型,能够有效模拟用户潜在的静态偏好,取得不错的推荐效果。然而在现实中,用户的兴趣通常会随着时间发生改变,传统的协同过滤推荐算法很难及时捕捉到这种变化。
4.现在比较先进的序列化推荐方法是将用户交互数据按照时间戳排序,试图捕获序列中的依赖关系,模拟用户的动态偏好,以得到更准确的推荐结果。在早期,多是将一些成熟的算法应用于序列推荐,近几年,深度学习技术凭借超强的数据拟合能力,能有效建模序列依赖关系,成为了序列推荐的主流方法。
5.当前,利用深度学习已经能够很好地捕获用户的动态偏好,并且在序列推荐场景下,动态偏好极其重要,所以往往能取得很好的推荐效果。然而,大多数基于深度学习的推荐模型对用户静态偏好学习不够重视,有的模型仅用简单的用户嵌入代表静态偏好,可能会影响推荐效果。除此之外,大部分模型仅仅关注用户本身的行为,忽略了相似用户的影响。


技术实现要素:

6.针对上述现有技术的不足,本发明提供一种融合协作信息和自注意力机制的序列化推荐方法及系统。其目的是从用户行为序列中捕获序列依赖关系以准确地模拟用户偏好,其中通过融合协作信息来加强用户静态偏好的表达,最终提升推荐准确度,增强推荐解释性。
7.为了实现上述目的,本发明通过以下技术方案予以实现:
8.s1、协作信息学习:根据用户行为序列计算用户之间的相似度,选择最相似的k个用户作为邻居用户,以相似度为权重聚合邻居用户嵌入得到协作信息;
9.s2、静态偏好学习:将协作信息与目标用户嵌入聚合,以得到静态偏好向量,通过门控机制捕获不同项目中影响用户静态偏好的潜在特征,通过静态偏好向量与项目嵌入的内积操作来衡量用户对项目的静态偏好大小,以此为权值聚合项目中的潜在特征,得到用户的静态偏好表示,该部分也可以视为一个注意力层;
10.s3、动态偏好学习:使用一个多层次的注意力网络来捕获用户的动态偏好,网络由
一系列自注意力块堆叠而成,每个自注意力块又分为自注意力层和全连接层;
11.s4、评分预测:通过一个静态偏好控制器(spc)对静态偏好进行缩放,再聚合动态偏好以得到最终的用户偏好表示,将其与候选项目的嵌入向量做内积,得到最终预测评分。
12.与现有技术相比,本发明具备以下有益效果:
13.本发明使用最长公共子序列算法计算用户在序列行为上的相似度,更适合于序列化推荐场景;在静态偏好学习时,将协作信息与用户嵌入相聚合,一方面强化了目标用户嵌入向量中静态偏好信息的表达,另一方面,考虑了邻居用户的影响,增强了推荐的多样性;在评分预测时,考虑了候选项目的影响,动态地调节用户静态偏好和动态偏好的比值,使得用户偏好表达更为准确,并且静态偏好缩放系数只与用户自身的静态偏好和候选项目有关,个性化程度较高;本发明同时关注用户静态偏好和动态偏好建模,提升了推荐准确度。
附图说明
14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1是本发明实施例中融合协作信息和注意力机制的序列化推荐方法及系统流程图。
16.图2是本发明实施例中融合协作信息和注意力机制的序列化推荐方法及系统架构图。
具体实施方式
17.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
18.下面结合说明书附图以及具体的实施方式对本发明作详细说明。如图1所示,一种融合协作信息和注意力机制的序列化推荐方法及系统包括步骤s1~s4:
19.s1、协作信息学习:根据用户行为序列计算用户之间的相似度,选择最相似的k个用户作为邻居用户,以相似度为权重聚合邻居用户嵌入得到协作信息;
20.s2、静态偏好学习:将协作信息与目标用户嵌入聚合,以得到静态偏好向量,通过门控机制捕获不同项目中影响用户静态偏好的潜在特征,通过静态偏好向量与项目嵌入的内积操作来衡量用户对项目的静态偏好大小,以此为权值聚合项目中的潜在特征,得到用户的静态偏好表示;
21.s3、动态偏好学习:使用一个多层次的注意力网络来捕获用户的动态偏好,网络由一系列自注意力块堆叠而成,每个自注意力块又分为自注意力层和全连接层;
22.s4、评分预测:通过一个静态偏好控制器(spc)对静态偏好进行缩放,再聚合动态偏好以得到最终的用户偏好表示,将其与候选项目的嵌入向量做内积,得到最终预测评分。
23.下面对各个步骤进行详细描述。
24.在步骤s1中,将根据用户行为序列计算用户间的相似度,聚合邻居用户嵌入得到协作信息,如图2中的协作信息学习模块所示,其步骤具体为:
25.s101、引入推荐数据集,用户集和项目集分别定义为u和i,对于任意一个用户u∈u,将其历史交互记录按时间戳排序,用表示,其中|su|表示用户u的交互项目总数,表示用户u最近一次的交互项目。
26.s102、将用户集和项目集嵌入到两个低维连续向量空间,分别用两个可学习的嵌入矩阵和表示,其中|u|和|i|分别表示用户数和项目数,d表示嵌入的维度。
27.s103、使用动态规划算法计算用户之间行为序列的最长公共子序列的长度,经过正则化操作后作为用户间的相似度,公式如下:
[0028][0029]
其中,sim(u,v)代表用户u和v的相似度,lcs(su,sv)计算二者的最长公共子序列的长度,|su|代表用户u的行为序列长度,加入正则化操作后,相似度的值在0和1之间。
[0030]
s104、得到用户之间的相似度之后,将与目标用户相似度最大的前k个用户作为邻居用户,相似度经过softmax函数计算得到权重,再聚合邻居用户的嵌入得到协作信息,其定义为:
[0031]
ci=softmax(wn)
·nꢀꢀꢀꢀꢀꢀꢀ
(2)
[0032]
其中,代表协作信息,是邻居用户嵌入堆叠构成的矩阵,是由目标用户与邻居用户的相似度构成的向量。
[0033]
在步骤s2中,将通过门控机制捕获不同项目中影响用户静态偏好的潜在特征,通过静态偏好向量与项目嵌入的内积操作来衡量用户对项目的静态偏好大小,以此为权值聚合项目中的潜在特征,得到用户的静态偏好表示,如图2中静态偏好学习模块所示,其步骤具体为:
[0034]
s201、从每个用户的行为序列中取定长序列作为输入序列,即最近的l个交互项目,构成输入矩阵
[0035][0036]
其中,向量表示输入序列中第l个项目的嵌入表示。
[0037]
s202、为了强化用户嵌入向量中包含的静态偏好信息,将目标用户嵌入和协作信息相融合作为用户的静态偏好向量:
[0038]vsp
=u+ci
·
wcꢀꢀꢀꢀꢀꢀ
(4)
[0039]
其中,代表用户的静态偏好向量,是一个可学习的参数矩阵,u是目标用户嵌入向量。
[0040]
s203、接着,通过门控机制捕获不同项目中影响用户静态偏好的潜在特征,通过静
态偏好向量与项目嵌入的内积操作来衡量用户对项目的静态偏好大小,以此为权值聚合项目中的潜在特征,得到用户的静态偏好表示:
[0041]
spl(e)=ps=ws·
ε
′ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0042]ws
=softmax(v
sp
·
e)
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0043]e′
=e

σ(e
·ws1
+v
sp
·ws2
)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0044]
其中,代表用户的静态偏好,v
sp
是通过协作信息学习得到的用户静态偏好向量,其中包含了关于目标用户丰富的静态偏好信息,是模型的输入序列嵌入后构成的矩阵,是两个可学习的参数矩阵,

代表矩阵点乘,σ(
·
)代表sigmoid函数。
[0045]
在步骤s3中,使用一个多层次的自注意力网络来捕获用户行为序列中的动态偏好,网络由一系列自注意力块堆叠而成,每个自注意力块又分为自注意力层和全连接层,如图2中的动态偏好学习模块所示,其步骤具体为:
[0046]
s301、自注意力机制的核心在于项目权重的学习,对于项目的先后顺序不太敏感,为了使其更适合序列推荐,首先需要向初始的序列输入矩阵e中加入一个可学习的位置嵌入矩阵最终自注意力网络的输入矩阵如下所示:
[0047][0048]
s302、然后将带有位置信息的输入矩阵输入到自注意力网络中,本发明中的自注意力网络由一系列自注意力块(self-attention block,sab)堆叠而成,每个自注意力块又分为自注意力层(self-attention layer,sal)和全连接层(fully connected layer,fcl)两部分,通过自注意力层学习项目的权重并聚合相关信息,通过全连接层增加网络的非线性因素,自注意力块定义如下所示:
[0049]
sab(x)=fcl(sal(x))
ꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0050][0051]
fcl(x

)=relu(x
′wd1
+b1)w
d2
+b2ꢀꢀꢀꢀꢀꢀ
(11)
[0052]
q=xwq,k=xwk,v=xvvꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0053]
其中,是带有位置信息的输入矩阵,式(10)是缩放点积注意力(scaled dot-product attention)公式,其中q代表查询,k和v分别代表键和值,它们由输入矩阵与映射矩阵分别相乘得来,和是全连接层中的参数矩阵和偏置。
[0054]
s303、之后再将用户最近一次交互项目嵌入经过网络训练后的输出向量作为用户的动态偏好:
[0055]
[0056]
其中,代表用户的动态偏好,代表网络最终输出矩阵的第l个向量。
[0057]
在步骤s4中,通过一个静态偏好控制器对静态偏好进行缩放,再聚合动态偏好以得到最终的用户偏好表示,将其与候选项目的嵌入向量做内积,得到最终预测评分,如图2中评分预测模块所示,其步骤具体为:
[0058]
s401、在得到用户的静态偏好和动态偏好之后,通过一个静态偏好控制器(spc)对静态偏好进行缩放,再聚合动态偏好以得到最终的用户偏好表示。spc将用户静态偏好表示与候选项目嵌入作为输入,计算候选项目在静态偏好表示向量上的投影作为输出,即用户静态偏好的缩放权值,最后将用户动态偏好与缩放后的静态偏好相加作为最终的用户偏好表示:
[0059][0060][0061]
其中,代表用户最终偏好表示,是候选项目嵌入向量,代表元素乘。
[0062]
s402、得到用户最终偏好表示之后,通过与候选项目的嵌入向量做内积得到预测评分,候选项目的预测评分如下所示:
[0063]rui
=p
·
(ic)
t
ꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0064]
s403、本发明使用一个二元交叉熵损失作为目标函数,为了优化推荐模型,每次预测时,从用户没有交互过的项目集中随机挑选一个项目j作为负样本,如果用户行为序列长度不足l,需要向序列左端填充0,对于这部分填充的数据,不计入损失。损失函数如下:
[0065][0066]
最后,使用adam优化器对损失函数loss进行迭代优化。
[0067]
本发明实施例引入改进的最长公共子序列算法计算用户在行为序列上的相似度,聚合前k个邻居用户的初始嵌入得到协作信息,并将其与目标用户嵌入结合,强化了用户偏好信息的表达。本发明同时关注用户的动态偏好和静态偏好学习,提高了推荐准确率,为实际应用中的工业推荐等工作提供更为高效的框架。
[0068]
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1