一种基于二部图的新型随机游走的推荐方法与流程

文档序号:17927091发布日期:2019-06-15 00:29阅读:616来源:国知局
一种基于二部图的新型随机游走的推荐方法与流程

本发明属协同过滤推荐系统技术领域,具体涉及一种基于二部图的新型随机游走的推荐方法。



背景技术:

互联网的普及和迅猛发展,使得信息以指数形式增长。用户在面对大量信息的时候,无法容易地得到自己需要的信息,从而导致对信息的利用率降低,这种现象就是信息超载。当前,很多搜索引擎和门户网站利用信息检索的技术来解决信息超载的问题,它们帮助用户在大量的网络信息中获取有用的信息。然而,用户使用相同的关键字搜索信息时,他们得到的结果是一致的,这就导致检索得到的信息个性化程度很低,不能满足用户的兴趣需求。而推荐系统能够有效地解决这个问题。推荐系统收集数据,然后利用推荐算法,预测用户对产品的喜好程度,最后对用户进行产品推荐。推荐系统主要收集用户和产品的特征信息,以及用户对产品的喜好(例如,用户对产品的评分)等。通过分析处理以上信息,推荐系统就可以给用户提供个性化的建议,帮助用户选择喜欢的产品,甚至是潜意识喜欢的产品。协同过滤是目前最成功的推荐技术,它仅利用用户对产品的喜好来做出推荐,在学术界和工业界都到了广泛的关注。

推荐系统的性能主要表现在推荐的准确性上,因此,有许多文献提出了大量的方法,致力于提高协同过滤推荐技术的准确性,包括基于近邻的方法、基于矩阵分解的方法、基于矩阵填充的方法等。deshpande等人在文献“m.deshpandeandg.karypis,item-basedtop-nrecommendationalgorithms,acmtrans.oninformationsystem,vol.22,no.1,pp.143–177,2004.”中首先计算产品之间的相似度,然后将历史评分利用相似度加权求和得到用户对产品的推荐矩阵,进而做出推荐。hu等人在文献“y.hu,y.koren,andc.volinsky,collaborativefilteringforimplicitfeedbackdatasets,inproceedingsofthe8thieeeinternationalconferenceondatamining,icdm,2008,pp.263–272.”中认为用户对产品的评分仅仅由一些因素决定,将原始的评分矩阵分解为用户和产品特征矩阵,通过训练数据来拟合这两个矩阵,从而得到推荐结果。kang等人在文献“z.kang,c.peng,andq.cheng,top-nrecommendersystemviamatrixcompletion,inproceedingsofthe30thaaaiconferenceonartificialintelligence,aaai,2016,pp.179–185.”中将推荐问题看做矩阵填充问题,利用一个非凸的秩松弛来近似评分矩阵的秩,进而优化目标函数来得到推荐结果。

然而,这些方法都会面临稀疏性问题。在实际的场景中,用户和产品的数目往往是巨大的,大部分用户仅仅评价了极少的产品,同时大部分产品仅被极少数的用户评价,导致评分矩阵变得十分稀疏,使得这些方法的推荐准确率受到影响。虽然有很多混合的推荐方法利用额外的特征信息来解决这个问题,但针对协同过滤,尚没有一种有效的方法。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于二部图的新型随机游走推荐方法。首先,构建用户-产品二部图,即根据评分矩阵构造得到相似度矩阵,并进行拉普拉斯正则化处理;然后,采用随机游走思想,利用正则化后的相似度矩阵计算得到具有停止条件的转移矩阵;最后,计算得到推荐矩阵,并将推荐矩阵进行降序排序,得到推荐结果。本发明方法将推荐问题看作半监督的多标签分类问题,可以解决推荐方法稀疏性的问题,使得推荐结果更符合实际应用的需求。

一种基于二部图的新型随机游走推荐方法,其特征在于步骤如下:

步骤1:设u={u1,u2,...,um}为m个用户的集合,ui表示用户,i=1,…,m,m为用户数量,i={i1,i2,...,in}为n个产品的集合,ij表示产品,j=1,…,n,n为产品数量,首先,构造相似度矩阵w如下:

其中,下标表示矩阵的大小,r为评分矩阵,其矩阵元素rij表示用户i对产品j的评分,i=1,…,m,j=1,…,n。

然后,按下式对相似度矩阵w进行拉普拉斯正则化,得到正则化的相似度矩阵

其中,d是相似度矩阵w的度矩阵。

步骤2:将正则化的相似度矩阵按行归一化,得到转移矩阵p,即:

其中,是矩阵的度矩阵;

然后,按下式构造得到具有停止条件的转移矩阵

其中,iα和iβ是对角矩阵,iα的对角线元素αi满足:

iβ的对角线元素βi满足:

其中,β为概率,取值范围为(0,1),α=1-β。

步骤3:按下式计算得到推荐矩阵fm:

其中,d1为矩阵r的度矩阵,d2为矩阵rt的度矩阵,d3为矩阵的度矩阵,d4为矩阵的度矩阵,im为大小为m×m的单位矩阵,为大小为n×n的对角矩阵,其对角元素为α,为大小为n×n的对角矩阵,其对角元素为β。

将推荐矩阵fm的每一行元素按照从大到小排序,并剔除用户已经评价过的产品,即为最终的推荐结果。

步骤2中转移矩阵p还可以按下式计算得到:

此时,步骤3中的

本发明的有益效果是:由于采用随机游走方法,能够充分挖掘用户-产品二部图中的信息,从而提高稀疏数据上的推荐准确率;由于使用拉普拉斯正则化,降低了二部图中高度结点对个性化推荐的不利影响,提高了低度结点的游走概率,可以更好的挖掘稀疏二部图中的关联信息;由于采用解析解的方式得到推荐结果,不需要训练,大大地提升了推荐的效率。

附图说明

图1是本发明的一种基于二部图的新型随机游走推荐方法基本流程图

图2是本发明的随机游走思想示意图

图3是本发明的评分矩阵示意图

图4是本发明中拉普拉斯正则化作用示意图

图中,圆形代表用户,矩形代表产品,um表示第m个用户,in表示第n个产品,用户与产品之间的连线表示用户对产品的评分或者是结点之间的权重值,r是评分矩阵,w是相似度矩阵,是正则化的相似度矩阵。

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

本发明提供了一种基于二部图的新型随机游走推荐方法,其基本实现过程如图1所示。本发明方法主要采用随机游走的思想,如图2所示,将用户与产品分别看作二部图的两个结点集,将评分值作为结点之间的权重。从目标用户结点出发,walker在此二部图上进行游走,在每一步,walker能够随机走向下一个与当前结点相连接的结点。权重代表了用户对产品的喜好程度,一个用户越喜欢某一个产品,他们之间的权重值就越高。因此,当walker选择下一步的结点时,使walker以较大概率走向与之连接权重值较大的结点,并设定一个停止条件,当walker目前在一个产品结点时,使之以概率β停止在此产品结点,并以概率1-β游走到下一个结点。当walker在二部图上这样游走无穷步后,就可以得到目标用户最喜欢的产品。

本发明方法的具体实现过程如下:

设u={u1,u2,...,um}为m个用户的集合,ui表示用户,i=1,…,m,m为用户数量,i={i1,i2,...,in}为n个产品的集合,ij表示产品,j=1,…,n,n为产品数量。定义评分矩阵如图3所示,矩阵的每一行代表一个用户,矩阵的每一列代表一个产品,矩阵中的元素rij表示用户i对产品j的评分,i=1,…,m,j=1,…,n,如果rij=0,表示用户i没有对产品j进行评分。

1、构造相似度矩阵w:

相似度矩阵w用来表示二部图中结点之间的相似度,用户对产品越喜欢,评分越高,相似度越高,结点之间的游走概率越大。

然后,按下式对相似度矩阵w进行拉普拉斯正则化,得到正则化的相似度矩阵

其中,d是相似度矩阵w的度矩阵。对于矩阵中的每个元素,上式也可以写为:

其中,di是度矩阵d的第i个对角元素,满足

在推荐系统中,根据评价产品的长尾分布,有一些流行的产品被频繁地评价。同样,有一些活跃的用户评价了很多产品。在二部图上,这些用户和产品是高度结点,他们会导致次优的推荐效果,即不是个性化的推荐结果。因为walker会很容易游走到这些结点上,从而导致大部分用户被推荐一些特定的产品。如图4所示,线越粗代表权重值越大,拉普拉斯正则化可以减小高度结点的边的权重值,并且可以增加低度结点的边的权重值。这样当walker在选择下一步的结点时,正则化化操作会弱化关注热度很高的产品,让walker有更高的可能性去游走到更个性化的结点,从而更精准地把握用户的兴趣点,来做出更好的推荐。

2、计算转移矩阵p:

将相似度矩阵按行归一化,得到转移矩阵p:

其中,是正则化的相似度矩阵的度矩阵。

本发明称此时的矩阵p为概率转移矩阵,而基于此概率转移矩阵的算法称为rw算法。

但是对于推荐系统来说,系统关心的是每个用户对所有产品的一个喜好排列,而并不需要walker随机游走的准确的概率值。因此,还可以直接将正则化的相似度矩阵作为偏移矩阵,即:

本发明称此时的矩阵p为偏好转移矩阵,基于此偏好转移矩阵的算法称为i-rw算法。

因为用户顶点与产品结点的关联越大,用户就越可能喜欢这个产品,walker游走的步数越少,得到的转移矩阵中,walker游走到目标用户喜欢的产品的偏好值越大。因此,需要给每一步游走的结果分配一个权重值。为此,本发明设定了一个随机游走的停止条件,当walker目前在一个产品结点时,使之以概率β停止在此产品结点,并以概率α=1-β游走到下一个结点。因此,如下构造具有停止条件的转移矩阵

其中,iα和iβ是对角矩阵,iα的对角线元素αi满足:

iβ的对角线元素βi满足:

其中,β为概率,取值范围为(0,1),α=1-β。

可以看出,当walker在用户结点时(1≤i≤m),他下一步将游走到产品结点;当walker在产品结点时(m+1≤i≤m+n),他下一步将以概率α游走到用户结点,或者以概率β停止到该产品结点。

3、为了得到随机游走的结果,定义g为:

其中,((iαp)kiβ)ij是walker从结点i出发在第k步停止到产品j的偏好值。

定义初始指示矩阵y为:

其中,0m×n为大小为m×n的全零矩阵,in为大小为n的单位矩阵。

本发明将产品看作标签,用户的初始标签为0,产品的初始标签是其本身。

按照下式计算得到半监督多分类结果,即随机游走的结果矩阵f:

其中,im+n为大小为m+n的单位矩阵,fm为矩阵f的前m行,即为推荐矩阵,fn为矩阵f的后n行。

对于rw算法,因为f1=1,其中因此,(fm)ij是walker从用户i出发停止到标签j的概率;对于i-rw算法,(fm)ij不再是一个概率值,而是代表用户i喜欢产品j的程度。因此,对于目标用户,本发明将推荐矩阵fm的每一行进行降序排序,并剔除用户已经评价过的产品,即为推荐系统的推荐结果,还可以按需求取前n个产品推荐给用户。

为了减少不必要的计算,可以采用解析方式直接计算出推荐矩阵fm。

对于rw算法,定义其中,d1、d2、d3、d4分别为矩阵r、rt和的度矩阵,则有:

其中,im和in分别是m×m和n×n的单位矩阵,分别是n×n的对角矩阵,它们的对角元素分别是α和β。

如果给定一个分块矩阵其中,矩阵e、f、g、h具有任意大小,e和h是方阵,并且令k=e-fh-1g,矩阵h和k非奇异。那么,该分块矩阵的一个逆矩阵为:

因此,可以得到:

对于i-rw算法,定义矩阵d1、d2、im、的定义与其在rw算法中的定义相同,同理可得:

为了验证本发明方法在稀疏数据上的表现性,本发明在两个真实推荐数据集上进行实验,并选取了不同层次的稀疏度来划分实验数据,分别为1:10,1:15:1:20,1:25和1:30.同时,分别选取基于用户的协同过滤方法(u-knn)、基于产品的协同过滤方法(i-knn)、稀疏线性方法(slim)、低秩稀疏线性方法(lorslim)、加权矩阵分解方法(wrmf)、纯奇异值分解方法(puresvd)、奇异值阈值方法(svt)、基于行列式对数的矩阵填充方法(ldmc)、产品排列方法(itemrank)、个性化记录排列方法(ppr)等十种方法进行效果对比,计算不同方法在两个数据集上的平均推荐精准度。表1为在数据集movielens上的计算结果数据,表2为在数据集netflix上的计算结果。

平均推荐精准度precision@n的定义为:

其中,n是推荐产品的数目,m为用户集u中用户的数目,是对用户ui正确推荐的产品数目。

从表1与表2可以看出,随着稀疏程度的增加,大部分方法的推荐精准度都一定程度上都到了稀疏数据的影响,甚至不能够做出推荐。而对于本发明的i-rw算法几乎不受稀疏数据的影响,并且能做出很高的精准度的推荐。

表1

表2

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