一种基于产品项目特征扩充的最近邻协同过滤方法

文档序号:10687212阅读:639来源:国知局
一种基于产品项目特征扩充的最近邻协同过滤方法
【专利摘要】本发明公开了一种基于产品项目特征扩充的最近邻协同过滤方法(IFA),该方法包括如下步骤:1)用二维表表示产品的评分数据;2)基于朴素贝叶斯分类器的贫信息用户项目相似度计算;3)富信息用户项目相似度计算;4)基于贫信息用户的项目相似度与富信息用户的项目相似度融合;5)结合基于项目的协同过滤算法给出未评分产品的评分预测值集合,并取前N项作为最终推荐结果。本发明能有效反映用户评价的真实情况,提高个性化推荐精度。
【专利说明】
一种基于产品项目特征扩充的最近邻协同过滤方法
技术领域
[0001] 本发明属于电子商务领域,具体地说是一种基于产品项目特征扩充的最近邻协同 过滤方法(Item FeatureAugmentation,IFA) 〇
【背景技术】
[0002] 电子商务的迅速发展,使得如何有效提高用户购买率成为各大电商企业主要思考 的问题,协同过滤技术作为个性化推荐应用最早和最为成功的技术之一,能够很好地基于 项目或用户之间的相似性对企业的购买决策提供技术支撑,基于项目最近邻的协同过滤推 荐技术因为其可扩展性强和可解释性好成为了基于最近邻协同过滤算法中最流行的算法, 在亚马逊购物网站和Netflix电影租赁网站中都得到了实际应用。
[0003] 项目相似度计算是基于项目最近邻协同过滤算法中最重要的步骤,它决定了协同 过滤算法中项目最近邻选择和邻居的评分加权,进而影响算法最终的推荐精度。传统计算 两个产品的项目相似度的方法是首先分离出对两个项目都有评分行为的用户评分项,然后 对这些用户的评分项利用皮尔逊相似度或者余弦距离等计算方法计算项目相似度,现有研 究方法虽然为个性化推荐的构建提供基础理论支撑和实践指导,但是仍然存在诸多问题: [0004] (1)数据稀疏性问题加剧。在实际生活中,消费者购买的产品在整个产品目录中占 比很少。因此在对实际的电子商务数据集计算两个产品的项目相似度时会有大量只对一个 产品有过评分行为的用户。如表1所示,在计算产品I#PI2的项目相似度时,传统的项目相似 度计算方法只利用了 U3和U7对这两个产品的评分,而山,U2,U4,U 5,U6的评分信息将被直接忽 视,导致大量的评分信息没有得到有效利用,这就会更一步加剧数据稀疏性问题。
[0005]表 1
[0007] (2)相似性计算的不准确。基于皮尔逊相似度公式计算得到的项目相似度会存在 下面的情况:那些被较少用户共同评价过的项目对可能有着相对更高的相似度,但是如果 两个项目被大量用户评价过,但仅仅有两个用户对他们同时评价,这并不能表明它们之间 有着非常高的相似度。这也就导致现有协同过滤算法中对项目之间相似性的计算相似性度 量出现误差,降低了推荐系统的精度。

【发明内容】

[0008] 本发明为克服现有技术存在的不足之处,提出一种基于产品项目特征扩充的最近 邻协同过滤方法,以期能充分利用评分信息来反映用户评价的真实情况,使得计算得到的 项目邻居可靠性更高,从而提高个性化推荐的精度。
[0009] 为了达到上述目的,本发明所采用的技术方案为:
[0010] 本发明一种基于产品项目特征扩充的最近邻协同过滤方法的特点是按如下步骤 进行:
[0011] 步骤一、用二维表T= {U,I,S}表示产品的评分数据;
[0012] 所述二维表T中,U={Ur-,Uu,…,U|U|}表示用户集合,I = {Ir-,Ii,…,I|i|}表示 产品集合,S={S(1)…,S(s),…,S (|s)}表示用户对产品的评分集合;
[0013] 所述用户集合U中,| u |为用户的总数目,Uu表示第u个用户;| u | ;所述产品 集合I中,I i I为产品的总数目,^表示第i个产品;I i I ;所述评分集合S中,S(s)表示所 述评分集合中第s个评分,且Sa)< . . . <SW< . . . <SW ;
[0014] 令第u个用户Uu对第i个产品Ii的评分为Su,i,且Su,iGS;
[0015] 对任意第i个产品Ii和第j个产品1」;若第u个用户1^对所述第i个产品Ii和第j个产 品Ij均有评分Su,i和S u,j,则表示第u个用户Uu为富信息用户;第u个用户Uu对第i个产品Ii的 评分S u>1和第u个用户Uu对第j个产品込的评分Sy均称为富信息用户评分项;1彡涔|i|;i辛 j;
[0016] 对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产品Ii有评分 SU>1S仅对第j个产品L有评分Su+则表示第u个用户Uu为贫信息用户;第u个用户U u对第i个 产品h的评分Su>1和第u个用户Uu对第j个产品I」的评分Sy均称为贫信息用户评分项;并有: [00 17]当第u个用户uu仅对所述第j个产品Ij有评分Su,j时,第u个用户U u对第i个产品Ii的 评分Su,d#为贫信息用户评分项中的缺失值;
[0018] 令所有产品具有的项目特征集合为G = {gl…,gn,…,g | n|},gn表示所有产品的第n 个项目特征;令贫信息用户评分项中的缺失值Su>1所代表的第i个产品h的项目特征集合为 Gi= {gi,r",gi,n,…,gi, |n|} ;gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第i个 产品Ii具有第n个项目特征g n,则gi,n=l;否则,gi,n = 0;Kn彡|n| ;
[0019] 步骤二、假设第u个用户Uu为贫信息用户;第u个用户仏对所述第i个产品h的评分 Su>1为贫信息用户评分项中的缺失值;计算贫信息用户Uu对所述第i个产品1忐所述第j个产 品Ij的项目相似度 Simu(Ii,Ij);
[0020] 步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失 值Su,i为S (s)时的先验概率P(S(S)):
[0022]式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item 表示所述已评分产品集合I(u)中的任一产品;|I(U)|表示所述已评分产品集合I(u)中的产品 数目;S u,ltem表示贫信息用户Uu对所述已评分产品集合I(u)中产品item的评分;
[0023] | {itemGl(u)|Su,ltem=S(s)} |表示贫信息用户Uu在所述已评分产品集合I(u)中评分 Su,item为s(s)的产品数目;
[0024]步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失 值Su,i为S(s)时的似然函数P(gn| S(s)):
[0026] 式(2 )中,gitem, ^^表示贫信息用户Uu对所述已评分产品集合I(u)中的产品item在第n 个项目特征gn上的特征值;I UtemGl(U),gi,n=l |Su,item=S(S)ngitem,n = gi,n} | 表示贫信息 用户Uu对所述已评分的产品集合I(u)中的产品item中评分S u,ltem为S(s),且贫信息用户Uu对产 品item在第n个项目特征g n上的特征值gitem,n与第i个产品Ii在第n个项目特征gn上的特征值 g 1>n取值均为T的项目个数;
[0027] 步骤2.3、利用式(3)计算获得贫信息用户1]11对所述第1个产品11的评分511, 1为5(3)时 的概率 P(S(s)|li):
[0029] 步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值 Su,i分别为S (1)…,S(s),…,S(s)时的概率,并将最大概率所对应的评分作为贫信息用户仏对 第i个产品^的缺失值S u>1的预测评分;
[0030] 步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二 维表T中所有贫信息用户的缺失值;
[0031] 步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产 品Ii与所述第j个产品Ij的项目相似度sin/ u(Ii,Ij):
[0033] 式(4)中,R 表示在补全所有贫信息用户的缺失值二维表T中,既对所述 第i个产品Ii有评分Su, i,又对所述第j个产品Ij有评分Su, j的贫信息用户Uu;瓦表示在补全所 有贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品h的平均评分;g表示在 补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品I』的平均评分;
[0034] 步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i 个产品Ii与所述第j个产品Ij的项目相似度sim u(Ii,Ij):
[0036]式(5)中,V,. HR.表示既对所述第i个产品Ii的有评分Su,i,又对所述第j个产品Ij I .} 有评分Sy的贫信息用户数目,A是待调节参数;
[0037]步骤三、假设第v个用户Uv即为富信息用户;计算富信息用户Uv对所述第i个产品h 与所述第j个产品Ij的项目相似度simv(Ii,Ij) 彡|u| ;v乒u;
[0038]步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对所述第i个产 品Ii与所述第j个产品Ij的项目相似度sin/ v(Ii,Ij):
[0040] 式(6)中,表示既对所述第i个产品1册有评分Sv>1,又对所述第j个产 品込有评分Sq的富信息用户U、;完表示所有富信息用户对第i个产品h的平均评分;男表示 所有富信息用户对第j个产品込的平均评分;
[0041] 步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对所述第i 个产品Ii与所述第j个产品Ij的项目相似度sim v(Ii,Ij):
[0043] 式(7)中,表示既对所述第i个产品1:的有评分Su>1,又对所述第j个产品 込有评分Sy的富信息用户数目,Y是另一个待调节参数;
[0044] 步骤四、利用式(8)进行基于贫信息用户Uu对所述第i个产品1:与所述第j个产品込 的项目相似度simudi,込),与富信息用户U v对所述第i个产品1:与所述第j个产品込的项目 相似度simv(Ii,Ij)的项目相似度融合;得到融合相似度sim(Ii,I j):
[0045] sim(Ii,Ij) = (l-y ) X simu(Ii, Ij)+y Xsimv(Ii,Ij) (8)
[0046] 式(8)中,y是待调节参数;
[0047] 步骤五、根据所述融合相似度simahlj,利用基于项目的协同过滤算法,获得未 评分产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排序集合的 前N项作为推荐结果,并推荐给所述贫信息用户Uu。
[0048]与已有技术相比,本发明的有益效果体现在:
[0049] 1、本发明对协同过滤方法中项目最近邻的计算,在已有传统协同过方法中仅对两 个项目均有评分项的富信息用户评分项近似性计算上,新加入对两个项目中只有一个评分 的贫信息用户项的相似性计算,所提方法考虑到所有用户的已有评分,因此该方法计算得 到的项目最近邻可靠性更高,有效克服了数据稀疏性这一问题,为已有信息的充分利用提 供了解决思路,其推荐精度明显优于基于Pearson,Weighted Pearson,Cosine Norm,概率 矩阵分解(PMF)相似度的项目最近邻协同过滤方法。
[0050] 2、本发明中使用基于多元伯努利模型的朴素贝叶斯分类器,对两个产品中仅有一 个项目评分的贫信息用户评分缺失值进行评分概率预测,已有评论信息对贝叶斯分类器相 关参数的学习以及对信息用户评分项的缺失值的预测提供了可靠真实的支持,且选取概率 最高评分为缺失值的预测值,能够真实有效反映消费者整体对产品评分现实情况,提高了 个性化推荐的精度。
[0051 ] 3、本发明中对贫信息用户与富信息用户均使用McLanugh 1 in提出的加权皮尔森相 关系数来计算项目相似度,贫信息用户评分项与富信息用户项的相似度具有统一的测量尺 度,保证了后续步骤中两类用户项相似度融合的可操作性,确保了项目最近邻计算的稳定 性与可靠性。
[0052] 4、本发明中在进行基于富信息用户评分项的相似度和基于贫信息用户的项目相 似度进行融合时,引入调节参数对二者进行线性融合,其中通过交叉验证方法对调节参数 进行寻优,使得推荐精度效果得以显著提高,克服了现有技术中仅基于对二者均有评分的 富用户信息推荐技术的缺点。
[0053] 5、本发明可用于手机和书籍等实体产品,音乐和电影等数字产品,旅游计划和度 假行程等服务产品的个性化推荐系统,可以在网页和APP等平台同时使用,以期提高商家和 消费者的双向经济效益及整体满意度。
【附图说明】
[0054]图1为本发明的流程示意图;
[0055] 图2为本发明富信息用户评分项与贫信息用户说明图;
[0056] 图3为本发明训练集和测试集比例0.3,参数A对算法的影响分析实验结果;
[0057]图4为本发明训练集和测试集比例0.5,参数A对算法的影响分析实验结果;
[0058]图5为本发明训练集和测试集比例0.7,参数A对算法的影响分析实验结果;
[0059] 图6为本发明训练集和测试集比例0.9,参数A对算法的影响分析实验结果;
[0060] 图7为本发明训练集和测试集比例0.3,参数Y对算法的影响分析实验结果;
[0061 ]图8为本发明训练集和测试集比例0.5,参数y对算法的影响分析实验结果;
[0062] 图9为本发明训练集和测试集比例0.7,参数Y对算法的影响分析实验结果;
[0063] 图10为本发明训练集和测试集比例0.9,参数Y对算法的影响分析实验结果。
【具体实施方式】
[0064]如图1所示,一种基于产品项目特征扩充的最近邻协同过滤方法(Item Feature Augmentation, IFA),是按如下步骤进行:
[0065] 步骤一、用二维表T={U,I,S}表示产品的评分数据;
[0066] 所述二维表T中,U={Ur-,Uu,…,Uu}表示用户集合,I = {Ir-,Ii,…,I|i|}表示产 品集合,S= {S(1)…,S(s),…,S(s)}表示用户对产品的评分集合;
[0067] 所述用户集合U中,| u |为用户的总数目,Uu表示第u个用户;1彡u彡| u | ;所述产品 集合I中,I i I为产品的总数目,^表示第i个产品;I i I ;所述评分集合S中,S(s)表示所 述评分集合中第s个评分,且Sa)< . . . <SW< . . . <SW ;
[0068]令第u个用户Uu对第i个产品Ii的评分为Su,i,且Su,iGS;
[0069] 如图2所示,对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu对所述第i个产品 Ii和第j个产品Ij均有评分S u,i和Su,j,则表示第u个用户Uu为富信息用户;第u个用户Uu对第i 个产品h的评分S u>1和第u个用户Uu对第j个产品I」的评分Sy均称为富信息用户评分项; | i | ;i^j;
[0070] 如图2所示,对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产 品h有评分S U>1S仅对第j个产品I」有评分Su+则表示第u个用户Uu为贫信息用户;第u个用 户U u对第i个产品h的评分Su>1和第u个用户Uu对第j个产品込的评分Sy均称为贫信息用户 评分项;并有:
[0071]当第u个用户Uu仅对所述第j个产品Ij有评分Su,j时,第u个用户Uu对第i个产品Ii的 评分Su,d#为贫信息用户评分项中的缺失值;
[0072]令所有产品具有的项目特征集合为G = { gl…,gn,…,g | n | },对于本文后续实验中使 用的电影产品中数据,其项目特征集合即为电影的流派集合,gn表示所有产品的第n个项目 特征;令贫信息用户评分项中的缺失值S u>1所代表的第i个产品Ii的项目特征集合为G1 = {gi,r",gi,n,…,gi, |n| } ;gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第i个产品 Ii具有第n个项目特征gn,贝ljgi,n = 1 ;否则,gi,n = 0 ; I n I ;如表2所示:
[0073]表 2
[0075] 步骤二、对任意第i个产品Ii和第j个产品Ij;当第u个用户Uu仅对所述第j个产品Ij 有评分S UJ寸,第u个用户Uu即为贫信息用户;第u个用户仏对所述第i个产品h的评分SU,A 贫信息用户评分项中的缺失值;计算贫信息用户U u对所述第i个产品^与所述第j个产品Ij 的项目相似度simu(Ii,Ij);
[0076] 在进行相似度simi(Ii,Ij)计算之前,要对缺失值Su,i进行预测,本发明中首先基于 贫信息用户的历史评分记录和产品的项目特征信息进行朴素贝叶斯分类器的训练;然后基 于该分类器对贫信息用户评分项中的缺失值3 11,1进行预测。由于后续实验中所使用的电影 产品的项目特征数据均为电影的流派数据,不存在出现次数问题,故而使用基于多元伯努 利模型的朴素贝叶斯分类器。
[0077] 步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失 值Su,i为S (s)时的先验概率P(S(S)):
[0079]式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item 表示所述已评分产品集合I(u)中的任一产品;|I(U)|表示所述已评分产品集合I(u)中的产品 数目;S u,lte,示贫信息用户仏对所述已评分产品集合I(u)中产品item的评分;| {itemei(u) Su,ltem=S(s)}|表示贫信息用户Uu在所述已评分产品集合I (u)中评分Su,lte^S(s)的产品数 目;
[0080]步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失 值Su,i为S(s)时的似然函数P(gn| s(s)):
[0082]式(2 )中,gitem, ^^表示贫信息用户Uu对所述已评分产品集合I(u)中的产品item在第n 个项目特征gn上的特征值;I UtemGl(U),gi,n=l |Su,item=S(S)ngitem,n = gi,n} | 表示贫信息 用户Uu对所述已评分的产品集合I(u)中的产品item中评分S u,ltem为S(s),且贫信息用户Uu对产 品item在第n个项目特征gn上的特征值gitem,n与第i个产品Ii在第n个项目特征g n上的特征值 g1>n取值均为T的项目个数;
[0083]步骤2.3、利用式(3)计算获得贫信息用户1]11对所述第1个产品11的评分5 11,1为5(3)时 的概率 P(S(s)|li):
[0085]为防止参数概率为0的情况,本发明对上述参数均使用拉普拉斯平滑方法。
[0087] 步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值 Su,i分别为S (1)…,S(s),…,S(s)时的概率,并将最大概率所对应的评分作为贫信息用户仏对 第i个产品^的缺失值S u>1的预测评分;
[0088] 步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二 维表T中所有贫信息用户的缺失值;
[0089] 步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产 品Ii与所述第j个产品Ij的项目相似度sin/ u(Ii,Ij):
[0091] 式(4)中,% 表示在补全所有贫信息用户的缺失值二维表T中,既对所述 第i个产品Ii有评分Su,i,又对所述第j个产品Ij有评分Su, j的贫信息用户uu; $表示在补全所 有贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品h的平均评分;忍表示在 补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品I』的平均评分;
[0092] 步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i 个产品Ii与所述第j个产品Ij的项目相似度sim u(Ii,Ij):
[0094]式(5)中,表示既对所述第i个产品1:的有评分Su>1,又对所述第j个产品Ij 有评分Su, j的贫信息用户数目,A是待调节参数,A的具体取值由交叉验证实验确定;
[0095]步骤三、对任意第i个产品Ii和第j个产品I」;当第v个用户Uv对第i个产品Ii和第j 个产品I调有评分SvjPSq,则第V个用户Uv即为富信息用户;计算富信息用户Uv对第i个产 品Ii与第j个产品Ij的项目相似度sim v(Ii,Ij); Kv彡|u| ;v乒u;
[0096]步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对第i个产品h 与第j个产品Ij的项目相似度sin/vdijj):
[0098] 式(6)中,矣表示所有富信息用户对第i个产品h的平均评分;$表示所有富信息 用户对第j个产品L的平均评分表示既对第i个产品1:的有评分Sv>1,又对第j 个产品I j有评分Sv, j的富信息用户Uv;
[0099] 步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对第i个产 品Ii与第j个产品Ij的项目相似度sim v(Ii,Ij):
[0101] 式(7)中,表示既对第i个产品I i的有评分Su, i,又对第j个产品I j有评分 SU>J的富信息用户数目,A'是另一个待调节参数,A'的具体取值由交叉验证实验确定;
[0102] 步骤四、利用式(8)进行基于贫信息用户Uu对第i个产品h与第j个产品I」的项目相 似度simu(Ii,Ij),与富信息用户U v对第i个产品Ii与第j个产品Ij的项目相似度Simv(Ii,Ij) 的项目相似度融合;得到融合相似度sinKh,Ij):
[0103] sim(Ii,Ij) = (l-y ) Xsimu(Ii,Ij)+y Xsimv(Ii,Ij) (8)
[0104] 式(8)中,y是待调节参数,y的具体取值由交叉验证实验确定;
[0105] 步骤五、根据所述融合相似度simahlj,利用基于项目的协同过滤算法一一式 (9),获得未评分产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排 序集合的前N项作为推荐结果,并推荐给所述贫信息用户Uu。
[0106] 步骤5.1、当用户Uu对所述第i个产品^未真实产生评分Su,dt,利用式(9)计算得到 用户U u对所述第i个产品^的最终预测评分值|,;
[0108] 式(9)中,f表示除第i个产品h外产品集合I内的其他所有产品;$表示用户对第 i个产品^真实产生评分的所有评分的平均评分,即第i个产品h的平均评分f的计算不包 括步骤二中通过朴素贝叶斯分类器获得的预测评分。
[0109] 步骤5.2、重复步骤5.1,计算获得用户Uu对所有未真实产生评分的最终预测评分 t:并进行降序排列,获得未评分产品预测评分值的排序集合;
[0110] 步骤5.3、选取所述未评分项排序集合的前N项作为推荐结果推荐给所述用户Uu。
[0111] 针对本发明方法进行实验论证,具体包括:
[0112] 1)准备标准数据集
[0113] 本发明使用GroupLens的MovieLenslOOk数据集。这个数据集包括943个用户对 1682部电影的100000条评分记录。每个用户评价过至少20部电影。此外,这个数据集包含每 个电影的流派信息,电影库中的所有电影共涉及到18种流派,每种流派下的电影个数如表3 所示,每个电影至少涉及到一种流派信息。
[0114] 表3
[0115]
[0116] 2)评价指标
[0117] 采用均方根误差(RMSE)作为本实施例的评价指标,式(10)。将具有最优效果的IFA 算法与其它基准算法进行比较,均方根误差RMSE通过计算测试集中实际的用户评分与对应 项的最终预测值之间的偏差度量预测的准确性,RMSE越小,推荐质量越高:
[0119] 式(10)中,Su,^测试集ITest中用户Uu对第i个产品h的实际评分,之,为算法计算 得到的用户Uu对第i个产品h的预测评分,|lTest|为测试集中评分记录个数。
[0120] 3)IFA算法的参数选择
[0121] IFA算法有两个参数控制着算法的结果,分别是利用加权皮尔逊相关系数计算富 信息用户与贫信息用户的项目相似度时的加权因子A,基于富信息用户与贫信息用户的项 目相似度贡献权重y。本发明中先确定使得Weighted Pearson算法取得最优预测精度的入, 然后用确定的X来调节最优的Y。
[0122] 3.1)加权因子入:
[0123] 参数A对Weighted Pearson的影响如图3~图6所示,由于篇幅限制这里本发明中 只列出了训练集和测试集比例为〇.3,0.5,0.7和0.9,不同的测试集1^的产品项目集规格 Neighbor Size下,即测试集中的评分记录数目不同时,参数A对算法的影响分析实验结果。 发现对于所有稀疏度等级的数据集,使得Weighted Pearson算法获得最优评分预测精度的 入维持在140-200之间。这证实了较少的富信息用户数目不一定意味着项目对有着较高的相 似度。在后续确定最优y的试验中,本发明将各个稀疏度数据集的A分别设为180,180,190, 140〇
[0124] 3.2)相似度贡献权重y :
[0125] 在确定使得Weighted Pearson算法取得最优预测精度的A后,本发明分别展示了 y从0到1变化时算法的预测精度的变化,如图7~图10所示。由公式(8)知,当y取1时,IFA 算法转变为Weighted Pearson算法:当训练集和测试集比例为0.3时,我们发现IFA算法在 Y取0-0.9之间的任意数,算法效果都优于Y取1时的效果,这充分说明了利用朴素贝叶斯 分类器预测贫信息用户评分项的贫信息用户评分项中的缺失值的有效性;当训练集和测试 集比例为0.5,0.7和0.9时算法Y取0.8-0.9之间的任意数算法IFA算法效果都要优于 Weighted Pearson算法,这表明了融合贫信息用户评分项可以提升评分预测精度。此外对 所有稀疏度等级的数据集,T在0.9-0.95时算法取得最优,这也说明虽然贫信息用户评分 项有助于提升推荐准确性,但是用户的实际评分项还是为用户邻居选择贡献最大。
[0126] 4)在标准数据集上进行实验
[0127] 表4为各个算法在不同训练/测试集比例的数据集上的RMSE值。每种数据集中最好 的算法用粗体表示。本发明表4列出了所提的IFA算法在各种比例下相对于其它算法的提 升,并对提升求取均值。我们发现在7种不同稀疏度条件的数据集下,所提IFA算法在5种较 为稀疏的数据集下均优于其它所有算法,只在在1个较为密集的数据集下IFA算法略逊于 Cosine Norm算法,在ratio为0.8时IFA算法和Cosine Norm算法表现相当。
[0128]与Pearson算法相比,IFA算法在所有稀疏条件下的效果都优于Pearson算法,平均 提升精度为3.0%。此外,我们发现Pearson算法在所有稀疏度条件的数据集下的推荐精度 都逊于所有其它算法。这表明考虑贫信息用户的评分项有助于提升推荐的预测精度。
[0129] 表4
[0130]
[0131] 与基于Weighted Pearson的算法相比,IFA算法在所有稀疏度条件下都优于 Weighted Pearson算法,精度平均提升为0.8%。特别是当训练集和测试集比例为30%和 40%时,此时训练集中的评分数据极度稀疏,IFA算法相对于Weighted Pearson算法的提升 分别为1.5%和1.2%,这说明利用项目项目特征对贫信息用户评分项的贫信息用户评分项 中的缺失值进行预测有助于缓解数据集的稀疏性问题。另外我们发现Weighted Pearson在 所有稀疏度条件下的效果都优于Pearson算法,这说明惩罚贫信息用户过多的项目对的相 似度有助于提升基于项目最近邻协同过滤算法的评分预测精度。
[0132] 与基于Cosine Norm相似度的项目最近邻协同过滤算法相比,所提算法在训练集 和测试集比例为30%-70%时均优于Cosine Norm算法,当训练集和测试集比例为90%时, Cosine Norm算法略逊于所提IFA算法。总体来说,Cosine Norm是对数据集稀疏度依赖非常 高的算法,当数据集较为密集时,算法效果非常好,但是当数据集极度稀疏时,该算法几乎 是最差的算法。
[0133]与基于概率矩阵分解(PMF)的算法相比,所提算法在所有数据集上均优于PMF算 法,不过值得一提的是,PMF算法在最为稀疏的一个数据集中的表现仅次于所提IFA算法。
【主权项】
1. 一种基于产品项目特征扩充的最近邻协同过滤方法,其特征是按如下步骤进行: 步骤一、用二维表T = {U,I,S}表示产品的评分数据; 所述二维表T中,U={Ur-,Uu,…,U|U|}表示用户集合,I = {Ir-,Ii,…,I|i|}表示产品集 合,S={S(1)…,S(s),…,S(s)}表示用户对产品的评分集合; 所述用户集合U中,| u |为用户的总数目,Uu表示第u个用户;1彡u彡| u | ;所述产品集合I 中,I i I为产品的总数目,h表示第i个产品;I i I ;所述评分集合S中,S(s)表示所述评 分集合中第s个评分,且S(1)<~<S (s)<~<S(s); 令第u个用户Uu对第i个产品Ii的评分为Su, i,且Su, i G S; 对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu对所述第i个产品Ii和第j个产品Ij 均有评分Su,dPSu」,则表示第u个用户Uu为富信息用户;第u个用户U u对第i个产品h的评分 Su,i和第u个用户Uu对第j个产品1」的评分Su,」均称为富信息用户评分项;| i | ; i乒j ; 对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产品Ii有评分Su,i或 仅对第j个产品L有评分Su+则表示第u个用户Uu为贫信息用户;第u个用户Uu对第i个产品 h的评分Su>1和第u个用户Uu对第j个产品I」的评分Sy均称为贫信息用户评分项;并有: 当第u个用户Uu仅对所述第j个产品I」有评分Sy时,第u个用户Uu对第i个产品h的评分 Su,d#为贫信息用户评分项中的缺失值; 令所有产品具有的项目特征集合为G = {gl…,gn,…,g|n|},gn表示所有产品的第n个项 目特征;令贫信息用户评分项中的缺失值Su>1所代表的第i个产品h的项目特征集合为 Gi= {gi,r",gi,v,gi, |n|} ;gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第 i个产品Ii具有第n个项目特征gn,则gi,n=l;否则,gi,n = 0;Kn彡|n| ; 步骤二、假设第u个用户Uu为贫信息用户;第u个用户Uu对所述第i个产品h的评分SU>1S 贫信息用户评分项中的缺失值;计算贫信息用户Uu对所述第i个产品^与所述第j个产品込 的项目相似度simu(Ii, Ij); 步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失值 Su,i为S(s)时的先验概率P(S(S)):式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item表示 所述已评分产品集合I(u)中的任一产品;|I(U)|表示所述已评分产品集合I(u)中的产品数目; Su,ltem表示贫信息用户Uu对所述已评分产品集合I(u)中产品item的评分; {itemGl(u)|Su,ltem=S(s)}|表示贫信息用户U u在所述已评分产品集合I(u)中评分Su,ltem 为S(s)的产品数目; 步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品h的评分项中的缺失值 Su,i为S(s)时的似然函数P(gn| S(s)):式⑵中,gltem,n表示贫信息用户仏对所述已评分产品集合I(u)中的产品item在第n个项 目特征gn上的特征值;| {itemG I(u),gi,n=l I Su,item=S(S) ngitem,n = gi,n} I 表示贫信息用户Uu 对所述已评分的产品集合I(u)中的产品item中评分Su,ltemSS (s),且贫信息用户Uu对产品 item在第n个项目特征gn上的特征值gitem,n与第i个产品Ii在第n个项目特征g n上的特征值 g1>n取值均为T的项目个数; 步骤2.3、利用式(3)计算获得贫信息用户1]11对所述第1个产品11的评分511, 1为5(3)时的概 率 P(S(s)|li):步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值Su, i分 别为S(1)…,S(s),…,S(s)时的概率,并将最大概率所对应的评分作为贫信息用户U u对第i个 产品^的缺失值Su,:的预测评分; 步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二维表 T中所有贫信息用户的缺失值; 步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产品h 与所述第j个产品Ij的项目相似度sin/udijj):式⑷中,表示在补全所有贫信息用户的缺失值二维表T中,既对所述第i 个产品Ii有评分Su, i,又对所述第j个产品I j有评分Su, j的贫信息用户Uu;瓦表示在补全所有 贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品h的平均评分;$表示在补 全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品I』的平均评分; 步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i个产 品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij):式(5)中,& n% |表示既对所述第i个产品Ii的有评分Su, i,又对所述第j个产品Ij有评 分Sy的贫信息用户数目,A是待调节参数; 步骤三、假设第v个用户Uv即为富信息用户;计算富信息用户Uv对所述第i个产品1:与所 述第j个产品Ij的项目相似度simv(Ii,Ij);Kv彡|u| ;v乒u; 步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对所述第i个产品h 与所述第j个产品Ij的项目相似度sin/vdijj):式(6)中,% n%表示既对所述第i个产品^的有评分Sv>1,又对所述第j个产品込 有评分Sq的富信息用户U、;完表示所有富信息用户对第i个产品h的平均评分;$表示所有 富信息用户对第j个产品込的平均评分; 步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对所述第i个产 品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij):式⑴中,表示既对所述第i个产品1:的有评分Su>1,又对所述第j个产品I洧评 分Sy的富信息用户数目,A'是另一个待调节参数; 步骤四、利用式(8)进行基于贫信息用户Uu对所述第i个产品1:与所述第j个产品I」的项 目相似度simuaulj),与富信息用户Uv对所述第i个产品1:与所述第j个产品込的项目相似 度sim v(Ii,Ij)的项目相似度融合;得到融合相似度sim(Ii,I j): sim(Ii,Ij) = (l-y ) Xsimu(Ii,Ij)+y Xsimv(Ii,Ij) (8) 式(8)中,y是待调节参数; 步骤五、根据所述融合相似度simahlj,利用基于项目的协同过滤算法,获得未评分 产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排序集合的前N项 作为推荐结果,并推荐给所述贫信息用户U u。
【文档编号】G06Q30/06GK106055715SQ201610547148
【公开日】2016年10月26日
【申请日】2016年7月12日
【发明人】刘业政, 宋颖欣, 王锦坤, 姜元春, 孙见山, 孙春华
【申请人】合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1