常用推荐算法简介分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 前言

随着互联网技术和社会化网络的发展,每天有大量包括博客,图片,视频,微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求,原因有多种,可能是用户很难用合适的关键词来描述自己的需求,也可能用户需要更加符合他们兴趣和喜好的结果,又或是用户无法对自己未知而又可能感兴趣的信息做出描述。推荐引擎的出现,可以帮用户获取更丰富,更符合个人口味和更加有意义的信息。

个性化推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在海量信息中快速发现真正所需的商品,提高用户黏性,促进信息点击和商品销售。推荐系统是基于海量数据挖掘分析的商业智能平台,推荐主要基于以下信息:

●热点信息或商品

●用户信息,如性别、年龄、职业、收入以及所在城市等等

●用户历史浏览或行为记录

●社会化关系

2. 个性化推荐算法

2.1. 基于人口统计学的推荐(同类人喜欢什么就推荐什么)

基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用

户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品。

这种基于人口统计学的推荐机制的好处在于:

●因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。

●这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。

然后,这个方法的缺点和问题就在于,这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。另外一个局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。

2.2. 基于内容的推荐(用户喜欢什么,就推荐相同类型的)

基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。这种推荐系统多用于一些资讯类的应用上,针对文章本身抽取一些tag作为该文章的关键词,继而可以通过这些tag来评价两篇文章的相似度。

这种推荐系统的优点在于:

●易于实现,不需要用户数据因此不存在稀疏性和冷启动问题。

●基于物品本身特征推荐,因此不存在过度推荐热门的问题。

然而,缺点在于抽取的特征既要保证准确性又要具有一定的实际意义,否则很难保证推荐

结果的相关性。豆瓣网采用人工维护tag的策略,依靠用户去维护内容的tag的准确性。

2.3. 基于关联规则的推荐(用户喜欢A,A和B有紧密联系,就推荐B)

基于关联规则的推荐更常见于电子商务系统中,并且也被证明行之有效。其实际的意义为

购买了一些物品的用户更倾向于购买另一些物品。基于关联规则的推荐系统的首要目标是

挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相

互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。基于关联规则的推荐系统一般转化率较高,因为当用户已经购买了频繁集合中的若干项目后,购买该频繁集合中其他项目的可能性更高。该机制的缺点在于:

●计算量较大,但是可以离线计算,因此影响不大。

●由于采用用户数据,不可避免的存在冷启动和稀疏性问题。

●存在热门项目容易被过度推荐的问题。

2.4. 基于协同过滤的推荐

协同过滤是一种在推荐系统中广泛采用的推荐方法。这种算法基于一个“物以类聚,人以群分”的假设,喜欢相同物品的用户更有可能具有相同的兴趣。基于协同过滤的推荐系统一般

应用于有用户评分的系统之中,通过分数去刻画用户对于物品的喜好。协同过滤被视为利

用集体智慧的典范,不需要对项目进行特殊处理,而是通过用户建立物品与物品之间的联系。

目前,协同过滤推荐系统被分化为两种类型:基于用户(User-based)的推荐和基于物品(Item-based)的推荐。

2.4.1. 基于用户的推荐

基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好(评分),

发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K-Nearest Neighboor”的算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行推荐。

这种推荐系统的优点在于推荐物品之间在内容上可能完全不相关,因此可以发现用户的潜

在兴趣,并且针对每个用户生成其个性化的推荐结果。缺点在于一般的Web系统中,用户的增长速度都远远大于物品的增长速度,因此其计算量的增长巨大,系统性能容易成为瓶颈。因此在业界中单纯的使用基于用户的协同过滤系统较少。

2.4.2. 基于物品的推荐

基于物品的协同过滤和基于用户的协同过滤相似,它使用所有用户对物品或者信息的偏好(评分),发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品

推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化,但由于协同过滤

更多考虑了用户的实际评分,并且只是计算相似度而非寻找频繁集,因此可以认为基于物

品的协同过滤准确率较高并且覆盖率更高。

同基于用户的推荐相比,基于物品的推荐应用更为广泛,扩展性和算法性能更好。由于项

目的增长速度一般较为平缓,因此性能变化不大。缺点就是无法提供个性化的推荐结果。

两种协同过滤,在基于用户和基于物品两个策略中应该如何选择呢?其实基于物品的协同

过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站

点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定;同

时基于物品的机制比基于用户的实时性更好。但也不是所有的场景都是这样的情况,在一

些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新

程度也有很快,所以它的相似度依然不稳定。所以,推荐策略的选择其实也和具体的应用

场景有很大的关系。

基于协同过滤的推荐机制是现今应用最为广泛的推荐机制,它有以下几个显著的优点:

●它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所

以这种方法也是领域无关的。

●这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的

兴趣偏好。

然后而它也存在以下几个问题:

●方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

●推荐的效果依赖于用户历史偏好数据的多少和准确性。

●在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些

明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

●对于一些特殊品味的用户不能给予很好的推荐。

●由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

3.推荐系统与广告投放

互联网上的主题广告推广(例如,百度推广,google adsense)的目标在于实现一个面向

用户的个性化广告投放系统。通过把个性化推荐算法在广告投放中的应用,就实现了我们

个性化广告投放的目标。那么,这种演变是如何实现的呢?

在互联网中,例如,百度,拥有大量的网页信息,而主题广告推广的对象不是用户而是某

一类型的页面。通过类比,每种网页类型对应于推荐系统中的一个用户,而每一个广告就

对应于推荐系统中的一个物品,网页类型(用户)对广告(物品)的评分则可以用该网页

类型中投放广告时的点击情况来计算,这样就构成了一个user-item-rating的矩阵。也就是,通过协同过滤算法可以实现对不同类型的网页进行广告推荐。

此外,实际应用协同过滤算法来进行广告投放也存在一个些问题。例如,协同

过滤中的“冷启动”问题,也就是新增广告条目的推荐需要额外考虑;同时,也

需要考虑用户对广告的接受程度,广告库存率等问题。

相关文档
最新文档