CN109933726B - 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 - Google Patents
基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 Download PDFInfo
- Publication number
- CN109933726B CN109933726B CN201910219541.6A CN201910219541A CN109933726B CN 109933726 B CN109933726 B CN 109933726B CN 201910219541 A CN201910219541 A CN 201910219541A CN 109933726 B CN109933726 B CN 109933726B
- Authority
- CN
- China
- Prior art keywords
- user
- target
- movie
- score
- attribute
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 50
- 238000001914 filtration Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000010606 normalization Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000003064 k means clustering Methods 0.000 abstract description 3
- 238000007418 data mining Methods 0.000 abstract 1
- 241000630329 Scomberesox saurus saurus Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 206010039740 Screaming Diseases 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 235000019687 Lamb Nutrition 0.000 description 1
- 208000020221 Short stature Diseases 0.000 description 1
- 241001263038 Viguiera Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,首先利用数据挖掘中min‑max数据归一化方法对评分数据归一化,使评分数据在设定区间之内;再结合电影信息表中的电影属性信息与归一化的用户评分数据设计属性权重赋值模型,计算每位用户的平均加权兴趣向量;然后运用K‑means聚类算法,按照每位用户的平均加权兴趣向量对用户进行分类,得到多个用户兴趣集合;对目标用户进行推荐时先判断用户所在的兴趣集合,再在目标用户所在的兴趣集合中利用基于用户的协同过滤推荐算法(User‑based CF)完成电影推荐。与同类方法相比,本发明能够显著提高推荐结果的精准度。
Description
技术领域
本发明涉及一种电影推荐方法,具体是基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法。
背景技术
处在大数据时代的今天,海量的数据以爆炸的方式充斥着我们每个人的日常生活。网上购物颠覆了传统的买卖方式,社交网络拓宽了我们交际的范围,博客论坛成为我们记录生活的一部分,那么如何向用户提供个性化的、具有针对性的信息服务成为无数电商以及网络平台关注的焦点。协同过滤推荐能够及时跟踪用户的需求变化来自动调整信息服务的方式和内容,是一种极具潜力的解决信息过载的个性化服务技术。在大大节约了商家的广告宣传费用的同时又提高了用户的关注度,也帮助用户在更短的时间里买到自己心仪的商品,达到了一举三赢的效果。
协同过滤推荐算法相比其他的推荐算法具有很大优势,主要体现在以下几个方面:①算法的个性化、自动化程度高;②推荐领域广泛;③易产生新异推荐;④技术上易于实现。国内外的研究人员提出了各种各样的基于协同过滤的推荐方法,例如钱程和阳小兰发表的“一种电影个性化推荐系统的研究与实现”(见[J].计算机与数字工程,2011,8,P73-76),电影推荐系统基于改进的协同过滤推荐算法,并针对电影领域进行实验,实验证明了推荐系统的可行性以及高效性;李剑锋和秦拯发表的“一种基于局部近邻Slope One协同过滤推荐算法”(见[J].计算机工程与科学,2011,7,P1346-1350),解决在构建电影评分偏差表时噪声数据对评分偏差的影响,从而提高的评分预测的准确性以及推荐的精准度;朱东郡等发表的“基于标签聚类和兴趣划分的协同过滤推荐算法”(见[J].计算机工程,2017,11,P146-151),算法通过对标签聚类对用户兴趣进行划分,并引入时间因子跟踪用户的兴趣变化,相比传统的协同过滤推荐算法,实验表明改进后的算法能够深入挖掘用户兴趣,适应用户的兴趣变化,进而使推荐精度的得到提高。
从协同过滤推荐算法研究现状可知,推荐技术在大数据时代的今天已经得到了广泛的应用,不过传统的协同过滤推荐算法存在数据稀疏性、冷启动、扩展性等问题,这些问题直接或者间接地导致系统在推荐时推荐精准度不高、推荐效率低下、推荐实时性不佳以及不能很好地应对新电影或新用户进入系统的推荐(见翁小兰、王志坚所发表的“协同过滤推荐算法研究进展”,[J].计算机工程与应用,2018,54(1),P25-31)。
发明内容
本发明的目的是提供一种基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,它引入用户加权兴趣向量并结合K-means聚类,在很大程度上减少了邻居用户的搜索时间,且显著提高了推荐结果的合理性,使推荐结果更为精准。
本发明所采用的技术方案是:基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,包括以下步骤:
步骤1,收集用户的评分数据,得到用户-电影评分矩阵S;
其中,矩阵的每个元素sij为用户原始评分数据,表示用户i对电影j的评分,用户没有评分过的电影分值为0,用户下标i=1,2,…,m,电影下标j=1,2,…,n,m为用户的个数,n为电影的个数;
步骤2,选用min-max数据归一化方法对用户评分数据归一化,使得用户的评分数值在设定区间之内,进而得到归一化用户评分,min-max数据归一化公式如下:
其中,minA为用户评分数据集A中最小的数据,maxA为用户评分数据集A中最大的数据,newmax为设定区间的上界,newmin为设定区间的下界,sij为原始评分数据,nij为归一化后的评分数据;
步骤3,按照步骤2对用户集合中每位用户的评分数据进行相同的处理,最终得到归一化用户评分矩阵N如下:
其中,矩阵的每个元素nij为归一化后的评分数据,表示用户i对电影j的归一化评分;
步骤4,在用户集合中选取一个用户Useri,通过该用户的评分电影并结合电影信息表中的电影属性,匹配得到该用户所评分的每个电影的属性向量Attributeij如下:
步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:
加权兴趣向量公式为:
Attribute_scorei=nij·Attributeij
步骤6,按照步骤4、步骤5对用户集合中的每位用户进行相同的处理,最终得出每位用户的平均加权兴趣向量;
步骤7,设定聚类簇数K并创建K个空的用户兴趣集合{C1,C2,...,Ck,…,CK};其中,类簇下标k=1,2,3,…,K;
步骤8,在用户集合中随机选取K个用户的平均加权兴趣向量作为初始类簇中心{μ1,μ2,...,μk,…,μK};
步骤9,从用户集中选取一个用户Useri并计算该用户的平均加权兴趣向量到各个聚类中心的距离dik,求出与该用户距离最近的聚类中心μk,并将该用户纳入相应的类簇Ck中;
距离公式:
dik=‖Avg_attribute_scorei-μk‖2
聚类公式:
μk=argmink∈{1,2,3…,K}dik
步骤10,按照步骤9对用户集合中的每位用户进行相同的处理,将所有用户都归入相应的类簇中;
步骤11,选取K个类簇中的一个类簇Classk,计算该类簇中所有用户的平均加权兴趣向量的均值向量作为该类簇新的聚类中心μ’k;
其中,Card(Ck)为类簇Ck中用户的数量;
步骤12,按照步骤11对K个类簇中的每个类簇进行聚类中心更新操作,得到新的聚类中心{μ'1,μ'2,...,μ'k,…,μ'K};
步骤14,选取目标用户集合中的一个目标用户Target_usert,通过计算该目标用户平均加权兴趣向量与各个聚类中心的距离,判断目标用户所在兴趣集合,具体计算公式同步骤5和步骤9;其中,目标用户集合是用户集合的一个子集,目标用户下标t=1,2,3,…,T,T为目标用户集合中用户的数量;
步骤15,利用皮尔逊相关系数公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的评分相似度Sim_scorete;利用余弦相似度公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的平均加权兴趣向量相似度Sim_attributete;其中,兴趣集合中用户下标 表示兴趣集合中的用户的数量,皮尔逊相关系数公式:
余弦相似度公式:
步骤16,结合步骤14中目标用户Target_usert与所在兴趣集合中每个用户的评分相似度Sim_scorete和平均加权兴趣相似度Sim_attributete得到该目标用户与兴趣集合中每个用户的综合相似度Simte;
Simte=λSim_scorete+(1-λ)Sim_attributete
其中λ为评分权重因子;
步骤17,以综合相似度Simte为标准,对步骤14中目标用户Target_usert所在的兴趣集合中的用户进行综合相似度排序,得到该目标用户的序列化邻居用户集合;
步骤18,按照步骤步骤14、步骤15、步骤16、步骤17对目标用户集合中的每个用户进行相同的处理,最终得出每位目标用户的序列化邻居用户集合;
步骤19,设定参照邻居用户数N以及目标用户的推荐电影个数R;其中,参照邻居用户数N的取值范围是0到m,目标用户的推荐电影个数R的取值范围是0到n;
步骤20,在目标用户集合中选取一个用户Target_usert并查看该目标用户的序列化邻居集合,取前N个用户构成该目标用户的参照邻居用户集NNt并作为计算目标用户未评分电影的预测评分依据;
步骤21,利用现有的基于用户的协同过滤推荐算法,通过步骤20中目标用户Target_usert的参照邻居用户集NNt计算该目标用户未评分电影j的预测评分Ptj,预测评分公式如下:
其中,参照用户u属于集合NNt,Simtu目标用户Target_usert与参照邻居用户u的综合相似度,nuj为参照邻居用户u对电影j的归一化评分,分别为参照邻居用户u和目标用户Target_usert所评分电影的归一化平均评分;
步骤22,按照步骤21对步骤20中目标用户Target_usert所有未评分电影进行相同的处理,得出该目标用户未评分电影的预测评分;
步骤23,按照步骤20、步骤21、步骤22对目标用户集中每位用户进行相同的处理,得出每位目标用户未评分电影的预测评分;
步骤24,对目标用户集中每位用户的预测评分电影按照预测评分数据的大小排序,得到每位目标用户的序列化预测评分电影集合;
步骤25,在目标用户集中选取一个用户Target_usert,查看该目标用户的序列化预测评分电影集合并取出预测评分大小前R个电影作为该目标用户的推荐电影列表Recommend_itemt;
步骤26,按照步骤25,对目标用户集中每位用户进行相同的处理,最终得出每位目标用户的电影推荐列表。
本发明首先通过电影评分数据和电影属性信息构建用户平均加权兴趣向量,并以此为聚类标准利用K-means聚类算法对用户兴趣进行划分,判断目标用户所在的用户兴趣集合后,再利用基于用户综合相似度的协同过滤推荐算法对目标用户进行电影推荐,能够有效提高用户兴趣划分的精度,并使兴趣划分结果更具有说服力,同时,改进的算法能够有效提高推荐的精准度。
具体实施方式
下面通过实施例对本发明进一步说明。
实施例:
步骤1,收集用户的评分数据,得到用户-电影评分矩阵S;
其中,矩阵的每个元素sij为用户原始评分数据,表示用户i对电影j的评分,用户没有评分过的电影分值为0,用户下标i=1,2,…,m,电影下标j=1,2,…,n,m=459个用户,n=1683个电影;
步骤2,选用min-max数据归一化方法对用户评分数据归一化,使得用户的评分数值在设定区间之内,进而得到归一化用户评分,min-max数据归一化公式如下:
其中,minA为用户评分数据集A中最小的数据,maxA为用户评分数据集A中最大的数据,newmax为设定区间的上界,这里newmax=1,newmin为设定区间的下界,这里newmin=0,sij为用户原始评分数据,nij为归一化后的评分数据;
步骤3,按照步骤2对用户集合中每位用户的评分数据进行相同的处理,最终得到归一化用户评分矩阵N如下:
其中,矩阵的每个元素nij为归一化后的评分数据,表示用户i对电影j的归一化评分;
步骤4,在用户集合中选取一个用户Useri,通过该用户的评分电影并结合电影信息表中的电影属性,匹配得到该用户所评分的每个电影的属性向量Attributeij如下:
步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:
加权兴趣向量公式为:
Attribute_scorei=nij·Attributeij
步骤6,按照步骤4、步骤5对用户集合中的每位用户进行相同的处理,最终得出每位用户的平均加权兴趣向量;
步骤7,设定聚类簇数K=7并创建K个空的用户兴趣集合{C1,C2,...,Ck,…,CK};其中,类簇下标k=1,2,3,…,K;
步骤8,在用户集合中随机选取K个用户的平均加权兴趣向量作为初始类簇中心{μ1,μ2,...,μk,…,μK};
步骤9,从用户集中选取一个用户Useri并计算该用户的平均加权兴趣向量到各个聚类中心的距离dik,求出与该用户距离最近的聚类中心μk,并将该用户纳入相应的类簇Ck中;
距离公式:
dik=‖Avg_attribute_scorei-μk‖2
聚类公式:
μk=argmink∈{1,2,3…,K}dik
步骤10,按照步骤9对用户集合中的每位用户进行相同的处理,将所有用户都归入相应的类簇中;
步骤11,选取K个类簇中的一个类簇Classk,计算该类簇中所有用户的平均加权兴趣向量的均值向量作为该类簇新的聚类中心μ’k;
其中,Card(Ck)为类簇Ck中用户的数量;
步骤12,按照步骤11对K个类簇中的每个类簇进行聚类中心更新操作,得到新的聚类中心{μ’1,μ’2,...,μ’k,…,μ’K};
步骤14,选取目标用户集合中的一个目标用户Target_usert,通过计算该目标用户平均加权兴趣向量与各个聚类中心的距离,判断目标用户所在兴趣集合,具体计算公式同步骤5和步骤9;其中,目标用户集合是用户集合的一个子集,目标用户下标t=1,2,3,…,T,T=15为目标用户集合中用户的数量;
步骤15,利用皮尔逊相关系数公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的评分相似度Sim_scorete;利用余弦相似度公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的平均加权兴趣向量相似度Sim_attributete;其中,兴趣集合中用户下标 表示兴趣集合中的用户的数量,皮尔逊相关系数公式:
余弦相似度公式:
步骤16,结合步骤14中目标用户Target_usert与所在兴趣集合中每个用户的评分相似度Sim_scorete和平均加权兴趣相似度Sim_attributete得到该目标用户与兴趣集合中每个用户的综合相似度Simte;
Simte=λSim_scorete+(1-λ)Sim_attributete
其中λ=0.5为评分权重因子;
步骤17,以综合相似度Simte为标准,对步骤14中目标用户Target_usert所在的兴趣集合中的用户进行综合相似度排序,得到该目标用户的序列化邻居用户集合;
步骤18,按照步骤步骤14、步骤15、步骤16、步骤17对目标用户集合中的每个用户进行相同的处理,最终得出每位目标用户的序列化邻居用户集合;
步骤19,设定参照邻居用户数N=50以及目标用户的推荐电影个数R=3;
步骤20,在目标用户集合中选取一个用户Target_usert并查看该目标用户的序列化邻居集合,取前N个用户构成该目标用户的参照邻居用户集NNt并作为计算目标用户未评分电影的预测评分依据;
步骤21,利用现有的基于用户的协同过滤推荐算法,通过该目标用户的参照邻居用户集NNt计算步骤20中目标用户Target_usert未评分电影j的预测评分Ptj,预测评分公式如下:
其中,参照用户u属于集合NNt,Simtu目标用户Target_usert与参照邻居用户u的综合相似度,nuj为参照邻居用户u对电影j的归一化评分,分别为参照邻居用户u和目标用户Target_usert所评分电影的归一化平均评分;
步骤22,按照步骤21对步骤20中目标用户Target_usert所有未评分电影进行相同的处理,得出该目标用户未评分电影的预测评分;
步骤23,按照步骤20、步骤21、步骤22对目标用户集中每位用户进行相同的处理,得出每位目标用户未评分电影的预测评分;
步骤24,对目标用户集中每位用户的预测评分电影按照预测评分数据的大小排序,得到每位目标用户的序列化预测评分电影集合;
步骤25,在目标用户集中选取一个用户Target_usert,查看该目标用户的序列化预测评分电影集合并取出预测评分大小前R个电影作为该目标用户的推荐电影列表Recommend_itemt;
步骤26,按照步骤25,对目标用户集中每位用户进行相同的处理,最终得出每位目标用户的电影推荐列表如下表所示:
用户ID | 电影ID | 推荐度 | 电影名称 | 上映时间 | 电影类型 |
1 | 286 | 0.491894943 | 英国病人 | 1996/11/15 | 剧情/爱情/战争 |
1 | 288 | 0.484551354 | 惊声尖叫 | 1996/12/20 | 恐怖/惊悚 |
1 | 313 | 0.409694965 | 泰坦尼克号 | 1997/1/1 | 动作/剧情/爱情 |
2 | 181 | 0.452393451 | 绝地归来 | 1997/3/14 | 动作/冒险/爱情/科幻/战争 |
2 | 50 | 0.451925329 | 星球大战 | 1977/1/1 | 动作/冒险/爱情/科幻/战争 |
2 | 56 | 0.424829407 | 低俗小说 | 1994/1/1 | 犯罪/剧情 |
3 | 50 | 0.738579245 | 星球大战 | 1977/1/1 | 动作/冒险/爱情/科幻/战争 |
3 | 174 | 0.649054488 | 夺宝奇兵 | 1981/1/1 | 动作/冒险 |
3 | 1 | 0.43643319 | 玩具总动员 | 1995/1/1 | 动画/儿童/喜剧 |
4 | 286 | 0.705007461 | 英国病人 | 1996/11/15 | 剧情/爱情/战争 |
4 | 1 | 0.598696812 | 玩具总动员 | 1995/1/1 | 动画/儿童/喜剧 |
4 | 269 | 0.559529731 | 光猪六壮士 | 1997/1/1 | 喜剧 |
5 | 2 | 0.28007448 | 黄金眼 | 1995/1/1 | 动作/冒险/惊悚 |
5 | 3 | 0.28007448 | 四个房间 | 1995/1/1 | 惊悚 |
5 | 4 | 0.28007448 | 矮子当道 | 1995/1/1 | 动作/喜剧/剧情 |
6 | 286 | 0.480748696 | 英国病人 | 1996/11/15 | 剧情/爱情/战争 |
6 | 313 | 0.374679595 | 泰坦尼克号 | 1997/1/1 | 动作/剧情/爱情 |
6 | 258 | 0.349422009 | 超时空接触 | 1997/7/11 | 剧情/科幻 |
7 | 302 | 0.487497457 | 洛杉矶机密 | 1997/1/1 | 犯罪/黑色/神秘/惊悚 |
7 | 300 | 0.399722325 | 空军一号 | 1997/1/1 | 动作/惊悚 |
7 | 313 | 0.381757066 | 泰坦尼克号 | 1997/1/1 | 动作/剧情/爱情 |
8 | 258 | 0.37488492 | 超时空接触 | 1997/7/11 | 剧情/科幻 |
8 | 286 | 0.346908433 | 英国病人 | 1996/11/15 | 剧情/爱情/战争 |
8 | 100 | 0.330122541 | 冰血暴 | 1997/2/14 | 犯罪/剧情/惊悚 |
9 | 181 | 0.74976984 | 绝地归来 | 1997/3/14 | 动作/冒险/爱情/科幻/战争 |
9 | 172 | 0.738579245 | 帝国反击 | 1980/1/1 | 动作/冒险/剧情/爱情/科幻/战争 |
9 | 174 | 0.699412164 | 夺宝奇兵 | 1981/1/1 | 动作/冒险 |
10 | 181 | 0.937837838 | 绝地归来 | 1997/3/14 | 动作/冒险/爱情/科幻/战争 |
10 | 258 | 0.823528967 | 超时空接触 | 1997/7/11 | 剧情/科幻 |
10 | 127 | 0.763423644 | 教父 | 1972/1/1 | 动作/犯罪/剧情 |
11 | 300 | 0.369100872 | 空军一号 | 1997/1/1 | 动作/惊悚 |
11 | 302 | 0.317162022 | 洛杉矶机密 | 1997/1/1 | 犯罪/黑色/神秘/惊悚 |
11 | 294 | 0.310736895 | 大话王 | 1997/3/21 | 喜剧 |
12 | 288 | 0.772151029 | 惊声尖叫 | 1996/12/20 | 恐怖/惊悚 |
12 | 269 | 0.699412164 | 光猪六壮士 | 1997/1/1 | 喜剧 |
12 | 302 | 0.693816867 | 洛杉矶机密 | 1997/1/1 | 犯罪/黑色/神秘/惊悚 |
13 | 100 | 0.430304227 | 冰血暴 | 1997/2/14 | 犯罪/剧情/惊悚 |
13 | 258 | 0.279328292 | 超时空接触 | 1997/7/11 | 剧情/科幻 |
13 | 181 | 0.252949813 | 绝地归来 | 1997/3/14 | 动作/冒险/爱情/科幻/战争 |
14 | 286 | 0.851226705 | 英国病人 | 1996/11/15 | 剧情/爱情/战争 |
14 | 258 | 0.713417989 | 超时空接触 | 1997/7/11 | 剧情/科幻 |
14 | 269 | 0.684172992 | 光猪六壮士 | 1997/1/1 | 喜剧 |
15 | 174 | 0.437640516 | 夺宝奇兵 | 1981/1/1 | 动作/冒险 |
15 | 318 | 0.306296684 | 辛德勒名单 | 1993/1/1 | 剧情/战争 |
15 | 98 | 0.305640543 | 沉默的羔羊 | 1991/1/1 | 剧情/惊悚 |
Claims (1)
1.基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,其特征在于,包括以下步骤:
步骤1,收集用户的评分数据,得到用户-电影评分矩阵S;
其中,矩阵的每个元素sij为用户原始评分数据,表示用户i对电影j的评分,用户没有评分过的电影分值为0,用户下标i=1,2,…,m,电影下标j=1,2,…,n,m为用户的个数,n为电影的个数;
步骤2,选用min-max数据归一化方法对用户评分数据归一化,使得用户的评分数值在设定区间之内,进而得到归一化用户评分,min-max数据归一化公式如下:
其中,minA为用户评分数据集A中最小的数据,maxA为用户评分数据集A中最大的数据,newmax为设定区间的上界,newmin为设定区间的下界,sij为原始评分数据,nij为归一化后的评分数据;
步骤3,按照步骤2对用户集合中每位用户的评分数据进行相同的处理,最终得到归一化用户评分矩阵N如下:
其中,矩阵的每个元素nij为归一化后的评分数据,表示用户i对电影j的归一化评分;
步骤4,在用户集合中选取一个用户Useri,通过该用户的评分电影并结合电影信息表中的电影属性,匹配得到该用户所评分的每个电影的属性向量Attributeij如下:
不具有的属性初始值为0,属性下标f=1,2,…,F,F表示电影属性个数;
步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:
加权兴趣向量公式为:
Attribute_scorei=nij·Attributeij
步骤6,按照步骤4、步骤5对用户集合中的每位用户进行相同的处理,最终得出每位用户的平均加权兴趣向量;
步骤7,设定聚类簇数K并创建K个空的用户兴趣集合{C1,C2,...,Ck,...,CK};其中,类簇下标k=1,2,3,...,K;
步骤8,在用户集合中随机选取K个用户的平均加权兴趣向量作为初始类簇中心{μ1,μ2,...,μk,...,μK};
步骤9,从用户集中选取一个用户Useri并计算该用户的平均加权兴趣向量到各个聚类中心的距离dik,求出与该用户距离最近的聚类中心μk,并将该用户纳入相应的类簇Ck中;
距离公式:
dik=||Avg_attribute_scorei-μk||2
聚类公式:
μk=argmink∈{1,2,3...,K}dik
步骤10,按照步骤9对用户集合中的每位用户进行相同的处理,将所有用户都归入相应的类簇中;
步骤11,选取K个类簇中的一个类簇Classk,计算该类簇中所有用户的平均加权兴趣向量的均值向量作为该类簇新的聚类中心μ’k;
其中,Card(Ck)为类簇Ck中用户的数量;
步骤12,按照步骤11对K个类簇中的每个类簇进行聚类中心更新操作,得到新的聚类中心{μ’1,μ’2,...,μ’K,...,μ’k};
步骤14,选取目标用户集合中的一个目标用户Target_usert,通过计算该目标用户平均加权兴趣向量与各个聚类中心的距离,判断目标用户所在兴趣集合,具体计算公式同步骤5和步骤9;其中,目标用户集合是用户集合的一个子集,目标用户下标t=1,2,3,...,T,T为目标用户集合中用户的数量;
步骤15,利用皮尔逊相关系数公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的评分相似度Sim_scorete;利用余弦相似度公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的平均加权兴趣向量相似度Sim_attributete;其中,兴趣集合中用户下标 表示兴趣集合中的用户的数量,皮尔逊相关系数公式:
余弦相似度公式:
步骤16,结合步骤14中目标用户Target_usert与所在兴趣集合中每个用户的评分相似度Sim_scorete和平均加权兴趣相似度Sim_attributete得到该目标用户与兴趣集合中每个用户的综合相似度Simte;
Simte=λSim_scorete+(1-λ)Sim-attributete
其中λ为评分权重因子;
步骤17,以综合相似度Simte为标准,对步骤14中目标用户Target_usert所在的兴趣集合中的用户进行综合相似度排序,得到该目标用户的序列化邻居用户集合;
步骤18,按照步骤步骤14、步骤15、步骤16、步骤17对目标用户集合中的每个用户进行相同的处理,最终得出每位目标用户的序列化邻居用户集合;
步骤19,设定参照邻居用户数N以及目标用户的推荐电影个数R;其中,参照邻居用户数N的取值范围是0到m,目标用户的推荐电影个数R的取值范围是0到n;
步骤20,在目标用户集合中选取一个用户Target_usert并查看该目标用户的序列化邻居集合,取前N个用户构成该目标用户的参照邻居用户集NNt并作为计算目标用户未评分电影的预测评分依据;
步骤21,利用现有的基于用户的协同过滤推荐算法,通过步骤20中目标用户Target_usert的参照邻居用户集NNt计算该目标用户未评分电影j的预测评分Ptj,预测评分公式如下:
其中,参照用户u属于集合NNt,Simtu为 目标用户Target_usert与参照邻居用户u的综合相似度,nuj为参照邻居用户u对电影j的归一化评分,分别为参照邻居用户u和目标用户Target_usert所评分电影的归一化平均评分;
步骤22,按照步骤21对步骤20中目标用户Target_usert所有未评分电影进行相同的处理,得出该目标用户未评分电影的预测评分;
步骤23,按照步骤20、步骤21、步骤22对目标用户集中每位用户进行相同的处理,得出每位目标用户未评分电影的预测评分;
步骤24,对目标用户集中每位用户的预测评分电影按照预测评分数据的大小排序,得到每位目标用户的序列化预测评分电影集合;
步骤25,在目标用户集中选取一个用户Target_usert,查看该目标用户的序列化预测评分电影集合并取出预测评分大小前R个电影作为该目标用户的推荐电影列表Recommend_itemt;
步骤26,按照步骤25,对目标用户集中每位用户进行相同的处理,最终得出每位目标用户的电影推荐列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910219541.6A CN109933726B (zh) | 2019-03-22 | 2019-03-22 | 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910219541.6A CN109933726B (zh) | 2019-03-22 | 2019-03-22 | 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933726A CN109933726A (zh) | 2019-06-25 |
CN109933726B true CN109933726B (zh) | 2022-04-12 |
Family
ID=66987989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910219541.6A Active CN109933726B (zh) | 2019-03-22 | 2019-03-22 | 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933726B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598778A (zh) * | 2019-09-04 | 2019-12-20 | 卓尔智联(武汉)研究院有限公司 | 旅游推荐方法、计算机装置及可读存储介质 |
CN111143699B (zh) * | 2020-01-03 | 2023-07-28 | 上海理工大学 | 基于相似性与置信度聚类的推荐系统 |
CN113449406B (zh) * | 2020-03-27 | 2024-01-23 | 华晨宝马汽车有限公司 | 打紧工具方案推荐方法和装置及存储介质 |
CN112784172B (zh) * | 2021-01-22 | 2022-04-08 | 杭州电子科技大学 | 一种在线的群组电影推荐方法 |
CN113411645B (zh) * | 2021-06-16 | 2022-12-06 | 北京百度网讯科技有限公司 | 信息推荐方法及装置、电子设备和介质 |
CN117174330A (zh) * | 2023-08-21 | 2023-12-05 | 肾泰网健康科技(南京)有限公司 | 一种基于机器学习的IgA肾病患者治疗方案推荐方法 |
CN118051675A (zh) * | 2024-02-05 | 2024-05-17 | 广州工程技术职业学院 | 基于协同过滤的电影推荐方法、系统、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和系统 |
CN102609860A (zh) * | 2012-01-20 | 2012-07-25 | 彭立发 | 一种适用于电子商务的商品与信息分类推荐方法及系统 |
CN103678431A (zh) * | 2013-03-26 | 2014-03-26 | 南京邮电大学 | 一种基于标准标签和项目评分的推荐方法 |
CN103793476A (zh) * | 2014-01-08 | 2014-05-14 | 西安电子科技大学 | 基于网络社区的协同过滤推荐方法 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN106202331A (zh) * | 2016-07-01 | 2016-12-07 | 中国传媒大学 | 分层次隐私保护的推荐系统及基于该推荐系统的作业方法 |
CN109034981A (zh) * | 2018-08-23 | 2018-12-18 | 上海海事大学 | 一种电商协同过滤推荐方法 |
CN109947987A (zh) * | 2019-03-22 | 2019-06-28 | 江西理工大学 | 一种交叉协同过滤推荐方法 |
CN110347935A (zh) * | 2019-07-18 | 2019-10-18 | 齐鲁工业大学 | 基于用户兴趣变化的个性化影视项目推荐方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146627B1 (en) * | 1998-06-12 | 2006-12-05 | Metabyte Networks, Inc. | Method and apparatus for delivery of targeted video programming |
US8676937B2 (en) * | 2011-05-12 | 2014-03-18 | Jeffrey Alan Rapaport | Social-topical adaptive networking (STAN) system allowing for group based contextual transaction offers and acceptances and hot topic watchdogging |
-
2019
- 2019-03-22 CN CN201910219541.6A patent/CN109933726B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和系统 |
CN102609860A (zh) * | 2012-01-20 | 2012-07-25 | 彭立发 | 一种适用于电子商务的商品与信息分类推荐方法及系统 |
CN103678431A (zh) * | 2013-03-26 | 2014-03-26 | 南京邮电大学 | 一种基于标准标签和项目评分的推荐方法 |
CN103793476A (zh) * | 2014-01-08 | 2014-05-14 | 西安电子科技大学 | 基于网络社区的协同过滤推荐方法 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN106202331A (zh) * | 2016-07-01 | 2016-12-07 | 中国传媒大学 | 分层次隐私保护的推荐系统及基于该推荐系统的作业方法 |
CN109034981A (zh) * | 2018-08-23 | 2018-12-18 | 上海海事大学 | 一种电商协同过滤推荐方法 |
CN109947987A (zh) * | 2019-03-22 | 2019-06-28 | 江西理工大学 | 一种交叉协同过滤推荐方法 |
CN110347935A (zh) * | 2019-07-18 | 2019-10-18 | 齐鲁工业大学 | 基于用户兴趣变化的个性化影视项目推荐方法及系统 |
Non-Patent Citations (2)
Title |
---|
一种融合聚类与用户兴趣偏好的协同过滤推荐算法;何明等;《计算机科学》;20171115;391-396 * |
基于项目聚类和评分预测的协同过滤推荐算法研究;吕晓敏;《中国管理信息化》;20100601;111-113 * |
Also Published As
Publication number | Publication date |
---|---|
CN109933726A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933726B (zh) | 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法 | |
Weber et al. | Who uses web search for what: and how | |
Wu et al. | Contextual bandits in a collaborative environment | |
CN110598130B (zh) | 一种融合异构信息网络和深度学习的电影推荐方法 | |
CN108205682B (zh) | 一种用于个性化推荐的融合内容和行为的协同过滤方法 | |
CN107833117B (zh) | 一种考虑标签信息的贝叶斯个性化排序推荐方法 | |
CN104462385B (zh) | 一种基于用户兴趣模型的电影个性化相似度计算方法 | |
JP4906846B2 (ja) | ソーシャルネットワークにおける利用者の相性の得点化 | |
CN103514255B (zh) | 一种基于项目层次类别的协同过滤推荐方法 | |
US20160170982A1 (en) | Method and System for Joint Representations of Related Concepts | |
CN109947987B (zh) | 一种交叉协同过滤推荐方法 | |
Ferreira et al. | Self‐training author name disambiguation for information scarce scenarios | |
WO2009023070A1 (en) | Systems and methods for keyword selection in a web-based social network | |
CN107944485B (zh) | 基于聚类群组发现的推荐系统及方法、个性化推荐系统 | |
CN108665323A (zh) | 一种用于理财产品推荐系统的集成方法 | |
CN108228867A (zh) | 一种基于观点增强的主题协同过滤推荐方法 | |
CN108897784A (zh) | 一个基于社交媒体的突发事件多维分析系统 | |
CN107943910B (zh) | 一种基于组合算法的个性化图书推荐方法 | |
CN106709076B (zh) | 基于协同过滤的社交网络推荐装置及方法 | |
CN109544231A (zh) | 基于物流信息平台的物流配送服务个性化推荐方法 | |
Yin | Clustering microtext streams for event identification | |
CN110795640A (zh) | 一种弥补群组成员差异的自适应组推荐方法 | |
Chu et al. | A novel recommender system for E-commerce | |
Yang et al. | An Exploraton of Ranking-Based Strategy for Contextual Suggestion. | |
Yang et al. | Emotionally representative image discovery for social events |
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 |