elmo\bert\gpt 都是语言模型。
语言模型介绍:深入浅出讲解语言模型 - 忆臻的文章 - 知乎
nlp中的预训练语言模型总结(单向模型、BERT系列模型、XLNet) - JayLou娄杰的文章 - 知乎
A word can have multiple senses
图:in typical word embedding, each word type has an embedding
bank是不同的token,但是是同样的type,就是bank。
token是NLP里分词的结果,是没有确定词义的一个词。
word2vector中,每一个word的type有一个embedding,所以不同的token,但它属于同一个type,则它所对应的embedding的一样的。
在过去的任务中,所有不同的token,但是它们的type是一样的,就假设它们的语义是一样的。
上述的bank,它们是不同的token,但是是同样的type,它们也有可能有不同的语义。
希望机器给不同意思的token,给出不同的embedding。
Contextualized word embedding
之前是每个type有一个embedding,现在希望每个token都有一个embedding
如何做到这种每个token都有一个embedding呢?
Embeddings from Language Model (Elmo)
rnn-based langauge models不需要标注数据,学到的技能就是预测下一个token是什么
因为rnn学到了潮水、高烧、臣退了等"退了"前面的词汇,所以这里的token会输出不一样的embedding。
但是上述方法只考虑到了"退了"的前文,没有考虑到后文。
因为要deep,所以叠加了很多层,每一层都有concat的embedding。所以到底选哪层的embedding当作这个token最后的embedding呢?elmo全都要。
假如deep了2层,所以下图只有h1、h2(当然如果叠了3层,就有h1\h2\h3了),在你不知道你用elmo抽出的embedding做什么任务之前,这里的 、
是不知道的,需要先设定好下游任务,再将
、
和下游任务的参数一起learn出来。
Bidirectional Encoder Representations from Transformers (BERT)
bert是transformer的encoder,encoder就是bert的network架构。只需要搜集一大堆的句子,不需要标注,就可以训练一个bert。(Transformer需要标注吗?)
although i use "word" as unit here, "character" may be a better choise for Chinese.
词:潮水;字:潮、水
中文常用的字是4000个,但是词无法穷尽,bert的输入也是要one-hot encoding的。中文用字更合适。
如何训练?
方式1:随机遮住50%的字,让bert去填回来。bert抽出的embedding通过多分类器,从而得到预测结果。
方式2:给bert 2个句子,让bert预测说这2个句子是接在一起的,还是不是接在一起的。
"你醒醒吧" 和 "你没有妹妹" 是接在一起的,希望bert学到。
[cls]分类,代表这两个句子要不要接在一起。目标就是训练句子要不要接在一起。
实验证明,方式1和方式2结合训练效果最好。
只要把elmo和bert想象为一个抽取特征的工具即可。(bert有中文版的,只需下载下来用即可。)
How to use BERT
case1
input一个句子,将要做分类的句子丢给bert, 然后等待class的结果。
linear classifier(trained from scratch)从头开始训练,这里的参数是随机初始化的。
case2
输入句子,输出embedding,预测每一个embedding是属于哪一个分类。(有监督)
注意这里CLS放在句首,需要明确的就是 transformer 是可以并行的,因为它与 RNN 这种按照时间展开的结构不同。所以CLS是放在前or后没有关系。
case3
知识推理
case4
extraction-based意思是答案在原文中一定可以找到
答案是文章中ds到de的token
求start,橙色(学习出来的参数)
求end,蓝色(学习出来的参数)
Generative Pre-Training (GPT)
最大的语言模型
如何预测?
GPT可以做zero-shot learning(不需要学习,直接能预测)
- Reading Comprehension
- Summarization
- Translation
https://talktotransformer.com