基于联合聚类与用户特征提取的协同过滤推荐算法-王玙.pdf
《基于联合聚类与用户特征提取的协同过滤推荐算法-王玙.pdf》由会员分享,可在线阅读,更多相关《基于联合聚类与用户特征提取的协同过滤推荐算法-王玙.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、情报学报 2017年8月 第36卷 第8期 Journal of the China Society for Scientific and Technical Information, Aug. 2017, 36(8): 852-858 收稿日期: 2016-12-13;修回日期: 2017-04-05 基金项目:国家自然科学基金青年基金“大规模动态社交网络社团检测算法研究”(71401130)。 作者简介:王玙,女,1980年生,博士,副教授,主要研究领域为数据挖掘,E-mail: ;刘东苏,男,1964年生,博士,教授,硕士生导师,主要研究领域为信息管理。 基于联合聚类与用户特征提取的 协
2、同过滤推荐算法 王 玙,刘东苏 (西安电子科技大学经济与管理学院,西安 710071) 摘 要 协同过滤利用与目标用户相似性较高的邻居对其他产品的评价来预测目标用户对特定产品的喜好程度,用户间的相似性定义至关重要。传统协同过滤算法定义相似性时不考虑用户偏好,为了解决这一问题,本文提出基于联合聚类的协同过滤算法。该算法利用联合聚类识别用户偏好,定义用户偏好相似性。当可用数据还包括用户的属性信息时,算法提取有共同偏好的用户的公共特征,进一步定义基于属性的相似性,结合属性相似性与打分相似性产生推荐。实验用MovieLens数据验证推荐算法的准确性,实验结果表明本文算法可以处理极度稀疏数据,且预测的打
3、分更加准确,推荐排名靠前的电影更受用户喜爱。 关键词 信息推荐;协同过滤;联合聚类;偏好相似性;属性相似性 Collaborative Filtering Algorithm Based on Bi-clustering and User Attribution Extraction Wang Yu and Liu Dongsu (School of Economics and Management, Xidian University, Xian 710071) Abstract: In a collaborative filtering system, for a target user,
4、 the potential evaluation of an object is estimated ac-cording to the ratings from users similar to the target user. Thus, the definition of the similarity between users is of significance. Traditional collaborative filtering algorithms do not consider the preference of users when defining the simil
5、arity. To conquer this problem, a collaborative filtering algorithm based on bi-clustering is presented. The pref-erences of users are identified by bi-clustering, and the preferential similarity is defined by the algorithm. When the attributive information of users can be acquired, the common featu
6、res of users sharing the same preference can be extracted. Furthermore, similarity based on attributions is proposed. The recommendations are given by combining the attributive similarity and the rating similarity. Our algorithm is applied to MovieLens data to validate its accuracy. Experiments demo
7、nstrate that compared with other methods, our algorithm can deal with extremely sparse data, predict ratings more accurately, and suggest more movies which the users really like in the top part of the recommendation list. Key words: information recommendation; collaborative filtering; bi-clustering;
8、 preferential similarity; attributive similarity 1 引 言 随着互联网的快速发展及大数据时代的到来,信息超载1问题日益恶化。为了帮助用户在海量数据中找到感兴趣的内容,信息推荐系统被广泛使用2-5。推荐系统根据用户历史记录,发现用户潜在需求,万方数据第8期 王 玙等:基于联合聚类与用户特征提取的协同过滤推荐算法 853 成为电子商务、社交网络、搜索引擎等服务必不可少的组成部分。作为推荐系统的核心,准确、高效的信息推荐算法决定了推荐效果的好坏。协同过滤算法6-7由于具备不需考虑被推荐项目的内容、可为用户提供新异推荐、对用户访问网站时的干扰较小、技术
9、易于实现等优势8,成为目前应用最广泛的推荐算法。 协同过滤利用与目标用户相似性较高的邻居对其他产品的评价来预测目标用户对特定产品的喜好程度,因此用户间的相似性定义至关重要。目前最常用的是皮尔森相关系数和夹角余弦。学者们针对用户相似性做出了不同的改进。Liu等9基于随机游走,定义了用户间的非对称相似性,提高了推荐结果的准确性与多样性。Choi等10计算用户相似性时考虑所有项目与目标项目的相似程度,与目标项目越相似的项目在最近邻搜寻过程中所起的作用就越大。Kaleli11综合评分相似性、评分不确定度差异两种信息,搜寻目标用户的最近邻。冷亚军等12将产品分为不同的项目类别,把用户-产品打分矩阵转化为
10、用户-项类打分矩阵,再基于用户-项类打分矩阵计算用户间的余弦相似性。 在实际中,用户通常会有兴趣偏好。表1所示为电影网站的10个用户对9部电影的打分表,得分为1表示喜欢该电影,为空表示不喜欢。可以看到用户1与3都爱好动作片,用户6与10都更喜欢爱情片,1与10没有明显的共同爱好。有理由认为1与3的相似性应该大于1与10的相似性。然而传统相似性计算方法将每个用户对所有产品的打分看作一个向量,用向量间的相似性定义用户间的相似性。在考虑全部电影的情况下,利用余弦相似性计算可知,用户1和用户3的相似性为0.6,用户6与 表 1 用户 -电影打分表 动作片 爱情片 恐怖片 A B C D E F G H
11、 I 1 1 1 1 1 1 2 1 1 1 3 1 1 1 1 1 4 1 1 1 5 1 1 1 6 1 1 1 1 1 7 1 1 1 8 1 1 1 9 1 1 1 10 1 1 1 1 1 用户10的相似性为0.6,用户1与用户10的相似性也为0.6。考虑到用户的兴趣偏好,相比于需要计算用户在所有向量维度下的相似性,只计算用户间在他们共同兴趣所对应的维度下的相似性是更合理的做法。 为了发现用户兴趣偏好,需要用到联合聚类方法。联合聚类13-15是将具有类似属性的内容聚集在一起的无监督机器学习方法,能够解决基于维度子集的顶点聚类问题。对用户-产品打分矩阵进行联合聚类分析,可以发现哪些用户
12、在什么产品集合下是相似的,这些产品的集合就代表了用户的偏好。在聚类结果的基础上计算用户间基于产品子空间的相似性,不但能得到更合理的相似性结果,还能部分解决打分矩阵过于稀疏的问题。 在大数据时代,可获取的数据种类繁多。除了用户对产品的评分外,还可能得到用户的社交网络信息、用户个人特征信息、用户所处位置等信息。可以利用这些属性信息分析解释聚类结果,提取同一类中用户的共同特征,认为可能是这些共同特征使得他们对这一类产品有所偏好。共同的属性特征可以作为给新用户推荐产品的依据,以缓解冷启动问题。 本文认为用户的兴趣是有偏好的,通过对用户-产品打分矩阵联合聚类,挖掘出用户对不同产品的偏好,定义用户之间基于
13、偏好的相似性,继而产生推荐。当可用数据还包括用户属性时,算法可进一步扩展。提取有共同偏好的用户之间的公共属性,作为社团特征。在为用户推荐产品时,可结合用户属性与社团特征的匹配程度产生推荐。本文第2节介绍基于联合聚类的协同过滤推荐算法。第3节对算法进行扩展,提出基于联合聚类与用户特征提取的协同过滤推荐算法。第4节分析实验结果,第5节给出结论和下一步的研究工作方向。 2 基于联合聚类的协同过滤推荐算法 2.1 网络构建 本文将用户-产品打分矩阵构建成一个二部图。在一个由m个用户和n个产品构成的推荐系统中,将代表用户的顶点集合表示为12,mUuu u ,代表产品的顶点集合表示为12, , , nI
14、ii i 。初始时,所有的点都是孤立的。如果存在用户iu对产品ji的打分ijr,就在顶点iu和顶点ji之间连接一条边。联合聚类问题就转换为二部图社团发现问题。 万方数据854 情 报 学 报 第36卷 2.2 二部图社团检测 目前针对二部图的社团检测算法不是很多,已有算法通常是对经典社团检测算法的扩充。Barber16将Newman等17提出的模块性指标扩展到二部图中,而这类二部图社团检测算法得到网络的划分,不能发现重叠社团。Lehmann等18通过定义二分圈,将CPM算法19扩展到了二部图中,而与CPM类似,由于对社团结构有较严格的定义,导致很多顶点被丢弃。 本文认为二部图中的一条边代表一次
15、选择行为,两条边的相似度代表了两个选择行为的相似度,相似的选择行为的集合就构成了一组用户的兴趣偏好,于是问题转化为相似边的聚类。Ahn等20提出了基于边的社团检测算法,可以很容易地扩展到二部图中。二部图中边ike与jke的相似性定义为: (, ) () ()/ () ()ik jkSe e Ni N j Ni N j (1) 其中,()Ni表示顶点i的邻居集合。基于边的相似性,利用单链接分层聚类,可以得到一个分层树。为了确定切割分层树的层次,Ahn提出了两个概念:边密度与划分密度。二部图社团的边密度定义为: (1) (2)(1) (2) (1) (2)1( )22 1)cccccc c cmn
16、nDnn n n- -(2) 其中,cm表示社团c中边的数目,(1)cn和(2)cn分别表示社团c中第一类顶点和第二类顶点的个数。整个二部图的划分密度是每个社团密度的加权平均,定义为: 12ccD MmD-(3) 其中,M代表二部图的边数。从拓扑结构的角度来看,使得划分密度D最大的层次是最优的切割分层树的层次。虽然在D最大的层次上切割分层树能得到拓扑上的最优社团结构,但这仅仅作为参考,不是切割分层树的唯一选择。在不同的层次上切割分层树,可以得到不同层次的二部图社团划分,真正有意义的社团划分也可能位于最优划分层次之上或者之下。 2.3 用户相似性定义 将检测到的所有二部图社团标记为1( , )k
17、iiiCUI,这里k代表找到的社团数。(,)iiicUI代表找到的第i个社团,iUU,表示该社团中的用户集合,iI I ,表示该社团中的产品集合。能够聚在一类说明iU中的用户对iI中的产品是有兴趣偏好的。例如,检测到社团234 136243( , , , , , , , )cuuuiiiii,说明用户234,uuu对产品1362433, ,iiii i的打分是相似的。 基于社团检测的结果,我们定义用户间的偏好相似性。假设检测到一个二部图社团(,)iiicUI,用户,piqiuUuU ,piuIPerfer向量代表用户pu对iI中产品的打分构成的向量,用户pu与qu基于产品集合iI的相似性(,)
18、iIpqSuu即是用户pu与qu的偏好相似性,定义为向量piuIPerfer与向量qiuIPerfer的相似性,本文使用向量间的余弦相似性。 当两个用户处在同一个社团中,且需打分的产品也在该社团中时,计算用户间的偏好相似性是有意义的。如需评判用户对没有明显偏好的产品的打分时,就需回归到传统协同过滤计算相似性的方法。为了区别于偏好相似性,将其称为全局相似性。用户pu与qu的全局相似性(,)pqSu u定义为用户pu对所有产品的打分向量和用户qu对所有产品的打分向量之间的相似性。 2.4 基于联合聚类的协同过滤推荐算法 在预测用户iu对产品ji的得分时,首先判断用户iu与产品ji是否属于同一个二部
19、图社团。如果属于同一个社团,说明用户iu对产品ji是有偏好的,则利用用户iu与该社团中其他用户的偏好相似性来计算打分ijr。如果用户iu与产品ji不在同一个社团里,则利用用户iu与全部用户的全局相似性来计算打分ijr。 基于联合聚类的协同过滤推荐算法完整步骤如下: 输入:用户打分矩阵mnR,用户iu,产品ji; 输出:用户iu对产品ji的打分ijr。 步骤: (1)将打分矩阵mnR转换为二部图; (2)利用基于边的社团检测算法检测二部图社团,得到二部图社团集合1, , kCc c ; (3)若存在社团(,)g ggcUI,使得,iguU j giI,计算 (, ) (, ) ggig igij
20、 I i i i j I i iuU uUr S uu r S uu (4) (4)如果用户iu和产品ji不在同一个社团中,计算 (, ) (, ) iiij ii ij iiuU uUr Suu r Suu (5) 万方数据第8期 王 玙等:基于联合聚类与用户特征提取的协同过滤推荐算法 855 3 基于联合聚类与用户特征提取的协同过滤推荐算法 在实际应用中,除了用户对产品的评分外,通常系统还会获取一些用户的属性信息,如用户的性别、年龄、职业、所在地、用户在其他网站的购买记录、用户常用标签等。在已知聚类结果的前提下,分析同一个社团中用户的属性,提取他们的共同特征,可以解释他们聚为一类的可能原因
21、也许是因为用户自身的这些共同属性让他们都喜欢这一类产品。当为其他用户推荐产品时,如果他符合这些特征,那么他有可能也喜欢这一类产品。 3.1 用户属性表示 我们把系统能够收集到的所有用户属性信息集成到一个树形结构中,称为属性树,图1是属性树的示意图。 在这个属性树的例子中,显示的属性包括用户注册时填写的年龄、职业、偏好类型等信息和用户评价产品的常用标签。常用标签可以反映用户的兴趣,如对电影疯狂动物城标注“励志”的用户 和标注“搞笑”的用户,他们的兴趣点不同。属性树的叶子节点表示至少有一个用户具有这种属性。利用属性树,每个用户的属性信息都可以用向量表示,向量长度与叶子数相等。当用户具有某个叶子节点
22、描述的属性时,就将该用户属性向量的对应位置置为1,反之置为0。例如,用户iu是年轻的学生,注册时填写喜爱的电影类型是动作片和恐怖片,常用标签为“励志”,那么用户iu的属性向量为( ) (100001011010)iattribute u 。 3.2 社团特征提取 在一个二部图社团中,如果某个属性在该社团用户中的出现频率显著大于该属性在全部用户中的出现频率,认为该属性是这个社团的一个特征。提取二部图社团中的所有显著属性,作为社团特征。利用属性树,社团特征也表示为向量形式:如具备该属性,则向量的对应分量为1,反之为0。以图1属性树为例,如果一个社团ic中,大部分用户都是常用“励志”作为标签的年轻人
23、,则该社团的社团特征为( ) (100000000010)iattribute c 。 图1 属性树示意图 3.3 基于社团特征的属性相似性定义 当用户的打分记录很少、甚至没有,即面临“冷启动”问题时,可以借助用户属性信息产生推荐。计算用户与社团之间的属性相似性,将相似性高的社团中的产品推荐给用户。 我们把用户iu与社团gc之间的属性相似 性(, )aigSuc定义为向量()gattribute c与向量() ( )igattribute u attribute c之间的相似性。即只关心用户是否具备社团特征中的相应属性,相同的属性数目越多,用户与该社团的属性相似性越大。 3.4 基于联合聚类与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 联合 用户 特征 提取 协同 过滤 推荐 算法 王玙
限制150内