更新时间:2024-06-13 15:11
推荐引擎,是主动发现用户当前或潜在需求的定律,并主动推送信息给用户的信息网络。挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的对象。
推荐引擎,是主动发现用户当前或潜在需求,并主动推送信息给用户的信息网络。
具体来说,推荐引擎综合利用用户的行为、属性,对象的属性、内容、分类,以及用户之间的社交关系等等,挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的对象。
推荐引擎不是被动查找,而是主动推送;不是独立媒体,而是媒体网络;不是检索机制,而是主动学习。
推荐引擎利用基于内容、基于用户行为、基于社交关系网络等多种方法,为用户推荐其喜欢的商品或内容。
基于用户行为的推荐则是利用群体智慧算法,分析用户的群体行为,综合分析用户与用户之间的相似度、用户对小众商品的个性化需求,从而同时提高推荐的精准性、多样性与新颖性。
基于社交关系网络的推荐是通过分析用户所在的社交关系网络,找到其最能够影响到的用户,或者最能够影响到该用户的用户,再综合每位用户的个性化偏好进行推荐。
个性化推荐能够帮助购物网站解决以下问题:(1)提高用户购物体验,提高转化率和增加用户黏度;(2)加速用户从浏览到购买的过程;(3)挖掘用户潜在需求,提高用户购买的品类数和多样性。
推荐引擎广告,是通过洞察用户消费意图,匹配最优广告,在大量媒体上实时呈现,来提高广告效率的互联网新技术。
1995年3月,卡耐基.梅隆大学的Robert Armstrong等人在美国人工智能协会上提出了个性化导航系统Web Watcher; 斯坦福大学的Marko Balabanovic等人在同一会议上推出了个性化推荐系统LIRA;
1995年8月,麻省理工学院的Henry Lieberman在国际人工智能联合大会(IJCAI)上提出了个性化导航智能体Litizia;
1996年, Yahoo 推出了个性化入口My Yahoo;
1997年,AT&T实验室提出了基于协同过滤的个性化推荐系统PHOAKS和Referral Web;
1999年,德国Dresden技术大学的Tanja Joerding实现了个性化电子商务原型系统TELLIM;
2000年,NEC研究院的Kurt等人为搜索引擎CiteSeer增加了个性化推荐功能;
2001年,纽约大学的Gediminas Adoavicius和Alexander Tuzhilin实现了个性化电子商务网站的用户建模系统1:1Pro;
2001年,IBM公司在其电子商务平台Websphere中增加了个性化功能,以便商家开发个性化电子商务网站;
2007年,Taboola在以色列成立,利用其专业推荐引擎服务于全球顶尖的内容商与出版商如《今日美国》、《赫芬顿邮报》、《时代》和《The Weather Channel》(天气频道)和Business Insider等网站。2015年获得百度的数百万美元的战略投资。
2009年,百分点科技推出专业推荐引擎技术平台,这是一家专业的推荐引擎技术与服务提供商。
2011年,浪淘金CEO周杰提出在全网使用“推荐引擎”技术。
先将推荐引擎看作黑盒,它接受的输入是推荐的数据源,一般情况下,推荐引擎所需要的数据源包括:
要推荐物品或内容的元数据,例如关键字,基因描述等;
系统用户的基本信息,例如性别,年龄等;
用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。其实这些用户的偏好信息可以分为两类:
(1)显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。
(2)隐式的用户反馈:这类是用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。
显式的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价,而隐式的用户行为,通过一些分析和处理,也能反映用户的喜好,只是数据不是很精确,有些行为的分析存在较大的噪音。但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果,只是行为特征的选择可能在不同的应用中有很大的不同,例如在电子商务的网站上,购买行为其实就是一个能很好表现用户喜好的隐式反馈。
推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算。这样推荐引擎可以在用户进入的时候给他推荐他可能感兴趣的物品。
1、推荐引擎是不是为不同的用户推荐不同的数据,根据这个指标,推荐引擎可以分为基于大众行为的推荐引擎和个性化推荐引擎。
(1)根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。
(2)个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。
这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。
2、根据推荐引擎的数据源
其实这里讲的是如何发现数据的相关性,因为大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行推荐。那么参考给出的推荐系统原理图,根据不同的数据源发现数据相关性的方法可以分为以下几种:
(1)根据系统用户的基本信息发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)
(2)根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)
(3)根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。
3、根据推荐模型的建立方式
可以想象在海量物品和用户的系统中,推荐引擎的计算量是相当大的,要实现实时的推荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为以下几种:
(1)基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。
(2)基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于这些规则给用户进行推荐。
(3)基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。
其实在推荐系统中,很少有只使用了一个推荐策略的推荐引擎,一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果,例如 Amazon 的推荐,它将基于用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当下比较流行的物品都在不同的区域推荐给用户,让用户可以从全方位的推荐中找到自己真正感兴趣的物品。
基于人口统计学的推荐
基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。
从图中可以很清楚的看到,首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品,图中将用户 A 喜欢的物品 A 推荐给用户 C。
这种基于人口统计学的推荐机制的好处在于:
(1)因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。
(2)这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。
那么这个方法的缺点和问题是什么呢?这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。可能在一些电子商务的网站中,这个方法可以给出一些简单的推荐。另外一个局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。
基于内容的推荐
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。
图中给出了基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。
这种基于内容的推荐机制的好处在于它能很好的建模用户的口味,能提供更加精确的推荐。但它也存在以下几个问题:
(1)需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度。在应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。
(2)物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。
(3)因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。
虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点,有些站点还请专业的人员对物品进行基因编码,比如潘多拉,在一份报告中说道,在潘多拉的推荐引擎中,每首歌有超过 100 个元数据特征,包括歌曲的风格,年份,演唱者等等。
基于协同过滤的推荐
随着 Web2.0 的发展,Web 站点更加提倡用户参与和用户贡献,因此基于协同过滤的推荐机制因运而生。它的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。基于协同过滤的推荐可以分为三个子类:基于用户的推荐(User-based Recommendation),基于项目的推荐(Item-based Recommendation)和基于模型的推荐(Model-based Recommendation)。下面我们一个一个详细的介绍着三种协同过滤的推荐机制。
混合的推荐机制
在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。关于如何组合各个推荐机制,这里讲几种比较流行的组合方法。
(1)加权的混合(Weighted Hybridization): 用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
(2)切换的混合(Switching Hybridization):前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。
(3)分区的混合(Mixed Hybridization):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。
(4)分层的混合(Meta-Level Hybridization): 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。
2011年9月,浪淘金周杰正式提出“推荐引擎”和“推荐引擎广告”的概念,并宣布将在目前合作的媒体使用该技术,最大程度上提升广告的效率。周杰预言,在推荐时代,无论用户在任何页面,他所需要的信息就在他面前。
推荐引擎技术已经应用在生活的方方面面。
1. 电子商务平台的站内推荐
随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化推荐引擎应运而生:为客户推荐商品,自动完成个性化选择商品的过程,满足客户的个性化需求,推荐基于:网站最热卖商品、客户所处城市、客户过去的购买行为和购买记录。
推荐引擎在网站是以站内推荐栏为最终体现形式,推荐栏展示的内容都是根据推荐引擎精准分析每个用户的兴趣偏好而智能推荐的。不同用户、不同时间点,每位用户看到推荐栏内容都是不一样的,都是最符合其当前兴趣偏好和需求的。图例如下方的图,百分点推荐引擎在购物网站列表页、商品详情页、购物车页面构建智能商品推荐栏。
2. 搜索结果智能匹配
表现方式:”您是不是要找“等等。
3. 相关新闻链接
表现方式:相关新闻收集等。
4. 微博、社区、SNS等的站内推荐
表现方式:”您可能认识的“,”可能认识的人“,”他们也关注了“等等。
5. 输入法
表现方式:简写联想等。
6. 视频/音乐
表现方式:”推荐视频“,”你可能喜欢“等等。