本发明涉及产品推荐,尤其是指一种基于跨模态校正的多模态产品推荐方法。
背景技术:
1、推荐系统在许多领域逐渐成为不可或缺的工具,其主要通过挖掘用户和产品的二元关系以进行推荐,而多模态推荐(multi-modal recommendation)借助多模态信息(如图像和文字)的优势,正在成为推荐系统的新趋势。研究表明,利用产品的多模态信息比使用产品的单一模态的模型具有更好的推荐能力。
2、早期的多模态推荐系统往往基于深度学习,例如,贝叶斯排名vbpr通过预训练的卷积神经网络提取产品的视觉特征,并将视觉特征加入到产品特征表示,同时利用用户的历史行为数据了解用户的偏好以进行推荐。最近,随着图卷积网络在推荐系统领域兴起,大部分工作开始基于图卷积网络进行研究,mmgcn对产品的多模态信息进行建模和表示学习,从而得到产品的多模态表示,再结合用户的历史行为数据对用户进行产品推荐;dualgnn利用用户产品关系图中用户和产品的交互关系提取用户特征表示和产品特征表示,考虑了用户和产品的交互关系,从而为用户进行更准确的产品推荐。但是,现有方法大多忽略了用户对于产品不同模态的偏好对产品推荐结果的影响,例如,用户a购买产品b是由于该用户被产品b的图片信息吸引,而用户a购买产品c是由于该用户被产品c的文字信息吸引;并且,现有方法在提取产品特征时,对产品的不同模态信息单独处理,忽略了不同模态信息之间的相关性,使得提取的产品特征信息并不准确,从而降低了产品推荐结果的准确性。
3、综上所述,现有的多模态产品推荐方法在提取产品特征时忽略了不同模态信息之间的相关性,导致提取的产品特征并不准确,并且,在为用户进行产品推荐时未考虑用户对于产品的不同模态信息的偏好,从而无法为用户提供更加准确和个性化的产品推荐。
技术实现思路
1、为此,本发明所要解决的技术问题在于克服现有技术中在提取产品特征时忽略了不同模态信息之间的相关性,导致提取的产品特征并不准确,并且,在为用户进行产品推荐时未考虑用户对于产品的不同模态信息的偏好,从而无法为用户提供更加准确和个性化的产品推荐的问题。
2、为解决上述技术问题,本发明提供了一种基于跨模态校正的多模态产品推荐方法,包括:
3、获取包含多个产品的文本信息、图片信息和产品id向量的产品数据集,基于所述产品数据集构建产品关系图;获取包含多个用户的历史交互数据和用户id向量的用户数据集,并基于所述产品数据集和所述用户数据集构建产品用户关系图;
4、将所述产品数据集中每个产品的产品id向量、图片信息和文本信息输入至训练好的多模态产品推荐模型中的跨模态校正模块,输出各个产品的目标图片特征向量和目标文本特征向量,基于每个产品的目标图片特征向量和目标文本特征向量得到各个产品的模态特征向量;
5、将各个产品的模态特征向量和所述产品关系图输入至训练好的多模态产品推荐模型中的视图编码器模块,输出各个产品的目标模态特征向量;将所述产品用户关系图输入至所述视图编码器模块,输出各个产品的产品特征表示和各个用户的用户特征表示;
6、利用训练好的多模态产品推荐模型中的自适应偏好模块分别提取每个用户的用户id向量的用户行为特征向量和每个产品的目标模态特征向量的共享模态特征向量;将每个用户的行为特征向量、每个产品的共享模态特征向量和每个产品的目标模态特征向量输入至所述自适应偏好模块,输出每个用户对每个产品的模态偏好特征表示;
7、基于每个产品的产品特征表示和模态偏好特征表示得到各个产品的产品目标特征表示,基于每个用户的用户特征表示和模态偏好特征表示得到各个用户的用户目标特征表示,基于所述用户目标特征表示和所述产品目标特征表示计算用户与产品之间的偏好分数,以便基于所述偏好分数对用户进行产品推荐。
8、在本发明的一个实施例中,将所述产品数据集中每个产品的产品id向量、图片信息和文本信息输入至训练好的多模态产品推荐模型中的跨模态校正模块,输出各个产品的目标图片特征向量和目标文本特征向量,基于每个产品的目标特征向量和目标文本特征向量得到各个产品的模态特征向量包括:
9、利用所述跨模态校正模块中的mlp神经网络分别对每个产品的图片信息和文本信息进行特征提取,输出各个产品的高阶图片特征向量和高阶文本特征向量;
10、利用每个产品的产品id向量对每个产品的高阶文本特征向量进行校正,得到各个产品的目标文本特征向量,利用每个产品的目标文本特征向量对每个产品的高阶图片特征向量进行校正,得到各个产品的目标图片特征向量;
11、将每个产品的目标文本特征向量和目标图片特征向量组合得到各个产品的模态特征向量。
12、在本发明的一个实施例中,各个产品的高阶图片特征向量为:
13、ei′,v=w1ei,v+b1,
14、其中,ei′,v表示第i个产品的高阶图片特征向量,w1为第一权重矩阵,b1为第一偏置矩阵,ei,v表示第i个产品的图片信息;
15、各个产品的高阶文本特征向量为:
16、ei′,t=w1ei,t+b1,
17、其中,ei′,t表示第i个产品的高阶文本特征向量,ei,t表示第i个产品的文本信息;
18、各个产品的目标文本特征向量为:
19、ei′,′t=gatet(ei,id,ei′,t)=ei,id⊙σ(w2ei′,t+b2),
20、其中,ei′,′t表示第i个产品的目标文本特征向量,ei,id表示第i个产品的产品id向量,⊙表示元素乘积,σ为sigmoid非线性激活函数,w2为第二权重矩阵,b2为第二偏置矩阵;
21、各个产品的目标图片特征向量为:
22、ei′,′v=gatev(ei′,′t,ei′,v)=ei′,′t⊙σ(w3ei′,v+b3),
23、其中,ei′,′v表示第i个产品的目标图片特征向量,⊙表示元素乘积,σ为sigmoid非线性激活函数,w3为第三权重矩阵,b3为第三偏置矩阵。
24、在本发明的一个实施例中,将各个产品的模态特征向量和所述产品关系图输入至训练好的多模态产品推荐模型中的视图编码器模块,输出各个产品的目标模态特征向量包括:
25、计算所述产品关系图中每个产品与相邻产品的相似度,并对所述产品关系图进行knn稀疏化,基于稀疏化后每个产品与相邻产品的相似度得到产品关系图的相似度矩阵;
26、基于所述相似度矩阵和每个产品的模态特征向量得到各个产品的产品模态特征向量,并基于各个产品的产品模态特征向量计算得到用户的模态偏好特征向量;
27、将每个产品的产品模态特征向量和用户的模态偏好特征向量进行拼接得到各个产品的目标模态特征向量。
28、在本发明的一个实施例中,产品关系图中每个产品与相邻产品的相似度的计算公式为:
29、
30、其中,表示产品关系图中第i个产品与相邻产品的相似度,i′表示产品关系图中与第i个产品相邻的产品,ei′,′m表示第i个产品的模态特征向量,ei″′,m表示第i′个产品的模态特征向量,t表示矩阵的转置;
31、各个产品的产品模态特征向量的计算公式为:
32、
33、其中,表示第i个产品的产品模态特征向量,s′m表示产品关系图在模态m下的相似度矩阵;
34、用户的模态偏好特征向量的计算公式为:
35、
36、其中,表示第u个用户的模态偏好特征向量,表示用户u交互过的产品集合,表示与产品i交互过的用户集合。
37、在本发明的一个实施例中,将所述产品用户关系图输入至所述视图编码器模块,输出各个产品的产品特征表示和各个用户的用户特征表示包括:
38、基于度敏感概率修剪策略计算所述产品用户关系图中每条连接线被修剪的概率,基于每条连接线被修剪的概率和预设修剪比例对所述产品用户关系图进行修剪,基于修剪后的产品用户关系图构建对称邻接矩阵;
39、利用所述视图编码器模块对所述对称邻接矩阵进行图卷积,输出各个产品的产品特征表示和各个用户的用户特征表示;
40、其中,产品用户关系图中每条连接线被修剪的概率的计算公式为:
41、
42、其中,pk表示产品用户关系图中第k条连接线被修剪的概率,wa表示节点a在产品用户关系图中的度,wb表示节点b在产品用户关系图中的度,节点a和节点b为第k条连接线的两个节点;
43、所述各个产品的产品特征表示为:
44、
45、其中,ei,id表示第i个产品的产品特征表示,l表示图卷积运算的层数,表示第l层图卷积运算的输出;
46、
47、其中,表示用户u交互过的产品集合,表示与产品i交互过的用户集合,表示第l-1层图卷积运算输出的第u个用户的用户特征表示;
48、各个用户的用户特征表示为:
49、
50、其中,eu,id表示第u个用户的用户特征表示,表示第l层图卷积运算的输出;
51、
52、其中,表示第l-1层图卷积运算输出的第i个产品的产品特征表示。
53、在本发明的一个实施例中,利用训练好的多模态产品推荐模型中的自适应偏好模块分别提取每个用户的用户id向量的用户行为特征向量和每个产品的目标模态特征向量的共享模态特征向量;并将每个用户的行为特征向量、每个产品的共享模态特征向量和每个产品的目标模态特征向量输入至所述自适应偏好模块,输出每个用户对每个产品的模态偏好特征表示包括:
54、利用所述自适应偏好模块中的特征提取子模块提取每个用户的用户id向量的行为特征向量;
55、利用所述自适应偏好模块中的注意力子模块提取每个产品的目标模态特征向量的共享模态特征向量;
56、将每个用户的行为特征向量、每个产品的共享模态特征向量和每个产品的目标模态特征向量输入至所述自适应偏好模块中的特征融合子模块,输出每个用户对每个产品的模态偏好特征表示。
57、在本发明的一个实施例中,各个用户的行为特征向量为:
58、pu,m=σ(w4eu,id+b4),
59、其中,pu,m表示第u个用户的行为特征向量,σ为sigmoid非线性激活函数,w4为第四权重矩阵,eu,id表示第u个用户的用户id向量,b4为第四偏置矩阵;
60、各个产品的共享模态特征向量为:
61、
62、其中,ei,s表示第i个产品的共享模态特征向量,m表示模态集合,αi,m表示第i个产品的目标模态特征向量的注意力分数,表示第i个产品的目标模态特征向量;
63、
64、其中,w5为第五权重矩阵,b5为第五偏置矩阵,q1为注意力向量,softmax和tanh为非线性激活函数;
65、每个用户对每个产品的模态偏好特征表示为:
66、
67、其中,ef表示包含第u个用户对第i个产品的模态偏好特征表示,⊙表示元素乘积。
68、在本发明的一个实施例中,各个产品的产品目标特征表示为:
69、ei=ei,f+ei,id,
70、其中,ei表示第i个产品的产品目标特征表示,ei,id表示第i个产品的产品特征表示,ei,f表示模态偏好特征表示中第i个产品的产品表示;
71、各个用户的用户目标特征表示为:
72、eu=eu,f+eu,id,
73、其中,eu表示第u个用户的用户目标特征表示,eu,id表示第u个用户的用户特征表示,eu,f表示模态偏好特征表示中第u个用户的用户表示;
74、用户与产品之间的偏好分数的计算公式为:
75、
76、其中,表示第u个用户对第i个产品的偏好分数,t表示矩阵的转置。
77、在本发明的一个实施例中,多模态产品推荐模型的训练过程包括:
78、基于训练集中的产品数据集和用户数据集构建多个包含正样本和负样本的三元组将多个三元组输入至多模态产品推荐模型中进行迭代训练,直到产品推荐损失函数最小,得到训练好的多模态产品推荐模型;
79、其中,所述三元组u表示用户数据集中第u个用户,i表示产品数据集中用户u点击过的第i个产品,j表示产品数据集中用户u未点击过的第j个产品;
80、所述产品推荐损失函数为:
81、
82、其中,表示产品推荐损失函数,‖θ‖2表示l2正则化,表示bpr损失函数,表示自监督任务损失函数,λc为第一超参数,λreg为第二超参数;
83、bpr损失函数为:
84、
85、其中,表示第u个用户对第i个产品的偏好分数,表示第u个用户对第j个产品的偏好分数;
86、自监督任务损失函数为:
87、
88、其中,u表示用户数据集,i表示产品数据集,eu,id表示用户数据集中第u个用户的第一特征表示,eu,f表示用户数据集中第u个用户的第二特征表示,τ表示softmax函数的温度超参数,ei,id表示产品数据集中第i个产品的第一特征表示,ei,f表示产品数据集中第i个产品的第二特征表示。
89、本发明提供的基于跨模态校正的多模态产品推荐方法利用跨模态校正模块对产品的文本信息和图片信息进行校正,挖掘不同模态信息之间的相关性,使得提取的不同模态特征尽可能一致,提高了产品特征提取的准确性;通过视图编码器对产品关系图进行图卷积,基于视图编码器的输出和校正后的产品模态特征进一步提取产品的模态特征,同时,通过视图编码器对产品用户关系图进行图卷积,提取包含用户产品关系的产品特征表示和用户特征表示;之后通过自适应偏好模块分别提取用户的行为特征和产品的共享模态特征,基于用户的行为特征、产品的共享模态特征和模态特征得到包含用户对产品的模态偏好特征表示,基于产品特征表示和模态偏好特征表示得到产品目标特征表示,基于用户特征表示和模态偏好特征表示得到用户目标特征表示,最后通过用户目标特征表示和产品目标特征表示计算用户和产品之间的偏好分数,以便对用户进行产品推荐。本技术不仅考虑了产品不同模态信息之间的相关性,提高了产品特征提取的准确性,还通过提取用户对产品的模态特征偏好特征充分考虑了用户对于产品的模态信息偏好,提高了产品推荐结果的准确性。