CN109740655A - 基于矩阵分解及神经协同过滤的物品评分预测方法 - Google Patents
基于矩阵分解及神经协同过滤的物品评分预测方法 Download PDFInfo
- Publication number
- CN109740655A CN109740655A CN201811598908.1A CN201811598908A CN109740655A CN 109740655 A CN109740655 A CN 109740655A CN 201811598908 A CN201811598908 A CN 201811598908A CN 109740655 A CN109740655 A CN 109740655A
- Authority
- CN
- China
- Prior art keywords
- matrix
- article
- user
- training
- scoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于矩阵分解及神经协同过滤的物品评分预测方法,其步骤为:(1)构建用户‑物品评分矩阵;(2)对训练矩阵进行矩阵分解;(3)构建神经协同过滤网络;(4)对训练矩阵进行神经协同过滤;(5)提取神经协同过滤网络嵌入层的用户和物品特征;(6)构建最近邻居特征矩阵;(7)生成评分训练集与评分测试集;(8)训练全连接神经网络;(9)对评分测试集进行评分预测。本发明具有充分挖掘用户与物品信息,对物品的评分预测准确度高,可扩展性强的优点。
Description
技术领域
本发明属于计算机技术领域,更进一步涉及物品评分预测技术领域中的一种基于矩阵分解及神经协同过滤的物品评分预测方法。本发明可根据用户对物品的历史评分信息,利用基于模型的方法进行训练,获得用户对未评价过物品的评分预测。
背景技术
推荐系统是一种信息过滤系统,通过分析用户的历史行为数据及每个用户的特点,发现用户的兴趣爱好,并为用户推荐其感兴趣的物品。现如今,已存在的推荐方法有很多。其中协同过滤是应用最为广泛且最为成功的一种推荐方法。其中基于模型的推荐算法可以有效解决数据稀疏问题和可扩展性问题,因而是目前应用较为广泛的推荐算法,其主要思想是根据用户对物品评分及相关信息,建立模型进行训练,并预测用户对于未评价过物品的评分。因此,对于用户和物品相关信息的使用及模型的构建至关重要。其影响着用户对物品的评分预测准确性,进而影响着最终的推荐质量。
陕西科技大学在其申请的专利文献“基于矩阵分解协同过滤算法的图书推荐方法及系统”(申请号:201810260195.1,申请公布号:CN 108509573 A)中公开了一种基于矩阵分解协同过滤算法的图书推荐方法。该方法的实施步骤是:步骤1,将用户历史物品评分行为数据的训练集预处理为用户-物品评分矩阵;步骤2,将评分矩阵进行均值归一化处理;步骤3,对归一化处理后的用户-物品评分矩阵分解成用户的特征矩阵以及物品的特征矩阵乘积。步骤4,构造代价函数;步骤5,初始化特征矩阵,利用梯度下降最小化代价函数;步骤6,确定目标函数最优解之后,预测候选推荐物品的评分;步骤7,取评分较高的前k个物品推荐给用户。该方法存在的不足之处是,该方法仅利用了用户与物品之间的全局特征信息,导致用户与物品之间信息挖掘不充分,评分预测准确性差的问题。
Xiangnan He等人在其发表的论文“Neural Collaborative Filtering”(Proceedings of the 26th International Conference on World Wide Web,2017)中提出了一种基于神经协同过滤的推荐方法。该方法的实施步骤是:步骤1,将用户编号ID和物品编号ID通过二进制的独热编码转换为稀疏向量作为网络的输入特征;步骤2,通过全连接层映射稀疏表示到密集向量;步骤3,将获得的用户和物品嵌入层放入多层神经网络结构中进行训练;步骤4,利用随机梯度下降方法训练网络;步骤5,实现用户对未评价物品的评分预测,将评分较高的物品推荐给用户。该方法存在的不足之处是,该方法仅利用用户编号ID和物品编号ID信息,采用独热编码方式,导致在用户和物品数量较多时,网络输入较为稀疏,评分预测准确性差,可扩展性差的问题。
发明内容
本发明的目的在于针对上述现有技术存在的不足,提出一种基于矩阵分解及神经协同过滤的物品评分预测方法。
本发明实现上述目的的思路是:将用户-物品的训练矩阵通过矩阵分解方法,训练得到用户特征矩阵和物品特征矩阵;基于得到的用户特征矩阵,构建最近邻居特征矩阵;对训练矩阵进行神经协同过滤,并提取神经协同过滤网络嵌入层的用户特征和物品特征,将三种不同的用户和物品特征输入全连接神经网络,通过训练全连接神经网络,输出用户对未评价物品的评分预测。
为了实现上述目的,本发明的具体实现步骤如下:
(1)构建用户-物品评分矩阵:
(1a)从用户-物品的评分数据集中,分别提取每个评分对应的用户编号ID与物品编号ID,组成用户对物品的评分矩阵,其中评分矩阵的行为用户编号ID,评分矩阵的列为物品编号ID,评分矩阵的行数为用户的总数,评分矩阵的列数为物品的总数;
(1b)从评分矩阵中随机选取的80%的评分组成训练矩阵,剩下的20%评分组成测试矩阵;
(2)对训练矩阵进行矩阵分解:
(2a)利用随机初始操作,初始化用户特征矩阵和物品特征矩阵;
(2b)将用户特征矩阵和物品特征矩阵相乘后,组成一个重构训练矩阵;
(2c)利用重构损失公式,计算重构训练矩阵的重构误差:
(2d)利用更新公式,更新用户特征矩阵和物品特征矩阵;
(2e)将更新后的用户特征矩阵和物品特征矩阵,分别替代重构训练矩阵的重构误差公式中的用户特征矩阵和物品特征矩阵,计算更新后的重构训练矩阵的重构误差;
(2f)判断更新前后的重构评分矩阵的重构误差间的变化值是否小于0.001,若是,则执行步骤(2g),否则,执行步骤(2d);
(2g)将更新后的用户特征矩阵和物品特征矩阵,分别作为用户优化矩阵和物品优化矩阵;
(3)构建神经协同过滤网络:
构建一个五层双输入的神经协同过滤网络,并设置神经协同过滤网络中的各层参数和超参数;
(4)对训练矩阵进行神经协同过滤:
(4a)对训练矩阵中所有行序号、所有列序号和评分,分别进行独热编码,得到用户稀疏矩阵和物品稀疏矩阵,标签矩阵;
(4b)将训练矩阵中每个评分对应的用户和物品,组成用户物品集;
(4c)在用户稀疏矩阵和物品稀疏矩阵中,将用户物品集对应的向量,组成稀疏训练集,在标签矩阵中,将每个评分对应的向量,组成训练集标签;
(4d)将稀疏训练集、训练集标签输入到神经协同过滤网络中进行训练,得到训练好的神经协同过滤网络;
(5)提取神经协同过滤网络嵌入层的用户和物品特征:
(5a)将用户稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层用户特征,组成用户嵌入矩阵;
(5b)将物品稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层物品特征,组成物品嵌入矩阵;
(6)构建最近邻居特征矩阵:
(6a)利用余弦相似度公式,计算所有用户之间的相似度,组成用户相似度矩阵;
(6b)将用户相似度矩阵,按列从大到小排序,选取每个用户的10个近邻用户,组成近邻矩阵;
(6c)在近邻矩阵中,计算每个用户的10个近邻用户出现的次数;
(6d)选择每个用户的最近邻居,即在每个用户的10个近邻用户中出现次数最多的用户;
(6e)将每个用户的最近邻居在优化用户特征矩阵中所对应的向量,组成最近邻居特征矩阵;
(7)生成评分训练集与评分测试集:
(7a)将训练矩阵中每个评分对应的用户和物品,组成用户物品训练集,将测试矩阵中每个评分对应的用户和物品,组成用户物品测试集;
(7b)在用户嵌入矩阵和物品嵌入矩阵中,将用户物品训练集对应的向量,组成嵌入训练集;
(7c)在最近邻居特征矩阵中,将用户物品训练集对应的向量,组成最近邻居训练集;
(7d)在用户优化矩阵和物品优化矩阵中,将用户物品训练集对应的向量,组成矩阵优化训练集;
(7e)在用户嵌入矩阵和物品嵌入矩阵中,将用户物品测试集对应的向量,组成嵌入测试集;
(7f)在最近邻居特征矩阵中,将用户物品测试集对应的向量,组成最近邻居测试集;
(7g)在用户优化矩阵和物品优化矩阵中,将用户物品测试集对应的向量,组成矩阵优化测试集;
(7h)将矩阵优化训练集、嵌入训练集和最近邻居训练集,组成评分训练集,将矩阵优化测试集、嵌入测试集和最近邻居测试集,组成评分测试集;
(8)训练全连接神经网络:
(8a)设置一个四层的全连接神经网络的每层参数和超参数;
(8b)将评分训练集和训练集标签输入到全连接神经网络中进行训练,得到训练好的全连接神经网络;
(9)对评分测试集进行评分预测:
将评分测试集输入训练好的全连接神经网络,输出评分测试集的评分预测。
本发明与现有技术相比有以下优点:
第1,由于本发明构建最近邻居特征矩阵,将最近邻居特征结合矩阵分解的用户物品特征及神经协同过滤嵌入层的用户和物品特征,输入全连接神经网络中进行训练,充分挖掘用户与物品之间的局部特征信息,克服了现有技术仅利用户与物品之间的全局特征信息,导致用户与物品之间信息挖掘不充分,预测准确性差的问题,使得本发明具有充分挖掘用户与物品信息,预测准确性高的优点。
第2,由于本发明提取神经协同过滤网络的嵌入层用户和物品特征,将嵌入层用户和物品特征结合矩阵分解的用户和物品特征及用户的最近邻居特征,输入全连接神经网络中进行训练,在用户和物品数量较多时,仍能够得到较高的预测准确性,克服了现有技术仅利用用户编号ID和物品编号ID信息,采用独热编码方式,导致在用户和物品数量较多时,网络输入较为稀疏,评分预测准确性差,可扩展性差的问题,使得本发明具有可扩展性强的优点。
附图说明
图1是本发明的流程图;
图2是本发明的仿真结果图。
具体实施方式
以下结合附图对本发明做进一步的详细描述。
参照图1,本发明的实现步骤做进一步的详细描述。
步骤1,构建用户-物品的评分矩阵。
从用户-物品的评分数据集中,分别提取每个评分对应的用户编号ID与物品编号ID,组成用户对物品的评分矩阵,其中评分矩阵的行为用户编号ID,评分矩阵的列为物品编号ID,评分矩阵的行数为用户的总数,评分矩阵的列数为物品的总数。
从评分矩阵中随机选取的80%的评分组成训练矩阵,剩下的20%评分组成测试矩阵。
本发明的实施例中用户对物品的评分数据集包括MovieLens-100K评分数据集和MovieLens-1M评分数据集,将用户对物品的评分作为评分,用0表示评分矩阵中用户未评过分的物品的评分,用实际评分值表示用户评过分的物品的评分。
步骤2,对训练矩阵进行矩阵分解。
(2.1)利用随机初始操作,初始化用户特征矩阵和物品特征矩阵。
所述随机初始操作是指,在(0,3)区间内,利用随机函数生成两个均匀分布的随机用户特征矩阵U(m×f)和物品特征矩阵V(n×f),所述的两个矩阵的维数相等,其大小需要根据用户总数和物品总数设定。
本发明的实施例中,在MovieLens-100K评分数据集上,将用户和物品特征矩阵的特征数量为16,在MovieLens-1M评分数据集上,将用户和物品特征矩阵的特征数量为20。
(2.2)将用户特征矩阵和物品特征矩阵相乘后,组成一个重构训练矩阵。
(2.3)利用重构损失公式,计算重构训练矩阵的重构误差。
所述重构损失公式如下:
其中,L表示重构训练矩阵的重构误差,Σ表示求和操作,i表示用户的序号,j表示物品的序号,||||F表示F范数操作,Ri,j表示第i个用户对第j个物品的评分,Ui表示第i个用户的特征,T表示转置操作,Vj表示第j个物品的特征,λ表示正则化参数,其取值范围为(0,0.2)。
(2.4)利用更新公式,更新用户特征矩阵和物品特征矩阵。
所述更新公式如下:
其中,U2表示更新后的用户特征矩阵,U1表示更新前的用户特征矩阵,η表示学习率,其取值范围为(0,0.1],表示偏微分操作,V2表示更新后的物品特征矩阵,V1表示更新前的物品特征矩阵。
(2.5)将更新后的用户特征矩阵和物品特征矩阵,分别替代重构训练矩阵的重构误差公式中的用户特征矩阵和物品特征矩阵,计算更新后的重构训练矩阵的重构误差。
(2.6)判断更新前后的重构评分矩阵的重构误差间的变化值是否小于0.001,若是,则执行本步骤的(2.7),否则,执行本步骤的(2.4)。
(2.7)将更新后的用户特征矩阵和物品特征矩阵,分别作为用户优化矩阵和物品优化矩阵。
步骤3,构建神经协同过滤网络。
构建一个五层双输入的神经协同过滤网络,并设置神经协同过滤网络中的各层参数和超参数。
所述五层双输入的神经协同过滤网络的结构依次为:输入层→嵌入层→第一个全连接层→第二个全连接层→soft-max多分类层。
所述神经协同过滤网络中的各层参数和超参数设置如下,将输入层的神经元数量分别设置为训练矩阵中行数和列数,嵌入层的神经元数量均设置为16,在用户-物品的评分数据集大小取1M时,嵌入层的神经元数量均设置为20,第一个全连接层的神经元数量设置为23,第二个全连接层的神经元数量设置为10,soft-max多分类层的输出神经元数量设置为评分的类别数,指数衰减速率设置为0.99,学习率取值范围设置为[0.1,0.2],平均滑动衰减设置为0.99,正则率设置为0.0001,网络训练迭代次数设置为200,激活函数为ReLU。
将输入特征通过全连接层到嵌入层,将稀疏表示映射为密集表示,通过整个网络的训练,得到优化的全连接权重。
本发明的实施例中,在MovieLens-100K评分数据集上,将输入层的神经元数量分别设置为943和1682,在MovieLens-1M评分数据集上,将输入层的神经元数量分别设置为6040和3952。
步骤4,对训练矩阵进行神经协同过滤。
对训练矩阵中所有行序号、所有列序号和评分,分别进行独热编码,得到用户稀疏矩阵和物品稀疏矩阵,标签矩阵。
所述独热编码是指,将训练矩阵中所有行序号,分别转化为0-1向量,该向量长度等于训练矩阵的行数和列数,向量中对应的行序号位置的元素取1,其余位置的元素取0;将训练矩阵中所有列序号,分别转化为0-1向量,该向量长度等于训练矩阵的列数,向量中对应的列序号位置的元素取1,其余位置的元素取0;将训练矩阵中评分,分别转化为0-1向量,该向量长度等于评分的类别数,向量中对应的评分位置的元素取1,其余位置的元素取0。
本发明的实施例中,在MovieLens-100K评分数据集上,将对943个用户和1682个物品进行独热编码,组成用户稀疏矩阵和物品稀疏矩阵,在MovieLens-1M评分数据集上,将对6040个用户和3952个物品进行独热编码,组成用户稀疏矩阵和物品稀疏矩阵,用户对物品的评分值作为评分,对评分的类别1~5进行独热编码,组成标签矩阵。
将训练矩阵中每个评分对应的用户和物品,组成用户物品集。
在用户稀疏矩阵和物品稀疏矩阵中,将用户物品集对应的向量,组成稀疏训练集,在标签矩阵中,将每个评分对应的向量,组成训练集标签。
将稀疏训练集、训练集标签输入到神经协同过滤网络中进行训练,得到训练好的神经协同过滤网络。
步骤5,提取神经协同过滤网络嵌入层的用户和物品特征。
将用户稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层用户特征,组成用户嵌入矩阵。
将物品稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层物品特征,组成物品嵌入矩阵。
步骤6,构建最近邻居特征矩阵。
利用余弦相似度公式,计算所有用户之间的相似度,组成用户相似度矩阵。
所述余弦相似度公式如下:
其中,sim(u,v)表示训练矩阵中第u个用户与第v个用户的相似度,∑表示求和操作,i表示物品集合I(u)与物品集合I(v)交集中的第i个物品,I(u)表示训练矩阵中的第u个用户评过分的物品集合,I(v)表示训练矩阵中第v个用户评过分的物品集合,∈表示属于符号,∩表示求交集操作,rui表示训练矩阵中第u个用户对第i个物品的评分,rvi表示训练矩阵中第v个用户对第i个物品的评分,表示开平方操作。
将用户相似度矩阵,按列从大到小排序,选取每个用户的10个近邻用户,组成近邻矩阵。
在近邻矩阵中,计算每个用户的10个近邻用户出现的次数。
每个用户的最近邻居为在每个用户的10个近邻用户中出现次数最多的用户。
将每个用户的最近邻居在优化用户特征矩阵中所对应的向量,组成最近邻居特征矩阵。
步骤7,生成评分训练集与评分测试集。
将训练矩阵中每个评分对应的用户和物品,组成用户物品训练集,将测试矩阵中每个评分对应的用户和物品,组成用户物品测试集。
在用户嵌入矩阵和物品嵌入矩阵中,将用户物品训练集对应的向量,组成嵌入训练集。
在最近邻居特征矩阵中,将用户物品训练集对应的向量,组成最近邻居训练集。
在用户优化矩阵和物品优化矩阵中,将用户物品训练集对应的向量,组成矩阵优化训练集。
在用户嵌入矩阵和物品嵌入矩阵中,将用户物品测试集对应的向量,组成嵌入测试集。
在最近邻居特征矩阵中,将用户物品测试集对应的向量,组成最近邻居测试集。
在用户优化矩阵和物品优化矩阵中,将用户物品测试集对应的向量,组成矩阵优化测试集。
将矩阵优化训练集、嵌入训练集和最近邻居训练集,组成评分训练集,将矩阵优化测试集、嵌入测试集和最近邻居测试集,组成评分测试集。
步骤8,训练全连接神经网络。
设置一个四层的全连接神经网络的每层参数和超参数:
所述一个四层的全连接神经网络的每层参数设置如下,将输入层神经元个数设置为评分训练集的列数,第一个全连接层神经元个数设置为23,第二个全连接层神经元个数设置为10,dropout层中的保留概率参数是在[0.6,1]中选取一个值,所选的数值是根据全连接神经网络对深度训练样本的拟合程度来选取的,当过拟合时,所选的数值从[0.6,0.7)中选取,当欠拟合时,所选的数值从[0.7,1]中选取,输出层神经元个数设置为评分的类别数,网络训练的迭代次数设置为200,学习率取值范围设置为(0,0.01],正则率取值范围设置为(0,0.01],激活函数为ReLU。
将评分训练集和训练集标签输入到全连接神经网络中进行训练,得到训练好的全连接神经网络。
步骤9,对评分测试集进行评分预测。
将评分测试集输入训练好的全连接神经网络,输出评分测试集的评分预测。
本发明可通过以下仿真实验结果进一步说明。
1.仿真实验的条件:
仿真实验运行环境:Windows7 64位操作系统,CPU为Intel(R)Core(TM)i3-CPU550U@3.20GHz,内存为8GB,编译环境为python3.5。
2.仿真实验数据:
本发明的仿真实验中采用推荐系统领域常用的数据集MovieLens-100K和MovieLens-1M,为了验证验证本发明对预测评分的准确性,将两个数据集分别都拆分为训练数据子集Train和测试数据子集Test,两个数据统计信息见如下表1。
表1数据集统计信息表
其中,表1中的英文Dataset(original)表示原始数据集,Dataset(subset)表示原始数据集中的子集,包括训练数据子集Train,测试数据子集Test,#User表示用户数量,U表示用户集合,#Item表示物品数量,I表示物品集合,#Ratings表示评分数量,R表示用户对物品的评分。
3.仿真实验内容与结果分析:
本发明的仿真实验是采用本发明的方法和三个现有技术,分别对上述的仿真实验数据中的测试数据子集Test中用户评价过的物品进行评分预测。
所述的三个现有技术分别为:
1)基于矩阵分解的物品评分预测方法MF,该方法利用用户对物品历史评分构建的评评分矩阵,对评分矩阵进行矩阵分解,获得用户特征和物品特征,利用获得的用户特征和物品特征,得到测试数据子集中用户对物品的评分预测。
2)基于神经协同过滤网络的物品评分预测方法NCF,该方法利用用户对物品历史评分构建训练集,输入神经协同过滤网络训练,将测试数据子集放入训练好的网络中,获得测试数据子集中用户对物品的评分预测。
3)基于矩阵分解的神经网络方法MF-NN,该方法将训练矩阵利用矩阵分解,获得用户和物品特征,将获得的用户和物品特征输入神经网络训练,将测试数据子集放入训练好的网络中,获得测试数据子集中用户对物品的评分预测。
为了验证本发明所提方法的有效性,按照下式,分别计算测试数据子集中用户对物品的真实评分与预测评分之间的平均绝对误差MAE和均方根误差RMSE:
其中,MAE表示在测试数据子集Test中用户对物品的真实评分与预测评分之间的平均绝对平均误差,∑表示求和操作,u表示在测试数据子集Test中的第u个用户,i表示在测试数据子集Test中的第i个物品,Test表示测试数据子集,|Test|表示测试数据子集中的评分数量,rui表示在在测试数据子集Test中第u个用户对第i个物品的真实评分,rui表示评分测试集中第u个用户对第i个物品的预测评分,RMSE表示在测试数据子集Test中在预测评分与真实评分的均方根误差,表示开平方操作。
仿真实验是在数据集Movielens上,以用户对物品的真实评分与预测评分之间的平均绝对误差MAE和均方根误差RMSE为评价指标,本发明方法与现有技术的基于矩阵分解的物品评分预测方法MF、基于神经协同过滤网络的物品评分预测方法NCF、基于矩阵分解的神经网络方法MF-NN进行对比,对比结果如图2所示,用户对物品的真实评分与预测评分之间的平均绝对误差MAE在数据集MovieLens-100K和数据集MovieLens-1M的对比结果分别如图2(a)和图2(c)所示。用户对物品的真实评分与预测评分之间的均方根误差RMSE在数据集MovieLens-100K和数据集MovieLens-1M的对比结果分别如图2(b)和图2(d)所示。
图2(a)、图2(c)中的纵坐标均表示平均绝对误差MAE,横坐标表示迭代次数。图2(a)、图2(c)中以星号标示的曲线表示基于矩阵分解的物品评分预测方法MF;图2(a)、图2(c)中以圆形标示的曲线表示基于神经协同过滤网络的物品评分预测方法NCF;图2(a)、图2(c)中以菱形标示的曲线表示基于矩阵分解的神经网络方法;图2(a)、图2(c)中以五角星形标示的曲线表示本发明方法。
从图2(a)、图2(c)可以看出,本发明的曲线位于基于矩阵分解方法曲线、基于神经协同过滤的方法曲线、基于矩阵分解的神经网络方法曲线的下方,因此说明本发明的评分预测准确度是最高的。
图2(b)、图2(d)中的纵坐标均表示均方根误差RMSE,横坐标表示迭代次数。图2(b)、图2(d)中以星号标示的曲线表示基于矩阵分解的物品评分预测方法MF;图2(b)、图2(d)中以圆形标示的曲线表示基于神经协同过滤网络的物品评分预测方法NCF;图2(b)、图2(d)中以菱形标示的曲线表示基于矩阵分解的神经网络方法;图2(b)、图2(d)中以五角星形标示的曲线表示本发明方法。
从图2(b)、图2(d)可以看出,本发明的曲线位于基于矩阵分解方法曲线之上,基于神经协同过滤的方法曲线、基于矩阵分解的神经网络曲线的下方,由于基于矩阵分解方法对物品的评分预测为小数,基于神经协同过滤方法、基于矩阵分解的神经网络方法和本发明方法均采用基于分类预测的思想,对物品的评分预测为整数。所以利用整数评分预测获得的均方根误差RMSE必然比利用小数评分预测的方法获得的均方根误差RMSE高,但与利用整数评分预测的另外两种方法相比,本发明的评分预测准确度RMSE最接近矩阵分解方法的评分预测准确度RMSE,因此本发明的预测准确度较高。
上述仿真结果为本发明与三种现有技术在MovieLens数据集上的预测准确度对比。
将每个方法在MovieLens数据集上进行10次实验,根据10次实验结果计算评价指标MAE和RMSE,对每个评价指标的10次结果进行平均,结果如表2所示。
从表2可以看出,本发明在两个数据集MovieLens-100K和MovieLens-1M的预测准确度指标MAE上,明显优于现有三种技术;在评价指标RMSE上预测准确度低于基于矩阵分解的物品评分预测方法MF,是由于利用基于矩阵分解的物品评分预测方法MF得到的评分预测为小数值,因此与真实值之间的差值平方较小。而本发明优于现有的两种利用网络训练进行物品评分预测技术。总体上,本发明对物品的评分预测准确度较高。
表2本发明与三种现有技术的预测准确度一览表
Claims (8)
1.一种基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,利用提取的用户特征构建最近邻居特征矩阵,提取神经协同过滤网络嵌入层的用户和物品特征,该方法的步骤包括如下:
(1)构建用户-物品评分矩阵:
(1a)从用户-物品的评分数据集中,分别提取每个评分对应的用户编号ID与物品编号ID,组成用户对物品的评分矩阵,其中评分矩阵的行为用户编号ID,评分矩阵的列为物品编号ID,评分矩阵的行数为用户的总数,评分矩阵的列数为物品的总数;
(1b)从评分矩阵中随机选取的80%的评分组成训练矩阵,剩下的20%评分组成评分测试矩阵;
(2)对训练矩阵进行矩阵分解:
(2a)利用随机初始操作,初始化用户特征矩阵和物品特征矩阵;
(2b)将用户特征矩阵和物品特征矩阵相乘后,组成一个重构训练矩阵;
(2c)利用重构损失公式,计算重构训练矩阵的重构误差:
(2d)利用更新公式,更新用户特征矩阵和物品特征矩阵;
(2e)将更新后的用户特征矩阵和物品特征矩阵,分别替代重构训练矩阵的重构误差公式中的用户特征矩阵和物品特征矩阵,计算更新后的重构训练矩阵的重构误差;
(2f)判断更新前后的重构评分矩阵的重构误差间的变化值是否小于0.001,若是,则执行步骤(2g),否则,执行步骤(2d);
(2g)将更新后的用户特征矩阵和物品特征矩阵,分别作为用户优化矩阵和物品优化矩阵;
(3)构建神经协同过滤网络:
构建一个五层双输入的神经协同过滤网络,并设置神经协同过滤网络中的各层参数和超参数;
(4)对训练矩阵进行神经协同过滤:
(4a)对训练矩阵中所有行序号、所有列序号和评分,分别进行独热编码,得到用户稀疏矩阵和物品稀疏矩阵,标签矩阵;
(4b)将训练矩阵中每个评分对应的用户和物品,组成用户物品集;
(4c)在用户稀疏矩阵和物品稀疏矩阵中,将用户物品集对应的向量,组成稀疏训练集,在标签矩阵中,将每个评分对应的向量,组成训练集标签;
(4d)将稀疏训练集、训练集标签输入到神经协同过滤网络中进行训练,得到训练好的神经协同过滤网络;
(5)提取神经协同过滤网络嵌入层的用户和物品特征:
(5a)将用户稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层用户特征,组成用户嵌入矩阵;
(5b)将物品稀疏矩阵输入训练好的神经协同过滤网络中,提取神经协同过滤网络的嵌入层物品特征,组成物品嵌入矩阵;
(6)构建最近邻居特征矩阵:
(6a)利用余弦相似度公式,计算所有用户之间的相似度,组成用户相似度矩阵;
(6b)将用户相似度矩阵,按列从大到小排序,选取每个用户的10个近邻用户,组成近邻矩阵;
(6c)在近邻矩阵中,计算每个用户的10个近邻用户出现的次数;
(6d)选择每个用户的最近邻居,即在每个用户的10个近邻用户中出现次数最多的用户;
(6e)将每个用户的最近邻居在优化用户特征矩阵中所对应的向量,组成最近邻居特征矩阵;
(7)生成评分训练集与评分测试集:
(7a)将训练矩阵中每个评分对应的用户和物品,组成用户物品训练集,将评分测试矩阵中每个评分对应的用户和物品,组成用户物品测试集;
(7b)在用户嵌入矩阵和物品嵌入矩阵中,将用户物品训练集对应的向量,组成嵌入训练集;
(7c)在最近邻居特征矩阵中,将用户物品训练集对应的向量,组成最近邻居训练集;
(7d)在用户优化矩阵和物品优化矩阵中,将用户物品训练集对应的向量,组成矩阵优化训练集;
(7e)在用户嵌入矩阵和物品嵌入矩阵中,将用户物品测试集对应的向量,组成嵌入测试集;
(7f)在最近邻居特征矩阵中,将用户物品测试集对应的向量,组成最近邻居测试集;
(7g)在用户优化矩阵和物品优化矩阵中,将用户物品测试集对应的向量,组成矩阵优化测试集;
(7h)将矩阵优化训练集、嵌入训练集和最近邻居训练集,组成评分训练集,将矩阵优化测试集、嵌入测试集和最近邻居测试集,组成评分测试集;
(8)训练全连接神经网络:
(8a)设置一个四层的全连接神经网络的每层参数和超参数;
(8b)将评分训练集和训练集标签输入到全连接神经网络中进行训练,得到训练好的全连接神经网络;
(9)对评分测试集进行评分预测:
将评分测试集输入训练好的全连接神经网络,输出评分测试集的评分预测。
2.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(2a)中所述随机初始操作是指,在(0,3)区间内,利用随机函数生成两个均匀分布的随机用户特征矩阵U(m×f)和物品特征矩阵V(n×f),所述的两个矩阵的维数相等,其大小需要根据用户总数和物品总数设定。
3.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(2c)中所述重构损失公式如下:
其中,L表示重构训练矩阵的重构误差,Σ表示求和操作,i表示用户的序号,j表示物品的序号,||||F表示F范数操作,Ri,j表示第i个用户对第j个物品的评分,Ui表示第i个用户的特征,T表示转置操作,Vj表示第j个物品的特征,λ表示正则化参数,其取值范围为(0,0.2)。
4.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(2d)中所述更新公式如下:
其中,U2表示更新后的用户特征矩阵,U1表示更新前的用户特征矩阵,η表示学习率,其取值范围为(0,0.1],表示偏微分操作,V2表示更新后的物品特征矩阵,V1表示更新前的物品特征矩阵。
5.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(3)中所述五层双输入的神经协同过滤网络的结构依次为:输入层→嵌入层→第一个全连接层→第二个全连接层→soft-max多分类层。
6.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(3)中所述神经协同过滤网络中的各层参数和超参数设置如下,将输入层的神经元数量分别设置为训练矩阵中行数和列数,嵌入层的神经元数量均设置为16,在用户-物品的评分数据集大小取1M时,嵌入层的神经元数量均设置为20,第一个全连接层的神经元数量设置为23,第二个全连接层的神经元数量设置为10,soft-max多分类层的输出神经元数量设置为评分的类别数,指数衰减速率设置为0.99,学习率取值范围设置为[0.1,0.2],平均滑动衰减设置为0.99,正则率设置为0.0001,网络训练迭代次数设置为200,激活函数为ReLU。
7.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(4a)中所述独热编码是指,将训练矩阵中所有行序号,分别转化为0-1向量,该向量长度等于训练矩阵的行数和列数,向量中对应的行序号位置的元素取1,其余位置的元素取0;将训练矩阵中所有列序号,分别转化为0-1向量,该向量长度等于训练矩阵的列数,向量中对应的列序号位置的元素取1,其余位置的元素取0;将训练矩阵中的评分,分别转化为0-1向量,该向量长度等于评分的类别数,向量中对应的评分位置的元素取1,其余位置的元素取0。
8.根据权利要求1中所述的基于矩阵分解及神经协同过滤的物品评分预测方法,其特征在于,步骤(8a)中所述一个四层的全连接神经网络的每层参数和超参数设置如下,将输入层神经元个数设置为评分训练集的列数,第一个全连接层神经元个数设置为23,第二个全连接层神经元个数设置为10,dropout层中的保留概率参数是在[0.6,1]中选取一个值,所选的数值是根据全连接神经网络对深度训练样本的拟合程度来选取的,当过拟合时,所选的数值从[0.6,0.7)中选取,当欠拟合时,所选的数值从[0.7,1]中选取,输出层神经元个数设置为评分的类别数,网络训练的迭代次数设置为200,学习率取值范围设置为(0,0.01],正则率取值范围设置为(0,0.01],激活函数为ReLU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811598908.1A CN109740655B (zh) | 2018-12-26 | 2018-12-26 | 基于矩阵分解及神经协同过滤的物品评分预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811598908.1A CN109740655B (zh) | 2018-12-26 | 2018-12-26 | 基于矩阵分解及神经协同过滤的物品评分预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109740655A true CN109740655A (zh) | 2019-05-10 |
CN109740655B CN109740655B (zh) | 2021-06-01 |
Family
ID=66359905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811598908.1A Active CN109740655B (zh) | 2018-12-26 | 2018-12-26 | 基于矩阵分解及神经协同过滤的物品评分预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109740655B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110570267A (zh) * | 2019-07-22 | 2019-12-13 | 浙江工业大学 | 一种协同过滤物品推荐方法 |
CN110766166A (zh) * | 2019-10-23 | 2020-02-07 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN111192122A (zh) * | 2019-12-25 | 2020-05-22 | 航天信息股份有限公司 | 一种基于协同过滤的进销项差异度计算的方法及系统 |
CN111311324A (zh) * | 2020-02-18 | 2020-06-19 | 电子科技大学 | 基于稳定神经协同过滤的用户-商品偏好预测系统和方法 |
CN112529415A (zh) * | 2020-12-11 | 2021-03-19 | 西安电子科技大学 | 基于组合多感受野图神经网络的物品评分方法 |
CN112529414A (zh) * | 2020-12-11 | 2021-03-19 | 西安电子科技大学 | 基于多任务神经协同过滤网络的物品评分方法 |
CN113449611A (zh) * | 2021-06-15 | 2021-09-28 | 电子科技大学 | 一种基于yolo网络压缩算法的安全帽识别智能监控系统 |
CN115080861A (zh) * | 2022-07-20 | 2022-09-20 | 南京邮电大学 | 基于迁移头尾知识的神经协同过滤双向推荐方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158497A1 (en) * | 2003-02-06 | 2004-08-12 | Brand Matthew E. | On-line recommender system |
CN103246672A (zh) * | 2012-02-09 | 2013-08-14 | 中国科学技术大学 | 对用户进行个性化推荐的方法和装置 |
CN105183727A (zh) * | 2014-05-29 | 2015-12-23 | 上海研深信息科技有限公司 | 一种图书推荐方法及其系统 |
CN105354729A (zh) * | 2015-12-14 | 2016-02-24 | 电子科技大学 | 一种电子商务系统中的商品推荐方法 |
US20160217374A1 (en) * | 2015-01-27 | 2016-07-28 | Milq Inc. | Method and system utilizing collaborative filtering |
CN106021329A (zh) * | 2016-05-06 | 2016-10-12 | 西安电子科技大学 | 基于用户相似度的稀疏数据协同过滤推荐方法 |
CN108038629A (zh) * | 2017-12-30 | 2018-05-15 | 北京工业大学 | 一种基于协同过滤的优化方法 |
EP3345128A1 (en) * | 2015-09-03 | 2018-07-11 | Functional Technologies Ltd | Clustering images based on camera fingerprints |
CN108874914A (zh) * | 2018-05-29 | 2018-11-23 | 吉林大学 | 一种基于图卷积与神经协同过滤的信息推荐方法 |
-
2018
- 2018-12-26 CN CN201811598908.1A patent/CN109740655B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158497A1 (en) * | 2003-02-06 | 2004-08-12 | Brand Matthew E. | On-line recommender system |
CN103246672A (zh) * | 2012-02-09 | 2013-08-14 | 中国科学技术大学 | 对用户进行个性化推荐的方法和装置 |
CN105183727A (zh) * | 2014-05-29 | 2015-12-23 | 上海研深信息科技有限公司 | 一种图书推荐方法及其系统 |
US20160217374A1 (en) * | 2015-01-27 | 2016-07-28 | Milq Inc. | Method and system utilizing collaborative filtering |
EP3345128A1 (en) * | 2015-09-03 | 2018-07-11 | Functional Technologies Ltd | Clustering images based on camera fingerprints |
CN105354729A (zh) * | 2015-12-14 | 2016-02-24 | 电子科技大学 | 一种电子商务系统中的商品推荐方法 |
CN106021329A (zh) * | 2016-05-06 | 2016-10-12 | 西安电子科技大学 | 基于用户相似度的稀疏数据协同过滤推荐方法 |
CN108038629A (zh) * | 2017-12-30 | 2018-05-15 | 北京工业大学 | 一种基于协同过滤的优化方法 |
CN108874914A (zh) * | 2018-05-29 | 2018-11-23 | 吉林大学 | 一种基于图卷积与神经协同过滤的信息推荐方法 |
Non-Patent Citations (2)
Title |
---|
WEIWEI ZHANG 等: "Recommendation Based on Collaborative Filtering by Convolution Deep Learning Model Based on Label Weight Nearest Neighbor", 《2017 10TH INTERNATIONAL SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DESIGN (ISCID》 * |
杨阳 等: "基于矩阵分解与用户近邻模型的协同过滤推荐算法", 《计算机应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110570267A (zh) * | 2019-07-22 | 2019-12-13 | 浙江工业大学 | 一种协同过滤物品推荐方法 |
CN110570267B (zh) * | 2019-07-22 | 2022-04-08 | 浙江工业大学 | 一种协同过滤物品推荐方法 |
CN110766166B (zh) * | 2019-10-23 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN110766166A (zh) * | 2019-10-23 | 2020-02-07 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN111192122A (zh) * | 2019-12-25 | 2020-05-22 | 航天信息股份有限公司 | 一种基于协同过滤的进销项差异度计算的方法及系统 |
CN111311324A (zh) * | 2020-02-18 | 2020-06-19 | 电子科技大学 | 基于稳定神经协同过滤的用户-商品偏好预测系统和方法 |
CN111311324B (zh) * | 2020-02-18 | 2022-05-20 | 电子科技大学 | 基于稳定神经协同过滤的用户-商品偏好预测系统和方法 |
CN112529414A (zh) * | 2020-12-11 | 2021-03-19 | 西安电子科技大学 | 基于多任务神经协同过滤网络的物品评分方法 |
CN112529415A (zh) * | 2020-12-11 | 2021-03-19 | 西安电子科技大学 | 基于组合多感受野图神经网络的物品评分方法 |
CN112529415B (zh) * | 2020-12-11 | 2023-05-30 | 西安电子科技大学 | 基于组合多感受野图神经网络的物品评分方法 |
CN112529414B (zh) * | 2020-12-11 | 2023-08-01 | 西安电子科技大学 | 基于多任务神经协同过滤网络的物品评分方法 |
CN113449611A (zh) * | 2021-06-15 | 2021-09-28 | 电子科技大学 | 一种基于yolo网络压缩算法的安全帽识别智能监控系统 |
CN115080861A (zh) * | 2022-07-20 | 2022-09-20 | 南京邮电大学 | 基于迁移头尾知识的神经协同过滤双向推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109740655B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740655A (zh) | 基于矩阵分解及神经协同过滤的物品评分预测方法 | |
CN111199343B (zh) | 一种多模型融合的烟草市场监管异常数据挖掘方法 | |
Zhang | Community structure detection in complex networks with partial background information | |
CN108319686A (zh) | 基于受限文本空间的对抗性跨媒体检索方法 | |
CN109657156A (zh) | 一种基于循环生成对抗网络的个性化推荐方法 | |
Amancio et al. | Concentric network symmetry grasps authors' styles in word adjacency networks | |
Guo et al. | Deep CNN-based hyperspectral image classification using discriminative multiple spatial-spectral feature fusion | |
CN103942571A (zh) | 一种基于遗传规划算法的图形图像分类方法 | |
CN115131698B (zh) | 视频属性确定方法、装置、设备及存储介质 | |
CN110569355B (zh) | 一种基于词块的观点目标抽取和目标情感分类联合方法及系统 | |
Liu et al. | Self-supervised transformer-based pre-training method using latent semantic masking auto-encoder for pest and disease classification | |
CN108647800A (zh) | 一种基于节点嵌入的在线社交网络用户缺失属性预测方法 | |
CN104715063A (zh) | 搜索排序方法和装置 | |
CN108446605B (zh) | 复杂背景下双人交互行为识别方法 | |
Ma et al. | Community-aware dynamic network embedding by using deep autoencoder | |
Faisal et al. | DFNet: Dense fusion convolution neural network for plant leaf disease classification | |
CN112529415A (zh) | 基于组合多感受野图神经网络的物品评分方法 | |
Nagendram et al. | Analysis for the system recommended books that are fetched from the available dataset | |
Chen et al. | Inferring network structure with unobservable nodes from time series data | |
Quirin et al. | Graph-based data mining: A new tool for the analysis and comparison of scientific domains represented as scientograms | |
Chen et al. | Multi-dimensional shared representation learning with graph fusion network for session-based recommendation | |
Ikematsu et al. | A fast method for detecting communities from tripartite networks | |
Gavrilev et al. | Anomaly detection in networks via score-based generative models | |
Wang et al. | Learning visual features from figure-ground maps for urban morphology discovery | |
CN105046286A (zh) | 基于自动视图生成和联合l1,2范数最小化的监督多视图特征选择方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |