NLP系列文章(四)——ELMO

接文章《NLP系列文章(一)——按照學習思路整理髮展史》《NLP系列文章(二)——NLP領域任務分類、NNLM語言模型》《NLP系列文章(三)——word embedding》繼續講述NLP預訓練的那些事

 

ELMO是「Embedding from Language Models」的簡稱,論文《Deep contextualized word representation》。
在此之前的Word Embedding本質上是個靜態的方式,也就是訓練好後單詞的表達固定不變,在新任務使用的時候,不論新句子上下文是什麼,這個單詞的Word Embedding不會跟着上下文場景的變化而改變。

所以對於比如Bank這個詞,它事先學好的Word Embedding中混合了幾種語義 ,在應用中,遇到從上下文中明顯可以看出它是「銀行」含義的句子,其對應的Word Embedding也不會變,它還是混合了多種語義。這是爲何說它是靜態的,這也是問題所在。

ELMO的本質思想:
先用LM訓練好單詞的Word Embedding,雖然這時無法區分多義詞,不過這沒關係。在新任務實際使用Word Embedding的時候,單詞具備了特定的上下文,在這個環境下,再根據上下文語義去調整單詞的Word Embedding。
這樣經過調整後,Word Embedding就具備了表示聯繫上下文的具體含義,這樣也就解決了多義詞的問題。

綜上,我們能發現ELMO本身是個根據當前上下文對Word Embedding進行動態調整的過程

ELMO結構:
ELMO採用了典型的兩階段過程,第一個階段是利用語言模型進行預訓練;第二個階段是在做下游任務時,從預訓練網絡中提取對應單詞 網絡各層的Word Embedding作爲新特徵加入下游任務中。

1>預訓練
下圖是ELMO預訓練過程,它的網絡結構採用了雙層雙向LSTM,目前語言模型訓練的任務目標是根據單詞Wi的上下文去正確預測單詞Wi,Wi之前的單詞序列稱爲上文,之後的單詞序列稱爲下文。圖中左側的雙層LSTM代表正向encoder,是從左到右的順序輸入Wi的上文;右側的雙層LSTM代表逆向encoder,是從右到左的順序輸入Wi的下文;
 

一個單詞一個encoder,每個encoder都是雙層LSTM的疊加。這個網絡結構在NLP領域是常見的,用這個網絡結構做LM實現預訓練,之後輸入一個新句子Snew,句子的每個單詞都能得到相應的三個embedding:
①最底層Ex是word embedding,包含單詞特徵;②接着第一層LSTM的embedding,包含句法特徵更多;③在往上第二層LSTM的embedding,包含語義信息更多。
ELMO的預訓練過程的產物有兩個:①主產品→word embedding②副產品→雙層雙向LSTM網絡。他們兩者再後來都有用。

2>下游任務
預訓練好網絡結構後,如何用於下游任務?下圖是下游任務的使用過程。
還是針對QA這個下游任務,將問句X輸入到預訓練好的ELMO網絡,獲得每個單詞的三個Embedding,之後給每一個Embedding一個權重a【權重可學習】,根據各自權重累加求和,將預訓練得到的三個embedding整合爲一個。然後將整合後的Embedding作爲X句在任務的那網絡結構中對應單詞的輸入,以此作爲補充的新特徵給下游任務使用。
對於下圖所示的下游任務QA中的回答句子Y來說也是如此處理。因爲ELMO給下游提供的是每個單詞的特徵形式,所以這一類預訓練的方法被稱爲「Feature-based Pre-Training」。至於爲何這麼做能夠達到區分多義詞的效果,你可以想一想,其實比較容易想明白原因。
 

誰是開山之作?
而下圖是TagLM採用類似ELMO的思路做NER任務的過程。

TagLM是2017年ACL會議的論文,作者是AllenAI裏ELMO的人馬,可以將TagLM看做ELMO的一個前導工作。也有人認爲18年4月FastAI提出的ULMFiT纔是拋棄傳統Word Embedding引入新模式的開山之作,其實各有道理。
分析一下爲什麼說將TagLM看做ELMO的前導工作?
TagLM比ULMFiT出現的更早,結構模式和ELMO基本相似;不將ULMFiT作爲前驅者的原因如下:
①ULMFiT結構爲三階段:通用語言模型訓練後引入一個領域語言模型【論文的重點也在這裏,且方法複雜】,我們知道引入預訓練的原因之一就是要解決缺乏領域數據模型訓練效果不佳的問題,領域數據不足還將大量的經歷放在這裏可能不是很合適,畢竟我們最終要的是一個大規模有效的embedding。所以還是迴歸到通用模型上比較好;
②ULFMiT做了6個任務,都集中在分類問題,應用相對比較窄,不如ELMO驗證的問題領域廣,這應該就是其中領域語言模型帶來的限制。
 

ELMO獲得NAACL2018最佳論文當之無愧,相比ACL很多最佳論文好很多。


所以綜合看,儘管ULFMiT也是個不錯的工作,但是重要性跟ELMO比至少還是要差一檔,當然這是我個人看法。每個人的學術審美口味不同,我個人一直比較讚賞要麼簡潔有效體現問題本質要麼思想特別遊離現有框架腦洞開得異常大的工作,所以ULFMiT我看論文的時候就感覺看着有點難受,覺得這工作沒抓住重點而且特別麻煩,但是看ELMO論文感覺就賞心悅目,覺得思路特別清晰順暢,看完暗暗點贊,心裏說這樣的文章獲得NAACL2018最佳論文當之無愧,比ACL很多最佳論文也好得不是一點半點,這就是好工作帶給一個有經驗人士的一種在讀論文時候就能產生的本能的感覺,也就是所謂的這道菜對上了食客的審美口味。——張俊林


前面提到靜態Word Embedding無法解決多義詞的問題,那麼ELMO引入上下文動態調整單詞的embedding後 多義詞問題解決了嗎?
當然毋庸置疑解決了,而且解決得還要好。

如下圖這個例子,對於Glove訓練出的Word Embedding,根據 多義詞play 的embedding找出的最接近的單詞大多數集中在體育領域,這很明顯是因爲訓練數據中 包含play的句子中 體育領域的數量 佔優;

而使用ELMO,根據上下文動態調整後的embedding不僅能夠找出對應的「演出」的相同語義的句子,而且還可以保證找出的句子中的play對應的詞性也是相同的,這是超出期待之處。這是因爲ELMO預訓練模型結構的 第一層LSTM編碼了很多句法信息。
 

ELMO效果如何呢?

實驗效果如下圖,6個NLP任務中性能都有幅度不同的提升,最高的提升達到25%左右,而且這6個任務的覆蓋範圍比較廣,包含句子語義關係判斷,分類任務,閱讀理解等多個領域,這說明其適用範圍是非常廣的,普適性強,這是一個非常好的優點。
 

上面講述了ELMO的思想、結構、應用、開山作之爭、效果;那麼它有什麼缺點導致它沒有成爲里程碑式的創新?

ELMO有什麼值得改進的缺點呢?

①一個非常明顯的缺點在特徵抽取器的選擇上,ELMO使用了LSTM而不是新貴Transformer,Transformer是谷歌在17年做機器翻譯任務發表的《Attention is all you need》論文中提出的,引起了相當大的反響,很多研究已經證明了Transformer提取特徵的能力是要遠強於LSTM的。如果ELMO採取Transformer作爲特徵提取器,那麼估計Bert的反響也不會像現在這樣激烈。
②ELMO採取雙向拼接這種融合特徵的方式,這種方式的能力可能比Bert一體化的融合特徵方式弱一些【僅僅是猜想,後續有證據,單拉出來講】,我們如果把ELMO這種預訓練方法和圖像領域的預訓練方法對比,發現兩者模式看上去還是有很大差異的。
除了以ELMO爲代表的這種基於特徵融合的預訓練方法外,NLP裏還有一種典型做法,這種做法和圖像領域的方式就是看上去一致的了,一般將這種方法稱爲「基於Fine-tuning的模式」,而GPT就是基於Fine-tuning的模式的典型開創者