關於疫情的一段對話:
中國:我們這邊快完了
歐洲:我們這邊快完了
中國:我們好多了
歐洲:我們好多了
挑戰:
語言理解的四個粒度:
好的表示是實現語言理解的基礎:一個好的表示,是要具備通用涵義,並且與具體任務無關,是時又能根據具體任務,提供有用資訊
理解是針對任務的理解:字詞,關注區域性資訊;句子篇章,關注文字的全域性資訊
CBOW:基於臨近詞(上下文)預測詞
Skip-Ngram:基於詞預測臨近詞(上下文)
ELMo:第一個現代的語意理解模型
利用兩個LSTM,分別從左到右,從右到左的語言模型建模,實現建模上下文資訊的目的。
兩層LSTM:從低層到高層,逐個獲取不同層次的語言資訊,從最低層單詞特徵,到最高層語文特徵
在獲取了預訓練模型特徵以後,如何應用到具體的任務中。
ELMo:採用了 Feature-Based 方式進行應用
加權相加引數 \(a_1、a_2、a_3\) 是可學習的。這是實現動態 Word Embedding 關鍵所在
ELMo 不僅解決了多義詞的問題,而且可以將詞性對應起來
ELMo:有什麼缺點?
問題1:不完全雙向預訓練
模型的前向和後向LSTM兩個模型是分別訓練的,僅在Loss Function階段進行了結合。
問題2:需進行任務相關網路結構設計(GPT可解決網格設計問題)
每種型別的下游任務都需要進行特定的網路結構設計和搭建
問題3:僅有詞向量,無句向量
ELMo在預訓練階段僅學習了語言模型,無句向量學習任務
對BERT的誕生,起到了非常明顯的推動作用
Pre-training 作為 下游任務的一部分參與任務學習,大量減少下游任務網路中新增引數的數量。同時,下游任務的網路,相比較預訓練網路,也只有少量結構上的變動,這樣會節省大量時間
對於分類任務:模型只需要在輸入文字上加上起始(Start)和終結(Extract)的符號,並在網路後端新增一個分類器(FC)。
對於句子判斷:如語言識別,兩個句子中增加分隔符就可以了。
對於文字相似度判斷、多項選擇:只需要少量改動,就能實現 Fine-Tuning 過程
GPT
優點:帶來了明顯的效果提升,也極大的簡化了任務網路相關的結構
缺點:
Pre-training階段
Pre-training 目標:
同時訓練token-level & sentence-leveltask
BERT:Pre-training 策略分析
BERT Mast-LM ,Mask 力度是 Token(單個字)
BERT 如何將自己的預訓練模型,應用到下游任務?使用了簡單粗暴的方式:偽結果論
BERT缺點
BERTmask(sub-word)lm任務存在的問題:
將token 力度擴充套件到了 word 或 entity,使用了百度自建的語意庫
ERNIE 在 Fine-tuning 使用了和 BERT 完全一致的方式
2.0 在預訓練階段,引入了更多的預訓練任務
如何在學習新知識的同時,不忘舊知識
在預訓練階段,不斷進行任務的疊加訓練
NLP部分經典任務總覽
預訓練語言模型在下游任務的優勢
預訓練模型,不是越大越好
預訓練模型,如何達到收斂的狀態?一直是一個難以界定的範圍,越訓越大,很難做到預訓練充分的結果。目前常規採取的方式是,讓它一直訓著,抽取實時對預訓練模型中產生的中間模型,進行一個具體任務驗證,隨時採取一個文字匹配任務進行 Fine-Tuning 驗證,如果預訓練後期,發現了在很長一段時間內,在這樣一個驗證的下游任務上,得到的 Fine-Tuning 結果,基本持平,我們就認為這個模型達到了一個收斂的狀態,或者說區域性收斂的狀態,這時候就可以給它停下來了。沒有一個特別規範的指標