1.一种基于特征融合和扩散模型的序列推荐方法,其特征在于,包括步骤:S1、构建基于特征融合和扩散模型的序列推荐模型;
S2、利用数据集中用户的历史交互序列和对应的项目属性特征信息,对所述基于特征融合和扩散模型的序列推荐模型进行训练,得到训练好的基于特征融合和扩散模型的序列推荐模型;步骤S2具体包括如下:步骤S21,从数据集中获取用户的历史交互序列;
步骤S22,将所述历史交互序列输入至嵌入层,获得项目嵌入表示和用户嵌入表示,并构建用户‑项目的交互矩阵;
步骤S23,将所述项目嵌入表示、用户嵌入表示和所述用户‑项目的交互矩阵输入至图卷积网络,经过所述图卷积网络的消息传播和层信息融合操作,获得全局交互级别的用户嵌入表示;
步骤S24,基于所述历史交互序列中的项目id从数据集中获取对应的项目属性特征,并对每个项目属性特征进行编码和赋予位置信息后得到每个项目的属性特征嵌入;
步骤S25,将所述项目的属性特征嵌入输入至自注意力网络,获得属性特征转换级别的用户嵌入表示;
步骤S26,将所述全局交互级别的用户嵌入表示和所述属性特征转换级别的用户嵌入表示输入至多层感知机,得到融合全局交互和特征转换的用户嵌入表示;
步骤S27,随机采样一个时间步t,通过时间步t按照对应的比例将目标项目的嵌入表示与随机得到的高斯白噪声noise相加获得带有噪声的目标项目嵌入表示;
步骤S28,将所述融合全局交互和特征转换的用户嵌入表示、时间步长嵌入以及所述带有噪声的目标嵌入表示输入至去噪神经网络中获得重构后的用户嵌入表示;
步骤S29,将所述重构后的用户嵌入表示与所述目标项目的嵌入表示求均方误差损失通过梯度下降的方式更新去噪神经网络的参数和嵌入表中的嵌入表示,使均方误差损失减小,以得到最终更新后的重构后的用户嵌入表示;
S3、获取待推荐用户的历史交互序列和对应的项目属性特征信息,并将所述待推荐用户的历史交互序列和对应的项目属性特征信息输入至所述训练好的基于特征融合和扩散模型的序列推荐模型中,获得待推荐用户的用户嵌入表示;
S4、基于所述待推荐用户的用户嵌入表示与所有候选的项目嵌入求内积得到对应的预测分数,将所述预测分数进行排序,得到分数最高的top‑N个项目,生成推荐项目列表,并将所述推荐项目列表推荐给用户。
2.根据权利要求1所述的方法,其特征在于,步骤S21,从数据集中获取用户的历史交互序列,具体包括:获取用户u∈U的历史交互序列 其中每个x对应一个项目v,v∈V,用户集合U={u1,u2,...,uM},项目集合V={v1,v2,...,vN},M表示用户数量,N表示项目数量;
步骤S22具体包括:根据用户ID和项目的ID,构建嵌入维度为d的初始用户嵌入M
和项目嵌入 并构建用户‑项目的交互矩阵Y∈R
×N
,yuv=1表示用户u交互过项目v,yuv=0表示用户u未交互过项目v;
步骤S23,所述图卷积网络包括消息传播模块与层信息融合模块,其公式如下:消息传播模块:
层信息融合模块:
其中, 表示第k+1层的用户嵌入表示, 表示的k+1层的项目嵌入表示, 表示第k层与项目v有交互的用户u的嵌入表示, 表示第k层与用户u有交互的项目v的嵌入表示;Nv,Nu分别表示项目v和用户u的邻居集合,从交互矩阵Y中得到;K表示图卷积网络GCN的层数,αk为可学习的权重系数; 表示融合所有层的用户嵌入表示,是全局交互级别的用户嵌入。
3.根据权利要求1所述的方法,其特征在于,步骤S24,基于所述历史交互序列中的项目id从数据集中获取对应的项目属性特征,包括:将每条历史交互序列X=[x1,x2,..,x|X|]转换成固定长度为L的序列,如果长度大于L则进行裁剪,否则在序列左侧进行padding操作;
历史交互序列中的每个x表示一个项目id,其对应的项目包含多个属性特征,通过x获取对应项目的属性特征,将多个属性特征进行拼接构成项目属性特征T;
步骤S24中,对每个项目属性特征进行编码和赋予位置信息后得到每个项目的属性特征嵌入,具体包括:(1)单词嵌入编码,通过词嵌入表 将项目属性特征中的每个单词用嵌入表示,其中Vw是单词数量、d是嵌入的维度;
d
(2)单词位置编码,为每个单词赋予位置信息,B∈R;
L×d
(3)项目位置信息,为每个项目添加位置信息,通过嵌入表C∈R ,其中L表示序列的最大长度,d表示嵌入的维度;
(4)一个特征表示为Ew=LayerNorm(Aw+Bw+Cw),每个项目的属性特征嵌入为Ex=[Ew1,Ew2,...,EwL];其中,Aw是单词通过词向量表的嵌入表示,Bw是单词位置嵌入表示,Cw是项目位置嵌入表示,LayerNorm表示标准化,Ew是单词最终的嵌入表示;Ex表示项目x的属性特征嵌入表示,Ew1表示由项目x的属性组成的语句的第1个单词的特征表示,EwL表示由项目x的属性组成的语句的第L个单词的特征表示,L是语句中允许的最大的单词个数。
4.根据权利要求1所述的方法,其特征在于,步骤S25,将所述项目的属性特征嵌入输入至自注意力网络,获得属性特征转换级别的用户嵌入表示,具体包括:Q K V Q
(1)将所述项目的属性特征嵌入通过矩阵进行转换,Q=EW ,K=EW ,V=EW ,其中,W ,K V d×dW,W∈R 是可学习的参数;
(2)点积计算获得注意力分数,具体计算方式如下:
T
其中,E是每个单词的嵌入表示,K表示K的转置,softmax表示softmax激活函数, 是缩放因子,d是K的嵌入维度;
(3)通过前馈神经网络,
(1) 1 (2) 2
F=FFN(S)=ReLU(SW +b)W +b;
(1) (2) 1 2
其中,ReLU表示ReLU激活函数,W 、W 、b、b是神经网络中的可学习的参数;
为学习到更复杂的特征变换,堆叠多个自注意力操作,每个自注意力操作定义为:(b) (b‑1)
S =SA(F )
(b) (b)
F =FFN(S );
(b‑1)
其中,SA()是自注意力操作函数,FFN()是前馈神经网络,F 是b‑1层前馈神经网络(b) (b)的输出,F 是第b层前馈神经网络的输出,S 是第b层自注意力操作的输出;
自注意力网络的输出是一个L×d的矩阵,取矩阵的最后一列作为特征序列学习到的属性特征转换级别的用户嵌入表示
5.根据权利要求1所述的方法,其特征在于,步骤S26,将所述全局交互级别的用户嵌入表示和所述属性特征转换级别的用户嵌入表示输入至多层感知机,得到融合全局交互和特征转换的用户嵌入表示,具体包括:将所述全局交互级别的用户嵌入表示 和所述属性特征转换级别的用户嵌入表示进行拼接,再通过线性层得到融合全局交互和特征转换的用户嵌入表示eu,如下所示:eu是一个维度为d的嵌入;MLP()是一个多层感知机。
6.根据权利要求1所述的方法,其特征在于,步骤S27,随机采样一个时间步t,通过时间步t按照对应的比例将目标项目的嵌入表示ey与随机得到的高斯白噪声noise相加获得带有噪声的目标项目嵌入表示,具体包括:获取目标项目y对应的嵌入表示ey,令 并随机生成一个高斯白噪声noise,随机选取一个时间步t,时间步t的范围是[1,n],其中n是一个超参数;将时间步t作为索引从时间步长嵌入表,获得时间步t对应的嵌入et;并通过如下公式获得带有噪声的目标项目嵌入表示其中 αt=1‑βt,βt通过差异表β=[β1,β2,...,βT]获得; 表示初始的嵌入表示,即目标项目y对应的嵌入表示ey。
7.根据权利要求1所述的方法,其特征在于,步骤S28,将所述融合全局交互和特征转换的用户嵌入表示、时间步长嵌入以及所述带有噪声的目标嵌入表示输入至去噪神经网络中获得重构后的用户嵌入表示,具体步骤为:将所述融合全局交互和特征转换的用户嵌入表示eu、时间步长嵌入et以及所述带有噪声的目标嵌入表示 进行拼接后输入至去噪神经网络fθ中获得重构后的用户嵌入表示e′u,公式如下:其中,||是拼接操作,MLP()是一个多层感知机。
8.根据权利要求1所述的方法,其特征在于,步骤S29,将所述重构后的用户嵌入表示与所述目标项目的嵌入表示求均方误差损失 通过梯度下降的方式更新去噪神经网络的参数和嵌入表中的嵌入表示,使均方误差损失减小,以得到最终更新后的重构后的用户嵌入表示,具体包括:将所述重构后的用户嵌入表示e′u与所述目标项目的嵌入表示ey求均方误差损失 如下所示:通过梯度下降的方式,更新去噪神经网络的参数θ,使得 减小;为了防止过拟合需要加上L2正则损失;λ是权重系数,用于控制L2正则损失的大小。
9.根据权利要求1所述的方法,其特征在于,步骤S3,将所述待推荐用户的历史交互序列和对应的项目属性特征信息输入至所述训练好的基于特征融合和扩散模型的序列推荐模型中,获得待推荐用户的用户嵌入表示,包括:基于所述待推荐用户的历史交互序列和对应的项目属性特征信息,提取融合全局交互和特征转换的用户嵌入表示;
随机生成一个高斯白噪声noise,令 执行n步去噪操作,取t=[n,n‑1,...,
1],t对应的嵌入为et;每一步去噪的输入为前一步去噪操作的输出、et和获得的融合全局交互和特征转换的用户嵌入表示eu,其中第一步去噪操作的输入为noise,每一步去噪操作的过程如下:其中, αt=1‑βt,βt通过差异表β=[β1,β2,...,βT]获得;w用于控制引导信号的强度,从而改变重构后的用户嵌入差异,Φ是维度为d的空嵌入,用于填充维度;z是一个随机生成的高斯白噪声;
经过t次上述去噪操作后,获得经过t次降噪操作后的用户嵌入表示 最终获得重构后的用户嵌入表示 所述最终获得重构后的用户嵌入表示为待推荐用户的用户嵌入表示。
10.一种基于特征融合和扩散模型的序列推荐系统,其特征在于,所述序列推荐系统执行如权利要求1‑9任一项所述的基于特征融合和扩散模型的序列推荐方法,包括:序列推荐模型构建模块、序列推荐模型训练模块、用户嵌入表示获取模块、以及项目推荐模块;
序列推荐模型构建模块,构建基于特征融合和扩散模型的序列推荐模型;
序列推荐模型训练模块,利用数据集中用户的历史交互序列和对应的项目属性特征信息,对所述基于特征融合和扩散模型的序列推荐模型进行训练,得到训练好的基于特征融合和扩散模型的序列推荐模型;
用户嵌入表示获取模块,获取待推荐用户的历史交互序列和对应的项目属性特征信息,并将所述待推荐用户的历史交互序列和对应的项目属性特征信息输入至所述训练好的基于特征融合和扩散模型的序列推荐模型中,获得待推荐用户的用户嵌入表示;
项目推荐模块,基于所述待推荐用户的用户嵌入表示与所有候选的项目嵌入求内积得到对应的预测分数,将所述预测分数进行排序,得到分数最高的top‑N个项目,生成推荐项目列表,并将所述推荐项目列表推荐给用户。