什么是推荐引擎?
推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。
你一定用过的推荐引擎:
Amazon/DangDang: 在Amazon或者当当上买书,你是否留意过“您可能也喜欢...", ”买过这本书的人还买过...",“浏览过这本书的人还浏览过...." 等等一系列的推荐。他们是否给你提供了一种便捷的方式,使你能尽快找到你想要的感兴趣的东西。
MTime: 他会根据已以往对电影的评分,给你推荐一些你可能喜欢的电影,并且在不断的“推荐-评分”的过程中,不断的调整对你品味的判断,从而提供更加精准的推荐。
开心网: 他会根据你的Social Network(对你的朋友,朋友的朋友,甚至你在开心网上的任何行为) 进行分析,为你推荐好友,消息等等。
这样类似的推荐系统在Web2.0环境下实在是多的数不胜数。
推荐引擎的分类:
我们确定可以四种主流推荐搜索引擎模式:
1. 个性化的推荐搜索引擎:根据以往的用户行为。
2. 群体行为推荐搜索引擎:根据以往的类似的用户行为;
3. 商品推荐搜索引擎:根据产品本身特点;
4. 以及上述三种的方法的组合。
两个最初级的种类。第一类,商品相关性类,推荐某一商品的相关产品。当用户选择了某商品,我们就推荐她和该商品相关的商品。第二类,用户行为分析类,根据对用户的分析,确定类似的用户。
更进一步的说,主要有2种方法可以找到相似的产品和用户。第一种,基于内容文本的检索,和item相关的内容,特别是文字,可用来计算相似性。第二种,用复合的方法,用划分等级,标签等等用来寻找类似item。对于第二种用户行为的检索,目前采取的办法是,根据包括个人基本资料信息,用户的历史行为,用户好友列表来推荐信息。当然,您也可以结合任何这些搜索item/用户行为和网页内容/复合计算的方式建立一个推荐搜索引擎。
了解具体item和用户空间的规模,对于我们在决定是采用搜索item检索还是采用户行为分析检索有非常大的影响。一般来说,搜索item检索比较适用于用户数量很小的情况。随着用户群的扩大,搜索item分析法需要用户行为分析法来弥补不足。
不断增加的用户信息交互行为提供了大量的可以转化为人工智能的信息。这些交互信息会以评价,博客,标签,用户关系,对某共享共同的兴趣的形式存在。这些信 息曾多得让系统产生信息过载的问题。而现在,我们需要的是一个可以向用户推荐符合用户的兴趣并可以与用户互动的产品信息的搜索引擎。因此,个性化的推荐搜索引擎应运而生。
关于推荐引擎的5个问题 from: 5 Problems of Recommender Systems
2009年一月,在阿姆斯特丹举行了一个名为Recked的活动,活动由Wakoopa和Strands主办,旨在讨论工程师们感兴趣的推荐系统。在活动介绍的内容中,提出了一些公司对于建造有效的推荐系统必须解决的几个问题。
1.缺少数据
或许推荐系统面临的最大问题,是需要大量的数 据,以便能形成有效的推荐。现在能给出最好的推荐的公司正是那些拥有大量数据的公司:google,amazon,Netflix,last.fm ,这并 不是巧合。下图是Recked活动中Strand’s的演示文档,如该图所示,一个好的推荐系统首先需要类目(种类)数据(从目录或者其它形式得到),然 后系统必须捕获并且分析这些用户数据(用户行为),然后,再应用神奇的算法工作。分析越多的类目(种类)和用户数据,系统越有可能生产好的推荐。但是,这 又是一个蛋和鸡的问题:要形成好的推荐,首先需要有大量的用户,这样才能得到大量的推荐数据。
2.不断变化的数据
这个问题由Clicktorch公司(一家做“智能推荐”的公司)的CEO:Paul Edmunds 在ReadWriteWeb网站的评论中指出。他在评论中指出:系统通常偏向于旧的数据而难以有新的改进。
这 方面的一个例子是David Reinke在StyleHop(一个时尚爱好者的社会团体)的博客上写道:“过去的用户形为并不是好的工具,因为趋势总是在不断变化”。很明显,运算方 法将很难或者不可能跟上时尚趋势。时尚-挑战人们-我接受时尚-依靠值得依赖的有时尚意识的朋友和家人,把衣服推荐给他们。
David Reinke说,“类目(种类)推荐行不通,因为有太多的产品属性,而每个属性(比如价钱,颜色,风格,面料,等等)在不同的时候对于消费者的重要程度都是不一样的”,他指出,社会化推荐可能可以“解决”这个问题。
3.不断变化的用户喜好
提出这个问题的仍然是Paul Edmunds,他认为问题在于:今天自己浏览amazon时是会有特定意图的,明天或许会有另一个特定意图。举个典型的例子:有可能某天我会上amazon为自己买本书,但第二天我到amazon的原因可能是要为姐姐找一份生日礼物。
对于用户喜好,推荐系统也可能错误的标注。华尔街杂志2002年有一篇文章“如果TiVo觉得你是个同性恋,这就是把你标注成同性恋的方式”
4.不可预知的类目(事项)
我们都知道,Netflix花100万美元来奖励能提升推荐引擎质量10%的人。我们注意到对于一些古怪(特别)的电影会有一些问题,有一些电影观众对它又爱又恨,比如:大人物拿破仑。这种类型的电影是很难去做推荐的,因为用户对它们会有各种反映而且无法预计。
音乐中就有很多种这样的类型。你能猜出来某个作者同时是卡彭特和金属乐的爱好者吗?Last.fm可能需要这种推荐
5.这个东西是复杂的
我们可以很简明的描述,但是从下面这张Strands的演示PPT截图可以看到,哪怕是最简单的推荐,也需要涉及到非常多的参数和变量(而且我们想象到的这些只涉及到系统表面)
到目前为止,有很多公司都已经建立起了用户满意程度较高的推荐引擎系统—amazon,Netflix,google这些名字跳入脑中。但是相对我们想 到的这些少数成功的案例,还有其它成百上千的网站和应用,都在寻找推荐新产品和新内容给用户的道路上挣扎。的确,在ReadWriteWeb,我们更希望 读者在网站上点击发现更多其它的内容,我们使用很多种插件和方法来达到这个目的,但目前我们并不满意
问题之外
推荐引擎可能发生的问题有很多,比如:给出太多最低级公共属性的推荐;对于长尾的支持不够;只推荐显而易见的内容,等等。
2009年是“Real Time”的一年,我们当然还需要谈谈实时推荐引擎
Baynote 是众多的推荐技术提供商 之一,也允许它的产品被贸易公司所使用。Baynote的特点在于它强调实时的用户行为分析,这也是它声称 超越“亚马逊–第一代推荐引擎”的技术。到目前为止,我们知道有很多致力于推荐引擎的公司,例如amazon和netflix,他们采用不同的创意和方 法来搭建推荐引擎。
Baynote专注于分析当前的团体行为用来产生推荐,它故意弱化对于过去用户行为的分析,比如:page views和购买历史。Baynote观察用户在网站实时的行为,并且希望从中得到隐藏的,自然发生的形为数据。 Baynote用到群体的智慧和相似度引擎(我觉得翻译成亲和力引擎也许更适当一点)来分析数据。这些被用来分析的公共形为包括网页跟踪,搜索 Query,鼠标移动,在网页停留时间,网页浏览行为。
关于Baynote是怎么来定义 communities(我觉得这个不要翻译可能更好理解一点,大体是用户群的意思)。基本上,系统会把用户分成若干个群和相应的子群体。以照相机为 例,Jia解释说,照相机可以被分成很多类别和子类。与之对应的,有一个nikon相机的用户群,同时有一个“高端nikon相机”的子群体,等等。
Baynote的UseRank关注于用户在某个网站的行为(而不是只关注链接)
Baynote更关注发生在页面上的行为。举个例子,如果用户点击了顶端的推荐内容,但是马上又退回了(比如点击“后退 ”),Baynote推荐引擎会记录用户这一次拒绝推荐内容的行为。但是如果在页面上进行浏览(比如滚动页面),选中某些内容,等等,那么会认为这是一次 有意义的记录(正向的衡量)。Baynote不仅跟踪点击,同时也跟踪页面形为。这种方式会使包括Disney在内的其它零售网站销量增长。