從詞袋到 Transfomer,NLP 十年突破史

從詞袋到 Transfomer,NLP 十年突破史

作者 | Zelros AI,譯者 | 夕顏

出品 | AI科技大本營(ID:rgznai100)

自 2010 年創立以來,著名的數據科學競賽平臺 Kaggle 一直是機器學習趨勢演變的絕佳觀察場。這裡見證了機器學習史上的歷代突破,吸引了成千上萬從業者在這裡交流討論。

這個在線平臺發佈了各種類型的競賽挑戰(計算機視覺、語音等),其中自然語言處理(NLP)如今引起了特別的關注。確實,近幾個月以來,該領域正在見證數項令人興奮的創新。最新的一個技術是 Transfomer 和預訓練語言模型的問世。

今天,從 Kaggle 平臺的視角,我們來簡單回顧一下 NLP 的發展歷史。

从词袋到 Transfomer,NLP 十年突破史

2016年之前:詞袋和TF-IDF“一統天下”

在 2016 年左右往前,解決(並贏得勝利!)Kaggle NLP 挑戰的標準方法是使用詞袋(基本上就是計算一個單詞在文檔中出現的次數)來創建功能,以供機器學習分類器使用,例如典型的Naive Bayes。TF-IDF 略有改進。

例如,在 StumbleUpon Evergreen 分類挑戰賽中使用了這種方法(順便說一句,由 FrançoisChollet 於 2013年獲勝,就是那個兩年之後創建 Keras 的人)。

从词袋到 Transfomer,NLP 十年突破史

2016–2019年:詞嵌入+ Keras和Tensorflow的興起

2015年,出現了用於密集單詞表示的庫,例如 Gensim(包括 Word2vec 和 GloVe)。隨後出現了其他預訓練的嵌入,例如 Facebook FastText 和 Paragram。

同時,被廣泛採用、簡單易用的神經網絡框架的 Keras 和 Tensorflow 的第一個版本流行起來。有了它們,就可以開始按單詞順序捕獲含義,而不再僅按詞袋捕獲。

為了運行深度神經網絡,要解決的最後一個大障礙是:獲得很高的處理能力。這個可以通過使用低成本 GPU 解決。2017 年 3 月 Kaggle 被 Google 收購後更加開放,Kaggle 在其平臺上(通過協作 Notebooks 內核)免費開放。

從那時起,萬事俱備,單詞嵌入和神經網絡(RNN、LSTM、GRU 等…以及諸如注意力等改進)成為解決 Kaggle 上 NLP 任務的標準方法。這麼長的TF-IDF…

从词袋到 Transfomer,NLP 十年突破史

用遞歸神經網絡編碼單詞序列

从词袋到 Transfomer,NLP 十年突破史

2018–2019年:PyTorch的突破

近幾個月以來,一種新的神經網絡框架在數據科學界越來越受關注:PyTorch。

我們不討論 Tensorflow 和 PyTorch 哪個更優,但是可以確定的是,在 Kaggle上,PyTorch 參賽者社區蓬勃發展起來。平臺上會定期發佈 PyTorch notebook 和教程。

从词袋到 Transfomer,NLP 十年突破史

Tensorflow(藍色)與PyTorch(紅色)搜索趨勢(來源 | Google Trend)

从词袋到 Transfomer,NLP 十年突破史

2019:Transfomer和預訓練語言模型誕生

如前幾節所述,到目前為止,解決 NLP 任務的標準方法是使用單詞嵌入(在大量未標記的數據上進行預訓練),使用它們來初始化神經網絡的第一層,並在其上訓練其他層特定任務的數據(可能是文本分類、問題解答、自然語言推斷等)。

仔細想一下,問題是這種方法不是最佳的。確實,對於新任務,這種方法都必須幾乎從零開始重新學習所有的東西。用詞嵌入初始化的模型始終需要從頭開始學習如何從詞序列中得出含義,儘管這是語言理解的核心。

2018年,NLP 的關鍵範式轉變——Transfomer 誕生了:從僅初始化模型的第一層到使用分層表示對整個模型進行預訓練。這開闢了全新的工作方式:將信息從預先訓練的語言模型轉移到下游任務(也稱為遷移學習)。

从词袋到 Transfomer,NLP 十年突破史

Transfomer 模型架構,摘自論文 Attention is All You Need

在實踐中,如今,利用預訓練語言模型的最佳方法是使用 Hugging Face(由現在居住在美國的法國企業家和 Station F Microsoft AI Factory 的校友創建)的 Transfomer 庫。現在它與PyTorch 和 TensorFlow 兼容。如果你想完成諸如文本分類之類的簡單任務,可以試試

simple-transformers。

另外,如果你專注非英語文本,那麼另一個值得關注的庫是 fast.ai,該庫旨在結合針對不同語言的預訓練模型,由 Kaggle 前總裁兼首席科學家 Jeremy Howard 創建。

从词袋到 Transfomer,NLP 十年突破史

下一步是什麼?

每個人現在都可以使用最新一代預訓練語言模型的現成庫。這使得我們可以快速實驗,用上最先進的 NLP 技術。

關注未來Kaggle NLP 比賽中會如何使用這些技術將很有趣,比如最近的 TensorFlow 2.0 問題解答挑戰一樣,這個挑戰可以識別有關 Wikipedia 頁面內容的真實用戶問題的答案。敬請關注

【END】


分享到:


相關文章: