一种基于联合神经网络协同过滤的信息推荐方法及其系统与流程

文档序号:18553113发布日期:2019-08-30 22:15阅读:373来源:国知局
一种基于联合神经网络协同过滤的信息推荐方法及其系统与流程

本发明属于信息资源推荐领域,具体是涉及到一种基于联合神经网络协同过滤的信息推荐方法及其系统。



背景技术:

面对复杂而又大量的信息资源,推荐系统可以有效的帮助用户获取他们想要的信息。协同过滤是目前广泛采用的推荐方法之一。传统的协同过滤都是基于矩阵分解得到的,例如现在因子模型lfm(latentfactormodel,隐语义模型),将用户和物品都表示成潜在的向量,然后用一个内积表示用户与物品之间的相关关系,但是基于这种内积的方式都是一种线性的相关关系。

深度学习的方法在推荐系统中表现出很好的效果,克服了很多之前传统方法存在的问题,例如对复杂的用户-物品关系的建模,对用户动态兴趣爱好的建模等等。但是目前大部分推荐系统的深度学习的方法都是对一个辅助信息进行的挖掘,例如:文本信息,音像信息等等。通过这些来丰富物品的特征信息。但是对于用户-物品的交互行为,大部分的方法还是采用传统的矩阵分解的方法。

rbm((restrictedboltzmannmachine,受限玻尔兹曼机)是第一个用神经网络的方法来模拟用户-物品之间的交互行为,效果比传统的方法都要好,但是它只有两层的网络不能认为是一个深度学习的方法。cdae(collaborativedenoisingauto-encoders,协同降噪自动编码器)也是一个基于神经网络的方法,但是它主要用于对用户评分的预测。ncf(neuralcollaborativefilter,神经协同过滤)采用了一个深度神经网络对用户-物之间的交互信息进行了建模,但是并没有对用户和物品的特征信息进行挖掘,cdae和ncf的方法都没有利用到用户的显示反馈信息。dmf(deepmatrixfactorization,深度矩阵分解)的方法采用了神经网络对用户-物品打分进行建模,将用户特征和物品特征进行了有效的提取,但是关于用户-物品交互行为,仍然采用的是和lfm一样的线性方法。



技术实现要素:

本发明要解决的技术问题是提供一种基于联合神经网络协同过滤的信息推荐方法及其系统,解决现有技术中存在的技术问题。

本发明的内容包括:

提出了一种基于联合神经网络协同过滤的信息推荐方法,包括以下步骤:

基于用户-物品的打分矩阵,结合深层神经网络a,提取用户特征信息和物品特征信息;

以用户特征信息和物品特征信息作为输入,结合深度神经网络b,对用户-物品之间的交互关系进行建模;

根据建模得到的模型输出用户和物品之间交互行为的预测值以为信息推荐提供数据支持。

优选地,深层神经网络a包括两个平行的网络netuser和netitem,用户和物品的打分信息分别作为这两个网络的输入,表示为:vu=<yu1,…,yun>,vi=<y1i,…,ymi>,其中

优选地,采用多层感知机将netuser这种高维的向量映射到低维的向量空间,得到:

其中分别表示第x层感知机中的权重向量,偏置向量和激活函数,x表示深层神经网络a所具有的网络层数,zu是一个对用户特征的深度表示;同理可得zi为一个对物品特征的深度表示。

优选地,采用relu作为激活函数。

优选地,采用线性和非线性结合的方式对用户-物品之间的交互关系进行建模。

优选地,用户和物品之间的交互关系表示为:

优选地,采用多层感知机对aui进行处理得到:

其中分别表示第y层感知机中的权重向量,偏置向量和激活函数,y表示df网络所具有的网络层数,采用relu作为激活函数。

优选地,通过sigmoid函数来输出对用户和物品之间交互行为的预测值:

其中sigmoid函数将输出限制在(0,1)之间,向量h用来控制zui向量中不同维度位置的权重,这个参数可以通过训练得到。

优选地,还需要通过损失函数对预测值准确度进行提升,损失函数为组合损失函数:

α是控制两种损失的权重系数,max(ru)表示用户u给出的所有评分中最高得评分,ω(θ)表示正则化项,分别表示对正样本和负样本的预测打分,ns表示负样本的取样集合。

依托于上述方法,本发明还提出了一种基于联合神经网络协同过滤的信息推荐系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。

本发明的有益效果包括:

1、本发明提出一个基于联合神经网络协同过滤的推荐方法,采用了一个联合神经网络,将深度特征提取过程和深度交互行为建模过程紧密结合,能够快速准确的得到预测值。

2、本发明提出一种新的损失函数,考虑了显示和隐式反馈,单点损失和结对损失,对预测值准确性的提升上有了显著的提高。

附图说明

附图1为本发明的一种基于联合神经网络协同过滤的信息推荐方法流程图;

附图2为本发明的j-ncf模型的结构示意图;

附图3为本发明的优选实施例的不同数据集中交互关系示意图;

附图4为本发明的优选实施例的不同模型性能比较示意图;

附图5为本发明的优选实施例中j-ncf对不同数据稀疏程度的敏感性示意图。

具体实施方式

实施例1:

传统的推荐方法对于前n个推荐任务,大多数推荐系统基于协作过滤,其中推荐依赖于过去的行为(评级)而不管领域知识如何。top-n推荐的任务是根据用户对物品的历史打分,给用户推荐一个物品的列表,尽可能的让用户喜欢的物品排在列表的前端。我们将用户表示成u={user1,…,userm},物品表示成i={item1,…,itemn},r∈im·n是用户-物品的打分矩阵,打分是一种显示反馈信息,它表现了用户对于物品的偏好程度,而那些没有打分的项,则认为是用户不知道或者不喜欢这些物品,因此认为这是隐式的反馈信息,这两种反馈信息在推荐中都是重要的信息

传统的推荐存在两种主要的cf(协同过滤,collaborativefiltering)方法:基于邻域或基于潜在因素。邻域方法与用户个性化的项目模型相似,这与本发明基于用户项目模型的方法不同。因此,本发明专注于潜在因素方法。大多数对潜在因素建模的研究是基于对用户项目评分矩阵进行因子分解,这种矩阵被称为svd(singularvaluedecomposition,奇异值分解)。svd将用户项目评分矩阵分解为两个较低等级矩阵的乘积,一个包含“用户因素”,另一个包含“项目因素”。然后,对于内部产品和偏差,用户对项目的偏好可以被生成。另一种基于svd的模型为svd++,svd++的模型包含显式和隐式反馈,并且显示了在许多mf(matrixfactorization,矩阵分解)模型上的改进的性能。这与本发明在j-ncf(基于联合神经网络协同过滤的推荐方法)中结合显式和隐式反馈的动机一致。然而,应用传统的mf方法来稀疏评定矩阵是很困难的。许多传统的推荐系统将线性内核与用户和项目向量的内积应用于对用户项目交互进行建模。线性函数可能无法准确描述用户(项目)和用户项目交互的特征,非线性对于改进推荐系统的性能具有潜在的优势。

基于深度学习的推荐方法基于dl(deeplearning,深度学习)的推荐系统可以分为两类,即单一的神经网络模型和深度整合模型,这取决于它们是仅仅依靠深度学习技术还是将传统推荐模型与深度学习相结合。

对于第一类,rbm是早期的神经推荐系统。它使用两层无向图来模拟表格数据,例如用户对电影的明确评分。成果管理制针对评级预测,而不是针对前n个建议,其损失函数仅考虑观察到的评级。将负面抽样纳入rbm的培训在技术上是具有挑战性的,这对于前n项建议是必需的。使用auto-encoder进行评分预测只考虑在损失函数中观察到的评级,这不能保证对前n推荐的良好表现。为了避免自动编码器学习身份识别功能并且未能概括为看不见的数据,dae(denoisingautoencoder,去噪自动编码器)已被应用于从故意损坏的输入中学习。迄今列出的大多数出版物都侧重于明确的反馈,因此无法从隐式反馈中了解用户的偏好。扩展的daes,其输入是用户的部分观察到的隐式反馈。与本发明不同,daes和cdae都使用项目模型进行个性化处理,代表用户使用其评分项目。对于深度整合模型,cdl(collaborativedeeplearn,协作深度学习)是一个层叠的贝叶斯模型,它将堆叠的dae整合到传统的概率mf中。它与本发明在两个方面有所不同:(1)它从内容信息中提取项目的深度特征表示;(2)它仍然使用线性内核来模拟用户和项目之间的关系的用户和项目向量。另一个与本发明直接相关的整合模型是dmf。它使用具有神经网络的深度mf模型,将用户和物品映射到共同的低维空间。但是,它遵循lfm使用内部产品来计算用户和项目之间的交互。与dmf不同,本发明应用多层感知器来将用户和项目特征向量的组合用作输入来模拟用户项目交互。这不仅有助于模型在建模用户项目交互方面比线性产品更具表现力,而且还有助于提高用户和项目特征提取的准确性。

针对以上提出的问题,本发明提出了一种基于联合神经网络协同过滤的信息推荐方法,参见图1,包括以下步骤:

基于用户-物品的打分矩阵,结合深层神经网络a,提取用户特征信息和物品特征信息。

根据系统记录的每个用户对物品的打分记录可以构造用户-物品的打分矩阵。

以用户特征信息和物品特征信息作为输入,结合深度神经网络b,对用户-物品之间的交互关系进行建模。

深层神经网络a和深度神经网络b都是是多层感知机网络,因为该网络可以很好的对用户和物品特征进行刻画,以及对用户和物品之间的非线性关系进行建模。深层神经网络a包括两个平行的网络netuser和netitem,用户和物品的打分信息分别作为这两个网络的输入。输出是用户和物品的特征表示。深层神经网络b的输入是用户和物品特征向量的结合,输出是对用户和物品之间交互行为的预测值。

根据建模得到的模型,以用户特征信息为输入,输出物品信息偏好排列。根据建模得到的模型输出用户和物品之间交互行为的预测值以为信息推荐提供数据支持。

参见图2,图2展示了j-ncf模型的结构,j-ncf模型包含两个主要的神经网络,df网络用来对用户和物品的特征信息进行挖掘,di网络用来对用户-物品之间的交互进行建模。df网络的输出作为di网络的输入。

df网络主要用两个平行的网络分别对用户和物品的特征信息进行挖掘,最后将这两个网络的输出结合,因此我们称这两个网络分别为netuser和netitem。我们将用户和物品的打分信息分别作为这两个网络的输入,表示为:vu=<yu1,…,yun>,vi=<y1i,…,ymi>,其中

然后用多层感知机将这种高维的向量映射到低维的向量空间。因为netuser和netitem仅仅在输入上有所不同,因此本发明以netuser为例,netitem以此类推。采用多层感知机可以得到:

其中分别表示第x层感知机中的权重向量,偏置向量和激活函数。这里我们采用relu作为激活函数,因为它有更好的信息表达能力和生物相似性,同时也可以很好的解决梯度消失的问题。x表示df网络所具有的网络层数。其输出zu是一个对用户特征的深度表示,同理可得zi是一个对物品特征的深度表示。relu(线性整流函数,rectifiedlinearunit)是一种激活函数。

对于用户-物品交互行为的建模,传统的方法大都采用将用户向量和物品向量进行点乘的方式来衡量用户和物品之间的关系。但这是一种线性的建模方式,由于非线性的比线性的建模方式更好。我们采用以下两种形式将用户和物品的特征向量进行结合:

第一种方式是直接将两个向量进行拼接,这是一种非线性的结合方式,第二种是将两个向量进行对应元素相乘得到新的向量,这是一种线性的结合方式。我们基于这两种方式提出两种不同的j-ncf模型的变体。

产生aui只是对用户-物品交互建模的第一步,这还不足以对用户-物品交互行为进行准确的刻画,因此我们采用多层感知机继续对其进行处理:

其中分别表示第y层感知机中的权重向量,偏置向量和激活函数。这里我们同样采用relu作为激活函数。y表示df网络所具有的网络层数。最后我们通过一个sigmoid函数来输出对用户和物品之间交互行为的预测值:

其中sigmoid函数可以将输出限制在(0,1)之间,向量h用来控制zui向量中不同维度位置的权重,这个参数可以通过训练得到。

预测值还需要通过损失函数进行处理。一般训练的损失函数有单点损失和结对损失函数。单点损失函数主要用于提高对某个打分值预测的准确度,更适用于评分预测的推荐任务中,结对损失函数聚焦于用户对不同物品的不同偏好程度,更加适用于top-n的推荐任务中。

用l(g)表示一个损失函数,用ω(θ)表示正则化项,对于单点损失函数来说,通常的计算方式如下所示:

具体来说,平方差损失函数更适用于显示反馈信息:

对于隐式反馈信息,交叉熵损失函数更为适用:

结对损失函数考虑了用户对于两个物品不同的偏好程度,以及这两个物品的相对排序,因此更加适用于top-n推荐任务。

对于top-n推荐任务还提出了一种结对损失函数top1,其计算如下图所示:

其中分别表示对正样本和负样本的预测打分,ns表示负样本的取样集合。

大部分基于深度学习的推荐方法都采用的是单点损失函数,将结对损失函数作为以后的研究工作。不论是单点损失函数还是结对损失函数,都具有一定的优势和劣势。对于单点损失函数来说,它忽略了物品评分之间的相关关系,对于结对损失函数来说,他只考虑了相关关系没有考虑用户对某一个特定物品的喜好程度。因此本发明将两种损失函数相结合,得到:

l=αlpoint-wise+(1-α)lpoint-wise

其中α是控制两种损失的权重系数。

我们进一步将隐式和显式反馈信息都考虑进来,得到:

其中max(ru)表示用户u给出的所有评分中最高得评分。这样不同的评分值对损失函数就可以会产生不同的影响。我们将本文提出的损失函数称为组合损失函数。

下面将j-ncf模型通过算法展示。在第1-4步骤是参数的初始化,在第9步到第10步是对用户和物品的特征信息进行提取,11和12步是结合di网络预测用户-物品的交互行为。最后在13和14步用损失函数和反向传播来优化网络中的参数。

input:epoches:trainingiterations;

r:theoriainalratingmatrix;

u:userset;

i:itemset;

output:weightmatrixofnetuser;

biasofnetuser;

weightmatrixofnetitem;

biasofnetitem;

weightmatrixofdinetwork;

biasmatrixofdinetwork;

依托于上述方法,本发明还提出了一种基于联合神经网络协同过滤的信息推荐系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。

本文提出的j-ncf模型采用了一个联合神经网络,将深度特征提取过程和深度交互行为建模过程紧密结合。其中,深度特征提取过程基于用户-物品的打分矩阵,结合深层神经网络,提取用户和物品的特征信息。深度交互行为建模过程以上述提取出的用户和物品的特征作为输入,结合深度神经网络,对用户-物品之间的非线性交互关系进行建模。j-ncf将这两个过程结合起来,并且允许这两个过程在通过训练不断的进行相互优化,从而提高推荐的效果。

实验结果显示本发明的方法在三个数据集上相较于现有的方法,都有了提高,其中,就hr@10指标,在movielens100k,ml1m,amovies数据集上分别提高了8.24%,10.81%,10.21%,就ndcg@10指标,分别提高了12.42%,14.24%,15.06%。同时,实验结果也表明j-ncf模型在稀疏数据集和一些不活跃的用户上也比现有的方法效果要好。

实施例2:

本实施例主要采用了两个数据集:(1)movieslens:其中包含movielens网站的多个评分数据集。数据集在不同的时间段收集。movielens100k(ml100k)包含1,682部电影的943位用户的10万个评级,以及3,706部电影中包含6040位用户的超过100万个评级的movienlens1m(ml1m)。(2)亚马逊电影(amovies),其中包含来自亚马逊的电影4,607,047的点击评分信息,它比movielens数据集更大更稀疏,并在推荐系统中广泛用于评估。具体处理后的数据集信息如下表1所示:

表1

本实施例绘制了如图3所示的所有三个数据集中具有不同交互次数的用户分布.x轴表示评级数量,而y轴表示与评级相对应的用户数量。三个数据集中的大多数用户只有少数评级,这些被认为这些用户是“非活跃用户”,很少有“活跃用户”的评级更高。在ml100k数据集中,61.72%的用户评分少于100,32.66%的评分在100个和300个之间,只有5.6%的用户评分超过300个。

当在具有不同特征的数据集上使用时,本实施例考虑的模型会得到不同的分数,即用户数和项目数。因此,为了评估模型在具有不同稀疏程度的数据集上的性能,保持用户和项目的数量相同。也就是说,对于三个数据集中的每一个,创建了三个不同稀疏度的版本。对于每个数据集,首先从主数据集中随机选择一个用户和项目的子集。该数据集以'-1'后缀表示。保持同一组用户和项目,具有'-2'后缀的数据集的第一个稀疏版本是通过从第一个数据集的用户项目矩阵中随机删除条目创建的。具有'-3'后缀的数据集的第二个稀疏版本类似地通过从第二数据集的用户项目矩阵中随机移除条目来创建。表2总结了所有数据集的特征。

表2

从表3中可以看到dmf在hr@10和ndcg@10方面比其他基线的性能更好。因此,只使用dmf作为后期实验中比较的最佳基线。bpr(bayesianpersonalizedranking,贝叶斯个性化评级)清楚地表明,在ndcg@10方面比item-pop基线方面的改进要高于hr@10方面的改善,这表明成对损失在排名预测方面有很强的表现。ncf和dmf模型都比两个传统的cf模型表现出更好的性能,这表明dl技术在提高推荐性能方面的实用性。

表3

将基线与j-ncf模型进行比较。ncf和dmf在hr@10和ndcg@10方面均与j-ncf模型相比有所下降。这表明紧密结合深度特征学习和深层交互建模的联合神经网络结构有助于提高推荐性能。对于j-ncf模型,独立于用户和项目向量的选择组合,j-ncf实现的性能优于dmf基线,导致ml100k数据集中hr10的改进范围从5.04%到8.24%,ml1m数据集为5.62%至10.81%,amovies数据集为7.21%至10.21%。ndcg@10的改进范围从ml100k数据集的7.22%到12.42%,ml1m数据集的6.25%到14.24%,以及amovies数据集的10.44%到15.06%。

通过比较j-ncfc和j-ncfm,我们看到j-ncfc达到最佳性能,以hr10计分别提高了3.05%,3.51%和2.81%,而在性能上分别提高了4.85%,7.51%和4.18%在三个数据集上的ndcg@10分别在j-ncfm之上。这是由于用户和项目之间的复杂关系可以用非线性内核来描述,而不是线性内核。

当前n个推荐列表的大小介于1到10之间时,随着hr和ndcg的总体表现增加,因为大n的值增加了在推荐列表中包括用户首选项目的概率。j-ncfhybrid始终如一地实现了对dmf的改进,以及两种模型在不同位置之间都有单独的损失函数,这证明了我们损失函数的实用性。基于ml100k数据库,j-ncfhybrid在hr@10方面分别比j-ncfpoint和j-ncfpair提高了2.68%和7.61%;对j-ncfpoint和j-ncfpair的ndcg@10的改进分别是3.99%和2.36%。参见图4,比较j-ncfpoint和j-ncfpair,我们发现j-ncfpoint在hr方面优于j-ncfpair,而j-ncfpair在ndcg方面显示出比j-ncfpoint更高的竞争性能。结对损失函数对排名预测有很强的表现。因此将混合损失函数中的逐点损失和成对损失结合起来。显然,基于j-ncfc的模型,即j-ncfpoint,j-ncfpair和j-ncfhybrid显示出比dmf更好的性能,这也证明了联合神经结构是合理的。图4(a)-图4(f)分别为ml00k的hr@n、ml1m的hr@n、amovies的hr@n、ml00k的ndcg@n、ml1m的ndcg@n、amovies的ndcg@n。j-ncfpoint为采用单点损失函数时的j-ncf模型,j-ncfpair为采用结对损失函数时的j-ncf模型,j-ncfhybrid为采用混合损失函数时的j-ncf模型。

在j-ncfc中,本实施例不仅通过具有多个隐含层的df神经网络来学习用户和物品的特征,而且还在di网络中模拟用户项与多层感知器的交互。因此,dl是否有助于我们的模型是至关重要的。本实施例通过实验来分别检查df和di网络中各种层数的j-ncfc的性能。结果示于表4中。表4中的df-i和di-i中的i分别表示j-ncfc的df网络和di网络中的层数。

表4

如表4所示,随着df网络中层数从1增加到5,di网络从1增加到4,推荐性能提高,这表明dl技术对推荐系统的有效性。特别是,与dmf相比,添加2层以上的深层看起来没有用处,j-ncfc在di或df网络中堆叠更多层或两者都实现了进一步的改进。此外,在增强推荐性能方面,在df网络中堆叠更多层比di网络更有帮助。例如,基于ml100k数据集,相对于(df-2,di-2),(df-3,di-2)的改进在hr@10和ndcg@10方面分别为2.82%和4.31%,(df-2,di-3)(df-2,di-2)的改进率分别为1.05%和2.62%。当我们在di网络(di-5)中堆叠4层以上时,j-ncfc的性能不会增加。然而,在df网络(df-5)中堆叠更多层似乎仍然有帮助,每个数据集产生的最佳结果都基于j-ncfc(df-5,di-4)配置。

如表5所示,j-ncfc在所有活动级别都优于最佳基线模型dmf,即构成大多数活动的“非活跃”用户以及相对较少的“非常活跃”的用户对所有数据集的评分更高。另外,j-ncfc模型在hr@10和ndcg@10方面始终达到最佳性能。

表5

具体而言,j-ncf比“非常活跃”的用户对“不活跃”用户的dmf模型显示出更大的改进。例如,当纳入具有更多交互作用的用户时,即从50%到90%,按照hr10分别从11.08%到7.85%,以ml100k的ndcg@10计算,9.57%到7.32%数据集。这是因为“非常活跃”的用户与评分较少的项目有很多互动,协作过滤缺乏仅基于评分矩阵推荐项目的信息,这表明可以扩展j-ncf,结合具有更多辅助信息,例如内容信息,以探索更准确的项目之间的关系。

为了研究j-ncf对不同数据稀疏程度的敏感性,本实施例还研究了表3中不同稀疏度数据集的推荐性能。图5显示了结果,如图5所示,当应用于包含更多用户和项目的数据集时,所有模型都会获得更好的性能。例如,amovies数据集上所有模型的整体性能要好于其他两个数据集。因此,为了研究具有不同稀疏程度的数据集中的模型敏感性,有必要将用户和项目的数量保持在与数据集相同的规模。图5(a)-图5(f)分别为ml00k的hr@10、ml1m的hr@10、amovies的hr@10、ml00k的ndcg@10、ml1m的ndcg@10、amovies的ndcg@10。

具体而言,对于ml100k数据集,ml1m数据集和amovies数据集,在hr@10和ndcg@10方面,具有不同稀疏度的所有子数据集中,j-ncf模型都优于基线模型dmf。另外,本实施例发现最好的模型是j-ncfc在稀疏数据集上表现出更高的改进。例如,基于ml100k数据集,在hr10和ndcg10指标上,在ml100k-1子集(密度=4.413%)方面,j-ncfc相比dmf的改进达到4.91%和9.12%,而在ml100k-3子集(密度=0.630%)hr10和ndcg10提高分别为7.77%和12.02%。

上述的j-ncfm是j-ncf使用基于元素的乘法将用户和项目特征向量组合为di网络的输入,di内部具有线性内核;j-ncfc是j-ncf使用串联将用户和项目特征向量组合为di层的输入,这是非线性方式。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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