【NLP-13】ELMo模型(Embeddings from Language Models)


目錄

  1. ELMo簡介
  2. ELMo模型概述
  3. ELMo模型解析
  4. ELMo步驟
  5. 總結

一句話簡介2018年發掘的自回歸模型,采用預訓練和下游微調方式處理NLP任務;解決動態語義問題,word embedding 送入雙向LSTM,損失函數基於兩個LSTM判斷的loss求和,最后通過softmax求解。

   

一、ELMo簡介

1.1 背景

word embedding 是現在自然語言處理中最常用的 word representation 的方法,常用的word embedding 有word2vec的方法,然而word2vec本質上是一個靜態模型,所謂靜態指的是訓練好之后每個單詞的表達就固定住了,以后使用的時候,不論新句子上下文單詞是什么,這個單詞的 Word Embedding 不會跟着上下文場景的變化而改變,所以對於比如 Bank 這個詞,它事先學好的 Word Embedding 中混合了幾種語義,在應用中來了個新句子,即使從上下文中(比如句子包含 money 等詞)明顯可以看出它代表的是「銀行」的含義,但是對應的 Word Embedding 內容也不會變,它還是混合了多種語義。這是為何說它是靜態的,這也是問題所在。

1.2 介紹

ELMo的提出就是為了解決這種語境問題,動態的去更新詞的word embedding。ELMo的本質思想是:事先用語言模型在一個大的語料庫上學習好詞的word embedding,但此時的多義詞仍然無法區分,不過沒關系,我們接着用我們的訓練數據(去除標簽)來fine-tuning 預訓練好的ELMO 模型。作者將這種稱為domain transfer。這樣利用我們訓練數據的上下文信息就可以獲得詞在當前語境下的word embedding。作者給出了ELMO 和Glove的對比。

1.3 效果對比

對於Glove訓練出來的word embedding來說,多義詞play,根據他的embedding 找出的最接近的其他單詞大多數幾種在體育領域,這主要是因為訓練數據中包含play的句子大多數來源於體育領域,之后在其他語境下,play的embedding依然是和體育相關的。

而使用ELMO,根據上下文動態調整后的embedding不僅能夠找出對應的"表演"相同的句子,還能保證找出的句子中的play對應的詞性也是相同的。接下來看看ELMO是怎么實現這樣的結果的。

二、ELMO模型概述

ELMO 采用了典型的兩階段過程:

第一個階段是利用語言模型進行預訓練;

第二個階段是在做下游任務時,從預訓練網絡中提取對應單詞的網絡各層的 Word Embedding 作為新特征補充到下游任務中。

上圖展示的是其預訓練過程,它的網絡結構采用了雙層雙向 LSTM,目前語言模型訓練的任務目標是根據單詞的上下文去正確預測單詞,輸入的是從左到右順序的除了預測單詞外的上文 Context-before;右端的逆向雙層 LSTM 代表反方向編碼器,輸入的是從右到左的逆序的句子下文 Context-after;每個編碼器的深度都是兩層 LSTM 疊加。這個網絡結構其實在 NLP 中是很常用的。

使用這個網絡結構利用大量語料做語言模型任務就能預先訓練好這個網絡,如果訓練好這個網絡后,輸入一個新句子Snew,句子中每個單詞都能得到對應的三個Embedding:最底層是單詞的 Word Embedding,往上走是第一層雙向LSTM中對應單詞位置的 Embedding,這層編碼單詞的句法信息更多一些;再往上走是第二層LSTM中對應單詞位置的 Embedding,這層編碼單詞的語義信息更多一些。也就是說,ELMO 的預訓練過程不僅僅學會單詞的 Word Embedding,還學會了一個雙層雙向的LSTM網絡結構,而這兩者后面都有用。

上面介紹的是 ELMO 的第一階段:預訓練階段。那么預訓練好網絡結構后,如何給下游任務使用呢?上圖展示了下游任務的使用過程,比如我們的下游任務仍然是 QA 問題,此時對於問句 X,我們可以先將句子 X 作為預訓練好的 ELMO 網絡的輸入,這樣句子 X 中每個單詞在 ELMO 網絡中都能獲得對應的三個 Embedding(文中3個1024維的向量表示),之后給予這三個 Embedding 中的每一個 Embedding 一個權重 a,這個權重可以學習得來,根據各自權重累加求和,將三個 Embedding 整合成一個。然后將整合后的這個 Embedding 作為 X 句在自己任務的那個網絡結構中對應單詞的輸入,以此作為補充的新特征給下游任務使用。對於上圖所示下游任務 QA 中的回答句子 Y 來說也是如此處理。因為 ELMO給下游提供的是每個單詞的特征形式,所以這一類預訓練的方法被稱為"Feature-based Pre-Training"

三、ELMO模型解析

3.1 模型結構

ELMO 基於語言模型的,確切的來說是一個 Bidirectional language models,也是一個 Bidirectional LSTM結構。我們要做的是給定一個含有N個tokens的序列。分為以下三步:

第一步:得到word embedding,即上圖的E。所謂word embedding就是一個n*1維的列向量

第二步:送入雙向LSTM模型中;

第三步:將lstm的輸出hk,與上下文矩陣W′相乘,再將該列向量經過softmax歸一化。其中,假定數據集有V個單詞,W′是|V|*m的矩陣,hk是m*1的列向量,於是最終結果是|V|*1的歸一化后向量,即從輸入單詞得到的針對每個單詞的概率。

3.2 公式解析

前向表示:

后向表示相似:

biLM訓練過程中的目標就是最大化:

兩個網絡里都出現了Θx和Θs,兩個網絡共享的參數。

其中Θx表示映射層的共享,表示第一步中,將單詞映射為word embedding的共享,就是說同一個單詞,映射為同一個word embedding。

Θs表示第三步中的上下文矩陣的參數,這個參數在前向和后向lstm中是相同的。

ELMo對於每個token tk, 通過一個L層的biLM計算2L+1個表征(representations),這是輸入第二階段的初始值:

其中下標解釋: k 表示單詞位置,j 表示所在層,j=0 表示輸入層。故整體可用右側的 h 表示。具體如下:

是對token進行直接編碼的結果(這里是字符通過CNN編碼), 代表 , 是每個biLSTM層輸出的結果。在實驗中還發現不同層的biLM的輸出的token表示對於不同的任務效果不同.最上面一層的輸出是用softmax來預測下面一個單詞

應用中將ELMo中所有層的輸出R壓縮為單個向量, , 最簡單的壓縮方法是取最上層的結果做為token的表示:, 更通用的做法是通過一些參數來聯合所有層的信息:

其中  是softmax標准化權重, 是縮放系數,允許任務模型去縮放整個ELMO向量。文中提到γ在不同任務中取不同的值效果會有較大的差異, 需要注意, 在SQuAD中設置為0.01取得的效果要好於設置為1時。

四、ELMO步驟

ELMO的使用主要有三步:

1)在大的語料庫上預訓練 biLM 模型。模型由兩層bi-LSTM 組成,模型之間用residual connection 連接起來。而且作者認為低層的bi-LSTM層能提取語料中的句法信息,高層的bi-LSTM能提取語料中的語義信息。

2)在我們的訓練語料(去除標簽),fine-tuning 預訓練好的biLM 模型。這一步可以看作是biLM的domain transfer。

3)利用ELMO 產生的word embedding來作為任務的輸入,有時也可以即在輸入時加入,也在輸出時加入。

五、總結

4.1 優勢

  1. 多義詞方面的極大改善;
  2. 效果提升:6 個 NLP 任務中性能都有幅度不同的提升,最高的提升達到 25% 左右,而且這 6 個任務的覆蓋范圍比較廣,包含句子語義關系判斷,分類任務,閱讀理解等多個領域,這說明其適用范圍是非常廣的,普適性強,這是一個非常好的優點。

4.2 劣勢

  1. 那么站在現在這個時間節點看,ELMo有什么值得改進的缺點呢?首先,一個非常明顯的缺點在特征抽取器選擇方面,ELMo 使用了 LSTM 而不是新貴 Transformer,Transformer 是谷歌在 17 年做機器翻譯任務的"Attention is all you need"的論文中提出的,引起了相當大的反響,很多研究已經證明了 Transformer 提取特征的能力是要遠強於 LSTM 的;
  2. 訓練時間長,這也是RNN的本質導致的,和上面特征提取缺點差不多;
  3. ELMo采取雙向拼接這種融合特征的能力可能比 Bert 一體化的融合特征方式弱,但是,這只是一種從道理推斷產生的懷疑,目前並沒有具體實驗說明這一點。

參考文獻

0】原始論文: https://arxiv.org/pdf/1802.05365.pdf

1】一種新的embedding方法--原理與實驗:https://zhuanlan.zhihu.com/p/37915351

2】從Word Embedding到Bert模型——自然語言處理預訓練技術發展史: https://www.jiqizhixin.com/articles/2018-12-10-8

3】ELMo原理解析及簡單上手使用: https://zhuanlan.zhihu.com/p/51679783


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM