BERT为什么是NLP的革新者

来源 | AI前线

作者 | Jerry Wei

译者 | 马可薇

策划 & 编辑 | 刘燕

语言模型 BERT 可以大幅提升许多任务的性能,那么它成功的背后是什么呢?

本文最初发表在 Towards Data Science 博客,由 InfoQ 中文站翻译并分享。

什么是 BERT?

BERT,全称 Bidirectional Encoder Representation from Transformers,是一款于 2018 年发布,在包括问答和语言理解等多个任务中达到顶尖性能的语言模型。它不仅击败了之前最先进的计算模型,而且在答题方面也有超过人类的表现。

BERT 是一个可以将文字转换为数字的计算模型。这个过程是至关重要的,因为机器学习模型需要以数字而非文字为输入,而一款可以将文字转换为数字的算法让人们可以直接使用原始的文本格式数据训练机器学习模型。

BERT 是可以将文字转换为数字的计算模型,图源 Devlin et al., 2019

BERT 为何如此优秀?

对作者来说,BERT 的优秀之处主要在于以下三点: 

第一:使用大量数据预训练

第二:可以处理文字语意

第三:开源

1:BERT 使用海量数据预训练 

BERT 提供两种不同大小模型,BERT-base(使用 BookCorpus 数据集训练,约 8 亿字)以及 BERT-large(使用英文维基百科训练,约 25 亿字)。两种模型均使用了巨大的训练集,而任何一个机器学习领域的人都明白,大数据的力量是相当无敌的。正所谓“熟读唐诗三百遍,不会做诗也会吟”,在见过 25 亿单词之后,再看到新单词时你也能猜到它会是什么意思。

因为 BERT 的预训练非常优秀,所以即使是应用在小型数据集上也能保持不错的性能。举例来说,作者最近参与了一个开发 新冠(COVID-19)自动问答系统 的项目,在没有进一步微调的情况下,BERT-base 在作者使用的数据集中的 15 个类别上,准确率达到 58.1%。更令人惊叹的时,“COVID”这个词甚至不在 BERT 的词汇库中,但它依然获得了相当高的准确率。

 2:BERT 可以处理语意

之前的词嵌入方法,无论一个词处于什么样的语境下,都会返回同一个向量。而 BERT 则会根据上下文,为同一个词返回不同的向量。例如,在下面的例子中,旧方法会为“trust”返回相同的嵌入。

I can't trust you.(我不能相信你。)

They have no trust left for their friend. (他们对自己的朋友已经没有信任感。)

He has a trust fund. (他有一个信托基金。)

相比之下,BERT 可以处理语意,根据“trust”语境的不同返回不同的嵌入。如果算法可以分辨出一个词使用情况的不同,就能获得更多的信息,性能也有可能得到提升。另一个可以处理上下文的语言建模方法是 ELMo。

3:BERT 是开源的

开源是个大加分项。机器学习领域中的很多项目都被开源化,因为代码开源可以让其他的研究人员轻松应用你的想法,从而促进项目的发展。BERT 的代码 发布在了 GitHub 上,同时还附有代码使用相关的 README 文件,这些深入信息对于任何想要使用 BERT 的人来说有很大帮助。

在作者最开始使用 BERT 时,只花费了几分钟下载能运行的 BERT 模型,然后只用不到一小时的时间成功写出可以用在数据集中的代码。

一个非常强大的语言模型会同时具备上文中提到的全部三个方面,而这个模型可以在 SQuAD、GLUE 和 MultiNLI 等大名鼎鼎的数据集上会达到最顶尖的性能。它所拥有的这些巨大优势是让它如此强大和适用的原因所在。

BERT 利用大量数据进行预处理,用户可以直接将其应用在自己相对较小的数据集上。BERT 有上下文嵌入,性能会很不错。BERT 是开源的,用户可以直接下载并使用。它的应用范围如此之广,这就是为什么说 BERT 彻底改变了 NLP。

谷歌的研究人员,也是 BERT 的最初创造者,计划利用它来理解谷歌搜索,并提高谷歌自动问答服务的准确性。后来人们发现,BERT 的用处不仅仅只局限于谷歌搜索。BERT 有望改善计算机语言学的关键领域,包括聊天机器人、自动问答、总结和文本情感分析。自一年多前 BERT 的发布以来,其论文 的引用已超过 8,500 次,其广泛实用性不难看出。此外,自 BERT 发表后,最大的国际 NLP 会议 Association for Computational Linguistics(ACL)的投稿量也翻了一番,从 2018 年的 1544 篇直接增到 2019 年的 2905 篇。

BERT 将继续为 NLP 领域带来革命性的变化,它为小型数据库中各种类型的任务提供实现高性能的机会。

延伸阅读:

Devlin et al. 原论文:https://arxiv.org/pdf/1810.04805.pdf

ELMo,使用上下文嵌入的类似语言模型:https://arxiv.org/pdf/1802.05365.pdf

原文链接:

https://towardsdatascience.com/bert-why-its-been-revolutionizing-nlp-5d1bcae76a13

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac idea中git igenore设置

转载于:https://www.cnblogs.com/hoge66/p/8406290.html

java语言链栈_Java语言实现数据结构栈代码详解

近来复习数据结构,自己动手实现了栈。栈是一种限制插入和删除只能在一个位置上的表。最基本的操作是进栈和出栈,因此,又被叫作“先进后出”表。首先了解下栈的概念:栈是限定仅在表头进行插入和删除操作的线性表。有时又叫LIFO(后进…

一文看懂BATH新基建:5G是基础,AI是内核

文章原载于 视觉中国“新基建”政策升温,“竞标赛”将启。“新基建”这一概念最早提出是在2018年底的中央经济工作会议上,会议指出要“加快5G商用步伐,加强人工智能、工业互联网、物联网等新型基础设施建设”,“新基建”概念由此…

Java基础(三)选择和循环结构

一、选择结构,条件判断 1、if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句。如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。 1 import static java.lang.Math.round;2 3 public class Condit…

什么是java dom_java web--DOM

Dom总结dom:文档对象模型的简称。dom的解析:与XML一样遵循同样的规范将标记型文档解析成一棵DOM树,并将树中的内容都封装成节点对象。如果html文档过大,同样会造成解析过慢,怎么使用sax方式解析?节点的分类…

蒲慕明:对科学哲学的一些看法

来源 | 中国科学报作者 | 蒲慕明9月24日上午,“中国科学院哲学研究所揭牌仪式暨科学与哲学前沿问题研讨会”在中国科学院大学玉泉路校区举行。揭牌仪式上,中科院院士、中科院脑科学与智能技术卓越创新中心(神经科学研究所)学术主任…

CF16A Flag

CF16A Flag 题意翻译 题目描述 根据一项新的ISO标准,每一个国家的国旗应该是一个nm的格子场,其中每个格子最多有10种不同的颜色。并且国旗应该有条纹:旗帜的每一行应包含相同颜色的方块,相邻的行的颜色应该是不同的。Berland政府要…

与时间相关的java源码_Java 调整日期和时间

import java.time.DayOfWeek;import java.time.LocalDate;import java.time.temporal.TemporalAdjuster;import java.time.temporal.TemporalAdjusters;//n o w j a v a . c o m 提 供public class Main {public static void main(String[] args) {LocalDate today LocalDate.…

include动作与include指令的区别

转载于:https://www.cnblogs.com/olddriver123/p/8413098.html

【创新应用】未来10年,这些黑科技必将颠覆我们的生活

来源:智能研究院从无人驾驶汽车到机器人工人,在我们熟悉所有这一切之前,未来正迎面走来。根据世界经济论坛全球议程理事会关于《未来软件与社会》的一份报告,到2025年前,很多新兴技术将会达到其临界点。该理事会调查走…

java中的账户冻结原理_java可重入锁(ReentrantLock)的实现原理

前言相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣…

stm32f10x单片机进阶--spi使用

使用SPI与外部flash(MX25L6406EM21)IC通信 连接方式如上图所示,MCU通过SPI2与外部flash芯片进行相连接。 MCU spi2初始化定义SPI2 中所使用的SPI 端口号 spi2中 通信功能初始化 读数据与写数据 指令说明查看flash芯片的datasheet,mx25芯片支持按照页来写…

怎样才算世界一流大学

来源:图灵人工智能本文摘编自石毓智著《斯坦福的创新力:来自世界一流大学的启示》之放眼欧美部分,内容有删减,由安静编辑。世界一流大学大都历史悠久,动辄都有几百年的历史。在这个家族中,斯坦福是个年轻的…

蓝桥杯练习系统数的读法java_数的读法(蓝桥杯)

问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。比如说,在对学生讲解第1234567009号…

实现安卓里边下边播的播放器(源码公开)

一、前言: 前段时间弄了一款安卓电视盒子的远程遥控输入法APP:TVRemoteIME,此APP实现了远程跨屏的输入、遥控和应用管理功能。 最近发现盒子上要播放电影资源除了买APP会员之外,能直接免费播放电影的第三方APP越来越少了&#xff…

2020诺奖预测出炉!一位华人学者入选

图片来源:nobelprize.org文章来源:科睿唯安(Clarivate Analytics)、科研圈9月23日,拥有Web of Science、InCites等著名论文及期刊索引平台的科睿唯安公司(Clarivate Analytics)宣布了2020年“引…

java的oauth2.0_[转]Java的oauth2.0 服务端与客户端的实现

oauth原理简述oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装。我们做Java web项目想要实现oauth协议进行资源授权访问,直接使用该封装就可以。image.png整个开发流程简述一下&#x…

数学突破奖:告诉你一个真实的数学研究

文章来源:科学松鼠会科学是目前人类探知客观世界最好的方式。尽管投入科学不能一蹴而就地得到切实有用的成果,但长远来看却是技术发展最好的动力源。与技术开发不同,对科学的投入更像是公益活动,因为科学研究得到的成果属于全人类…

java 获取当前月份减1_java String 日期 转成 Date, 月份减1

ainiyanyan13142007-03-30 22:391 编写applet 程序的页面输出 红色的 "hello would !"2 请编写application 计算并 "12...2008"的结果3 找出两个字符串中所有共同的子字符串4 将碾转相除法求两个整数的最大公因数gcd(a,b)用递归方法实现.(1) 求两个整数a,b…

重磅!“全脑介观神经联接图谱”大科学计划中国工作组成立!

来源:上海科技9月27日下午,“全脑介观神经联接图谱”大科学计划启动前期工作座谈会在上海市召开,本次会议明确了该计划的推进路径,宣布了中国工作组的成立,并就该计划的具体实施思路和举措进行研讨。座谈会上&#xff…