作者|PURVA HUILGOL
編譯|VK
來源|Analytics Vidhya
介紹
我們正站在語言和機器的交匯處,這個話題我很感興趣。機器能像莎士比亞一樣寫作嗎?機器能提高我自己的寫作能力嗎?機器人能解釋一句諷刺的話嗎?
我肯定你以前問過這些問題。自然語言處理(NLP)也致力於回答這些問題,我必須說,在這個領域已經進行了突破性的研究,促使彌合人類和機器之間的鴻溝。
文本分類是自然語言處理的核心思想之一。如果一台機器能夠區分名詞和動詞,或者它能夠在客戶的評論中檢測到客戶對產品的滿意程度,我們可以將這種理解用於其他高級NLP任務。
這就是我們在文本分類方面看到很多研究的本質。遷移學習的出現可能促進加速研究。我們現在可以使用構建在一個巨大的數據集上的預訓練的模型,並進行優化,以在另一個數據集上實現其他任務。
遷移學習和預訓練模型有兩大優勢:
-
它降低了每次訓練一個新的深度學習模型的成本
-
這些數據集符合行業公認的標准,因此預訓練模型已經在質量方面得到了審查
你可以理解為什么經過預訓練的模特會大受歡迎。我們已經看到像谷歌的BERT和OpenAI的GPT-2這樣的模型真的很厲害。在這里中,我將介紹6種最先進的文本分類預訓練模型。
我們將介紹的預訓練模型:
-
XLNet
-
ERNIE
-
Text-to-Text Transfer Transformer(T5)
-
BPT
-
NABoE
-
Rethinking Complex Neural Network Architectures for Document Classification
預訓練模型1:XLNet
我們不能不提及XLNet!
谷歌的最新模型XLNet在文本分類,情感分析,問答,自然語言推理等主要NLP任務上取得了最先進的性能,同時還為英語提供了必要的GLUE基准。它的性能超過了BERT,現在已經鞏固了自己作為模型的優勢,既可以用於文本分類,又可以用作高級NLP任務。
XLNet背后的核心思想是:
-
語言理解的廣義自回歸預訓練
-
Transformer-XL
如果這聽起來很復雜,別擔心!我要把這些簡化。
自回歸模型用於預測下一個單詞,使用的單詞在已有的單詞之前或之后出現。但是,不能同時處理前面和后面的單詞,只能處理一個方向。
雖然BERT確實處理了這方面的問題,但它也有其他缺點,比如假設某些屏蔽詞之間沒有相關性。為了解決這個問題,XLNet在訓練前階段提出了一種稱為排列語言模型(Permutation Language Modeling)的技術。這項技術使用排列同時從正向和反向生成信息。
Transformer已經不是什么秘密了。XLNet使用Transformer-XL。眾所周知,在允許不相鄰的標記也一起處理的意義上,Transformer是循環神經網絡(RNN)的替代,因為它提高了對文本中遠距離關系的理解。
Transformer-XL是BERT中使用的Transformer的增強版本,因為添加了這兩個組件,:
-
句段層級的循環
-
相對位置編碼方案
正如我前面提到的,XLNet在幾乎所有任務上都超越BERT,包括文本分類,並且在其中18個任務上實現了SOTA性能!
以下是文本分類任務的摘要,以及XLNet如何在這些不同的數據集上執行,以及它在這些數據集上實現的高排名:
預訓練模型2:ERNIE
盡管ERNIE 1.0(於2019年3月發布)一直是文本分類的流行模式,但在2019年下半年,ERNIE 2.0成為熱門話題。由科技巨頭百度(Baidu)開發的ERNIE在英語GLUE基准上的表現超過了Google XLNet和BERT。
ERNIE 1.0以自己的方式開辟了道路——它是最早利用知識圖的模型之一。這一合並進一步加強了對高級任務(如關系分類和名稱識別)模型的訓練。
與它的前身一樣,ERNIE 2.0以連續增量多任務學習的形式帶來了另一項創新。基本上,這意味着模型定義了7個明確的任務,並且
-
可以同時生成多個任務的輸出。例如,完成“I like going to New …”->“I like going to New York”這句話,並將這句話歸類為有積極的情緒。對於合並的任務,也相應地計算損失
-
將上一個任務的輸出增量地用於下一個任務。例如,任務1的輸出用作任務1、任務2的訓練;任務1和任務2的輸出用於訓練任務1、2和3等等
我真的很喜歡這個過程,他非常直觀,因為它遵循人類理解文本的方式。我們的大腦不僅認為“I like going to New York"是一個積極的句子,它也同時理解名詞“New York”和“I”,理解動詞“like”,並推斷紐約是一個地方。
ERNIE在關系抽取任務中的 F1度量為88.32。
預訓練模型3:Text-to-Text Transfer Transformer(T5)
老實說,與其他模型相比,我在學習這個模型上獲得了最大的樂趣。Google的Text-to-Text Transfer Transformer(T5)模型將遷移學習用於各種NLP任務。
最有趣的部分是它將每個問題轉換為文本輸入—文本輸出模型。所以,即使對於分類任務,輸入是文本,輸出也將是文本而不是一個標簽。這可以歸結為所有任務的單一模型。不僅如此,一個任務的輸出可以用作下一個任務的輸入。
該語料庫使用了Common Crawls的增強版本。這基本上是從網上刮來的文字。本文實際上強調了清理數據的重要性,並清楚地說明了這是如何做到的。雖然收集到的數據每月產生20TB的數據,但這些數據中的大多數並不適合NLP任務。
即使只保留文本內容(包含標記、代碼內容等的頁面已被刪除),該語料庫的大小仍高達750GB,遠遠大於大多數數據集。
注意:這已經在TensorFlow上發布了:https://www.tensorflow.org/datasets/catalog/c4。
將要執行的任務與輸入一起編碼為前綴。如上圖所示,無論是分類任務還是回歸任務,T5模型仍會生成新文本以獲取輸出。
T5在20多個已建立的NLP任務上實現了SOTA——這是很少見的,而且從度量標准來看,它盡可能接近人類的輸出。
T5模型跟蹤了最近關於未標記數據的訓練趨勢,然后在標記文本上微調該模型。可以理解的是,這個模型是巨大的,但是我們很有興趣看到進一步研究如何縮小這種模型的規模,以獲得更廣泛的使用和分布。
預訓練模型4:BPT
正如我們目前所看到的,Transformer架構在NLP研究中非常流行。BP Transformer再次使用了Transformer,或者更確切地說是它的一個增強版本,用於文本分類、機器翻譯等。
然而,使用Transformer仍然是一個昂貴的過程,因為它使用自我注意機制。自我注意只是指我們對句子本身進行注意操作,而不是兩個不同的句子。自我注意有助於識別句子中單詞之間的關系。正是這種自我關注機制導致了使用Transformer的成本。
Binary-Partitioning Transformer (BPT)將Transformer看作一個圖形神經網絡,旨在提高自注意力機制的效率。實際上,此圖中的每個節點都表示一個輸入標記。
BP Transformer的工作原理:
第一步:遞歸地把句子分成兩部分,直到達到某個停止條件為止。這稱為二元分區。因此,例如,“I like going to New York”這句話將有以下幾個部分:
- I like going; to New York
- I like; going; to New; York
- I; like; going; to; New; York
注意:一個包含n個單詞的句子將有2*n–1個分區,最后,你將得到一個完整的二叉樹。
第二步:現在每個分區都是圖神經網絡中的一個節點。可以有兩種類型的邊:
- 連接父節點及其子節點的邊
- 連接葉節點與其他節點的邊
第三步:對圖的每個節點及其相鄰節點執行自注意:
BPT實現了:
- 在中英機器翻譯上達到了SOTA的成績(BLEU評分:19.84)
- IMDb數據集情緒分析的准確率為92.12(結合GloVE embedding)
我很欣賞這個模型,因為它使我重新審視了圖的概念,並使我敢於研究圖神經網絡。我肯定會在不久的將來探索更多的圖形神經網絡!
預訓練模型 5:NABoE
神經網絡一直是NLP任務最受歡迎的模型,並且其性能優於更傳統的模型。此外,在從語料庫建立知識庫的同時用單詞替換實體可以改善模型學習。
這意味着,我們不是使用語料庫中的單詞來構建詞匯表,而是使用實體鏈接來構建大量實體。雖然已有研究將語料庫表示為模型,但NABoE模型更進一步:
- 使用神經網絡檢測實體
- 使用注意力機制來計算被檢測實體的權重(這決定了這些實體與文檔的相關性)
實體模型的神經注意包使用Wikipedia語料庫來檢測與單詞相關的實體。例如,單詞“Apple”可以指水果、公司和其他可能的實體。檢索所有這些實體后,使用基於softmax的注意力函數計算每個實體的權重。這提供了只與特定文檔相關的實體的一個更小的子集。
最后,通過向量嵌入和與詞相關的實體的向量嵌入,給出了詞的最終表示。
NABoE模型在文本分類任務中表現得特別好:
預訓練模型6:Rethinking Complex Neural Network Architectures for Document Classification
現在,在研究了這么多的高級的預訓練模型之后,我們要反其道而行之,我們要討論一個使用老的雙向LSTM的模型來實現SOTA性能。但這正是我最后決定介紹它的原因。
我們常常因為幾棵樹木而錯過森林。我們往往忘記,一個簡單的調優的模型可能會獲得與這些復雜的深度學習模型一樣好的結果。本文的目的就是要說明這一點。
雙向LSTM和正則化的組合能夠在IMDb文檔分類任務上實現SOTA的性能。
本文最有趣和值得注意的方面是:
- 它不使用注意力機制
- 這是第一篇使用LSTM +正則化技術進行文檔分類的論文
這個簡約的模型使用Adam優化器,temporal averaging和dropouts來達到這個高分。本文將這些結果與其他深度學習模型進行了實證比較,證明了該模型簡單有效,並且結果說明了一切:
對於行業而言,這種模型可以被認為是一種新穎的方法,在該行業中,構建可用於生產的模型並且在指標上取得高分非常重要。
結尾
在這里,我們討論了最近在文本分類中達到最新基准的6種預訓練模型。這些NLP模型表明還有更多的模型,我將期待今年學習它們。
所有這些研究中的一個令人敬畏的要素是這些預訓練模型的可用性和開源性質。以上所有模型都有一個GitHub存儲庫,可以用於實現。另一個不可忽視的方面是它們在PyTorch上也可用。這強調了PyTorch正在快速取代TensorFlow作為構建深度學習模型的平台。
我鼓勵你在各種數據集上嘗試這些模型,並進行實驗以了解它們的工作原理。
原文鏈接:https://www.analyticsvidhya.com/blog/2020/03/6-pretrained-models-text-classification/
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/