打开搜索引擎,不知道输入什么词才能找到自己需要的信息?比如明明心里的问题是“今天会下雨吗?”,但是打开谷歌搜索,输入的关键词是“今天的降雨概率”。
为了让搜索引擎了解问题,大多数人在使用谷歌搜索时,往往会放弃口语化的词语,转而输入几个简单的关键词,久而久之这已经成为一种习惯性的搜索习惯。如果你不这样做,谷歌就无法理解关键词,也就无法成功搜索到你需要的信息。
但是,如果你看一下实际的对话片《谷歌助手预约去发廊理发》,你会发现谷歌其实已经具备了像人类一样理解口语对话并流利回复的能力,而这种能力在2019年BERT自然语义算法推出后使用谷歌搜索信息时也可以获得类似的体验。
号称能理解人类语言的 BERT 演算法
BERT算法有一个深奥的全称:来自变压器的双向编码器表示法,用中文从字面上看还是很难理解的。
但简单来说,它可以帮助计算机更好地理解人类语言。当应用于搜索引擎时,它可以仔细识别搜索字符串的每个单词,然后根据其前后单词之间的关系(上下文)理解整个搜索字符串的含义。而且,与前一个或后一个词不同,BERT算法将前一个和后一个词纳入语义指代,因此可以更准确地确定用户搜索字符串的意图/目的。
BERT算法刚推出的时候,在美国用英文搜索的时候有10%左右的搜索结果受到影响,也就是每10个搜索中就有一个受到影响,所以被称为继2015年RankBrain推出之后,目前Google算法史上最大的变化,被誉为影响Google排名的第三大因素。除了英语之外,逐渐被推至其他搜索语言。
00-101010
BERT 演算法背后的原理
自然语言是指“人类自然说出的语言”,因为在正常情况下,人类能够理解对方的意思,是因为在交谈中有语境可以参照(当然,偶尔可能会出现交流障碍)。但是计算机很难理解自然语言。自然语言处理(NLP)是一种用于帮助计算机理解人类自然语言的技术。
以汉语为例,因为汉语句子和英语句子不一样,用空格分隔单词,很容易因断句方式不同而产生不同的意思。所以中文自然语言处理至少要做两件事,第一是把句子拆成词来理解单个意思,第二是分析意思,包括整个句子的语法和语义解释。
比如“他有绘画天赋”和“他放下才能得到”这两句话,虽然都有“天赋”,但两句话的断句方式不同,“天赋”在这两句话中的含义也不同。研究人员会从大量相似的句子中做出这样的句子,让计算机学习。后来,当“天赋”这个词再次出现时,计算机就可以学会根据上下文判断,并做出合适的句子。
自然语言处理会因语言不同而遇到不同的问题。在中文中,处理“句子切分”是一个很大的挑战。图//Pixabay
1. 让电脑听懂「人话」:自然语言处理
但是单词那么多,怎么让电脑学会?最常见的方式是将单词转化为“单词向量/单词嵌入”。简单来说就是用一系列的数字代表单词,让计算机更好的理解单词之间的关系。每个词都有一组数字,这些数字是比较大量上下文的统计结果,可以用来比较词与词之间的关系。
词义越接近,词向量越接近。比如“蝴蝶”和“飞翔”之间的向量距离比“攀爬”之间的向量距离更近。而且随着数据量的增加,统计也会相应调整,所以词与词之间的关系可以越来越准确。这样,计算机就可以通过收集大量的数据和统计来自主学习,根据统计数据处理语言,不需要语言学知识。
回到BERT,最初,研究人员开发了许多不同的语言理解处理模型,每个模型都有特定的功能,处理特定类型的语言理解,例如,有些负责分词,有些负责分析语法,有些负责情感分析。厨房里好像有各种各样的工具,切水果的水果刀,开红酒的开瓶器,各司其职。伯特就像一把瑞士刀,单手就能满足各种功能需求。BERT可以处理大多数自然语言处理问题,因此不再需要使用多种语言来理解处理模型,这也是Google将BERT引入算法应用的原因之一。
有效利用自然语言处理的常见例子有:客服常用的聊天机器人、智能手机的词汇建议等。它可以从几个关键词中判断出完整的句子,然后从数据库中找出合适的信息响应。
(补充:如果想了解更多关于BERT算法的原理,请参考Google官方发布的Ope。
n Source说明。)
BERT 演算法的应用实例
Google 官方表示 BERT 将会扩大应用于多种语言的搜寻结果,但官方目前已释出的举例大多仍是以英文为主。
例如:使用者搜寻“2019 brazil traveler to usa need a visa”,是想知道「2019 年巴西旅客去美国旅游是否需要签证」,但在 BERT 演算法推出前,Google 忽略了使用者搜寻字串中的介係词 “to”,因此将搜寻意图错误理解为「美国旅客去巴西旅游是否需要签证」,提供的搜寻结果自然就会是针对美国人要去巴西旅游的情境。
BERT 演算法强调搜寻引擎能辨识搜寻字串的「每个字」,再去理解整个搜寻字串要表达的语意,所以加入介係词 “to” 去分析以后,就会得到完全不同、更準确的搜寻意图,提供的搜寻结果自然更能符合使用者的需求。
虽然没有官方资料证实,BERT演算法对于繁体中文搜寻结果有何影响。但实际搜寻几组繁体中文关键字,仍可发现有 BERT 的蹤影。例如搜寻口语化的句子「今天会下雨吗」,和较为正式的关键字用法「本日 降雨机率」,Google 搜寻结果第一个列出的,都是使用者所在位置的降雨机率预报。
根据上述例子,可以推测出,即使「今天会下雨吗」是相当口语化的自然语言搜寻用语,但Google仍然能够理解,使用者输入「今天会下雨吗」和「本日 降雨机率」这两组关键字,所要找的资料其实是一样的。
BERT 演算法也有极限
先不论 BERT 演算法,是否能改善英文以外其他语言的搜寻结果,BERT 演算法本身也有以下一些限制:
1. 不擅长理解否定叙述
语言学家 Allyson Ettinger 在他的研究论文 “What BERT is not” 中提出了几个要点说明 BERT 的限制,其中特别指出 BERT 很难理解否定词对于上下文语意的影响。
2. 不擅长理解长篇文件
电脑要理解长篇文件的挑战性更高,因为大部分长篇文件会再细分为章节、段落、句子,即便是人类在阅读长篇文件时,可能都需要参考文件架构才能理解整篇文件的内容。因此电脑在理解长篇文件时应该将架构一起纳入处理,但理解长篇文件的架构对 BERT 演算法而言并不容易。
总结
Google 官方承认,即便导入了 BERT 来提升自然语言处理的成效,要精準理解自然语言对于电脑而言仍是非常有挑战性。不过,针对搜寻结果优先列出的「精选摘要」部分,Google 表示目前至少在韩语、印地语和葡萄牙语都已有重大改善。在未来,Google 预计将 BERT 学习英文理解的这套模式套用到更多不同语言上,期待未来所有使用者在执行搜寻时,都能以最轻松自然的方式输入,而不需要刻意思考应该输入什么关键字,才能被 Google 搜寻引擎所理解。
资料来源
- Google Duplex: AI will call and book your appointments
- FAQ: All about the BERT algorithm in Google search – Search Engine Land
- Open Sourcing BERT – Google AI Blog
- 如何断开中文峰峰相连的词彙锁鍊,让电脑能读懂字里行间的语意? – 泛科学 PanSci
- Understanding searches better than ever before – Google
- What BERT is not – Allyson Ettinger
- Google’s SMITH Algorithm Outperforms BERT – Search Engine Journal
- 台湾杰出女科学家系列专访,持续更新中!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/188225.html