摘要:越来越火的NLP到底经历了什么?
2014年-序列到序列模型
2014年,Sutskever等人提出序列到序列学习,一种通过神经网络将一个序列映射到另一个序列的通用框架。在该框架中,编码器神经网络逐个符号地处理句子并将其压缩成矢量表示; 然后,解码器神经网络基于编码器状态逐个符号地预测输出符号,在每个步骤中将先前预测的符号作为输入,如下面的图8所示。
机器翻译成了这个框架的杀手级应用。2016年,谷歌宣布开始用NMT模型替换其基于单片短语的MT模型(Wu et al.,2016)。根据Jeff Dean的说法,这意味着用500线性神经网络模型替换500,000行基于短语的MT代码。
由于其灵活性,该框架现在是自然语言生成任务的首选框架,不同的模型承担编码器和解码器的角色。重要的是,解码器模型不仅可以以序列为条件,而且可以以任意表示为条件。这使得例如基于图像生成标题(Vinyals等人,2015)(如下面的图9中可见),基于表格的文本(Lebret等人,2016),以及基于源代码更改的描述(Loyola等,2017),以及许多其他应用程序。
序列到序列学习甚至可以应用于NLP中常见的结构化预测任务,其中NLP输出具有特定结构。简单地说,输出是线性化的,如下面图10中的consituency解析所示。神经网络已经证明了在给予consituency解析的足够数量的训练数据(Vinyals等,2015)和命名实体识别(Gillick等,2016)等的情况下,能够直接学习产生这种线性化输出的能力。
用于序列和解码器的编码器通常基于RNN,但是也可以使用其他模型类型,最新的架构主要来自作为序列到序列架构的培养皿MT的工作。最近的模型是卷积编码器(Kalchbrenner等,2016; Gehring等,2017),变换器(Vaswani等,2017),将在下一个部分讨论,以及LSTM和变压器的组合(Chen等,2018)。
2015-注意力
注意力(Bahdanau等,2015)NMT)的核心创新之一,也是使NMT模型优于基于经典短语的MT系统的关键思想。序列到序列学习的主要瓶颈是它需要将源序列的整个内容压缩成固定大小的矢量。注意力通过允许解码器回顾源序列隐藏状态来减轻这种情况,然后将其作为加权平均值提供给解码器的附加输入,如下面的图11所示。
注意力有不同的形式(Luong等,2015)在这里查看简要概述。 注意力广泛适用并且可能对任何需要根据输入的某些部分做出决策的任务有用。它已被应用于consituency解析(Vinyals等,2015),阅读理解(Hermann等,2015)和一次性学习(Vinyals等,2016)等。甚至输入不需要是序列,但可以包括其他表示,如图像字幕的情况(Xu et al.,2015),可以在下面的图12中看到。注意力的一个有用的副作用是,通过根据注意力量检查输入的哪些部分与特定输出相关。
注意力也不仅限于查看输入序列;自-注意力可用于查看句子或文档中的周围单词以获得更多上下文敏感的单词表示。多层自-注意力是Transformer架构的核心(Vaswani等,2017),这是目前最先进的NMT模型。
2015-基于记忆的网络
注意力可以看作是模糊记忆的一种形式,其中记忆由模型的过去隐藏状态组成,模型选择从记忆中所检索的内容。有关注意事项及其与记忆关联的更详细概述,请查看此文章。许多具有更明确记忆的模型已经被提出,它们有不同的变体,例如神经网络图灵机(Graves et al,2014),记忆网络(Weston et al.,2015)[70]和端到端的记忆网络(Sukhbaatar et al.,2015),动态记忆网络( Kumar等,2015),可微神经计算机(Graves等,2016)和递归实体网络(Henaff等,2017)。
通常基于与当前状态的相似性来访问内存,类似于注意力,并且通常可以写入和读取存储器,模型在实现和利用内存方面有所不同。例如,端到端记忆网络多次处理输入并更新内存以启用多个推理步骤。神经图灵机还具有基于位置的寻址,允许它们学习简单的计算机程序,如排序。基于记忆的模型通常应用于其中保留较长时间跨度信息的有用任务,例如语言建模和阅读理解。存储器的概念非常通用:知识库或表可以用作存储器,而存储器也可以基于整个输入或其特定部分来填充。
2018年 - 预训练语言模型
预训练的词嵌入与上下文无关,而且仅用于初始化模型中的第一层。最近几个月,一系列监督任务被用于预训练神经网络(Conneau等,2017; McCann等,2017; Subramanian等,2018)。相比之下,语言模型只需要未标记的文本; 因此,训练可以扩展到数十亿个tokens,新领域和新语言。 2015年首次提出了预训练语言模型(Dai&Le,2015); 直到最近,它们才被证明对各种各样的任务都有益。 语言模型嵌入可以用作目标模型中的特征(Peters等,2018),或者可以对目标任务数据微调语言模型(Ramachandran等,2017; Howard&Ruder,2018)。添加语言模型嵌入比许多任务的最新技术有了很大的改进,如下面的图13所示。
预训练语言模型可以用更少的数据进行学习,由于语言模型仅需要未标记的数据,因此对于标记数据稀缺的低资源语言尤其有用。有关预训练语言模型的更多信息,请参阅本文。
其他里程碑
基于字符的表示:在字符上使用CNN或LSTM来获得基于字符的词表示是相当普遍的,特别是对于形态学丰富的语言和形态信息很重要或具有许多未知单词的任务。据我所知,基于字符的表示首先用于序列标记(Lample等,2016; Plank等,2016)。基于字符的表示减少了必须以增加计算成本处理固定词汇表的需要,并且能够实现诸如完全基于字符的NMT之类的应用(Ling等人,2016; Lee等人,2017)。
对抗性学习:对抗性方法已经在风暴中占据了ML的领域,并且在NLP中也以不同的形式使用。对抗性示例越来越广泛地被广泛使用,不仅作为探测模型和理解其失败案例的工具,而且还使它们更加具有鲁棒性(Jia&Liang,2017)。对抗性训练:域对抗性损失(Ganin等,2016; Kim等,2017)是可以同样使模型更加健壮的有用的正规化形式。生成对抗网络(GAN)对于自然语言生成来说还不是太有效(Semeniuta等,2018),但是例如在匹配分布时是有用的(Conneau等,2018)。
强化学习:强化学习已经被证明对于具有时间依赖性的任务是有用的,例如在训练期间选择数据(Fang等,2017; Wu等,2018)和建模对话(Liu等,2018)。RL对于直接优化诸如ROUGE或BLEU之类的非可微结束度量而不是优化替代损失(例如摘要中的交叉熵(Paulus等,2018; Celikyilmaz等,2018)和机器翻译也是有效的。(Ranzato等人,2016),反向强化学习在犒赏太复杂而无法指定的环境中可能是有用的,例如视觉叙事(Wang et al。,2018)。
本文作者:【方向】
本文为云栖社区原创内容,未经允许不得转载。
作者:阿里云云栖社区
链接:https://www.jianshu.com/p/738e0281e6ba
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网友评论