基于k‑medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法转让专利

申请号 : CN201510705659.1

文献号 : CN105373597B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王成陈维斌苏芳芳文诗琪王田钟必能陈叶旺

申请人 : 华侨大学

摘要 :

本发明涉及一种基于k‑medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法,采用如下步骤:A、采用最小化最大相似度准则确定K个初始聚类中心;B、根据相似度和最大的k‑medoids聚类算法对项目进行聚类;C、在聚类基础上,寻找用户局部最近邻;D、将用户全局最近邻与局部最近邻以相似度和之比作为权值进行融合,根据用户全局最近邻与局部最近邻对项目的评分预测用户对项目的评分。本发明同现有技术相比,更大限度地利用了已有的数据,缓解了数据极端稀疏性对推荐的影响,同时提高了评分预测的精度,为用户提供更好的推荐结果。

权利要求 :

1.一种基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法,其特征在于,包括如下步骤:

1)采用最小化最大相似度准则确定K个初始聚类中心;

2)根据相似度和最大的k-medoids聚类算法对项目进行聚类;

3)在聚类基础上,寻找用户局部最近邻;

4)将用户全局最近邻与局部最近邻以相似度和之比作为权值进行融合,根据用户全局最近邻与局部最近邻对项目的评分,预测用户对项目的评分,完成推荐;

步骤1)具体为:

1.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j,将所有样本点之间相似度最小的两个样本点作为前两个初始聚类中心μ1和μ2;

1.2)计算未选为初始聚类中心的其它样本点i到已经被选定的每一个聚类中心μ1,μ2,…,μk的相似度sim(i,μ1),sim(i,μ2),…,sim(i,μk);

1.3)选择样本点i到已经被选定的聚类中心μ1,μ2,…μk的相似度中最大相似度为样本点i到聚类中心集的相似度sim(i,μ)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μk)};

1.4)选取到聚类中心集的相似度最小值的样本点i*为新增的第k+1个聚类中心μk+1,sim(i*,μ)=min{sim(1,μ),sim(2,μ),…sim(i,μ)…sim(n,μ)};

1.5)如果k+1<K,则赋值k=k+1,转步骤2),否则利用最小化最大相似度准则确定K个初始聚类中心的过程结束;

步骤2)中,以余弦相似度作为样本点之间的度量,采用相似度和最大作为聚类准则函数,聚类后使得K个划分到达相似度和最大,步骤2)具体为:

2.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j;

2.2)确定K个初始聚类中心μc,每一个聚类c的聚类中心μc为样本点,c=1,2,…,K;

2.3)对于剩余的其他样本点i,i=1,2,…,n,i≠uc,c=1,2,…,K,则根据样本点i与步骤2.2)所述的聚类中心μc的相似度sim(i,μc),按相似度最大的准则,将样本点i分配给与其最相似的聚类中心所代表的类c*中,

2.4)计算每个聚类的相似度和 其中,Ic表示聚类c中的所有项目;计算所有K个聚类的相似度和 计算聚类内不同项目作为聚类中

心时的J值,按J值最大原则,选取J值最大的项目作为新的聚类中心;如果J值变大,则返回步骤2.2),否则聚类结束;

步骤3)具体为:

3.1)通过聚类的方式划分用户兴趣,通过余弦相似度计算在每个聚类上用户之间的相似度simc(u,v),公式如下:其中,c表示项目i所在的聚类, 表示用户u和用户v在聚类c中共同评分的项目集,表示用户u在聚类c中有评分的项目集,表示用户v在聚类c中有评分的项目集,ru,i表示用户u对项目i的评分,rv,i表示用户v对项目i的评分;

3.2)选择与目标用户在项目i所在的聚类c上相似度最大的前N个用户作为目标用户的局部最近邻;

步骤4)中,基于用户的全局最近邻的预测评分公式如下:

其中,p′u,i表示基于用户的全局最近邻的预测评分时用户u对项目i的预测评分,表示用户u的平均评分,v表示用户,neighborsu表示用户u的全局最近邻集合,sim(u,v)表示用户u和用户v的全局相似度,eu,v表示用户u和用户v的相似度相关加权,rv,i表示用户u对项目i的实际评分,表示用户v的平均评分;

基于用户的局部最近邻的预测评分公式如下:

其中,c表示项目i所在聚类,p″u,i表示基于用户的局部最近邻的评分计算得到的用户u对项目i的预测评分, 表示用户u在聚类c上的平均评分, 表示用户u在聚类c上的局部最近邻集合,simc(u,v)表示用户u和用户v在聚类c上的局部相似度,rv,i表示用户v对项目i的实际评分, 表示用户v在聚类c上的平均评分;

局部最近邻与全局最近邻以相应的权值结合后的预测评分公式如下:

pu,i=p′u,i*e′+p″u,i*e″;

局部最近邻和全局最近邻预测评分的权值分配通过局部最近邻相似度和与全局最近邻相似度和的比值设定e′和e″,公式如下:其中,e′+e″=1;

步骤1.1)与步骤2.1)中,余弦相似度计算的公式如下:

其中,Ui,j表示项目i和项目j共同评分的项目集,Ui表示项目i有评分的项目集,Uj表示项目j有评分的项目集,ru,i表示用户u对项目i的评分,ru,j表示用户u对项目j的评分,聚类后使得K个聚类划分的相似度和J值达到最大,利用皮尔森相似度、修正的余弦相似度等其它相似度也在保护范围内。

2.根据权利要求1所述的基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法,其特征在于,步骤4)根据最近邻对项目的评分预测目标用户对项目的评分,最近邻为全局最近邻与局部最近邻以相应的权值进行融合。

说明书 :

基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推

荐方法

技术领域

[0001] 本发明涉及信息过滤的技术领域,更具体地说,涉及一种基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法。

背景技术

[0002] 随着互联网的普及和电子商务的发展,网络资源不断丰富,网络信息量不断膨胀,用户要在众多的选择中挑选出自己真正需要的信息好比大海捞针。推荐系统应运而生,推荐系统为不同用户提供不同的服务,以满足不同的需求。推荐系统成为电子商务的核心,而协同过滤推荐算法是推荐系统中应用最成功、最广泛的方法。目前,几乎所有的大型电子商务系统,如淘宝、京东、当当、亚马逊、eBay等系统均采用了该方法来提高服务质量。
[0003] 协同过滤通常可分为两类:基于记忆的协同过滤和基于模型的协同过滤。其中基于记忆的协同过滤利用整个用户-项目评分数据集进行计算,为目标用户选择一部分兴趣相近的邻居用户,根据邻居用户的评分预测目标用户对项目的评分值。
[0004] 随着电子商务系统规模的进一步扩大,用户数目和项目数据急剧增加,导致用户数据评分数据的极端稀疏性,而在用户评分数据极端稀疏的情况下,通过全局相似度计算得到的最近邻不准确,从而导致推荐系统的推荐质量急剧下降。

发明内容

[0005] 本发明的目的在于克服现有技术的不足,提供一种可以更大限度地利用已有数据,提高推荐的精确度的基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法。
[0006] 本发明的技术方案如下:
[0007] 一种基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法,包括如下步骤:
[0008] 1)采用最小化最大相似度准则确定K个初始聚类中心;
[0009] 2)根据相似度和最大的k-medoids聚类算法对项目进行聚类;
[0010] 3)在聚类基础上,寻找用户局部最近邻;
[0011] 4)将用户全局最近邻与局部最近邻以相似度和之比作为权值进行融合,根据用户全局最近邻与局部最近邻对项目的评分,预测用户对项目的评分,完成推荐。
[0012] 作为优选,步骤1)具体为:
[0013] 1.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j,将所有样本点之间相似度最小的两个样本点作为前两个初始聚类中心μ1和μ2;
[0014] 1.2)计算未选为初始聚类中心的其它样本点i到已经被选定的每一个聚类中心μ1,μ2,…,μk的相似度sim(i,μ1),sim(i,μ2),…,sim(i,μk);
[0015] 1.3)选择样本点i到已经被选定的聚类中心μ1,μ2,…μk的相似度中最大相似度为样本点i到聚类中心集的相似度sim(i,μ)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μk)};
[0016] 1.4)选取到聚类中心集的相似度最小值的样本点i*为新增的第k+1个聚类中心μk+1,sim(i*,μ)=min{sim(1,μ),sim(2,μ),…sim(i,μ)…sim(n,μ)};
[0017] 1.5)如果k+1<K,则赋值k=k+1,转步骤2),否则利用最小化最大相似度准则确定K个初始聚类中心的过程结束。
[0018] 作为优选,步骤2)中,以余弦相似度作为样本点之间的度量,采用相似度和最大作为聚类准则函数,聚类后使得K个划分到达相似度和最大。
[0019] 作为优选,步骤2)具体为:
[0020] 2.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j;
[0021] 2.2)确定K个初始聚类中心μc,每一个聚类c的聚类中心μc为样本点,c=1,2,…,K;
[0022] 2.3)对于剩余的其他样本点i,i=1,2,…,n,i≠uc,c=1,2,…,K,则根据样本点i与步骤2.2)所述的聚类中心μc的相似度sim(i,μc),按相似度最大的准则,将样本点i分配给与其最相似的聚类中心所代表的类c*中,sim( )=max{sim(i,μ1),sim(i,μ2),…,sim(i,μK)};
[0023] 2.4)计算每个聚类的相似度和 其中,Ic表示聚类c中的所有项目;计算所有K个聚类的相似度和 计算聚类内不同项目作为
聚类中心时的J值,按J值最大原则,选取J值最大的项目作为新的聚类中心;如果J值变大,则返回步骤2.2),否则聚类结束。
[0024] 作为优选,步骤1.1)与步骤2.1)中,余弦相似度计算的公式如下:
[0025]
[0026] 其中,Ui,j表示项目i和项目j共同评分的项目集,Ui表示项目i有评分的项目集,Uj表示项目j有评分的项目集,ru,i表示用户u对项目i的评分,ru,j表示用户u对项目j的评分,聚类后使得K个聚类划分的相似度和J值达到最大,利用皮尔森相似度、修正的余弦相似度等其它相似度也在保护范围内。
[0027] 作为优选,步骤3)具体为:
[0028] 3.1)通过聚类的方式划分用户兴趣,通过余弦相似度计算在每个聚类上用户之间的相似度simc(u,v),公式如下:
[0029]
[0030] 其中,c表示项目i所在的聚类, 表示用户u和用户v在聚类c中共同评分的项目集, 表示用户u在聚类c中有评分的项目集, 表示用户v在聚类c中有评分的项目集,ru,i表示用户u对项目i的评分,rv,i表示用户v对项目i的评分;
[0031] 3.2)选择与目标用户在项目i所在的聚类c上相似度最大的前N个用户作为目标用户的局部最近邻。
[0032] 作为优选,步骤4)根据最近邻对项目的评分预测目标用户对项目的评分,最近邻为全局最近邻与局部最近邻以相应的权值进行融合。
[0033] 作为优选,步骤4)中,基于用户的全局最近邻的预测评分公式如下:
[0034]
[0035] 其中,p′u,i表示基于用户的全局最近邻的预测评分时用户u对项目i的预测评分,表示用户u的平均评分,v表示用户,neighborsu表示用户u的全局最近邻集合,sim(u,v)表示用户u和用户v的全局相似度,eu,v表示用户u和用户v的相似度相关加权,rv,i表示用户u对项目i的实际评分, 表示用户v的平均评分;
[0036] 作为优选,步骤4)中,基于用户的局部最近邻的预测评分公式如下:
[0037]
[0038] 其中,c表示项目i所在聚类,p″u,i表示基于用户的局部最近邻的评分计算得到的用户u对项目i的预测评分, 表示用户u在聚类c上的平均评分, 表示用户u在聚类c上的局部最近邻集合,simc(u,v)表示用户u和用户v在聚类c上的局部相似度,rv,i表示用户v对项目i的实际评分, 表示用户v在聚类c上的平均评分;
[0039] 作为优选,步骤4)中,局部最近邻与全局最近邻以相应的权值结合后的预测评分公式如下:
[0040] pu,i=p′u,i*e′+p″u,i*e″;
[0041] 局部最近邻和全局最近邻预测评分的权值分配通过局部最近邻相似度和与全局最近邻相似度和的比值设定e′和e″,公式如下:
[0042]
[0043]
[0044] 其中,e′+e″=1。
[0045] 本发明的有益效果如下:
[0046] 本发明通过将项目聚类来划分用户兴趣,并根据用户兴趣局部相似性将全局最近邻与局部最近邻推荐结果相融合,从而提高推荐精度,具体的:
[0047] 1、根据用户兴趣的局部相似特性,通过寻找局部最近邻预测评分,更大限度地利用已有数据,缓解了由数据稀疏带来的影响;
[0048] 2、通过将项目聚类的方式来自动划分用户兴趣;
[0049] 3、相似度和最大的k-medoids聚类方法可用于采用相似性作为样本之间的度量的样本聚类;
[0050] 4、利用最小化最大相似度准则确定初始聚类中心,解决了项目聚类时的初始聚类中心选取的问题,聚类性能有很大提高;
[0051] 5、将全局最近邻与局部最近邻相融合来预测用户对项目的评分,并在全局最近邻和局部最近邻上加以相应的权值,提高推荐精度。

附图说明

[0052] 图1是基于用户局部兴趣改进的协同过滤推荐方法流程图;
[0053] 图2是k-medoids聚类算法的流程图;
[0054] 图3是最大最小k-medoids初始聚类中心选择的流程图;
[0055] 图4是五折交叉验证流程图;
[0056] 图5是在movielens数据集上通过五折交叉验证,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐、基于项目聚类和局部兴趣改进的用户协同过滤推荐的实验结果图;
[0057] 图6是在movielens数据集上通过十折交叉验证,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐、基于项目聚类和局部兴趣改进的用户协同过滤推荐的实验结果图;
[0058] 图7是在movielens数据集上通过All but 1验证,随机取70%作为训练集,30%作为测试集时,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐、基于项目聚类和局部兴趣改进的用户协同过滤推荐在评价指标为平均绝对误差MAE时的实验结果图;
[0059] 图8是在movielens数据集上通过Given 2验证,随机取70%作为训练集,30%作为测试集时,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐、基于项目聚类和局部兴趣改进的用户协同过滤推荐在评价指标为平均绝对误差MAE时的实验结果图;
[0060] 图9是在movielens数据集上通过Given 10验证,随机取70%作为训练集,30%作为测试集时,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐、基于项目聚类和局部兴趣改进的用户协同过滤推荐在评价指标为平均绝对误差MAE时的实验结果图;
[0061] 图10是在movielens数据集上通过五折交叉验证,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类、局部兴趣改进的用户协同过滤推荐在评价指标为均方根误差RMSE时的实验结果图;
[0062] 图11是在eachmovie数据集上通过五折交叉验证,传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类、局部兴趣改进的用户协同过滤推荐在评价指标为平均绝对误差MAE时的实验结果图。

具体实施方式

[0063] 以下结合附图及实施例对本发明进行进一步的详细说明。
[0064] 本发明为了克服现有技术的推荐系统的推荐质量无法应对海量数据的增长,提供一种基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法,包括如下步骤:
[0065] 1)采用最小化最大相似度准则确定K个初始聚类中心;
[0066] 2)根据相似度和最大的k-medoids聚类算法对项目进行聚类;
[0067] 3)在聚类基础上,寻找用户局部最近邻;
[0068] 4)将用户全局最近邻与局部最近邻以相似度和之比作为权值进行融合,根据用户全局最近邻与局部最近邻对项目的评分,预测用户对项目的评分,完成推荐。
[0069] 步骤1)具体为:
[0070] 1.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j,
[0071]
[0072] 其中,Ui,j表示项目i和项目j共同评分的项目集,Ui表示项目i有评分的项目集,Uj表示项目j有评分的项目集,ru,i表示用户u对项目i的评分,ru,j表示用户u对项目j的评分,聚类后使得K个聚类划分的相似度和J值达到最大,利用皮尔森相似度、修正的余弦相似度等其它相似度也在保护范围内;
[0073] 相似度也可以通过皮尔森相似度、修正的余弦相似度等其他相似度计算。
[0074] 将所有样本点之间相似度最小的两个样本点作为前两个初始聚类中心μ1和μ2,k=2;
[0075] 1.2)计算未选为初始聚类中心的其它样本点i到已经被选定的每一个聚类中心μ1,μ2,…,μk的相似度sim(i,μ1),sim(i,μ2),…,sim(i,μk);
[0076] 1.3)选择样本点i到已经被选定的聚类中心μ1,μ2,…μk的相似度中最大相似度为样本点i到聚类中心集的相似度sim(i,μ)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μk)};
[0077] 1.4)选取到聚类中心集的相似度最小值的样本点i*为新增的第k+1个聚类中心μk+1,sim(i*,μ)=min{sim(1,μ),sim(2,μ),…sim(i,μ)…sim(n,μ)};
[0078] 1.5)如果k+1<K,则赋值k=k+1,转步骤2),否则利用最小化最大相似度准则确定K个初始聚类中心的过程结束。
[0079] 相似度也可以通过皮尔森相似度、修正的余弦相似度等其他相似度计算。
[0080] 如图2、图3所示,步骤2)中,以余弦相似度作为样本点之间的度量,采用相似度和最大作为聚类准则函数,聚类后使得K个划分到达相似度和最大。步骤2)具体为:
[0081] 2.1)使用余弦相似度计算所有样本点i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j;
[0082]
[0083] 2.2)确定K个初始聚类中心μc,每一个聚类c的聚类中心μc为样本点,c=1,2,…,K;
[0084] 2.3)对于剩余的其他样本点i,i=1,2,…,n,i≠uc,c=1,2,…,K,则根据样本点i与步骤2.2)所述的聚类中心μc的相似度sim(i,μc),按相似度最大的准则,将样本点i分配给与其最相似的聚类中心所代表的类c*中,sim( )=max{sim(i,μ1),sim(i,μ2),…,sim(i,μK)};
[0085] 2.4)计算每个聚类的相似度和 其中,Ic表示聚类c中的所有项目;计算所有K个聚类的相似度和 计算聚类内不同项目作为
聚类中心时的J值,按J值最大原则,选取J值最大的项目作为新的聚类中心,即以该项目为聚类中心时,J值最大;如果J值变大,则返回步骤2.2),否则聚类结束。
[0086] 步骤3)具体为:
[0087] 3.1)计算用户之间的全局相似度,用户u和用户v在所有项目上的相似度sim(u,v)通过余弦相似度计算,公式如下:
[0088]
[0089] 其中,Iuv表示用户u和用户v共同评分的项目集,Iu表示用户u有评分的项目集,Iv表示用户v有评分的项目集,ru,i表示用户u对项目i的评分,rv,i表示用户v对项目i的评分;
[0090] 通过聚类的方式划分用户兴趣,通过余弦相似度计算在每个聚类上用户之间的相似度simc(u,v),公式如下:
[0091]
[0092] 其中,c表示项目i所在的聚类, 表示用户u和用户v在聚类c中共同评分的项目集, 表示用户u在聚类c中有评分的项目集, 表示用户v在聚类c中有评分的项目集,ru,i表示用户u对项目i的评分,rv,i表示用户v对项目i的评分;
[0093] 3.2)选择与目标用户在项目i所在的聚类c上相似度最大的前N个用户作为目标用户的局部最近邻。
[0094] 步骤4)根据最近邻对项目的评分预测目标用户对项目的评分,最近邻为全局最近邻与局部最近邻以相应的权值进行融合。
[0095] 基于用户的全局最近邻的预测评分公式如下:
[0096]
[0097] 其中,p′u,i表示基于用户的全局最近邻的预测评分时用户u对项目i的预测评分,表示用户u的平均评分,v表示用户,neighborsu表示用户u的全局最近邻集合,sim(u,v)表示用户u和用户v的全局相似度,eu,v表示用户u和用户v的相似度相关加权,rv,i表示用户u对项目i的实际评分, 表示用户v的平均评分;相关加权公式如下:
[0098]
[0099] 其中,Qu,v为用户u和用户v的共同评分数,T为预先设定的最近邻共同评分数阈值。对目标用户u,选择前N个sim(u,v)*eu,v最大的用户作为最近邻。
[0100] 基于用户的局部最近邻的预测评分公式如下:
[0101]
[0102] 其中,c表示项目i所在聚类,p″u,i表示基于用户的局部最近邻的评分计算得到的用户u对项目i的预测评分, 表示用户u在聚类c上的平均评分, 表示用户u在聚类c上的局部最近邻集合,simc(u,v)表示用户u和用户v在聚类c上的局部相似度,rv,i表示用户v对项目i的实际评分, 表示用户v在聚类c上的平均评分;
[0103] 局部最近邻与全局最近邻以相应的权值结合后的预测评分公式如下:
[0104] pu,i=p′u,i*e′+p″u,i*e″;
[0105] 局部最近邻和全局最近邻预测评分的权值分配通过局部最近邻相似度和与全局最近邻相似度和的比值设定e′和e″,公式如下:
[0106]
[0107]
[0108] 其中,e′+e″=1。
[0109] 本发明基于项目聚类和局部兴趣改进的用户协同过滤推荐方法,如图1所示,根据用户兴趣的局部相似特性,通过最小化最大k-medoids聚类将相似度大的项目聚为一类,在聚类基础上挖掘用户兴趣。计算用户在全局项目上的最近邻和在不同兴趣上的最近邻并进行融合,根据最近邻的评分进行预测。获取用户和项目之间的关系数据后,针对这些数据进行一下操作步骤:
[0110] A.将数据表示为用户-项目评分矩阵;
[0111] B.计算在所有项目上用户之间的相似度,寻找用户全局最近邻;
[0112] C.利用余弦相似度计算项目之间的相似度,利用最小化最大相似度准则确定相似度和最大的k-medoids聚类算法的K个初始聚类中心,并将该聚类算法用于项目聚类;
[0113] D.基于项目聚类计算用户之间的局部相似度和局部最近邻;
[0114] E.将全局最近邻和局部最近邻以相应的权值分配进行融合,根据用户的全局最近邻和局部最近邻对项目的评分预测用户对项目的评分,从而产生推荐。
[0115] 步骤A中,在基于协同过滤推荐算法的推荐系统中,用户对项目的评分数据可以采用一个m×n阶的用户-项目评分矩阵R(m,n)表示,如表1所示。
[0116] 表1
[0117]  1 … i … n
1 r1,1 … r1,i … r1,n
…          
u ru,1 … ru,i … ru,n
…          
m rm,1 … rm,i … rm,n
[0118] 其中,ru,i表示用户u对项目i的评分。
[0119] 实验数据
[0120] 1、数据集
[0121] 本发明使用目前比较常用的公开的MovieLens-100K数据集和eachmovie数据集作为测试数据。其中MovieLens数据集从MovieLens网站采集而来,由美国Minnesota大学的GroupLens研究小组提供,包含943个用户对1682部电影约10万的评分数据,其中每个用户至少对20部电影进行了评分。评分的范围是1、2、3、4、5,1表示“很差”,5表示“很好”。其中u.data表格式如表2所示:
[0122] 表2
[0123]UserID MovieID Rating Timestamp
用户编号 电影编号 评分 时间戳
[0124] 本实施例使用其u.data表内的数据,主要对其中的UserID,MovieID,Rating三个字段进行计算。实际评分数据的密度为100000/(943*1682)=6.3%,数据集相当稀疏,用户-项目评分矩阵中缺失评分均不填充。
[0125] Eachmovie数据集中本文使用了1000个用户对1628部电影约10万的评分数据。评分的范围是0.2、0.4、0.6、0.8、1,0.2表示“很差”,1表示“很好”。其中,eachmovie.data表格式如表3所示:
[0126] 表3
[0127]UserID MovieID Rating Timestamp
用户编号 电影编号 评分 时间戳
[0128] 本实施例使用其u.data表内的数据,主要对其中的UserID,MovieID,Rating三个字段进行计算。实际评分数据的密度为19630/(1000*1628)=1.2%,数据集相当稀疏,用户-项目评分矩阵中缺失评分均不填充。
[0129] 2、验证方法
[0130] 本发明的实验采用五折交叉、All but 1和变化的Given方法验证基于用户局部兴趣改进的协同过滤推荐算法效果。
[0131] 五折交叉法将数据集分为5份,每份循环作为测试集,剩下的作为训练集,训练集用于评分预测,测试集用于衡量算法效果,如图4所示。
[0132] 将实验数据集按比率x分为一个训练集和一个测试集,然后循环测试在测试集中的每个用户,将每个用户作为目标(活动的)用户,并且我们将每个被测试的目标用户的实际评分分为两组评分:处理一组评分IA是可见的,另一组用户评分PA被隐藏,将用于预测评分,使用在IA中的评分来预测在PA中的评分。All but 1方法在测试集中只隐藏目标用户一个随机选择的评分,使用目标用户其他的评分去预测它的值。从每个测试用户的评分中随机选择2 or 10个评分作为可见的评分,这种方法为Given 2,Given 10。
[0133] All but 1实验用来测试一个特定用户已经积累了相当数量数据的这种稳定状态下,测试算法的性能。变化的Given实验测试在目标用户的评分数据信息知道相对少情况下,测试算法的性能。
[0134] 3、评价指标
[0135] 选择合适的评价指标不仅可以有效衡量算法的性能,并且可以发现算法存在的不足之处。目前常用的衡量推荐算法推荐质量的标准主要有统计精度度量方法和决策支持精度度量方法两种。其中,统计精度度量方法中的平均绝对偏差MAE(Mean Absolute Error)和均方根误差RMSE具有容易理解,且能比较直观地度量推荐质量的优点,因而被很多研究者所使用,也是最常用的度量方法。
[0136] MAE(平均绝对偏差)衡量了用户实际评分与通过预测得到的用户评分之间的偏差大小,MAE和RMSE的值越小,说明偏差越小,从而推荐质量就越高。本文实验也采用了这种度量方法。
[0137] 平均绝对偏差MAE定义如下述公式所示:
[0138]
[0139] 均方根误差RMSE定义如下述公式所示:
[0140]
[0141] 其中,ru,i表示用户u对项目i的实际评分,pu,i表示用户u对项目i的预测评分,test表示预测集中评分不为0的项目集,L表示test集的大小。
[0142] 4、实验设计
[0143] 本发明设计了7组实验,实验中基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐方法中项目聚类个数为20;all but 1、given 2和given 10验证方法中训练集占70%,测试集占30%。
[0144] 实验中比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐这三种用户协同过滤推荐在不同最近邻个数情况下的实验结果。实验一到实验五表示在不同验证方法下各算法的实验结果;实验一和实验六表示在不同评价指标下各算法的实验结果;实验一和实验七表示在不同数据集下各算法的实验结果。
[0145] 实验一评价指标为MAE时,在movielens数据集上通过五折交叉验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图5所示;
[0146] 实验二评价指标为MAE时,在movielens数据集上通过十折交叉验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图6所示;
[0147] 实验三评价指标为MAE时,在movielens数据集上通过all but 1验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图7所示;
[0148] 实验四评价指标为MAE时,在movielens数据集上通过given 2验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图8所示;
[0149] 实验五评价指标为MAE时,在movielens数据集上通过given 10验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图9所示;
[0150] 实验六评价指标为RMSE时,在movielens数据集上通过五折交叉验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图10所示;
[0151] 实验七评价指标为MAE时,在eachmovie数据集上通过五折交叉验证方法比较传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐和基于项目聚类和局部兴趣改进的用户协同过滤推荐,实验结果如图11所示。
[0152] 5、实验结果分析
[0153] 对实验结果进行比较:
[0154] (1)如图5、图6、图7、图8、图9所示,实验结果表明在不同验证方法的情况下基于项目聚类和局部兴趣改进的用户协同过滤推荐MAE小于传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐。其中在All but 1验证方法下基于项目聚类和局部兴趣改进的用户协同过滤推荐MAE小于传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐,表明本发明在用户数据量丰富的情况下可以提高推荐精度;在Given 2和Given 10验证方法下基于项目聚类和局部兴趣改进的用户协同过滤推荐MAE小于传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐,表明本发明在用户数据量小的情况下可以提高推荐精度。
[0155] (2)如图5、图10所示,实验结果表明不同评价指标的情况下基于项目聚类和局部兴趣改进的用户协同过滤推荐精度优于传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐;
[0156] (3)如图5、图11所示,实验结果表明不同数据集的情况下基于项目聚类和局部兴趣改进的用户协同过滤推荐精度优于传统用户协同过滤推荐、基于项目聚类和局部最近邻的用户协同过滤推荐。
[0157] 以上实验说明基于项目聚类和局部兴趣改进的用户协同过滤推荐方法提高了推荐精度。
[0158] 上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。