掌桥专利:专业的专利平台
掌桥专利
首页

基于深度游走和物品协同过滤的融合推荐方法

文献发布时间:2023-06-19 18:46:07


基于深度游走和物品协同过滤的融合推荐方法

技术领域

本申请属于融合推荐技术领域,具体涉及一种基于深度游走和物品协同过滤的融合推荐方法。

背景技术

在信息爆炸的时代,用户难以从大量数据信息中快速精确地获取所需信息,容易产生信息超载(Information Overload)问题。为帮助用户快速找到感兴趣的产品,推荐系统应运而生。近年来,推荐系统在电影、新闻、电子商务等诸多领域中起到了重要作用,有效减轻了信息超载现象。作为推荐系统的核心部分,推荐算法成为人们研究的热门对象。目前协同过滤(Collaborative Filtering,CF)算法已经应用于互联网的众多领域,协同过滤的目标是根据用户先前的爱好和有相同喜好的用户的购买记录(浏览信息)来推测该用户感兴趣的物品(内容)。深度游走(DeepWalk)算法是一种将随机游走(random walk)和word2vec两种算法相结合的图结构数据挖掘算法。该算法能够学习网络的隐藏信息,能够将图中的节点表示为一个包含潜在信息的Embedding向量,我们可以将用户的行为数据表示成图的形式,再根据图节点的相似度,最终给用户推荐感兴趣的物品。

目前在推荐系统中,协同过滤技术已经被应用于个性化推荐系统中。但随着平台用户数目和商品数目的逐渐增加,整个项目矩阵上用户评分数据极端稀疏,导致了预测结果的不准确性,推荐精度不高。

发明内容

为此,本申请提供基于深度游走和物品协同过滤的融合推荐方法,有助于帮助解决目前通过协同过滤技术进行个性化推荐时,不能及时修正用户兴趣随时间推移而发生变化的情况,且在数据稀疏时存在推荐精度不高的问题。

为实现以上目的,本申请采用如下技术方案:

本申请提供基于深度游走和物品协同过滤的融合推荐方法,包括:

S1:从第三方平台中获取用户对物品的行为序列和评分数据作为数据集,并将数据集划分为训练集和测试集;

S2:基于数据集,利用基于物品的协同过滤算法构建评分矩阵计算出不同推荐物品相似度,并结合皮尔逊相关系数值获得协同推荐物品集合;

S3:基于测试集获取行为序列并构建有向图,利用深度游走算法对有向图进行随机游走采样,获得随机游走序列后输入模型处理,生成最终的Embedding向量,按照节点Embedding向量相似度获得目标推荐物品集合;

S4:引入预设的权重因子α对协同推荐物品集合的物品预测概率y与目标推荐物品集合中的物品预测概率q分别进行修正,分别获得修正后的协同推荐物品集合与目标推荐物品集合;若修正后的协同推荐物品集合与目标推荐物品集合中出现相同的推荐物品,则基于修正后的物品预测概率y和物品预测概率q,引入增强因子β计算出融合预测概率,将协同推荐物品集合和目标推荐物品集合中的推荐物品按照融合预测概率大小进行递减排序,选取前K个推荐物品作为融合推荐结果推荐给用户。

进一步地,所述步骤S2具体包括以下子步骤:

S201:构建评分矩阵,令用户U={u

S202:将所有用户对同一物品的评分作为向量,通过计算各个向量之间的皮尔逊相关系数值来计算物品之间的相似性,计算公式如下:

其中,sim(i,j)表示物品i与物品j之间的皮尔逊相关系数值;R

S203:根据步骤S202中相似度计算结果,构建相似度矩阵P

S204:根据相似度矩阵P

进一步地,所述步骤S3具体包括以下子步骤:

S301:获取测试集中用户的行为序列;

S302:将用户的行为序列按时间序列转换成有向图;

S303:使用Random Walk对有向图中的节点进行随机采样,得到随机采样的节点序列,即随机游走序列;

S304:将节点序列输入到word2vec模型中,生成最终的Embedding向量;

S305:根据有向图中各个节点的Embedding向量相似度,获得目标推荐物品集合。

进一步地,所述步骤S4具体包括:

令协同推荐物品集合D(i',n)={d1,d2,d3,...,dn}为第i'个用户使用深度游走算法推荐的n个物品;D(i',n)集合中的dc是一个二维向量,c∈[1,n],dc=(x,y),其中,x代表的是目标推荐物品id号,y表示目标推荐物品为x时的预测概率;

令目标推荐物品集合F(j',m)={f1,f2,f3,...,fm}为第j'个用户使用基于物品的协同过滤算法推荐的m个物品;F(j',m)集合中的ft是一个二维向量,t∈[1,m],ft=(p,q),其中p代表的是协同推荐物品id号,q表示协同推荐物品为p时的预测概率;

引入与数据稀疏度有关的预设权重因子α,对预测概率y和预测概率q分别进行修正,具体的修正过程如下式所示:

dc(x,y)=dc(x,(1-α)*y)

ft(p,q)=ft(p,α*q)

基于修正后的预测概率y和预测概率q进行物品预测,获得修正后的协同推荐物品集合与目标推荐物品集合;

若修正后的协同推荐物品集合与目标推荐物品集合中出现相同推荐物品时,引入增强因子β,β=1+1/len,对预测概率y和预测概率q中最大的预测概率进行加权,计算出融合预测概率,计算过程如下式所示:

predict=max{y,q}*(1+1/len)

其中,len为集合D(i',n)和集合F(j',m)中元素个数之和,len=n+m;y表示目标推荐物品为x时的预测概率;q表示协同推荐物品为p时的预测概率;predict表示物品推荐的融合预测概率;

最后再将集合D(i',n)和集合F(j',m)中元素按融合预测概率的大小进行递减排序,取前K个元素为推荐集,推荐集S为:

S=Top-K(sort(D(i',n),F(j',m)))。

进一步地,所述步骤S3中利用深度游走算法对有向图进行随机游走采样过程还包括对深度游走算法中的参数进行配置,具体参数配置内容包括:随机游走长度L为200,用户向量维数D为25,循环次数num为140,word2vec模型的滑动窗口大小W为3。

本申请采用以上技术方案,至少具备以下有益效果:

通过本申请提供的基于深度游走和物品协同过滤的融合推荐方法,方法先从第三方平台中获取用户对物品的行为序列和评分数据作为数据集,并将数据集划分为训练集和测试集;基于数据集,利用基于物品的协同过滤算法构建评分矩阵计算出不同推荐物品相似度,并结合皮尔逊相关系数值获得协同推荐物品集合;同时基于测试集获取行为序列并构建有向图,利用深度游走算法对有向图进行随机游走采样,获得随机游走序列后输入模型处理,生成最终的Embedding向量,按照节点Embedding向量相似度获得目标推荐物品集合;引入预设的权重因子α对协同推荐物品集合的物品预测概率y与目标推荐物品集合中的物品预测概率q分别进行修正,分别获得修正后的协同推荐物品集合与目标推荐物品集合;若修正后的协同推荐物品集合与目标推荐物品集合中出现相同的推荐物品,则基于修正后的物品预测概率y和物品预测概率q,引入增强因子β计算出融合预测概率,将协同推荐物品集合和目标推荐物品集合中的推荐物品按照融合预测概率大小进行递减排序,选取前K个推荐物品作为融合推荐结果推荐给用户。本申请方案通过将深度游走和物品的协同过滤算法算法相融合,解决了协同过滤算法难以考虑用户行为的时序特征,及时修正了用户兴趣会随时间推移而发生变化的情况,同时也提高了协同过滤在数据稀疏时的推荐精度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一实施例示出的基于深度游走和物品协同过滤的融合推荐方法流程图;

图2是根据一示例性实施例示出的融合算法的算法流程图;

图3是根据一示例性实施例示出的F1最大时各个参数的分布情况示意图;

图4是根据一示例性实施例示出的DACF与其他传统算法的召回率对比图;

图5是根据一示例性实施例示出的DACF与其他传统算法的精准率对比图;

图6是根据一示例性实施例示出的DACF与其他传统算法的F1结果对比图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。

传统的推荐算法主要有五类:协同过滤算法、基于内容的推荐算法、基于关联规则的推荐算法、基于效用的推荐算法和组合推荐算法。Sarwar等提出了基于物品的协同过滤算法,通过不同物品之间的相识度大小为用户推荐物品。周凯等通过机器学习中的无监督方法,在大量用户行为中发现不同物品之间的关联性,最后通过关联性对用户进行推荐。Shu等通过用户的历史行为来学习用户的偏好,然后通过物品的相似性度量对用户进行推荐。但是该方法无法挖掘出用户的潜在兴趣,推荐精度较低。Bi等总结了多层感知的有效学习能力,提出了一种多层感知的组合推荐方法。Li等为每一个用户去创建一个效用函数,并将非产品的属性考虑到效用计算中,这虽然提高了推荐的精度,但难点也显而易见——怎么样为每一个用户去创建一个效用函数。本申请方案将深度游走和物品的协同过滤算法(Item-Based CF)算法相融合,解决了协同过滤算法难以考虑用户行为的时序特征,及时修正用户兴趣会随时间推移而发生变化的情况,同时也提高了协同过滤在数据稀疏时的推荐精度。

具体的,本申请方案在电影评分数据集ml-latest-small上进行实验,通过实验结果证明算法的有效性。

请参阅图1,图1是根据一示例性实施例示出的基于深度游走和物品协同过滤的融合推荐方法流程图,如图1所示,该方法包括:

S1:从第三方平台中获取用户对物品的行为序列和评分数据作为数据集,并将数据集划分为训练集和测试集;

S2:基于数据集,利用基于物品的协同过滤算法构建评分矩阵计算出不同推荐物品相似度,并结合皮尔逊相关系数值获得协同推荐物品集合;

S3:基于测试集获取行为序列并构建有向图,利用深度游走算法对有向图进行随机游走采样,获得随机游走序列后输入模型处理,生成最终的Embedding向量,按照节点Embedding向量相似度获得目标推荐物品集合;

S4:引入预设的权重因子α对协同推荐物品集合的物品预测概率y与目标推荐物品集合中的物品预测概率q分别进行修正,分别获得修正后的协同推荐物品集合与目标推荐物品集合;若修正后的协同推荐物品集合与目标推荐物品集合中出现相同的推荐物品,则基于修正后的物品预测概率y和物品预测概率q,引入增强因子β计算出融合预测概率,将协同推荐物品集合和目标推荐物品集合中的推荐物品按照融合预测概率大小进行递减排序,选取前K个推荐物品作为融合推荐结果推荐给用户。

进一步地,在一个实施例中,通常CF算法分为两大类,一类为基于memory的(Memory-based),另一类基于Model的(Model-based),Item-Based CF算法(基于物品的协同过滤算法)属于Memory-based类型。Item-based CF算法的核心是将所有用户对同一个物品的评分看成一个向量,在根据向量之间夹角的大小,来判断物品之间是否相似。夹角越小,说明物品越相似,反之,则说明物品越无关。本申请方案中的步骤S2(Item-Based CF推荐过程)具体包括以下子步骤:

S201:构建评分矩阵,令用户U={u

S202:将所有用户对同一物品的评分作为向量,通过计算各个向量之间的皮尔逊相关系数值来计算物品之间的相似性,计算公式如下:

其中,sim(i,j)表示物品i与物品j之间的皮尔逊相关系数值;R

S203:根据步骤S202中相似度计算结果,构建相似度矩阵P

S204:根据相似度矩阵P

进一步地,所述步骤S3具体包括以下子步骤:

S301:获取测试集中用户的行为序列;

S302:将用户的行为序列按时间序列转换成有向图;

S303:使用Random Walk对有向图中的节点进行随机采样,得到随机采样的节点序列,即随机游走序列;

S304:将节点序列输入到word2vec模型中,生成最终的Embedding向量;

S305:根据有向图中节点的Embedding向量相似度,获得目标推荐物品集合。

进一步地,所述步骤S4具体包括:

令协同推荐物品集合D(i',n)={d1,d2,d3,...,dn}为第i'个用户使用深度游走算法推荐的n个物品;D(i',n)集合中的dc是一个二维向量,c∈[1,n],dc=(x,y),其中,x代表的是目标推荐物品id号,y表示目标推荐物品为x时的预测概率。

令目标推荐物品集合F(j',m)={f1,f2,f3,...,fm}为第j'个用户使用基于物品的协同过滤算法推荐的m个物品。F(j',m)集合中的ft是一个二维向量,t∈[1,m],ft=(p,q),其中p代表的是协同推荐物品id号,q表示协同推荐物品为p时的预测概率;

引入与数据稀疏度有关的预设权重因子(衰减因子)α,对预测概率y和预测概率q分别进行修正,具体的修正过程如下式所示:

dc(x,y)=dc(x,(1-α)*y)

ft(p,q)=ft(p,α*q)

根据上述修正后的预测概率y与q,进一步进行物品预测可获得修正后的协同推荐物品集合与目标推荐物品集合。

当使用深度游走(DeepWalk)算法和Item-Based CF算法对同一个用户推荐物品时,若二者的推荐集合中出现了相同的推荐物品,即修正后的协同推荐物品集合与目标推荐物品集合中出现相同的推荐物品,x=p时,则基于修正后的物品预测概率y和物品预测概率q,引入增强因子β,β=1+1/len,对预测概率y和预测概率q中最大的预测概率进行加权,计算出融合预测概率,计算过程如下式所示:

predict=max{y,q}*(1+1/len)

其中,len为集合D(i',n)和集合F(j',m)中元素个数之和,len=n+m;y表示目标推荐物品为x时的预测概率;q表示协同推荐物品为p时的预测概率;predict表示物品推荐的融合预测概率;

最后再将集合D(i',n)和集合F(j',m)中元素按融合预测概率的大小进行递减排序,取前K个元素为推荐集,推荐集S为:

S=Top-K(sort(D(i',n),F(j',m)))

其中,递减排序过程采用TopN算法进行处理。

进一步的,本申请方案中预设权重因子α的设定与数据集的大小(即数据稀疏度)相关,权重因子α值的设定随着数据集的增大而减小,具体根据实际数据集的大小进行设定,例如数据集中包含5000条数据时,权重因子α设定为0.9,数据集中包含20000条数据时,权重因子α设定为0.7。随着数据集里面数据的增加,α的值就会减少,因为随着数据的饱和,采用Item-Based CF算法推荐是更准确的。因此,通过调节权重因子α的大小,可以改变物品推荐推荐的重心。权重因子α越大,推荐的重心就会偏向于Item-Based CF算法进行推荐。

进一步地,在一个实施例中,本申请方案通过第三方平台提供的数据进行实验和结果分析,具体过程如下:

1、数据集。本申请方案根据第三方平台grouplens提供的ml-latest-small电影评分数据集进行实验评测,数据集中包含了610个读者对9000部电影的100000条评估数据,评分范围为0~5。本次实验从数据集的4%~50%逐步作为训练集,剩余的96%~50%的数据集中用户评分大于4的数据作为测试集。具体用于评测的数据信息和矩阵的稀疏情况如表1所示。

表1数据稀疏情况

2、评价指标。本申请方案使用召回率和精准率来对融合推荐结果的准确率进行评价。其中,召回率(Recall)描述的是运用某种算法在训练集中为用户i的推荐集S中的正确数与该用户i在测试集中推荐数据T(i)的比值,Recall描述的是用户的行为数据,Recall越大,说明对用户行为预测就越准确。召回率的计算公式如下:

其中,R(i)是用户i经过模型训练后所得的推荐集;T(i)为用户i在测试集中的推荐数据;recall为召回率;n表示用户的数量。

精准率(precision)描述的是运用某种算法在训练集中所有用户的推荐集物品中的正确数与推荐集中元素的个数的比例,precision描述的是用户喜爱的物品的数据,precision越大,说明算法的推荐准确率就会越高。精准率的计算公式如下:

其中,R(i)是用户i经过模型训练后所得的推荐集;T(i)为用户i在测试集中的推荐数据;precision为精准率;n表示用户的数量。

Recall和precision评估有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是使用F-Measure评估(又称为F-Score)。F-Measure是Recall和precision的加权调和平均:

当参数α=1时,就是最常见的F1,即:

F1综合了precision和recall的结果,当F1越高时越能说明实验的方法比较有效。

参数选择。根据多次重复实验得出,若每次以最高的F1-Measure作为衡量标准时,深度游走算法中的参数(随机游走长度L,维数D,循环次数num,窗口大小W)随着数据集的增加,呈现出无关系且反复横跳状态,如图3所示。因此,本申请方案取L=200,D=25,num=140,W=3。

具体的,本申请方案将传统模型和基于机器学习的模型的算法与本文提出的DACF算法进行对比,下面是对比算法的描述:

Latent Factor Model(LFM)是在用户和物品的共现矩阵上,引入隐向量,用隐向量表示用户和物品,进而增强了模型表征稀疏数据的能力。

Singular Value Decomposition(SVD)是在机器学习领域广泛应用的算法,它的核心是通过降维算法得到的特征分解,在通过重构算法进行物品推荐。各项参数对比过程如下:

1、召回率。在实验测试中,本申请方案提供的DACF算法与其他传统算法的Recall结果对比如图4所示。由图4可知,DACF算法的Recall是是高于其他传统算法的,DACF算法的召回率比传统算法中召回率最好的SVD算法平均提高了2.8%。DACF算法与SVD算法的召回率差值最高时有5.26%。

2、精准率。本申请方案提供的DACF算法与其他传统算法的precision结果对比如图5所示。由图5可知,DACF算法的precision是高于其他传统算法的,DACF算法的精准率比传统算法中召回率最好的SVD算法平均提高了5.47%。DACF算法与SVD算法的召回率差值最高时有8.68%。

3、F-Measure。本申请方案提供的DACF算法与其他传统算法的F1结果对比如图6所示。由图可知,DACF算法的F1是高于其他传统算法的,DACF算法的F1比传统算法中F1最好的SVD算法平均提高了3.67%,DACF算法与SVD算法的F1差值最高时有6.39%。

通过上面的三个参数的效果判别过程,我们可以清楚的看到Item-Based算法在数据稀疏的情况下,各项评价指标都是相当低的。但融合后的DACF算法在Item-Based算法上,考虑了大众共同喜好、用户的评分习惯以及用户的兴趣随时间进行迁移等诸多问题,对用户的相似度计算公式进行相应的改进,通过实验检验得出,DACF算法相较于传统算法召回率平均提高2.8%,在数据集稀疏的情况下,DACF的Precision和F1比传统算法分别高出了5.47%,3.67%,在一定程度上缓解了系统的冷启动问题,提高了推荐物品的正确率,有效弥补了传统算法的缺陷。

本申请方案将深度游走算法与基于物品协同过滤算法相融合,提出DACF推荐算法,引入对数据集大小相关的权重因子和深度游走算法和Item-Based CF算法推荐的增强因子,改变了推荐物品的预测概率权重。在ml-latest-small数据集上,将DACF推荐算法与LFM、SVD、Item-Based CF等传统算法进行对比,DACF算法的召回率有着显著提高,在一定程度上缓解了传统算法的冷启动问题,提高了推荐质量。DACF算法的精准率也比其他的传统算法的高,提升了对用户喜爱物品推荐的效率。而且DACF算法比传统算法有着更高的F1,在推荐物品领域的选择上比传统算法更有优势。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。

应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

技术分类

06120115686824