一种基于层叠稀疏降噪自编码器增强的协同过滤推荐方法与流程

文档序号:17723110发布日期:2019-05-22 02:18阅读:295来源:国知局
一种基于层叠稀疏降噪自编码器增强的协同过滤推荐方法与流程

本发明涉及的领域为个性化推荐算法技术领域,特别涉及一种融入辅助信息的基于层叠稀疏降噪自编码器增强的协同过滤推荐算法技术。



背景技术:

随着大数据、云计算等技术的高速发展,我们进入了信息爆炸的时代,因此我们也面临着各种各样的爆炸式增长的信息、数据。数据中蕴含着丰富的内容和价值,具有很大的潜力,但与此同时,也出现了“信息过载”的现象。怎样有效地从多种复杂、繁多结构的数据中获取最有价值的信息,成为了目前大数据处理的关键。推荐系统作为解决“信息过载”的一种有效方法,通过推荐算法从海量的数据里挖掘出用户感兴趣的信息,并将结果以个性化列表的形式推荐给用户,目前在各个领域已经得到了广泛、成功的应用。

传统的推荐方法主要包括基于内容的推荐方法和协同过滤推荐方法。其中,最经典的算法是协同过滤算法,其是目前应用最广泛的推荐算法,它可以基于用户,或者基于项目,计算用户或项目间的相似度,如是基于用户,则把和要预测的用户最相近的用户喜欢的项目推荐给该用户,完成推荐,基于项目的协同过滤与此类似,只是用户、项目反过来衡量来完成个性化推荐。协同过滤中的矩阵因子分解算法,利用用户与项目之间的交互信息(用户对项目的行为,包括且不仅包括评分等)为用户进行推荐。近年来协同过滤算法在netflix大奖赛中屡获大奖,但是也遭遇了严重的数据稀疏问题,如我们经常浏览各种信息、物品,却鲜少对里面的项目进行了评价等交互,这样,计算机很难从极少的显式交互行为中完成对我们兴趣的预测。最严重的数据稀疏结果,对于单个的用户、项目来说,即一个用户对任何项目没有任何交互,一个项目没有得到任何用户的交互,这两种情况分别称之为用户冷启动问题、项目冷启动问题。此外,经典的协同过滤方法采用浅层模型,无法学习到用户和项目的深层次特征,浅层模型是由人工设计特征,其有效性及可扩展性非常有限,制约了推荐算法的性能。目前互联网中越来越多的各式数据能够被有效获取,如图像、文本、标签等多种异构数据蕴含着丰富的用户、项目信息,这些信息可以用来满足我们进行个性化推荐的需求。融合多源异构辅助信息(sideinformation)的混合推荐方法能够有效的缓解冷启动与数据稀疏问题,是目前重要的一个研究方向。但是由于这些辅助信息存在异构、多态、数量级大、分布不均和数据稀疏的问题,融合多源异构的数据的混合推荐算法研究目前仍面临着严峻的挑战。

近年来,深度学习在图像处理、自然语言理解和语音识别等领域取得了突破性的进展,这亦为个性化推荐的算法研究带来了新的机遇。一方面,深度学习可以通过学习深层非线性网络结构,来表示用户和项目的海量数据,具有强大的从样本中学习数据集本质特征的能力,能够获取用户和项目更深层次的特征表示。另一方面,深度学习通过从多源异构数据中进行自动特征学习,将不同的数据映射到一个相同的隐式空间,能够获得数据的统一表征,在此基础上融合传统的推荐方法来进行推荐,则能够有效的利用多源异构数据,从而缓解传统推荐系统中的数据稀疏和冷启动问题。

为了有效缓解推荐系统中用户、项目冷启动,数据稀疏导致的推荐准确率低的问题,本发明提出了一种基于层叠稀疏降噪自编码器增强的协同过滤推荐方法。



技术实现要素:

传统的协同过滤推荐算法存在冷启动、数据稀疏导致的推荐准确率低的问题,为了解决上述问题,本发明提出了基于层叠稀疏降噪自编码器增强的协同过滤(隐含因子模型)算法。通过使用深度学习模型层叠稀疏降噪自编码器(ssdae)从用户基本信息、项目基本信息提取出用户、项目的特征信息,将其替换传统的协同过滤算法--隐含因子模型中的初始化用户-特征、项目-特征矩阵,利用隐含因子模型算法进行相乘,最终与用户-项目评分矩阵进行相应算法计算,形成最终的推荐结果,为用户形成推荐列表,从而进行个性化推荐。此发明利用深度模型层叠稀疏降噪自编码器对用户、项目的信息进行处理,通过隐含因子模型(矩阵分解方式)融合用户、项目的基本信息到用户-项目评分信息中,预测用户对项目的评分,完成推荐任务。本发明有效地改善了传统协同过滤算法因冷启动、数据稀疏造成的准确性低的问题。

为了达到本发明的目的,本发明提出了一个新型结合算法,该算法由三部分组成:数据预处理模块、层叠稀疏降噪自编码器模块、隐含因子模型模块。

除数据预处理部分,层叠稀疏降噪自编码器与隐含因子模型的结合算法框架由三部分构成,其中左右两部分代表基于ssdae的用户、项目特征提取模型,中间部分代表基于lfm的协同过滤模型。其中,左、右两侧的特征提取部分,输入分别为处理过的用户基本信息、项目基本信息,输出为用户-特征、项目-特征的隐藏层表示,以此来进行用户、项目的深层特征提取。在中间的lfm模型部分,改进lfm,使用ssdae模型提取的隐藏层特征矩阵替换掉lfm模型里初始化的用户-特征、项目-特征矩阵,进行矩阵相乘,最终与用户-项目评分矩阵进行损失最小化计算,使用随机梯度下降法得到最优解,最后用得到的相乘矩阵作为用户对项目的预测评分矩阵进行推荐。

下面是基于层叠稀疏降噪自编码器增强的协同过滤算法:

输入:用户-项目评分矩阵用户的基本信息x1,项目的基本信息x2。

输出:用户的top-n推荐列表。

step1将用户的基本信息、项目的基本信息转为数字形式,对项目包含的自然语言进行自然语言处理,使用tf-idf舍弃停用词,形成词汇表,使用one-hot编码将用户的基本信息、项目的基本信息转化为层叠稀疏降噪自编码器(ssda)能够处理的向量信息;

step2随机初始化噪声系数在0-1区间,对用户的基本信息、项目的基本信息加入噪声,使用随机置0法,由输入向量x加入噪音得到x',则加噪的用户基本信息为x1',加噪的项目基本信息为x2'。

step3初始化稀疏降噪自编码器(sda)的各参数:

稀疏降噪自编码器稀疏惩罚因子γ=0.01;稀疏性参数ρ=0.001;

随机均匀分布法初始化we;wd;be;bd;

初始化层叠稀疏降噪自编码器最内层神经元节点数b=50;

step4将step1、step2处理得到的用户的基本信息x1'、项目的基本信息x2'分别作为输入。

计算隐藏层神经元的平均激活度:

yj代表的是隐藏神经元j的激活度,则yj(x(i))表示的是输入为x的情况下,自编码器神经网络隐藏神经元j的激活度,k为样本个数,为达稀疏性限制的作用,加入以下限制:

其中,ρ为稀疏性参数,普遍取值0.001,上式表示让隐藏神经元j的平均活跃度接近ρ。为实现稀疏限制,在优化目标函数中加入额外的惩罚因子,最小化这一惩罚因子:

s2代表隐藏层神经元个数,是分别以ρ为均值和以为均值的两个伯努利随机变量之间的相对熵。

加入稀疏惩罚因子γ,普遍取值0.01,加入稀疏性要求后的损失函数为:

其中,x是输入向量,是自编码器编码再解码后还原的向量,n是输入向量的维度。

代表ssda模型反向传播算法后得到的重构数据和输入数据之间的欧式举例的平方,代表ssda模型的损失。

利用公式(5)、(6)进行编、解码,使用随机梯度下降法,以公式(4)作为优化目标,通过调节参数we;wd;be;bd;使得最小化,得到用户-特征隐层、项目-特征隐层;

稀疏降噪自编码器编码过程:

y=wex'+be(5)

稀疏降噪自编码器解码过程:

step5设置稀疏降噪自编码器(sda)处理的次数为t,将step3步骤重复t次,第t次的输入为第t-1的输出,进行逐层训练,堆叠成层叠稀疏降噪自编码器(ssda),t的取值范围为0以上整数,取最后一次迭代的输出,得到用户-特征隐层y1、项目-特征隐层y2;

step6随机初始化隐含因子模型(lfm)的降维分解矩阵:用户-偏好矩阵p,项目-特征矩阵q;

step7将用户-特征隐层y1替代用户-偏好矩阵p,记为u,项目-特征隐层y2替代项目-特征矩阵q,记为v,u矩阵与v矩阵相乘,得到矩阵r;

step8使用随机梯度下降法使公式(7)中的损失函数最小化,损失函数如下公式所示。

其中,u是用户-特征矩阵,v是项目-特征矩阵,是用户-项目评分矩阵,h代表用户个数,g代表电影个数,λ1、λ2为防止过拟合引入的惩罚因子。

step9算法整体调参:在推荐系统领域通常采用均方差误差rmse来度量预测评分的准确性。rmse越大,则表明推荐系统的误差就越大,准确性越低;相反地,rmse越小,则表明推荐系统的误差越小,准确性越高。

mae借助绝对值来求取预测误差,对应的方程如下:

两式中,表示用户h对项目g的实际评分,rh,g表示用户h对项目g的预测评分,c表示测试集。

层叠稀疏降噪自编码器最内层神经元节点数初始值为b=50;设置步长为50,在0-1000内递增取值,计算rmse、mae,取上述指标最优的神经元节点数。正则项惩罚系数λ1、λ2,初始化为λ1=λ2=0.1,设置步长为0.1,在0-1内递增取值,计算rmse、mae,取上述指标最优的λ1、λ2。

step10按照最终确定的参数得到的r,确定用户,选取矩阵中该用户对应的评分最高的前n个项目,作为该用户的top-n推荐列表。

附图说明

图1是基于层叠稀疏降噪自编码器增强的协同过滤算法组成

图2是ssda-lfm框架结构图

图3是数据预处理流程

具体实施方式:

在本实施例中,以电影推荐平台为例做出解释说明,实施时所用电影平台信息为用户的基本信息、电影的基本信息、用户-电影的评分信息。

1数据预处理:由于层叠稀疏降噪自编码器只能处理向量形式数据,且只能接收定长的数据,需要将原始训练数据表示为向量形式。分为以下几步:文字转为数字形式、one-hot编码、加入噪声。

1.1转为数字形式:

对于特征值少于200的数据,如本次实施示例里所用用户的基本信息,包含性别信息2种特征、7种不同的年龄特征、20种职业特征,共有29种用户的特征。此处处理为每一列代表一个特征,若某用户具有该特征,则该用户对应的该值置1,不具有该特征,用户对应该值置0。

对于特征值大于200的数据,如本次实施示例里所用电影的基本信息,包含电影类型18种特征、电影名,电影名属于自然语言,对电影名进行分词处理,使用tf-idf舍弃停用词,有效单词形成一个词汇表,再为每个单词分配一个整数值,作为这个单词的索引。

由于电影类型含有多种,如商品、信息等可以用来推荐的项目,都存在此种情况,如电影可以是恐怖片的同时,也属于爱情片;一个除螨吸尘类商品,可以既属于吸尘器,也属于除螨仪。将电影类型进行分词,与电影名分词得到的字段,一起形成该电影的特征。

1.2one-hot编码

借助one-hot编码的思想,使用g位寄存器表示g位信息,词汇表中共有9763个词汇,加上类别的18个特征,串联起来表示成9781个电影特征列作为最外层神经元的设置。例如,用户1对项目2的title和genres编号集合是{2,5,1,6},则x12=[110011000000…000],其中只有第1、2、5、6的位置上的元素值为1,其余值全部为0。

1.3加入噪声

为了防止过拟合对输入数据加入了噪音,使得学习得到的编码器,具有较强的鲁棒性,增强模型的泛化能力。

随机初始化噪声系数在0-1区间,对上述预处理后得到的用户的基本信息x1、电影的基本信息x2加入噪声,使用随机置0法,由输入向量x加入噪音得到x',则加噪的用户基本信息为x1',加噪的电影基本信息为x2'。

2层叠稀疏降噪自编码器(ssda)初始输入数据为预处理过的用户的基本信息x',预处理过的电影的基本信息x2'。

3设置稀疏降噪自编码器(sda)处理的次数为t,将4-10步骤重复t次,第t次的输入为第t-1的输出,进行逐层训练,堆叠成层叠稀疏降噪自编码器(ssda);t取值为正整数,层叠的次数越多,特征提取越好。

用户-特征提取模型最外层节点数s0=29,是由用户的特征数所限定,电影-特征提取模型最外层节点数s1=9781,是由电影的特征数所限定。层叠稀疏降噪自编码器最内层神经元节点数初始值为b=50;

4输入的数据样本集合为x={x(1),x(2),...,x(n)},为表简洁,用x表示x(i),其中x为输入向量,y为隐藏层向量,为对应的输出层向量,x'为加入噪音的输入向量。

5初始化稀疏降噪自编码器(sda)的各参数:

稀疏降噪自编码器稀疏惩罚因子γ=0.01;稀疏性参数ρ=0.001;

随机均匀分布法初始化we;wd;be;bd;

6神经元激活度参数约束:

计算隐藏层神经元的平均激活度:

yj代表的是隐藏神经元j的激活度,则yj(x(i))表示的是输入为x的情况下,自编码器神经网络隐藏神经元j的激活度,k为样本个数,为达稀疏性限制的作用,加入以下限制:

其中,ρ为稀疏性参数,普遍取值0.001,上式表示让隐藏神经元j的平均活跃度接近ρ。为实现稀疏限制,在优化目标函数中加入额外的惩罚因子,最小化这一惩罚因子:

s2代表隐藏层神经元个数,是分别以ρ为均值和以为均值的两个伯努利随机变量之间的相对熵。

加入稀疏惩罚因子γ,普遍取值0.01,加入稀疏性要求后的损失函数为:

其中,x是输入向量,是自编码器编码再解码后还原的向量,n是输入向量的维度,在本实验示例中,n分别为用户/电影基本信息特征个数,为29、9781。

代表ssda模型反向传播算法后得到的重构数据和输入数据之间的欧式举例的平方,代表ssda模型的损失。

7编码过程:

y=wex'+be(5)

8解码过程:

9误差函数作为优化目标,使用随机梯度下降法进行优化目标最小化(通过算法自动得到收敛结果)。

10输出:隐层y。

11按照3中设置的迭代次数,最终通过层叠稀疏降噪自编码器输出的是最内层的用户-特征隐层y1、电影-特征隐层y2,此时层叠稀疏降噪自编码器模块迭代完毕。

12随机初始化隐含因子模型(lfm)的降维分解矩阵:用户-偏好矩阵p,电影-特征矩阵q;

13用用户-特征隐层y1替代用户-偏好矩阵p,记为u,电影-特征隐层y2替代电影-特征矩阵q,记为v,u矩阵与v矩阵相乘,得到矩阵r。

14模型目标为lfm模型损失函数最小化,损失函数如下公式所示,使用随机梯度下降法使其最小化。

其中,u是用户-特征矩阵,v是电影-特征矩阵,是用户-电影评分矩阵,h代表用户个数,g代表电影个数,λ1、λ2为防止过拟合引入的惩罚因子,他们可设置范围为0-1之间的值,本次实施过程中取值λ1=λ2=0.1,是根据rmse、mae的值调参而定。

15在推荐系统研究领域中,推荐系统预测的准确性是最重要的一个评估指标,本文的最终目的是提高推荐结果的准确性,所以主要考察算法的推荐准确度。

在推荐系统领域通常采用均方差误差rmse来度量预测评分的准确性。rmse越大,则表明推荐系统的误差就越大,准确性越低;相反地,rmse越小,则表明推荐系统的误差越小,准确性越高。

mae借助绝对值来求取预测误差,对应的方程如下:

两式中,表示用户h对项目g的实际评分,rh,g表示用户h对项目g的预测评分,c表示测试集。

16算法整体调参:层叠稀疏降噪自编码器最内层神经元节点数初始值为b=50;设置步长为50,在0-1000内递增取值,计算rmse、mae,取上述指标最优的神经元节点数。正则项惩罚系数λ1、λ2,初始化为λ1=λ2=0.1,设置步长为0.1,在0-1内递增取值,计算rmse、mae,取上述指标最优的λ1、λ2。实施中最终确定的b为250,λ1=λ2=0.1。

17按照最终确定的参数得到的r,确定用户,选取矩阵中该用户对应的评分最高的前n个项目,作为该用户的top-n推荐列表。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1