一种融合自注意力机制基于图神经网络的会话推荐方法与系统

文档序号:31358598发布日期:2022-08-31 14:09阅读:250来源:国知局
一种融合自注意力机制基于图神经网络的会话推荐方法与系统

1.本发明属于电子商务技术领域,尤其涉及一种融合自注意力机制基于图神经网络的会话推荐方法与系统。


背景技术:

2.近年来,网上挑选商品成为人们购物的一种方式,为了让用户有更好的购物体验,电子商务网站会使用推荐算法帮助用户挑选出满意的商品。传统推荐方法关注更多的是用户的长期行为,并且需要根据用户的显性行为(如用户在淘宝网站上对商品的评论和评分等行为)建模。但在现实场景中,一些电子商务网站允许用户匿名访问,在没有身份标识的情况下不能获取其显性行为,导致无法为匿名用户推荐商品。所以,在匿名场景下,提出根据用户的历史会话和正在进行的临时会话捕捉用户的兴趣偏好,这种推荐方式称为基于会话的推荐,会话是发生在一段时间内的用户和网站的交互记录。
3.不同于其他推荐问题,使用传统的推荐方法解决基于会话的推荐问题难度很大,一些学者尝试通过改进传统方法解决会话推荐中存在的问题,得到的推荐结果往往会被模型中固有的特性限制。目前,传统的会话推荐方法如马尔可夫链和矩阵分解等取得了不错的研究成果。随着商品越来越多,矩阵分解方法的计算代价也越大。而基于马尔可夫链的方法,独立地组合了过去的组件,这种过于强烈的独立性假设,限制了预测的准确性。基于深度学习的会话推荐方法如经典的循环神经网络,循环神经网络方法只能捕捉到用户交互行为中的单向关系,在会话数据比较稀疏时,无法捕捉用户的真正偏好。
4.电子商务领域使用的推荐算法包括协同过滤算法、基于内容的推荐算法和混合推荐算法等。对于允许匿名访问的电子商务网站,基于会话的推荐方法被广泛的应用和研究,传统的方法包括马尔可夫链和循环神经网络等。基于循环神经网络的方法中,用嵌入向量表示用户的兴趣,根据这些兴趣进行推荐。但是会话推荐中用户是匿名的,且用户行为受到限制,循环神经网络很难从每个会话中准确得到用户的表示,而且循环神经网络只对相邻商品的单向转移建模,忽略了会话中其他商品信息,当会话中数据稀缺时,捕捉到的用户喜好并不准确,无法为用户生成满意的推荐列表。在近几年的研究中,图神经网络方法被广泛应用在会话推荐中,图神经网络的出现将用户的交互行为建模为图结构,不同于循环神经网络,图神经网络将商品序列建模为有向图,提取商品间双向关系,取得了显著的效果。但是,由于在电子商务网站中获取的会话数据有限,而目前提出的基于图神经网络的会话推荐方法通常只考虑商品间的转移模式,无法得到足够的序列关系,导致模型挖掘的用户偏好不够准确。


技术实现要素:

5.本发明针对现有基于图神经网络的会话推荐存在的挖掘用户偏好不够准确的问题,提出一种融合自注意力机制基于图神经网络的会话推荐方法与系统。
6.为了实现上述目的,本发明采用以下技术方案:
7.本发明一方面提出一种融合自注意力机制基于图神经网络的会话推荐方法,包括:
8.步骤1:将商品会话序列数据根据其点击关系绘制成会话图,会话图中的节点代表商品,边代表节点间的点击关系,使用图神经网络模型更新会话图中节点的状态,学习到商品间的序列特征;
9.步骤2:根据会话序列的顺序关系构建对应商品属性序列,并使用门控循环单元模型学习商品属性间的序列特征;
10.步骤3:将两个模型输出的特征向量利用神经网络模型进行融合,再利用多头注意力机制在特征层进一步挖掘各个特征间相互关系,最后,利用软注意力机制学习用户的长期偏好,再结合短期偏好利用线性变换得到用户最终特征向量,用以生成推荐商品。
11.进一步地,所述步骤1中,按照如下方式更新会话图中节点的状态:
[0012][0013][0014][0015][0016][0017]
其中,是t时刻聚合信息后节点vi的状态向量;a
s,i:
表示节点vi的邻接矩阵,邻接矩阵包含出度值和入度值;是t-1时刻所有节点特征向量的拼接矩阵,表示t-1时刻节点vi的状态,h是权重控制项,b是偏置项;表示t时刻节点vi的更新门;表示t时刻节点vi的重置门;s=(s1,s2,...,sm)表示会话中m个会话序列,一个会话序列表示为s=(i1,i2,

,im),其中s∈s,且商品ii∈i,i=(i1,i2,...,in)表示会话中的n个不重复的电商商品;σ(
·
)是sigmoid函数,将连续值映射到(0,1)之间;表示t时刻节点vi的候选隐藏状态;表示输出节点的最终状态向量;wz∈rd和uz∈rd是更新门下分别控制和的权重向量,wr∈rd和ur∈rd是重置门下分别控制和的权重向量,d表示维度,参数wo和uo分别是控制和的权重向量;.是点乘运算;tanh(.)表示双曲正切函数。
[0018]
进一步地,所述步骤2包括:
[0019]
首先,根据当前输入的商品属性向量ci和上一时刻t
i-1
的状态
hi-1
计算更新门zi和重置门ri,其中,sigmoid激活函数将更新门和重置门的值映射到(0,1)区间:
[0020]
zi=sigmoid(w
zci
+u
zhi-1
)
ꢀꢀ
(6)
[0021]ri
=sigmoid(w
rci
+u
rhi-1
)
ꢀꢀ
(7)
[0022]
其次,得到门控信号后,使用重置门将上一时刻的状态重置,并和当前输入拼接,再经过tanh函数将值映射到[-1,1]之间,得到当前时刻属性ci的候选状态
[0023]
[0024]
其中,和分别是控制ci和(ri·hi-1
)的权重向量;
[0025]
然后,利用更新门得到当前输入ci的最终状态为:
[0026][0027]
最后,将每一时刻gru模型的输出,即商品属性序列中每个商品属性的最终状态进行拼接,得到商品属性序列的状态矩阵ha=[h1,h2,...,hm],其中hi代表属性ci的最终状态,所述商品的属性为商品种类。
[0028]
进一步地,所述步骤3包括:
[0029]
将图神经网络输出的节点特征矩阵和gru模型输出的商品属性特征矩阵拼接,使用全连接层将其融合,计算公式为:
[0030][0031]
其中,w1∈r
2d*d
是全连接层下的权重矩阵,b1∈rd是偏置项,o∈r
m*d
是节点特征矩阵和商品属性特征矩阵融合得到的特征矩阵;
[0032]
使用多头注意力机制,根据头的个数heads划分出多个子空间,在每个子空间中对特征矩阵o进行注意力计算后,再将多个输出合并起来:首先,基于特征矩阵,使用线性变换得到heads个子空间的注意力层的输入q,k,v,q,k,v∈r
heads*m*d

[0033]
q=w
iqoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0034]
q=w
ikoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0035]
q=w
ivoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0036]
其中,w
iq
,w
ik
和w
iv
是进行线性变换的权重矩阵;
[0037]
将q,k,v划分到heads个子空间后,使用缩放点积注意力计算得到特征在编码过程中对应的注意力权重矩阵h:
[0038][0039]
其中,h∈r
heads*m*d

[0040]
多头注意力机制将进行了heads次注意力计算的结果在全连接层进行融合,计算公式如下:
[0041]
m=w2h+b2ꢀꢀꢀ
(15)
[0042]
其中,w2∈r
(d*heads)*d
全连接层下使用的权重矩阵,b2是偏置项,m∈r
m*d
是heads次注意力计算结果融合后得到的特征矩阵;
[0043]
将特征矩阵m=(m1,m2,

,mm)作为用户的长期偏好,将特征矩阵中最后一个特征向量mm作为用户的短期偏好,表示为m
short
=mm;
[0044]
使用软注意力机制为长期偏好中每个特征分配权重:
[0045][0046][0047]
其中,atti是特征mi的权重,q是权重向量,m
long
∈rd是长期偏好向量;
[0048]
取商品属性向量的平均值:
[0049][0050]
取特征矩阵m中的当前特征mi、长期偏好、短期偏好和商品种类向量平均值ha共同作为决定长短期偏好重要性的因素,并在全连接层将其融合成用户偏好向量hs:
[0051]ai
=soft max(w3mi+w4m
long
+w5m
short
+w6ha+b2)
ꢀꢀꢀꢀ
(19)
[0052]hs
=w7[aim
long
;(1-ai)m
short
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0053]
其中,ai是注意力权重,参数w3,w4,w5,w6分别是作用于mi,m
long
,m
short
,ha的权重向量,w7∈r
2d*d
是全连接层下融合长期偏好和短期偏好使用的权重矩阵;
[0054]
通过用户偏好向量和所有商品的嵌入向量做点积,计算出每个商品的推荐分数,并使用softmax方法将该推荐分数转化成概率:
[0055][0056]
其中,权重ai决定长期偏好的重要性,(1-ai)决定短期偏好的重要性,[;]表示对长期偏好和短期偏好进行拼接,y

是模型预测的商品成为下一个点击项的概率,从中选出概率最大的前n个商品推荐给用户。
[0057]
本发明另一方面提出一种融合自注意力机制基于图神经网络的会话推荐系统,包括:
[0058]
第一特征提取模块,用于将商品会话序列数据根据其点击关系绘制成会话图,会话图中的节点代表商品,边代表节点间的点击关系,使用图神经网络模型更新会话图中节点的状态,学习到商品间的序列特征;
[0059]
第二特征提取模块,用于根据会话序列的顺序关系构建对应商品属性序列,并使用门控循环单元模型学习商品属性间的序列特征;
[0060]
特征融合模块,用于将两个模型输出的特征向量利用神经网络模型进行融合,再利用多头注意力机制在特征层进一步挖掘各个特征间相互关系,最后,利用软注意力机制学习用户的长期偏好,再结合短期偏好利用线性变换得到用户最终特征向量,用以生成推荐商品。
[0061]
进一步地,所第一特征提取模块中,按照如下方式更新会话图中节点的状态:
[0062][0063][0064][0065][0066][0067]
其中,是t时刻聚合信息后节点vi的状态向量;a
s,i:
表示节点vi的邻接矩阵,邻接矩阵包含出度值和入度值;是t-1时刻所有节点特征向量的拼接矩阵,表示t-1时刻节点vi的状态,h是权重控制项,b是偏置项;表示t时刻节点vi的更新门;表示t时刻节点vi的重置门;s=(s1,s2,...,sm)表示会话中m个会话序列,一个会话序列表示
为s=(i1,i2,

,im),其中s∈s,且商品ii∈i,i=(i1,i2,...,in)表示会话中的n个不重复的电商商品;σ(
·
)是sigmoid函数,将连续值映射到(0,1)之间;表示t时刻节点vi的候选隐藏状态;表示输出节点的最终状态向量;wz∈rd和uz∈rd是更新门下分别控制和的权重向量,wr∈rd和ur∈rd是重置门下分别控制和的权重向量,d表示维度,参数wo和uo分别是控制和的权重向量;.是点乘运算;tanh(.)表示双曲正切函数。
[0068]
进一步地,所述第二特征提取模块具体用于:
[0069]
首先,根据当前输入的商品属性向量ci和上一时刻t
i-1
的状态
hi-1
计算更新门zi和重置门ri,其中,sigmoid激活函数将更新门和重置门的值映射到(0,1)区间:
[0070]
zi=sigmoid(w
zci
+u
zhi-1
)
ꢀꢀ
(6)
[0071]ri
=sigmoid(w
rci
+u
rhi-1
)
ꢀꢀ
(7)
[0072]
其次,得到门控信号后,使用重置门将上一时刻的状态重置,并和当前输入拼接,再经过tanh函数将值映射到[-1,1]之间,得到当前时刻属性ci的候选状态
[0073][0074]
其中,和分别是控制ci和(ri·hi-1
)的权重向量;
[0075]
然后,利用更新门得到当前输入ci的最终状态为:
[0076][0077]
最后,将每一时刻gru模型的输出,即商品属性序列中每个商品属性的最终状态进行拼接,得到商品属性序列的状态矩阵ha=[h1,h2,...,hm],其中hi代表属性ci的最终状态,所述商品的属性为商品种类。
[0078]
进一步地,所述特征融合模块具体用于:
[0079]
将图神经网络输出的节点特征矩阵和gru模型输出的商品属性特征矩阵拼接,使用全连接层将其融合,计算公式为:
[0080][0081]
其中,w1∈r
2d*d
是全连接层下的权重矩阵,b1∈rd是偏置项,o∈r
m*d
是节点特征矩阵和商品属性特征矩阵融合得到的特征矩阵;
[0082]
使用多头注意力机制,根据头的个数heads划分出多个子空间,在每个子空间中对特征矩阵o进行注意力计算后,再将多个输出合并起来:首先,基于特征矩阵,使用线性变换得到heads个子空间的注意力层的输入q,k,v,q,k,v∈r
heads*m*d

[0083]
q=w
iqoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0084]
q=w
ikoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0085]
q=w
ivoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0086]
其中,w
iq
,w
ik
和w
iv
是进行线性变换的权重矩阵;
[0087]
将q,k,v划分到heads个子空间后,使用缩放点积注意力计算得到特征在编码过程中对应的注意力权重矩阵h:
[0088]
[0089]
其中,h∈r
heads*m*d

[0090]
多头注意力机制将进行了heads次注意力计算的结果在全连接层进行融合,计算公式如下:
[0091]
m=w2h+b2ꢀꢀ
(15)
[0092]
其中,w2∈r
(d*heads)*d
全连接层下使用的权重矩阵,b2是偏置项,m∈r
m*d
是heads次注意力计算结果融合后得到的特征矩阵;
[0093]
将特征矩阵m=(m1,m2,

,mm)作为用户的长期偏好,将特征矩阵中最后一个特征向量mm作为用户的短期偏好,表示为m
short
=mm;
[0094]
使用软注意力机制为长期偏好中每个特征分配权重:
[0095][0096][0097]
其中,atti是特征mi的权重,q是权重向量,m
long
∈rd是长期偏好向量;
[0098]
取商品属性向量的平均值:
[0099][0100]
取特征矩阵m中的当前特征mi、长期偏好、短期偏好和商品种类向量平均值ha共同作为决定长短期偏好重要性的因素,并在全连接层将其融合成用户偏好向量hs:
[0101]ai
=soft max(w3mi+w4m
long
+w5m
short
+w6ha+b2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)
[0102]hs
=w7[aim
long
;(1-ai)m
short
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0103]
其中,ai是注意力权重,参数w3,w4,w5,w6分别是作用于mi,m
long
,m
short
,ha的权重向量,w7∈r
2d*d
是全连接层下融合长期偏好和短期偏好使用的权重矩阵;
[0104]
通过用户偏好向量和所有商品的嵌入向量做点积,计算出每个商品的推荐分数,并使用softmax方法将该推荐分数转化成概率:
[0105][0106]
其中,权重ai决定长期偏好的重要性,(1-ai)决定短期偏好的重要性,[;]表示对长期偏好和短期偏好进行拼接,y

是模型预测的商品成为下一个点击项的概率,从中选出概率最大的前n个商品推荐给用户。
[0107]
与现有技术相比,本发明具有的有益效果:
[0108]
本发明将会话中商品属性特征的序列关系融入会话推荐中。首先使用图神经网络对商品会话序列数据建模,挖掘商品间的转移关系;其次使用gru模型对商品属性序列建模,捕捉属性间转移关系;最后,将两个模型的输出的特征向量拼接并利用神经网络模型进行融合,再使用多头注意力机制在特征层进一步挖掘各个特征间相互关系,然后使用软注意力机制学习用户的长期偏好,并和短期偏好拼接后进行线性转换得到用户的最终特征向量,用以计算推荐商品的概率,完成推荐。本发明能够缓解会话数据稀疏性,通过将会话中商品的属性序列特征关系融入商品会话序列中,使模型能挖掘到更精准的用户偏好,提高推荐系统的关键性能。
附图说明
[0109]
图1为本发明实施例一种融合自注意力机制基于图神经网络的会话推荐方法的流程示意图;
[0110]
图2为本发明实施例的会话图及节点更新结构图;
[0111]
图3为本发明实施例多层gru模型结构图;
[0112]
图4为本发明实施例一种融合自注意力机制基于图神经网络的会话推荐系统的结构示意图。
具体实施方式
[0113]
下面结合附图和具体的实施例对本发明做进一步的解释说明:
[0114]
如图1所示,一种融合自注意力机制基于图神经网络的会话推荐方法,首先是使用图神经网络对商品会话序列数据建模,挖掘商品间的关系;其次使用多层gru模型从商品属性序列中挖掘属性间转移关系;最后使用多头注意力机制在特征层进一步挖掘各个特征间相互关系,并将其划分为长期偏好和短期偏好,赋予不同的注意力权重后通过线性变换得到用户的最终特征向量,用以生成推荐;具体包括:
[0115]
步骤1:将商品会话序列数据根据其点击关系绘制成会话图,会话图中的节点代表商品,边代表节点间的点击关系,使用图神经网络模型更新会话图中节点的状态,学习到商品间的序列特征;
[0116]
步骤2:根据会话序列的顺序关系构建对应商品属性序列,并使用门控循环单元模型学习商品属性间的序列特征;
[0117]
步骤3:将两个模型输出的特征向量利用神经网络模型进行融合,再利用多头注意力机制在特征层进一步挖掘各个特征间相互关系,最后,利用软注意力机制学习用户的长期偏好,再结合短期偏好利用线性变换得到用户最终特征向量,用以生成推荐商品。
[0118]
进一步地,所述步骤1包括:
[0119]
将所有会话中全部且唯一的n个电商商品表示为i=(i1,i2,...,in),令s=(s1,s2,...,sm)表示数据中m个会话序列,并将一个会话序列表示为s=(i1,i2,

,im),其中,s∈s,且商品ii∈i,1≤i≤m,1≤m≤n。首先将会话序列s=(i1,i2,

,im)根据点击顺序构建成会画图g=(v,e),其中图中的节点vi代表序列中的商品ii,边e表示节点间的转移关系,如边e=(vi,v
i+1
)表示用户在点击了vi后又点击了v
i+1
,在模型中将边关系映射成邻接矩阵a,矩阵包含入度矩阵a
in
和出度矩阵a
out
。将节点嵌入到一个统一的空间,表示为嵌入向量使用图神经网络更新节点,更新的过程和gru模型类似,节点更新的步骤为:
[0120][0121][0122][0123][0124]
[0125]
公式(1)通过节点的入度值、出度值聚合其邻居节点的特征信息,其中是聚合信息后节点的状态向量,a
s,i:
表示该节点的出度值和入度值,是t-1时刻所有结点特征向量的拼接矩阵,h是权重控制项,b是偏置项。公式(2)和公式(3)分别得到更新门和重置门其中,σ(
·
)是sigmoid函数,将连续值映射到(0,1)之间,wz∈rd和uz∈rd是更新门下分别控制和的权重向量,d表示维度,wr∈rd和ur∈rd是重置门下分别控制和的权重向量。公式(4)中候选隐藏状态由节点状态和t-1时刻节点状态组成,在这里,重置门作用是过滤掉t-1时刻节点状态与当前节点状态无关的部分,其中,tanh(.)表示双曲正切函数,参数wo和uo分别是控制和的权重向量,.是点乘运算。公式(5)中使用更新门决定从候选隐藏状态中留下多少信息,使用决定从t-1时刻节点状态中留下多少信息,并输出节点的最终状态向量
[0126]
具体地,会话图及节点更新结构图如图2所示。
[0127]
具体地,步骤2包括:
[0128]
本发明使用的商品属性是种类,令f=(f1,f2,

,fm)表示会话序列s=(i1,i2,

,im)中商品的种类序列,嵌入到嵌入层后得到其向量形式c=(c1,c2,

,cm)。gru模型有两个输入,即当前输入的属性向量ci和上一时刻gru模型输出的状态h
i-1
,通过两个门控机制更新门和重置门控制信息。具体的计算过程如下:
[0129]
根据当前输入ci和上一时刻t
i-1
的状态h
i-1
计算更新门zi和重置门ri,sigmoid激活函数将更新门和重置门的值映射到(0,1)区间:
[0130]
zi=sigmoid(w
zci
+u
zhi-1
)
ꢀꢀ
(6)
[0131]ri
=sigmoid(w
rci
+u
rhi-1
)
ꢀꢀ
(7)
[0132]
其中,参数wz∈rd,uz∈rd,wr∈rd,uz∈rd。
[0133]
得到门控信号后,使用重置门将上一时刻的状态重置并和当前输入拼接,再经过tanh函数将值映射到[-1,1]之间,得到当前时刻的候选状态
[0134][0135]
其中,和分别是控制ci和(ri·hi-1
)的权重向量,.是点乘运算。
[0136]
gru相较于长短期记忆模型的优点之一是可以使用一个更新门同时做到遗忘和选择,zi从候选状态中有选择的保留重要部分,(1-zi)相当于遗忘门,决定从上一时刻状态h
i-1
中遗忘的部分。当前输入的最终状态为:
[0137][0138]
将每一时刻gru模型的输出,即属性序列中每个属性的最终状态进行拼接,得到商品属性序列的状态矩阵ha=[h1,h2,...,hm],其中hi代表属性ci的最终状态。
[0139]
具体地,本发明采用的多层gru模型结构如图3所示。
[0140]
具体地,所述步骤3包括:
[0141]
将图神经网络输出的节点特征表示为并和属性特征ha=
[h1,h2,...,hm]拼接,使用全连接层将其融合,计算公式为:
[0142][0143]
其中,w1∈r
2d*d
是全连接层下的权重矩阵,b1∈rd是偏置项,o∈r
m*d
是节点特征和属性特征融合得到的商品属性特征矩阵。
[0144]
为了能够在特征层捕获用户偏好,本发明使用多头注意力机制,根据头的个数heads划分出多个子空间,在每个子空间中对特征矩阵o进行注意力计算,再将多个输出合并起来,注意力层的输出包含有不同子空间中的编码表示信息,同时增强了模型的表达能力。首先,基于特征矩阵,使用线性变换得到heads个子空间的注意力层的输入q,k,v,q,k,v∈r
heads*m*d

[0145]
q=w
iqoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0146]
q=w
ikoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0147]
q=w
ivoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0148]
其中,w
iq
,w
ik
和w
iv
是进行线性变换的权重矩阵。
[0149]
将q,k,v划分到heads个子空间后,使用缩放点积注意力(scaled dot-product attention)计算得到特征在编码过程中的注意力权重,公式定义为:
[0150][0151]
其中,h∈r
heads*m*d

[0152]
多头注意力机制将进行了heads次注意力计算的结果在全连接层进行融合,计算公式如下:
[0153]
m=w2h+b2ꢀꢀ
(15)
[0154]
其中,w2∈r
(d*heads)*d
全连接层下使用的权重矩阵,b2是偏置项,m∈r
m*d
是heads次注意力计算结果融合后得到的特征矩阵。
[0155]
为了更准确的挖掘到用户的偏好,将特征矩阵m=(m1,m2,

,mm)作为用户的长期偏好,将特征矩阵中最后一个特征向量mm作为短期偏好,表示为m
short
=mm。长期偏好中每个特征的重要性不同,使用软注意力机制(soft-attention mechanism)为每个特征分配权重:
[0156][0157][0158]
其中,atti是特征mi的权重,q是权重向量,m
long
∈rd是长期偏好向量。
[0159]
在一个会话序列中长期偏好和短期偏好的重要性是动态变化的,且取决于上下文,在本发明中,将商品的属性特征作为动态衡量其重要程度的关键因素,取商品属性向量平均值,使每个商品属性同等重要:
[0160][0161]
取特征矩阵m中当前特征mi、长期偏好、短期偏好和商品属性向量平均值ha共同作
为决定长短期偏好重要性的因素,并在全连接层将其融合成用户偏好向量hs:
[0162]ai
=softmax(w3mi+w4m
long
+w5m
short
+w6ha+b2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)
[0163]hs
=w7[aim
long
;(1-ai)m
short
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0164]
其中,ai是注意力权重,参数w3,w4,w5,w6分别是作用于mi,m
long
,m
short
,ha的权重向量,w7∈r
2d*d
是全连接层下融合长期偏好和短期偏好使用的权重矩阵。
[0165]
基于会话的推荐目标是预测用户的下一个点击项,通过用户偏好向量和所有商品的嵌入向量做点积计算出每个商品的推荐分数,并使用softmax方法将该推荐分数转化成概率。
[0166][0167]
其中,权重ai决定长期偏好的重要性,(1-ai)决定短期偏好的重要性,[;]表示对长期偏好和短期偏好进行拼接,y

是模型预测的商品成为下一个点击项的概率,从中选出概率最大的前n个商品推荐给用户。
[0168]
在模型训练过程中,选择交叉熵损失函数作为模型训练的损失函数:
[0169][0170]
在上述实施例地基础上,如图4所示,本发明另一方面提出一种融合自注意力机制基于图神经网络的会话推荐系统,包括:
[0171]
第一特征提取模块,用于将商品会话序列数据根据其点击关系绘制成会话图,会话图中的节点代表商品,边代表节点间的点击关系,使用图神经网络模型更新会话图中节点的状态,学习到商品间的序列特征;
[0172]
第二特征提取模块,用于根据会话序列的顺序关系构建对应商品属性序列,并使用门控循环单元模型学习商品属性间的序列特征;
[0173]
特征融合模块,用于将两个模型输出的特征向量利用神经网络模型进行融合,再利用多头注意力机制在特征层进一步挖掘各个特征间相互关系,最后,利用软注意力机制学习用户的长期偏好,再结合短期偏好利用线性变换得到用户最终特征向量,用以生成推荐商品。
[0174]
进一步地,所第一特征提取模块中,按照如下方式更新会话图中节点的状态:
[0175][0176][0177][0178][0179][0180]
其中,是t时刻聚合信息后节点vi的状态向量;a
s,i:
表示节点vi的邻接矩阵,邻接矩阵包含出度值和入度值;是t-1时刻所有节点特征向量的拼接矩阵,表示t-1时刻节点vi的状态,h是权重控制项,b是偏置项;表示t时刻节点vi的更新门;表
示t时刻节点vi的重置门;s=(s1,s2,...,sm)表示会话中m个会话序列,一个会话序列表示为s=(i1,i2,

,im),其中s∈s,且商品ii∈i,i=(i1,i2,

,in)表示会话中的n个不重复的电商商品;σ(
·
)是sigmoid函数,将连续值映射到(0,1)之间;表示t时刻节点vi的候选隐藏状态;表示输出节点的最终状态向量;wz∈rd和uz∈rd是更新门下分别控制和的权重向量,wr∈rd和ur∈rd是重置门下分别控制和的权重向量,d表示维度,参数wo和uo分别是控制和的权重向量;.是点乘运算;tanh(.)表示双曲正切函数。
[0181]
进一步地,所述第二特征提取模块具体用于:
[0182]
首先,根据当前输入的商品属性向量ci和上一时刻t
i-1
的状态h
i-1
计算更新门zi和重置门ri,其中,sigmoid激活函数将更新门和重置门的值映射到(0,1)区间:
[0183]
zi=sigmoid(w
zci
+u
zhi-1
)
ꢀꢀ
(6)
[0184]ri
=sigmoid(w
rci
+u
rhi-1
)
ꢀꢀ
(7)
[0185]
其次,得到门控信号后,使用重置门将上一时刻的状态重置,并和当前输入拼接,再经过tanh函数将值映射到[-1,1]之间,得到当前时刻属性ci的候选状态
[0186][0187]
其中,和分别是控制ci和(ri·hi-1
)的权重向量;
[0188]
然后,利用更新门得到当前输入ci的最终状态为:
[0189][0190]
最后,将每一时刻gru模型的输出,即商品属性序列中每个商品属性的最终状态进行拼接,得到商品属性序列的状态矩阵ha=[h1,h2,...,hm],其中hi代表属性ci的最终状态,所述商品的属性为商品种类。
[0191]
进一步地,所述特征融合模块具体用于:
[0192]
将图神经网络输出的节点特征矩阵和gru模型输出的商品属性特征矩阵拼接,使用全连接层将其融合,计算公式为:
[0193]
o=w1[h
v1
,h
v2
,

,h
vm
;h1,h2,
…hm
]+b1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0194]
其中,w1∈r
2d*d
是全连接层下的权重矩阵,b1∈rd是偏置项,o∈r
m*d
是节点特征矩阵和商品属性特征矩阵融合得到的特征矩阵;
[0195]
使用多头注意力机制,根据头的个数heads划分出多个子空间,在每个子空间中对特征矩阵o进行注意力计算后,再将多个输出合并起来:首先,基于特征矩阵,使用线性变换得到heads个子空间的注意力层的输入q,k,v,q,k,v∈r
heads*m*d

[0196]
q=w
iqoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0197]
q=w
ikoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0198]
q=w
ivoꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0199]
其中,w
iq
,w
ik
和w
iv
是进行线性变换的权重矩阵;
[0200]
将q,k,v划分到heads个子空间后,使用缩放点积注意力计算得到特征在编码过程中对应的注意力权重矩阵h:
[0201][0202]
其中,h∈r
heads*m*d

[0203]
多头注意力机制将进行了heads次注意力计算的结果在全连接层进行融合,计算公式如下:
[0204]
m=w2h+b2ꢀꢀ
(15)
[0205]
其中,w2∈r
(d*heads)*d
全连接层下使用的权重矩阵,b2是偏置项,m∈r
m*d
是heads次注意力计算结果融合后得到的特征矩阵;
[0206]
将特征矩阵m=(m1,m2,

,mm)作为用户的长期偏好,将特征矩阵中最后一个特征向量mm作为用户的短期偏好,表示为m
short
=mm;
[0207]
使用软注意力机制为长期偏好中每个特征分配权重:
[0208][0209][0210]
其中,atti是特征mi的权重,q是权重向量,m
long
∈rd是长期偏好向量;
[0211]
取商品属性向量的平均值:
[0212][0213]
取特征矩阵m中的当前特征mi、长期偏好、短期偏好和商品种类向量平均值ha共同作为决定长短期偏好重要性的因素,并在全连接层将其融合成用户偏好向量hs:
[0214]ai
=soft max(w3mi+w4m
long
+w5m
short
+w6ha+b2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)
[0215]hs
=w7[aim
long
;(1-ai)m
short
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0216]
其中,ai是注意力权重,参数w3,w4,w5,w6分别是作用于mi,m
long
,m
short
,ha的权重向量,w7∈r
2d*d
是全连接层下融合长期偏好和短期偏好使用的权重矩阵;
[0217]
通过用户偏好向量和所有商品的嵌入向量做点积,计算出每个商品的推荐分数,并使用softmax方法将该推荐分数转化成概率:
[0218][0219]
其中,权重ai决定长期偏好的重要性,(1-ai)决定短期偏好的重要性,[;]表示对长期偏好和短期偏好进行拼接,y

是模型预测的商品成为下一个点击项的概率,从中选出概率最大的前n个商品推荐给用户。
[0220]
综上,本发明将会话中商品属性特征的序列关系融入会话推荐中。首先使用图神经网络对商品会话序列数据建模,挖掘商品间的转移关系;其次使用gru模型对商品属性序列建模,捕捉属性间转移关系;最后,将两个模型的输出的特征向量拼接并利用神经网络模型进行融合,再使用多头注意力机制在特征层进一步挖掘各个特征间相互关系,然后使用软注意力机制学习用户的长期偏好,并和短期偏好拼接后进行线性转换得到用户的最终特征向量,用以计算推荐商品的概率,完成推荐。本发明能够缓解会话数据稀疏性,通过将会话中商品的属性序列特征关系融入商品会话序列中,使模型能挖掘到更精准的用户偏好,
提高推荐系统的关键性能。
[0221]
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1