Kaggle最流行NLP方法演化史,從詞袋到Transformer

 2019-11-12 15:00:28.0

根據語境,此處「it」指代「animal」或「street」。(來源:https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)

著名數據科學競賽平臺 Kaggle 成立於 2010 年,是瞭解機器學習進化趨勢的重要觀測器。Kaggle 見證了幾代技術突破,吸引了數千名從業者和數百萬論壇討論。

在 Kaggle 平臺的衆多挑戰中,自然語言科學(NLP)尤其受到關注。的確,這幾個月以來該領域出現了多項振奮人心的創新。最近的創新則莫過於 Transformer 和預訓練語言模型了。

本文將透過 Kaggle 的歷史簡要介紹 NLP 的發展進程。

2016 年之前:詞袋和 TF-IDF 稱霸

在 2016 年之前,解決並贏得 Kaggle NLP 挑戰的標準方式是:使用詞袋(計算單詞在文檔中的出現次數)創建特徵,並輸入到機器學習分類器中,如樸素貝葉斯分類器。而 TF-IDF 則對其進行微調。

該方法曾用於 StumbleUpon Evergreen Classification Challenge 挑戰賽中。(2013 年,François Chollet 獲得了該挑戰賽的冠軍,兩年後他創造了 Keras。

2016–2019:詞嵌入+Keras/TensorFlow 崛起

2015 年,用於處理密集詞表徵的庫誕生,如 Gensim(包括 Word2vec 和 GloVe)。其他預訓練嵌入也應運而生,如 Facebook FastText 或 Paragram。

目前神經網絡框架 Keras 和 TensorFlow 具備易用性且吸引了大量用戶,那時它們的初始版本已開始流行。這些框架讓捕捉詞序列的意義成爲可能,而不僅僅是捕捉詞袋的意義。

要運行深度神經網絡,需要解決最後一個大問題:獲取強大的處理能力。低成本 GPU 的應用解決了這一難題。2017 年 3 月 Kaggle 被谷歌收購後,開始(通過 Notebooks kernel)免費提供 GPU,這使得開發者能夠更容易地獲取處理能力。

之後,所有實際 NLP 方法都開始使用詞嵌入和神經網絡(RNN、LSTM、GRU 等等,以及注意力機制等),這成爲解決 Kaggle NLP 挑戰賽的標準方式。TF-IDF 成爲過去式……

使用 RNN 編碼詞序列。

2018–2019:PyTorch 的突破

最近,一種新的神經網絡框架 PyTorch 受到了數據科學社區的關注。

且不談 TensorFlow 和 PyTorch 的較量,我們可以確定地說 PyTorch 用戶活躍社區在 Kaggle 上發展迅速。Kaggle 平臺經常出現 PyTorch notebook 和教程。

TensorFlow(藍色)和 PyTorch(紅色)的谷歌搜索趨勢(來源:Google Trend)

2019:Transformer 的出現和預訓練模型大爆發

如前所述,之前解決 NLP 任務的標準方式是使用詞嵌入初始化神經網絡的第一層,然後基於特定任務的數據訓練其他層(這些任務可以是文本分類、問答、自然語言推斷等)。

仔細想想你會發現,這並非最優方法。因爲每次有新任務時,你都要從零開始學習。使用詞嵌入進行初始化的模型通常需要從頭學習如何推導詞序列的意義,儘管這是語言理解的核心。

這時候 Transformer 來了,這一重要的範式轉變在 2018 年就已出現:從僅初始化模型的第一層轉變爲使用層級表徵初始化整個模型。這開啓了新的工作方式:將預訓練語言模型的信息遷移到下游任務(即遷移學習)。

Transformer 模型架構(圖源:https://arxiv.org/abs/1706.03762)

在實踐中,目前利用預訓練語言模型的最優方式是使用 Hugging Face 創建的 Transformer 庫。該庫可與 PyTorch、TensorFlow 兼容。如果你想要基於該庫的 wrapper,來解決文本分類等簡單任務,可查看 https://towardsdatascience.com/simple-transformers-introducing-the-easiest-bert-roberta-xlnet-and-xlm-library-58bf8c59b2a3。

如果處理的是非英文文本,你可以看看另一個庫 fast.ai,它包含針對不同語言的預訓練模型。(fast.ai 庫的創建者 Jeremy Howard 曾擔任 Kaggle 總裁和首席科學家。)

展望

現在每個人都可以使用最新一代預訓練語言模型的現成庫,這允許快速試驗,也促進了當前最優 NLP 技術的民主化。

不知道它們會在以後的 Kaggle NLP 競賽中發揮怎樣的作用,觀察這一點想必會很有趣。

原文鏈接:https://medium.com/@Zelros/from-bag-of-words-to-transformers-10-years-of-practical-natural-language-processing-8ccc238f679a

文章來源:機器之心