一种基于协同过滤算法的项目推荐方法及系统的制作方法

文档序号:10471233阅读:298来源:国知局
一种基于协同过滤算法的项目推荐方法及系统的制作方法
【专利摘要】本发明涉及自动推荐技术领域,特别是涉及一种基于协同过滤算法的项目推荐方法及系统,该方法包括:离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类;离线确定聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk;在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐。本发明通过预先离线得到k个用户聚类进而得到聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk来降低在线推荐时的工作量,进而保证推荐生成速度的目的,进而解决了传统的协同过滤算法在生成推荐时的速度瓶颈问题。
【专利说明】
一种基于协同过滤算法的项目推荐方法及系统
技术领域
[0001]本发明涉及自动推荐技术领域,特别是涉及一种基于协同过滤算法的项目推荐方法及系统。
【背景技术】
[0002]当今,随着互联网和电子商务的发展,推荐系统已经逐渐成为电子商务的一项重要研究内容,得到了越来越多研究者的关注。目前,几乎所有大型的电子商务系统,如Amazon,⑶NOW,eBay等等,都不同程度地使用了各种形式的自动推荐系统。
[0003]在现有的基于协同过滤算法的项目推荐过程中,首先,通过基本用户对项目(如电子商务中的商品、电影、音乐、网页及文献等)的评分,对基本用户的评分行为进行聚类分析,将基本用户划分为若干个类别,这样与协同过滤系统结合,可以认为每个用户隶属于一个或多个潜在的类别;接着,根据目标用户与各个基本用户对项目评分之间的相似性,搜索目标用户的最近邻居;最后,根据向目标用户产生推荐最近邻居的评分较高的前一位或前几位,即目标用户对未评分项目的评分可以通过最近邻居对该项目评分的加权平均值进行逼近,从而产生推荐。
[0004]现有的上述整个推荐过程均是在线完成的,然而,随着电子商务系统规模的扩大,用于产生推荐的项目数据的数据量也在不断增多,如果仍然在线完成上述整个推荐过程,工作量大耗时长,这会严重影响推荐生成的速度。

【发明内容】

[0005]有鉴于此,本发明提供了一种基于协同过滤算法的项目推荐方法及系统,以实现降低在线推荐时的工作量,进而保证推荐生成速度的目的。
[0006]为解决上述技术问题,本发明提供一种基于协同过滤算法的项目推荐方法,该方法包括:
[0007]离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类;
[0008]离线确定聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk;
[0009]在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐;
[0010]其中,11为所有项目的数量,Ckxn={Cij},Vmxk= {vpq},Cij为聚类中心i对项目j的评分,vM为基本用户P对于聚类中心q的相似系数;i = {I,2,…,k},j = {l,2,-_,n},p={l,2,.",m},q={l,2,.",k}0
[0011]上述方法中,优选地,所述在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐,包括:
[0012]利用所述聚类中心矩阵Ckxn,计算所述目标用户与k个所述聚类中心之间的相似性,得到相似系数向量31*,31*=[81,82^",81{];
[0013]计算所述相似系数向量Slxk与所述类别所属程度矩阵Vmxk各行之间的欧氏距离;
[0014]将欧氏距离最小的行对应的基本用户作为所述目标用户的最近邻居,并参考所述最近邻居的项目喜好情况,对所述目标用户进行项目推荐。
[0015]上述方法中,优选地,所述离线对m个基本用户的项目评分行为进行聚类分析,得至IJk个用户聚类,包括:
[0016]计算两两所述基本用户之间的相似系数,并将相似系数大于预设阈值的两个所述基本用户归为同一原始类别;
[0017]确定所有所述原始类别中包含所述基本用户的数量排名前k位的原始类别;
[0018]将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类。
[0019]上述方法中,优选地,所述将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类,包括:
[0020]将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行基于K-Means算法的聚类分析,得到k个所述用户聚类。
[0021]本发明还提供了一种基于协同过滤算法的项目推荐系统,该系统包括:
[0022]离线聚类单元,用于离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类;
[0023]离线相关矩阵确定单元,用于离线确定聚类中心矩阵Ckxn和类别所属程度矩阵
Vmxk ;
[0024]在线推荐单元,用于在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐;
[0025]其中,11为所有项目的数量,Ckm={cij},Vmxk= {vPq},Cij为聚类中心i对项目j的评分,Vpq为基本用户P对于聚类中心q的相似系数;i = U,2,…,k},j = {l,2,-_,n},p={l,2,.",m},q={l,2,.",k}0
[0026]上述系统中,优选地,所述在线推荐单元包括:
[0027]相似系数向量计算子单元,用于利用所述聚类中心矩阵Ckxn,计算所述目标用户与k个所述聚类中心之间的相似性,得到相似系数向量Sb*,Sixk= [Si,S2,…,Sk];
[0028]欧氏距离计算子单元,用于计算所述相似系数向量Slxk与所述类别所属程度矩阵V?k各行之间的欧氏距离;
[0029]推荐子单元,用于将欧氏距离最小的行对应的基本用户作为所述目标用户的最近邻居,并参考所述最近邻居的项目喜好情况,对所述目标用户进行项目推荐。
[0030]上述系统中,优选地,所述离线聚类单元包括:
[0031]原始类别确定子单元,用于计算两两所述基本用户之间的相似系数,并将相似系数大于预设阈值的两个所述基本用户归为同一原始类别;
[0032]排名子单元,用于确定所有所述原始类别中包含所述基本用户的数量排名前的原始类别;
[0033]聚类子单元,用于将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类。
[0034]上述系统中,优选地,所述聚类子单元具体用于:将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行基于K-Means算法的聚类分析,得到k个所述用户聚类。
[0035]以上本发明提供的一种基于协同过滤算法的项目推荐方法及系统中,具体地,先离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类;接着基于这k个用户聚类,离线确定聚类中心矩阵Ckm和类别所属程度矩阵Vmxk ;其中,11为所有项目的数量,Cij为聚类中心i对项目j的评分,vPq为基本用户P对于聚类中心q的相似系数;最后,在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐。
[0036]可见,本发明通过预先离线得到k个用户聚类进而得到聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk来降低在线推荐时的工作量,进而保证推荐生成速度的目的,进而解决了传统的协同过滤算法在生成推荐时的速度瓶颈问题。
【附图说明】
[0037]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0038]图1为本发明实施例提供的一种基于协同过滤算法的项目推荐方法的流程图;
[0039]图2为本发明实施例提供的一种基于协同过滤算法的项目推荐系统的结构框图示意图。
【具体实施方式】
[0040]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明的核心是提供一种基于协同过滤算法的项目推荐方法及系统,以实现降低在线推荐时的工作量,进而保证推荐生成速度的目的。
[0042]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0043]参考图1,图1示出了本发明实施例提供的一种基于协同过滤算法的项目推荐方法的流程图,该方法具体可以包括如下步骤:
[0044]步骤S100、离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类。
[0045]本发明实施例方法的执行主体为基于协同过滤算法的项目推荐系统,在实际应用过程中,该系统可以以软件的形式运行在需要项目推荐的系统或终端中。
[0046]本发明对基本用户进行聚类的目的是产生基本用户的类别所属程度矩阵Vmxk,即基本用户与各聚类中心之间的相似性矩阵,使得系统能够在线时通过类别所属程度矩阵Vmxk快速搜索到目标用户的最近邻居。因而,可以理解的是,本发明对聚类的精确程度要求并不是很高,只需要获得大多数元素的聚类即可。对于少量没有进入聚类类别的用户,我们只需获得其对各个聚类中心的相似性即可。
[0047]目前的聚类方法有很多,本发明采用k-Means算法的思想对基本用户进行聚类。其中,K-Means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。由于在使用k-Means算法时需要事先给出聚类数目,因而,本发明首先采用对基本用户进行预处理用以确定聚类数目。
[0048]在此过程中,首先,计算两两基本用户之间的相似系数,并将相似系数大于预设阈值的两个基本用户归为同一原始类别;然后,确定所有原始类别中包含基本用户的数量排名前k位的原始类别;最后,将这些排名前k位的原始类别作为初始条件,通过它们计算出k个初始聚类中心,进而进一步聚类,具体地,将排名前k位的原始类别作为初始聚类,对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类。
[0049]在实际应用中,从算法的角度看上述确定用户聚类的过程,具体实现过程可以如下:
[0050](I)经过预处理计算产生的k个原始类别;
[0051](2)每个原始类别中任选一个对象作为初始的聚类中心;
[0052](3)for i = I:m{
[0053]分别计算基本用户i与k个聚类中心之间的相似性,得到相似系数Vll,Vl2,....,
Vik;
[0054]取出这些相似系数中最大值;
[0055]If (该最大值〉相似性阈值)
[0056]{将基本用户i所属类别定为该最大值对应的聚类;}
[0057]}
[0058]同一聚类中的所有基本用户的平均评分作为该聚类的聚类中心,重新计算每个聚类中心,until聚类中心不再发生变化。
[0059]步骤S101、离线确定聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk。
[0060]在聚类中心矩阵Ckxn中,Ckxn= {Cij},k行代表k个用户聚类中心,η为所有项目的数量,Clj为聚类中心i对项目j的评分,其是用户聚类i中所有基本用户对项目j评分的均值;i= {l,2,.",k},j = {l,2,.",n}0
[0061 ]在类别所属程度矩阵Vmxk中,Vmxk= {vPq},m行代表m个基本用户,k列代表k个用户聚类,Vpq为基本用户P对于聚类中心q的相似系数,其可以是基本用户P和第q个用户聚类中心之间的Pearson相关相似性度量。经过聚类,聚类中心数目能够远远小于基本用户的数目,即是k<<m。同时,在实际系统中,聚类中心数目能够远远小于项目的数目,即是k<<n—般总会成立;P= {1,2,...,m},q={l,2,.",k}。
[0062]步骤S102、在线利用聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk,对目标用户进行项目推荐。
[0063]本发明中,在上述离线处理结果(聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk)的基础上,首先计算目标用户与各个聚类中心之间的相似性,获得目标用户所属各个聚类程度的向量,然后搜索类别所属程度矩阵,确定目标用户的最近邻居。
[0064]具体地,关于在线搜索目标用户最近邻居的过程,具体地:
[0065]首先,利用聚类中心矩阵Ckxn,计算目标用户与k个聚类中心之间的相似性,得到相似系数向量 Slxk,Slxk= [S1,S2,...,Sk];
[0066]其次,计算相似系数向量Slxk与类别所属程度矩阵Vmxk各行之间的欧氏距离;
[0067]最后,将欧氏距离最小的行对应的基本用户作为目标用户的最近邻居,在得到目标用户的最近邻居后,下一步可以直接产生对目标用户的推荐,具体地,可以参考最近邻居的项目喜好情况,对目标用户进行项目推荐。
[0068]可见,本发明通过预先离线得到k个用户聚类进而得到聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk来降低在线推荐时的工作量,进而保证推荐生成速度的目的,进而解决了传统的协同过滤算法在生成推荐时的速度瓶颈问题。
[0069]同时实验结果表明,本发明提出的算法在一定程度上能够提高推荐质量。
[0070]基于上述本发明实施例提供的基于协同过滤算法的项目推荐方法,本发明实施例还提供了一种基于协同过滤算法的项目推荐系统,参考图2,该系统200可以包括如下内容:[0071 ]离线聚类单元201,用于离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类;
[0072]离线相关矩阵确定单元202,用于离线确定聚类中心矩阵Ckxn和类别所属程度矩阵
Vmxk ;
[0073]在线推荐单元203,用于在线利用聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk,对目标用户进行项目推荐;
[0074]其中,11为所有项目的数量,Ckm={cij},Vmxk= {vPq},Cij为聚类中心i对项目j的评分,Vpq为基本用户P对于聚类中心q的相似系数;i = U,2,…,k},j = {l,2,-_,n},p={l,2,.",m},q={l,2,.",k}0
[0075]本发明中,上述在线推荐单元203具体可以包括如下内容:
[0076]相似系数向量计算子单元,用于利用聚类中心矩阵Ckxn,计算目标用户与k个聚类中心之间的相似性,得到相似系数向量SlXk ,Slxk= [SI,S2,…,Sk];
[0077]欧氏距离计算子单元,用于计算相似系数向量Slxk与类别所属程度矩阵Vmxk各行之间的欧氏距离;
[0078]推荐子单元,用于将欧氏距离最小的行对应的基本用户作为目标用户的最近邻居,并参考最近邻居的项目喜好情况,对目标用户进行项目推荐。
[0079]本发明中,上述离线聚类单元201具体可以包括如下内容:
[0080]原始类别确定子单元,用于计算两两基本用户之间的相似系数,并将相似系数大于预设阈值的两个基本用户归为同一原始类别;
[0081]排名子单元,用于确定所有原始类别中包含基本用户的数量排名前k位的原始类别;
[0082]聚类子单元,用于将排名前k位的原始类别作为初始聚类,对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类。
[0083]进一步地,上述聚类子单元具体可以用于:将排名前k位的原始类别作为初始聚类,对m个基本用户的项目评分行为进行基于K-Means算法的聚类分析,得到k个用户聚类。
[0084]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0085]以上对本发明所提供的一种基于协同过滤算法的项目推荐方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
【主权项】
1.一种基于协同过滤算法的项目推荐方法,其特征在于,该方法包括: 离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类; 离线确定聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk; 在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐; 其中,11为所有项目的数量,Ckm= { Cij },Vmxk= {vpq},Cij为聚类中心i对项目j的评分,Vpq为基本用户P对于聚类中心q的相似系数;i = {I,2,...,k},j = {I,2,...,n},p= {I,2,…,m},q={l,2,---,k}02.如权利要求1所述的方法,其特征在于,所述在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐,包括: 利用所述聚类中心矩阵Ckxn,计算所述目标用户与k个所述聚类中心之间的相似性,得至丨」相似系数向量31成,31成=[81,82,‘",81<]; 计算所述相似系数向量Slxk与所述类别所属程度矩阵Vmxk各行之间的欧氏距离; 将欧氏距离最小的行对应的基本用户作为所述目标用户的最近邻居,并参考所述最近邻居的项目喜好情况,对所述目标用户进行项目推荐。3.如权利要求1或2所述的方法,其特征在于,所述离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类,包括: 计算两两所述基本用户之间的相似系数,并将相似系数大于预设阈值的两个所述基本用户归为同一原始类别; 确定所有所述原始类别中包含所述基本用户的数量排名前k位的原始类别; 将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类。4.如权利要求3所述的方法,其特征在于,所述将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类,包括: 将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行基于K-Means算法的聚类分析,得到k个所述用户聚类。5.一种基于协同过滤算法的项目推荐系统,其特征在于,该系统包括: 离线聚类单元,用于离线对m个基本用户的项目评分行为进行聚类分析,得到k个用户聚类; 离线相关矩阵确定单元,用于离线确定聚类中心矩阵Ckxn和类别所属程度矩阵Vmxk;在线推荐单元,用于在线利用所述聚类中心矩阵Ckxn和所述类别所属程度矩阵Vmxk,对目标用户进行项目推荐; 其中,11为所有项目的数量,Ckm= { Cij },Vmxk= {vpq},Cij为聚类中心i对项目j的评分,Vpq为基本用户P对于聚类中心q的相似系数;i = {I,2,...,k},j = {I,2,...,n},p= {I,2,…,m},q={l,2,---,k}06.如权利要求5所述的系统,其特征在于,所述在线推荐单元包括: 相似系数向量计算子单元,用于利用所述聚类中心矩阵Ckxn,计算所述目标用户与k个所述聚类中心之间的相似性,得到相似系数向量SlXk,Slxk= [SI,S2,…,Sk]; 欧氏距离计算子单元,用于计算所述相似系数向量Slxk与所述类别所属程度矩阵Vmxk各行之间的欧氏距离; 推荐子单元,用于将欧氏距离最小的行对应的基本用户作为所述目标用户的最近邻居,并参考所述最近邻居的项目喜好情况,对所述目标用户进行项目推荐。7.如权利要求5或6所述的系统,其特征在于,所述离线聚类单元包括: 原始类别确定子单元,用于计算两两所述基本用户之间的相似系数,并将相似系数大于预设阈值的两个所述基本用户归为同一原始类别; 排名子单元,用于确定所有所述原始类别中包含所述基本用户的数量排名前k位的原始类别; 聚类子单元,用于将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行聚类分析,得到k个所述用户聚类。8.如权利要求7所述的系统,其特征在于,所述聚类子单元具体用于:将排名前k位的原始类别作为初始聚类,对m个所述基本用户的项目评分行为进行基于K-Means算法的聚类分析,得到k个所述用户聚类。
【文档编号】G06F17/30GK105824942SQ201610160007
【公开日】2016年8月3日
【申请日】2016年3月21日
【发明人】袁文涛, 董启文
【申请人】上海珍岛信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1