解決問題:“機器如何看懂人類的文字,如何把文字輸入電腦”
一、發展曆史
1.1 of n encoding
每一個詞有一個獨特編碼,詞于詞之間沒有任何關聯(歐氏距離一樣)

2.word class
給詞分類,但太粗糙了。每個class裡仍有1.中的問題(歐式距離相同)
3.word embedding
每個詞彙用一個向量表示,向量中的每一個次元表示某個特性。(用上下文完成訓練)
同一個type,同一個embedding
但對于**【一詞多義】(不同的token(含義),同一個type(字形))**,仍用同一個embedding,并不準确
4.contextualized word embedding
一個token對應一個embedding(也是通過上下文)
上下文相似,就會有相似的embedding
token:語義
輸入句子的分詞結果,注意即使同一個詞出現兩遍,他分完詞也是2個token,有不同的embedding
type:spelling
4.1ELMO(embedding from language model)
從輸入預測下一個token
把上下文的embedding連結起來
問題:當網絡深度大于1時,各層的embedding如何處理
elmo:我全都要
不同任務的alpha1、2不同
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】
解決的問題:完形填空,預測被遮蓋住的是什麼詞
**方法:**抽出被mask的單詞經過bert網絡後輸出的vector,輸入到LM分類器中(線性的,弱分類器),讓分類器預測是哪個詞
思想:LM很弱,那麼要分類正确,BERT的representation就必須很強,可以通用
形成的問題:完形填空的兩個詞,填在同一個地方沒有違和感,那這2詞embedding很像
1.2.next sentence prediction(預測下一個句子是什麼)
判斷兩個句子是不是連在一起的
需要兩個标記【SEP】【CLS】
把【CLS】的embedding,放進linear binary 分類器,輸出判斷,是否是下一個句子
linear binary 分類器和bert是一起被訓練的
問題:為什麼把判斷标志放在開頭?
因為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分類
輸入:句子
輸出:分類
比如,文章分類、句子是正面還是負面資訊
2.3詞的分類
輸入:單句
輸出:每個詞的類别
比如,slot filling
每個詞彙output的embedding,進入linear分類器(LC)輸出每個詞的分類分類
end to end,LC(從頭學)和bert(fine-tune)一起訓練
2.4 推斷關系
輸入:2個句子
輸出:分類
比如,【自然語言推論】,給前提+假設,判斷假設對不對
2.5 extraction based Question Answering
給model讀一篇文章,問他一個問題,希望他能給出答案
,答案一定在文章裡(extraction based)
如果s>e,說明此題無答案
3.bert每層學到了什麼
24層
NLP的幾個任務:POS、、、relations(圖左)
位置,文法,指代,詞間的關系等等
一個詞的24層的vector抽出來做weight descent
weight(圖右深藍,哪一層的方塊越長,說明那層的embedding乘上的weight越大)是根據任務訓練出來的,看weight的情況,就可而已知道什麼任務特别需要哪些層
圖右的每一個橫軸表示一個任務,某層在該任務中的值(藍色方塊)越高,說明這個任務越需要哪一層
4.multilingual bert
104種語言的資料都給同一個bert學習,他會學到不同語言之間的對應關系
有人教他了英文文章的分類,他自動就學會了中文文章的分類
三、ERNIE
專為中文設計
bert時 maskLM用蓋的是字,但是對中文來說遮蓋字太容易被猜出來了,應該遮蓋詞——ERNIE
四、GPT—transformer的decoder
generative pre training
買點:巨大
GPT-2:1542M
GPT-3:1700M
4.1解決問題:這個詞的下一個是什麼
輸入:潮水
輸出:退了
再增加輸入:退了
輸出:就
。。。
4.3 步驟
退了拿下來,再加入輸入中
不斷重複
4.4 用途
可以用來寫作,給文章的前半段,可以自己完成文章