个性化推荐技术漫谈

  • 来源:本站
  • 发布时间:2019-08-13
  • 108已阅读
您现在的位置:首页 >> 西方诗歌 >> 文章
简介 如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一。 目前几乎所有大型的电子商务系统,如Amazon、CDNOW、Netflix等,都不同程度地

	个性化推荐技术漫谈

如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一。 目前几乎所有大型的电子商务系统,如Amazon、CDNOW、Netflix等,都不同程度地使用了各种形式的推荐系统。 而近来以“发现”为核心的网站正开始在互联网上崭露头角,比如侧重于音乐推荐的八宝盒,侧重于图书推荐的豆瓣等等。 那么,一个好的推荐系统需要满足什么目标呢?个性化推荐系统必须能够基于用户之前的口味和喜好提供相关的精确的推荐,而且这种口味和喜欢的收集必须尽量少的需要用户的劳动。 推荐的结果必须能够实时计算,这样才能够在用户离开网站前之前获得推荐的内容,并且及时的对推荐结果作出反馈。 实时性也是推荐系统与通常的数据挖掘技术显著不同的一个特点。

一个完整的推荐系统由三部分构成:行为记录模块、模型分析模块和推荐模块。 行为记录模块负责记录能够体现用户喜好的行为,比如购买、下载、评分等。

这部分看起来简单,其实需要非常仔细的设计。

比如说购买和评分这两种行为表达潜在的喜好程度就不尽相同完善的行为记录需要能够综合多种不同的用户行为,处理不同行为的累加。 模型分析模块的功能则实现了对用户行为记录的分析,采用不同算法建立起模型描述用户的喜好信息。

最后,通过推荐模块,实时的从内容集筛选出目标用户可能会感兴趣的内容推荐给用户。

因此,除了推荐系统本身,为了实现推荐,还需要一个可供推荐的内容集。 比如,对于音乐推荐系统来说,一个音乐库就是这样的内容集。 我们对内容集本身需要提供的信息要求非常低,在经典的协同过滤算法下,内容集甚至只需要提供ID就足够。 而对于基于内容的推荐系统来说,由于往往需要对内容进行特征抽取和索引,我们就会需要提供更多的领域知识和内容属性。 这种情况下,还是拿音乐举例,歌手、流派之类的属性和音频信息就成为必需的内容集信息。 迄今为止在个性化推荐系统中,协同过滤(CollaborativeFiltering)技术是应用最成功的技术。 目前国内外互联网上有许多大型网站已经应用这项技术为用户更加智能的推荐内容。

如果你想要研究协同过滤,一定不能错过MovieLens()。 它是协同过滤最著名的研究项目之一。 第一代的协同过滤技术,又被称为基于用户(User-based)的协同过滤。

基于用户的协同过滤,基本原理是基于用户行为选择的相关性。

用户的行为选择这里指的是下载、购买、评价等等能够显式或者隐式体现出用户喜好的行为。 在一个典型的基于协同过滤技术的推荐系统中,输入数据通常可以表述为一个m×n的用户内容矩阵R,m是用户数,n是内容数。

矩阵的值与内容的类型有关,通常由行为记录模块决定。 如果内容是网上书店中的书,则矩阵的值可以表示用户购买与否,例如1表示购买,0表示没有购买;或者表示用户对它的评价有多高,这样的评价值就可以有几个等级,比如常见的1~5级评价制。 基于用户的协同过滤,通过比较目标用户的一系列行为选择和其他用户之间的相似性,来识别出一组相互具有类似喜好的用户,又可以称为“同好”。 一旦系统能够识别一个用户的同好用户,就能够将他们最感兴趣的内容作为当前用户的推荐结果推荐给这个用户。

也就是说,以前的行为选择与你相似的用户,在以后的行为中很可能也会和你相似。

因此将这些用户做为基准来向你推荐内容。

协同过滤的核心问题是寻找与目标用户兴趣相近的一组用户。 这种相似用户通常被称为最近邻居(NearestNeighbor)。

用户之间的相似度是通过比较两个用户的行为选择矢量得到的。

目前,比较行为选择矢量的相似度计算方法有许多种,比较经典的算法包括泊松相关系数(PersonCorrelationCoefficient)和余弦相似性(Cosine-basedSimilarity)。 “最近邻居”产生后,我们就能够计算得到用户最可能感兴趣的内容集(也叫做TopN推荐集)。 为了得到推荐集,分别统计“最近邻居”中的用户对不同内容的兴趣度,取其中排在最前面的内容作为推荐集。

下面是一个简化的示例:假如用户张三有两个同好:李四和王五。

张三喜欢看电影A;李四喜欢看电影A,B,C和D;王五喜欢看电影A,B,D,E和F;这样,推荐系统就能够过滤出相似用户都喜欢的电影B和D作为张三最可能也会喜欢的电影推荐给张三。 基于用户的协同过滤技术在个性化推荐系统中获得了极大的成功,但它有自身的局限性。

推荐集的产生方式意味着一个内容只有已经被用户选择(购买)后才有机会被推荐给其他用户。

对于一个网上书店来说,新上架的书因为还没有被相当数量的用户购买或者评价的记录,便很少有机会被用户的“最近邻居”筛选进入推荐集。

这个问题,也被称之为协同过滤的“冷启动”问题。

此外,因为计算用户的相似度时,是通过将目标用户的历史行为记录与其他每一个用户的记录相比较得出的,所以对于一个现实的推荐系统来说,扩展性将成为非常严重的问题。 设想一下,对于一个拥有上百万用户的网站来说,每计算一个用户都将涉及到上百万次的比较,更不要说其中会带来的大量数据库IO操作的开销。 于是第二代基于内容项(Item-based)的协同过滤技术就产生了。 与基于用户的技术不同的是,这种方法比较的是内容项与内容项之间的相似度。 Item-based方法同样需要进行三个步骤获得推荐:1)得到内容项(Item)的历史评分数据;2)针对内容项进行内容项之间的相似度计算,找到目标内容项的“最近邻居”;3)产生推荐。 这里内容项之间的相似度是通过比较两个内容项上的用户行为选择矢量得到的。 举个例子,假设用户和内容项如下:。