CN106326390A - 基于协同过滤的推荐方法 - Google Patents
基于协同过滤的推荐方法 Download PDFInfo
- Publication number
- CN106326390A CN106326390A CN201610681671.8A CN201610681671A CN106326390A CN 106326390 A CN106326390 A CN 106326390A CN 201610681671 A CN201610681671 A CN 201610681671A CN 106326390 A CN106326390 A CN 106326390A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- scoring
- similarity
- sim
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
- G06Q30/0271—Personalized advertisement
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于协同过滤的推荐方法,包括:计算任意两个项目之间的相似度;根据所述任意两个项目之间的相似度构建项目相似度矩阵,并根据所述项目相似度矩阵获得各项目的最近邻居集合;根据所述最近邻居集合计算用户对各项目的预测评分;根据各项目的预测评分和预测评分的置信度计算任意两个用户的相似度;根据任意两个用户的相似度计算各用户的最近邻居集合;根据用户的最近邻居集合,对用户的未评分项目进行评分,并根据评分结果生成用户的推荐集。本发明利用最近邻协同过滤推荐的可靠性,面对数据稀疏性的不足时,通过补全数据的基础上,提高补全数据的可靠性,使得协同过滤能够发挥更好的作用。
Description
技术领域
本发明涉及个性化推荐技术领域,特别是涉及一种基于协同过滤的推荐方法。
背景技术
随着电子商务***用户数目和商品数目的日益增加,在整个商品空间上用户评分数据极端稀疏,在数据稀疏时,共同评分项目很少,计算结果往往不准确甚至根本无法计算。以实验常用的数据集为例,movielens的稀疏度为95.5%,netfix的稀疏性导致相似度无法计算或者计算不准确的问题。在大型电子商务***中,用户评分的项目一般不会超过项目总数的1%,经两个用户共同评分的项目则更少,如eachmovie网站在18个月当中所接收的用户评分数据为:72916个用户对1628部电影有2811983个评估值,也就是评估数目占用户一项矩阵的元素数目的比例为α=2811983/(72916×1628)≈0.0237,即2.37%,其矩阵非常稀疏。
为了解决数据稀疏性问题,现有的办法是对未评分项目猜测一个评分,通常来说设为一个固定值或者平均分;但是这种填补空白数据的方法很难有说服力,设置的分值不同也会影响到推荐的精度(比如在5分制中设为评分的中间值3,或为了保守起见,避免影响真实数据设为0,都会产生不同的推荐结果)。
传统的协同过滤推荐通过用户的最近邻居产生最终的推荐,基于项目协同过滤推荐首先计算项目之间的相关性,然后通过用户对相关项目的评分预测用户对未评分项目的评分。
通常的协同过滤流程为:度量用户之间的相似度方法主要有3种:余弦相似度、相关相似度以及修正余弦相似度。
余弦相似度:通过把用户的评分看作n维空间的向量,则两个用户的相似度就能够用余弦夹角来度量计算量小,但是应用中忽略了用户的评分尺度问题。
相关相似度:设经用户i和用户j共同评分的项目集合用Iij表示,则用户i和用户j之间的相似度可以通过Person相关系数来度量Ri,c表示用户i对项目c的评分,和分别表示用户i和用户j对项目的平均评分。
修正的余弦相似性:为了减少两个用户出现太多的空白数据,不对用户i和用户j的共同项目来计算,而是区别对待,如公式
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于协同过滤的推荐方法,利用最近邻协同过滤推荐的可靠性,面对数据稀疏性的不足时,通过补全数据的基础上,提高补全数据的可靠性,使得协同过滤能够发挥更好的作用。
本发明的目的是通过以下技术方案来实现的:基于协同过滤的推荐方法,包括:计算任意两个项目之间的相似度;根据所述任意两个项目之间的相似度构建项目相似度矩阵,并根据所述项目相似度矩阵获得各项目的最近邻居集合;根据所述最近邻居集合计算用户对各项目的预测评分;根据各项目的预测评分和预测评分的置信度计算任意两个用户的相似度;根据任意两个用户的相似度计算各用户的最近邻居集合;根据用户的最近邻居集合,对用户的未评分项目进行评分,并根据评分结果生成用户的推荐集。
两个项目的相似度的计算公式如下:
式中,Freq(uv)表示对项目u和项目v都进行评分的用户数目,ri,u表示第i个用户对项目u的评分,ri,v表示第i个用户对项目v的评分。
所述项目相似度矩阵如下:
式中,n表示项目的总数。
计算用户对各项目的预测评分时,用户为未对该项目进行评分的用户。
用户对各项目的预测评分的计算公式如下:
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居项目n的相似度,Ruk,n表示用户uk对邻居项目n的评分或预测评分。
所述置信度的计算公式如下:
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居n的相似度。
两个用户的相似度的计算公式如下:
式中,sim(ui,uj)表示用户ui和用户uj的相似度,Rui,k表示用户ui对项目k的评分或预测评分,Ruj,k表示用户uj对项目k的评分或预测评分,εui,p表示用户ui对项目p的评分或预测评分的置信度,εuj,q表示用户uj对项目q的评分或预测评分的置信度。
用户的最近邻居集合的计算方式为:对于一个用户,选取与该用户相似度最高的多个用户作为该用户的邻居集合。
根据用户的最近邻居集合,对用户的未评分项目进行评分的公式如下:
式中,Puk,i表示用户u对项目i的预测评分,表示用户u的平均项目评分,Rn,i表示用户u的邻居集合Nu中用户n对项目i的评分,sim(u,n)表示用户u和用户n的相似度。
根据评分结果生成用户的推荐集时,选取评分最高的k个项目作为用户的推荐集。
本发明的有益效果是:
(1)本发明通过项目之间的相似度来补全项目评分,有效地解决了相似性度量中用户共同评分数据比较少的情况,同时使得未评分商品有一个准确的评分,而不是统一化的为0或均值;
(2)为了区分补全的评分和实际评分之间的差异,本发明中引入置信度作为评分的一个评判;每个评分都对应一个置信度,置信度越大则说明评分的真实性越大,在最后的预测中也体现出的更大的作用;
(3)在补全项目评分后,利用评分和置信度计算用户之间的相似度,每一个用户都获得一个邻居集,利用用户和邻居集的相似度,根据邻居集对用户未评分项目的评分可以推测出用户的项目评分,最后从推测出的评分中选取评分最高的几个项目作为推荐结果。
附图说明
图1为本发明的一个实施例的流程示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,基于协同过滤的推荐方法,包括以下步骤:
步骤一、计算任意两个项目之间的相似度。
以计算项目u和项目v的相似度为例:同时对项目u和项目v评分的用户越多,则表示项目u和项目v的相似度越大;同时对项目u和项目v进行评分的用户中,给予项目u和项目v相同分值的用户越多,则项目u和项目v的相似度越大。
两个项目之间的相似度的计算公式如下:
式中,Freq(uv)表示对项目u和项目v都进行评分的用户数目,ri,u表示第i个用户对项目u的评分,ri,v表示第i个用户对项目v的评分。
步骤二、根据所述任意两个项目之间的相似度构建项目相似度矩阵,并根据所述项目相似度矩阵获得各项目的最近邻居集合。
项目相似度矩阵表示如下:
式中,n表示项目的总数。
该项目相似度矩阵中的元素对称分布,即simu,v=simv,u,表示项目u和项目v的相似度。
步骤三、根据所述最近邻居集合计算用户对各项目的预测评分。
在一种实施方式中,根据一个项目的最近邻居集合计算未对该项目作出评价的用户对该项目的预测评分。
对项目进行预测评分时,首先,计算项目Itemk(1≤k≤n)的p个最近邻居集合Mp={i1′,i2′,…,ip′}使得且sim(Itemk,i'1)最大,Mp中将邻居项目按照与项目Itemk的相似度的大小降序排列;其次,得到项目Itemk的p个最近邻集合Mp后,根据项目之间的相似度,预测用户uk的对项目q的评分,预测评分的计算公式如下:
根
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居n的相似度,Ruk,n表示用户uk对邻居n的评分或预测评分。
步骤四、根据各项目的预测评分和预测评分的置信度计算未评分用户中任意两个用户的相似度。
一个项目的置信度为该项目和该项目的邻居集合中邻居项目的相似度的平均值,表示该项目的预测评分的可信度,计算公式如下:
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居n的相似度。
两个用户的相似度的计算方法为:根据每个项目的预测评分和预测评分的置信度,对应一个二元值(Rui,n,εui,n),Rui,n表示用户ui对项目n的评分,由于Rui,n的值可能远大于εui,n(预测评分Rui,n的置信度),所以先对其进行归一化处理为(Rui,n/m,εui,n),m为项目n能获得的最大评分。
在用户之间存在交叉评分的项目上,对于用户i有:{(Rui,1/m,ε1),(Rui,2/m,ε2),…,(Rui,n/m,εn)};对于用户j有:{Ruj,1/m,ε1),(Ruj,2/m,ε2),…,(Ruj,n/m,εn)}。
定义用户ui的项目评分以及置信度矩阵:{(Rui,1,εui,1),(Rui,2,εui,2)…(Rui,k,εui,k)};
定义用户uj的项目评分以及置信度矩阵:{(Ruj,1,εuj,1),(Ruj,2,εuj,2)…(Ruj,k,εuj,k)};
则在ui和uj对相似度置信度为1的时候,用余弦定理求得用户之间的额相似度:
相似度的计算方式如下:
令其中,a与b的相似度定义为0.5,aa与a的相似度定义为0.7,则aa与b的相似度为0.5*0.7=0.35;
其中A与B的相似度定义为0.6,AA与A的相似度定义为0.5,则AA与B的相似度定义为0.5*0.6=0.3;
B与b的相似度用余弦夹角计算为sim(B,b),则aa与AA的相似度为0.3*0.35*sim(B,b)。
步骤五、根据用户的相似度计算用户的最近邻居集合。取用户i相似度高的k个用户作为邻居集合Nu。
步骤六、根据用户的最近邻居集合,对用户的未评分项目进行评分,并根据评分结果生成用户的推荐集。
根据用户的最近邻居集合,对用户的未评分项目进行评分的公式如下:
式中,Puk,i表示用户u对项目i的预测评分,表示用户u的平均项目评分,Rn,i表示用户u的邻居集合Nu中用户n对项目i的评分,sim(u,n)表示用户u和用户n的相似度。
根据评分结果生成用户的推荐集时,选取评分最高的k个项目作为用户的推荐。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (10)
1.基于协同过滤的推荐方法,其特征在于,包括:
计算任意两个项目之间的相似度;
根据所述任意两个项目之间的相似度构建项目相似度矩阵,并根据所述项目相似度矩阵获得各项目的最近邻居集合;
根据所述最近邻居集合计算用户对各项目的预测评分;
根据各项目的预测评分和预测评分的置信度计算任意两个用户的相似度;
根据任意两个用户的相似度计算各用户的最近邻居集合;
根据用户的最近邻居集合,对用户的未评分项目进行评分,并根据评分结果生成用户的推荐集。
2.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,两个项目的相似度的计算公式如下:
式中,Freq(uv)表示对项目u和项目v都进行评分的用户数目,ri,u表示第i个用户对项目u的评分,ri,v表示第i个用户对项目v的评分。
3.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,所述项目相似度矩阵如下:
式中,n表示项目的总数。
4.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,计算用户对各项目的预测评分时,用户为未对该项目进行评分的用户。
5.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,用户对各项目的预测评分的计算公式如下:
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居项目n的相似度,Ruk,n表示用户uk对邻居项目n的评分或预测评分。
6.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,所述置信度的计算公式如下:
式中,sim(q,n)表示项目q和项目q的最近邻居集合中邻居n的相似度。
7.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,两个用户的相似度的计算公式如下:
式中,sim(ui,uj)表示用户ui和用户uj的相似度,Rui,k表示用户ui对项目k的评分或预测评分,Ruj,k表示用户uj对项目k的评分或预测评分,εui,p表示用户ui对项目p的评分或预测评分的置信度,εuj,q表示用户uj对项目q的评分或预测评分的置信度。
8.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,用户的最近邻居集合的计算方式为:对于一个用户,选取与该用户相似度最高的多个用户作为该用户的邻居集合。
9.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,根据用户的最近邻居集合,对用户的未评分项目进行评分的公式如下:
式中,Puk,i表示用户u对项目i的预测评分,表示用户u的平均项目评分,Rn,i表示用户u的邻居集合Nu中用户n对项目i的评分,sim(u,n)表示用户u和用户n的相似度。
10.根据权利要求1所述的基于协同过滤的推荐方法,其特征在于,根据评分结果生成用户的推荐集时,选取评分最高的k个项目作为用户的推荐集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681671.8A CN106326390A (zh) | 2016-08-17 | 2016-08-17 | 基于协同过滤的推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681671.8A CN106326390A (zh) | 2016-08-17 | 2016-08-17 | 基于协同过滤的推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106326390A true CN106326390A (zh) | 2017-01-11 |
Family
ID=57744840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610681671.8A Pending CN106326390A (zh) | 2016-08-17 | 2016-08-17 | 基于协同过滤的推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326390A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106910148A (zh) * | 2017-01-19 | 2017-06-30 | 崔翛龙 | 基于协同过滤的指挥要素自适应推送方法 |
CN108763427A (zh) * | 2018-05-24 | 2018-11-06 | 佛山市轻遣网络有限公司 | 招聘***推荐方法及*** |
CN109086281A (zh) * | 2017-06-14 | 2018-12-25 | 成都淞幸科技有限责任公司 | 一种基于最近邻协同过滤推荐算法的供应商推荐方法 |
CN109522487A (zh) * | 2018-12-21 | 2019-03-26 | 北京工业大学 | 一种基于评论的餐厅个性化推荐方法 |
CN106951459B (zh) * | 2017-02-24 | 2019-10-29 | 西北大学 | 基于熵值法的改进协同过滤推荐方法 |
CN111486345A (zh) * | 2020-03-10 | 2020-08-04 | 安徽科杰粮保仓储设备有限公司 | 一种粮库地下管网液体泄漏在线监测预警方法及装置 |
CN112468852A (zh) * | 2020-11-24 | 2021-03-09 | 深圳市易平方网络科技有限公司 | 媒资推荐方法、装置、***及计算机可读存储介质 |
CN113011942A (zh) * | 2021-03-10 | 2021-06-22 | 浙江大学 | 基于三层邻居选择框架的定制产品需求协同过滤推荐方法 |
-
2016
- 2016-08-17 CN CN201610681671.8A patent/CN106326390A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106910148A (zh) * | 2017-01-19 | 2017-06-30 | 崔翛龙 | 基于协同过滤的指挥要素自适应推送方法 |
CN106910148B (zh) * | 2017-01-19 | 2020-11-17 | 崔翛龙 | 基于协同过滤的指挥要素自适应推送方法 |
CN106951459B (zh) * | 2017-02-24 | 2019-10-29 | 西北大学 | 基于熵值法的改进协同过滤推荐方法 |
CN109086281A (zh) * | 2017-06-14 | 2018-12-25 | 成都淞幸科技有限责任公司 | 一种基于最近邻协同过滤推荐算法的供应商推荐方法 |
CN108763427A (zh) * | 2018-05-24 | 2018-11-06 | 佛山市轻遣网络有限公司 | 招聘***推荐方法及*** |
CN109522487A (zh) * | 2018-12-21 | 2019-03-26 | 北京工业大学 | 一种基于评论的餐厅个性化推荐方法 |
CN111486345A (zh) * | 2020-03-10 | 2020-08-04 | 安徽科杰粮保仓储设备有限公司 | 一种粮库地下管网液体泄漏在线监测预警方法及装置 |
CN112468852A (zh) * | 2020-11-24 | 2021-03-09 | 深圳市易平方网络科技有限公司 | 媒资推荐方法、装置、***及计算机可读存储介质 |
CN113011942A (zh) * | 2021-03-10 | 2021-06-22 | 浙江大学 | 基于三层邻居选择框架的定制产品需求协同过滤推荐方法 |
CN113011942B (zh) * | 2021-03-10 | 2023-11-03 | 浙江大学 | 基于三层邻居选择框架的定制产品需求协同过滤推荐方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326390A (zh) | 基于协同过滤的推荐方法 | |
CN103412948B (zh) | 基于聚类的协同过滤的商品推荐方法及*** | |
CN106682114A (zh) | 一种融合用户信任关系和评论信息的个性化推荐方法 | |
CN102663431B (zh) | 一种基于区域加权的图像匹配计算方法 | |
CN102789499B (zh) | 基于物品间情景化隐式关系的协同过滤方法 | |
CN104915861A (zh) | 基于评分和标签构建用户群体模型的电子商务推荐方法 | |
CN105069122B (zh) | 一种基于用户行为的个性化推荐方法及其推荐装置 | |
CN102982107A (zh) | 一种融合用户、项目和上下文属性信息的推荐***优化方法 | |
CN106156333B (zh) | 一种融合社会化信息的改进单类协同过滤方法 | |
CN106570090A (zh) | 基于兴趣变化和信任关系的协同过滤推荐方法 | |
CN103824213A (zh) | 一种基于用户偏好与商品属性的个性化推荐方法 | |
CN105279288A (zh) | 一种基于深度神经网络的在线内容推荐方法 | |
CN103294812B (zh) | 一种基于混合模型的商品推荐方法 | |
CN104239496B (zh) | 一种结合模糊权重相似性度量和聚类协同过滤的方法 | |
CN106021329A (zh) | 基于用户相似度的稀疏数据协同过滤推荐方法 | |
CN103761237A (zh) | 一种基于用户特征及其信任度的协同过滤推荐方法 | |
CN106909607A (zh) | 一种基于随机扰动技术的协同过滤群组推荐方法 | |
CN103870575B (zh) | 一种提取领域关键词的方法及装置 | |
CN106682121A (zh) | 一种基于用户兴趣变化的时效推荐方法 | |
CN103279552A (zh) | 一种基于用户兴趣分组的协同过滤推荐方法 | |
CN105824822A (zh) | 一种由钓鱼网页聚类定位目标网页的方法 | |
CN104199818A (zh) | 一种基于分类的社会化推荐方法 | |
CN104166732A (zh) | 一种基于全局评分信息的项目协同过滤推荐方法 | |
Zheng et al. | Deviation-based contextual SLIM recommenders | |
CN106203165B (zh) | 基于可信云计算的信息大数据分析支撑方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |
Application publication date: 20170111 |
|
RJ01 | Rejection of invention patent application after publication |