基于用户相似度的稀疏数据协同过滤推荐方法

文档序号:10655173阅读:697来源:国知局
基于用户相似度的稀疏数据协同过滤推荐方法
【专利摘要】本发明公开一种基于用户相似度的稀疏数据协同过滤推荐方法,主要解决现有技术中面临稀疏数据时,计算用户之间相似度值不准确,进而影响推荐质量的问题。其实现步骤为:(1)构建稀疏用户对项目的评分矩阵;(2)计算任意两个项目之间的全局相似性;(3)计算任意两个用户评分之间的局部相似性;(4)计算任意两个用户之间的相似度;(5)预测评分;(6)产生推荐列表;(7)完成了对所有用户的协同过滤项目推荐。通过实验仿真结果表明,在稀疏数据集上,本发明与传统协同过滤推荐方法相比计算用户之间相似度更准确,进而提高推荐质量,更好的满足用户需求。
【专利说明】
基于用户相似度的稀疏数据协同过滤推荐方法
技术领域
[0001] 本发明属于物理技术领域,更进一步设及项目推荐技术领域中的一种基于用户相 似度的稀疏数据协同过滤推荐方法。本发明可根据用户对物品的评分信息,通过计算用户 之间的相似度进而根据相似度大小为用户选取邻居用户集,由此发现用户的兴趣点,从而 引导用户发现自己需要的物品,将用户感兴趣的物品推荐给用户,给用户解决个性化推荐 问题。
【背景技术】
[0002] 随着互联网的进一步普及,信息过载问题日益严重,如何从海量信息中快速有效 获取自己感兴趣的信息已经成为一个亟需解决的问题。面临上述问题,推荐系统应运而生 并且受到广泛关注。推荐系统通过分析用户的历史行为数据,分析发现用户的兴趣爱好,并 为用户推荐其感兴趣的物品或是信息。现如今,已存在的推荐方法有很多,其中协同过滤是 应用最为广泛且最为成功的一种推荐方法。其中基于内存的协同过滤主要思想是首先通过 合理的相似性指标计算用户之间的相似度,然后根据相似度大小为目标用户选取合适的邻 居用户集,进而为目标用户未评过分的项目进行预测评分,最后根据预测评分大小进行推 荐。因此,相似性指标的设计选取至关重要,其影响着目标用户邻居集,进而影响着最终的 推荐质量。
[0003] 西安电子科技大学申请的专利"基于化ccard均衡距离的协同过滤推荐方法"(申 请号:201510493501,申请公布号:CN 105095476 A)中公开了一种协同过滤推荐方法。该方 法的实施步骤是:步骤1,从推荐系统中获取用户项目评分,并计算用户之间的相似度。步骤 2,根据用户项目评分,确定最近邻居查询个数。步骤3,根据相似度矩阵确定目标用户邻居 集再由邻居集计算目标用户对所有未评分的项目进行评分预测。步骤4,根据评分预测情况 进行推荐。该方法存在的不足之处是,其计算用户之间的相似度时只利用了用户之间的共 同评分项目信息,数据比较稀疏的情况下,相似度的计算不准确,进而影响最终的推荐质 量。
[0004] Bidyut Kr.Patra 等人在其发表的论文"A new similarity measure using Bhsttschsryys coefficient for col Isborstive filtering in sp 曰 rse d曰 t 曰'' 化nowledge-Based Systems 82(2015) 163-177)中提出了一种基于BCF的协同过滤推荐方 法,该方法的实施步骤是:步骤1,建立用户和物品的稀疏评分矩阵信息。步骤2,结合 Bhattacharyya系数计算物品之间的全局相似度,然后将用户的平均评分或是评分中位数 作为参考基准计算用户评分局部相似度,最后根据用户之间的所有评分信息计算用户之间 的相似度。步骤3,根据用户相似度大小为目标用户选取邻居用户集。步骤4,根据邻居用户 评分情况进行推荐。该方法虽然利用了用户之间所有评分信息,但是仅仅采用 Bhattacharyya系数计算物品之间全局相似性不准确还可W进一步提高,并且在计算用户 评分局部相似性时仅仅利用了传统相似性指标不准确,所W影响用户相似度的计算进而影 响最终推荐效果。

【发明内容】

[0005] 本发明的目的是针对现有技术的协同过滤推荐方法在面临稀疏数据时,其采用的 相似性指标存在的缺陷与不足,提出了一种基于用户相似度的稀疏数据协同过滤推荐方 法。本发明针对稀疏数据结合化attacharyya系数与化ccard系数W构建用户相似度进行协 同过滤推荐,有效克服了数据稀疏问题对推荐结果产生的负面影响。
[0006] 为了实现上述目的,本发明的具体实现步骤如下:
[0007] (1)构建稀疏用户对项目的评分矩阵:
[0008] (Ia)从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对 项目的稀疏评分矩阵R(nXm),其中,n表示用户数量,m表示项目数量;
[0009] (Ib)将稀疏评分矩阵中用户未评过分的项目的评分用0表示,将稀疏评分矩阵中 用户评过分的项目的评分用对应评分值表示;
[0010] (2)计算稀疏评分矩阵中任意两个项目之间的全局相似性:
[0011] (2a)按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比化ccard系数:
[0012]
[001引其中,JaccardQ,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比化ccard系 数,ri表示稀疏评分矩阵中项目i的评分集合,n表示稀疏评分矩阵中项目j的评分集合,ri n r康示项目i的评分集合与项目j的评分集合的交集,I ri n d表示两个评分集合的交集 中评分个数,ri U n表示项目i的评分集合与项目j的评分集合的并集,I n U n I表示两个评 分集合的并集中评分个数;
[0014] (2b)计算稀疏评分矩阵中任意两个项目之间的己氏化attacharyya系数;
[0015] (2c)按照下式,计算稀疏评分矩阵中任意两个项目之间的全局相似性:
[0016] BCJ(i,j) = [1+Jaccard(i,j)]地C(i,j)
[0017]其中,BCJ(i,j)表示稀疏评分矩阵中任意项目i与项目j的全局相似性Jaccard Q,j)表示项目i与项目j的雅克比化ccard系数,*表示相乘操作,BCQ,j)表示项目i与项目 j 的己氏Miat1:acharyya 系数;
[0018] (2d)判断是否计算完稀疏评分矩阵中所有项目的全局相似性,若是,执行步骤 (3),否则,执行步骤(2a);
[0019] (3)计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
[0020] (3a)按照下式,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
[0021]
[0022] 其中,Ioc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,表示稀疏 评分矩阵中任意用户U对项目i的评分,rvj表示稀疏评分矩阵中任意用户V对项目j的评分, ^表示稀疏评分矩阵中任意用户U的平均评分,表示稀疏评分矩阵中任意用户V的平均评 分,e表示求自然常数操作,*表示相乘操作,;::;;;表示在[1,2,3,4,引评分区间的中位数3;
[0023] (3b)判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行步 骤(4),否则,执行步骤(3a);
[0024] (4)计算稀疏评分矩阵中任意两个用户之间的相似度:
[0025] (4a)计算稀疏评分矩阵中任意两个用户之间雅克比化ccard系数;
[0026] (4b)按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:
[0027]
[00%] 其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户n的相似度,Jaccard(m,n) 表不用户m与用户n的雅克比化ccard系数,X表不求和操作,Im表不用户m的评分集合,In表 示用户n的评分集合,E表示属于符号,BCJQ, j)表示项目i与项目j的全局相似性,*表示相 乘操作,Ioc (rmi ,rnj)表不评分打Ii与评分rnj的局部相关性,打Ii表不用户m对项目i的评分,:Tnj 表示用户n对项目j的评分;
[0029] (4c)判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤(5),否 贝IJ,执行步骤(4a);
[0030] (5)预测评分:
[0031 ] (5a)选取稀疏评分矩阵中任意一个用户作为目标用户;
[0032] (5b)将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个用 户,作为目标用户的邻居用户集,K>50;
[0033] (5c)采用协同过滤公式,对稀疏评分矩阵中目标用户评分为0的项目进行预测评 分;
[0034] (5d)判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤(6), 否则,执行步骤(5a);
[00巧](6)产生推荐列表:
[0036] (6a)选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表;
[0037] (6b)将稀疏评分矩阵中目标用户评分为0的项目按照预测评分从大到小排序,从 排序中选取前N个项目作为最终的推荐集合,
[003引(6c)判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤 (7),否则,执行步骤(6a);
[0039] (7)完成了对所有用户的协同过滤项目推荐。
[0040] 本发明与现有技术相比有W下优点:
[0041] 第1,由于本发明采用了计算任意两个项目之间的全局相似性时结合 Bhattacharyya系数与化ccard系数的方法,有效克服了现有技术在数据稀疏的情况下,物 品全局相似度的计算不准确对推荐正确率产生负面影响的不足,使得本发明具有计算项目 之间全局相似性更加准确,继而提高推荐正确率的优点。
[0042] 第2,由于本发明采用了计算用户评分之间的局部相似性时,同时将用户平均评分 与评分中位数作为参考基准,并结合sigmoid函数的方法,有效克服了现有技术在数据稀疏 情况下,计算用户评分局部相似性,仅仅利用传统相似性指标不准确,导致推荐质量下降的 缺点,使得本发明具有计算用户评分局部相似性更有效进而减小推荐误差的优点。
【附图说明】
[0043] 图1是本发明的流程图;
[0044] 图2是本发明与现有技术在ML数据集上平均绝对误差随邻居用户数量k变化的仿 真结果图;
[0045] 图3是本发明与现有技术在ML数据集上正确率随推荐列表长度Top-N变化的仿真 结果图;
[0046] 图4是本发明与现有技术在ML数据集上召回率随推荐列表长度Top-N变化的仿真 结果图;
[0047] 图5是本发明与现有技术在化t数据集上平均绝对误差随邻居用户数量k变化的仿 真结果图;
[0048] 图6是本发明与现有技术在化t数据集上正确率随推荐列表长度Top-N变化的仿真 结果图;
[0049] 图7是本发明与现有技术在化t数据集上召回率随推荐列表长度Top-N变化的仿真 结果图。
【具体实施方式】
[0050] W下结合附图对本发明的具体实施措施进行详细描述。
[0051] 参照图1,本发明的实现步骤如下:
[0052] 步骤1,构建稀疏用户对项目的评分矩阵。
[0053] 从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对项目 的稀疏评分矩阵R(n Xm),其中,n表示用户数量,m表示项目数量。
[0054] 将稀疏评分矩阵中用户未评过分的项目的评分用0表示,将稀疏评分矩阵中用户 评过分的项目的评分用对应评分值表示。
[0055] 步骤2,计算稀疏评分矩阵中任意两个项目之间的全局相似性。
[0056] 第1步,按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比化ccard系数:
[0化7]
[00则其中,JaccardU,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比Jaccard系 数,ri表示稀疏评分矩阵中项目i的评分集合,n表示稀疏评分矩阵中项目j的评分集合,ri n r康示项目i的评分集合与项目j的评分集合的交集,I ri n d表示两个评分集合的交集 中评分个数,ri U n表示项目i的评分集合与项目j的评分集合的并集,I n U n I表示两个评 分集合的并集中评分个数。
[0059] 第2步,按照下式,计算稀疏评分矩阵中任意两个项目之间的己氏化attacharyya 系数:
[0060]
[0061 ] 其中,BC(i , j)表示稀疏评分矩阵中任意项目i与项目j的己氏化attacharyya系 数,X表示求和操作,h表示稀疏评分矩阵中用户对项目的评分分数,广表示开平方操作, /1表示稀疏评分矩阵中将项目i评分为h的用户比例
'Cih表示稀疏评分矩阵中将项 目i评分为h的用户数,Cl表示稀疏评分矩阵中将项目i评过分的用户数;表示稀疏评分矩 阵中将项目j评分为h用户的比仍
旬h表示稀疏评分矩阵中将项目j评分为h的用户 数,Cj表示稀疏评分矩阵中将项目j评过分的用户数。
[0062] 第3步,按照下式,计算稀疏评分矩阵中任意两个项目之间的全局相似性:
[0063] BCJ(i,j) = [1+Jaccard(i,j)]地C(i,j)
[0064] 其中,BCJQ J)表示稀疏评分矩阵中任意项目i与项目j的全局相似性,Jaccard Q,j)表示项目i与项目j的雅克比化ccard系数,*表示相乘操作,BCQ,j)表示项目i与项目 j 的己氏Miat1:acharyya 系数。
[0065] 第4步,判断是否计算完稀疏评分矩阵中所有项目的全局相似性,若是,执行步骤 3,否则,执行本步骤的第1步。
[0066] 步骤3,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性。
[0067] 第1步,按照下式,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
[006引
[0069] 其中,Ioc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,表示稀疏 评分矩阵中任意用户U对项目i的评分,rvj表示稀疏评分矩阵中任意用户V对项目j的评分, ;:表示稀疏评分矩阵中任意用户U的平均评分,;;;表示稀疏评分矩阵中任意用户V的平均评 分,e表示求自然常数操作,*表示相乘操作,;:品表示在[1,2,3,4,引评分区间的中位数3。
[0070] 第2步,判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行 步骤4,否则,执行本步骤的第1步。
[0071 ]步骤4,计算稀疏评分矩阵中任意两个用户之间的相似度。
[0072] 第1步,按照下式,计算稀疏评分矩阵中任意两个用户之间雅克比化ccard系数;
[0073]
[0074] 其中,JaccarcKk,1)表示稀疏评分矩阵中任意用户k与用户1的雅克比化ccard系 数,rk表示稀疏评分矩阵中任意用户k的评分集合,ri表示稀疏评分矩阵中任意用户1的评分 集合,Innril表示用户k的评分集合与用户1的评分集合的交集中评分个数,InUriI表示 用户k的评分集合与用户1的评分集合的并集中评分个数。
[0075] 第2步,按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:
[0076]
[0077] 其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户n的相似度,Jaccard(m,n) 表不用户m与用户n的雅克比化ccard系数,X表不求和操作,Im表不用户m的评分集合,In表 示用户n的评分集合,G表示属于符号,BCJ(i,j)表示项目i与项目j的全局相似性,*表示相 乘操作,Ioc (rmi,rnj )表示评分打Ii与评分rnj的局部相关性,打Ii表示用户m对项目i的评分,:Tnj 表示用户n对项目j的评分。
[0078]第3步,判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤5,否 贝IJ,执行本步骤的第1步。
[00巧]步骤5,预测评分。
[0080] 第1步,选取稀疏评分矩阵中任意一个用户作为目标用户。
[0081] 第2步,将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个 用户,作为目标用户的邻居用户集,K>50。
[0082] 第3步,采用如下协同过滤公式,对稀疏评分矩阵中目标用户评分为0的项目进行 预测评分:
[0083]
[0084] 其中,Pai表示对目标用户a对未评过分的项目i的预测评分,~表示用户a的平均评 分,S表示求和操作,G表示属于符号,Hai表示目标用户a邻居用户集中对项目i评过分的邻 居用户子集,
其中,S表示目标用户的邻居用户,G表示属于符号,Ka 表示用户a的邻居用户集,I表示集合定义符号,3表示存在符号,表示邻居用户S对项目i 的评分,S im(a, S)表不用户a与邻居用户S的相似度。
[0085] 第4步,判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤6, 否则,执行本步骤的第1步。
[00化]步骤6,产生推荐列表。
[0087]第1步,选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表。 [008引第2步,将稀疏评分矩阵中目标用户评分为0的项目按照预测评分从大到小排序, 从排序中选取前N个项目作为最终的推荐集合,2《N《20。
[0089] 第3步,判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤 7,否则,执行本步骤的第1步。
[0090] 步骤7,完成了对所有用户的协同过滤项目推荐。
[0091 ]本发明可通过W下仿真实验结果进一步说明。
[0092] 1.仿真实验的条件:
[0093] 仿真实验运行环境:CPU为Intel (R)Core(TMH5-3337U@l. 8細Z,内存为4GB,编译 环境为 Matlab2014a。
[0094] 2.仿真实验数据与评价指标:
[00M]本发明中采用推荐系统领域常用的数据集MovieLens-IM和化tflix电影数据集, 为了验证本发明在稀疏数据上的有效性,从两个数据集分别随机获取两个稀疏数据子集ML 和化t,具体数据统计信息见表1。
[0096]表1数据集统计信息
[0097]
[0098] 表1中英文Dataset (original)表示原始数据集,Dataset (subset)表示随机获取 的稀疏数据子集,WUser表示用户数量,#Item表示项目数量,#3日1:;[]1旨3表示评分数量, Sparsity level表示数据稀疏度,?表示稀疏度计算公式,其中,R表示评分数量,U表 U祐I 示用户数量,I表示项目数量,*表示相乘操作。
[0099] 本发明采用推荐系统领域常用的评价指标,包括平均绝对误差MAE,正确率 Precision,召回率Recall。其中,MAE指标表示预测评分与真实评分绝对误差平均值,由下 式获得:
[0100]
[0101] 其中,MAE表示平均绝对误差,X表示求和操作,IU为用户U评过分的项目集合,K 表示用户U对物品i的预测评分,据表示用户U对物品i的真实评分,Ifi-拖I表示预测评分与 真实评分的差值的绝对值,#Iu表示用户U评过分的项目数量。
[0102] 正确率Precision表示推荐列表中用户真实喜欢的项目占推荐列表中所有项目的 比例,由下式获得:
[0103]
[0104] 其中,Precision表示正确率,n表示推荐列表中用户真实喜欢的项目数,ILr I表示 推荐列表中项目数。
[0105] 召回率Recall表示推荐列表中用户真实喜欢的项目占用户整体喜欢的所有项目 数的比例,由下式获得:
[0106]
[0107]其中,Recall表示召回率,n表示推荐列表中用户真实喜欢的项目数,Ikevl表示用 户真实喜欢的所有项目的数量。
[010引3.仿真实验结果与内容:
[0109]仿真实验1是在ML数据集上,W平均绝对误差MAE为评价指标,本发明化jcf与现有 技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的 协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比的结果如图2所示。图2 中,纵坐标表示平均绝对误差,横坐标表示邻居用户数,W菱形标记的曲线表示现有技术的 基于nhsm的协同过滤推荐方法,W五角星标记的曲线表示现有技术的基于加 Sd的协同过滤 推荐方法,W叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标 记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发 明,从图2中可W看出,总体上本发明的曲线位于其它现有四种技术下方,因此说明本发明 平均绝对误差是最低的。
[0110]仿真实验2是在ML数据集上,W正确率Precision为评价指标,本发明化jcf与现有 技术的基于bcf-cor的协同过滤方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同 过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图3所示。其中,纵坐标 表示正确率,横坐标表示推荐列表长度,W菱形标记的曲线表示现有技术的基于nhsm的协 同过滤推荐方法,W五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,W 叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标记的曲线表 示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发明,从图3中 可W看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明正确率是最高的。
[0111] 仿真实验3是在ML数据集上,W召回率Recall为评价指标,本发明ibjcf与现有技 术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协 同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图4所示。其中,纵坐 标表示召回率,横坐标表示推荐列表长度,W菱形标记的曲线表示现有技术的基于nhsm的 协同过滤推荐方法,W五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法, W叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标记的曲线 表示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发明,从图4 中可W看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明召回率是最高的。
[0112] 仿真实验4是在化t数据集上,W平均绝对误差MAE为评价指标,本发明化jcf与现 有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd 的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图5所示。其中, 纵坐标表示平均绝对误差,横坐标表示邻居用户数,W菱形标记的曲线表示现有技术的基 于nhsm的协同过滤推荐方法,W五角星标记的曲线表示现有技术的基于加 Sd的协同过滤推 荐方法,W叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标记 的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发明, 从图5中可W看出,总体上本发明的曲线位于其它现有四种技术下方,因此说明本发明平均 绝对误差是最低的。
[0113]仿真实验5是在化t数据集上,W正确率PreciSion为评价指标,本发明ibjcf与现 有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd 的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图6所示。其中, 纵坐标表示正确率,横坐标表示推荐列表长度,W菱形标记的曲线表示现有技术的基于 nhsm的协同过滤推荐方法,W五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐 方法,W叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标记的 曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发明,从 图6中可W看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明正确率是最高 的。
[0114]仿真实验6是在化t数据集上,W召回率Recall为评价指标,本发明化jcf与现有技 术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协 同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图7所示。其中,纵坐 标表示召回率,横坐标表示推荐列表长度,W菱形标记的曲线表示现有技术的基于nhsm的 协同过滤推荐方法,W五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法, W叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,W方形标记的曲线 表示现有技术的基于bcf-cor的协同过滤推荐方法,W圆形标记的曲线表示本发明,从图7 中可W看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明召回率是最高的。
【主权项】
1. 一种基于用户相似度的稀疏数据协同过滤推荐方法,包括如下步骤: (1) 构建稀疏用户对项目的评分矩阵: (la) 从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对项目 的稀疏评分矩阵R(n Xm),其中,η表示用户数量,m表示项目数量; (lb) 将稀疏评分矩阵中用户未评过分的项目的评分用O表示,将稀疏评分矩阵中用户 评过分的项目的评分用对应评分值表示; (2) 计算稀疏评分矩阵中任意两个项目之间的全局相似性: (2a)按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比Jaccard系数:其中,Jaccard(i,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比Jaccard系数,ri 表示稀疏评分矩阵中项目i的评分集合,^表示稀疏评分矩阵中项目j的评分集合,ri n 表 示项目i的评分集合与项目j的评分集合的交集,I n n ^ I表示两个评分集合的交集中评分 个数,n U 〇表示项目i的评分集合与项目j的评分集合的并集,I ri U 〇 I表示两个评分集合 的并集中评分个数; (2b)计算稀疏评分矩阵中任意两个项目之间的巴氏Bhattacharyya系数; (2c)按照下式,计算稀疏评分矩阵中任意两个项目之间的全局相似性: BCJ(i,j)=[1+Jaccard(i,j)]*BC(i,j) 其中,BCJ(i,j)表示稀疏评分矩阵中任意项目i与项目j的全局相似性,JaCCard(i,j) 表示项目i与项目j的雅克比Jaccard系数,*表示相乘操作,BC(i,j)表示项目i与项目j的巴 氏 Bhattacharyya 系数; (2d)判断是否计算完稀疏评分矩阵中所有项目的全局相似性,若是,执行步骤(3),否 贝IJ,执行步骤(2a); (3) 计算稀疏评分矩阵中任意两个用户评分之间的局部相似性: (3a)桉照下式,计筧稀疏评分矩阵中仵意两个用户评分夕间的局部相似性:其中,Ioc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,rul表示稀疏评分 矩阵中任意用户u对项目i的评分,表示稀疏评分矩阵中任意用户V对项目j的评分,;:表 示稀疏评分矩阵中任意用户u的平均评分,表示稀疏评分矩阵中任意用户V的平均评分,e 表示求自然常数操作,*表示相乘操作,?表示在[1,2,3,4,5 ]评分区间的中位数3; (3b)判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行步骤 (4),否则,执行步骤(3a); (4) 计算稀疏评分矩阵中任意两个用户之间的相似度: (4a)计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数; (4b)按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户η的相似度,Jaccard(m,n)表示 用户m与用户η的雅克比Jaccard系数,Σ表示求和操作,Im表示用户m的评分集合,In表示用 户η的评分集合,e表示属于符号,BCJ(i,j)表示项目i与项目j的全局相似性,*表示相乘操 作,1 〇c (rmi,rnj)表示评分rmi与评分rnj的局部相关性,rmi表示用户m对项目i的评分,r nj表示 用户η对项目j的评分; (4c)判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤(5),否则,执 行步骤(4a); (5) 预测评分: (5a)选取稀疏评分矩阵中任意一个用户作为目标用户; (5b)将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个用户,作 为目标用户的邻居用户集,K>50; (5c)采用协同过滤公式,对稀疏评分矩阵中目标用户评分为O的项目进行预测评分; (5d)判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤(6),否则, 执行步骤(5a); (6) 产生推荐列表: (6a)选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表; (6b)将稀疏评分矩阵中目标用户评分为O的项目按照预测评分从大到小排序,从排序 中选取前N个项目作为最终的推荐集合,2<N<20; (6c)判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤(7),否 贝IJ,执行步骤(6a); (7) 完成了对所有用户的协同过滤项目推荐。2. 根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在 于,步骤(2b)中所述的计算稀疏评分矩阵中任意两个项目之间的巴氏Bhattacharyya系数 是按照如下公式完成的:其中,BC(i J)表示稀疏评分矩阵中任意项目i与项目j的巴氏Bhattacharyya系数,Σ 表示求和操作,h表示稀疏评分矩阵中用户对项目的评分分数,a厂表示开平方操作,&表 示稀疏评分矩阵中将项目i评分为h的用户比例,^ = f 'Clh表示稀疏评分矩阵中将项目i评 分为h的用户数,C1表示稀疏评分矩阵中将项目i评过分的用户数;j;,表示稀疏评分矩阵中 将项目j评分为h用户的比例,6 = f^'Cjh表示稀疏评分矩阵中将项目j评分为h的用户数,Cj 表示稀疏评分矩阵中将项目j评过分的用户数。3. 根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在 于,步骤(4a)中所述的计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数是按照 如下公式完成的:其中,Jaccard(k, 1)表示稀疏评分矩阵中任意用户k与用户1的雅克比Jaccard系数,rk 表示稀疏评分矩阵中任意用户k的评分集合,^表示稀疏评分矩阵中任意用户1的评分集 合,|rknri|表示用户k的评分集合与用户1的评分集合的交集中评分个数,Ir kUr1I表示用 户k的评分集合与用户1的评分集合的并集中评分个数。4.根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在 于,步骤(5c)中所述的协同过滤公式如下:其中,pal表示对目标用户a对未评过分的项目i的预测评分,;:表示用户a的平均评分, Σ表示求和操作,e表示属于符号,Hal表示目标用户a邻居用户集中对项目i评过分的邻居 用户子集,^^ = &6[1;|3^#0},其中,8表示目标用户的邻居用户,£表示属于符号,1^表 示用户a的邻居用户集,I表示集合定义符号,3表示存在符号,r sl表示邻居用户s对项目i的 评分,sim(a, s)表示用户a与邻居用户s的相似度。
【文档编号】G06F17/30GK106021329SQ201610297877
【公开日】2016年10月12日
【申请日】2016年5月6日
【发明人】慕彩红, 刘逸, 王喜智, 朱虎明, 熊涛, 刘若辰, 田小林, 冯伟, 焦李成
【申请人】西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1