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

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

Info

Publication number
CN106021329A
CN106021329A CN201610297877.0A CN201610297877A CN106021329A CN 106021329 A CN106021329 A CN 106021329A CN 201610297877 A CN201610297877 A CN 201610297877A CN 106021329 A CN106021329 A CN 106021329A
Authority
CN
China
Prior art keywords
user
project
scoring
rating matrix
represent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610297877.0A
Other languages
English (en)
Inventor
慕彩红
刘逸
王喜智
朱虎明
熊涛
刘若辰
田小林
冯伟
焦李成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201610297877.0A priority Critical patent/CN106021329A/zh
Publication of CN106021329A publication Critical patent/CN106021329A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于用户相似度的稀疏数据协同过滤推荐方法,主要解决现有技术中面临稀疏数据时,计算用户之间相似度值不准确,进而影响推荐质量的问题。其实现步骤为:(1)构建稀疏用户对项目的评分矩阵;(2)计算任意两个项目之间的全局相似性;(3)计算任意两个用户评分之间的局部相似性;(4)计算任意两个用户之间的相似度;(5)预测评分;(6)产生推荐列表;(7)完成了对所有用户的协同过滤项目推荐。通过实验仿真结果表明,在稀疏数据集上,本发明与传统协同过滤推荐方法相比计算用户之间相似度更准确,进而提高推荐质量,更好的满足用户需求。

Description

基于用户相似度的稀疏数据协同过滤推荐方法
技术领域
本发明属于物理技术领域,更进一步涉及项目推荐技术领域中的一种基于用户相似度的稀疏数据协同过滤推荐方法。本发明可根据用户对物品的评分信息,通过计算用户之间的相似度进而根据相似度大小为用户选取邻居用户集,由此发现用户的兴趣点,从而引导用户发现自己需要的物品,将用户感兴趣的物品推荐给用户,给用户解决个性化推荐问题。
背景技术
随着互联网的进一步普及,信息过载问题日益严重,如何从海量信息中快速有效获取自己感兴趣的信息已经成为一个亟需解决的问题。面临上述问题,推荐系统应运而生并且受到广泛关注。推荐系统通过分析用户的历史行为数据,分析发现用户的兴趣爱好,并为用户推荐其感兴趣的物品或是信息。现如今,已存在的推荐方法有很多,其中协同过滤是应用最为广泛且最为成功的一种推荐方法。其中基于内存的协同过滤主要思想是首先通过合理的相似性指标计算用户之间的相似度,然后根据相似度大小为目标用户选取合适的邻居用户集,进而为目标用户未评过分的项目进行预测评分,最后根据预测评分大小进行推荐。因此,相似性指标的设计选取至关重要,其影响着目标用户邻居集,进而影响着最终的推荐质量。
西安电子科技大学申请的专利“基于Jaccard均衡距离的协同过滤推荐方法”(申请号:201510493501,申请公布号:CN 105095476 A)中公开了一种协同过滤推荐方法。该方法的实施步骤是:步骤1,从推荐系统中获取用户项目评分,并计算用户之间的相似度。步骤2,根据用户项目评分,确定最近邻居查询个数。步骤3,根据相似度矩阵确定目标用户邻居集再由邻居集计算目标用户对所有未评分的项目进行评分预测。步骤4,根据评分预测情况进行推荐。该方法存在的不足之处是,其计算用户之间的相似度时只利用了用户之间的共同评分项目信息,数据比较稀疏的情况下,相似度的计算不准确,进而影响最终的推荐质量。
Bidyut Kr.Patra等人在其发表的论文“A new similarity measure usingBhattacharyya coefficient for collaborative filtering in sparse data”(Knowledge-Based Systems 82(2015)163-177)中提出了一种基于BCF的协同过滤推荐方法,该方法的实施步骤是:步骤1,建立用户和物品的稀疏评分矩阵信息。步骤2,结合Bhattacharyya系数计算物品之间的全局相似度,然后将用户的平均评分或是评分中位数作为参考基准计算用户评分局部相似度,最后根据用户之间的所有评分信息计算用户之间的相似度。步骤3,根据用户相似度大小为目标用户选取邻居用户集。步骤4,根据邻居用户评分情况进行推荐。该方法虽然利用了用户之间所有评分信息,但是仅仅采用Bhattacharyya系数计算物品之间全局相似性不准确还可以进一步提高,并且在计算用户评分局部相似性时仅仅利用了传统相似性指标不准确,所以影响用户相似度的计算进而影响最终推荐效果。
发明内容
本发明的目的是针对现有技术的协同过滤推荐方法在面临稀疏数据时,其采用的相似性指标存在的缺陷与不足,提出了一种基于用户相似度的稀疏数据协同过滤推荐方法。本发明针对稀疏数据结合Bhattacharyya系数与Jaccard系数以构建用户相似度进行协同过滤推荐,有效克服了数据稀疏问题对推荐结果产生的负面影响。
为了实现上述目的,本发明的具体实现步骤如下:
(1)构建稀疏用户对项目的评分矩阵:
(1a)从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对项目的稀疏评分矩阵R(n×m),其中,n表示用户数量,m表示项目数量;
(1b)将稀疏评分矩阵中用户未评过分的项目的评分用0表示,将稀疏评分矩阵中用户评过分的项目的评分用对应评分值表示;
(2)计算稀疏评分矩阵中任意两个项目之间的全局相似性:
(2a)按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比Jaccard系数:
J a c c a r d ( i , j ) = | r i ∩ r j | | r i ∪ r j |
其中,Jaccard(i,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比Jaccard系数,ri表示稀疏评分矩阵中项目i的评分集合,rj表示稀疏评分矩阵中项目j的评分集合,ri∩rj表示项目i的评分集合与项目j的评分集合的交集,|ri∩rj|表示两个评分集合的交集中评分个数,ri∪rj表示项目i的评分集合与项目j的评分集合的并集,|ri∪rj|表示两个评分集合的并集中评分个数;
(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),否则,执行步骤(2a);
(3)计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
(3a)按照下式,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
l o c ( r u i , r v j ) = 1 1 + e - ( r u i - r u ‾ ) * ( r v j - r v ‾ ) * 1 1 + e - ( r u i - r m e d ‾ ) * ( r v j - r m e d ‾ )
其中,loc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,rui表示稀疏评分矩阵中任意用户u对项目i的评分,rvj表示稀疏评分矩阵中任意用户v对项目j的评分,表示稀疏评分矩阵中任意用户u的平均评分,表示稀疏评分矩阵中任意用户v的平均评分,e表示求自然常数操作,*表示相乘操作,表示在[1,2,3,4,5]评分区间的中位数3;
(3b)判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行步骤(4),否则,执行步骤(3a);
(4)计算稀疏评分矩阵中任意两个用户之间的相似度:
(4a)计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数;
(4b)按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:
s i m ( m , n ) = J a c c a r d ( m , n ) + Σ i ∈ I m Σ j ∈ I n B C J ( i , j ) * l o c ( r m i , r n j )
其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户n的相似度,Jaccard(m,n)表示用户m与用户n的雅克比Jaccard系数,Σ表示求和操作,Im表示用户m的评分集合,In表示用户n的评分集合,∈表示属于符号,BCJ(i,j)表示项目i与项目j的全局相似性,*表示相乘操作,loc(rmi,rnj)表示评分rmi与评分rnj的局部相关性,rmi表示用户m对项目i的评分,rnj表示用户n对项目j的评分;
(4c)判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤(5),否则,执行步骤(4a);
(5)预测评分:
(5a)选取稀疏评分矩阵中任意一个用户作为目标用户;
(5b)将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个用户,作为目标用户的邻居用户集,K≥50;
(5c)采用协同过滤公式,对稀疏评分矩阵中目标用户评分为0的项目进行预测评分;
(5d)判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤(6),否则,执行步骤(5a);
(6)产生推荐列表:
(6a)选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表;
(6b)将稀疏评分矩阵中目标用户评分为0的项目按照预测评分从大到小排序,从排序中选取前N个项目作为最终的推荐集合,2≤N≤20;
(6c)判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤(7),否则,执行步骤(6a);
(7)完成了对所有用户的协同过滤项目推荐。
本发明与现有技术相比有以下优点:
第1,由于本发明采用了计算任意两个项目之间的全局相似性时结合Bhattacharyya系数与Jaccard系数的方法,有效克服了现有技术在数据稀疏的情况下,物品全局相似度的计算不准确对推荐正确率产生负面影响的不足,使得本发明具有计算项目之间全局相似性更加准确,继而提高推荐正确率的优点。
第2,由于本发明采用了计算用户评分之间的局部相似性时,同时将用户平均评分与评分中位数作为参考基准,并结合sigmoid函数的方法,有效克服了现有技术在数据稀疏情况下,计算用户评分局部相似性,仅仅利用传统相似性指标不准确,导致推荐质量下降的缺点,使得本发明具有计算用户评分局部相似性更有效进而减小推荐误差的优点。
附图说明
图1是本发明的流程图;
图2是本发明与现有技术在ML数据集上平均绝对误差随邻居用户数量k变化的仿真结果图;
图3是本发明与现有技术在ML数据集上正确率随推荐列表长度Top-N变化的仿真结果图;
图4是本发明与现有技术在ML数据集上召回率随推荐列表长度Top-N变化的仿真结果图;
图5是本发明与现有技术在Net数据集上平均绝对误差随邻居用户数量k变化的仿真结果图;
图6是本发明与现有技术在Net数据集上正确率随推荐列表长度Top-N变化的仿真结果图;
图7是本发明与现有技术在Net数据集上召回率随推荐列表长度Top-N变化的仿真结果图。
具体实施方式
以下结合附图对本发明的具体实施措施进行详细描述。
参照图1,本发明的实现步骤如下:
步骤1,构建稀疏用户对项目的评分矩阵。
从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对项目的稀疏评分矩阵R(n×m),其中,n表示用户数量,m表示项目数量。
将稀疏评分矩阵中用户未评过分的项目的评分用0表示,将稀疏评分矩阵中用户评过分的项目的评分用对应评分值表示。
步骤2,计算稀疏评分矩阵中任意两个项目之间的全局相似性。
第1步,按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比Jaccard系数:
J a c c a r d ( i , j ) = | r i ∩ r j | | r i ∪ r j |
其中,Jaccard(i,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比Jaccard系数,ri表示稀疏评分矩阵中项目i的评分集合,rj表示稀疏评分矩阵中项目j的评分集合,ri∩rj表示项目i的评分集合与项目j的评分集合的交集,|ri∩rj|表示两个评分集合的交集中评分个数,ri∪rj表示项目i的评分集合与项目j的评分集合的并集,|ri∪rj|表示两个评分集合的并集中评分个数。
第2步,按照下式,计算稀疏评分矩阵中任意两个项目之间的巴氏Bhattacharyya系数:
B C ( i , j ) = Σ h = 1 5 I i h ^ . J j h ^
其中,BC(i,j)表示稀疏评分矩阵中任意项目i与项目j的巴氏Bhattacharyya系数,Σ表示求和操作,h表示稀疏评分矩阵中用户对项目的评分分数,表示开平方操作,表示稀疏评分矩阵中将项目i评分为h的用户比例,Cih表示稀疏评分矩阵中将项目i评分为h的用户数,Ci表示稀疏评分矩阵中将项目i评过分的用户数;表示稀疏评分矩阵中将项目j评分为h用户的比例,Cjh表示稀疏评分矩阵中将项目j评分为h的用户数,Cj表示稀疏评分矩阵中将项目j评过分的用户数。
第3步,按照下式,计算稀疏评分矩阵中任意两个项目之间的全局相似性:
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系数。
第4步,判断是否计算完稀疏评分矩阵中所有项目的全局相似性,若是,执行步骤3,否则,执行本步骤的第1步。
步骤3,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性。
第1步,按照下式,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
l o c ( r u i , r v j ) = 1 1 + e - ( r u i - r u ‾ ) * ( r v j - r v ‾ ) * 1 1 + e - ( r u i - r m e d ‾ ) * ( r v j - r m e d ‾ )
其中,loc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,rui表示稀疏评分矩阵中任意用户u对项目i的评分,rvj表示稀疏评分矩阵中任意用户v对项目j的评分,表示稀疏评分矩阵中任意用户u的平均评分,表示稀疏评分矩阵中任意用户v的平均评分,e表示求自然常数操作,*表示相乘操作,表示在[1,2,3,4,5]评分区间的中位数3。
第2步,判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行步骤4,否则,执行本步骤的第1步。
步骤4,计算稀疏评分矩阵中任意两个用户之间的相似度。
第1步,按照下式,计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数;
J a c c a r d ( k , l ) = | r k ∩ r l | | r k ∪ r l |
其中,Jaccard(k,l)表示稀疏评分矩阵中任意用户k与用户l的雅克比Jaccard系数,rk表示稀疏评分矩阵中任意用户k的评分集合,rl表示稀疏评分矩阵中任意用户l的评分集合,|rk∩rl|表示用户k的评分集合与用户l的评分集合的交集中评分个数,|rk∪rl|表示用户k的评分集合与用户l的评分集合的并集中评分个数。
第2步,按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:
s i m ( m , n ) = J a c c a r d ( m , n ) + Σ i ∈ I m Σ j ∈ I n B C J ( i , j ) * l o c ( r m i , r n j )
其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户n的相似度,Jaccard(m,n)表示用户m与用户n的雅克比Jaccard系数,Σ表示求和操作,Im表示用户m的评分集合,In表示用户n的评分集合,∈表示属于符号,BCJ(i,j)表示项目i与项目j的全局相似性,*表示相乘操作,loc(rmi,rnj)表示评分rmi与评分rnj的局部相关性,rmi表示用户m对项目i的评分,rnj表示用户n对项目j的评分。
第3步,判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤5,否则,执行本步骤的第1步。
步骤5,预测评分。
第1步,选取稀疏评分矩阵中任意一个用户作为目标用户。
第2步,将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个用户,作为目标用户的邻居用户集,K≥50。
第3步,采用如下协同过滤公式,对稀疏评分矩阵中目标用户评分为0的项目进行预测评分:
p a i = r a ‾ + Σ s ∈ H a i s i m ( a , s ) * ( r s i - r s ‾ ) Σ s ∈ H a i s i m ( a , s )
其中,pai表示对目标用户a对未评过分的项目i的预测评分,表示用户a的平均评分,Σ表示求和操作,∈表示属于符号,Hai表示目标用户a邻居用户集中对项目i评过分的邻居用户子集,其中,s表示目标用户的邻居用户,∈表示属于符号,Ka表示用户a的邻居用户集,|表示集合定义符号,表示存在符号,rsi表示邻居用户s对项目i的评分,sim(a,s)表示用户a与邻居用户s的相似度。
第4步,判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤6,否则,执行本步骤的第1步。
步骤6,产生推荐列表。
第1步,选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表。
第2步,将稀疏评分矩阵中目标用户评分为0的项目按照预测评分从大到小排序,从排序中选取前N个项目作为最终的推荐集合,2≤N≤20。
第3步,判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤7,否则,执行本步骤的第1步。
步骤7,完成了对所有用户的协同过滤项目推荐。
本发明可通过以下仿真实验结果进一步说明。
1.仿真实验的条件:
仿真实验运行环境:CPU为Intel(R)Core(TM)i5-3337U@1.8GHz,内存为4GB,编译环境为Matlab2014a。
2.仿真实验数据与评价指标:
本发明中采用推荐系统领域常用的数据集MovieLens-1M和Netflix电影数据集,为了验证本发明在稀疏数据上的有效性,从两个数据集分别随机获取两个稀疏数据子集ML和Net,具体数据统计信息见表1。
表1数据集统计信息
表1中英文Dataset(original)表示原始数据集,Dataset(subset)表示随机获取的稀疏数据子集,#User表示用户数量,#Item表示项目数量,#Ratings表示评分数量,Sparsity level表示数据稀疏度,表示稀疏度计算公式,其中,R表示评分数量,U表示用户数量,I表示项目数量,*表示相乘操作。
本发明采用推荐系统领域常用的评价指标,包括平均绝对误差MAE,正确率Precision,召回率Recall。其中,MAE指标表示预测评分与真实评分绝对误差平均值,由下式获得:
M A E = Σ i ∈ I U | P u i - R u i | # I u
其中,MAE表示平均绝对误差,Σ表示求和操作,IU为用户u评过分的项目集合,表示用户u对物品i的预测评分,表示用户u对物品i的真实评分,表示预测评分与真实评分的差值的绝对值,#Iu表示用户u评过分的项目数量。
正确率Precision表示推荐列表中用户真实喜欢的项目占推荐列表中所有项目的比例,由下式获得:
Pr e c i s i o n = n | L r |
其中,Precision表示正确率,n表示推荐列表中用户真实喜欢的项目数,|Lr|表示推荐列表中项目数。
召回率Recall表示推荐列表中用户真实喜欢的项目占用户整体喜欢的所有项目数的比例,由下式获得:
Re c a l l = n | L r e v |
其中,Recall表示召回率,n表示推荐列表中用户真实喜欢的项目数,|Lrev|表示用户真实喜欢的所有项目的数量。
3.仿真实验结果与内容:
仿真实验1是在ML数据集上,以平均绝对误差MAE为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比的结果如图2所示。图2中,纵坐标表示平均绝对误差,横坐标表示邻居用户数,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图2中可以看出,总体上本发明的曲线位于其它现有四种技术下方,因此说明本发明平均绝对误差是最低的。
仿真实验2是在ML数据集上,以正确率Precision为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图3所示。其中,纵坐标表示正确率,横坐标表示推荐列表长度,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图3中可以看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明正确率是最高的。
仿真实验3是在ML数据集上,以召回率Recall为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图4所示。其中,纵坐标表示召回率,横坐标表示推荐列表长度,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图4中可以看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明召回率是最高的。
仿真实验4是在Net数据集上,以平均绝对误差MAE为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图5所示。其中,纵坐标表示平均绝对误差,横坐标表示邻居用户数,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图5中可以看出,总体上本发明的曲线位于其它现有四种技术下方,因此说明本发明平均绝对误差是最低的。
仿真实验5是在Net数据集上,以正确率Precision为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图6所示。其中,纵坐标表示正确率,横坐标表示推荐列表长度,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图6中可以看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明正确率是最高的。
仿真实验6是在Net数据集上,以召回率Recall为评价指标,本发明ibjcf与现有技术的基于bcf-cor的协同过滤推荐方法、基于bcf-med的协同过滤推荐方法、基于jmsd的协同过滤推荐方法、基于nhsm的协同过滤推荐方法进行对比,对比结果如图7所示。其中,纵坐标表示召回率,横坐标表示推荐列表长度,以菱形标记的曲线表示现有技术的基于nhsm的协同过滤推荐方法,以五角星标记的曲线表示现有技术的基于jmsd的协同过滤推荐方法,以叉形标记的曲线表示现有技术的基于bcf-med的协同过滤推荐方法,以方形标记的曲线表示现有技术的基于bcf-cor的协同过滤推荐方法,以圆形标记的曲线表示本发明,从图7中可以看出,本发明的曲线位于其它现有四种技术上方,因此说明本发明召回率是最高的。

Claims (4)

1.一种基于用户相似度的稀疏数据协同过滤推荐方法,包括如下步骤:
(1)构建稀疏用户对项目的评分矩阵:
(1a)从用户对项目的评分数据集中随机提取用户对项目的评分信息,创建用户对项目的稀疏评分矩阵R(n×m),其中,n表示用户数量,m表示项目数量;
(1b)将稀疏评分矩阵中用户未评过分的项目的评分用0表示,将稀疏评分矩阵中用户评过分的项目的评分用对应评分值表示;
(2)计算稀疏评分矩阵中任意两个项目之间的全局相似性:
(2a)按照下式,计算稀疏评分矩阵中任意两个项目之间的雅克比Jaccard系数:
J a c c a r d ( i , j ) = | r i ∩ r j | | r i ∪ r j |
其中,Jaccard(i,j)表示稀疏评分矩阵中任意项目i与项目j的雅克比Jaccard系数,ri表示稀疏评分矩阵中项目i的评分集合,rj表示稀疏评分矩阵中项目j的评分集合,ri∩rj表示项目i的评分集合与项目j的评分集合的交集,|ri∩rj|表示两个评分集合的交集中评分个数,ri∪rj表示项目i的评分集合与项目j的评分集合的并集,|ri∪rj|表示两个评分集合的并集中评分个数;
(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),否则,执行步骤(2a);
(3)计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
(3a)按照下式,计算稀疏评分矩阵中任意两个用户评分之间的局部相似性:
l o c ( r u i , r v j ) = 1 1 + e - ( r u i - r u ‾ ) * ( r v j - r v ‾ ) * 1 1 + e - ( r u i - r m e d ‾ ) * ( r v j - r m e d ‾ )
其中,loc表示稀疏评分矩阵中任意两个用户评分之间的局部相似性,rui表示稀疏评分矩阵中任意用户u对项目i的评分,rvj表示稀疏评分矩阵中任意用户v对项目j的评分,表示稀疏评分矩阵中任意用户u的平均评分,表示稀疏评分矩阵中任意用户v的平均评分,e表示求自然常数操作,*表示相乘操作,表示在[1,2,3,4,5]评分区间的中位数3;
(3b)判断是否计算完稀疏评分矩阵中所有用户评分的局部相似性,若是,执行步骤(4),否则,执行步骤(3a);
(4)计算稀疏评分矩阵中任意两个用户之间的相似度:
(4a)计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数;
(4b)按照下式,计算稀疏评分矩阵中任意两个用户之间的相似度:
s i m ( m , n ) = J a c c a r d ( m , n ) + Σ i ∈ I m Σ j ∈ I n B C J ( i , j ) * l o c ( r m i , r n j )
其中,sim(m,n)表示稀疏评分矩阵中任意用户m与用户n的相似度,Jaccard(m,n)表示用户m与用户n的雅克比Jaccard系数,∑表示求和操作,Im表示用户m的评分集合,In表示用户n的评分集合,∈表示属于符号,BCJ(i,j)表示项目i与项目j的全局相似性,*表示相乘操作,loc(rmi,rnj)表示评分rmi与评分rnj的局部相关性,rmi表示用户m对项目i的评分,rnj表示用户n对项目j的评分;
(4c)判断是否计算完稀疏评分矩阵中所有用户的相似度,若是,执行步骤(5),否则,执行步骤(4a);
(5)预测评分:
(5a)选取稀疏评分矩阵中任意一个用户作为目标用户;
(5b)将目标用户与其它用户的相似度值按照从大到小排序,选取排序中前K个用户,作为目标用户的邻居用户集,K≥50;
(5c)采用协同过滤公式,对稀疏评分矩阵中目标用户评分为0的项目进行预测评分;
(5d)判断稀疏评分矩阵中所有用户是否均选为目标用户,若是,则执行步骤(6),否则,执行步骤(5a);
(6)产生推荐列表:
(6a)选取稀疏评分矩阵中任意一个用户作为目标用户,并为其产生推荐列表;
(6b)将稀疏评分矩阵中目标用户评分为0的项目按照预测评分从大到小排序,从排序中选取前N个项目作为最终的推荐集合,2≤N≤20;
(6c)判断稀疏评分矩阵中所有用户是否均产生了推荐列表,若是,则执行步骤(7),否则,执行步骤(6a);
(7)完成了对所有用户的协同过滤项目推荐。
2.根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在于,步骤(2b)中所述的计算稀疏评分矩阵中任意两个项目之间的巴氏Bhattacharyya系数是按照如下公式完成的:
B C ( i , j ) = Σ h = 1 5 I i h ^ . J j h ^
其中,BC(i,j)表示稀疏评分矩阵中任意项目i与项目j的巴氏Bhattacharyya系数,∑表示求和操作,h表示稀疏评分矩阵中用户对项目的评分分数,表示开平方操作,表示稀疏评分矩阵中将项目i评分为h的用户比例,Cih表示稀疏评分矩阵中将项目i评分为h的用户数,Ci表示稀疏评分矩阵中将项目i评过分的用户数;表示稀疏评分矩阵中将项目j评分为h用户的比例,Cjh表示稀疏评分矩阵中将项目j评分为h的用户数,Cj表示稀疏评分矩阵中将项目j评过分的用户数。
3.根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在于,步骤(4a)中所述的计算稀疏评分矩阵中任意两个用户之间雅克比Jaccard系数是按照如下公式完成的:
J a c c a r d ( k , l ) = | r k ∩ r l | | r k ∪ r l |
其中,Jaccard(k,l)表示稀疏评分矩阵中任意用户k与用户l的雅克比Jaccard系数,rk表示稀疏评分矩阵中任意用户k的评分集合,rl表示稀疏评分矩阵中任意用户l的评分集合,|rk∩rl|表示用户k的评分集合与用户l的评分集合的交集中评分个数,|rk∪rl|表示用户k的评分集合与用户l的评分集合的并集中评分个数。
4.根据权利要求1中所述的基于用户相似度的稀疏数据协同过滤推荐方法,其特征在于,步骤(5c)中所述的协同过滤公式如下:
p a i = r a ‾ + Σ s ∈ H a i s i m ( a , s ) * ( r s i - r s ‾ ) Σ s ∈ H a i s i m ( a , s )
其中,pai表示对目标用户a对未评过分的项目i的预测评分,表示用户a的平均评分,∑表示求和操作,∈表示属于符号,Hai表示目标用户a邻居用户集中对项目i评过分的邻居用户子集,其中,s表示目标用户的邻居用户,∈表示属于符号,Ka表示用户a的邻居用户集,|表示集合定义符号,表示存在符号,rsi表示邻居用户s对项目i的评分,sim(a,s)表示用户a与邻居用户s的相似度。
CN201610297877.0A 2016-05-06 2016-05-06 基于用户相似度的稀疏数据协同过滤推荐方法 Pending CN106021329A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610297877.0A CN106021329A (zh) 2016-05-06 2016-05-06 基于用户相似度的稀疏数据协同过滤推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610297877.0A CN106021329A (zh) 2016-05-06 2016-05-06 基于用户相似度的稀疏数据协同过滤推荐方法

Publications (1)

Publication Number Publication Date
CN106021329A true CN106021329A (zh) 2016-10-12

Family

ID=57081304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610297877.0A Pending CN106021329A (zh) 2016-05-06 2016-05-06 基于用户相似度的稀疏数据协同过滤推荐方法

Country Status (1)

Country Link
CN (1) CN106021329A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844433A (zh) * 2016-11-30 2017-06-13 浪潮电子信息产业股份有限公司 基于用户数量调整系数的推荐方法
CN107025606A (zh) * 2017-03-29 2017-08-08 西安电子科技大学 一种社交网络中结合评分数据和信任关系的项目推荐方法
CN108205682A (zh) * 2016-12-19 2018-06-26 同济大学 一种用于个性化推荐的融合内容和行为的协同过滤方法
CN108389113A (zh) * 2018-03-22 2018-08-10 广东工业大学 一种协同过滤推荐方法和系统
CN108694234A (zh) * 2018-05-08 2018-10-23 重庆邮电大学 一种基于改进协同过滤算法的服务推荐模型
CN108876457A (zh) * 2018-06-15 2018-11-23 重庆知遨科技有限公司 一种用于解决数据稀疏的新闻推荐方法
CN108898353A (zh) * 2018-05-29 2018-11-27 重庆大学 一种基于相似性的项目推荐方法
CN108920709A (zh) * 2018-07-22 2018-11-30 西安电子科技大学 基于随机森林修正的大数据下改进协同过滤推荐方法
CN109344329A (zh) * 2018-10-17 2019-02-15 中山大学 一种改良Widrow-Hoff网络的用户偏好协同推荐方法
CN109740655A (zh) * 2018-12-26 2019-05-10 西安电子科技大学 基于矩阵分解及神经协同过滤的物品评分预测方法
CN109977299A (zh) * 2019-02-21 2019-07-05 西北大学 一种融合项目热度和专家系数的推荐算法
CN110309864A (zh) * 2019-06-18 2019-10-08 北京化工大学 一种融合局部相似度和全局相似度的协同过滤推荐方案的方法
CN111026974A (zh) * 2019-11-21 2020-04-17 华南理工大学 一种基于过滤融合的预测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598601A (zh) * 2015-01-27 2015-05-06 北京齐尔布莱特科技有限公司 一种对用户和内容进行分类的方法、装置及计算设备
CN105095476A (zh) * 2015-08-12 2015-11-25 西安电子科技大学 基于Jaccard均衡距离的协同过滤推荐方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598601A (zh) * 2015-01-27 2015-05-06 北京齐尔布莱特科技有限公司 一种对用户和内容进行分类的方法、装置及计算设备
CN105095476A (zh) * 2015-08-12 2015-11-25 西安电子科技大学 基于Jaccard均衡距离的协同过滤推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BIDYUT KR.PATRA等: "a new similarity measure using bhattacharyya coefficient for collaborative filtering in sparse data", 《KNOWLEDGE-BASED SYSTEMS》 *
唐积益等: "优化相似度计算在推荐系统中的应用", 《电子设计工程》 *
查九等: "基于组合相似度的优化协同过滤算法", 《计算机应用与软件》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844433A (zh) * 2016-11-30 2017-06-13 浪潮电子信息产业股份有限公司 基于用户数量调整系数的推荐方法
CN108205682A (zh) * 2016-12-19 2018-06-26 同济大学 一种用于个性化推荐的融合内容和行为的协同过滤方法
CN108205682B (zh) * 2016-12-19 2021-10-08 同济大学 一种用于个性化推荐的融合内容和行为的协同过滤方法
CN107025606B (zh) * 2017-03-29 2021-04-16 西安电子科技大学 一种社交网络中结合评分数据和信任关系的项目推荐方法
CN107025606A (zh) * 2017-03-29 2017-08-08 西安电子科技大学 一种社交网络中结合评分数据和信任关系的项目推荐方法
CN108389113A (zh) * 2018-03-22 2018-08-10 广东工业大学 一种协同过滤推荐方法和系统
CN108389113B (zh) * 2018-03-22 2022-04-19 广东工业大学 一种协同过滤推荐方法和系统
CN108694234A (zh) * 2018-05-08 2018-10-23 重庆邮电大学 一种基于改进协同过滤算法的服务推荐模型
CN108898353A (zh) * 2018-05-29 2018-11-27 重庆大学 一种基于相似性的项目推荐方法
CN108876457B (zh) * 2018-06-15 2021-05-18 赣州柏朗科技有限公司 一种用于解决数据稀疏的新闻推荐方法
CN108876457A (zh) * 2018-06-15 2018-11-23 重庆知遨科技有限公司 一种用于解决数据稀疏的新闻推荐方法
CN108920709B (zh) * 2018-07-22 2021-02-12 西安电子科技大学 基于随机森林修正的大数据下改进协同过滤推荐方法
CN108920709A (zh) * 2018-07-22 2018-11-30 西安电子科技大学 基于随机森林修正的大数据下改进协同过滤推荐方法
CN109344329A (zh) * 2018-10-17 2019-02-15 中山大学 一种改良Widrow-Hoff网络的用户偏好协同推荐方法
CN109344329B (zh) * 2018-10-17 2021-11-09 中山大学 一种改良Widrow-Hoff网络的用户偏好协同推荐方法
CN109740655A (zh) * 2018-12-26 2019-05-10 西安电子科技大学 基于矩阵分解及神经协同过滤的物品评分预测方法
CN109977299A (zh) * 2019-02-21 2019-07-05 西北大学 一种融合项目热度和专家系数的推荐算法
CN109977299B (zh) * 2019-02-21 2022-12-27 西北大学 一种融合项目热度和专家系数的推荐算法
CN110309864A (zh) * 2019-06-18 2019-10-08 北京化工大学 一种融合局部相似度和全局相似度的协同过滤推荐方案的方法
CN111026974A (zh) * 2019-11-21 2020-04-17 华南理工大学 一种基于过滤融合的预测方法
CN111026974B (zh) * 2019-11-21 2023-04-28 华南理工大学 一种基于过滤融合的预测方法

Similar Documents

Publication Publication Date Title
CN106021329A (zh) 基于用户相似度的稀疏数据协同过滤推荐方法
CN102663431B (zh) 一种基于区域加权的图像匹配计算方法
CN103336766B (zh) 短文本垃圾识别以及建模方法和装置
CN101859383B (zh) 基于时间序列重要点分析的高光谱遥感图像波段选择方法
CN103345528B (zh) 一种基于关联分析和knn的文本分类方法
CN102495864A (zh) 基于评分的协同过滤推荐方法及系统
CN105868185A (zh) 一种购物评论情感分析中基于词性标注的词典构建方法
CN105930469A (zh) 基于Hadoop的个性化旅游推荐系统及方法
CN106991447A (zh) 一种嵌入式多类别属性标签动态特征选择算法
CN103995839A (zh) 基于协同过滤的商品推荐优化方法和系统
CN102982107A (zh) 一种融合用户、项目和上下文属性信息的推荐系统优化方法
CN105426514A (zh) 个性化的移动应用app推荐方法
CN104899246A (zh) 基于模糊机制用户评分邻域信息的协同过滤推荐方法
CN105956089A (zh) 一种针对具备项目的分类信息的推荐方法
CN103631874B (zh) 社交平台的ugc标签类别确定方法和装置
CN105138508A (zh) 一种基于偏好扩散的上下文推荐系统
CN103294812A (zh) 一种基于混合模型的商品推荐方法
CN103279552A (zh) 一种基于用户兴趣分组的协同过滤推荐方法
CN107145523A (zh) 基于迭代匹配的大型异构知识库对齐方法
CN104199818A (zh) 一种基于分类的社会化推荐方法
CN103365842B (zh) 一种页面浏览推荐方法及装置
CN105678590A (zh) 一种面向社交网络基于云模型的topN推荐方法
CN106776859A (zh) 基于用户偏好的移动应用App推荐系统
CN105609116A (zh) 一种语音情感维度区域的自动识别方法
CN105574265B (zh) 面向模型检索的装配体模型定量描述方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161012