一种基于深度学习的推荐方法与流程

文档序号:15851578发布日期:2018-11-07 10:04阅读:201来源:国知局
一种基于深度学习的推荐方法与流程

一种基于深度学习的推荐方法,用于新项目的推荐,属于数据挖掘、自然语言处理、个性化推荐等技术领域。

背景技术

基于内容的推荐,通常从项目的描述和元数据等内容信息中预测用户偏好。最基础的推荐算法是根据项目的可用的元数据进行推荐,例如在电影推荐中,电影的元数据可能包括电影的类别属性、参与的演员、制作的导演和电影的大众评分等等。然而,这将导致可以预知的推荐。例如推荐用户已经熟知的演员的电影,通常这将不是有效的推荐。另一种推荐算法是根据项目的描述信息进行推荐,例如在电影推荐中,使用电影的标题和内容简介等描述信息,这些描述信息通常使用词袋模型进行表征,通过测量描述信息的表征向量之间的相似性,可以尝试为用户推荐与该用户以前看过的电影相似的电影。这种方法需要定义一个合适的相似性度量。这样的度量通常是基于描述信息的先验知识来自定义,因此它们不一定是基于内容的推荐方法的最佳选择。因此,一些研究人员已经使用用户偏好数据来调整相似性度量。

基于协同过滤的推荐方法可以是基于邻域或基于模型的。前一种方法依赖于用户或项目之间的相似性度量,他们推荐具有类似偏好的其他用户所消费的项目,或与用户已经消费的项目类似的项目。另一方面,基于模型的方法试图建模用户和项目的潜在特征,这些特征通常表示为潜在因素的向量。潜在因素模型的有效性在netflix奖项中的电影推荐中得以证明,由此,潜在因素模型在推荐领域的应用也越来越广泛。潜在因子向量形成了用户口味在不同方面的简洁描述,同时也形成了相应的项目特征。由于很多项目的使用数据很少甚至缺失,对于使用数据很少的项目通常不能可靠地估计这些项目的潜在因子向量,而对于使用数据缺失的项目则无法获取该项目的潜在因子向量。因此,能够从包含项目的描述和元数据的文本内容信息来预测这些项目的潜在因子向量的混合推荐方法将是有效可行的推荐方法。这就是本文研究的推荐方法。

影响用户偏好的项目的潜在因子与项目的文本内容信息之间存在着巨大的语义差距。例如,从电影的文本内容信息中提取诸如艺术风格、商业性、科技性和寓意主题等高级属性需要强大的模型,能够捕捉复杂的文本语法和语义特征。此外,单单从电影的文本内容信息中不可能获得某些属性,如导演或者演员的知名度、名誉和位置。基于内容的推荐方法目前现有的推荐算法不能从同时包含项目的描述信息和项目的元数据的文本内容信息中精确地预测项目的潜在因子。即使表征文本内容信息的词袋模型可以在学习项目的整体表示和单词表示时提供有价值的信息,但是,这种表示方式忽略每个单词周围的单词和所处位置语境的顺序信息,在挖掘内容信息时存在着很大的瓶颈。因此,如何有效地从项目的文本内容信息中挖掘出影响用户对项目偏好的高级属性,一直是推荐系统领域的研究难点和重点。

最近的研究表明了深度学习在语音识别、图像分析和自然语言处理方面的革命性进展在应对信息检索和推荐任务方面的有效性。通过将深度学习应用到推荐领域中,使推荐系统取得了最先进的性能,并获得了高质量的推荐效果,因此基于深度学习的推荐技术得到了迅猛地发展。相比于传统的推荐技术,深度学习模型可以深层次地理解用户的需求和项目的特征,同时深层次地挖掘用户对项目的历史行为交互信息。在基于内容的推荐方法中,利用深度学习中的诸如使用带滑动窗口(内核)卷积层的卷积神经网络(cnn)模型具有捕捉单词的顺序和当前位置的语境的潜力。但是,cnn中的卷积核的大小在训练期间是固定的。为了获得足够好的性能,有时需要使用具有不同的卷积核大小的多个cnn的集合。门控循环神经网络(rnn)模型是一种更自然、更自适应的文本序列建模方法。门控rnn一次接收一个单词(或多个单词),并让学习的门决定是合并还是忘记该单词。直观地说,使用门控rnn模型可以很好地建模包含项目的描述和元数据的文本内容序列的生成,从而更能有效地从项目的文本内容信息中挖掘出影响用户对项目偏好的高级属性。近年来,尝试开发推荐系统中的循环深度学习模型的研究人员较少,虽然有些方法涉及循环深度神经网络模型,但它们实际上属于基于协调过滤的推荐方法,因为它们并不包含项目的文本内容信息,事实上,深层次挖掘和理解项目的文本内容信息对准确推荐至关重要,在推荐领域中具有极高的研究和应用价值。



技术实现要素:

本发明的目的在于:解决现有的推荐方法,不能有效地从包含了项目的描述和元数据的文本内容信息中来预测该项目的潜在因子向量,造成推荐不准确的问题;本发明提供了一种基于深度学习的推荐方法。

本发明采用的技术方案如下:

一种基于深度学习的推荐方法,其特征在于,如下步骤:

(1)对用户的历史行为数据的隐式反馈特性进行建模,建模后学习得到用户和项目的隐因子向量;

(2)将项目的隐因子向量作为标签训练对项目文本内容的时序信息进行建模和深层次地挖掘的网络模型;

(3)对于未出现在用户历史行为数据中的新项目,将新项目的文本内容信息通过步骤(2)得到的网络模型预测得到项目的隐因子向量,然后将其与步骤(1)得到的用户隐因子向量直接匹配,并将匹配度进行排序,得到每个用户的新项目推荐列表。

进一步,所述步骤(1)中,采用基于隐式反馈的加权因子模型对用户的历史行为数据的隐式反馈特性进行建模。

进一步,所述步骤(1)的具体步骤如下:

(11)对用户历史行为数据rui进行归一化处理,通过引入一个二值变量pui,将用户u对项目i的偏好二值化为偏好矩阵其中,m表示用户的个数,n表示项目的个数;

(12)根据偏好矩阵并引入置信度变量cui,来衡量用户u对项目i的偏好的确定程度;

(13)基于确定程度,通过加权隐因子模型将用户和项目映射到共同的潜在因子低维空间,其空间维度为k,通过最小化带正则项的平方误差损失,学习得到所有用户的隐因子向量和所有项目的隐因子向量公式如下:

其中,pui为用户u对项目i的实际偏好值,xu为用户u的隐因子向量,λx为xu的精度参数,yi为项目i的隐因子向量,λy为yi的精度参数。

进一步,所述步骤(2)中,将项目的隐因子向量作为标签训练对项目文本内容的时序信息进行建模和深层次地挖掘的基于attention机制的gru网络模型。

进一步,所述步骤(2)的具体步骤如下:

(21)使用基于attention机制的gru网络模型的输入层将项目的文本内容数据映射为单词序列x={x1,x2,x3,…,xt},其中,t是单词序列的长度,是一个对文本内容中第t个单词的独热编码表示,v是数据集的单词表的大小,即代表所有不重复单词的个数,代表xt是一个v维向量;

(22)对于文本内容中第t个单词对应的t时刻,基于attention机制的gru网络模型的单词嵌入层通过线性映射将单词的独热编码表示xt转换成低维稠密向量et,公式如下:

et=wext

其中,是单词嵌入层的参数,de是低维稠密矢量et的维度,we的每一列对应着单词表中的一个单词;

(23)单词嵌入层的输出{e1,e2,e3,…,et}被前馈到基于attention机制的gru网络模型的gru层作为输入序列,gru层中的gru单元在t时刻的激活同时决定了gru单元更新它的先前激活和候选激活的多少,公式如下:

zt=σ(wzet+uzht-1)

rt=σ(wret+urht-1)

其中,wz、uz、wr、ur、w为gru层的参数,即网络训练时自动去学习所用参数,是网络作矩阵运算时的变量,zt是表示更新门,rt表示复位门,ht-1表示先前激活,表示候选激活,ht表示t时刻的激活,对应gru单元在t时刻的隐藏编码状态,看作是第t个单词的向量表示;

(24)基于attention的单词池化层将隐藏编码状态向量序列h={h1,h2,h3,…,ht}压缩成一个“上下文”向量c作为项目的文本内容表示,公式如下:

ut=vttanh(whht)

其中,向量v和矩阵wh是基于attention的单词池化层的参数,t是单词序列的长度,uk为第时刻k的原始分数,ut为第时刻t的原始分数,αt代表将时刻t对应的原始分数进行softmax标准化得到的最终的分数,即应该对第t个隐藏编码状态ht给予多少关注;

(25)使用加权隐因子模型学习得到的项目的隐因子向量作为标签,对基于attention机制的gru网络模型进行训练,得到训练好的基于attention机制的gru网络模型,其目标函数如下:

其中,yi为项目i的隐因子向量,由加权隐因子模型学习得到,yi′为基于attention机制的gru网络模型对应的预测值,θ代表模型参数,泛指网络需要训练的所有参数。

进一步,所述步骤(3)的具体步骤如下:

(31)对于未出现在用户历史行为数据中的新项目j,从项目的文本内容信息中通过训练好的基于attention机制的gru网络模型预测得到项目的隐因子向量yj;

(32)将预测的新项目j的隐因子向量yj与加权隐因子模型学习得到的目标用户u的隐因子向量xu进行匹配,并将匹配度作为预测偏好值puj,计算公式如下:

puj=xutyj

式中,t表示转置运算;

(33)计算目标用户u对所有新项目的预测偏好值后,得到目标用户u的待推荐新项目列表;

(34)对待推荐新项目列表中的项目进行排序,为每个用户选取前m个预测偏好值最高的项目,得到每个用户的新项目推荐列表。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

a.本发明,从包含了项目的描述和元数据的文本内容信息中来预测该项目的潜在因子向量,能大大提高推荐的准确度。

b.本发明针对用户隐式反馈数据的特性提出了加权隐因子模型(wlfm模型),将偏好的置信度引入到用户偏好学习当中,针对隐式反馈数据的训练效率问题改进了传统的als算法,提升了模型的训练效率。

c.本发明基于训练好的attention的gru深度神经网络模型能够有效地对文本内容的时序信息进行建模和深层次挖掘,通过gru网络模型对文本中的单词进行语义编码,通过基于attention的池化技术自动学习单词的权重,相对于传统的bow表示方法,基于gru网络的单词编码结构能够实现对文本中单词语义的准确编码,同时基于attention的池化技术相对于传统的池化技术,能够为项目文本学习更精确的,从而提升推荐性能。

d.本发明提供的基于深度学习的推荐方法,将深度神经网络模型与基于协同过滤的浅层模型融合在一起,可以同时利用用户行为信息和项目文本内容信息的混合推荐模型,解决数据稀疏性和冷启动的问题对推荐性能的影响。

附图说明

图1为本发明的方法流程示意图;

图2为本发明的整体流程示意图;

图3为本发明的wlfm模型生成示意图;

图4为本发明的基于attention机制的gru网络连接示意图;

图5为本发明的基于attention机制的池化网络示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

(1)采集用户的历史行为数据,针对隐式反馈的特性,使用基于隐式反馈的加权隐因子模型(wlfm),对用户的历史行为信息进行建模,学习得到用户和项目的隐因子向量,具体步骤如下:

(11)对用户历史行为数据rui进行归一化处理,通过引入一个二值变量pui,假设有m个用户和n个项目,将用户u对项目i的偏好二值化为偏好矩阵公式如下:

(12)偏好矩阵p中同时包含了正、负反馈信息,通过引入置信度变量cui,来衡量用户u对项目i的偏好的确定程度,公式如下:

其中,α和β是超参数如果用户对项目产生了交互行为,用户喜欢该项目的置信度cui为α,如果,用户对项目没有产生过行为,用户不喜欢该项目的置信度cui为β。并且β>α,因为在隐式反馈的情况下,相比于正反馈,用户对项目负反馈信息较少,置信变量的值相对来说就会很低。由此,通过用户偏好矩阵p得到了用户置信矩阵

(13)基于确定程度,通过wlfm模型将用户和项目映射到共同的潜在因子低维空间,其空间维度为k,通过最小化带正则项的平方误差损失,学习得到所有用户的隐因子向量和所有项目的隐因子向量其中,m表示用户的个数,n表示项目的个数,公式如下:

minx,y∑u,icui(pui-xutyi)2+λx∑u||xu||2+λy∑i||yi||2

其中,wlfm模型使用基于概率的矩阵分解模型,模型的生成过程如下:

(131)对于每个用户u,使得用户隐因子向量

(132)对于每个项目i,使得项目隐因子向量

(133)对于每个用户项目组合(u,i),使其偏好值为:

其中,cui是pui的精度参数。ik是一个k维单位矩阵。wlfm模型的概率图表示如图3所示。通过最小化带正则项的平方误差损失,学习得到所有用户隐因子向量和所有项目隐因子向量公式如下:

式中,pui为用户u对项目i的实际偏好值,λx为xu的精度参数,λy为yi的精度参数;本发明加入了cui,能够更好地衡量用户偏好的确定程度。

(2)采集项目的文本内容数据,针对项目文本内容信息的特点,使用对项目文本内容的时序信息进行建模和深层次地挖掘的基于attention机制的gru网络模型,以wlfm模型学习得到的项目的隐因子向量作为标签训练基于attention机制的gru网络模型,具体步骤如下:

(21)使用基于attention机制的gru网络模型的输入层将项目的文本内容数据映射为单词序列x={x1,x2,x3,…,xt},其中,t是单词序列的长度,是一个对文本内容中第t个单词的独热编码表示(one-hot),v是数据集的单词表的大小,即代表所有不重复单词的个数,代表xt是一个v维向量,单词序列x严格考虑单词在项目文本中的顺序,为项目的文本表示保留时序信息;

(22)对于文本内容中第t个单词对应的t时刻,基于attention机制的gru网络模型的单词嵌入层通过线性映射将单词的独热编码表示xt转换成低维稠密向量et,公式如下:

et=wext

其中,是单词嵌入层的参数,de是低维稠密矢量et的维度,we的每一列对应着单词表中的一个单词,通过网络的单词嵌入层来减少输入向量xt的维度;

(23)单词嵌入层的输出{e1,e2,e3,…,et}被前馈到基于attention机制的gru网络模型的gru层作为输入序列,gru层中的gru单元在t时刻的激活同时决定了gru单元更新它的先前激活和候选激活的多少,公式如下:

zt=σ(wzet+uzht-1)

rt=σ(wret+urht-1)

其中,wz、uz、wr、ur、w为gru层的参数,即网络训练时自动去学习所用参数,是网络作矩阵运算时的变量,zt表示更新门,rt表示复位门。更新门同时决定gru单元更新它的先前激活和候选激活的多少。复位门有效地使单元忘记先前计算的状态或者最大程度地使用先前计算的状态来计算候选激活。ht-1表示先前激活,表示候选激活,ht表示t时刻的激活,对应gru单元在t时刻的隐藏编码状态,可看作是第t个单词的向量表示;

(24)通过基于attention的单词池化层将隐藏编码状态向量序列h={h1,h2,h3,…,ht}压缩成一个“上下文”向量c作为项目的文本内容表示,公式如下:

ut=vttanh(whht)

其中,向量v和矩阵wh是基于attention的单词池化层的参数,t是单词序列的长度,uk为第时刻k的原始分数,ut为第t个时间步的原始分数,αt表示将第t个时间步对应的原始分数进行softmax标准化得到的最终的分数,即应该对第t个隐藏编码状态ht给予多少关注。通过attention网络对长度为t的隐藏编码状态序列h创建了一个维度为t的attention向量α,它的第t个元素αt是对状态ht给予的关注分数,它表明了相应时间步t的重要性,称其为attention分数;

(25)使用加权隐因子模型学习得到的项目的隐因子向量作为标签,对基于attention机制的gru网络模型进行训练,其目标函数如下:

其中,yi为项目i的隐因子向量,由加权隐因子模型学习得到,y′i为基于attention机制的gru网络模型对应的预测值,θ代表模型参数。

(3)对于未出现在用户历史行为数据中的新项目,从项目的文本内容信息中通过训练好的基于attention机制的gru网络模型预测得到项目的隐因子向量,然后将其与wlfm模型学习得到的用户隐因子向量直接匹配,并将匹配度进行排序,得到每个用户的新项目推荐列表,将通过基于attention机制的gru网络模型预测得到项目的隐因子向量与wlfm模型学习得到的用户隐因子向量直接匹配,并将匹配度进行排序得到每个用户的新项目推荐列表的步骤如下:

(31)对于未出现在用户历史行为数据中的新项目j,从项目的文本内容信息中通过训练好的基于attention机制的gru网络模型预测得到项目的隐因子向量yj;

(32)将预测的新项目j的隐因子向量yj与加权隐因子模型学习得到的目标用户u的隐因子向量xu进行匹配,并将匹配度作为预测偏好值puj,计算公式如下:

puj=xutyj

式中,t表示转置运算;

(33)计算目标用户u对所有新项目的预测偏好值后,得到目标用户u的待推荐新项目列表;

(34)对待推荐新项目列表中的项目进行排序,为每个用户选取前m个预测偏好值最高的项目,得到每个用户的新项目推荐列表。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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