点击上方↑↑↑蓝字关注我们~

2019 Python开发者日」,购票请扫码咨询 ↑↑↑

本文转载自微软研究院AI头条(ID:MSRAsia)

编者按:在过去的一段时间,自然语言处理领域取得了许多重要的进展,Transformer、BERT、无监督机器翻译,这些词汇仿佛在一夜之间就进入了人们的视野。你知道它们具体都是什么意思吗?今天,我们就将为大家介绍三个NLP领域的热门词汇。

Transformer

Transformer在2017年由Google在题为《Attention Is All You Need》的论文中提出。Transformer是一个完全基于注意力机制的编解码器模型,它抛弃了之前其它模型引入注意力机制后仍然保留的循环与卷积结构,而采用了自注意力(Self-attention)机制,在任务表现、并行能力和易于训练性方面都有大幅的提高。

在 Transformer 出现之前,基于神经网络的机器翻译模型多数都采用了 RNN的模型架构,它们依靠循环功能进行有序的序列操作。虽然 RNN 架构有较强的序列建模能力,但是存在训练速度慢,训练质量低等问题。

与基于 RNN 的方法不同,Transformer 模型中没有循环结构,而是把序列中的所有单词或者符号并行处理,同时借助自注意力机制对句子中所有单词之间的关系直接进行建模,而无需考虑各自的位置。具体而言,如果要计算给定单词的下一个表征,Transformer 会将该单词与句子中的其它单词一一对比,并得出这些单词的注意力分数。注意力分数决定其它单词对给定词汇的语义影响。之后,注意力分数用作所有单词表征的平均权重,这些表征输入全连接网络,生成新表征。

来源:Google AI Blog

由于 Transformer 并行处理所有的词,以及每个单词都可以在多个处理步骤内与其它单词之间产生联系,它的训练速度比 RNN 模型更快,在翻译任务中的表现也比 RNN 模型更好。除了计算性能和更高的准确度,Transformer 另一个亮点是可以对网络关注的句子部分进行可视化,尤其是在处理或翻译一个给定词时,因此可以深入了解信息是如何通过网络传播的。

之后,Google的研究人员们又对标准的 Transformer 模型进行了拓展,采用了一种新型的、注重效率的时间并行循环结构,让它具有通用计算能力,并在更多任务中取得了更好的结果。

改进的模型(Universal Transformer)在保留Transformer 模型原有并行结构的基础上,把 Transformer 一组几个各异的固定的变换函数替换成了一组由单个的、时间并行的循环变换函数构成的结构。相比于 RNN一个符号接着一个符号从左至右依次处理序列,Universal Transformer 和 Transformer 能够一次同时处理所有的符号,但 Universal Transformer 接下来会根据自注意力机制对每个符号的解释做数次并行的循环处理修饰。Universal Transformer 中时间并行的循环机制不仅比 RNN 中使用的串行循环速度更快,也让 Universal Transformer 比标准的前馈 Transformer 更加强大。

预训练Pre-train

目前神经网络在进行训练的时候基本都是基于后向传播(Back Propagation,BP)算法,通过对网络模型参数进行随机初始化,然后利用优化算法优化模型参数。但是在标注数据很少的情况下,通过神经网络训练出的模型往往精度有限,“预训练”则能够很好地解决这个问题,并且对一词多义进行建模。

预训练是通过大量无标注的语言文本进行语言模型的训练,得到一套模型参数,利用这套参数对模型进行初始化,再根据具体任务在现有语言模型的基础上进行精调。预训练的方法在自然语言处理的分类和标记任务中,都被证明拥有更好的效果。目前,热门的预训练方法主要有三个:ELMo,OpenAI GPT和BERT。

在2018年初,艾伦人工智能研究所和华盛顿大学的研究人员在题为《Deep contextualized word representations》一文中提出了ELMo。相较于传统的使用词嵌入(Word embedding)对词语进行表示,得到每个词唯一固定的词向量,ELMo 利用预训练好的双向语言模型,根据具体输入从该语言模型中可以得到在文本中该词语的表示。在进行有监督的 NLP 任务时,可以将 ELMo 直接当做特征拼接到具体任务模型的词向量输入或者是模型的最高层表示上。

在ELMo的基础之上,OpenAI的研究人员在《Improving Language Understanding by Generative Pre-Training》提出了OpenAI GPT。与ELMo为每一个词语提供一个显式的词向量不同,OpenAI GPT能够学习一个通用的表示,使其能够在大量任务上进行应用。在处理具体任务时,OpenAI GPT 不需要再重新对任务构建新的模型结构,而是直接在 Transformer 这个语言模型上的最后一层接上 softmax 作为任务输出层,再对这整个模型进行微调。

ELMo和OpenAI GPT这两种预训练语言表示方法都是使用单向的语言模型来学习语言表示,而Google在提出的BERT则实现了双向学习,并得到了更好的训练效果。具体而言,BERT使用Transformer的编码器作为语言模型,并在语言模型训练时提出了两个新的目标:MLM(Masked Language Model)和句子预测。MLM是指在输入的词序列中,随机的挡上 15% 的词,并遮挡部分的词语进行双向预测。为了让模型能够学习到句子间关系,研究人员提出了让模型对即将出现的句子进行预测:对连续句子的正误进行二元分类,再对其取和求似然。

图片来源:Google AI Blog

无监督机器翻译

Unsupervised Machine Translation

现有的机器翻译需要大量的翻译文本做训练样本,这使得机器翻译只在一小部分样本数量充足的语言上表现良好,但如何在没有源翻译的情况下训练机器翻译模型,即无监督训练,成为了目前热门的研究话题。Facebook在EMNLP 2018上的论文《Phrase-Based & Neural Unsupervised Machine Translation》利用跨字嵌入(Cross Word Embedding),提升了高达11 BLEU,那么Facebook是如何实现的呢?

第一步是让系统学习双语词典。系统首先为每种语言中的每个单词训练词嵌入,训练词嵌入通过上下文来预测给定单词周围的单词。不同语言的词嵌入具有相似的邻域结构,因此可以通过对抗训练等方法让系统学习旋转变换一种语言的词嵌入,以匹配另一种语言的词嵌入。基于这些信息,就可以得到一个相对准确的双语词典,并基本可以实现逐字翻译。在得到语言模型和初始的逐字翻译模型之后,就可以构建翻译系统的早期版本。

来源:Facebook Code

然后将系统翻译出的语句作为标注过的真实数据进行处理,训练反向机器翻译系统,得到一个更加流畅和语法正确的语言模型,并将反向翻译中人工生成的平行句子与该语言模型提供的校正相结合,以此来训练这个翻译系统。

通过对系统的训练,形成了反向翻译的数据集,从而改进原有的机器翻译系统。随着一个系统得到改进,可以使用它以迭代方式在相反方向上为系统生成训练数据,并根据需要进行多次迭代。

逐字嵌入初始化、语言建模和反向翻译是无监督机器翻译的三个重要原则。将基于这些原理得到的翻译系统应用于无监督的神经模型和基于计数的统计模型,从训练好的神经模型开始,使用基于短语模型的其它反向翻译句子对其进行训练,最终得到了一个既流畅,准确率又高的模型。

对于无监督机器翻译,微软亚洲研究院自然语言计算组也进行了探索。研究人员利用后验正则(Posterior Regularization)的方式将SMT(统计机器翻译)引入到无监督NMT的训练过程中,并通过EM过程交替优化SMT和NMT模型,使得无监督NMT迭代过程中的噪音能够被有效去除,同时NMT模型也弥补了SMT模型在句子流畅性方面的不足。相关论文《Unsupervised Neural Machine Translation with SMT as Posterior Regularization》已被AAAI 2019接收。

感谢微软亚洲研究院自然语言计算组研究员葛涛对本文提供的帮助。

参考论文:

[1] Attention Is All You Need

https://arxiv.org/pdf/1706.03762.pdf

[2] Universal Transformers

https://arxiv.org/abs/1807.03819

[3] Deep contextualized word representations

https://arxiv.org/pdf/1802.05365.pdf

[4] Improving Language Understanding by Generative Pre-Training

https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

[5] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

https://arxiv.org/pdf/1810.04805.pdf

[6] Phrase-Based & Neural Unsupervised Machine Translation

https://arxiv.org/pdf/1804.07755.pdf

[7] Unsupervised Neural Machine Translation with SMT as Posterior Regularization

http://export.arxiv.org/pdf/1901.04112

其它参考资料:

自然语言处理中的语言模型预训练方法

https://zhuanlan.zhihu.com/p/47342053

Unsupervised machine translation: A novel approach to provide fast, accurate translations for more languages

https://code.fb.com/ai-research/unsupervised-machine-translation-a-novel-approach-to-provide-fast-accurate-translations-for-more-languages/

谷歌 Transformer 模型再进化,“图灵完备”版已上线

https://mp.weixin.qq.com/s/4xIeg9qhky78Rkg2goSRlg

Unsupervised machine translation: A novel approach to provide fast, accurate translations for more languages

https://code.fb.com/ai-research/unsupervised-machine-translation-a-novel-approach-to-provide-fast-accurate-translations-for-more-languages/

(本文为AI大本营转载文章,转载请联系原作者)

精彩推荐

「2019 Python开发者日」,这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

推荐阅读:

  • 愚人节,看你们把AI逼成什么样了?

  • 何恺明等人提TensorMask框架:比肩Mask R-CNN,4D张量预测新突破

  • 哪些程序员在围观996.ICU?Python爬取40000条GitHub数据告诉你

  • 儿科医生的眼泪,全被数据看见了

  • 程序员怒了!你敢削减专利奖金,我敢拒绝提交代码!

  • 趣挨踢 | 用大数据扒一扒蔡徐坤的真假流量粉

  • 姚期智提出的"百万富翁"难题被破解? 多方安全计算MPC到底是个什么鬼?

  • 程序媛报告:调查了12,000名女性开发者发现,女性比男性更懂Java!

  • 靠找Bug赚了6,700,000元!他凭什么?

你也可以点击阅读原文,查看大会详情。

请收下这份NLP热门词汇解读相关推荐

  1. KeyError: [] not found in axis_最IN黄浦 | 万圣狂欢倒计时!露台派对、变装游、沉浸式密室...请收下这份黄浦活动指南~_电竞...

    原标题:最IN黄浦 | 万圣狂欢倒计时!露台派对.变装游.沉浸式密室...请收下这份黄浦活动指南~ Ttick or Treat 一年一度的万圣节就要来了, 黄浦不少商圈都策划了多场精彩活动: BFC ...

  2. 凌恩生物资讯|细菌完成图,坑多专家少——请收下这份避坑指南

    尝试做细菌完成图的你是不是有很多疑问 这份避坑指南请收好! 小坑1."1 +X Contig,0 Gap"代表什么? 答:"1 Contig,0 Gap"的承诺 ...

  3. 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程

    本文英文出处:Robbie Allen 翻译/雷锋网字幕组 吴楚 校对/ 雷锋网 田晋阳 机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我 ...

  4. Go开发者路线图2019,请收下这份指南

    整理 | Rachel 责编 | 阿司匹林 出品 | AI科技大本营(ID: rgznai100) Go是Google开发的一种静态.强类型.编译型.并发型,并具有垃圾回收功能的类C编程语言.2009 ...

  5. 有大招儿?请收下这份关于数据与智能的晋级攻略!

    随着互联网+.人工智能.大数据.云计算等新技术不断涌现与成熟,数据.技术以及产业的深度融合并引发多种变革的趋势越来越明显.面对这样的热点趋势,时刻准备且创新活跃的数据科学人才究竟该如何把握这样的技术发 ...

  6. 【请收下这份汇总全网的Java视频资料】

    点赞收藏关注,防止下次找不到 这一篇主要是给大家收集比较好的Java学习的视频资料,而且这一篇的主要视频来源是B站 B站,众所周知,这是一个好大学,我们在上面可以找到很多好的学习资源,相信爱好学习舞蹈 ...

  7. 怎么写脚本_直播脚本怎么写|请收下这份攻略

    "口红一哥"李佳琦为何那么牛,有人说是因为站在了风口上,有人说是因为他标志性的吆喝声.事实上,更大的因素在于他对每场直播的精心准备.比如,李佳琦推荐每款产品时,往往都会提炼出一个. ...

  8. 2019 Go 开发者路线图,请收下这份指南!

    整理 | Rachel 责编 | 阿司匹林 出品 | AI科技大本营(ID: rgznai100) Go是Google开发的一种静态.强类型.编译型.并发型,并具有垃圾回收功能的类C编程语言. 200 ...

  9. CPU也能速刷AlphaFold2?英特尔:请收下这份23倍通量优化指南

    丰色 明敏 发自 凹非寺 量子位 | 公众号 QbitAI 搅翻计算生物界的AlphaFold2一开源,各种加速方案就争相涌现. 妹想到啊,现在居然有了个CPU的推理优化版本,不用GPU,效果也出人意 ...

最新文章

  1. 【 Sublime Text 】如何使用Sublime Text直接生成Verilog例化模板
  2. 高性能的MySQL(5)索引策略
  3. 给你两个经纬度,计算他们之间的距离
  4. react native 网络请求 axios
  5. Flask框架(flask中的蓝图Blueprint)
  6. 利用python对微信云数据库_如何用python看看女神的微信百度云里面有啥?
  7. 运行 ui5 serve 命令行报错的处理方法
  8. 关于Java的常见误解
  9. Spring使用内存数据库
  10. Gradle 2.0 用户指南翻译——第二十三章. Java 插件
  11. 使用Origin画出复杂网络博弈中合作率时间演化图(学术论文)
  12. AMC数学考试能用计算机吗,重大调整!今年美国数学竞赛AMC考试时间有变化!
  13. 手机和电脑如何连接无线投影仪
  14. 南加州计算机硕士学费,2016年度美国南加州大学排名及研究生学费费用简介.pdf...
  15. FreeSwitch呼入处理流程
  16. 将一个十进制数转化为二进制数,统计二进制数中1的个数
  17. nginx反向代理配置 1
  18. 孜孜进宝--菜鸟如何横行网络
  19. python程序设计从基础到开发夏敏捷_《Python程序设计——从基础到开发》 夏敏捷 杨关 张慧档 张慎武 宋宝卫 【正版电子纸书阅读_PDF下载】- 书问...
  20. (一)网络基础知识--图解TCP/IP

热门文章

  1. CI报Disallowed Key Characters的解决
  2. linux 命令详解 二十七
  3. 想在SqlDbHelper.cs类中加的垃圾方法
  4. matlab有限域多项式除法_椭圆曲线密码学简介(二):有限域的椭圆曲线及离散对数问题...
  5. 预测----三个原则
  6. COALESCE语句解救sql的sum问题
  7. CF 1093 E. Intersection of Permutations
  8. 【BZOJ 3879】SvT
  9. 使用complete的图片属性检测图片是否加载完毕
  10. 【bzoj3150】 cqoi2013—新Nim游戏