基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法技术

技术编号:21454061 阅读:34 留言:0更新日期:2019-06-26 04:49
本发明专利技术公开了基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,首先利用数据挖掘中min‑max数据归一化方法对评分数据归一化,使评分数据在设定区间之内;再结合电影信息表中的电影属性信息与归一化的用户评分数据设计属性权重赋值模型,计算每位用户的平均加权兴趣向量;然后运用K‑means聚类算法,按照每位用户的平均加权兴趣向量对用户进行分类,得到多个用户兴趣集合;对目标用户进行推荐时先判断用户所在的兴趣集合,再在目标用户所在的兴趣集合中利用基于用户的协同过滤推荐算法(User‑based CF)完成电影推荐。与同类方法相比,本发明专利技术能够显著提高推荐结果的精准度。

【技术实现步骤摘要】
基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法
本专利技术涉及一种电影推荐方法,具体是基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法。
技术介绍
处在大数据时代的今天,海量的数据以爆炸的方式充斥着我们每个人的日常生活。网上购物颠覆了传统的买卖方式,社交网络拓宽了我们交际的范围,博客论坛成为我们记录生活的一部分,那么如何向用户提供个性化的、具有针对性的信息服务成为无数电商以及网络平台关注的焦点。协同过滤推荐能够及时跟踪用户的需求变化来自动调整信息服务的方式和内容,是一种极具潜力的解决信息过载的个性化服务技术。在大大节约了商家的广告宣传费用的同时又提高了用户的关注度,也帮助用户在更短的时间里买到自己心仪的商品,达到了一举三赢的效果。协同过滤推荐算法相比其他的推荐算法具有很大优势,主要体现在以下几个方面:①算法的个性化、自动化程度高;②推荐领域广泛;③易产生新异推荐;④技术上易于实现。国内外的研究人员提出了各种各样的基于协同过滤的推荐方法,例如钱程和阳小兰发表的“一种电影个性化推荐系统的研究与实现”(见[J].计算机与数字工程,2011,8,P73-76),电影推荐系统基于改进的协同过滤推荐算法,并针对电影领域进行实验,实验证明了推荐系统的可行性以及高效性;李剑锋和秦拯发表的“一种基于局部近邻SlopeOne协同过滤推荐算法”(见[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如下:其中,表示用户i所评分的第j个电影的第f个属性,且对于电影具有的属性的初始值为1,不具有的属性初始值为0,属性下标f=1,2,…,F,F表示电影属性个数;步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:其中,表示用户i对属性f的平均加权评分;加权兴趣向量公式为:Attribute_scorei=nij·Attributeij平均加权兴趣向量每个分量的计算公式为:其中,表示用户i所评分的所有电影中相同属性的计数;步骤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};步骤13,重复步骤9、步骤10、步骤11、步骤12,直到每个类簇的聚类中心不再改变时输出K个类簇以及对应的聚类中心步骤14,选取目标用户集合中的一个目标用户Target_usert,通过计算该目标用户平均加权兴趣向量与各个聚类中心的距离,判断目标用户所在兴趣集合,具体计算公式同步骤5和步骤9;其中,目标用户集合是用户集合的一个子集,目标用户下标t=1,2,3,…,T,T为目标用户集合中用户的数量;步骤15,利用皮尔逊相关系数公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的评分相似度Sim_scorete;利用余弦相似度公式计算步骤14中目标用户Target_usert与其所在的兴趣集合中每个用户的平均加权兴趣向量相似度Sim_attributete;其中,兴趣集合中用户下标表示兴趣集合中的用户的数量,皮尔逊相关系数公式:其中,Ite表示用户t,e共同评分的电影集合,电影c属于集合Ite,ntc表示用户t对电影c的归一化评分,和分别表示用户t,e对电影c的归一化平均评分;余弦相似度公式:其中,分别表示用户t,e的平均加权兴趣向量;步骤16,结合步骤14中目标用户Target本文档来自技高网
...

【技术保护点】
1.基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,其特征在于,包括以下步骤:步骤1,收集用户的评分数据,得到用户‑电影评分矩阵S;

【技术特征摘要】
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如下:其中,表示用户i所评分的第j个电影的第f个属性,且对于电影具有的属性的初始值为1,不具有的属性初始值为0,属性下标f=1,2,…,F,F表示电影属性个数;步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:其中,表示用户i对属性f的平均加权评分;加权兴趣向量公式为:Attribute_scorei=nij·Attributeij平均加权兴趣向量每个分量的计算公式为:其中,表示用户i所评分的所有电影中相同属性的计数;步骤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};步骤13,重复步骤9、步骤10、步骤11、步骤12,直到每个类簇的聚类中心不再改变时输出K个类簇以及对应的聚类中...

【专利技术属性】
技术研发人员:蒋军刘建生张东翠江任伟叶紫妍李文君
申请(专利权)人:江西理工大学
类型:发明
国别省市:江西,36

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1