谷歌人工智能算法RankBrain运行原理解析

1072 查看

近日,新闻爆料说谷歌正在使用一个机器学习人工智能系统“RankBrain”来对搜索结果排序。想知道它的工作原理以及如何在谷歌排序系统上运行吗?以下是我们对RankBrain的全部了解。

下面的信息来自于三个不同的地方。第一个,Bloomberg story,昨天发布了谷歌RankBrain的新闻(也可以看看我们写的文章)。第二个,谷歌目前直接提供给Search Engine Land的其他信息。第三个,我们自己的知识,和对谷歌没有回答的问题的猜测。在必要时,我们要明确任何一个来源不会作为背景资料使用。

什么是RankBrain?

Bloomberg报道说,RankBrain是一个谷歌机器学习人工智能系统的名称,用于帮助处理搜索结果,这得到了谷歌的肯定。

什么是机器学习?

机器学习是计算机教自己如何处理事情,而不是由人类告知或是遵循固定的程序。

什么是人工智能?

真正的人工智能,或简称AI,是计算机能和人类一样聪明,至少在获取知识方面,通过学习或者建立在知识库的基础上得到新的联系。

当然,真正的AI只存在于科幻小说里。事实上,AI是设计成能够学习和做出联系的计算机系统。

AI与机器学习有什么不同呢?就RankBrain而言,给我们的感觉好像是它们是等同的。你可能会听到它们交替使用,或是听到使用机器学习来描述人工智能方法的使用。

那么RankBrain是谷歌Ranks搜索结果的新方式吗?

不,RankBrain只是谷歌众多搜索算法的一部分,它是一套计算机程序,能把知识库中上十亿个页面进行排序,然后找到与特定查询最相关的结果。

谷歌搜索算法的名字是什么?

我们过去报道过,它叫做蜂鸟( Hummingbird)。许多年来,整个算法没有一个正式的名称。但在2013年中,谷歌对这个算法进行了彻底检修,并命名它为蜂鸟。

那么RankBrain是谷歌蜂鸟搜索算法的一部分么?

这是我们的理解。蜂鸟是整个搜索算法,就好比车里面有个引擎。引擎本身可能由许多部分组成,比如滤油器,燃油泵,散热器等。同理,蜂鸟也由多个部分组成,RankBrain就是其中一个最新组成部分。

特别指出,我们知道RankBrain是整个蜂鸟算法的一部分是因为Bloomberg文章明确指出RankBrain不能处理所有的搜索,只有整个算法可以。

蜂鸟同时包含其他的部分,这些名字对SEO圈的人来说已经耳熟能详了,比如Panda, Penguin和 Payday,用于垃圾邮件过滤, Pigeon用于优化本地结果, Top Heavy用于给广告太多的页面降级,Mobile Friendly用于给移动友好型页面加分,Pirate用于打击版权侵犯。

我认为谷歌算法曾被称为PageRank

PageRank是整个蜂鸟算法的一部分,它使用特定的方式给网页信用排序,基于其他页面指向此页面的链接来计算。

PageRank比较特别,因为它是谷歌有史以来给它的排序算法赋予的第一个名字,这个名字早在1998年谷歌创立的时候就有了。

谷歌用于排序的“信号”是什么?

谷歌使用信号来决定如何为网页排序。比如,它会读取网页上的词语,那么词语就是一个信号。如果某些词语是粗体,那么这又是一个值得注意的信号。计算的结果作为PageRank的一部分,给一个网页设定一个PageRank分数,这作为一个信号。如果一张网页被检测到是移动友好型的,那么这又会成为一个信号。

所有的这些信号都由蜂鸟算法中的各个部分处理,最后决定针对不同搜索返回哪些网页。

一共有多少种信号?

谷歌称进行评估的主要排序信号大约有 200多种,反过来, 可能有上万种变种信号或者子信号。但通常是说几百种,正如昨天Bloomberg文章中说的那样。

如果你想有一个更直观的排序信号向导,来看看我们的SEO成功因素元素周期表

我们认为这是个非常好的向导,说明了类似谷歌的搜索引擎对网页排序使用的东西。

RankBrain是第三个最重要的信号?

没错。这个新的系统突然冒出来,已经成为网页排序第三个最重要的因素。以下摘自Bloomberg 文章

Corrado说,RankBrain是上百个信号中的一个,用于在算法中决定哪些结果该展示在谷歌搜索页面,该排在第几位。他还表示,在RankBrain部署的这几个月里,它已经成为为搜索查询提供结果的第三个最重要的信号。

第一和第二个最重要的信号是什么?

我们询问了两次,但是谷歌还是不愿意告诉我们第一和第二个最重要的信号是什么。

这很烦人而且有点误导人。Bloomberg文章也不出意外没能得到答案。谷歌想要提高一些性能需求来作为机器学习的突破。

但是真正评估这种突破,有助于了解谷歌现在使用的其他最重要的因素,包括被RankBrain超过的因素。这就是为什么谷歌要来解释这些因素来衬托前两个最重要的信号的性能。

顺便提一下,我个人猜测链接仍然是最重要的信号。谷歌以投票的形式统计这些链接。这也是一个非常老的系统,我在以前的一篇文章里做了介绍:The Broken “Ballot Box” Used By Google & Bing

至于第二个最重要的信号,我认为是“词语”,词语将会包含一切信息,从网页上的词语到RankBrain分析之外的人们字搜索框输入的关键字。

RankBrain到底做什么?

从与谷歌的来往电子邮件之中,我了解到RankBrain主要用于翻译人们可能不清楚该输入什么确切词语的搜索词条。

难道谷歌之前没有处理没有确切查询词条的方式吗?

有,谷歌很早就找到不根据具体词条搜索页面的方式。比如,许多年前,如果你输入“鞋”(shoe),谷歌可能不会找到那些有“鞋”(shoes)的页面,因为从技术上来说这是两个不同的词汇,但是“stemming”使得谷歌变得更聪明,让引擎了解shoes的词根是shoe,就像“running”的词根是“run”。谷歌同样了解同义词,因此,如果你搜索“运动鞋”,它可能知道你想找“跑鞋”。它甚至有概念性的知识,知道哪些网页是关于“苹果”公司,哪些是关于水果“苹果”的。

Knowledge Graph是什么?

Knowledge Graph在2012年推出,使谷歌在处理词汇关联方面更出色。更重要的是,谷歌说它学会如何搜索事物而不是苍白的字符串。

字符串意味着只按照字符串本身搜索,比如搜索匹配“Obama”字符串的网页。而事物则是谷歌知道当某人搜索“Obama”的时候,他们可能想找的是美利坚总统巴拉克奥巴马,一个与其他人物和事物关联的实实在在的人物。

Knowledge Graph是一个事实数据库,包含世上万物的内在联系。这就是为什么当你输入“when was the wife of obama born”的时候,你可以在下面看到关于米歇尔奥巴马的信息,而不需要特定输入她的名字:

RankBrain如何帮助提炼搜索?

谷歌目前提炼搜索的方法一般都是由人工处理,无论是创建词干列表或者同义词列表或者创建事物关联数据库。当然,这其中有一些自动化的操作,但是很多时候都是靠人工来完成。

问题是,谷歌每天要处理30亿条搜索。2007年,谷歌表示,有20%至25%的搜索是从来没见过的。2013年这个数字降至15%,,这也引用在了昨天的Bloomberg 文章中,我们也得到了谷歌的重新证实。但是30亿之中,15%的从未搜索过的词条仍然是非常大的数目——每天4.5亿条。

这些可能是很复杂的搜索,多字查询,或者是“long-tail”查询。RankBrain旨在帮助更好地解释这些查询,并有效地翻译它们,通过查询关键字背后的信息,找到最合适的网页。

谷歌告诉我们,它可以观察到看似无关复杂搜索之间的模式,并理解它们实际上是如何彼此关联的。这种学习方式,又让它更好地理解未来复杂搜索,以及知道它们是否与特定主题相关。最重要的是,它还可以将这些搜索组与它认为最匹配的搜索结果关联起来。

谷歌并没有给出搜索组的例子,也没详细说明RankBrain如何猜到哪些是最匹配的页面。后者可能是因为如果它可以将模糊搜索转化成某些更具体的东西,那么它就可以得到更好的答案。

来看看一个例子?

虽然谷歌并没有给出搜索组的例子,但是Bloomberg文章里有一个单个搜索的例子,假设得到了RankBrain的帮助。如下:

What’s the title of the consumer at the highest level of a food chain

像我这样的外行,“consumer”听起来像是买东西的人。然而,这也是个科学术语,表示消耗食物的东西。在食物链中同样有不同等级的消费者。最高等级的消费者?就叫做“捕食者”(predator)。

把这个输入谷歌中,我们得到了不错的答案,虽然这个查询语句本身看起来十分古怪:

现在来看看搜索“top level of the food chain”的结果相似性,如下:

设想下,RankBrain将原本那条冗长且复杂的查询关联到了这条更短的上面,这可能是最常见的做法。它知道它们非常相似。所以结果是,谷歌可以利用它所知的一切,从更常见的查询中寻找答案,然后将它提供给不常见的查询。

我要强调,我并不知道RankBrain关联了这两条查询。我只知道谷歌给出了第一个例子。而这只是对RankBrain如何将不常见搜索与常见搜索联系来提高搜索质量的一种说明而已。

Bing使用RankNet同样可以达到这种效果吗?

回到2005年,微软开始使用自己的机器学习系统,名叫RankNet,如今已是Bing搜索引擎的一部分。事实上,RankNet的首席研究员和创始人最近才被肯定。但这些年来,微软几乎没有谈到RankNet。

你可以打赌,这将有可能改变。有趣的是,当我在Bing中输入同样的词条的时候,Bing得到了不错的结果,其中一条与谷歌返回的结果一致。

一条查询并不意味着Bing的RankNet和谷歌的RankBrain同样出色,反之亦然。不幸的是,很难拿出一份清单来做这种比较。

还有更多的例子吗?

谷歌的确给出了一个新的案例:“How many tablespoons in a cup?”谷歌表示,对来自于澳大利亚和美国搜索会有不同的结果,因为两个国家的度量标准不同,尽管名称类似。

为了测试这点,我在Google.com和澳大利亚版本的Google上分别搜索。我并没有发现太多的不同。即使没有RankBrain,结果通常会不同,仅仅因为使用“老土”的方式,从澳大利亚网站中为使用澳大利亚版本Google搜索的用户呈现页面。

RankBrain真的有帮助吗?

尽管我上面给出的两个例子不足以说明RankBrain的强大,但我确实相信它可能正在产生巨大的影响,正如谷歌宣称的那样。谷歌在选择什么算法来排序方面相当保守。谷歌总是在做小测试。但是当对此算法有很大信心时,使用这个算法会带来极大的突破。

整合RankBrain,把它作为第三个最重要的信号,是一个巨大的变化。我认为,如果它没有帮助的话谷歌也不会使用它。

RankBrain什么时候开始的?

谷歌告诉我们,在2015年初的时候就在逐步推出RankBrain,现已全面部署了好几个月了。

哪些查询受到影响?

谷歌告诉Bloomberg说,有相当一部分的查询将由RankBrain来处理。我们询问具体数字,但还是得到同样的答案。

RankBrain一直在学习吗?

谷歌说,RankBrain所有的学习都是离线完成的。输入多批次历史搜索记录,然后学习使用这些数据做出预测。

测试这些预测,如果预测效果准确,那么学习之后的RankBrain版本就上线。然后离线学习测试的过程重复进行。

RankBrain除了做查询优化还做了其他的吗?

通常情况下,一条查询如何优化的——无论是通过提取词根,同义词还是RankBrain——不会作为排序因素或信号。

信号是绑定内容的典型因素,比如网页上的词语,指向页面的链接,网页是否部署在安全的服务器上等。它们也可以绑定用户,比如用户地理位置信息或搜索浏览历史。

那么当谷歌提及RankBrain是第三个最重要的信号时,它真的是一个排序信号吗?是的,谷歌再次确认说,他们有一个组件,RankBrain以某种方式直接来计算网页的排名。

具体如何做的呢?是否有某种“RankBrain分数”的因子可能来评估网页质量呢?有可能吧,但RankBrain似乎更可能基于网页包含的内容以某种方式帮助谷歌更好地分类页面。RankBrain可能比谷歌已有的系统更好地总结网页内容。

或许也不是这样,谷歌只是说有某种排序组件。

我怎么了解RankBrain更多的信息?

谷歌告诉我们说,如果想要了解词语“向量”——单词和短语用数学连接的方式——应该看看这个 博客,这篇博客讲述了系统(文章中没有说明是RankBrain)如何仅仅通过扫描新闻学习到国家的省会城市:

有一篇更长的研究论文,基于 此。你可以使用谷歌的 word2vec工具玩转自己的机器学习工程。另外,谷歌有 一整块区域是关于人工智能和机器学习论文的,微软 也一样。

原文链接:FAQ: All About The New Google RankBrain Algorithm(译者/刘翔宇 审校/刘帝伟、朱正贵 责编/周建丁)

关于译者:刘翔宇,中通软开发工程师,关注机器学习、神经网络、模式识别。