# Google 给搜索引擎加入了一个有「常识」的算法

- 作者：方嘉文
- 发布时间：2019-10-31 18:10
- 分类：产品
- 原文：https://www.ifanr.com/1276196

![](https://s3.ifanr.com/wp-content/uploads/2019/10/dims-10.jpeg)

在阅读英语文章时，最让你挠头的是什么？

遇到一词多意时不知道该选哪个解释？还是长句里难以梳理的信息结构？

Google 搜索引擎其实也跟你一样挠头。

为了「照顾」Google 搜索引擎，很多人在搜索时会用「关键词搜索法（keyword-ese）」—— 只输入关键词，不使用完整的句子。

譬如，有人会在搜索栏里输入[「痣」「臀部」「癌症」](https://www.urbandictionary.com/define.php?term=keyword-ese)，其实他想问的是「我屁股上的痣是不是癌症的征兆？」

![](https://s3.ifanr.com/wp-content/uploads/2019/10/neringa-sidlauskaite-XncszFVfqhE-unsplash.jpg)

▲ 图自 Neringa Šidlauskaitė via [Unsplash](https://unsplash.com/photos/XncszFVfqhE)



最近，Google 为搜索引擎引入了一个名为[「BERT（Bidirectional Encoder Representations from Transformers）」](https://www.blog.google/products/search/search-language-understanding-bert/)的机器学习算法，帮助前者更好地理解用户在搜索栏提出的问题。

### 引擎更新后有什么改变？

简单来说，加入 BERT 后的 Google 搜索引擎，能够更好地理解接近自然对话的长句子，因为它能更好地分析了解句子中单词间的关系。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/1-24.jpg)

▲ 图片来自 [Unsplash](https://unsplash.com/photos/lMiYuow_KZE)

和传统算法不同的是，BERT 在分析词语时，并不是依次从左到右或从右到左地逐词分析，而是借助 Google 研发的 Transformer 模型并行分析词语在整个句子中的关系。

譬如，如果搜索「math practice books for adults（给成年人的数学练习册）」，更新前的搜索返回结果会将「adults（成年人）」变为「young adults（年轻人）」，更新后则不会这样。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/Query_MathPracticeBooksForAdults.max_2000x2000.jpg)

此外，在介词对整个句子意思影响较大的情况下，加入 BERT 后的理解能力也明显优于从前。

搜索「2019 Brazil traveler to usa need a visa（2019 巴西旅客到美国需要签证）」，在更新前，搜索引擎没有将「to」考虑在内，更多返回了美国旅客到巴西旅行的信息。加入 BERT 后，「to」则没有被忽略。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/Query_2019BrazilTravelerToUSANeedAVisa.max_1000x1000.jpg)

对于这次更新，Google 副总裁 Pandu Nayak 在官方博文中[称之为](https://www.blog.google/products/search/search-language-understanding-bert/)「代表了五年里最大的跨越，也是搜索历史上其中一个最大的改进」。

目前，BERT 已经应用到 Google 搜索的英文版中，未来还将扩展到更多不同语言版本。

### BERT 或能让算法更会「聊天」

[据《Fastcompany》报道](https://www.fastcompany.com/90422132/google-just-got-better-at-understanding-your-trickiest-searches)，为了训练 BERT，Google 向其输入了 11038 本未经标注的书籍文本和合计 25 亿字来自维基百科英文版的内容。

而且，研究人员还随机「掩盖」了文本里的单词，让算法模型自行想法子「填空」。

学习完所有文本后，算法开始找到一些在同一文本中经常出现的句子和词语规律，建立了对词语的基本理解，而且还似乎开始「明白」词语背后所代表的事物之间存在的关系，这就像一种「常识」。

举个例子，从前如果在 Google 里搜「do estheticians stand a lot at work（美容师在工作中需要站很久吗）」，搜索引擎会将「stand（站）」这个词语套入「stand-alone（独立）」的意思，因此无法返回搜索者想要的信息。

加入 BERT 后，搜索引擎则能理解，用户所指的是「站立」的动作，再进一步，也可扩大理解为「美容师这个职业的体力劳动量」。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/Query-DoEstheticiansStandALotAtWork.max-1000x1000.jpg)

> 在处理过程中，系统需要表述它所理解的词语意思，还有句子的结构以及整体内容。结果就是，从某个程度来说，它对语言有一定了解。
> 
> 这挺奇怪的，因为它对现实世界一无所知。它看不到，听不到，什么都没有。

人工智能科学家 Yann LeCun [说道](https://www.fastcompany.com/90398860/facebook-is-teaching-computers-the-fine-art-of-conversation)。作为 Facebook 的副总裁，LeCun 带领着团队，通过对 BERT 进行优化，并输入更大批量的学习资料，研发出了他们的自有模型「RoBERTa」。Google 原有的 BERT 准确率为 80.5%，而 RoBERTa 则可做到 88.5%。

但为什么 Facebook 也要研究这个？

如果说当搜索引擎能够更好地理解用户输入的自然语言，反馈更有帮助的内容，那这个改进移植到智能语音助手上也是可预见的。

和很多科技巨头公司一样，Facebook 也在研发智能语音助手，提升算法对自然语言的处理能力也是必须。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/facebook-portal-review-ultrawide-1-2560x1507.jpg)

▲ Facebook 今年宣布将为 Portal 研发语音助手，图自 [Digital Trends](https://www.digitaltrends.com/smart-home-reviews/facebook-portal-review/)



但在语音助手之前，他们先从相对简单的文本对话入手，做了聊天机器人，而且准备在 RoBERTa 的基础上扩展更多功能，让算法和人聊起天来更自然。

据 LeCun 介绍，很多聊天机器人都会[「把天聊死」](https://www.fastcompany.com/90398860/facebook-is-teaching-computers-the-fine-art-of-conversation)。

譬如，很多机器人讲话会自相矛盾。

前一分钟可能和你说「XXX 的新单太棒了，赶紧一起去打榜」，下一分钟就说「追星的人都是傻的」。这主要是因为它们背后是一个固定的数据库，收到特定的关键词就会调出对应回答。而那些真的是自己生成答案的机器人，又会为了规避自相矛盾而用模糊的答案来回应人，显得冷冰冰。

![](https://s3.ifanr.com/wp-content/uploads/2019/10/1_m9IJdAYW04MYh75ivpwUNA.png)

此外，现有聊天机器人大多知识领域很局限。一旦聊天的人改了话题，聊到它不认识的，机器人就接不下话了。

为此，Facebook 现在正向自己的算法输入来自各种领域的大批量信息，并尝试将这些信息以更自然的方式加入对话中。

未来，他们还计划教导机器人「引导话题」—— 当聊天者将话题扯到比较泛的领域时，将内容拉回到特定任务上。

> 我们相信，我们已经很接近创造出一个能和人们聊得下去的机器人。

Facebook 研究人员 Jason Weston 告诉《Fastcompany》。在那天到来之前，希望我能练就出不被聊天机器带跑的技能。

题图来自 [Engadget](https://www.engadget.com/2019/06/07/google-search-top-results-update/)
