NLP小白學習路線(4)——Contextual Word Embeddings

上一篇我們介紹了Subword Models 模型
這一篇將介紹ELMO,GPT &BERT

Subword Models 模型是爲了解決單詞不存在於詞彙庫中的情況OOV(out-of-vocabulary)。並且對於單詞的變換,比如副詞,加-ed,-ing這種單詞的變形(morphology)處理的問題。
並在Word embedding最小單位爲單詞的基礎上,進一步縮小粒度爲Character embedding 以單詞字符爲最小粒度

ELMO

我們會發現word2vec無法解決一詞多義的問題,比如‘apple’這個詞在不同的上下文中語義是不同的:
Jobs was the CEO of apple.
He ate the apple.

解決方法:
1.前面文章提到過的char-level models
Hey, we just learned about char-level models to build
vectors! Let’s do that!
2. ELMO模型,能夠對多義詞進行建模,使用語言模型獲得一個上下文相關的預訓練表示。
使用一個雙向的LSTM語言模型,由一個前向和一個後向語言模型構成,目標函數就是取這兩個方向語言模型的最大似然。

ELMo的整體圖。第一使用了多層LSTM,第二增加了後向語言模型(backward LM)。
在這裏插入圖片描述
Note:
1.輸入是一個句子的embedding E1~En,輸出是T1~Tn(分別對應其上下文)
2.從圖中箭頭可以看出,目標T1生成的邏輯是,第1個lstm encoding的第1個輸出(即E1對應)+ 第2個lstm encoding的最後一個輸出(即En->E1)[即只使用了自己和下文];目標T2生成的邏輯是,第1個lstm encoding的第1-2個輸出(即E1->E1對應)+ 第2個lstm encoding的倒數第2個輸出(即En->E2)[即使用了上下文]。

OpenAI GPT

OpenAI Transformer是一類可遷移到多種NLP任務的,基於Transformer的語言模型,其利用Transformer的結構來進行單向語言模型的訓練。它的基本思想同ULMFiT相同,都是在儘量不改變模型結構的情況下將預訓練的語言模型應用到各種任務。不同的是,OpenAI Transformer主張用Transformer結構,而ULMFiT中使用的是基於RNN的語言模型。

OpenAI GPT的整體圖
在這裏插入圖片描述

BERT模型

BERT的全稱Bidirectional Encoder Representation from Transformers,即雙向Transformer的Encoder。模型的主要創新點都在pre-train方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation。作爲一個Word2Vec的替代者,其在NLP領域的11個方向大幅刷新了精度,可以說是近年來自殘差網絡最優突破性的一項技術了。

Bert模型的主要特點:
BERT的網絡架構使用的是《Attention is all you need》中提出的多層Transformer結構,其最大的特點是拋棄了傳統的RNN和CNN,通過Attention機制將任意位置的兩個單詞的距離轉換成1,有效的解決了NLP中棘手的長期依賴問題,能更徹底的捕捉語句中的雙向關係。
使用了Mask Language Model(MLM) [Wilson L Taylor. 1953. cloze procedure: A new tool for measuring readability.] 和 Next Sentence Prediction(NSP) 的多任務訓練目標;
使用更強大的機器訓練更大規模的數據,使BERT的結果達到了全新的高度,並且Google開源了訓練好的多語言BERT模型代碼,用戶可以直接使用BERT作爲Word2Vec的轉換矩陣並高效的將其應用到自己的任務中。

Bert模型的模型結構
在這裏插入圖片描述
參考博客:深度學習:ELMO、GPT和BERT模型

有待填坑:Transformer, attention

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章