电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

非常好的协同过滤入门文章

11页
  • 卖家[上传人]:汽***
  • 文档编号:432023541
  • 上传时间:2024-02-22
  • 文档格式:DOCX
  • 文档大小:347.21KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、非常好的协同过滤入门文章“探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现 方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理论讲解的基础上, 还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐策略,进行策略优化,构 建高效的推荐引擎的方法。本文作为这个系列的第一篇文章,将深入介绍推荐引擎的工作原 理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解 和快速构建适合自己的推荐引擎。信息发现如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分 享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信息将变得越来越难。在这样的情形下,搜索引擎(Google, Bing,百度等等)成为大家快速找到目标信息的 最好途径。在用户对自己需求相对明确的时候,用搜索引擎很方便的通过关键字搜索很快的 找到自己需要的信息。但搜索引擎并不能完全满足用户对信息发现的需求,那是因为在很多 情况下,用户其实并不明确自己的需要,或者他们的需求很难用简单的关键字来表述。又或 者他们需要

      2、更加符合他们个人口味和喜好的结果,因此出现了推荐系统,与搜索引擎对应, 大家也习惯称它为推荐引擎。随着推荐引擎的出现,用户获取信息的方式从简单的目标明确的数据的搜索转换到更高 级更符合人们使用习惯的信息发现。如今,随着推荐技术的不断发展,推荐引擎已经在电子商务(E-commerce,例如Amazon, 当当网 ) 和一些基于 social 的社会化站点 ( 包括音乐,电影和图书分享,例如豆瓣, Mtime 等 ) 都取得很大的成功。这也进一步的说明了, Web2.0 环境下,在面对海量的数据,用户 需要这种更加智能的,更加了解他们需求,口味和喜好的信息发现机制。推荐引擎前面介绍了推荐引擎对于现在的 Web2.0 站点的重要意义,这一章我们将讲讲推荐引 擎到底是怎么工作的。推荐引擎利用特殊的信息过滤技术,将不同的物品或内容推荐给可能 对它们感兴趣的用户。图 1. 推荐引擎工作原理图(黄ttS ;CKSl年舒J见巾对A品豹侵垮 苗出比期实J ,; 、 _-阻:;弓X.亚運盛图 1 给出了推荐引擎的工作原理图,这里先将推荐引擎看作黑盒,它接受的输入是推 荐的数据源,一般情况下,推荐引擎所需要

      3、的数据源包括:要推荐物品或内容的元数据,例如关键字,基因描述等;系统用户的基本信息,例如性别,年龄等用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户 查看物品的记录,用户的购买记录等。其实这些用户的偏好信息可以分为两类: 显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反 馈信息,例如用户对物品的评分,或者对物品的评论。 隐式的用户反馈:这类是用户在使用网站是产生的数据,隐式的反应了用户对物品 的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。显式的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价,而 隐式的用户行为,通过一些分析和处理,也能反映用户的喜好,只是数据不是很精确,有些 行为的分析存在较大的噪音。但只要选择正确的行为特征,隐式的用户反馈也能得到很好的 效果,只是行为特征的选择可能在不同的应用中有很大的不同,例如在电子商务的网站上, 购买行为其实就是一个能很好表现用户喜好的隐式反馈。推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出 一定的规则或者直接对用户对其他物品的喜好进

      4、行预测计算。这样推荐引擎可以在用户进入 的时候给他推荐他可能感兴趣的物品。推荐引擎的分类推荐引擎的分类可以根据很多指标,下面我们一一介绍一下:1. 推荐引擎是不是为不同的用户推荐不同的数据: 根据这个指标,推荐引擎可以分 为基于大众行为的推荐引擎和个性化推荐引擎 根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的 由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流 行的物品。 个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这 时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当 前用户相同喜好的用户,实现推荐。这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐 引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。2. 根据推荐引擎的数据源其实这里讲的是如何发现数据的相关性,因为大部分推荐引擎的工作原理还是基于物品 或者用户的相似集进行推荐。那么参考图 1 给出的推荐系统原理图,根据不同的数据源发 现数据相关性的方法可以分为以下几种: 根据系统用户的基本信息

      5、发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation) 根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容 的推荐(Content-based Recommendation) 根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。3. 根据推荐模型的建立方式可以想象在海量物品和用户的系统中,推荐引擎的计算量是相当大的,要实现实时的推 荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为以下几种: 基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体, 预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。 由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置, 即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可 以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的

      6、喜好程度,但这 样的模型又会在推荐的准确性上有损失。基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据 挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物 篮问题”,通过关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户 购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后, 我们可以基于这些规则给用户进行推荐。 基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问 题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型, 这样以后用户在进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将 用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。其实在现在的推荐系统中,很少有只使用了一个推荐策略的推荐引擎,一般都是在不同 的场景下使用不同的推荐策略从而达到最好的推荐效果,例如 Amazon 的推荐,它将基于 用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当 下比较流行的物品都在

      7、不同的区域推荐给用户,让用户可以从全方位的推荐中找到自己真正 感兴趣的物品。深入推荐机制这一章的篇幅,将详细介绍各个推荐机制的工作原理,它们的优缺点以及应用场景。基于人口统计学的推荐基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现 的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户 喜爱的其他物品推荐给当前用户,图 2 给出了这种推荐的工作原理。图 2. 基于人口统计学的推荐机制的工作原理mrc洋户戌| 甲龄;25-30 :性彌;女用户E 郦: 30-35I Hess :男:用户cI年龄.鬲-却 址别:女約品口从图中可以很清楚的看到,首先,系统对每个用户都有一个用户 Profile 的建模,其中 包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算 用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给 当前用户一些物品,图中将用

      8、户 A 喜欢的物品 A 推荐给用户 C。这种基于人口统计学的推荐机制的好处在于:1. 因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start) ”的问题。2. 这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用, 它是领域独立的(domain-independent)。那么这个方法的缺点和问题是什么呢?这种基于用户的基本信息对用户进行分类的方 法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好 的推荐效果。可能在一些电子商务的网站中,这个方法可以给出一些简单的推荐。另外一个 局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的 年龄等,这些用户信息不是很好获取。基于内容的推荐基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据 推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推 荐给用户相似的物品。图 3 给出了基于内容推荐的基本原理。图 3. 基于内容推荐机制的基本原理忑厂11:究忸惊愫I用户c押户h压严(3图 3

      9、中给出了基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影 的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电 影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根 据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现 推荐,对于用户A,他喜欢看电影A,那么系统就可以给他推荐类似的电影C。这种基于内容的推荐机制的好处在于它能很好的建模用户的口味,能提供更加精确的推 荐。但它也存在以下几个问题:1. 需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度。在 现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种 简单有效的方法。2. 物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。3. 因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。 虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点,有些站点还请专业的人员对物品进行基因编码,比如潘多拉,在一份报告中说道,在 潘多拉的推荐引擎中,每首歌有超过 100 个元数据特征,包括歌曲的风格,年份,演唱者基于协同过滤的推荐随着Web2.0的发展,Web站点更加提倡用户参与和用户贡献,因此基于协同过滤的 推荐机制因运而生。它的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者 内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。基于协同 过滤的推荐可以分为三个子类:基于用户的推荐( User-basedRecommendation ) ,基于项 目的推荐(It em-based Recommenda ti on 和基于模型的推荐(Model-based Recommenda tion)。 下面我们一个一个详细的介绍着三种协同过滤的推

      《非常好的协同过滤入门文章》由会员汽***分享,可在线阅读,更多相关《非常好的协同过滤入门文章》请在金锄头文库上搜索。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.