本文转载自 智东西

刷榜各NLP任务、超70种语言搜索,起底搜索帝国谷歌的“引擎工程师”BERT!

如果你在谷歌上搜索“如何在没有马路的山上停车”,谷歌会告诉你什么?

如果是两年前,网页可能会教你怎么停车或怎么在山上停车,因为它检测到了“停车”、“山上”这些关键字,而忽略了那个看似无关紧要的小词“没有”。

但现在,它能在页面最显眼的位置,直接向你提供你最关心的问题:如何在没有车道的山坡上停车。因为它不仅学会找到这些关键词,也学会理解了这些词之间的联系。

在搜索引擎“猜”透人心背后,是谷歌的BERT模型逐渐开始理解人类语言。

今年10月,谷歌在“Search On”活动中介绍了数千项AI领域的新应用,其中就包括BERT模型的新进展:已应用于谷歌上近乎所有的英文查询,适用范围也拓展至70多种语言,而去年这个时候,BERT在英文查询中的使用比例不超过10%。

使用比例翻十倍、涵盖语言增至70余种……自2018年诞生至今,是哪些硬技术赋予BERT“超人类”的语言理解能力,它在NLP届(自然语言处理,下称NLP)又有怎样的“江湖地位”?

今天,一起走过BERT这两年的进阶之路,看看NLP届如今的半壁江山。

01.

诞生即崛起,BERT的发家史

BERT最出圈的“荣耀时刻”是2018年:称霸机器理解测试SQuAD,横扫其他10项NLP测试,达成“全面超过人类”成就。

SQuAD是行业公认的机器阅读理解顶级测试,主要考察两个指标:EM和F1。

EM指的是模型答案与标准答案的匹配度;F1指的是模型的召回率和精确度。在这两项上,BERT得分分别87.433和93.160,超过人类的82.3和91.2,被不少研究人员认为,是自然语言领域的重大成就,将会改变NLP的研究方式。

BERT为什么这么牛?

那我们得先看看模型是怎样“学语言”的。

模型和人一样,在会说话能阅读之前,它也需要背单词、学语法,只是它不是通过语境去理解词义,而是将单词转化为可以计算的向量或者矩阵,再通过神经网络计算特征权重学会“语法”,从而“理解”人类语言。

BERT诞生于2018年,全名是Bidirectional Encoder Representations from Transformers,从名字上来看,BERT是基于Transformer模型建立的一个双向编码器。

Transformer模型起源于机器翻译领域,抛弃了循环神经网络(RNNs)中循环式网络结构方法,利用注意力机制构建每个词的特征,通过分析词之间的相互影响,得到每个词的特征权重。

这种基于注意力的Transformer模型关注的不单是个别词语,而是词与词之间的关系,比起单纯地提取词向量更“善解人意”。

在解决了如何“背单词”的问题后,下面一步就是怎么学语法。

嵌在BERT名字里的双向编码就是它的答案。

如下图,OpenAI的GPT模型使用的是从左到右的Transformer,即通过分析上文得到下一词的特征权重,而不能通过下文验证前文的词义,而AllenNLP的ELMo通过将独立训练的两个方向结果串联,生成下游任务特征。

▲BERT与GPT、ELMo的比较

但BERT不仅能同时进行双向预测,还能通过上下文全向预测。

在BERT面世之前,NLP大厦头顶上有两片乌云:标记数据集不足和结果的低准确率。

前者,BERT在无标记数据集中用无监督学习解决;后者,BERT通过加深Transformer层数和双向编码的方法精进。

在出生时就带着横扫各大赛事的“战绩”,两年的实战更历经无数风雨,现如今的BERT不仅在学界具有里程碑意义,在实际应用这片广阔天地中更是大有作为。

02.

两年不止步,BERT的进阶史

要在网页搜索届呼风唤雨,谷歌的真本事当然不止BERT一个,用于搜索引擎优化的Panda、Penguin、Payday,打击垃圾邮件的Pigeon以及名声在外的网页排名算法Pagerank……每一块小模组都各司其职,组成了谷歌搜索的“最强大脑”。

BERT是在一岁时,也就是2019年10月15日,正式加入谷歌搜索的算法大脑,承担在美国境内的10%英文查询中。

“深网络”、“双通路”的BERT不仅能“猜心”,还能识错。

据谷歌统计,在每十次搜索中,就会出现一个拼写错误,如下图用户想搜索dinner,却误输成dibber,但BERT可以绕过这个错误,直接识别出用户意图,提供餐馆位置。

两个月后,BERT开始承担70多种语言的搜索任务。

一年后,BERT在谷歌搜索中使用比例近乎100%,凭借出色的理解能力,替代上一代查询工具RankBrain,成为搜索大脑的王牌。

在这“高分高能”的实绩背后,是BERT模型一直的默默进阶。

2019年12月,通过更加有效地分配模型容量、简化Transformer隐藏层中的参数和冗余度检查,BERT在性能提升的同时减少计算量,升级为更为轻量级ALBERT。

2020年3月,受生成对抗网络(GAN)的启发,BERT改进了预训练方式,减少了模型训练的时间,从而可以在更少的计算量内达到相同的文本识别效果,衍生出了ELECTRA模型。

2020年8月,BERT内引入了多语言嵌入模型,实现不同语言间互译,让用户可以在更大范围内搜索有效信息。

2020年10月,BERT着眼于减少模型本身的“偏见”,利用模型评估指标来调整预训练模型中的参数,减少搜索时可能出现的性别种族歧视。

从10%到100%,带着满分出生的BERT并没有固步自封,而是不断地顺应时代的需求,一次又一次地自我更新,用更少的训练时间、更小的计算量达到更为优越的性能。

今年十月,谷歌公布了BERT在搜索领域的表现,除了扩大应用范围和可应用的语言外,BERT将谷歌在学术检索上的准确率提高了7%。

谷歌也表示,会在未来利用BERT模型继续精进搜索算法,扩大搜索的范围,提高搜索的精度。

03.

BERT开球,百家争鸣

BERT的贡献远不止是提升谷歌搜索性能或者获得“机器超过人类”的名号,而是作为一个泛化性极强的通用模型,为今后NLP届开辟了一条光明的研究赛道。

▲图源网络

以BERT为分界线,NLP领域可以分为动态表征模型(Dynamic Representation)时代和深度动态表征模型(Deep Dynamic Representation)时代,在前一个时代,标注数据集的不足和单向编码器限制了模型的可拓展性;而在后一个时代,基于BERT发展出来的方法,“支棱”起了NLP届半壁江山。

改进BERT的方法千千万,其中大概可以分为两个方向:一是纵向,通过改进Transformer层的结构或者调整参数,得到更加轻量级的模型,例如之前提及过的ALBERT模型;二是纵向,通过在BERT模型中延伸其他算法模型,拓展BERT模型的功能,如受GAN影响诞生的ELECTRA模型。

在BERT逐渐发挥影响力、实现应用落地的同时,NLP届的新秀也轮番亮相。

2019年出现的XLNet和2020年出现的GPT-3就是杀出重围的两员大将。

XLNet,在BERT的基础上,加入了自回归的预训练方法,得到一个既擅长语义理解也擅长语义生成的模型,补齐了BERT模型在长文阅读、以及文字生成方面的短板。

而GPT-3更是来势汹汹,作为OpenAI旗下第三代深度语言学习模型,它自带1705亿个参数,是前一代模型GPT-2的100倍,经过5000亿个单词的预训练,在无微调的情况下,取得多个NLP基准测试上的最高分数。

与此同时,GPT-3也解决了BERT模型存在的两个问题:对标注数据的依赖,以及对训练数据集的过拟合,旨在成为更通用的NLP模型。

基于更大的数据集和更多的参数,GPT-3不仅能搜索网页,还能答题、聊天、写小说、写曲谱,甚至还能自动编程。

在目前的调试阶段,GPT-3也暴露出了包括仇恨言论、错误信息等许多问题,所以纵使顶着NLP界最强后浪的名号,它目前暂时还无法像前辈BERT一样,落地应用,为人类带来价值。

04.

结语:NLP新时代,BERT不缺席

自然语言处理(NLP)领域有很多细分方向:文本分类、机器翻译、阅读理解、机器人聊天……每一个子题都对应着人工智能在现实生活中的实际应用:网页检索、自动推荐、智能客服……

如何让人工智能真正走入我们的生活,第一个要解决的问题就是如何让机器真正地理解我们想要什么。

BERT让我们迈出了一大步,基于自监督学习处理无标记数据,再通过双向编码理解文义,BERT打破了之前训练数据需要标记的“魔咒”,充分利用了大量无标记文本,是NLP届里程碑式的革新。

从诞生、进阶到衍生出一系列语言模型,已经两岁的BERT用时间证明了自己的巨大潜力,或许在未来,它将融合进新的应用,为我们带来意想不到的AI革命。

原文链接:https://mp.weixin.qq.com/s/nI7sUGQbFc4Nsh53Xgux8w

谷歌搜索的灵魂!BERT模型的崛起与荣耀相关推荐

  1. 是时候“抛弃”谷歌 BERT 模型了!新型预训练语言模型问世

    作者 | XLNet Team 译者 | 孙薇 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) 近日,XLNet 团队发布了新型预训练语言模型 XLNet,这个新模型在各项 ...

  2. 谷歌搜索:几乎所有的英文搜索都用上BERT了

    点击上方"视学算法",选择"星标"公众号 第一时间获取价值内容 来自:机器之心 在前段时间举办的「Search On」活动中,谷歌宣布,BERT 现在几乎为谷歌 ...

  3. 干货 | 谷歌BERT模型fine-tune终极实践教程

    作者 | 奇点机智 从11月初开始,Google Research就陆续开源了BERT的各个版本.Google此次开源的BERT是通过TensorFlow高级API-- tf.estimator进行封 ...

  4. 谷歌经典bert模型从下载源码到运行成功

    谷歌经典bert模型从下载源码到运行成功 近期,对谷歌经典bert模型进行了简单的学习,以官方模型代码为主要学习目标,目前已经成功完成预训练任务,结果如图: 下载源码 官方代码和与训练模型链接:htt ...

  5. [NLP自然语言处理]谷歌BERT模型深度解析

    BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一.前言 二.如何理解BERT模型 三.BERT模型解析 ...

  6. 自然语言处理——谷歌BERT模型深度解析

    BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一.前言 二.如何理解BERT模型 三.BERT模型解析 ...

  7. bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅

    导语: BERT模型自诞生以来统治了各项NLP任务的榜单,谷歌也针对中文给出了基于字的模型.然而我们知道词是语言最重要的组成部分,因此,一个自然的想法就是做基于词的BERT模型.但是受限于显存,谷歌原 ...

  8. 谷歌BERT模型fine-tune终极实践教程

    从11月初开始,Google Research就陆续开源了BERT的各个版本.Google此次开源的BERT是通过TensorFlow高级API-- tf.estimator进行封装(wrapper) ...

  9. BERT模型系列大全解读

    前言 本文讲解的BERT系列模型主要是自编码语言模型-AE LM(AutoEncoder Language Model):通过在输入X中随机掩码(mask)一部分单词,然后预训练的主要任务之一就是根据 ...

最新文章

  1. Hibernate的命名查询(NamedQuery)
  2. 1.8 finally和return的执行顺序
  3. python文本分类_教你用python做文本分类
  4. jmeter压测过程中内存溢出
  5. android studio 修改包名_android逆向笔记之初学者常用adb命令
  6. 乐哥学AI_Python(二):Numpy索引,切片,常用函数
  7. BackGroundWorker用法
  8. 如何构建React-Native图库教程
  9. hadoop hdfs 集群配置
  10. 若依单体项目定时任务模块使用教程
  11. 130 行代码模仿火爆抖音的“蚂蚁呀嘿”特效,你学会了吗?
  12. 【Oracle】ORA-30042: Cannot offline the undo tablespace
  13. debian安装中文字体
  14. Python爬虫入门学习线路图2019最新版
  15. 时速云Kubernetes进阶培训 第三期
  16. 计算机教案.doc免费,TOP16[定稿]计算机基础教案33412.doc文档免费在线阅读
  17. Butterworth数字滤波器设计
  18. 【TA-霜狼_may-《百人计划》】图形3.3 曲面细分与几何着色器 大规模草渲染
  19. 使用Eclipse编译运行MapReduce程序_Hadoop2.6.0_Ubuntu/CentOS
  20. 请说说自己对鲁迅本人他作品的了解计算机,26 回忆鲁迅先生课堂实录及点评

热门文章

  1. matlab斐波那契数列画图,斐波拉契数列 斐波那契数列 matlab程序
  2. 数学之英文写作——基本中英文词汇(一般术语、算术与代数的常用词汇)
  3. VMware vSphere ESXI 6.7 U3最新版本封装网卡驱动补丁
  4. matlab 4轴机器人建模,MATLAB机器人工具箱6轴机械臂DH建模仿真
  5. Linux和Mac下的微信电脑版electronic-wechat(非官方)
  6. 【微分方程】微分算子法求微分方程特解
  7. 一些bugku的题目wp
  8. 用element-ui el-select 实现拼音码搜搜功能ts版
  9. 读书笔记01_《程序员思维修炼》
  10. 汽车制动盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告