CN108710648B - 一种基于s型改进相似度的协同过滤推荐方法 - Google Patents
一种基于s型改进相似度的协同过滤推荐方法 Download PDFInfo
- Publication number
- CN108710648B CN108710648B CN201810401152.0A CN201810401152A CN108710648B CN 108710648 B CN108710648 B CN 108710648B CN 201810401152 A CN201810401152 A CN 201810401152A CN 108710648 B CN108710648 B CN 108710648B
- Authority
- CN
- China
- Prior art keywords
- user
- similarity
- score
- users
- collaborative filtering
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于S型改进相似度的协同过滤推荐方法,包括以下步骤:对原始推荐评分数据进行数据清洗和填充;对预处理后的评分数据利用改进的相似度模型计算用户间的相似度;对每个用户通过Top‑N策略构建用户的最近邻居模型,通过最近邻居模型筛选用户未有过记录的项目;利用邻居的评分数据计算用户对项目的加权评分,根据加权评分的高低选取项目。本发明能够提高推荐的准确率,减小邻居规模,提高算法运行效率。
Description
技术领域
本发明涉及物品推荐技术领域,特别是涉及一种基于S型改进相似度的协同过滤推荐方法。
背景技术
随着互联网的飞速发展和移动端智能手机的普及,人类进入信息时代。据中国互联网信息中心2017年1月份发布的互联网络状况统计报告显示,截至2016年12月,中国网页数量约为2360亿个,比上一年增长11.2%。从巨大的信息量中挑选出人们满意的项目已经越来越难,从数字化图书、新闻、音乐、影视作品到电商平台都存在这样的问题,用户选择的时间成本越来越高。传统的解决方法有分类导航和搜索引擎,在信息量相对较小的情况下,以上两种解决方案在一定程度上缓解信息过载问题,但同时也存在明显的缺点:所有用户得到的结果全都相同,缺乏个性化特征,推荐***在这个时候应运而生。
协同过滤算法作为推荐***中应用最广泛的算法,其原理类比于生活中有需求时会寻求兴趣相同的好友的建议。其不依赖用户的个人信息和内容的属性,主要是依据用户过往的使用习惯或消费记录来产生推荐;同时因为其依据相似用户的推荐,推荐对象不再是和过往记录类似的,具有新颖性。
协同过滤技术已经在研究上和应用上都取得了巨大的成功。然而,其依然有很多问题需要解决和研究。面临的第一个问题是推荐准确性。为了使推荐的结果更加符合用户实际需求,学者一直在尝试改进经典协同过滤算法,但是随着用户和产品的日益增长,由于用户并不能对所有商品产生记录,而是其中很小的一部分,从而导致用户-项目矩阵十分稀疏,甚至99%以上,用户-项目矩阵的极度稀疏制约着推荐***的准确性。稀疏性也是协同过滤技术的核心问题。
发明内容
本发明所要解决的技术问题是提供一种基于S型改进相似度的协同过滤推荐方法,能够提高推荐的准确率。
本发明解决其技术问题所采用的技术方案是:提供一种基于S型改进相似度的协同过滤推荐方法,包括以下步骤:
(1)对原始推荐评分数据进行数据清洗和填充;
(2)对预处理后的评分数据利用相似度模型计算用户间的相似度;
(3)对每个用户通过Top-N策略构建用户的最近邻居模型,通过最近邻居模型筛选用户未有过记录的项目;
(4)利用邻居的评分数据计算用户对项目的加权评分,根据加权评分的高低选取项目。
所述步骤(2)具体包括以下子步骤:
(21)对原始评分数据分别计算每个用户的平均评分,消除评分主观性的影响;
(22)选取用户间的共有评分数据,利用相似度模型sim'(i,j)=sim(i,j)*S(x)计算用户间的相似度;其中,sim(i,j)为采用皮尔逊相关系数计算用户i和用户j的相似度,其中,Iij为用户i和用户j共同评分的项目集合;Ri,c和Rj,c分别表示用户i和用户j对项目c的评分,和分别表示用户i和用户j的平均评分值;S(x)为加权因子,a和b分别表示用户i和用户j单独评分的数量,c为共有评分数量,m和k分别为平移系数和变换系数。
所述步骤(3)具体为:根据步骤(2)计算得到的相似度由高到低排序,为每个用户选取N个最相似的邻居,并在每个用户的邻居评分集中筛选出该用户未曾有过记录的项目作为感兴趣目标。
所述步骤(4)中加权评分的计算方法为:其中,sim'(i,j)采用融合加权因子的皮尔逊相关系数计算用户i和用户j的相似度,NNu为用户u的邻居集合,Rj,c'表示用户j对项目c'的评分,和分别表示用户i和用户j的平均评分值。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明在稀疏性的条件下分析相似度对推荐准确率的影响,总结现有相似度的缺点的基础上,提出了更细粒度度量用户相似性的“S”型相似度,真实刻画用户或项目之间的同类,准确选择邻居集合,引入可靠性高的相似度,提高推荐阶段的预测评分准确率,减小了邻居集合的规模,一定程度上优化了算法效率。
附图说明
图1是本发明的流程图;
图2是重合因子增量图;
图3是标准Sigmod函数图;
图4是变换后Sigmod函数图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
结合图1,在本实施例中,基于基于“S”型改进相似度的协同过滤算法流程如下:
协同过滤推荐是基于用户对以往评分过的内容或消费记录来构建用户-项目评分矩阵,如下表1所示,推荐***中包含m个用户和n个项目,其中Ri,j表示用户Ui对项目Ij的评分。协同过滤算法可以分为基于用户的协同过滤和基于项目的协同过滤,下面以基于用户的协同过滤来介绍其算法大致推荐流程。
表1用户-项目评分矩阵
步骤1构造评分矩阵。根据***中的所有用户U对全部项目的I的评分转化为用户-项目评分矩阵,其中Ri,j表示用户Ui对项目Ij的评分。表1中的评分值大致可以分为两类,一是实际的打分行为,其值在某一范围内,如0~5;另一种是二值行为,即用户是否浏览、购买、收藏某项目,用0和1来表示这种行为的有无。
步骤2根据用户-项目评分矩阵的行计算每个用户之间的相似度,对于某一用户通过相似度选择近邻用户集。协同过滤中常用的相似度计算方法有:皮尔逊相关系数、余弦相似性、修正余弦相似性和Jaccard系数。本实施例中采用皮尔逊相关系数。
采用皮尔逊相关系数计算用户i和用户j的相似度sim(i,j):
步骤3加权相似度。传统相似度计算方法没有考虑到用户间共有评分很少时会过度估计用户之间的相似性,相应的计算结果可能是0甚至可能为负,传统的皮尔逊相关系数只考虑用户间共有评分的作用,而忽视了非公共评分数量的作用,导致计算用户相似性及其具有片面性。如下表2所示,按传统相似度计算,用户U1与U2的相似度为1,U2与U3的相似度要小于1,这就造成了U1比U3更接近U2的邻居,然而从相似性的可信度来看,U3应该比U1是更接近于U2的邻居。
表2评分矩阵示例
当两者间评分过少时计算得到的相似度并不能反映用户之间的相似性,可通过一定方法对相似度进行修正。
现有的相似度计算方法提出了不同项目评分数量分布的重合因子,刻画了项目间公共评分的重合程度,强调了共有评分重合度的重要性,同时这些方法也有局限性。
结合图2,用户间的相似性与共有评分数量的关系并非是真实体现,当两用户单独评分数量确定时,相似性与公共评分数量的关系如图2所示,两用户相似性呈二次函数增长。见图2中当共有评分数量由5增加到6时,计此时增加的重合因子Δc1,评分数量由13增加到14时,计此时增加的重合因子Δc2,评分数量由21增加到22时,计此时增加的重合因子Δc3,从图中易知Δc3>Δc2>Δc1,传统相似度sim(i,j)不变,相应的加权相似度的增量Δsim3’>Δsim2’>Δsim1’,三段增量中对应的共有评分数量都只增加1,这表明随着用户共有评分数量增加时,对应的加权相似度增长越来越快。当共有评分数量足够大时,任何细微的减少或者增加一个共有数量,重合因子会放大相似度的变化量,使得本来相似度相差较小的两项目现在相似度相差甚多,没有细粒度的度量项目间的相似性,这与理想型的相似度增长曲线相差甚远,理想型相似度增长曲线大致呈“S”型,随着共有数量的增加,相似度增量变化先缓慢再迅速最后接近饱和。
实际上,当用户共有评分数量达到一定阈值时,用户间的相似性接近饱和,此时再增加共有评分的项数相似度将不再发生显著变化,从相似度的实际意义出发,当两用户各自的独立评分数确定时,随着共有评分数量的增加,两者的相似度变化的导数应该是先变大后变小,整体呈“S”型曲线。实际含义即两用户在共有评分数量较少时并不那么相似,数量的增加继而变化明显,最后相似增量在公共评分数量较多时开始达到饱和,相似度几乎不再发生变化,这样才能体现用户间相似度的真实变化过程。
常用的“Sigmod”函数具有S型曲线,其函数特性曲线见图3,完全符合相似度的理想增量,数学表达式为S(x)=1/(1+e-x),定义域在(-∞,+∞)值域是(0,1)。而理想的“S”型函数应为定义域在(0,1)值域是(0,1),故应对标准的Sigmod函数进行变换。
变换后的“S”型函数曲线特性见图4,其变换后表达式如下式,m和k为变换系数,控制着函数的陡峭程度。其中自变量c2/(a*b)的范围在(0,1)。相似度关于共有评分项的函数见图4(与图1相同,本例中共有评分项上限为25),共有评分项数小于10时,相似度增长缓慢,继而迅速增长,当达到20时,用户间再增加相同评分数量相似度饱和,此种情况与相似度实际定义相符。
最后,将步骤2中计算的相似度和变换后Sigmod函数按公式计算,可以得到改进后的用户间的相似度。
步骤4评分预测。根据步骤2中选择的目标用户的近邻用户集,筛选出对目标项目有评分的邻居,用它们的评分来预测目标用户i对目标项目c'的评分Pi,c',具体如下:
上式中,sim'(i,j)采用融合加权因子的皮尔逊相关系数计算用户i和用户j的相似度,NNu为用户u的邻居集合,Rj,c'表示用户j对项目c'的评分,和分别表示用户i和用户j的平均评分值。将通过上述公式计算出来的评分对象进行排序,按从高到低选择N个项目作为对象推荐给用户。
实验证明,本实例所提供的“S”型相似度能更细粒度的刻画用户之间的相似性,提高了推荐的准确度和缩小了邻居规模,提高算法的运行效率。
Claims (3)
1.一种基于S型改进相似度的协同过滤推荐方法,其特征在于,包括以下步骤:
(1)对原始推荐评分数据进行数据清洗和填充;
(2)对预处理后的评分数据利用相似度模型计算用户间的相似度;具体包括以下子步骤:
(21)对原始评分数据分别计算每个用户的平均评分,消除评分主观性的影响;
(22)选取用户间的共有评分数据,利用相似度模型sim'(i,j)=sim(i,j)*S(x)计算用户间的相似度;其中,sim(i,j)为采用皮尔逊相关系数计算用户i和用户j的相似度,其中,Iij为用户i和用户j共同评分的项目集合;Ri,c和Rj,c分别表示用户i和用户j对项目c的评分,和分别表示用户i和用户j的平均评分值;S(x)为加权因子,a和b分别表示用户i和用户j单独评分的数量,c为共有评分数量,m和k分别为平移系数和变换系数;
(3)对每个用户通过Top-N策略构建用户的最近邻居模型,通过最近邻居模型筛选用户未有过记录的项目;
(4)利用邻居的评分数据计算用户对项目的加权评分,根据加权评分的高低选取项目。
2.根据权利要求1所述的基于S型改进相似度的协同过滤推荐方法,其特征在于,所述步骤(3)具体为:根据步骤(2)计算得到的相似度由高到低排序,为每个用户选取N个最相似的邻居,并在每个用户的邻居评分集中筛选出该用户未曾有过记录的项目作为感兴趣目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810401152.0A CN108710648B (zh) | 2018-04-28 | 2018-04-28 | 一种基于s型改进相似度的协同过滤推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810401152.0A CN108710648B (zh) | 2018-04-28 | 2018-04-28 | 一种基于s型改进相似度的协同过滤推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108710648A CN108710648A (zh) | 2018-10-26 |
CN108710648B true CN108710648B (zh) | 2021-08-31 |
Family
ID=63868641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810401152.0A Active CN108710648B (zh) | 2018-04-28 | 2018-04-28 | 一种基于s型改进相似度的协同过滤推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710648B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933730A (zh) * | 2019-03-29 | 2019-06-25 | 沈阳师范大学 | 一种中小学教育的名师优课推荐资源应用方法及*** |
CN113256387B (zh) * | 2021-06-15 | 2021-11-05 | 杭州魔点科技有限公司 | 项目物品的个性化推荐方法、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和*** |
CN103412865A (zh) * | 2013-06-07 | 2013-11-27 | 广州唯品会信息科技有限公司 | 网站项目的通知方法和*** |
CN103778329A (zh) * | 2014-01-13 | 2014-05-07 | 成都国科海博信息技术股份有限公司 | 一种构造数据补足值的方法 |
CN106951462A (zh) * | 2017-02-27 | 2017-07-14 | 四川大学 | 一种基于Time‑Trust相似度的电影推荐方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100268661A1 (en) * | 2009-04-20 | 2010-10-21 | 4-Tell, Inc | Recommendation Systems |
US10331785B2 (en) * | 2012-02-17 | 2019-06-25 | Tivo Solutions Inc. | Identifying multimedia asset similarity using blended semantic and latent feature analysis |
-
2018
- 2018-04-28 CN CN201810401152.0A patent/CN108710648B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和*** |
CN103412865A (zh) * | 2013-06-07 | 2013-11-27 | 广州唯品会信息科技有限公司 | 网站项目的通知方法和*** |
CN103778329A (zh) * | 2014-01-13 | 2014-05-07 | 成都国科海博信息技术股份有限公司 | 一种构造数据补足值的方法 |
CN106951462A (zh) * | 2017-02-27 | 2017-07-14 | 四川大学 | 一种基于Time‑Trust相似度的电影推荐方法 |
Non-Patent Citations (2)
Title |
---|
《基于PSO的多因子协同过滤推荐算法研究》;赵婷;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215;第二章第2.2节以及第三章 * |
《基于用户属性和评分的协同过滤推荐算法》;丁少衡等;《计算机工程与设计》;20150228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108710648A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162700B (zh) | 信息推荐及模型的训练方法、装置、设备以及存储介质 | |
Luo et al. | Personalized recommendation by matrix co-factorization with tags and time information | |
CN109543109B (zh) | 一种融合时间窗技术和评分预测模型的推荐算法 | |
US8738436B2 (en) | Click through rate prediction system and method | |
CN109241203B (zh) | 一种融合时间因素的用户偏好和距离加权的聚类方法 | |
CN104298682A (zh) | 一种基于人脸表情图像的信息推荐效果的评价方法及手机 | |
CN104935963A (zh) | 一种基于时序数据挖掘的视频推荐方法 | |
CN103559622A (zh) | 基于特征的协同过滤推荐方法 | |
CN113065062A (zh) | 一种基于用户阅读时间行为的新闻推荐方法及*** | |
CN108710648B (zh) | 一种基于s型改进相似度的协同过滤推荐方法 | |
CN115048586B (zh) | 一种融合多特征的新闻推荐方法及*** | |
CN113326432A (zh) | 一种基于决策树与推荐方法的模型优选方法 | |
CN109977299A (zh) | 一种融合项目热度和专家系数的推荐算法 | |
Duan et al. | A hybrid intelligent service recommendation by latent semantics and explicit ratings | |
CN113434778B (zh) | 基于正则化框架和注意力机制的推荐方法 | |
CN115525819A (zh) | 一种面向信息茧房的跨领域推荐方法 | |
CN117132368B (zh) | 一种基于ai的新媒体智能营销平台 | |
CN112232388B (zh) | 基于elm-rfe的购物意图关键因素识别方法 | |
CN108959506A (zh) | 一种基于群体兴趣的资源推荐方法 | |
CN106682875A (zh) | 一种基于数据分析处理技术的营销活动奖品供应商推荐方法 | |
CN114238758B (zh) | 一种基于多源跨界数据融合的用户画像预测方法 | |
CN111199422A (zh) | 融合时间衰减因子的改进lfm协同过滤方法 | |
CN110851707B (zh) | 一种用于建材招投标平台的智能推荐方法 | |
Kim et al. | News article based industry risk index prediction for industry-specific evaluation | |
CN118132856B (zh) | 一种基于大数据的智能分析方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |