天天看點

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

解決問題:“機器如何看懂人類的文字,如何把文字輸入電腦”

一、發展曆史

1.1 of n encoding

每一個詞有一個獨特編碼,詞于詞之間沒有任何關聯(歐氏距離一樣)

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

2.word class

給詞分類,但太粗糙了。每個class裡仍有1.中的問題(歐式距離相同)

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

3.word embedding

每個詞彙用一個向量表示,向量中的每一個次元表示某個特性。(用上下文完成訓練)

同一個type,同一個embedding

但對于**【一詞多義】(不同的token(含義),同一個type(字形))**,仍用同一個embedding,并不準确

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

4.contextualized word embedding

一個token對應一個embedding(也是通過上下文)

上下文相似,就會有相似的embedding

token:語義

輸入句子的分詞結果,注意即使同一個詞出現兩遍,他分完詞也是2個token,有不同的embedding

type:spelling

4.1ELMO(embedding from language model)

從輸入預測下一個token

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

把上下文的embedding連結起來

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

問題:當網絡深度大于1時,各層的embedding如何處理

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

elmo:我全都要

不同任務的alpha1、2不同

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

4.2 bert

1.transformer的encoder

Elmo:基于rnn

bert:基于self attention

2.不需要annotation

bert 不需要label資料(annotation 注解),隻要一大堆句子就好了,隻訓練transformer的encoder就好了

transformer需要label資料(annotation 注解)

*注意:中文的訓練用字比詞好,因為中文的字有限,詞不好窮舉,是以現在中文的bert 預訓練隻有字

二、bert

1.training of bert

1.1 masked LM(完型填空)

随機15%的詞彙被遮蓋,被置換成一個特殊的token【mask】

解決的問題:完形填空,預測被遮蓋住的是什麼詞

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

**方法:**抽出被mask的單詞經過bert網絡後輸出的vector,輸入到LM分類器中(線性的,弱分類器),讓分類器預測是哪個詞

思想:LM很弱,那麼要分類正确,BERT的representation就必須很強,可以通用

形成的問題:完形填空的兩個詞,填在同一個地方沒有違和感,那這2詞embedding很像

1.2.next sentence prediction(預測下一個句子是什麼)

判斷兩個句子是不是連在一起的

需要兩個标記【SEP】【CLS】

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

把【CLS】的embedding,放進linear binary 分類器,輸出判斷,是否是下一個句子

linear binary 分類器和bert是一起被訓練的

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

問題:為什麼把判斷标志放在開頭?

因為bert裡是self-attention結構,不是RNN(rnn要放在開頭)

self attention的特點是【天涯若比鄰】(不考慮位置embedding時),兩個相鄰的word和距離很遠的word是一樣的,是以前後都一樣

論文中1.1masked LM和1.2NSP是一起使用的,bert同時訓練這兩種embedding效果最好

2.how to use bert

2.1.把bert當elmo,輸出embedding,抽取相關特征,做你想做的事情

2.2分類

輸入:句子

輸出:分類

比如,文章分類、句子是正面還是負面資訊

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

2.3詞的分類

輸入:單句

輸出:每個詞的類别

比如,slot filling

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

每個詞彙output的embedding,進入linear分類器(LC)輸出每個詞的分類分類

end to end,LC(從頭學)和bert(fine-tune)一起訓練

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

2.4 推斷關系

輸入:2個句子

輸出:分類

比如,【自然語言推論】,給前提+假設,判斷假設對不對

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

2.5 extraction based Question Answering

給model讀一篇文章,問他一個問題,希望他能給出答案

,答案一定在文章裡(extraction based)

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

如果s>e,說明此題無答案

3.bert每層學到了什麼

24層

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

NLP的幾個任務:POS、、、relations(圖左)

位置,文法,指代,詞間的關系等等

一個詞的24層的vector抽出來做weight descent

weight(圖右深藍,哪一層的方塊越長,說明那層的embedding乘上的weight越大)是根據任務訓練出來的,看weight的情況,就可而已知道什麼任務特别需要哪些層

圖右的每一個橫軸表示一個任務,某層在該任務中的值(藍色方塊)越高,說明這個任務越需要哪一層

4.multilingual bert

104種語言的資料都給同一個bert學習,他會學到不同語言之間的對應關系

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

有人教他了英文文章的分類,他自動就學會了中文文章的分類

三、ERNIE

專為中文設計

bert時 maskLM用蓋的是字,但是對中文來說遮蓋字太容易被猜出來了,應該遮蓋詞——ERNIE

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder
BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

四、GPT—transformer的decoder

generative pre training

買點:巨大

GPT-2:1542M

GPT-3:1700M

4.1解決問題:這個詞的下一個是什麼

輸入:潮水

輸出:退了

再增加輸入:退了

輸出:就

。。。

4.3 步驟

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

退了拿下來,再加入輸入中

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

不斷重複

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

4.4 用途

BERT、Elmo、GPT一、發展曆史二、bert三、ERNIE四、GPT—transformer的decoder

可以用來寫作,給文章的前半段,可以自己完成文章

繼續閱讀