本文首先介紹BERT模型要做什么,即:模型的輸入、輸出分別是什么,以及模型的預(yù)訓(xùn)練任務(wù)是什么;然后,分析模型的內(nèi)部結(jié)構(gòu),圖解如何將模型的輸入一步步地轉(zhuǎn)化為模型輸出;最后,我們?cè)诙鄠€(gè)中/英文、不同規(guī)模的數(shù)據(jù)集上比較了BERT模型與現(xiàn)有方法的文本分類(lèi)效果。
1. 模型的輸入/輸出
BERT模型的全稱(chēng)是:BidirectionalEncoder Representations from Transformer。從名字中可以看出,BERT模型的目標(biāo)是利用大規(guī)模無(wú)標(biāo)注語(yǔ)料訓(xùn)練、獲得文本的包含豐富語(yǔ)義信息的Representation,即:文本的語(yǔ)義表示,然后將文本的語(yǔ)義表示在特定NLP任務(wù)中作微調(diào),最終應(yīng)用于該NLP任務(wù)。煮個(gè)栗子,BERT模型訓(xùn)練文本語(yǔ)義表示的過(guò)程就好比我們?cè)诟咧须A段學(xué)習(xí)語(yǔ)數(shù)英、物化生等各門(mén)基礎(chǔ)學(xué)科,夯實(shí)基礎(chǔ)知識(shí);而模型在特定NLP任務(wù)中的參數(shù)微調(diào)就相當(dāng)于我們?cè)诖髮W(xué)期間基于已有基礎(chǔ)知識(shí)、針對(duì)所選專(zhuān)業(yè)作進(jìn)一步強(qiáng)化,從而獲得能夠應(yīng)用于實(shí)際場(chǎng)景的專(zhuān)業(yè)技能。
在基于深度神經(jīng)網(wǎng)絡(luò)的NLP方法中,文本中的字/詞通常都用一維向量來(lái)表示(一般稱(chēng)之為“詞向量”);在此基礎(chǔ)上,神經(jīng)網(wǎng)絡(luò)會(huì)將文本中各個(gè)字或詞的一維詞向量作為輸入,經(jīng)過(guò)一系列復(fù)雜的轉(zhuǎn)換后,輸出一個(gè)一維詞向量作為文本的語(yǔ)義表示。特別地,我們通常希望語(yǔ)義相近的字/詞在特征向量空間上的距離也比較接近,如此一來(lái),由字/詞向量轉(zhuǎn)換而來(lái)的文本向量也能夠包含更為準(zhǔn)確的語(yǔ)義信息。因此,BERT模型的主要輸入是文本中各個(gè)字/詞的原始詞向量,該向量既可以隨機(jī)初始化,也可以利用Word2Vector等算法進(jìn)行預(yù)訓(xùn)練以作為初始值;輸出是文本中各個(gè)字/詞融合了全文語(yǔ)義信息后的向量表示,如下圖所示(為方便描述且與BERT模型的當(dāng)前中文版本保持一致,本文統(tǒng)一以字向量作為輸入):
從上圖中可以看出,BERT模型通過(guò)查詢(xún)字向量表將文本中的每個(gè)字轉(zhuǎn)換為一維向量,作為模型輸入;模型輸出則是輸入各字對(duì)應(yīng)的融合全文語(yǔ)義信息后的向量表示。此外,模型輸入除了字向量,還包含另外兩個(gè)部分:
1. 文本向量:該向量的取值在模型訓(xùn)練過(guò)程中自動(dòng)學(xué)習(xí),用于刻畫(huà)文本的全局語(yǔ)義信息,并與單字/詞的語(yǔ)義信息相融合
2. 位置向量:由于出現(xiàn)在文本不同位置的字/詞所攜帶的語(yǔ)義信息存在差異(比如:“我愛(ài)你”和“你愛(ài)我”),因此,BERT模型對(duì)不同位置的字/詞分別附加一個(gè)不同的向量以作區(qū)分
最后,BERT模型將字向量、文本向量和位置向量的加和作為模型輸入。特別地,在目前的BERT模型中,文章作者還將英文詞匯作進(jìn)一步切割,劃分為更細(xì)粒度的語(yǔ)義單位(WordPiece),例如:將playing分割為play和##ing;此外,對(duì)于中文,目前作者尚未對(duì)輸入文本進(jìn)行分詞,而是直接將單字作為構(gòu)成文本的基本單位。
對(duì)于不同的NLP任務(wù),模型輸入會(huì)有微調(diào),對(duì)模型輸出的利用也有差異,例如:
單文本分類(lèi)任務(wù):對(duì)于文本分類(lèi)任務(wù),BERT模型在文本前插入一個(gè)[CLS]符號(hào),并將該符號(hào)對(duì)應(yīng)的輸出向量作為整篇文本的語(yǔ)義表示,用于文本分類(lèi),如下圖所示??梢岳斫鉃椋号c文本中已有的其它字/詞相比,這個(gè)無(wú)明顯語(yǔ)義信息的符號(hào)會(huì)更“公平”地融合文本中各個(gè)字/詞的語(yǔ)義信息。
語(yǔ)句對(duì)分類(lèi)任務(wù):該任務(wù)的實(shí)際應(yīng)用場(chǎng)景包括:?jiǎn)柎穑ㄅ袛嘁粋€(gè)問(wèn)題與一個(gè)答案是否匹配)、語(yǔ)句匹配(兩句話是否表達(dá)同一個(gè)意思)等。對(duì)于該任務(wù),BERT模型除了添加[CLS]符號(hào)并將對(duì)應(yīng)的輸出作為文本的語(yǔ)義表示,還對(duì)輸入的兩句話用一個(gè)[SEP]符號(hào)作分割,并分別對(duì)兩句話附加兩個(gè)不同的文本向量以作區(qū)分,如下圖所示。
序列標(biāo)注任務(wù):該任務(wù)的實(shí)際應(yīng)用場(chǎng)景包括:中文分詞&新詞發(fā)現(xiàn)(標(biāo)注每個(gè)字是詞的首字、中間字或末字)、答案抽?。ù鸢傅钠鹬刮恢茫┑取?duì)于該任務(wù),BERT模型利用文本中每個(gè)字對(duì)應(yīng)的輸出向量對(duì)該字進(jìn)行標(biāo)注(分類(lèi)),如下圖所示(B、I、E分別表示一個(gè)詞的第一個(gè)字、中間字和最后一個(gè)字)。
……
根據(jù)具體任務(wù)的不同,在實(shí)際應(yīng)用中我們可以腦洞大開(kāi),通過(guò)調(diào)整模型的輸入、輸出將模型適配到真實(shí)業(yè)務(wù)場(chǎng)景中。
2. 模型的預(yù)訓(xùn)練任務(wù)
BERT實(shí)際上是一個(gè)語(yǔ)言模型。語(yǔ)言模型通常采用大規(guī)模、與特定NLP任務(wù)無(wú)關(guān)的文本語(yǔ)料進(jìn)行訓(xùn)練,其目標(biāo)是學(xué)習(xí)語(yǔ)言本身應(yīng)該是什么樣的,這就好比我們學(xué)習(xí)語(yǔ)文、英語(yǔ)等語(yǔ)言課程時(shí),都需要學(xué)習(xí)如何選擇并組合我們已經(jīng)掌握的詞匯來(lái)生成一篇通順的文本。回到BERT模型上,其預(yù)訓(xùn)練過(guò)程就是逐漸調(diào)整模型參數(shù),使得模型輸出的文本語(yǔ)義表示能夠刻畫(huà)語(yǔ)言的本質(zhì),便于后續(xù)針對(duì)具體NLP任務(wù)作微調(diào)。為了達(dá)到這個(gè)目的,BERT文章作者提出了兩個(gè)預(yù)訓(xùn)練任務(wù):Masked LM和Next Sentence Prediction。
2.1 Masked LM
Masked LM的任務(wù)描述為:給定一句話,隨機(jī)抹去這句話中的一個(gè)或幾個(gè)詞,要求根據(jù)剩余詞匯預(yù)測(cè)被抹去的幾個(gè)詞分別是什么,如下圖所示。
這不就是我們高中英語(yǔ)常做的完形填空么!所以說(shuō),BERT模型的預(yù)訓(xùn)練過(guò)程其實(shí)就是在模仿我們學(xué)語(yǔ)言的過(guò)程。具體來(lái)說(shuō),文章作者在一句話中隨機(jī)選擇15%的詞匯用于預(yù)測(cè)。對(duì)于在原句中被抹去的詞匯,80%情況下采用一個(gè)特殊符號(hào)[MASK]替換,10%情況下采用一個(gè)任意詞替換,剩余10%情況下保持原詞匯不變。這么做的主要原因是:在后續(xù)微調(diào)任務(wù)中語(yǔ)句中并不會(huì)出現(xiàn)[MASK]標(biāo)記,而且這么做的另一個(gè)好處是:預(yù)測(cè)一個(gè)詞匯時(shí),模型并不知道輸入對(duì)應(yīng)位置的詞匯是否為正確的詞匯(10%概率),這就迫使模型更多地依賴(lài)于上下文信息去預(yù)測(cè)詞匯,并且賦予了模型一定的糾錯(cuò)能力。
2.2 NextSentence Prediction
Next Sentence Prediction的任務(wù)描述為:給定一篇文章中的兩句話,判斷第二句話在文本中是否緊跟在第一句話之后,如下圖所示。
當(dāng)年大學(xué)考英語(yǔ)四六級(jí)的時(shí)候,大家應(yīng)該都做過(guò)段落重排序,即:將一篇文章的各段打亂,讓我們通過(guò)重新排序把原文還原出來(lái),這其實(shí)需要我們對(duì)全文大意有充分、準(zhǔn)確的理解。Next Sentence Prediction任務(wù)實(shí)際上就是段落重排序的簡(jiǎn)化版:只考慮兩句話,判斷是否是一篇文章中的前后句。在實(shí)際預(yù)訓(xùn)練過(guò)程中,文章作者從文本語(yǔ)料庫(kù)中隨機(jī)選擇50%正確語(yǔ)句對(duì)和50%錯(cuò)誤語(yǔ)句對(duì)進(jìn)行訓(xùn)練,與Masked LM任務(wù)相結(jié)合,讓模型能夠更準(zhǔn)確地刻畫(huà)語(yǔ)句乃至篇章層面的語(yǔ)義信息。
BERT模型通過(guò)對(duì)Masked LM任務(wù)和Next Sentence Prediction任務(wù)進(jìn)行聯(lián)合訓(xùn)練,使模型輸出的每個(gè)字/詞的向量表示都能盡可能全面、準(zhǔn)確地刻畫(huà)輸入文本(單句或語(yǔ)句對(duì))的整體信息,為后續(xù)的微調(diào)任務(wù)提供更好的模型參數(shù)初始值。
3. 模型結(jié)構(gòu)
了解了BERT模型的輸入/輸出和預(yù)訓(xùn)練過(guò)程之后,我們來(lái)看一下BERT模型的內(nèi)部結(jié)構(gòu)。前面提到過(guò),BERT模型的全稱(chēng)是:BidirectionalEncoder Representations from Transformer,也就是說(shuō),Transformer是組成BERT的核心模塊,而Attention機(jī)制又是Transformer中最關(guān)鍵的部分,因此,下面我們從Attention機(jī)制開(kāi)始,介紹如何利用Attention機(jī)制構(gòu)建Transformer模塊,在此基礎(chǔ)上,用多層Transformer組裝BERT模型。
3.1 Attention機(jī)制
Attention: Attention機(jī)制的中文名叫“注意力機(jī)制”,顧名思義,它的主要作用是讓神經(jīng)網(wǎng)絡(luò)把“注意力”放在一部分輸入上,即:區(qū)分輸入的不同部分對(duì)輸出的影響。這里,我們從增強(qiáng)字/詞的語(yǔ)義表示這一角度來(lái)理解一下Attention機(jī)制。
我們知道,一個(gè)字/詞在一篇文本中表達(dá)的意思通常與它的上下文有關(guān)。比如:光看“鵠”字,我們可能會(huì)覺(jué)得很陌生(甚至連讀音是什么都不記得吧),而看到它的上下文“鴻鵠之志”后,就對(duì)它立馬熟悉了起來(lái)。因此,字/詞的上下文信息有助于增強(qiáng)其語(yǔ)義表示。同時(shí),上下文中的不同字/詞對(duì)增強(qiáng)語(yǔ)義表示所起的作用往往不同。比如在上面這個(gè)例子中,“鴻”字對(duì)理解“鵠”字的作用最大,而“之”字的作用則相對(duì)較小。為了有區(qū)分地利用上下文字信息增強(qiáng)目標(biāo)字的語(yǔ)義表示,就可以用到Attention機(jī)制。
Attention機(jī)制主要涉及到三個(gè)概念:Query、Key和Value。在上面增強(qiáng)字的語(yǔ)義表示這個(gè)應(yīng)用場(chǎng)景中,目標(biāo)字及其上下文的字都有各自的原始Value,Attention機(jī)制將目標(biāo)字作為Query、其上下文的各個(gè)字作為Key,并將Query與各個(gè)Key的相似性作為權(quán)重,把上下文各個(gè)字的Value融入目標(biāo)字的原始Value中。如下圖所示,Attention機(jī)制將目標(biāo)字和上下文各個(gè)字的語(yǔ)義向量表示作為輸入,首先通過(guò)線性變換獲得目標(biāo)字的Query向量表示、上下文各個(gè)字的Key向量表示以及目標(biāo)字與上下文各個(gè)字的原始Value表示,然后計(jì)算Query向量與各個(gè)Key向量的相似度作為權(quán)重,加權(quán)融合目標(biāo)字的Value向量和各個(gè)上下文字的Value向量,作為Attention的輸出,即:目標(biāo)字的增強(qiáng)語(yǔ)義向量表示。
Self-Attention:對(duì)于輸入文本,我們需要對(duì)其中的每個(gè)字分別增強(qiáng)語(yǔ)義向量表示,因此,我們分別將每個(gè)字作為Query,加權(quán)融合文本中所有字的語(yǔ)義信息,得到各個(gè)字的增強(qiáng)語(yǔ)義向量,如下圖所示。在這種情況下,Query、Key和Value的向量表示均來(lái)自于同一輸入文本,因此,該Attention機(jī)制也叫Self-Attention。
Multi-head Self-Attention:為了增強(qiáng)Attention的多樣性,文章作者進(jìn)一步利用不同的Self-Attention模塊獲得文本中每個(gè)字在不同語(yǔ)義空間下的增強(qiáng)語(yǔ)義向量,并將每個(gè)字的多個(gè)增強(qiáng)語(yǔ)義向量進(jìn)行線性組合,從而獲得一個(gè)最終的與原始字向量長(zhǎng)度相同的增強(qiáng)語(yǔ)義向量,如下圖所示。
這里,我們?cè)俳o出一個(gè)例子來(lái)幫助理解Multi-head Self-Attention(注:這個(gè)例子僅用于幫助理解,并非嚴(yán)格正確)??聪旅孢@句話:“南京市長(zhǎng)江大橋”,在不同語(yǔ)義場(chǎng)景下對(duì)這句話可以有不同的理解:“南京市/長(zhǎng)江大橋”,或“南京市長(zhǎng)/江大橋”。對(duì)于這句話中的“長(zhǎng)”字,在前一種語(yǔ)義場(chǎng)景下需要和“江”字組合才能形成一個(gè)正確的語(yǔ)義單元;而在后一種語(yǔ)義場(chǎng)景下,它則需要和“市”字組合才能形成一個(gè)正確的語(yǔ)義單元。我們前面提到,Self-Attention旨在用文本中的其它字來(lái)增強(qiáng)目標(biāo)字的語(yǔ)義表示。在不同的語(yǔ)義場(chǎng)景下,Attention所重點(diǎn)關(guān)注的字應(yīng)有所不同。因此,Multi-head Self-Attention可以理解為考慮多種語(yǔ)義場(chǎng)景下目標(biāo)字與文本中其它字的語(yǔ)義向量的不同融合方式??梢钥吹?,Multi-head Self-Attention的輸入和輸出在形式上完全相同,輸入為文本中各個(gè)字的原始向量表示,輸出為各個(gè)字融合了全文語(yǔ)義信息后的增強(qiáng)向量表示。因此,Multi-head Self-Attention可以看作是對(duì)文本中每個(gè)字分別增強(qiáng)其語(yǔ)義向量表示的黑盒。
3.2 Transformer Encoder
在Multi-headSelf-Attention的基礎(chǔ)上再添加一些“佐料”,就構(gòu)成了大名鼎鼎的Transformer Encoder。實(shí)際上,Transformer模型還包含一個(gè)Decoder模塊用于生成文本,但由于BERT模型中并未使用到Decoder模塊,因此這里對(duì)其不作詳述。下圖展示了Transformer Encoder的內(nèi)部結(jié)構(gòu),可以看到,Transformer Encoder在Multi-head Self-Attention之上又添加了三種關(guān)鍵操作:
殘差連接(ResidualConnection):將模塊的輸入與輸出直接相加,作為最后的輸出。這種操作背后的一個(gè)基本考慮是:修改輸入比重構(gòu)整個(gè)輸出更容易(“錦上添花”比“雪中送炭”容易多了?。?。這樣一來(lái),可以使網(wǎng)絡(luò)更容易訓(xùn)練。
Layer Normalization:對(duì)某一層神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)作0均值1方差的標(biāo)準(zhǔn)化。
線性轉(zhuǎn)換:對(duì)每個(gè)字的增強(qiáng)語(yǔ)義向量再做兩次線性變換,以增強(qiáng)整個(gè)模型的表達(dá)能力。這里,變換后的向量與原向量保持長(zhǎng)度相同。
可以看到,Transformer Encoder的輸入和輸出在形式上還是完全相同,因此,Transformer Encoder同樣可以表示為將輸入文本中各個(gè)字的語(yǔ)義向量轉(zhuǎn)換為相同長(zhǎng)度的增強(qiáng)語(yǔ)義向量的一個(gè)黑盒。
3.3 BERT model
組裝好TransformerEncoder之后,再把多個(gè)Transformer Encoder一層一層地堆疊起來(lái),BERT模型就大功告成了!
在論文中,作者分別用12層和24層Transformer Encoder組裝了兩套BERT模型,兩套模型的參數(shù)總數(shù)分別為110M和340M。
4. BERT模型的文本分類(lèi)效果
在本文中,我們聚焦文本分類(lèi)任務(wù),對(duì)比分析BERT模型在中/英文、不同規(guī)模數(shù)據(jù)集上的文本分類(lèi)效果。我們基于Google預(yù)訓(xùn)練好的BERT模型(中文采用chinese_L-12_H-768_A-12模型,下載鏈接:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip;英文采用uncased_L-12_H-768_A-12模型,下載鏈接:https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip)。我們一共選擇了6個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),各數(shù)據(jù)集的訓(xùn)練集/測(cè)試集大小、分類(lèi)任務(wù)、類(lèi)別數(shù)和語(yǔ)言類(lèi)型如下表所示。
數(shù)據(jù)集 | 訓(xùn)練集大小 | 測(cè)試集大小 | 分類(lèi)任務(wù) | 類(lèi)別數(shù) | 語(yǔ)言類(lèi)型 |
商品評(píng)論情感分析 | 9653 | 1145 | 情感極性分類(lèi) | 3 | 中文 |
Sentiment_XS | 29613 | 11562 | 情感極性分類(lèi) | 2 | 中文 |
立場(chǎng)分析 | 2914 | 1249 | 立場(chǎng)分類(lèi) | 3 | 英文 |
AG’s News | 120000 | 7600 | 新聞分類(lèi) | 4 | 英文 |
Yelp Review Full | 650000 | 50000 | 情感分類(lèi) | 5 | 英文 |
Yahoo! Answers | 1400000 | 60000 | 問(wèn)答系統(tǒng) | 10 | 英文 |
4.1 商品評(píng)論情感分析
該數(shù)據(jù)集旨在分析微博中表達(dá)的對(duì)特定商品的情感傾向:正面、負(fù)面或中立。我們選擇了三種方法與BERT模型進(jìn)行對(duì)比:
XGBoost:NGram特征+XGBoost分類(lèi)器
Char-level CNN:將未分詞的文本直接輸入卷積神經(jīng)網(wǎng)絡(luò)(已對(duì)比發(fā)現(xiàn)Word-level CNN效果略差)
Attention-based RNN:將分詞后的文本輸入循環(huán)神經(jīng)網(wǎng)絡(luò)(已對(duì)比發(fā)現(xiàn)Char-level RNN效果略差),并且在最終分類(lèi)前采用Attention機(jī)制融合輸入各個(gè)詞對(duì)應(yīng)的hidden states
BERT模型與三種對(duì)比方法的正面、負(fù)面、中立情感分類(lèi)F1值如下:
方法 | 正面F1值 | 負(fù)面F1值 | 中立F1值 |
XGBoost | 67% | 60% | 91% |
Char-level CNN | 69% | 74% | 92% |
Attention-based RNN | 66% | 71% | 91% |
BERT | 71% | 76% | 92% |
從上表中可以看到,BERT模型在正、負(fù)、中立F1值上均碾壓了所有對(duì)比方法!
4.2 Sentiment_XS
該數(shù)據(jù)集來(lái)自于論文“SentimentClassification with Convolutional Neural Networks: an Experimental Study on aLarge-scale Chinese Conversation Corpus” (DOI:10.1109/CIS.2016.0046),旨在對(duì)短文本進(jìn)行正/負(fù)面情感極性分類(lèi)。我們選擇論文中的部分代表性對(duì)比方法與BERT模型進(jìn)行對(duì)比,包括:支持向量機(jī)分類(lèi)器(SVC)、邏輯回歸(LR)、Naive Bayes SVM(NBSVM)和卷積神經(jīng)網(wǎng)絡(luò)(CNN),分類(lèi)準(zhǔn)確率如下表所示(對(duì)比方法的實(shí)驗(yàn)數(shù)據(jù)來(lái)自于論文)。
方法 | 分類(lèi)準(zhǔn)確率 |
SVC | 81.89% |
LR | 81.84% |
NBSVM | 81.18% |
CNN | 87.12% |
BERT | 90.01% |
可以看到,BERT模型在Sentiment_XS數(shù)據(jù)集上的分類(lèi)準(zhǔn)確率再次碾壓了所有對(duì)比方法!
4.3 立場(chǎng)分析
該數(shù)據(jù)集來(lái)自于國(guó)外文本分析評(píng)測(cè)比賽SemEval-2016的任務(wù)6A:有監(jiān)督立場(chǎng)分類(lèi),旨在分析文本中對(duì)5個(gè)話題的支持、反對(duì)或中立態(tài)度,包括:有神論、氣候變化、女權(quán)運(yùn)動(dòng)、Hillary Clinton和墮胎合法化。因此,該數(shù)據(jù)集實(shí)際上對(duì)應(yīng)5個(gè)話題子集。分類(lèi)效果的官方評(píng)估指標(biāo)為支持類(lèi)別F1值和反對(duì)類(lèi)別F1值的宏平均。我們選擇了當(dāng)前立場(chǎng)分析領(lǐng)域的四個(gè)最優(yōu)方法與BERT模型進(jìn)行對(duì)比,包括:
SVM:NGram特征+支持向量機(jī)分類(lèi)器,該方法取得了當(dāng)時(shí)參加評(píng)測(cè)的所有方法的最優(yōu)分類(lèi)效果
MITRE:基于循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)的方法,在參加評(píng)測(cè)的神經(jīng)網(wǎng)絡(luò)方法中取得最優(yōu)效果
pkudblab:基于卷積神經(jīng)網(wǎng)絡(luò)的方法,在參加評(píng)測(cè)的神經(jīng)網(wǎng)絡(luò)方法中效果僅次于MITRE
TGMN-CR:結(jié)合動(dòng)態(tài)記憶模塊與循環(huán)神經(jīng)網(wǎng)絡(luò)的方法,近期提出的最新方法
上述方法與BERT模型在5個(gè)數(shù)據(jù)子集上的分類(lèi)效果如下表所示(對(duì)比方法的數(shù)據(jù)來(lái)自于論文:A Target-GuidedNeural Memory Model for Stance Detection in Twitter,DOI:10.1109/IJCNN.2018.8489665)。
方法 | 有神論 | 氣候變化 | 女權(quán)運(yùn)動(dòng) | Hillary Clinton | 墮胎合法化 |
SVM | 65.19% | 42.35% | 57.46% | 58.63% | 66.42% |
MITRE | 61.47% | 41.63% | 62.09% | 57.67% | 57.28% |
pkudblab | 63.34% | 52.69% | 51.33% | 64.41% | 61.09% |
TGMN-CR | 64.6% | 43.02% | 59.35% | 66.21% | 66.21% |
BERT | 75.51% | 46.04% | 55.35% | 67.54% | 62.5% |
從上表中可以看到,BERT模型在2個(gè)數(shù)據(jù)子集中都取得了最優(yōu)效果,尤其是“有神論”數(shù)據(jù)集,F1值超過(guò)當(dāng)前最優(yōu)算法約10%!不過(guò),在其余三個(gè)數(shù)據(jù)子集中,BERT模型的表現(xiàn)比較一般。
4.4 AG’s News& Yelp Review Full & Yahoo! Answers
這三個(gè)數(shù)據(jù)集算是文本分類(lèi)領(lǐng)域的經(jīng)典數(shù)據(jù)集了,分別對(duì)應(yīng)新聞分類(lèi)、情感分類(lèi)和問(wèn)答系統(tǒng)任務(wù)。這里,我們選擇了4種在這三個(gè)數(shù)據(jù)集上進(jìn)行過(guò)實(shí)驗(yàn)驗(yàn)證的方法與BERT模型進(jìn)行對(duì)比,包括:
char-CNN:將未分詞的文本直接輸入卷積神經(jīng)網(wǎng)絡(luò)
FastText:一種用于文本分類(lèi)的快速神經(jīng)網(wǎng)絡(luò)方法
VDCNN:Very Deep CNN,顧名思義,非常非常深的卷積神經(jīng)網(wǎng)絡(luò)Region embedding:利用局部文本語(yǔ)義信息增強(qiáng)文本中每個(gè)詞的語(yǔ)義向量表示,輸入到一個(gè)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)中進(jìn)行分類(lèi)
DPCNN:Deep Pyramid CNN,同樣是非常深的神經(jīng)網(wǎng)絡(luò),通過(guò)池化操作使網(wǎng)絡(luò)的每層神經(jīng)元個(gè)數(shù)不斷減半,因此,整個(gè)神經(jīng)網(wǎng)絡(luò)看起來(lái)像是一個(gè)金字塔結(jié)構(gòu)
上述對(duì)比方法與BERT模型在三個(gè)數(shù)據(jù)集上的分類(lèi)準(zhǔn)確率如下表所示(對(duì)比方法的數(shù)據(jù)來(lái)自于論文:A New method ofRegion Embedding for Text Classification和Deep PyramidConvolutional Neural Networks for Text Categorization)。
方法 | AG’s News | Yelp Review Full | Yahoo! Answers |
char-CNN | 87.2% | 62% | 71.2% |
FastText | 92.5% | 63.9% | 72.3% |
VDCNN | 91.3% | 64.7% | 73.4% |
Region embedding | 92.8% | 64.9% | 73.7% |
DPCNN | 93.1% | 69.4% | 76.1% |
BERT | 94.6% | 66.0% | 74.2% |
上表表明,BERT模型在AG’s News數(shù)據(jù)集上取得了最高的分類(lèi)準(zhǔn)確率,在Yelp Review Full和Yahoo! Answers數(shù)據(jù)集上也都取得了次高的分類(lèi)準(zhǔn)確率。需要注意的是,我們目前僅使用12層Transformer Encoder結(jié)構(gòu)的BERT模型進(jìn)行實(shí)驗(yàn),后續(xù)會(huì)進(jìn)一步檢驗(yàn)24層TransformerEncoder結(jié)構(gòu)的BERT模型的分類(lèi)效果,可以期待,BERT模型的分類(lèi)效果應(yīng)該會(huì)隨著網(wǎng)絡(luò)結(jié)構(gòu)的加深而進(jìn)一步有所提高。
5. 結(jié)語(yǔ)
本文分析了BERT模型的內(nèi)部結(jié)構(gòu)與原理,并在文本分類(lèi)任務(wù)上檢驗(yàn)了模型效果。從實(shí)驗(yàn)結(jié)果中可以看出,BERT模型的文本分類(lèi)效果在許多中/英文數(shù)據(jù)集上都超過(guò)了現(xiàn)有方法,體現(xiàn)出了很強(qiáng)的泛用性。后續(xù)我們將繼續(xù)檢驗(yàn)BERT模型在其它NLP任務(wù)中的效果,并研究提升模型訓(xùn)練效率的方法,歡迎大家批評(píng)與指正!
Citations
Devlin J, Chang M W, Lee K, et al. Bert:Pre-training of deep bidirectional transformers for language understanding[J].arXiv preprint arXiv:1810.04805, 2018.
Vaswani A, Shazeer N, Parmar N, et al.Attention is all you need[C]//Advances in Neural Information ProcessingSystems. 2017: 5998-6008.
Zhang L, Chen C. Sentimentclassification with convolutional neural networks: an experimental study on alarge-scale Chinese conversation corpus[C]//Computational Intelligence andSecurity (CIS), 2016 12th International Conference on. IEEE, 2016: 165-169.
Mohammad S, Kiritchenko S, Sobhani P, etal. Semeval-2016 task 6: Detecting stance in tweets[C]//Proceedings of the 10thInternational Workshop on Semantic Evaluation (SemEval-2016). 2016: 31-41.
Zarrella G, Marsh A. MITRE atsemeval-2016 task 6: Transfer learning for stance detection[J]. arXiv preprintarXiv:1606.03784, 2016.
Wei W, Zhang X, Liu X, et al. pkudblabat semeval-2016 task 6: A specific convolutional neural network system foreffective stance detection[C]//Proceedings of the 10th International Workshopon Semantic Evaluation (SemEval-2016). 2016: 384-388.
Wei P, Mao W, Zeng D. A Target-GuidedNeural Memory Model for Stance Detection in Twitter[C]//2018 InternationalJoint Conference on Neural Networks (IJCNN). IEEE, 2018: 1-8.
Joulin A, Grave E, Bojanowski P, et al.Bag of tricks for efficient text classification[J]. arXiv preprintarXiv:1607.01759, 2016.
Conneau A, Schwenk H, Barrault L, et al.Very deep convolutional networks for natural language processing[J]. arXivpreprint, 2016.
Johnson R, Zhang T. Deep pyramidconvolutional neural networks for text categorization[C]//Proceedings of the55th Annual Meeting of the Association for Computational Linguistics (Volume 1:Long Papers). 2017, 1: 562-570.
聯(lián)系客服