《推荐系统:技术、评估及高效算法》一2.4 聚类分析

2.4 聚类分析

扩展CF分类器的最大问题是计算距离时的操作量,如发现最好的K近邻。如我们在2.2.3节中所看到那样,一种可能的解决方法是降维。但是,即使降低了特征维度,仍有许多对象要计算距离,这就是聚类算法的用武之地。基于内容的推荐系统也是这样,检索相似对象也需要计算距离。由于操作量的减少,聚类可以提高效率。但是,不像降维方法,它不太可能提高精确度。因此,在设计推荐系统时必须谨慎使用聚类,必须小心地衡量提高效率和降低精度之间的平衡。

聚类[41],也称为无监督的学习,分配物品到一个组中使得在同一组中的物品比不同组中的物品更加类似:目的是发现存在数据中的自然(或者说是有意义)的组。相似度是由距离衡量决定的,如在2.2.1节中叙述的。聚类算法的目标是在最小化群内距离的同时最大化群间距离。

聚类算法有两个主要的类别:分层和划分。划分聚类算法把数据划分成非重合的聚类,使得每一个数据项确切在一个聚类中。分层聚类算法在已知聚类上继续聚合物品,生成聚类的嵌套集合,组成一个层级树。

许多聚类算法试图最小化一个函数来衡量聚类的质量。这样的质量函数一般被称为目标函数,因此聚类可以看作最优化的问题:理想聚类算法考虑所有可能数据划分,并且输出最小化质量函数的划分。但相应的最优化问题是NP难问题,因此许多算法采用启发式方法(例如,k-means算法中局部最优化过程最可能结束于局部最小)。主要问题还是聚类问题太难了,很多情况下要想找到最优解就是不可能的。同样的原因,特殊聚类算法的选择和它的参数(如相似度测量)取决于许多的因素,包括数据的特征。在下面的章节将描述k-means聚类算法和其他的候选算法。

2.4.1 k-means

k-means聚类是一种分块方法。函数划分N个物品的数据集到k个不相关的子集Sj,其中包含Nj物品,以便于它们按照给定的距离指标尽可能地靠近。在分块中每一个聚类通过它的Nj个成员和它的中心点λj来定义。每一个聚类的中心点是聚类中所有其他物品到它的距离之和最小的那个点。因此,我们定义k-means算法作为迭代来最小化1-1e≈0.623,其中xn是向量,代表第n个物品,λj是在Sj中物品的中心点,并且d是距离尺度。k-means算法移动聚类间的物品直到E不再进一步降低。

算法一开始会随机选择k个中心点。所有物品都会被分配到它们最靠近的中心节点的类中。由于聚类新添加或是移出物品,新聚类的中心节点需要更新,聚类的成员关系也需要更新。这个操作会持续下去,直到再没有物品改变它们的聚类成员关系。算法第一次迭代时,大部分的聚类的最终位置就会发生,因此,跳出迭代的条件一般改变成“直到相对少的点改变聚类”来提高效率。

基础的k-means是极其简单和有效的算法。但是,它有几个缺陷:1)为了选择合适的k值,假定有先验的数据知识;2)最终的聚类对于初始的中心点非常敏感;3)它会产生空聚类。k-means也有几个关于数据的缺陷:当聚类是不同的大小、密度、非球状形状时,就会有问题,并且当数据包含异常值时它也会有问题。

Xue等[77]提出一种在推荐环境中典型的聚类用法,通过使用k-means算法作为预处理步骤来帮助构造邻居。他们没有将邻居限制在用户所属的聚类内,相反是使用从用户到不同聚类中心点的距离作为预选阶段发现邻居。他们实现了基于聚类平滑技术,其技术是对于用户在聚类中的缺失值被典型聚类取代。他们的方法据称比标准的基于kNN的CF效果要好。相类似,Sarwar等[26]描述了一个方法来实现可扩展的kNN分类器。他们通过平分k-means算法来划分用户空间,然后用这些聚类作为邻居的形成的基础。据称与标准的kNN的CF相比准确率降低了大约5%。但是,他们的方法显著地提高了效率。

Connor和Herlocker[21]提出不同的方法,他们聚类物品而不是用户。使用Pearson相关相似度指标,他们尝试四种不同算法:平均链接分层聚集[39],对于分类属性的健壮聚类算法(ROCK)[40]:kMetis和hMetis http://www.cs.umn.edu/karypis/metis。尽管聚类的确提高了效率,但是所有的聚类技术的确比非分类基线精确度和覆盖度要差。最后,Li等[60]以及Ungar和Foster[72]提出一种非常类似的方法,使用k-means聚类来解决推荐问题的概率模型解释。

2.4.2 改进的k-means

基于密度的聚类算法,诸如,DBSCAN通过建立密度定义作为在一定范围内的点的数量。例如,DBSCAN定义了三种点:核心点是在给定距离内拥有超过一定数量邻居的点;边界点没有超过指定数量的邻居但属于核心点邻居;噪声点既不是核心点也不是边界点。算法迭代移除掉噪声数据并且在剩下的点上进行聚类。

消息传递聚类算法是最近基于图聚类方法的系列之一。消息传递算法没有一开始就将节点的初始子集作为中心点,然后逐渐调适,而是一开始就将所有节点都看作中心点,一般称为标本。在算法执行时,这些点,现在已经是网络中的节点了,会交换消息直到聚类逐渐出现。相似传播是这种系列算法的代表,通过定义节点之间的两种信息来起作用:“责任”,反映了在考虑其他潜在标本的情况下,接收点有多适合作为发送点的标本;“可用性”,从候选标本发送到节点,它反映了在考虑其他选择相同标本的节点支持的情况下,这个节点选择候选标本作为其标本的合适程度。相似传播已经被应用到DNA序列聚类,在图形中人脸聚类,或者是文本摘要等不同问题,并且效果很好。

最后,分层聚类按照层级树(树枝形结构联系图)的结构产生一系列嵌套聚类。分层聚类不会预先假设聚类的既定数量。同样,任何数量的聚类都能够通过选择合适等级的树来获得。分层聚类有时也与有意义的分类学相关。传统的分层算法使用一个相似度或者距离矩阵来合并或分裂一个聚类。有两种主要方法来分层聚类。在聚集分层聚类中,我们以点作为个体聚类,并且每一个步合并最近的聚类对,直到只有一个(或是k个聚类)聚类剩下。分裂分层聚类从一个包含所有物品的聚类开始,并且每一个分裂每一聚类,直到每一聚类包含一个点(或是有k个聚类)。

就我们所知,诸如前面提到k-means的替代方法没有应用在推荐系统中。k-means算法的简单和效率优于它的替代算法。基于密度或者是分层聚类方法在推荐系统领域能起的作用还不是很清楚。另一方面,消息传递算法已经显示了其高效的特点,并且基于图的范例很容易转换成推荐问题。在未来一段时间内我们看到这些算法的应用是可能的。

时间: 2024-07-28 20:42:44

《推荐系统:技术、评估及高效算法》一2.4 聚类分析的相关文章

《推荐系统:技术、评估及高效算法》一1.5 应用与评价

1.5 应用与评价 推荐系统的研究着重放在实践和商业应用上.因为除了理论方面的贡献,这方面的研究一般旨在切实促进商业推荐系统的发展.因此,推荐系统的研究包括实现这些系统的实践方面.这些方面与推荐系统生命周期的不同阶段都相关,即系统设计.实现以及系统运行过程中的维护和改善. 系统设计阶段所需考虑的影响因素或许会影响算法的选择.第一个要考虑的因素--应用的领域是算法选择的主要影响因素.[72]提供了推荐系统的分类,并且对特定应用领域的推荐系统应用做了分类.基于这些特定的应用领域,我们为最普遍的推荐系

《推荐系统:技术、评估及高效算法》一导读

前 言 推荐系统是为用户推荐所需物品的软件工具和技术.提供的推荐旨在通过各种决策过程来支持用户,例如,买什么物品.听什么歌或者读什么新闻.推荐系统对于在线用户处理信息过载是一个非常有价值的方法,并成为电子商务领域最强大和流行的工具.因此,人们提出了各种各样的推荐技术,并在过去的10年中将其中很多方法成功地运用在商务领域. 推荐系统的发展需要多学科的支持,涉及来自各个领域的专家知识,如人工智能.人机交互.信息检索.数据挖掘.数据统计.自适应用户界面.决策支持系统.市场营销或消费者行为等.本书旨在基

《推荐系统:技术、评估及高效算法》一1.1 简介

1.1 简介 推荐系统(RS)是一种软件工具和技术方法,它可以向用户建议有用的物品[60,85,25],这种建议适用于多种决策过程,如购买什么物品.听什么音乐.在网上浏览什么新闻等."物品"是用来表示系统向用户推荐内容的总称.一个推荐系统通常专注于一个特定类型的物品(如CD或新闻),因此它的设计.图形用户界面以及用于生成建议的核心的推荐技术都是为特定类型的物品提供有用和有效的建议而定制的. 推荐系统主要针对的是那些缺乏足够的个人经验和能力的人,他们无法评估潜在的大量可供选择的物品,比如

《推荐系统:技术、评估及高效算法》一3.1 简介

3.1 简介 网络上和数字图书馆中,存在着大量而丰富的信息,由于它们的动态性和多样性,很难快速找出我们想要的或最能满足我们需求的东西. 因此,用户建模和个人资料访问的作用变得越来越重要:根据喜好和品位,用户需要个性化的支持来从大量信息中筛选出可用信息. 大量的信息来源显示,推荐系统是能够满足用户个性化需求的一种方式[73].推荐系统在巨大的可能选择范围内引导用户发现感兴趣的或有用的个性化推荐结果[17].推荐算法把用户的兴趣作为输入来产生一个推荐列表.亚马逊的推荐算法用于为每个用户定制一个网上商

《推荐系统:技术、评估及高效算法》一2.3 分类

2.3 分类 分类器是从特征空间到标签空间的映射,其中特征代表需要分类的元素的属性,标签代表类别.例如,餐厅推荐系统能够通过分类器来实现,其分类器基于许多特征描述把餐厅分成两类中的一类(好的,不好的). 有许多种类型的分类器,但是一般情况下我们谈的有监督分类器和无监督分类器.在有监督分类器中,我们预先知道一组标签或是类别,并且我们有一组带有标签的数据,用来组成训练集.在无监督分类中,类别都是提前未知的,其任务是恰当地组织好我们手中的元素(按照一些规则).在本节中我们描述几个算法来学习有监督分类,

《推荐系统:技术、评估及高效算法》一3.4 趋势和未来研究

3.4 趋势和未来研究 3.4.1 推荐过程中用户产生内容的作用 Web 2.0是一个描述万维网技术趋势的术语,万维网的目标是促进用户之间的信息共享和协作.按照Tim O'Reilly http://radar.oreilly.com/archives/2006/12/web-20-compact.html,Accessed on March 18,2009说法,术语Web2.0的意思是以用户为中心,设计用户产生内容的软件,因为其内容是由成千上万用户所贡献的,如Flickr,Wikipedi

《推荐系统:技术、评估及高效算法》一3.3 基于内容的推荐系统的现状

3.3 基于内容的推荐系统的现状 顾名思义,基于内容的推荐是利用物品的内容数据来预测它和用户个人信息的相关性.基于内容的推荐系统的研究涉及计算机科学的许多方面,尤其是在信息检索[6]和人工智能领域. 在信息检索领域,推荐技术研究的想象力来自将用户搜索推荐结果看作一个信息检索的过程.在信息检索系统中,用户需要给出一次性查询信息(经常是一个关键词列表),而在信息过滤系统,用户的信息需求被表示成他的个人信息.由于用来描述物品的属性在数量和类型上的差异,待推荐物品也会有较大差异.每个物品当然可以用一组已

《推荐系统:技术、评估及高效算法》一2.5 关联规则挖掘

2.5 关联规则挖掘 关联规则挖掘关注于规则的发现,其他能够根据事务中出现其他物品来预测出现某个物品.两个物品被发现相关只意味着共同出现,但是没有因果关系.注意不要将这种技术与在2.3.3节中提到的基于规则的分类混淆. 我们定义物品集为一个或多个物品的集合(例如,(牛奶,啤酒,尿布)).k-物品集是包含k个物品的集合.给定物品的频繁度称为支持量(比如,(牛奶,啤酒,尿布)=131).并且物品集的支持度是包含它的事务的比例(例如,(牛奶,啤酒,尿布)=0.12).频繁物品集是支持度大于或等于最小支

《推荐系统:技术、评估及高效算法》一1.8 出现的问题和挑战

1.8 出现的问题和挑战 1.8.1 本书对出现的问题的讨论 从前面的讨论可以很明显地看出,推荐系统的研究正在向众多不同的方向发展,同时新的主题不断出现,或者正成为更重要的研究课题.读者也可以参考最近的ACM RecSys会议资料,参考其他优秀的论文,将其作为额外的研究素材[7,3].本手册中涵盖许多这种话题.实际上,很多已经介绍过了,例如,上下文感知推荐(第7章):新的可视化技术(第17章):基于社区的个性化搜索(第18章):基于信任的推荐系统(第20章).其他一些重要的话题在手册最后两部分,