1.一种融合时间信息的自注意力序列推荐方法,其特征在于,包括步骤:S1、构建融合时间信息的自注意力序列推荐模型,具体为:
S11、对用户的历史交互序列进行数据扩充,其中,所述历史交互序列包括商品序列(i1,i2,......in),及其对应的时间戳序列(t1,t2,......tn),使用所述商品序列和时间戳序列的包含首项的连续子序列进行数据扩充,得到扩展后的用户的历史交互序列;
S12、对扩展后的用户的历史交互序列中的每条商品序列,根据对应的时间戳序列计算每个商品与最后一个商品的时间间隔,记作(t1n,t2n,t3n,......,t(n‑1)n,tnn),该序列作为相应商品序列中所包含对应的时间间隔信息,其中,t1n表示输入序列第一个元素与第n个元素的时间戳间隔差;
S13、利用嵌入层,将所述商品序列和所述时间间隔信息转变为同一维度的嵌入向量,在嵌入向量的最后添加一个虚拟元素,并进行编码表示,得到所述商品序列的嵌入表示E=(e1,e2,......,en,ea)和所述时间间隔信息的嵌入表示P=(p1,p2,......,pn,pa),其中,a为虚拟商品的下标;
S14、连接所述商品序列的嵌入与所述时间间隔信息的嵌入,生成商品新的嵌入表示Xd=(x1,x2,......,xn,xa),其中xi=Concat(ei,pi),Concat()表示连接操作,xi∈R;
S15、对所述商品新的嵌入表示X输入至由多个自注意力块连接组成的多重自注意力模块中,经过最后一个自注意块后,得到输出序列(h1,h2,......,hn,ha),其中,hi表示以第i个商品为中心,Δt为半径的时段内该用户的兴趣表示,i=1,...,n,ha为用以保存聚合信息的虚拟商品嵌入;
在每个所述自注意力块中,包括如下步骤:
(1)对所述商品新的嵌入表示X进行自注意力的计算,具体为:
首先,根据X计算Q、K、V三个向量,将X映射到query、key、value三个空间:Q
Q=XW
K
K=XW
V
V=XW
Q K V d×d
其中,W ,W ,W ∈R 是可学习的参数,其中,R是一个表示维度的符号,上标d×d表示参数矩阵的第一个维度是d,第二个维度也是d;
其次,使用Q、K、V进行有限制的自注意力计算:
其中,S表示局部自注意力的输出,d表示嵌入向量的维度;Attention()表示局部自注意力操作,SA()是Attention()操作的别名;Softmax()是一个映射函数,将一个向量映射成一个概率分布向量,且各概率和为1,就是归一化指数函数;d为嵌入向量的维度;
进行自注意力计算的过程中,在Qi和Kj进行计算时,将对应时间戳ti和tj的间隔限制在一定时间范围内,即|ti‑tj|≤Δt,Δt为可学习的参数,其中,Qi表示query空间下的目标结点,Kj表示key空间下的邻居结点;
(2)将自注意力操作后得到的S通过两层point‑wise前反馈网络:
1 1 2 2
F1=FFN(S)=RELU(SW+b)W+b
1 1 2 2
F2=FFN(F1)=RELU(F1W+b)W+b
1 2 d×d 1 2 d
其中,W ,W∈R ,b ,b∈R均为可学习的参数;FFN()表示以RELU()作为激活函数的全连接层;S表示自注意力的输出,F1表示第一层前反馈网络的输出,F2表示第二层前反馈网络的输出;
(3)在所述自注意块中的自注意力层和前反馈层加入Layer Normalization、残差连接和Dropout操作,具体如下所示:G(X)=X+Dropout(G(LayerNorm(X)))其中,G泛指表示自注意力操作或者前反馈层的操作,X表示进行某一操作时的输入;
LayerNorm()表示层归一化操作,加在输入操作之前,加速模型学习;Dropout()操作在训练过程中以一定的概率的使神经元失活,加在输出操作之前,防止过拟合;⊙表示内积;μ和2
σ表示X的均值和方差;α和β表示表示比例因子和偏差项,是可训练的参数;∈是常量;
步骤S15具体包括:将所述商品新的嵌入表示X输入至第一个自注意力块,得到第一输出结果,将所述第一输出结果输入至第二个自注意力块进行计算,直至最后一个自注意力块计算完成,所述最后一个自注意力块的输出结果即为所述多重自注意力模块的输出序列,具体如下所示:(b)
其中,b代表第b个自注意块,共有L个自注意块,L为超参数;S 表示第b个自注意块中自注意力的输出, 表示第b个自注意块中第一层前反馈网络的输出, 表示第b个自注意块中第二层前反馈网络的输出;第一个自注意块的输入为X=(x1,x2,......,xn,xa),最后一个自注意块的输出记为(h1,h2,......,hn,ha);自注意块中第二层前反馈网络的输出将会作为下一个自注意块的输入;
S16、将所述输出序列进行带注意力的聚合,得到用户的最终兴趣表示h,具体步骤包括:计算对应的权重并聚合表示:其中,hi表示以第i个商品为中心,Δt为半径的时段内该用户的兴趣表示;αi表示hi对应的权重;对所有hi进行带权重的聚合,作为最终兴趣表示,记为h;
S17、将聚合后的所述最终兴趣表示h与候选商品的嵌入矩阵作内积,得到候选商品被交互的概率,根据所述概率来生成推荐结果,具体为:其中,M代表候选商品的嵌入矩阵,代表候选商品被交互的概率;
S2、利用获取的数据集中用户的历史交互序列,对所述融合时间信息的自注意力序列推荐模型进行训练,得到训练好的融合时间信息的自注意力序列推荐模型;
S3、获取待推荐用户的历史交互序列,并将所述待推荐用户的历史交互序列输入至所述训练好的融合时间信息的自注意力序列推荐模型中,获得目标推荐商品,并将所述目标推荐商品推荐给用户。
2.根据权利要求1所述的方法,其特征在于,步骤S11中,所述使用所述商品序列和时间戳序列的包含首项的连续子序列进行数据扩充,具体包括:对于所述商品序列(i1,i2,......in),其包含首项的连续子序列有(i1,i2),(i1,i2,i3),(i1,i2,i3,i4),……,(i1,i2,......in‑1);对于时间戳序列(t1,t2,......tn),其包含首项的连续子序列为(t1,t2),(t1,t2,t3),(t1,t2,t3,t4),……,(t1,t2,......tn‑1)。
3.根据权利要求1所述的方法,其特征在于,步骤S2中,根据推荐结果使用交叉熵作为损失函数来对所述融合时间信息的自注意力序列推荐模型进行训练,所述损失函数为:其中,m表示候选商品总数。
4.一种融合时间信息的自注意力序列推荐系统,其特征在于,所述商品推荐系统执行如权利要求1所述的融合时间信息的自注意力序列推荐方法,包括:序列推荐模型构建模块、序列推荐模型训练模块、商品推荐模块;
所述序列推荐模型构建模块,构建融合时间信息的自注意力序列推荐模型;
所述序列推荐模型训练模块,利用获取的数据集中用户的历史交互序列,对所述融合时间信息的自注意力序列推荐模型进行训练,得到训练好的融合时间信息的自注意力序列推荐模型;
所述商品推荐模块,获取待推荐用户的历史交互序列,并将所述待推荐用户的历史交互序列输入至所述训练好的融合时间信息的自注意力序列推荐模型中,获得目标推荐商品,并将所述目标推荐商品推荐给用户。
5.一种计算机设备,其特征在于,所述设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的方法。