Categories
程式開發

為什麼預訓練語言模型ELMo 是NLP的最大進步之一?


本文最初發表於Medium 博客,經原作者Jerry Wei 授權,InfoQ 中文站翻譯並分享。

ELMo,是來自語言模型的嵌入(Ë來自大號痛苦dels)的縮寫,這是一種最先進的語言建模思想。是什麼讓它如此成功?

2018 年發表的論文《深度上下文的詞嵌入》(Deep Contextualized Word Embeddings),提出了語言模型嵌入(ELMo)的思想,在問答、情感分析和命名實體提取等多項熱門任務上都實現了最先進的性能。事實證明,ELMo 可以帶來高達5% 的性能提升。但是,是什麼讓這個想法如此具有革命性呢?

ELMo 是什麼?

Elmo 不僅僅是一個木偶人物玩具的名字,而且ELMo 還是一個強大的計算模型,可以將單詞轉換成數字。這一重要的過程允許機器學習模型(以數字而不是單詞作為輸入)可以在文本數據上進行訓練。

為什麼ELMo 這麼厲害?

當我通讀原始論文時,有幾個主要觀點引起了我的注意:

  1. ELMo 解釋了單詞的上下文。
  2. ELMo 是基於大型文本語料庫進行訓練的。
  3. ELMo 是開源的。

讓我們詳細討論一下這些要點,並討論它們的重要性。

1. ELMo 可以唯一地解釋單詞的上下文

像GloVe、詞袋和Word2Vec 只是根據單詞的字面拼寫生成嵌入。它們不會考慮單詞的使用方式。例如,在下面的示例中,這些語言模型將為“trust”返回相同的嵌入:

我不能相信您。
他們沒有相信留給他們的朋友。
他有一個相信基金。

然而,ELMo 會根據其周圍的單詞,返回不同的嵌入:其嵌入是上下文相關的。在這些示例中,它實際上會返回“trust”不同的答案,因為它會識別出該詞在不同的上下文中使用。這種獨特的能力本質上意味著ELMo 的嵌入有更多的可用信息,因此性能可能會提高。一種類似的解釋上下文的語言建模方法是伯特

2. ELMo 是基於大型文本語料庫訓練的

無論你是一名資深的機器學習研究者,還是一名普通的觀察者,你都可能熟悉大數據的威力。最初的ELMo 模型是在55 億個單詞的語料庫上進行訓練的,即使是“小”版本也有10 億個單詞的訓練集。這可是一個很大的數據量啊!在如此多數據上進行訓練,意味著ELMo 已經學習了很多語言知識,在大範圍的數據集上都會有不錯的性能。

3. 任何人都可以使用ELMo

推動機器學習領域發展的因素是將研究予以開源的文化。通過將代碼和數據集開源,研究人員可以讓該領域的其他人輕鬆地應用並構建現有的想法。與這種文化相一致,ELMo 是廣泛開源的。它有一個網站,不僅包括它的基本信息,還包括了模型的小版本、中版本和原始版本的下載鏈接。想使用EMLo 的人一定要看看這個網站,來獲取模型的快速拷貝。此外,該代碼還發佈在的GitHub上,並包括一個相當詳盡的自述文件,讓用戶知道如何使用ELMo。如果有人花了幾個小時的時間才能讓EMLo 模型正常運行,我會感到很驚訝。

為什麼預訓練語言模型ELMo 是NLP的最大進步之一? 1

ELMo 在著名的任務上取得了最先進的性能,如SQuAD、NER 和SST

作為上下文感知詞嵌入和大數據的強大組合,ELMo 在自然語言處理中的大數據集(包括SQuAD、NER 和SST)上取得了最先進的性能。 ELMo 徹底改變了我們處理計算語言學任務的方式,比如問答和情感檢測,這顯然是該領域的一個關鍵進展,因為原始論文已被引用了4500 多次。此外,在發表ELMo 的論文後,提交給最大的國際自然語言處理會議——計算語言學協會(Association for Computational Linguistics,ACL)會議收到的投稿量翻了一番,從2018 年的1544 份增加到2019 年的2905 份(不過這也可能是由於2019 年初發表的BERT)。

我還要指出的是,ELMo 和BERT 非常相似,因為它們都來自芝麻街(譯註:Elmo 和Bert 都是美國經典動畫片《芝麻街》的角色)!好吧,它們都是解釋單詞上下文的語言模型,都是基於大型數據集進行訓練的,並且正如給我們所知的自然語言處理領域帶來了革命性的變革。我還寫了一篇關於BERT 的弘文,如果你有興趣的話,可以讀一讀。

ELMo 是自然語言處理最大的進步之一,因為它本質上是第一個關注上下文的語言模型,允許在多種任務中實現更好的性能。

延伸閱讀

作者介紹:

Jerry Wei,對人工智能,尤其對醫學圖像分析和自然語言處理感興趣。

原文鏈接:

https://towardsdatascience.com/elmo-why-its-one-of-the-biggest-advancements-in-nlp-7911161d44be