一种基于深度学习与贝叶斯概率矩阵分解的电影推荐方法技术

技术编号:21714582 阅读:17 留言:0更新日期:2019-07-27 19:15
一种基于深度学习与贝叶斯概率矩阵分解的电影推荐算法,属于电影推荐技术领域。在众多推荐系统中,矩阵分解模型因为其准确高效,易于实现得到广泛应用,但矩阵分解原理是将用户评分矩阵分为用户与项目特征向量,当评分矩阵稀疏时,推荐准确度将大大降低,为了解决这个问题,本方法将深度学习与基于协同的推荐算法相结合,利用堆栈自编码器学习用户与项目的辅助信息,贝叶斯概率分解矩阵从辅助信息和原有的评分中预测用户偏好。本方法在预测评分准确度方面有明显提升。

A Movie Recommendation Method Based on Deep Learning and Bayesian Probability Matrix Decomposition

【技术实现步骤摘要】
一种基于深度学习与贝叶斯概率矩阵分解的电影推荐方法
本方法属于电影推荐
,具体设计结合深度学习与贝叶斯概率矩阵分解的电影推荐算法。
技术介绍
随着互联网的快速发展,数据爆发式增长,带来一定便利的同时也带来了困扰。针对海量影视数据,用户真正需要的信息则难以寻找。为了解决信息过载的问题,推荐系统应运而生。个性化推荐系统从众多数据中提取出有用的信息,通过收集用户的行为日志等数据,分析用户的兴趣并向其推荐相应信息。基于协同过滤的推荐算法是目前应用较为广泛的推荐算法之一。它利用用户之前的评分计算用户或电影相似度,学习用户与电影之间的潜在特征,从而进行评分预测。但这会造成无法推荐冷门电影,当新电影上映时,因为没有评分数据无法进行相似度计算。且仅靠评分无法准确挖掘用户,电影的潜在特征。近年来,深度学习模型在计算机视觉和自然语言处理领域展示出了巨大的潜力,深度学习可以有效捕捉到用户和物品之间的关系,将用户或物品用向量表示,获取他们的复杂特征。在NetflixPrize竞赛上,有人首次提出将深度学习加入到推荐算法中,受限玻尔兹曼机的出现使得竞赛上了一个新台阶。之后基于深度学习的推荐算法的相关研究急剧增加。但是众多算法依然存在耗时长,参数设置繁琐的问题。针对以上技术缺陷,本专利技术借助深度学习和基于模型的协同过滤的推荐算法解决这些问题。
技术实现思路
本专利技术解决的技术问题是:普通算法推荐准确度不高,易受稀疏数据和冷启动问题的影响,基于深度学习的推荐算法耗时长。针对上述问题,本专利技术提供了一种基于深度学习与贝叶斯概率矩阵分解模型的算法,步骤如下:步骤1.从网上公开数据集获得用户,电影信息以及用户对电影的评分。步骤2.利用word2vec预处理用户与电影信息,将其转变为向量。步骤3.将用户向量输入用户侧栈式降噪自编码器,经过多次迭代,获取用户特征向量;将电影特征向量输入电影侧栈式降噪自编码器,经过多次迭代获取电影特征向量。步骤4.将用户特征向量与电影特征向量作为贝叶斯概率矩阵分解的初始值。步骤5.根据特征向量计算贝叶斯概率矩阵分解的参数,依照参数更新特征向量,多次重复,直至用户特征向量与电影特征向量内积与现有评分之间的误差低于0.4。步骤6.根据预测评分进行电影推荐。本专利技术从用户与项目两方面着手,通过堆栈降噪自编码器提取特征向量,将用户与项目的辅助信息融合到贝叶斯概率矩阵分解模型中,这使得该模型可以同时学习到用户,项目的潜在特征以及用户与项目之间的隐式关系,拥有更准确的特征属性,提高了推荐质量,减少了计算时间。附图说明图1为栈式降噪自编码器模型图图2为本专利技术贝叶斯概率矩阵分解模型图图3为贝叶斯概率矩阵分解采样流程图图4为本专利技术基于深度学习和贝叶斯概率矩阵分解的整体模型图具体实施方式下面结合附图对本专利技术做进一步的详细描述:本专利技术提供了一种基于深度学习和贝叶斯概率矩阵分解的电影推荐算法,该方法包括以下步骤:步骤1.从网上公开数据集获得用户,电影信息以及用户对电影的评分。共有6040位用户,3952部电影,1000209个评分,评分从1至5,均为整数。用户的职业均用数字代表,如15为科学家。用户,电影信息和用户评分形式如下表。表1.用户信息表2.电影信息表3.评分数据步骤2.利用word2vec预处理用户与电影信息,将其转变为向量。因电影标题由多个词汇构成,且有大写字母,所以先将所有大写字母转换为小写字母,将所有标题中的词汇组成词汇表,所有词由one-hot编码转化为词向量,然后对word2vec网络输入需要预测词的上下文向量进行该词预测,至少训练10次,保留网络参数,所有词乘以相应参数即可获得最终词向量。取该电影标题所有的词向量的平均值获得该电影标题向量,将电影标题向量和电影流派向量取平均值获得电影向量。将用户性别,职业也利用word2vec转化为相应的向量表达,取两个向量的平均值作为用户向量。步骤3.将用户向量输入用户侧栈式降噪自编码器,如图1,向原始用户向量加入噪声,生成第一个DAE输入向量,利用DAE的重构原理迭代训练约50次,所有向量重构误差总和低于50,得到第一个隐藏层的各项参数和特征向量1,公式如下h=fθ(x)=s(Wx+b)。h为第一个隐藏层的特征向量,x为加入噪声后的输入,W为输入层到隐藏层的权重,b为隐藏层神经元的偏置,s为sigmoid激活函数。第二步将上层的输出即提取出的特征向量作为第二层DAE的输入向量,通过同样方式训练约50次得到隐藏层2的输出,得到最后的输出,即用户特征向量。将电影向量输入电影侧栈式降噪自编码器,向原始电影向量加入噪声,生成第一个DAE的输入向量,利用DAE的重构原理经过约50次迭代训练,所有向量的误差总和低于50,获得第一个隐藏层的各项参数和特征向量。第二步将上层的输出即提取出的特征向量作为第二层DAE的输入向量,同样方式训练约50次获得隐藏层的输出,即得到最终输出,电影特征向量。步骤4.将用户特征向量与电影特征向量作为贝叶斯概率矩阵分解的初始值。将6040位用户的特征向量组合为用户特征矩阵U,3952部电影的特征向量组合为电影特征矩阵V。将他们作为贝叶斯概率矩阵分解模型中起始U,V。步骤5.如图2,3,现有评分R与预测评分R*的差即R-R*服从均值为0,精度为α的高斯分布,α设置为0.1,用户与项目的特征向量先验分布为:其中M为用户数目,N为电影数目,μU,μV为高斯分布均值,ΛU,ΛV为精度矩阵,{μU,ΛU},{μV,ΛV}被定义为超参数ΘU,ΘV,超参数服从高斯-威沙特分布共轭先验,如下式Θ0为参数μ0,v0,W0的集合,为均值为μ0,精度矩阵为(β0ΛU)-1的高斯分布概率密度函数,μ0设置为0,β0设置为6,是自由度为v0,尺度矩阵为W0的威沙特分布,v0设置为10,W0设置为10×10的单位矩阵。因贝叶斯概率矩阵分解中预测的评分R*的分布函数为复杂的二重积分,无法直接求解,利用采用马尔科夫链-蒙特卡洛方法采样得预测评分的近似分布,即:为用户ui对电影vj的预测评分,R为现有评分,T为总采样次数,为用户ui第t次采样的用户向量,为电影vj第t次采样的电影向量。具体采样过程为:第一步根据起始特征矩阵U,V采样得全局超参数,第二步利用全局超参数重新采样得U,V,第三步重复第一,二步约50次,直至最终预测评分与实际评分的误差低于0.4。最终预测评分计算公式为:预测评分与实际评分之间的误差用RMSE计算,如下式:其中N为评分数,r是实际评分,r*是预测评分。步骤6.根据预测得出的评分对用户进行推荐,分数高且用户未观看的为推荐电影。实验模拟本专利技术使用MovieLens1M的数据集,包含6040位用户,3952部电影,近10万条评分,每人均至少20条评分数据。随机抽取部分评分数据作为训练集进行训练,尝试不同稀疏度的数据测试本专利技术的预测结果准确度,随着稀疏度的增加,准确度有部分降低,但较普通协同过滤方法适应能力更强,使用较深度学习推荐算法更短时间的训练便能达到平稳。本专利技术将深度学习与贝叶斯概率矩阵分解相结合,具有很强的特征提取能力,并且解决了推荐系统中常见的冷启动问题,推荐能力也有一定提高。本文档来自技高网...

【技术保护点】
1.基于深度学习和贝叶斯概率矩阵分解的电影推荐算法,其特征在于,包括以下步骤:步骤1.从网上公开数据集获得用户,电影信息以及用户对电影的评分;步骤2.利用word2vec预处理用户与电影信息,将其转变为向量;步骤3.将用户向量输入用户侧栈式降噪自编码器,经过多次迭代,获取用户特征向量;将电影特征向量输入电影侧栈式降噪自编码器,经过多次迭代获取电影特征向量;步骤4.将用户特征向量与电影特征向量作为贝叶斯概率分解矩阵的初始值;步骤5.根据特征向量计算贝叶斯概率矩阵分解的参数,依照参数更新特征向量,多次重复,直至用户特征向量与电影特征向量内积与现有评分之间的误差低于0.4;步骤6.根据预测评分进行电影推荐。

【技术特征摘要】
1.基于深度学习和贝叶斯概率矩阵分解的电影推荐算法,其特征在于,包括以下步骤:步骤1.从网上公开数据集获得用户,电影信息以及用户对电影的评分;步骤2.利用word2vec预处理用户与电影信息,将其转变为向量;步骤3.将用户向量输入用户侧栈式降噪自编码器,经过多次迭代,获取用户特征向量;将电影特征向量输入电影侧栈式降噪自编码器,经过多次迭代获取电影特征向量;步骤4.将用户特征向量与电影特征向量作为贝叶斯概率分解矩阵的初始值;步骤5.根据特征向量计算贝叶斯概率矩阵分解的参数,依照参数更新特征向量,多次重复,直至用户特征向量与电影特征向量内积与现有评分之间的误差低于0.4;步骤6.根据预测评分进行电影推荐。2.根据权利要求1所述的基于深度学习和贝叶斯概率矩阵分解的电影推荐算法,其特征在于,步骤2具体为:利用word2vec预处理用户与电影信息,将其转变为向量;因电影标题由多个词汇构成,且有大写字母,所以先将所有大写字母转换为小写字母,将所有标题中的词汇组成词汇表,所有词由one-hot编码转化为词向量,然后对word2vec网络输入需要预测词的上下文向量进行该词预测,至少训练10次,保留网络参数,所有词乘以相应参数获得最终词向量;取该电影标题所有的词向量的平均值获得该电影标题向量,将电影标题向量和电影流派向量取平均值获得电影向量;将用户性别,职业也利用word2vec转化为相应的向量表达,取两个向量的平均值作为用户向量。3.根据权利要求1所述的基于深度学习和贝叶斯概率矩阵分解的电影推荐算法,其特征在于,步骤3具体为:向原始用户向量加入噪声,生成第一个DAE输入向量,利用DAE的重构原理迭代训练50次,所有向量重构误差总和低于50,得到第一个隐藏层的各项参数和特征向量1,公式如下h=fθ(x)=s(Wx+b);h为第...

【专利技术属性】
技术研发人员:张延华王倩雯付琼霄张文博李庆陈冰容
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1