6个用于文本分类的最新开源预训练模型(NLP必备)
作者:PURVA HUILGOL??編譯:ronghuaiyang
導(dǎo)讀
文本分類是NLP的基礎(chǔ)任務(wù)之一,今天給大家介紹6個最新的預(yù)訓(xùn)練模型,做NLP的同學(xué)一定要用用看。
介紹
我們正站在語言和機器的交匯處。我對這個話題很感興趣。機器能寫得和莎士比亞一樣好嗎?如果一臺機器可以提高我自己的寫作技能呢?機器人能聽懂諷刺的話嗎?
我相信你以前問過這些問題。自然語言處理(NLP)的另一目的是為了回答這些問題,我必須說,在這個領(lǐng)域已經(jīng)有了突破性的研究成果來拉近人和機器之間的差距了。
NLP的核心思想之一是文本分類。如果機器可以區(qū)分名詞和動詞,或者如果它可以通過評論檢測客戶是否對產(chǎn)品滿意,我們可以使用這種理解能力用在其他高級NLP等任務(wù)上,比如上下文理解,或者生成一個全新的故事!
這就是我們看到很多關(guān)于文本分類的研究的主要原因。是的,遷移學(xué)習(xí)的出現(xiàn)無疑幫助加速了研究?,F(xiàn)在,我們可以使用在大型數(shù)據(jù)集上構(gòu)建的預(yù)訓(xùn)練的模型,并對其進(jìn)行調(diào)優(yōu),以實現(xiàn)不同數(shù)據(jù)集上的其他任務(wù)。
遷移學(xué)習(xí)和預(yù)訓(xùn)練的模型有兩個主要優(yōu)勢:
它降低了訓(xùn)練新的深度學(xué)習(xí)模型的成本
這些數(shù)據(jù)集是被行業(yè)接受的標(biāo)準(zhǔn),因此預(yù)訓(xùn)練的模型在質(zhì)量方面已經(jīng)得到了檢驗
你可以看到為什么預(yù)訓(xùn)練的模特越來越受歡迎。我們看到的谷歌BERT和OpenAI的GPT-2在這方面就做的很好。在本文中,我將介紹6種最先進(jìn)的文本分類預(yù)訓(xùn)練模型。
我們的文本分類預(yù)訓(xùn)練模型包括:
XLNet
ERNIE
Text-to-Text Transfer Transformer (T5)
Binary Partitioning Transfomer (BPT)
Neural Attentive Bag-of-Entities (NABoE)
Rethinking Complex Neural Network Architectures
預(yù)訓(xùn)練模型 #1: XLNet
說到最先進(jìn)的預(yù)訓(xùn)練模型,就不能不提XLNet!
谷歌的最新模型,XLNet在NLP的主要任務(wù)上比如文本分類,情感分析,問答,以及自然語言推理上都達(dá)到最先進(jìn)的水平。不僅僅在文本分類上擊敗了BERT,還包括高級的NLP任務(wù)。
XLNet的核心思想是:
語言理解的廣義自回歸預(yù)訓(xùn)練
Transformer-XL
如果這聽起來很復(fù)雜,不要擔(dān)心!我會用簡單的語言來解釋。
自回歸建模使用問題中缺失單詞之前或之后的上下文單詞來預(yù)測下一個單詞。但是,我們不能同時處理向前和向后兩個方向。
盡管BERT的自動編碼器確實解決了這方面的問題,但它也有其他的缺點,比如假設(shè)mask掉的單詞之間沒有相關(guān)性。為了解決這個問題,XLNet提出了一種稱為排列語言建模的技術(shù)。這種技術(shù)使用排列來同時從正向和反向產(chǎn)生信息。
眾所周知,Transformer結(jié)構(gòu)是一個改變游戲規(guī)則的工具。XLNet使用Transformer XL。正如我們所知,Transformer替代了遞歸神經(jīng)網(wǎng)絡(luò)(RNN),允許不相鄰的tokens同時進(jìn)行處理。這提高了對文本中長距離關(guān)系的理解。Transformer-XL基本上是BERT中使用的Transformer的增強版,增加了兩個組件:
特定片段的遞歸,給出兩個序列之間的上下文
一種相對位置的嵌入,它包含兩個tokens之間的相似性信息
如前所述,XLNet幾乎在所有任務(wù)(包括文本分類)上都優(yōu)于BERT,并且在其中18個任務(wù)上實現(xiàn)了SOTA的性能!下面是對文本分類任務(wù)的總結(jié),以及XLNet如何在這些不同的數(shù)據(jù)集上執(zhí)行,以及它在這些數(shù)據(jù)集上取得的高排名:

論文鏈接: XLNet: Generalized Autoregressive Pretraining for Language Understanding
Github鏈接: https://github.com/zihangdai/xlnet
預(yù)訓(xùn)練模型 #2: ERNIE
盡管ERNIE 1.0(發(fā)布于2019年3月)一直是文本分類的流行模式,但在2019年下半年,ERNIE 2.0成為了熱門話題。ERNIE由科技巨頭百度開發(fā),在英語GLUE基準(zhǔn)測試中,它的表現(xiàn)超過了谷歌XLNet和BERT。
ERNIE的意思是Enhanced Representation through kNowledge IntEgration,ERNIE 2.0是ERNIE 1.0的升級版。ERNIE 1.0在它自己的方式上是開創(chuàng)性的 —— 它是第一個利用知識圖譜的模型之一。這種集成進(jìn)一步增強了高級任務(wù)的訓(xùn)練模型,如關(guān)系分類和命名實體識別(NER)。
與之前的版本一樣,ERNIE 2.0帶來了另一項創(chuàng)新,即遞增的多任務(wù)學(xué)習(xí)?;旧?#xff0c;這意味著模型已經(jīng)定義了7個明確的任務(wù),并且
可以同時生成多個任務(wù)的輸出。例如,完成句子“I like going to New…”—>“I like going to New York”,并將其歸類為有積極情緒的句子。合并任務(wù)的損失也相應(yīng)計算。
遞增地使用前一個任務(wù)的輸出到下一個任務(wù)。例如,將Task 1的輸出作為Task 1、Task 2的訓(xùn)練,為此,Task 1和Task 2用于訓(xùn)練Task 1、Task 2和Task 3……等等。
我真的很喜歡這個過程,非常的直觀,因為它遵循了人類理解文本的方式。我們的大腦不僅認(rèn)為“I like going to New York”是一個積極情緒的句子,是不是?它同時理解了名詞“New York”和“I”,理解了“l(fā)ike”這個動詞,并推斷出New York是一個地方。
ERNIE在關(guān)系提取任務(wù)中獲得了88.32的SOTA的F1-Score
論文鏈接:https://arxiv.org/pdf/1905.07129v3.pdf
Github鏈接:https://github.com/thunlp/ERNIE
預(yù)訓(xùn)練模型 #3: Text-to-Text Transfer Transformer (T5)
說實話,與其他模型相比,研究這個模型最有趣。谷歌新的Text-to-Text Transfer Transformer (T5)模型使用Transfer learning來完成各種NLP任務(wù)。
最有趣的部分是它將每個問題轉(zhuǎn)換為文本輸入—文本輸出模型。因此,即使對于分類任務(wù),輸入也將是文本,輸出也將是單詞而不是標(biāo)簽。這可以歸結(jié)為所有任務(wù)上的一個模型。不僅如此,一個任務(wù)的輸出可以用作下一個任務(wù)的輸入。
語料庫使用普通抓取的增強版本?;旧暇褪菑膚eb上抓取文本。這篇論文強調(diào)了清理數(shù)據(jù)的重要性,并清楚地說明了這是如何做到的。雖然抓取的數(shù)據(jù)每個月生成20TB的數(shù)據(jù),但是大部分?jǐn)?shù)據(jù)并不適合NLP任務(wù)。
即使只保留文本內(nèi)容(包含標(biāo)記、代碼內(nèi)容等的頁面已被刪除),語料庫的大小仍然高達(dá)750GB,比大多數(shù)數(shù)據(jù)集大得多。
注意:這也已經(jīng)在TensorFlow上發(fā)布了:https://www.tensorflow.org/datasets/catalog/c4
要執(zhí)行的任務(wù)被編碼為輸入的前綴。正如你在上面的圖表中所看到的,不管是分類還是回歸任務(wù),T5模型仍然會生成新的文本來獲得輸出。
T5在超過20個已建立的NLP任務(wù)上實現(xiàn)了SOTA —— 這是很少見的,看看指標(biāo),它和人類的輸出非常接近。
T5模型跟隨了最近的趨勢,對未標(biāo)注的數(shù)據(jù)進(jìn)行了訓(xùn)練,然后對標(biāo)注文本進(jìn)行微調(diào)??梢岳斫獾氖?#xff0c;這個模型是巨大的,但是可以看到對它進(jìn)行進(jìn)一步的研究,縮小這個模型是非常有趣的,可以讓它得到更廣泛的使用。
論文鏈接:https://arxiv.org/pdf/1910.10683.pdf
Github鏈接:https://github.com/googl-research/text-to-text-transfer-transformer
預(yù)訓(xùn)練模型 #4: Binary-Partitioning Transformer (BPT)
正如我們到目前為止所看到的,Transformer architecture在NLP研究中非常流行。BP Transformer 再次使用Transformer,或者更確切地說,使用它的一個增強版本來進(jìn)行文本分類,機器翻譯等等。
然而,使用Transformer仍然是一個昂貴的過程,因為它使用了自注意力機制。自注意只是指我們對句子本身進(jìn)行注意力操作,而不是兩個不同的句子。自注意力有助于識別一句話中單詞之間的關(guān)系。正是這種自注意力的機制導(dǎo)致了使用Transformer的成本。
Binary-Partitioning Transformer (BPT)將Transformer 視為一個圖神經(jīng)網(wǎng)絡(luò),旨在提高自注意力機制的效率。本質(zhì)上,這個圖中的每個節(jié)點表示一個輸入token。
BP Transformer的工作原理如下:
第一步:遞歸地把句子分成兩部分,直到達(dá)到某個停止條件。這稱為二元分區(qū)。例如,“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個分區(qū),最后,你會得到一個完整的二叉樹。
第二步:每個分區(qū)現(xiàn)在都是圖神經(jīng)網(wǎng)絡(luò)中的一個節(jié)點。有兩種類型的邊:
連接父節(jié)點及其子節(jié)點的邊
連接葉節(jié)點與其他節(jié)點的邊
第三步:對圖中相鄰節(jié)點的每個節(jié)點進(jìn)行自注意力:
BPT達(dá)到了:
在中英機器翻譯上達(dá)到了SOTA的成績(BLEU評分:19.84)
IMDb數(shù)據(jù)集情緒分析的準(zhǔn)確率為92.12(結(jié)合GloVE embedding)
我很欣賞這個模型,因為它讓我重新審視了圖的概念,讓我敢于去研究圖神經(jīng)網(wǎng)絡(luò)。我承認(rèn)我來晚了,但在不久的將來,我一定會在圖神經(jīng)網(wǎng)絡(luò)上進(jìn)行更多的探索!
論文鏈接:https://arxiv.org/pdf/1911.04070v1.pdf
Github鏈接:https://github.com/yzh119/BPT
預(yù)訓(xùn)練模型 #5: Neural Attentive Bag-of-Entities Model for Text Classification (NABoE)
神經(jīng)網(wǎng)絡(luò)一直是最受歡迎的NLP任務(wù)模型,它們的表現(xiàn)優(yōu)于傳統(tǒng)的模型。此外,在構(gòu)建語料庫知識庫的同時,用單詞代替實體,也改善了模型de 學(xué)習(xí)。
這意味著我們不是從語料庫中的單詞構(gòu)建詞匯表,而是使用實體鏈接構(gòu)建大量實體。雖然已有研究將語料庫表示為模型,但NABoE模型更進(jìn)一步:
使用神經(jīng)網(wǎng)絡(luò)來檢測實體
使用注意力機制來計算被檢測實體的權(quán)重(這決定了這些實體與文檔的相關(guān)性)
實體模型的神經(jīng)注意包使用Wikipedia語料庫來檢測與單詞相關(guān)的實體。例如,單詞“Apple”可以指水果、公司和其他可能的實體。檢索所有這些實體后,使用基于softmax的注意力函數(shù)計算每個實體的權(quán)重。這提供了只與特定文檔相關(guān)的實體的一個更小的子集。
最后,通過向量嵌入和與詞相關(guān)的實體的向量嵌入,給出了詞的最終表示。
NABoE模型在文本分類任務(wù)中表現(xiàn)得特別好:
論文鏈接: Neural Attentive Bag-of-Entities Model for Text Classification
Github鏈接: https://github.com/wikipedia2vec/wikipedia2vec/tree/master/examples/text_classification
預(yù)訓(xùn)練模型 #6: Rethinking Complex Neural Network Architectures for Document Classification
現(xiàn)在,在研究了這么多的高級的預(yù)訓(xùn)練模型之后,我們要反其道而行之,我們要討論一個使用老的雙向LSTM的模型來實現(xiàn)SOTA性能。但這正是我最后決定介紹它的原因。
我們常常因為幾棵樹木而錯過森林。我們往往忘記,一個簡單的調(diào)優(yōu)的模型可能會獲得與這些復(fù)雜的深度學(xué)習(xí)模型一樣好的結(jié)果。本文的目的就是要說明這一點。
雙向LSTM和正則化的組合能夠在IMDb文檔分類任務(wù)上實現(xiàn)SOTA的性能。
本文最有趣和值得注意的方面是:
它不使用注意力機制
這是第一篇結(jié)合LSTM +正則化方法進(jìn)行文檔分類的論文
這個最小的模型使用Adam優(yōu)化器,temporal averaging和dropouts,得到了很高的分?jǐn)?shù)。本文將這些結(jié)果與其他深度學(xué)習(xí)模型進(jìn)行了實證比較,證明了該模型簡單有效,結(jié)果不言自明:
這種模型可以被認(rèn)為是一種新的行業(yè)方法,在這個行業(yè)中,構(gòu)建可生產(chǎn)的模型并在你的度量標(biāo)準(zhǔn)上獲得高分是很重要的。
論文鏈接: Rethinking Complex Neural Network Architectures for Document Classification
Github鏈接: https://github.com/castorini/hedwig
結(jié)束語
在這里,我們討論了最近在文本分類中達(dá)到SOTA的6個預(yù)訓(xùn)練模型。這些NLP模型表明,還有更多的模型有待開發(fā),我期待著今年了解它們。
所有這些研究中一個非常好的地方是這些預(yù)訓(xùn)練好的模型的可用性和開源性。上述所有模型都有一個GitHub倉庫,可以用于實現(xiàn)。另一個不能忽視的方面是,它們也可以在PyTorch上找到。PyTorch正在迅速取代TensorFlow作為構(gòu)建你的深度學(xué)習(xí)模型的平臺。
我鼓勵你在各種數(shù)據(jù)集上嘗試這些模型,并對它們進(jìn)行試驗,以了解它們是如何工作的。如果你心中已經(jīng)有了一些和去年一樣酷但沒有引起注意的模型,請在下面的評論中提及它們!
—END—
英文原文:https://www.analyticsvidhya.com/blog/2020/03/6-pretrained-models-text-classification/
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)在線手冊深度學(xué)習(xí)在線手冊AI基礎(chǔ)下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復(fù)“加群”獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看總結(jié)
以上是生活随笔為你收集整理的6个用于文本分类的最新开源预训练模型(NLP必备)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相当全面:推荐系统干货总结
- 下一篇: 最新的推荐系统论文两篇