“探索推荐引擎内部的秘密”系列将带领读者从浅入深
优采云 发布时间: 2021-07-06 01:02“探索推荐引擎内部的秘密”系列将带领读者从浅入深
《探索推荐引擎的奥秘》系列将带领读者由浅入深,探索推荐引擎的机制和实现方法,包括一些基本的优化方法,如聚类、分类应用等。同时,在理论讲解的基础上,还将介绍如何在*敏*感*词*数据上实现各种推荐策略,优化策略,结合Apache Mahout构建高效的推荐引擎。作为本系列的第一篇文章,本文将深入介绍推荐引擎的工作原理,涉及的各种推荐机制,以及各自的优缺点和适用场景,帮助用户清晰了解并快速构建适合自己推荐引擎。
信息发现
现在我们进入了一个数据爆炸的时代。随着Web2.0的发展,Web已经成为数据共享的平台。那么,如何让人们想要在海量数据中找到自己需要的信息就会越来越难。
在这种情况下,搜索引擎(谷歌、必应、百度等)就成为了大家快速找到目标信息的最佳方式。当用户比较清楚自己的需求时,使用搜索引擎通过关键字搜索快速找到自己需要的信息是非常方便的。然而,搜索引擎并不能完全满足用户对信息发现的需求,因为在很多情况下,用户其实并不清楚自己的需求,或者用简单的关键词难以表达自己的需求。或者他们需要更符合他们个人品味和喜好的结果,于是就有了推荐系统,对应搜索引擎,大家习惯称它为推荐引擎。
随着推荐引擎的出现,用户获取信息的方式已经从简单的有针对性的数据搜索转变为更符合人们习惯的更高级的信息发现。
现在,随着推荐技术的不断发展,推荐引擎已经在电子商务(电子商务,如亚马逊、当当)和一些基于社交的社交网站(包括音乐、电影和图书分享,如如豆瓣、Mtime等)都取得了巨大的成功。这也进一步说明,在Web2.0环境下,面对海量数据,用户需要这种更智能、更了解自己需求、品味和偏好的信息发现机制。
返回顶部
推荐引擎
之前介绍了推荐引擎对当前Web2.0站点的重要性。在本章中,我们将讨论推荐引擎的工作原理。推荐引擎使用特殊的信息过滤技术向可能感兴趣的用户推荐不同的项目或内容。
图1.推荐引擎的工作原理
图1展示了推荐引擎的工作原理图。在这里,推荐引擎被视为一个黑匣子。它接受的输入是推荐的数据源。一般来说,推荐引擎需要的数据源包括:
显式的用户反馈可以准确反映用户对物品的真实偏好,但需要用户付出额外的代价,而隐式的用户行为也可以通过一些分析处理来反映用户的偏好,但数据并不是很准确,并且一些行为分析有很多噪音。但是只要选择了正确的行为特征,隐含的用户反馈也可以得到很好的效果,只是行为特征的选择在不同的应用中可能会有很大的不同。比如电商网站,购买行为其实是一种隐性反馈,可以很好的表达用户的喜好。
推荐引擎可能会根据不同的推荐机制使用部分数据源,然后基于这些数据,分析某些规则或直接预测和计算用户对其他项目的偏好。这样,推荐引擎就可以在用户进入时推荐用户可能感兴趣的项目。
推荐引擎分类
推荐引擎的分类可以基于很多指标,下面我们一一介绍:
推荐引擎是否为不同的用户推荐不同的数据?
根据该指标,推荐引擎可分为基于流行行为的推荐引擎和个性化推荐引擎
这是推荐引擎最基本的分类。事实上,人们讨论的大多数推荐引擎都是个性化推荐引擎,因为从根本上讲,只有个性化推荐引擎才是更智能的信息发现过程。 .
根据推荐引擎的数据来源
其实这里就是如何发现数据的相关性,因为大部分推荐引擎都是基于相似的物品集或者用户推荐的。然后参考图1给出的推荐系统*敏*感*词*,根据不同的数据源发现数据相关性的方法可以分为以下几种:
根据推荐模型的建立
可以想象,在一个拥有大量物品和用户的系统中,推荐引擎的计算量是相当大的。为了实现实时推荐,必须建立推荐模型。推荐模型的建立可以分为以下几种:
事实上,在目前的推荐系统中,很少有推荐引擎只使用一种推荐策略。一般在不同的场景下使用不同的推荐策略来达到最好的推荐效果,比如亚马逊的推荐。它根据用户自身的历史购买数据进行推荐,根据用户当前浏览过的商品进行推荐,根据流行偏好将当前热门商品推荐给不同地区的用户,让用户可以从全方位的推荐中找到适合的商品你真的很感兴趣。
深度推荐机制
本章的篇幅将详细介绍每种推荐机制的工作原理、优缺点和应用场景。
基于人口统计的推荐
基于人口统计的推荐是最容易实施的推荐方法。它只是根据系统用户的基本信息发现用户的相关性,然后将类似用户喜欢的其他物品推荐给当前用户。图 2 显示了此建议的工作原理。
图2.基于人口统计的推荐机制的工作原理
从图中可以清楚地看出,首先,系统对每个用户都有一个用户画像建模,其中包括用户的基本信息,比如用户的年龄、性别等;用户画像计算用户的相似度,可以看到用户A的画像和用户C是一样的,那么系统就会认为用户A和C是相似的用户。在推荐引擎中,他们可以称为“邻居”;最后,根据“邻居”用户组的偏好,向当前用户推荐一些物品,图中将用户A喜欢的物品A推荐给用户C。
这种基于人口统计的推荐机制的好处是:
因为没有使用当前用户对物品的偏好历史数据,所以不存在新用户的“冷启动”问题。该方法不依赖于item本身的数据,因此该方法可以用于不同item的域中,并且是域无关的。
那么这种方法有什么缺点和问题呢?这种根据用户的基本信息对用户进行分类的方法过于粗糙,尤其是在书籍、电影、音乐等对品味要求较高的领域,无法获得很好的推荐效果。也许在一些电商网站,这个方法可以给出一些简单的建议。另一个限制是,这种方法可能涉及到一些与信息发现问题本身无关的敏感信息,例如用户的年龄等,这些用户信息不是很容易获取。
基于内容的推荐
基于内容的推荐是推荐引擎出现之初使用最广泛的推荐机制。其核心思想是根据推荐的物品或内容的元数据发现物品或内容的相关性,然后根据用户过去的喜好进行记录,向用户推荐相似的物品。图3展示了基于内容推荐的基本原理。
图3.基于内容推荐机制的基本原理
基于内容的推荐的典型示例如图 3 所示。在电影推荐系统中,首先我们需要对电影的元数据进行建模。这里我们只简单描述电影的类型;元数据发现电影之间的相似性,因为类型都是“爱情、浪漫”。电影A和C被认为是相似的电影(当然,获得更好的推荐还不够,我们也可以考虑电影导演、演员等);最后,建议实现。对于用户A,他喜欢看电影A,那么系统可以向他推荐类似的电影C。
这种基于内容的推荐机制的优势在于它可以很好地模拟用户的口味并提供更准确的推荐。但它也存在以下问题:
文章需要分析建模,推荐质量取决于文章模型的完整性和综合性。在目前的应用中,我们可以观察到关键词和标签(Tag)被认为是一种简单有效的描述item元数据的方式。物品相似度的分析只依赖物品本身的特征,这里不考虑人们对物品的态度。由于需要根据用户过去的偏好历史进行推荐,因此新用户存在“冷启动”问题。
虽然这种方法有很多缺点和问题,但它已经成功地应用于一些电影、音乐和书籍的社交网站。有的网站还请专业人士对项目进行基因编码,比如Pandora,在一份报告中说,在Pandora的推荐引擎中,每首歌曲都有100多个元数据特征,包括歌曲风格、年份、歌手等。
基于协同过滤的推荐
随着Web2.0的发展,网站促进了用户参与和用户贡献。因此,基于协同过滤的推荐机制应运而生。它的原理很简单,就是根据用户对物品或信息的偏好,找到物品或内容本身的相关性,或者找到用户的相关性,然后根据这些相关性进行推荐。基于协同过滤的推荐可以分为三个子类别:基于用户的推荐、基于物品的推荐和基于模型的推荐。下面我们将一一详细介绍三种协同过滤推荐机制。
基于用户的协同过滤推荐
基于用户的协同过滤推荐的基本原理是根据所有用户对物品或信息的偏好,发现一组与当前用户的口味和偏好相似的“邻居”。一般应用中,计算“K-Nei*敏*感*词*ors”算法;然后,根据这K个邻居的历史偏好信息,为当前用户做出推荐。下图4为*敏*感*词*。
图4.基于用户的协同过滤推荐机制基本原理
上图说明了基于用户的协同过滤推荐机制的基本原理。假设用户A喜欢物品A,物品C,用户B喜欢物品B,用户C喜欢物品A,物品C和物品D;从这些用户的历史偏好信息中,我们可以发现用户A和用户C的品味和偏好比较相似,并且用户C也喜欢项目D,那么我们可以推断用户A可能也喜欢项目D,所以项目D可以推荐给用户A。
基于用户的协同过滤推荐机制和基于人口统计的推荐机制都计算用户的相似度,也计算基于“邻居”用户群的推荐,但两者的区别在于如何计算用户的相似度,基于人口统计机制只考虑用户的特征,而基于用户的协同过滤机制根据用户的历史偏好数据计算用户的相似度。它的基本假设是喜欢相似物品的用户可能相同或相似。口味和偏好。
基于项目的协同过滤推荐
基于物品的协同过滤推荐的基本原理也类似,只不过是利用所有用户对物品或信息的偏好来寻找物品与物品之间的相似度,然后根据用户的历史偏好信息,得出相似的向用户推荐项目。图 5 说明了其基本原理。
假设用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A,从这些用户的历史偏好可以分析出物品A和物品C 相似。喜欢物品A的人喜欢物品C。根据这个数据可以推断用户C很可能也喜欢物品C,所以系统会向用户C推荐物品C。
与上面类似,基于项目的协同过滤推荐和基于内容的推荐实际上都是基于项目相似度预测推荐,只是相似度计算方法不同。前者是从用户的历史偏好中推断出来的,而后者则是基于物品本身的属性特征信息。
图5.基于项目的协同过滤推荐机制基本原理
同时协同过滤,基于用户和基于项目的策略我们应该如何选择?实际上,基于物品的协同过滤推荐机制是亚马逊在基于用户的机制上改进的一种策略,因为在大多数网站中,物品的数量远小于用户的数量,物品的数量是相似度比较稳定,基于项目的机制比基于用户的实时性能要好。但并非在所有场景中都是如此。可以想象,在一些新闻推荐系统中,也许items的数量,即新闻的数量可能大于用户的数量,而且新闻更新的程度也很快,所以它的相似度还是有的不稳定。因此,其实可以看出,推荐策略的选择与具体的应用场景有很大关系。
基于模型的协同过滤推荐
基于模型的协同过滤推荐是基于基于样本的用户偏好信息,训练推荐模型,然后根据实时用户偏好信息预测和计算推荐。
基于协同过滤的推荐机制是当今应用最广泛的推荐机制。它具有以下显着优势:
它不需要对对象或用户进行严格的建模,也不需要对对象的描述是机器可理解的,所以这种方法也是领域无关的。这种方法计算出来的推荐是公开的,可以分享他人的经验,很好的支持用户发现潜在的兴趣和偏好
而且它还存在以下问题:
该方法的核心是基于历史数据,因此对于新项目和新用户存在“冷启动”问题。推荐的效果取决于用户历史偏好数据的数量和准确性。在大多数实现中,用户的历史偏好存储在一个稀疏矩阵中,在稀疏矩阵上的计算存在一些明显的问题,包括少数人的错误偏好可能会对计算的准确性产生很大影响。推荐等。对于一些有特殊品味的用户,我们无法给出好的建议。基于历史数据,在对用户偏好进行捕获和建模后,很难根据用户的使用情况进行修改或进化,这使得该方法不够灵活。
混合推荐机制
当前网站上的推荐往往不是简单地使用某种推荐机制和策略。他们经常混合多种方法来获得更好的推荐结果。关于如何组合各种推荐机制,这里介绍几种比较流行的组合方式。
Weighted Hybridization:使用一个线性公式,根据一定的权重组合几个不同的推荐。具体的权重值需要在测试数据集上反复测试才能达到最佳推荐效果。 Switching Hybridization:前面说过,其实对于不同的情况(数据量、系统运行状态、用户和物品数量等),推荐策略可能会有很大的不同,所以切换Hybridization的方式是允许选择的最适合的推荐机制来计算不同情况下的推荐。 Mixed Hybridization:采用多种推荐机制,向不同区域的用户展示不同的推荐结果。事实上,亚马逊、当当等众多电商网站都采用了这种方式,用户可以获得全面的推荐,也更容易找到自己想要的东西。 Meta-Level Hybridization:采用多种推荐机制,将一种推荐机制的结果作为另一种推荐机制的输入,综合各推荐机制的优缺点,获得更精准的推荐。
推荐引擎的应用
在介绍了推荐引擎的基本原理和基本推荐机制后,下面简要分析几个有代表性的推荐引擎的应用。这里我们选择两个领域:以亚马逊为代表的电子商务和以豆瓣为代表的社交网络。
电子商务中的推荐应用-亚马逊
亚马逊作为推荐引擎的鼻祖,将推荐的思想渗透到了应用的每一个角落。亚马逊推荐的核心是通过数据挖掘算法将用户的消费偏好与其他用户进行比较,从而预测用户可能感兴趣的产品。 对应上面介绍的各种推荐机制,亚马逊采用分区混合机制,展示给不同领域的用户不同的推荐结果。图 6 和图 7 显示了用户可以在亚马逊上获得的推荐。
图6.亚马逊的推荐机制-首页
图7.亚马逊的推荐机制-浏览商品
亚马逊利用网站上所有可以记录的用户行为,根据不同数据的特点进行处理,划分不同区域为用户推送推荐:
值得一提的是,亚马逊在做推荐的时候,设计和用户体验也很独特:
亚马逊利用其大量历史数据来量化推荐原因。
此外,亚马逊的很多推荐都是根据用户的*敏*感*词*计算出来的。用户*敏*感*词*记录了用户在亚马逊上的行为,包括浏览过的商品、购买过的商品、采集中的商品和心愿单等。当然,亚马逊还集成了评分等其他用户反馈方式,这些都是用户反馈的一部分。轮廓。同时,亚马逊提供了允许用户管理自己的*敏*感*词*的功能。这样,用户可以更清楚地告诉推荐引擎他的品味和意图是什么。
社交网站-豆瓣推荐应用
豆瓣是中国相对成功的社交网络网站。形成以图书、电影、音乐、同城活动为中心的多元化社交网络平台。自然推荐的功能必不可少。下面我们看看豆瓣是如何推荐的。
图8.豆瓣的推荐机制-豆瓣电影
当你在豆瓣电影中加入一些你看过或者感兴趣的电影到你看过想看的列表中,并给它们相应的评分,那么豆瓣的推荐引擎就已经给你一些偏好信息了,那么它将显示如图 8 所示的电影推荐。
图 9. 豆瓣推荐机制——基于用户品味的推荐
豆瓣的推荐是通过“豆瓣猜”。为了让用户知道这些推荐是怎么来的,豆瓣还简单介绍了“豆瓣猜”。
“您的个人推荐是根据您的采集和评论自动得出的。每个人的推荐列表都不一样。您的采集和评论越多,豆瓣的推荐就越准确和丰富。
每天推荐的内容可能会发生变化。随着豆瓣的成长,推荐给你的内容会越来越精准。 "
这点让我们清楚的知道豆瓣一定是基于社交协同过滤的推荐。这样,用户越多,用户反馈越多,推荐效果就会越准确。
相比亚马逊的用户行为模型,豆瓣电影的模型更简单,即“看过”和“想看”,这也使得他们的推荐更注重用户的口味,毕竟买东西的动机和看电影还是有很大区别的。
此外,豆瓣也有基于物品本身的推荐。当你查看一些电影的详细信息时,他会向你推荐“喜欢这部电影的人也喜欢的电影”,如图10所示,基于协同过滤应用。
图10.豆瓣的推荐机制——基于电影本身的推荐
总结
在网络数据爆炸的时代,如何让用户更快地找到自己想要的数据,如何让用户发现自己潜在的兴趣和需求,对于电子商务和社交网络应用来说都非常重要。随着推荐引擎的出现,这个问题越来越受到关注。但是对于大多数人来说,可能还在疑惑为什么它总能猜出你想要什么。推荐引擎的神奇之处在于,您不知道引擎在此推荐背后记录和推断的内容。
通过这篇评论文章,你可以了解到推荐引擎其实只是在默默的记录和观察你的一举一动,然后利用所有用户产生的海量数据去分析发现规律,然后慢慢慢慢了解你,你的需求,你的习惯,默默地帮你快速解决问题,找到你想要的。
实际上,回过头来看,很多时候,推荐引擎比你更了解你自己。
通过第一篇文章,相信大家对推荐引擎有了清晰的第一印象。本系列下一篇文章将深入介绍基于协同过滤的推荐策略。在目前的推荐技术和算法中,被广泛认可和采用的方法是基于协同过滤的推荐方法。以其简单的方法模型、低数据依赖、便捷的数据采集、优越的推荐效果,成为大众眼中的“No.1”推荐算法。本文将带你深入了解协同过滤的奥秘,并给出基于Apache Mahout的协同过滤算法的高效实现。 Apache Mahout 是 ASF 的一个相对较新的开源项目。它源自Lucene,建立在Hadoop之上,专注于经典机器学习算法在海量数据上的高效实现。
原文链接为:@126/blog/static/24269713813/
转载于: