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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

摘要:谷歌正在使用一个机器学习人工智能系统“RankBrain”,用于帮助处理搜索结果。本文介绍了RankBrain的的工作原理以及其如何在谷歌排序系统上运行。


近日,新闻爆料说谷歌正在使用一个机器学习人工智能系统“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工具玩转自己的机器学习工程。另外,谷歌有 一整块区域是关于人工智能和机器学习论文的,微软 也一样。



原文发布时间为:2015-11-05

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
8天前
|
算法 Java 数据库
理解CAS算法原理
CAS(Compare and Swap,比较并交换)是一种无锁算法,用于实现多线程环境下的原子操作。它通过比较内存中的值与预期值是否相同来决定是否进行更新。JDK 5引入了基于CAS的乐观锁机制,替代了传统的synchronized独占锁,提升了并发性能。然而,CAS存在ABA问题、循环时间长开销大和只能保证单个共享变量原子性等缺点。为解决这些问题,可以使用版本号机制、合并多个变量或引入pause指令优化CPU执行效率。CAS广泛应用于JDK的原子类中,如AtomicInteger.incrementAndGet(),利用底层Unsafe库实现高效的无锁自增操作。
理解CAS算法原理
|
3天前
|
存储 算法 安全
基于红黑树的局域网上网行为控制C++ 算法解析
在当今网络环境中,局域网上网行为控制对企业和学校至关重要。本文探讨了一种基于红黑树数据结构的高效算法,用于管理用户的上网行为,如IP地址、上网时长、访问网站类别和流量使用情况。通过红黑树的自平衡特性,确保了高效的查找、插入和删除操作。文中提供了C++代码示例,展示了如何实现该算法,并强调其在网络管理中的应用价值。
|
27天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
149 30
|
7天前
|
存储 监控 算法
企业内网监控系统中基于哈希表的 C# 算法解析
在企业内网监控系统中,哈希表作为一种高效的数据结构,能够快速处理大量网络连接和用户操作记录,确保网络安全与效率。通过C#代码示例展示了如何使用哈希表存储和管理用户的登录时间、访问IP及操作行为等信息,实现快速的查找、插入和删除操作。哈希表的应用显著提升了系统的实时性和准确性,尽管存在哈希冲突等问题,但通过合理设计哈希函数和冲突解决策略,可以确保系统稳定运行,为企业提供有力的安全保障。
|
1月前
|
存储 算法
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论学习打下基础。 在很多的自动化控制领域。都会遇到PID控制算法,这种算法具有很好的控制模式,可以让系统具有很好的鲁棒性。 基本介绍 PID 深入理解 (1)闭环控制系统:讲解 PID 之前,我们先解释什么是闭环控制系统。简单说就是一个有输入有输出的系统,输入能影响输出。一般情况下,人们也称输出为反馈,因此也叫闭环反馈控制系统。比如恒温水池,输入就是加热功率,输出就是水温度;比如冷库,
257 15
|
30天前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
51 3
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法及应用
探索人工智能中的强化学习:原理、算法及应用
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
87 2
|
10天前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

推荐镜像

更多