預訓練(Pre-train)語言模型可用於自然語言理解(Natural Language Understanding)的命名實體識別(Named Entity Recognition)、問答(Extraction-based Question Answering)、情感分析(Sentiment analysis)、文件分類(Document Classification)、自然語言推理(Natural Language Inference)等任務。
以及自然語言生成(Natural Language Generation)的機器翻譯(Machine translation)、自動摘要(Automatic summarization)、閱讀理解(Reading Comprehension)、資料到文本生成(Data-to-Text Generation)等任務。
本文透過列舉時下主流預訓練語言模型的特點,介紹最具代表性的ELMO、BERT及GPT-2模型;用最簡短的文字敘述,讓大家能夠輕易比較出差異。
ELMO(Embeddings from Language Model)
- RNN-based Language Models
- 透過一堆句子訓練,不需要標註
- 預測下一個Token
- 從RNN的hidden layer取得Contextulize word embedding
- 從正反向embedding接起來就是上下文的embedding
- 最後把每一層的embedding都加起來,再由後續任務學習到加權參數
- 94M個參數
Source: https://arxiv.org/abs/1802.05365
BERT(Bidirectional Encoder Representations from Transformers)
- 屬於Transformer的Encoder
- 只需要訓練Transformer的Encoder(輸入輸出一對一)
- 透過一堆句子訓練,不需要標註
- 給一個詞序列,每一個詞都會吐embedding
- 中文更適合用字為單位,因為用one-hot encoding詞太多了;常用中文字約4800個,中文詞則比這個高數倍
- Masked LM: 輸入詞序列中隨機15%的詞被換成特殊的Token [Mask],並做預測
- 預測下一個句子: 引入[SEP]代表兩個句子的交界,及[CLS]代表輸出分類結果的位置
- 上述兩種方法都是把抽出來[Mask]或[CLS]的Vector丟到Linear Multi-class Classifier去預測詞
- 以上兩種方法要同時使用
- 340M個參數
Source: https://arxiv.org/abs/1810.04805
GPT-2(Generative Pre-Training)
- 屬於Transformer的Decoder
- 預測下一個Token
- 40GB的文本訓練出來的
- 可以做到Zero-shot Learning,不需訓練資料,做到Reading Comprehension(F-score=55接近Dr.QA)、Summarization(跟隨機差不多)、Translation(跟隨機差不多)
- 1542M個參數