之前的Word Representation方法,Word2Vec, GloVe, fastText等对每个单词仅有一种表示,而通常单词的含义依赖其上下文会有所不同,而且每个单词不仅有一方面特征,而应有各方面特征如语义特征,语法特征等,这一讲集中讨论contextual word representation,主要比较了ELMO,GPT与BERT模型。
L层forward LSTM每层会产生一个依赖于上文的表示 h → k , j L M \overrightarrow{\mathbf{h}}_{k, j}^{L M} h k,jLM γ tas k \gamma^{\operatorname{tas} k} γtask是利用softmax归一化的权重, s task \mathbf{s}^{\text {task }} stask 是引入的可调控的scale parameter。
这里还是有点意思,大概和CNN一样,不同层似乎有不同的语义语法信息?较低层的LSTM代表了比较简单的语法信息,而上层的LSTM捕捉的是依赖于上下文的语义信息。 对于下游的任务,再将这些不同层的向量线性组合,再做监督学习。
Transformer下次再详细写 这是他的基本单元
GPT的核心思想是利用Transformer模型对大量文本进行无监督学习,其目标函数就是语言模型最大化语句序列出现的概率,不过这里的语言模型仅仅是forward单向的,而不是双向的。得到这些embedding后,再对下游的task进行supervised fine-tuning。
BERT原理与GPT有相似之处,不过它利用了双向的信息,因而其全称是Bidirectional Encoder Representations from Transformers。 BERT做无监督的pre-training时有两个目标:
一个是将输入的文本中 k%的单词遮住,然后预测被遮住的是什么单词。 这里可以高中英语完形填空来理解。 另一个是预测一个句子是否会紧挨着另一个句子出现。 预训练时在大量文本上对这两个目标进行优化,然后再对特定任务进行fine-tuning。 对这些任务的分析,以后写Albert会写到。
BERT由于采用了Transformer结构能够更好的捕捉全局信息,并且利用了上下文的双向信息,所以其效果要优于之前的方法,它大大提高了各项NLP任务的性能。