1.本发明涉及个性化推荐的技术领域,尤其是指一种面向物品多指标评分数据的推荐方法。
背景技术:
2.随着信息技术的快速发展,互联网技术给人们带来巨大便利的同时,互联网中的海量数据也给人们带来了信息过载问题。个性化推荐技术能够挖掘用户的兴趣从而推荐适量用户可能感兴趣的物品来缓解信息过载问题。当前大多数推荐方法仅使用用户对物品的单个评分来生成推荐列表,然而很多在线平台包括用户对物品多个指标(例如饭店的口味、服务、性价比等)的评分,这些多指标评分数据本质上也是监督标签,能反映用户对物品不同方面的兴趣,从而提升推荐效果。为了充分利用用户对物品多个指标评分数据这个辅助信息来实现更加精准的推荐,本文提出了一种面向物品多指标评分数据的推荐方法。
技术实现要素:
3.本发明的目的在于克服现有技术的缺点与不足,提出了一种面向物品多指标评分数据的推荐方法,能够高效利用用户对物品多个指标的评分数据,在包含物品多个指标评分数据的场景中实现精准的推荐。
4.为实现上述目的,本发明所提供的技术方案为:一种面向物品多指标评分数据的推荐方法,包括以下步骤:
5.1)将用户对物品多个指标的原始评分数据,使用字典映射的方式进行数据预处理;
6.2)初始化所有用户物品的特征向量,并根据预处理后的评分数据构造用户物品评分矩阵;其中用户物品的特征向量是指用一个预设的固定维数的向量表示特定的用户或物品;
7.3)使用用户物品的特征向量和用户物品多指标评分信息来计算用户对物品多个指标的预测评分,作为中间结果;使用用户对物品多个指标的预测评分和用户物品评分矩阵计算用户对物品的总预测评分;其中用户物品多指标评分信息是指用户对物品在多个指标下的评分信息;
8.4)根据用户对物品的总预测评分生成推荐列表。
9.进一步,在步骤1)中,所述用户对物品多个指标的原始评分数据包括所有用户id、物品id、用户对物品的总评分和用户对物品各个指标的评分,单个用户对单个物品的评分数据表示为(u
id
,v
id
,r0,r1,r2,...,rk),其中u
id
表示用户id,v
id
表示物品id,r0表示用户对物品的总体评分,rk表示用户对物品第k个指标的评分,k的取值范围为1到k,k表示物品评分指标个数;使用字典映射的方式进行数据预处理是指把原始评分数据中的用户id和物品id通过字典的方式进行一一映射,把所有用户id和物品id分别映射到0到m-1和0到n-1范围内,表示总共有m个用户和n个物品,从0开始计数,m-1表示第m-1个用户,n-1表示第n-1个物
品。
10.进一步,在步骤2)中,所述初始化所有用户物品的特征向量,并根据预处理后的评分数据构造用户物品评分矩阵是指对由所有用户物品的特征向量组成的矩阵进行初始化,同时根据步骤1)预处理后的评分数据构造用户物品评分矩阵,具体过程如下:
11.初始化所有用户物品的特征向量,具体过程为:所有用户物品的初始特征向量表示为e
(0)
,其大小为r
(m n)
×d,r
(m n)
×d表示(m n)行d列的实数矩阵,其中,d为预设的特征向量维数,m表示用户总数,n表示物品总数,并通过高斯随机初始化的方式对e
(0)
进行初始化赋值;
12.根据预处理后的评分数据构造用户物品评分矩阵,具体过程为:用户物品评分矩阵表示为g,g的大小为rm×n,rm×n表示m行n列的实数矩阵,矩阵g中的元素g
ui
=r0表示评分数据中有用户u对物品i的评分,否则g
ui
=0,其中u表示第u个用户,其取值范围为0到m-1,i表示第i个物品,其取值范围为0到n-1,r0表示用户对物品的总评分。
13.进一步,在步骤3)中,使用用户物品的特征向量和用户物品多指标评分信息来计算用户对物品多个指标的预测评分,作为中间结果的过程是:首先基于用户物品评分矩阵构造用户物品二部图邻接矩阵,然后将用户物品的特征向量输入到多层图卷积神经网络和单层全连接神经网络来计算用户对物品多个指标的预测评分;
14.使用用户对物品多个指标的预测评分和用户物品评分矩阵计算用户对物品的总预测评分的过程是:将用户对物品多个指标的预测评分输入到单层全连接神经网络来计算用户对物品的总预测评分,具体如下:
15.3.1)基于用户物品评分矩阵构造用户物品二部图邻接矩阵,具体过程为:用户物品二部图邻接矩阵表示为a,a的计算公式为:
[0016][0017]
式中,g表示用户物品评分矩阵,g
t
表示g的转置矩阵,0表示全0矩阵,a为(m n)行(m n)列的方阵,其中m表示用户总数,n表示物品总数;
[0018]
3.2)使用l层图卷积神经网络和单层全连接神经网络来计算用户对物品多个指标的预测评分,具体过程为:图卷积神经网络层数表示为l,e
(l)
表示第l层所有用户物品的特征向量,其中l取值范围为0到l-1,e
(l 1)
表示第l 1层所有用户物品的特征向量,e
(l 1)
的计算公式为:
[0019][0020]
式中,为a添加自连接后的邻接矩阵,为对角矩阵,其每个对角项等于矩阵中每个行向量中的非0项的个数,也被称为的度矩阵,其中j取值范围为0到(m n-1);w
(l)
为第l层的特征变换矩阵,f(
·
)表示leakyrelu函数;
[0021]
从图卷积神经网络最后一层的输出e
(l)
获取用户u的特征向量eu和物品i的特征向量ei后,将eu和ei进行元素积计算,再输入到单层全连接神经网络来计算用户对物品多个指标的预测评分的计算公式如下:
[0022]
[0023]
式中,(eu⊙ei
)表示eu和ei进行元素积计算,w
l
和b
l
分别为全连接神经网络的权重参数和偏置参数,w
l
的大小为d
l
×
k,其中d
l
为w
l
的输入维度大小,其大小和用户特征向量eu的维度相同,k为w
l
的输出维度大小,其大小和物品评分指标个数相同;
[0024]
3.3)将步骤3.2)的输出即用户对物品多个指标的预测评分输入到单层全连接神经网络来计算用户对物品的总预测评分,具体过程为:将用户对物品多个指标的预测评分输入到单层全连接神经网络,计算用户对物品的总预测评分其公式表达为:
[0025][0026]
式中,w
t
和b
ti
分别为全连接神经网络的权重参数和偏置参数,其中w
t
是共享参数,b
ti
是物品特殊的偏置参数,即每个物品都有一个特定的预测偏置;σ(
·
)表示sigmoid函数;
[0027]
3.4)使用贝叶斯个性化排序损失作为损失函数,损失函数由三部分组成,第一部分是以用户对物品多指标的评分数据作为监督信号的约束损失;第二部分是以用户对物品总评分作为监督信号的约束损失;第三部分是参数的l2正则化因子,防止模型的参数膨胀;使用adam算法来迭代优化用户物品的初始特征向量e
(0)
和步骤3.2)、步骤3.3)的图卷积神经网络和全连接神经网络的模型参数,其表达公式为:
[0028][0029][0030]
loss3=λ||θ||2=λ(||e
(0)
||2 ||w
l
||2 ||w
t
||2)
[0031]
loss=loss1 loss2 loss3
[0032]
式中,s表示训练集,其中s
表示训练集中的正样本,即用户实际交互过的物品;s-表示负样本,即从用户未交互过的物品中随机抽取出来的样本;loss1表示步骤3.2)输出的用户对正样本多个指标的预测评分和对负样本多个指标的预测评分的对数损失;loss2表示步骤3.3)输出的用户对正样本的总预测评分和对负样本的总预测评分的对数损失;loss3表示对模型参数θ的l2约束,θ包括初始特征向量e
(0)
以及步骤3.2)、步骤3.3)的全连接神经网络的模型参数w
l
和w
t
;λ表示惩罚因子,用于控制参数正则化的强度;loss表示总损失。
[0033]
进一步,在步骤4)中,根据用户对物品的总预测评分生成推荐列表,具体过程为:将用户对物品的总预测评分按照从大到小进行排序,然后选取前m个物品生成推荐列表,其中m表示预先设置好的推荐列表的大小。
[0034]
本发明与现有技术相比,具有如下优点与有益效果:
[0035]
1、本发明为了充分利用用户对物品多个指标的评分数据,使用可建模用户物品高阶邻居信息的图卷积网络来拟合用户对物品多个指标的评分,并对物品多个指标评分和总评分之间的非线性关系进行建模,从而预测用户对物品的总评分来生成推荐;同时,为了能利用用户物品二部图中高阶邻居的协同信号,使用多层图卷积神经网络来聚集用户与物品节点的邻居信息,从而学习更优的用户物品特征向量。通过以上方法,本发明能够在包含物品多指标评分数据场景中将多指标评分数据整合为监督信号,实现精准的推荐。
[0036]
2、本发明方法在推荐系统领域具有广泛的应用空间,适用性强,可以应用到不同平台的推荐系统中,如酒店推荐、饭店推荐、电影推荐和商品推荐等包括物品多个评分指标的场景。
附图说明
[0037]
图1为本发明所使用的神经网络模型结构示意图之一。
[0038]
图2为本发明所使用的神经网络模型结构示意图之二。
具体实施方式
[0039]
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0040]
本实施例以饭店推荐场景为例,即物品具体指代为饭店,公开了一种面向物品多指标评分数据的推荐方法,其具体情况如下:
[0041]
1)将用户对饭店多个指标的原始评分数据,进行数据预处理。具体过程为:将用户对饭店多个指标的原始评分数据,通过字典映射的方式进行数据预处理;用户对饭店多个指标的原始评分数据包括所有用户id、饭店id、用户对饭店的总评分和用户对饭店各个指标的评分,单个用户对单个饭店的评分数据可以表示为(u
id
,v
id
,r0,r1,r2,...,rk),其中u
id
表示用户id,v
id
表示饭店id,r0表示用户对饭店的总体评分,rk表示用户对饭店第k个指标的评分,k的取值范围为1到k,k表示饭店评分指标个数,这里设置k=4表示原始评分数据包括饭店口味、装修风格、服务和性价比四个方面的评分;通过字典映射的方式进行数据预处理是指把原始评分数据中的用户id和饭店id通过字典的方式进行一一映射,把所有用户id和饭店id分别映射到0到m-1和0到n-1范围内,表示总共有m个用户和n个饭店,从0开始计数,m-1表示第m-1个用户,n-1表示第n-1个饭店。
[0042]
2)初始化所有用户和饭店的特征向量,并根据预处理后的评分数据构造用户饭店评分矩阵。具体过程为:使用高斯随机初始化对所有用户和饭店的特征向量组成的特征矩阵进行初始化,同时根据步骤1)预处理后的评分数据来构造用户饭店评分矩阵。具体包括如下步骤:
[0043]
初始化所有用户饭店的特征向量,具体过程为:用户与饭店的初始特征向量表示为e
(0)
,其大小为r
(m n)
×d,r
(m n)
×d表示(m n)行d列的实数矩阵,其中,d为预设的特征向量维数,m表示用户总数,n表示饭店总数,并通过高斯随机初始化的方式对e
(0)
进行初始化赋值;
[0044]
根据预处理后的评分数据来构造用户饭店评分矩阵,具体过程为:用户与饭店的评分矩阵表示为g,g的大小为rm×n,rm×n表示m行n列的实数矩阵,矩阵g中的元素g
ui
=r0表示评分数据中有用户u对饭店i的评分,否则g
ui
=0,其中u表示第u个用户,其取值范围为0到m-1,i表示第i个饭店,其取值范围为0到n-1,r0表示用户对物品的总评分。
[0045]
3)采用如图1所示的神经网络结构进行评分预测,如图1所示,使用用户饭店的特征向量和用户对饭店多指标评分信息来计算用户对饭店的多个指标的预测评分,作为中间结果;然后使用用户对饭店的多个指标的预测评分和用户饭店评分矩阵计算用户对饭店的总预测评分。具体过程为:首先基于用户饭店评分矩阵构造用户饭店的二部图邻接矩阵,然后将用户饭店的特征向量输入到多层图卷积神经网络(图1将图卷积网络的层数指定为2)
和单层全连接神经网络来计算用户对饭店多个指标的预测评分,此处使用多个指标的评分作为监督信号对网络进行约束;然后再将用户对饭店多个指标的预测评分输入到单层全连接神经网络计算用户对饭店的总预测评分,具体过程如下:
[0046]
3.1)基于用户饭店评分矩阵构造用户饭店二部图邻接矩阵,具体过程为:用户饭店二部图邻接矩阵表示为a,a的计算公式为:
[0047][0048]
式中,g表示用户与饭店的评分矩阵,g
t
表示g的转置矩阵,0表示全0矩阵,a为(m n)行(m n)列的方阵,其中m表示用户总数,n表示饭店总数;
[0049]
3.2)使用l层图卷积神经网络和单层全连接神经网络来计算用户对饭店多个指标的预测评分,如图1所示,此时l=2,具体过程为:图卷积神经网络层数表示为2,e
(l)
表示第l层所有用户饭店的特征向量,其中l取值范围为0到1,e
(l 1)
表示第l 1层所有用户饭店的特征向量,e
(l 1)
的计算公式为:
[0050][0051]
式中,为a添加自连接后的邻接矩阵,为对角矩阵,其每个对角项等于矩阵中每个行向量中的非0项的个数,也被称为的度矩阵,其中j取值范围为0到(m n-1);w
(l)
为第l层的特征变换矩阵,f(
·
)表示leakyrelu函数;
[0052]
如图2所示,从图卷积神经网络最后一层的输出e
(l)
获取用户u的特征向量eu和饭店i的特征向量ei后,将eu和ei进行元素积计算,再输入到单层全连接神经网络中来计算用户对饭店多个指标的预测评分户对饭店多个指标的预测评分的计算公式如下:
[0053][0054]
式中,eu⊙ei
表示eu和ei进行元素积计算,w
l
和b
l
分别为全连接前馈神经网络的权重参数和偏置参数,w
l
的大小为d
l
×
k,其中d
l
为w
l
的输入维度大小,其大小和用户特征向量eu的维度相同,k=4为w
l
的输出维度大小,其大小和饭店评分指标个数相同;
[0055]
3.3)将步骤3.2)的输出即用户对饭店多个指标的预测评分输入到单层全连接神经网络来计算用户对物品的总预测评分,具体过程为:将用户对饭店多个指标的预测评分输入到单层全连接神经网络,计算用户对饭店的总预测评分其公式表达为:
[0056][0057]
式中,w
t
和b
ti
分别为全连接神经网络的权重参数和偏置参数,其中w
t
是共享参数,b
ti
是饭店特殊的偏置参数,即每个饭店都有一个特定的预测偏置;σ(
·
)表示sigmoid函数;
[0058]
3.4)使用贝叶斯个性化排序损失作为损失函数,损失函数由三部分组成,第一部分是以用户对饭店多指标评分数据作为监督信号的约束损失;第二部分是以用户对饭店总评分作为监督信号的约束损失;第三部分是参数的l2正则化因子,防止模型的参数膨胀;使用adam算法来迭代优化用户饭店的初始特征向量e
(0)
和步骤3.2)、步骤3.3)的图卷积神经网络和全连接神经网络的模型参数,其表达公式为:
[0059][0060][0061]
loss3=λ||θ||2=λ(||e
(0)
||2 ||w
l
||2 ||w
t
||2)
[0062]
loss=loss1 loss2 loss3
[0063]
式中,s表示训练集,其中s
表示训练集中的正样本,即用户实际消费过的饭店;s-表示负样本,即从用户未消费过的饭店中随机抽取出来的样本;loss1表示步骤3.2)输出的用户对正样本多个指标的预测评分和对负样本多个指标的预测评分的对数损失;loss2表示步骤3.3)输出的用户对正样本总预测评分和对负样本总预测评分的对数损失;loss3表示对模型参数θ的l2约束,θ包括初始特征向量e
(0)
以及步骤3.2)、步骤3.3)的全连接神经网络的模型参数w
l
和w
t
;λ表示惩罚因子,用于控制参数正则化的强度;loss表示总损失。
[0064]
4)根据用户对饭店的总体预测评分生成推荐列表。具体过程为:将用户对饭店的总体预测评分按照从大到小进行排序,然后选取前m个饭店生成推荐列表,其中m表示预先设置好的推荐列表的大小,例如我们希望每次给用户推荐5个饭店,那么m可以设置为5。
[0065]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-696.html