谷歌搜索的灵魂!BERT模型的崛起与荣耀
本文转载自 智东西
刷榜各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模型的崛起与荣耀相关推荐
- 是时候“抛弃”谷歌 BERT 模型了!新型预训练语言模型问世
作者 | XLNet Team 译者 | 孙薇 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) 近日,XLNet 团队发布了新型预训练语言模型 XLNet,这个新模型在各项 ...
- 谷歌搜索:几乎所有的英文搜索都用上BERT了
点击上方"视学算法",选择"星标"公众号 第一时间获取价值内容 来自:机器之心 在前段时间举办的「Search On」活动中,谷歌宣布,BERT 现在几乎为谷歌 ...
- 干货 | 谷歌BERT模型fine-tune终极实践教程
作者 | 奇点机智 从11月初开始,Google Research就陆续开源了BERT的各个版本.Google此次开源的BERT是通过TensorFlow高级API-- tf.estimator进行封 ...
- 谷歌经典bert模型从下载源码到运行成功
谷歌经典bert模型从下载源码到运行成功 近期,对谷歌经典bert模型进行了简单的学习,以官方模型代码为主要学习目标,目前已经成功完成预训练任务,结果如图: 下载源码 官方代码和与训练模型链接:htt ...
- [NLP自然语言处理]谷歌BERT模型深度解析
BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一.前言 二.如何理解BERT模型 三.BERT模型解析 ...
- 自然语言处理——谷歌BERT模型深度解析
BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一.前言 二.如何理解BERT模型 三.BERT模型解析 ...
- bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅
导语: BERT模型自诞生以来统治了各项NLP任务的榜单,谷歌也针对中文给出了基于字的模型.然而我们知道词是语言最重要的组成部分,因此,一个自然的想法就是做基于词的BERT模型.但是受限于显存,谷歌原 ...
- 谷歌BERT模型fine-tune终极实践教程
从11月初开始,Google Research就陆续开源了BERT的各个版本.Google此次开源的BERT是通过TensorFlow高级API-- tf.estimator进行封装(wrapper) ...
- BERT模型系列大全解读
前言 本文讲解的BERT系列模型主要是自编码语言模型-AE LM(AutoEncoder Language Model):通过在输入X中随机掩码(mask)一部分单词,然后预训练的主要任务之一就是根据 ...
最新文章
- Hibernate的命名查询(NamedQuery)
- 1.8 finally和return的执行顺序
- python文本分类_教你用python做文本分类
- jmeter压测过程中内存溢出
- android studio 修改包名_android逆向笔记之初学者常用adb命令
- 乐哥学AI_Python(二):Numpy索引,切片,常用函数
- BackGroundWorker用法
- 如何构建React-Native图库教程
- hadoop hdfs 集群配置
- 若依单体项目定时任务模块使用教程
- 130 行代码模仿火爆抖音的“蚂蚁呀嘿”特效,你学会了吗?
- 【Oracle】ORA-30042: Cannot offline the undo tablespace
- debian安装中文字体
- Python爬虫入门学习线路图2019最新版
- 时速云Kubernetes进阶培训 第三期
- 计算机教案.doc免费,TOP16[定稿]计算机基础教案33412.doc文档免费在线阅读
- Butterworth数字滤波器设计
- 【TA-霜狼_may-《百人计划》】图形3.3 曲面细分与几何着色器 大规模草渲染
- 使用Eclipse编译运行MapReduce程序_Hadoop2.6.0_Ubuntu/CentOS
- 请说说自己对鲁迅本人他作品的了解计算机,26 回忆鲁迅先生课堂实录及点评
热门文章
- matlab斐波那契数列画图,斐波拉契数列 斐波那契数列 matlab程序
- 数学之英文写作——基本中英文词汇(一般术语、算术与代数的常用词汇)
- VMware vSphere ESXI 6.7 U3最新版本封装网卡驱动补丁
- matlab 4轴机器人建模,MATLAB机器人工具箱6轴机械臂DH建模仿真
- Linux和Mac下的微信电脑版electronic-wechat(非官方)
- 【微分方程】微分算子法求微分方程特解
- 一些bugku的题目wp
- 用element-ui el-select 实现拼音码搜搜功能ts版
- 读书笔记01_《程序员思维修炼》
- 汽车制动盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告