注意:博主本身第一次接触NLP。该博文只是把博主目前能够理解的部分记录了下来,以下内容实际上还有很多的细节需要进一步补充!
1. 学习内容
1. ELMo
2. Transformer
3. GPT
4. BERT
2. ELMo
无论我们使用那种方法去训练一个词向量,当我们对一个中心词进行训练时,上下文的语义也就出现了。此时,我们可以根据上下文的语义去对中心词的词向量进行调整。这样,经过调整的词向量就更能表达它在上下文中的具体含义,从而解决了一词多义的问题。
ELMo分为两个阶段:首先,采用双层双向LSTM对上下文进行编码。此时的上下文使用静态的是静态词向量。 对每层的LSTM,将上文向量与下文向量进行拼接作为当前向量,再利用大量的语料来训练这个网络。然后,将一个新的句子作为输入。该句子在ELMo网络中能获得三个向量,将三个向量做加权处理就得到了最后的词向量。
3. GPT
GPT与ELMO相似,也是采用框架类似的两阶段模式。不过,与ELMo稍微不同的是,GPT是使用transformer进行提取特征的,并且是单向的transformer,这意味着GPT只是根据上文来预测某个词。
4. Transformer
Transformer是完全依赖注意力机制来刻画输入和输出之间的全局依赖关系的。这样做有两个好处:第一是可以有效的防止RNN自身的梯度消失问题;第二是允许进行并行训练,大大加快了计算速度。
5. BERT
BERT相对于GPT的变化之处一个是把transformer从单向变成了双向,另一个就是使用了独有的Masked语言模型和Next Sentence Prediction。前者是将输入的文本中 k%的单词遮住,然后预测被遮住的是什么单词;后者则是预测一个句子是否会紧挨着出现在另一个句子后面。
BERT由于采用了双向transformer使其能够更好的捕捉和利用全局信息,所以其效果要优于之前的方法。它大大提高了NLP任务的性能,因此成为了目前的业界宠儿。