31. ELMo (Embeddings from Language Models 嵌入式語言模型)

柯頌竹
Programming with Data
Feb 4, 2021

在 ELMo 之前,自然語言上的預訓練模型一直停留在淺層的詞向量,一直無法取得突破進展,比詞向量更深層的預訓練無法取得跨任務的成果,直到 ELMo 出現,使用更多層的預訓練模型,並一舉突破 2017 年七項不同 NLP 任務的最佳表現(論文發表於 2018 年),正式將 NLP 帶到預訓練模型的時代。

ELMo 突破的關鍵有二:

  • 非監督語言模型:ELMo 選擇了最原始的語言模型(Language Model),也就是不使用標籤,而是由目前已有的文句預測緊接而來的單字,這樣不僅訓練的文句量大(不須標籤,可直接採用 wiki 等文件庫),並且也避免了前述標籤以及語意所造成的洩漏
  • 雙向詞向量:詞向量就是使用非監督的語言模型訓練的模型,如果只是單純用語言模型訓練,必須要有其他方式突破預訓練的深度,而 ELMo 給的答案就是同時參考上下文的「雙向模型」

biLM(bidirectional Language Model) 訓練任務

結合語言模型的雙向模型,稱為 biLM(bidirectional Language Model),biLM 的訓練與傳統詞向量訓練的最大差異,就是允許一字多義的存在。

ELMo 模型的內部形式

ELMo 的內部形式,我們可以理解為兩個方向分離的 LSTM,在輸出的時候,把兩個方向的輸出向量再以單字為準合併,雖然與詞向量的輸出都一樣與訓練語句同樣長度,但是其實是包含兩個不同方向的輸出結果,因此在類比時才能滿足 biLM 與上下文都相關的結果

這裡要特別提到的一點,是兩個方向的 LSTM 在訓練與輸出都是各自獨立的,這點與後續要提到的 Bert 有大不同

ELMo 的成果

後續模型雖然各有改良,但基本上都能呈現 NLP 預訓練模型的優越性,至此,NLP 可以說正式地進入了預訓練的新時代。

--

--

柯頌竹
Programming with Data

熱愛自由行、參觀各種形式的展覽,踏上過20個國家的領土。歡迎詢問各種在歐洲自由行的問題。偶爾分享一下資料分析的讀書筆記。