【文本表征】2018年自然语言理解最火的三种方法

众所皆知的分布式词向量方法CBOM, skip-gram, Glove等已经成为NLP任务的标配,但致命的缺点是无法区别同一个词在不同语境下的含义,如“bank"无论是银行还是河岸的意思,词向量都是同一个,让人脑壳疼。本文要介绍的是2018年很火的三个方法:Elmo, GPT, BERT。它们能够处理多义词、反应不同的语境,从而更好地理解自然语言,并且在下游NLP任务中有突出表现。

1 ELMO

来自论文:“Deep contextualized word representation(2018.3)”
机构:Allen Institute for Artificial Intelligence

概述:文章提出ELMO模型,在大量的语料上训练一个深层双向语言模型,输入为一个完整的句子,句子中的词向量的表征由该模型隐层的函数表示。

1.1 基础:双向语言模型

前向语言模型是用前面的词去预测下一个词:
【文本表征】2018年自然语言理解最火的三种方法
句子中的词被映射到词向量之后,依次输入L层RNN,将该词在第L层输出的隐藏向量输入softmax去预测下一个词。

后向语言模型是用后面的词去预测前�一个词:
【文本表征】2018年自然语言理解最火的三种方法

双向语言模型是结合了前向和后向LM,即同时最大化前向和后向的似然对数。和以前的研究(Peters,2017)不同的是,这里的双向语言模型中两个方向是共享参数的。

1.2 Elmo模型结构

Elmo是基于双向语言模型的。若有biLM中有L层隐层,则对于词t_k,共有2L+1个表征:
【文本表征】2018年自然语言理解最火的三种方法

在下游任务中,ELMO会把所有表征给合并成一个表征。在简单的任务中,只选择最顶层的表征即可,但是一般情况下,会把所有层的表征加权求和:
【文本表征】2018年自然语言理解最火的三种方法
其中,s是经过softmax-normalized的权重,r是对于下游任务来说获取的ELMO向量的规模。
注意,biML每层的表征的分布可能会不同,最好也可以做一下layer normalization/

1.3 预训练Elmo模型

训练双向语言模型,
1.参数如下:
层数L=2;units=4096, dimension=512;
2.两层之间创建一个residual connection
3.在一些场景下,若在特定领域的语料中fine-tunig模型,会降低模型的perlexity并且提高在下游任务中的表现。

1.4 Elmo模型在下游NLP任务中的运用

给定:一个预训练好的biLM, 一个下游的监督模型结构。
步骤:
1.首先冻结biLM中的权重,根据权重加权ELMO的各层向量
2.将ELMO出来的向量输入下游模型。

2 GPT

来自论文:“Improving Language Understanding by Generative Pre-Training(2018)”
机构:OpenAI

概述:文章提出GPT模型,在大量的语料上预训练一个transformer语言模型,再在下游监督任务中进行微调。

2.1 无监督预训练GPT模型

给定语料,使用标准的语言模型目标函数来最大化一下的似然函数:
【文本表征】2018年自然语言理解最火的三种方法
注意,从公示中看这个是前向语言模型

在GPT中,使用多层的transformer decoder去构建语言模型,对输入的tokens应用multi-head self-attention,然后再进入position-wise feedforward layers来输出目标token的分布。
【文本表征】2018年自然语言理解最火的三种方法

2.2 有监督fine-tuning GPT模型

根据目标函数预训练好模型之后,用一个下游的监督任务来进行fine-tuning.同时求将语言模型和有监督的任务的目标函数,能提高模型的泛化能力并加速收敛。目标函数如下:
【文本表征】2018年自然语言理解最火的三种方法
L2是有监督任务的目标,L1是语言模型的目标,λ是权重。

【文本表征】2018年自然语言理解最火的三种方法

3 BERT

来自论文:“BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingn(2018.10)”
机构:Google AI Language

概述:文章提出BERT模型,在大量的语料上训练一个双向的transformer语言模型。

3.1 模型结构

模型结构参考transfomrer encoder端
文章总共做了那个两个模型:
【文本表征】2018年自然语言理解最火的三种方法
【文本表征】2018年自然语言理解最火的三种方法
其中Bert_base是参照着GPT的规模来做的,为了用于平等地比较

3.2 输入的表征

【文本表征】2018年自然语言理解最火的三种方法

3.3 预训练任务

(1)masked LM
(2)next sentence prediction