CN106951459A - 基于熵值法的改进协同过滤推荐算法 - Google Patents
基于熵值法的改进协同过滤推荐算法 Download PDFInfo
- Publication number
- CN106951459A CN106951459A CN201710104136.0A CN201710104136A CN106951459A CN 106951459 A CN106951459 A CN 106951459A CN 201710104136 A CN201710104136 A CN 201710104136A CN 106951459 A CN106951459 A CN 106951459A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- scoring
- similarity
- rating matrix
- 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.)
- Granted
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
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,预测目标用户对目标项目的评分。本发明在不改变现实数据的基础上,充分利用稀疏的现有数据,把用户的活跃程度作为衡量该用户对目标用户预测评分影响力的一个因素,同时考虑用户评分行为的稳定性,越活越、越不稳定的用户影响力越高,反之影响力越低。通过实验证明,本发明的方法可以提高推荐结果的准确性。
Description
技术领域
本发明属于个性化推荐技术领域,涉及一种基于熵值法的协同过滤推荐算法。
背景技术
协同过滤算法是应用最为广泛的个性化推荐算法,最早应用于新闻推荐系统和邮件过滤系统,目前被广泛应用于电子商务领域。典型的协同过滤算法应用案例包括国外的Amazon推荐系统以及国内的豆瓣、淘宝、京东等购物网站。除此之外,YouTube等视频网站、Facebook等社交网站也采用协同过滤技术来提高服务质量。
协同过滤算法通过比较用户的历史行为(评分、购买历史、浏览次数、在某网页上的停留时间等),发现用户的相关性,或者物品本身的相关性,然后基于这些关联性进行推荐。目前协同过滤算法主要包含两种技术:基于用户的协同过滤(UBCF)和基于项目的协同过滤(IBCF)。UBCF的基本思想是通过分析用户的历史行为数据,找出与目标用户兴趣相似的邻居用户群,然后根据其邻居集对项目的评分预测目标用户对项目的评分,最后选择评分最高的若干个项目推荐给目标用户,它基于假设:喜欢相似物品的用户可能有相同偏好。IBCF的基本思想是通过分析用户的历史行为数据,找出与目标项目相似的邻居项目集,根据当前用户对近邻项目集的评分预测当前用户对目标项目的评分,把目标项目推荐给评分最高的若干个用户,它基于假设:若多数用户对一些项目的评分比较相似,则当前用户对这些项目的评分也相似。
发明内容
针对现有技术中存在的不足,本发明提供了一种基于熵值法的改进协同过滤推荐算法,传统的基于用户的协同过滤算法(UBCF)在预测评分时仅仅利用用户间的相似度衡量其评分的影响,而把熵值法添加进UBCF后,同时考虑到了用户评分行为特征(评分次数多少、评分稳定性)对结果的影响。此外,考虑到两个用户在某类项目上的口味可能很接近,但是在另一类项目上的口味可能相差甚远,因此只针对与目标项目相似的项目进行用户间相似度的衡量,使得预测的评分结果更有说服力。
基于熵值法的改进协同过滤推荐算法,包括以下步骤:
步骤1,将用户对项目的评分记录的原始数据转换为用户-项目评分矩阵;
设原始数据中有n个用户,m个项目,则所述的用户-项目评分矩阵为:其中Xij为第i个用户对第j个项目的评分;
步骤2,在用户-项目评分矩阵中,利用熵值法计算每个用户的权重,包括以下步骤:
步骤21,将用户-项目评分矩阵转置得到项目-用户评分矩阵;
所述项目-用户评分矩阵为:其中Aij为第j个用户对第i个项目的评分;
步骤22,通过式(1)将A中的评分转换到[0,1]区间;
其中,i=1,2,…,m;j=1,2,…,n;
步骤23,通过式(2)得到第j个用户对第i个项目评分占该用户总评分的权重Pij;
步骤24,通过式(3)得到第j个用户的权重;
其中,j=1,2,…,n;
gj为第j个用户的熵值冗余度:gj=1-ej;
ej为第j个用户的熵值:其中k>0,ln为自然对数,ej≥0;
步骤3,通过式(4)得到第j个项目与第i个项目的相似度,j=1,2…,n;
其中,sim(i,j)为第i个项目与第j个项目的相似度,Uij为同时评论过第i个项目与第j个项目的所有用户集合,Xpi为第p个用户对第i个项目的评分,为第p个用户评价的所有项目的评分平均值,p∈Uij;
选择与第i个项目相似度最高的k1个项目作为第i个项目的最近邻居集Ci,1≤k1<m;
步骤4,通过式(5)得到第v个用户与第u个用户的相似度;
其中,u=1,2,…,n;v=1,2,…,n;u≠v;sim(u,v,i)为第v个用户与第u个用户基于第i个项目的相似度;Ui为第v个用户与第u个用户同时有过评分的项目集与第i个项目的最近邻居集Ci的交集;
选择与第u个用户相似度最高的k2个用户作为第u个用户的最近邻居集Uu,1≤k2<n;
步骤5,通过式(6)得到预测第u个用户对第i个项目的评分;
其中,Wj为第j个用户的权重,sim(u,j,i)为第u个用户与第j个用户基于第i个项目的相似度,Xji为第j个用户对第i个项目的评分。
进一步地,所述步骤1中的评分记录包括实际的项目的评分、浏览项目的次数、在包含项目的网页上停留的时间。
进一步地,所述步骤24中的
与现有技术相比,本发明具有以下技术效果:
本发明在不改变现实数据的基础上,充分利用稀疏的现有数据,把用户的活跃程度作为衡量该用户对目标用户预测评分影响力的一个因素,同时考虑用户评分行为的稳定性,越活越、越不稳定的用户影响力越高,反之影响力越低。通过实验证明,本发明的方法可以提高推荐结果的准确性。
附图说明
图1为实施例所采用数据集的原始数据示例;
图2为实施例所采用数据集的原始数据转换为的用户-项目评分矩阵;
图3为实施例运行结果示例;
图4为实施例本方法与传统方法的误差对比。
具体实施方式
下面通过附图和实施例对本发明作进一步说明。
实施例1
本实施例提供了基于熵值法的改进协同过滤推荐算法,包括以下步骤:
步骤1,将用户对电影的评分记录的原始数据转换为用户-项目评分矩阵。
设原始数据中有n个用户,m个电影,则所述的用户-项目评分矩阵为:其中Xij为第i个用户对第j个电影的评分;
本实施例选取MovieLens数据集中的数据作为原始数据,如图1所示;本实施例中m为1682,n为943;图1中的原始数据转换为用户-项目评分矩阵后如图2所示。
步骤2,在用户-项目评分矩阵中,利用熵值法计算每个用户的权重,包括以下步骤:
步骤21,将用户-项目评分矩阵转置得到项目-用户评分矩阵;
所述项目-用户评分矩阵为:其中Aij为第j个用户对第i个电影的评分;
步骤22,通过式(1)将A中的评分转换到[0,1]区间;
其中,i=1,2,…,1682;j=1,2,…,943;
步骤23,通过式(2)得到第j个用户对第i个电影评分占该用户总评分的权重Pij;
步骤24,通过式(3)得到第j个用户的权重;
其中,j=1,2,…,943;
gj为第j个用户的熵值冗余度:gj=1-ej;
ej为第j个用户的熵值:其中k>0,ln为自然对数,ej≥0;本实施例中,则0≤ej≤1;
步骤3,设第i个电影为目标电影,通过式(4)得到第j个电影与目标电影i的相似度,j=1,2…,1682;
其中,sim(i,j)为目标电影i与第j个电影的相似度,Uij为同时评论过目标电影i与第j个电影的所有用户集合,Xpi为第p个用户对目标电影i的评分,为第p个用户评价的所有电影的评分平均值,p∈Uij;
选择与目标电影i相似度最高的k1个电影作为目标电影i的最近邻居集Ci,1≤k1<1682;
步骤4,通过式(5)得到第v个用户与第u个用户的相似度;
其中,u=1,2,…,n;v=1,2,…,n;u≠v;sim(u,v,i)为第v个用户与第u个用户基于目标电影i的相似度;Ui为第v个用户与第u个用户同时有过评分的电影集与目标电影i的最近邻居集Ci的交集;
选择与第u个用户相似度最高的k2个用户作为第u个用户的最近邻居集Uu,1≤k2<943;
步骤5,通过式(6)预测第u个用户对目标电影i的评分;
其中,Wj为第j个用户的权重,sim(u,j,i)为第u个用户与第j个用户基于目标电影i的相似度,Xji为第j个用户对目标电影i的评分。
本实施例中预测的目标用户对目标电影的评分如图3所示。
实验结果:
为了证明本发明方法的性能,本实施例中选取MovieLens中的ua.test文件作为测试集,其中该文件包含943个用户对1682部电影的评分记录,每个用户有10条评分记录,数据格式与图1相同,选用Matlab R2014a作为实验平台进行了实验。部分运行结果如图3所示,该图显示了某给定目标用户对目标电影的预测评分与实际评分,由图可见本方法预测的评分与真实评分十分接近。
同时,为了证明本发明方法的优越性,利用平均绝对误差(MAE)指标分别对本方法与传统的基于用户的协同过滤方法进行了评测,其中MAE是常用的衡量算法性能的评测指标,计算公式如下:
其中,T为测试集合,pui为用户u对电影i的预测评分,在该实施例中即为score(u,i),qui为用户u对电影i的实际评分,|T|为测试集中的评分记录数,本实施例中为9430。两种方法的MAE值如图4所示,该图显示了不同数目用户近邻情况下本方法与传统的基于用户的协同过滤方法的测试误差,由此可见:本方法相较于传统的基于用户的协同过滤方法,预测误差有了很大的降低。
Claims (3)
1.基于熵值法的改进协同过滤推荐算法,其特征在于,包括以下步骤:
步骤1,将用户对项目的评分记录的原始数据转换为用户-项目评分矩阵;
设原始数据中有n个用户,m个项目,则所述的用户-项目评分矩阵为:其中Xij为第i个用户对第j个项目的评分;
步骤2,在用户-项目评分矩阵中,利用熵值法计算每个用户的权重,包括以下步骤:
步骤21,将用户-项目评分矩阵转置得到项目-用户评分矩阵;
所述项目-用户评分矩阵为:其中Aij为第j个用户对第i个项目的评分;
步骤22,通过式(1)将A中的评分转换到[0,1]区间;
其中,i=1,2,…,m;j=1,2,…,n;
步骤23,通过式(2)得到第j个用户对第i个项目评分占该用户总评分的权重Pij;
步骤24,通过式(3)得到第j个用户的权重;
其中,j=1,2,…,n;
gj为第j个用户的熵值冗余度:gj=1-ej;
ej为第j个用户的熵值:其中k>0,ln为自然对数,ej≥0;
步骤3,通过式(4)得到第j个项目与第i个项目的相似度,j=1,2…,n;
其中,sim(i,j)为第i个项目与第j个项目的相似度,Uij为同时评论过第i个项目与第j个项目的所有用户集合,Xpi为第p个用户对第i个项目的评分,为第p个用户评价的所有项目的评分平均值,p∈Uij;
选择与第i个项目相似度最高的k1个项目作为第i个项目的最近邻居集Ci,1≤k1<m;
步骤4,通过式(5)得到第v个用户与第u个用户的相似度;
其中,u=1,2,…,n;v=1,2,…,n;u≠v;sim(u,v,i)为第v个用户与第u个用户基于第i个项目的相似度;Ui为第v个用户与第u个用户同时有过评分的项目集与第i个项目的最近邻居集Ci的交集;
选择与第u个用户相似度最高的k2个用户作为第u个用户的最近邻居集Uu,1≤k2<n;
步骤5,通过式(6)得到预测第u个用户对第i个项目的评分;
其中,Wj为第j个用户的权重,sim(u,j,i)为第u个用户与第j个用户基于第i个项目的相似度,Xji为第j个用户对第i个项目的评分。
2.如权利要求1所述的协同过滤推荐算法,其特征在于,所述步骤1中的评分记录包括实际的项目的评分、浏览项目的次数、在包含项目的网页上停留的时间。
3.如权利要求1所述的协同过滤推荐算法,其特征在于,所述步骤24中的
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710104136.0A CN106951459B (zh) | 2017-02-24 | 2017-02-24 | 基于熵值法的改进协同过滤推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710104136.0A CN106951459B (zh) | 2017-02-24 | 2017-02-24 | 基于熵值法的改进协同过滤推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951459A true CN106951459A (zh) | 2017-07-14 |
CN106951459B CN106951459B (zh) | 2019-10-29 |
Family
ID=59467618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710104136.0A Expired - Fee Related CN106951459B (zh) | 2017-02-24 | 2017-02-24 | 基于熵值法的改进协同过滤推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951459B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334284A (zh) * | 2019-04-03 | 2019-10-15 | 厦门大学 | 一种新型融合多因素决策的推荐方法 |
CN110825967A (zh) * | 2019-10-31 | 2020-02-21 | 中山大学 | 一种提高推荐系统多样性的推荐列表重排名方法 |
CN111292170A (zh) * | 2020-02-18 | 2020-06-16 | 重庆锐云科技有限公司 | 针对指定楼盘进行意向客户推荐的方法、装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101030653B1 (ko) * | 2009-01-22 | 2011-04-20 | 성균관대학교산학협력단 | 정보 엔트로피를 이용하여 유사도를 보정하는 사용자 기반 협업 필터링 추천 시스템 |
CN102411754A (zh) * | 2011-11-29 | 2012-04-11 | 南京大学 | 一种基于商品属性熵值的个性化推荐方法 |
CN106326390A (zh) * | 2016-08-17 | 2017-01-11 | 成都德迈安科技有限公司 | 基于协同过滤的推荐方法 |
-
2017
- 2017-02-24 CN CN201710104136.0A patent/CN106951459B/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334284A (zh) * | 2019-04-03 | 2019-10-15 | 厦门大学 | 一种新型融合多因素决策的推荐方法 |
CN110334284B (zh) * | 2019-04-03 | 2021-07-30 | 厦门大学 | 一种新型融合多因素决策的推荐方法 |
CN110825967A (zh) * | 2019-10-31 | 2020-02-21 | 中山大学 | 一种提高推荐系统多样性的推荐列表重排名方法 |
CN110825967B (zh) * | 2019-10-31 | 2023-04-07 | 中山大学 | 一种提高推荐系统多样性的推荐列表重排名方法 |
CN111292170A (zh) * | 2020-02-18 | 2020-06-16 | 重庆锐云科技有限公司 | 针对指定楼盘进行意向客户推荐的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106951459B (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210133817A1 (en) | Information Recommendation Method and Apparatus | |
CN105589905B (zh) | 用户兴趣数据分析和收集系统及其方法 | |
US10304036B2 (en) | Social media profiling for one or more authors using one or more social media platforms | |
US10685181B2 (en) | Linguistic expression of preferences in social media for prediction and recommendation | |
Yu | The dynamic competitive recommendation algorithm in social network services | |
CN105488233A (zh) | 阅读信息推荐方法和系统 | |
CN103886487A (zh) | 基于分布式的b2b平台的个性化推荐方法与系统 | |
CN104462560A (zh) | 一种个性化推荐系统及其推荐方法 | |
Kommineni et al. | Machine learning based efficient recommendation system for book selection using user based collaborative filtering algorithm | |
Sachan et al. | A survey on recommender systems based on collaborative filtering technique | |
CN104462336A (zh) | 信息推送方法和装置 | |
CN106980646A (zh) | 基于流行度对用户兴趣的影响机制分析及其在推荐算法中应用的方法 | |
CN103559622A (zh) | 基于特征的协同过滤推荐方法 | |
CN105023178B (zh) | 一种基于本体的电子商务推荐方法 | |
CN107145541B (zh) | 基于超图结构的社交网络推荐模型构建方法 | |
CN106779946A (zh) | 一种电影推荐方法及装置 | |
CN106951459B (zh) | 基于熵值法的改进协同过滤推荐方法 | |
CN105894310A (zh) | 一种个性化推荐方法 | |
CN107896153A (zh) | 一种基于移动用户上网行为的流量套餐推荐方法及装置 | |
CN108109058A (zh) | 一种融合人格特质和物品标签的单分类协同过滤方法 | |
CN106708871A (zh) | 一种社交业务特征用户的识别方法和装置 | |
Thomas et al. | Comparative study of recommender systems | |
CN104123321B (zh) | 一种确定推荐图片的方法及装置 | |
CN104462597B (zh) | 一种综合用户正负性评分和评分偏好因子的协同过滤方法 | |
Zhao et al. | Tourism e-commerce recommender system based on web data mining |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |