段丹丹,唐加山,溫 勇,袁克海,2
(1.南京郵電大學(xué) 理學(xué)院,南京 210023;2.圣母大學(xué) 心理學(xué)系,美國(guó) 南本德46556)
根據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心于2019 年2 月28 日發(fā)布的第43 次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》[1],截至2018 年12 月我國(guó)網(wǎng)民規(guī)模達(dá)8.29 億,互聯(lián)網(wǎng)普及率達(dá)到59.6%,其中網(wǎng)民通過手機(jī)接入互聯(lián)網(wǎng)的比例高達(dá)98.6%,即時(shí)通信、搜索引擎和網(wǎng)絡(luò)新聞是手機(jī)網(wǎng)民使用率最高的應(yīng)用,這3 類手機(jī)應(yīng)用包含聊天記錄、搜索日志、新聞標(biāo)題、手機(jī)短信等大量短文本[2],攜帶了豐富的數(shù)據(jù)信息,其已成為人類社會(huì)的重要信息資源,如何高效管理這些海量的短文本并從中快速獲取有效信息受到越來(lái)越多學(xué)者的關(guān)注,并且對(duì)于短文本分類技術(shù)的需求日益突顯。
國(guó)內(nèi)學(xué)者針對(duì)中文短文本的分類研究主要包括中文短文本的特征表示與分類算法的選擇與改進(jìn)。文獻(xiàn)[3]提出一種基于word2vec 的中文短文本分類算法,使用word2vec 詞嵌入技術(shù)對(duì)短文本的分詞結(jié)果進(jìn)行詞向量表示,并使用TF-IDF 對(duì)每個(gè)詞向量進(jìn)行加權(quán),最終使用LIBSVM 分類算法進(jìn)行文本分類。實(shí)驗(yàn)結(jié)果表明,該算法可以有效提高短文本的分類效果。文獻(xiàn)[4]提出一種全新的文本表示方法(N-of-DOC),即通過運(yùn)用基尼不純度、信息增益和卡方檢驗(yàn)從短語(yǔ)特征中提取整個(gè)訓(xùn)練集的高質(zhì)量特征。每篇文檔提取的短語(yǔ)特征必須由這些高質(zhì)量特征線性表示,再經(jīng)word2vec 詞向量表示后,使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的卷積層和池化層提取高層特征,最終利用Softmax 分類器進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明,該方法在分類精度上相比傳統(tǒng)方法提高了4.23%。文獻(xiàn)[5]以微博為例,設(shè)置詞和字兩種特征粒度,選擇信息增益率、信息增益、word2vec 和特征頻度來(lái)降低特征維度,重點(diǎn)探討兩種特征粒度在口語(yǔ)化短文本分類中的特點(diǎn)和作用,并得出在口語(yǔ)化短文本分類中選擇字特征效果更好。文獻(xiàn)[6]提出一種基于混合神經(jīng)網(wǎng)絡(luò)的中文短文本分類方法,先使用自定義特征詞篩選機(jī)制將文檔基于短語(yǔ)和字符兩個(gè)層面進(jìn)行特征詞篩選,運(yùn)用CNN 結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)提取文檔的高階向量特征,并引入注意力機(jī)制優(yōu)化高階向量特征。實(shí)驗(yàn)結(jié)果表明,在二分類及多分類數(shù)據(jù)集上,該方法能夠在分類精度上比單模型取得更好的效果。文獻(xiàn)[7]提出一種融合詞頻-逆文本頻率(Term Frequency-Inverse Document Frequency,TF-IDF)和隱含狄利克雷分布(Latent Dirichlet Allocation,LDA)的中文FastText 短文本分類方法。該方法在模型輸入階段對(duì)經(jīng)過n元語(yǔ)法模型處理后的詞典進(jìn)行TF-IDF篩選,之后使用LDA 模型對(duì)語(yǔ)料庫(kù)進(jìn)行主題分析以補(bǔ)充特征詞典,使得模型在計(jì)算輸入詞序列向量均值時(shí)會(huì)偏向高區(qū)分度的詞條。實(shí)驗(yàn)結(jié)果表明,該方法在中文短文本分類方面具有更高的精確率。
文獻(xiàn)[8]采用正則化權(quán)值的方式對(duì)K 近鄰(KNearest Neighbor,KNN)算法進(jìn)行改進(jìn),并結(jié)合粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法提高文本分類效果。文獻(xiàn)[9]采用組合模型的方式,提出一種基于集成神經(jīng)網(wǎng)絡(luò)的短文本分類模型C-RNN。該方法使用CNN 構(gòu)造擴(kuò)展詞向量,再利用RNN 捕獲短文本內(nèi)部結(jié)構(gòu)的依賴關(guān)系,然后使用正則化項(xiàng)選取出模型復(fù)雜度和經(jīng)驗(yàn)風(fēng)險(xiǎn)均最小的模型。實(shí)驗(yàn)結(jié)果表明,該方法對(duì)短文本分類具有較好的分類效果和魯棒性。
上述針對(duì)短文本的特征表示算法均是將短文本進(jìn)行分詞或者分字,處理對(duì)象為字符或者詞語(yǔ)層面的特征,而由于短文本具有特征稀疏的特性,字符或者詞語(yǔ)不能表示短文本的完整語(yǔ)義,因此導(dǎo)致短文本的特征表示向量不能較好地代表短文本語(yǔ)義。文獻(xiàn)[8-9]雖然對(duì)分類算法進(jìn)行了改進(jìn),但是分類算法的輸入仍是短文本的特征表示向量,特征表示向量的誤差會(huì)向下傳至分類器,因此,短文本的特征表示是提高短文本分類性能的關(guān)鍵步驟?;谝陨涎芯浚疚膶?duì)短文本的特征表示進(jìn)行改進(jìn),提出一種基于Transformer 的雙向編碼器表示(Bidirectional Encoder Representation from Transformer,BERT)[10]的中文短文本分類算法。
本文基于BERT 的中文短文本分類算法主要由短文本預(yù)處理、短文本向量化以及短文本分類三部分構(gòu)成,短文本預(yù)處理的目的是將輸入的短文本整理成分類所需的文本,降低其他符號(hào)對(duì)分類效果的影響,然后對(duì)預(yù)處理后的短文本進(jìn)行向量化表示并形成特征向量,最終將特征向量輸入搭建好的分類器以實(shí)現(xiàn)短文本分類。
中文短文本有多種預(yù)處理方式,而本文對(duì)于短文本的預(yù)處理過程具體如下[11]:
1)文本清洗。文本清洗主要包括去除特殊符號(hào)、去除多余空白及文本繁體轉(zhuǎn)簡(jiǎn)體3 個(gè)步驟。去除特殊符號(hào)以及多余空白是使短文本的特征表示盡可能地只關(guān)注短文本自身詞匯的特征和語(yǔ)義本身,降低其他符號(hào)對(duì)分類準(zhǔn)確率的影響。文本繁體轉(zhuǎn)簡(jiǎn)體是為了方便后續(xù)的文本向量化表示,因?yàn)楸疚氖褂玫奈谋鞠蛄炕硎痉椒ㄊ钦{(diào)用外部的詞向量模型,如果文本中使用的詞匯不在詞匯表中,則會(huì)使當(dāng)前詞匯使用初始化的向量表示方法,改變?cè)~匯本身的語(yǔ)義,而多數(shù)繁體文本較為復(fù)雜,通常都會(huì)超出詞匯表的范圍,而將其轉(zhuǎn)為簡(jiǎn)體既不會(huì)改變其本身的語(yǔ)義,又方便向量化表示,所以文本繁體轉(zhuǎn)簡(jiǎn)體的步驟十分必要。
2)去除停用詞。因?yàn)橹形亩涛谋局型ǔ4嬖凇暗摹薄鞍伞薄鞍 薄斑馈钡雀哳l且無(wú)實(shí)際意義的詞,所以本文將這類詞語(yǔ)加入停用詞庫(kù)進(jìn)行過濾,這樣可在一定程度上降低輸入文本的特征維度,提高文本分類處理的效率和效果。
3)類別匹配。將原始文本與其對(duì)應(yīng)類別一一匹配,因?yàn)楸疚氖褂糜斜O(jiān)督的文本分類算法,所以需要知道每一個(gè)樣本的特定類別。
4)文本過濾。文本過濾主要包括文本過濾和類別過濾。文本長(zhǎng)度過濾是因?yàn)楸疚难芯繉?duì)象為短文本,而短文本通常為不超過200 個(gè)字符的文本形式,若文本過長(zhǎng),則會(huì)超出本文研究范圍,所以將此類文本進(jìn)行過濾。類別過濾是因?yàn)橛械念悇e所包含的文本樣本過少,不具有研究參考價(jià)值,所以將此類別的文本進(jìn)行整體過濾。
預(yù)處理后的短文本只有再經(jīng)過一次向量化表示,才能作為分類模型的輸入。通常地,短文本向量化表示是將短文本進(jìn)行分詞,之后針對(duì)分詞后的短文本進(jìn)行特征詞提取,選取最能代表短文本語(yǔ)義的特征詞進(jìn)行詞向量表示,一般使用word2vec 模型[12]作為詞向量模型,能夠?qū)⒚總€(gè)特征詞都轉(zhuǎn)化為相同形狀的多個(gè)1×k維的向量,其中k為詞向量維數(shù),最后經(jīng)過拼接的方式將特征詞的詞向量整合成一個(gè)n×k維的向量,其中n為短文本特征詞個(gè)數(shù)。由于word2vec 模型進(jìn)行詞向量表示時(shí)不能通過上下文語(yǔ)義進(jìn)行特征詞區(qū)分,例如“蘋果”這個(gè)詞存在多種語(yǔ)義,如果是“院子里的蘋果熟了”,則此時(shí)“蘋果”表示水果,如果是“蘋果公司發(fā)布新產(chǎn)品”,則此時(shí)“蘋果”表示公司名,因此word2vec 詞向量模型會(huì)將這兩個(gè)短文本中的“蘋果”都表示成相同的向量,然而對(duì)于分類器而言,這兩個(gè)詞表示相同含義。為解決該問題,本文使用BERT 模型替代word2vec 模型進(jìn)行文本語(yǔ)義表示。
1.2.1 BERT 模型結(jié)構(gòu)
BERT 模型結(jié)構(gòu)[10]如圖1 所示,其中E1,E2,…,EN表示字的文本輸入,其經(jīng)過雙向Transformer 編碼器(Trm 模塊)得到文本的向量化表示,即文本的向量化表示主要通過Transformer 編碼器實(shí)現(xiàn)。
圖1 BERT 模型結(jié)構(gòu)Fig.1 Structure of BERT model
Transformer[13]是一個(gè)基于Self-attention 的Seq2seq模型。Seq2seq 是一個(gè)Encoder-Deocder 結(jié)構(gòu)的模型,即輸入和輸出均是一個(gè)序列,其中,Encoder 將一個(gè)可變長(zhǎng)度的輸入序列變?yōu)楣潭ㄩL(zhǎng)度的向量,Decoder 將該固定長(zhǎng)度的向量解碼為可變長(zhǎng)度的輸出序列,Seq2seq 模型結(jié)構(gòu)如圖2 所示。
圖2 Seq2seq 模型結(jié)構(gòu)Fig.2 Structure of Seq2seq model
通常解決序列問題的Encoder-Decoder 結(jié)構(gòu)的核心模塊基于RNN 實(shí)現(xiàn),但是RNN 不能進(jìn)行并行實(shí)現(xiàn)且運(yùn)行速度慢。為此,Transformer 使用Self-attention替代RNN。BERT 模型中主要使用Transformer 的Encoder 部分,具體結(jié)構(gòu)如圖3 所示。
圖3 Transformer Encoder 結(jié)構(gòu)Fig.3 Structure of Transformer Encoder
從圖3 可以看出,Encoder 的輸入是一句句子的字嵌入表示,然后加上該句子中每個(gè)字的位置信息,之后經(jīng)過Self-attention 層,使得Encoder 在對(duì)每個(gè)字進(jìn)行編碼時(shí)可以查看該字的前后信息。Encoder 的輸出會(huì)再經(jīng)過一層Add &Norm 層,Add 表示將Selfattention 層的輸入和輸出進(jìn)行相加,Norm 表示將相加過的輸出進(jìn)行歸一化處理,使得Self-attention 層的輸出有固定的均值和標(biāo)準(zhǔn)差,其中,均值為0,標(biāo)準(zhǔn)差為1,歸一化后的向量列表會(huì)再傳入一層全連接的前饋神經(jīng)網(wǎng)絡(luò)。同樣地,F(xiàn)eed Forward 層也會(huì)經(jīng)過相應(yīng)的Add &Norm 層處理,之后輸出歸一化后的詞向量列表。Encoder 部分中最主要的模塊為Self-attention,其核心思想是計(jì)算一句句子中每個(gè)詞與該句子中所有詞的相互關(guān)系,再利用這些相互關(guān)系來(lái)調(diào)整每個(gè)詞的權(quán)重以獲得每個(gè)詞新的表達(dá)方式,該表達(dá)方式不但蘊(yùn)含詞本身的語(yǔ)義,還蘊(yùn)含其與其他詞的關(guān)系,因此通過該方法獲得的向量相比傳統(tǒng)詞向量具有更加全局的表達(dá)方式[14]。
1.2.2 Self-attention 計(jì)算
假設(shè)輸入句子X,將其按照字粒度進(jìn)行分字后表示為X=(x1,x2,…,xN)T,N表示輸入句子中字的個(gè)數(shù),將每個(gè)字采用One-hot 向量[15]表示,設(shè)維數(shù)為k,則X對(duì)應(yīng)的字嵌入矩陣為A=(a1,a2,…,aN)T,其中ai是對(duì)應(yīng)xi的向量表示,是一個(gè)k維向量,A是一個(gè)N×k維的矩陣,每一行對(duì)應(yīng)該輸入句子中一個(gè)字的向量表示。Self-attention 計(jì)算步驟具體如下:
1)計(jì)算Query、Key、Value 矩陣[13],通過模型訓(xùn)練得到:
Q=AWQ,K=AWK,V=AWV
其中:Q、K、V分別為N×dk、N×dk、N×dv維的矩陣,它們的每一行分別對(duì)應(yīng)輸入句子中一個(gè)字的Query、Key、Value 向量,且每個(gè)Query 和Key 向量的維度均為dk,Value 向量的維度為dv;權(quán)重矩陣WQ和WK的維度均為k×dk,權(quán)重矩陣WV的維度為k×dv。
2)計(jì)算Attention[13]:
其中,Softmax(·)為歸一化指數(shù)函數(shù),當(dāng)其作用于矩陣時(shí),表示對(duì)矩陣中的每一個(gè)行向量都進(jìn)行以下運(yùn)算[16]:
其中,(z1,z2,…,zN)為一個(gè)N維行向量,經(jīng)Softmax(·)函數(shù)作用后的行向量元素被等比例壓縮至[0,1],并且壓縮后的向量元素和為1。最終得到的Attention 值是一個(gè)N×dv維的矩陣,每一行代表輸入句子中相應(yīng)字的Attention 向量,該向量已融合其他位置字的信息,是一個(gè)全新的向量表示。
由上文計(jì)算公式可以看出,整個(gè)Self-attention 計(jì)算過程是一系列矩陣乘法,且可以實(shí)現(xiàn)并行運(yùn)算,運(yùn)行速度優(yōu)于RNN。在實(shí)際應(yīng)用過程中,Transformer 使用Multi-head Self-attention,即多頭Self-attention,多頭模式可以增強(qiáng)模型關(guān)注能力,head 個(gè)數(shù)即超參數(shù)個(gè)數(shù)[13],在實(shí)際訓(xùn)練模型中可以人為設(shè)置。假如本文設(shè)置head=2,那么其中一個(gè)Self-attention 可以更多地關(guān)注每個(gè)字相鄰單詞的信息,另一個(gè)Self-attention 可以更多地關(guān)注每個(gè)字更遠(yuǎn)位置的單詞信息,然后將這兩個(gè)Self-attention 矩陣進(jìn)行橫向拼接,最后使用一個(gè)附加的權(quán)重矩陣與該矩陣相乘使其壓縮成一個(gè)矩陣,計(jì)算公式[13]如下:
在上文Self-attention 計(jì)算過程中沒有考慮輸入序列中各個(gè)單詞的順序,但在自然語(yǔ)言處理中文本的單詞順序是非常重要的信息,例如,“他打了我”和“我打了他”,對(duì)應(yīng)單詞完全一樣,但是由于單詞順序不同,卻表達(dá)出完全相反的語(yǔ)義,因此在實(shí)際應(yīng)用中,Transformer 將輸入字的位置信息加在輸入層的字嵌入表示上,即在進(jìn)入Self-attention 層之前,字嵌入表示矩陣已經(jīng)融合了位置信息。綜上所述,BERT模型使用雙向Transformer 的Encoder 可以學(xué)習(xí)每個(gè)單詞的前后信息,獲得更好的詞向量表示。
1.2.3 預(yù)訓(xùn)練任務(wù)
為增強(qiáng)語(yǔ)義表示能力,BERT 模型創(chuàng)新性地提出MLM(Masked LM)和NSP(Next Sentence Prediction)兩個(gè)預(yù)訓(xùn)練任務(wù)。
1)MLM 任務(wù)。給定一句句子,隨機(jī)掩蓋其中的一個(gè)或者幾個(gè)詞,用剩余的詞去預(yù)測(cè)掩蓋的詞。該任務(wù)是為了使BERT 模型能夠?qū)崿F(xiàn)深度的雙向表示,具體做法為:針對(duì)訓(xùn)練樣本中的每個(gè)句子隨機(jī)掩蓋其中15%的詞用于預(yù)測(cè),例如,“大都好物不堅(jiān)牢”,被掩蓋的詞是“堅(jiān)”,對(duì)于被掩蓋的詞,進(jìn)一步采取以下策略:
(1)80%的概率真的用[MASK]替代被掩蓋的詞:“大都好物不堅(jiān)牢”→“大都好物不[MASK]牢”。
(2)10%的概率用一個(gè)隨機(jī)詞去替代它:“大都好物不堅(jiān)牢”→“大都好物不好牢”。
(3)10%的概率保持不變:“大都好物不堅(jiān)牢”→“大都好物不堅(jiān)牢”。
經(jīng)過上述操作,在后續(xù)微調(diào)任務(wù)的語(yǔ)句中不會(huì)出現(xiàn)[MASK]標(biāo)記,若總使用[MASK]替代被掩蓋的詞,則會(huì)導(dǎo)致模型預(yù)訓(xùn)練與后續(xù)微調(diào)過程不一致。另外,由于當(dāng)預(yù)測(cè)一個(gè)詞匯時(shí),模型并不知道輸入的詞匯是否為正確的詞匯,這使得模型更多地依賴上下文信息預(yù)測(cè)詞匯,因此上述操作賦予模型一定的糾錯(cuò)能力。本文只隨機(jī)替換1.5%的詞為其他詞,整體上不會(huì)影響模型的語(yǔ)言理解能力。
2)NSP 任務(wù)。給定一篇文章中的兩句句子,判斷第二句句子在文章中是否緊跟在第一句句子之后。問答(Question Answering,QA)和自然語(yǔ)言推理(Natural Language Inference,NLI)等重要的自然語(yǔ)言處理下游任務(wù)多數(shù)是基于理解兩個(gè)句子之間的關(guān)系,因此該任務(wù)是為了使BERT 模型學(xué)習(xí)到兩個(gè)句子之間的關(guān)系。具體做法為:從文本語(yǔ)料庫(kù)中隨機(jī)選擇50%正確語(yǔ)句對(duì)和50%錯(cuò)誤語(yǔ)句對(duì),若選擇A和B 作為訓(xùn)練樣本時(shí),則B 有50%的概率是A 的下一個(gè)句子,也有50%的概率來(lái)自語(yǔ)料庫(kù)中隨機(jī)選擇的句子,本質(zhì)上是在訓(xùn)練一個(gè)二分類模型,判斷句子之間的正確關(guān)系。在實(shí)際訓(xùn)練過程中,結(jié)合NSP 任務(wù)與MLM 任務(wù)能夠使模型更準(zhǔn)確地刻畫語(yǔ)句甚至篇章層面的語(yǔ)義信息。
本文使用BERT 模型進(jìn)行短文本的向量表示,一般的短文本表示流程如圖4 所示。
圖4 一般短文本表示流程Fig.4 Procedure of general short text representation
BERT 模型的輸出有兩種形式:一種是字符級(jí)別的向量,即輸入短文本的每個(gè)字符對(duì)應(yīng)的向量表示;另一種是句子級(jí)別的向量,即BERT 模型輸出最左邊[CLS]特殊符號(hào)的向量,BERT 模型認(rèn)為該向量可以代表整個(gè)句子的語(yǔ)義,如圖5 所示。
圖5 BERT 模型輸出Fig.5 Output of BERT model
在圖5 中,最底端的[CLS]和[SEP]是BERT 模型自動(dòng)添加的句子開頭和結(jié)尾的表示符號(hào),可以看出輸入字符串中每個(gè)字符經(jīng)過BERT 模型處理后都有相應(yīng)的向量表示。當(dāng)需要得到一個(gè)句子的向量表示時(shí),BERT 模型輸出最左邊[CLS]特殊符號(hào)的向量,由于本文使用BERT 模型的輸出,因此相比一般短文本表示流程,無(wú)需進(jìn)行特征提取、特征向量表示及特征向量拼接,具體流程如圖6 所示。
圖6 本文短文本表示流程Fig.6 Procedure of the proposed short text representation
本文引入Softmax 回歸模型進(jìn)行短文本分類。Softmax 回歸模型是Logistic 回歸模型在多分類問題中的擴(kuò)展,屬于廣義線性模型。假設(shè)有訓(xùn)練樣本集{(x1,y1),(x2,y2),…,(xm,ym)},其中:xi∈?n表示第i個(gè)訓(xùn)練樣本對(duì)應(yīng)的短文本向量,維度為n,共m個(gè)訓(xùn)練樣本;yi∈{1,2,…,k}表示第i個(gè)訓(xùn)練樣本對(duì)應(yīng)的類別,k為類別個(gè)數(shù),由于本文研究短文本多分類問題,因此k≥2。給定測(cè)試輸入樣本x,Softmax 回歸模型的分布函數(shù)為條件概率p(y=j|x),即計(jì)算給定樣本x屬于第j個(gè)類別的概率,其中出現(xiàn)概率最大的類別即為當(dāng)前樣本x所屬的類別,因此最終分布函數(shù)會(huì)輸出一個(gè)k維向量,每一維表示當(dāng)前樣本屬于當(dāng)前類別的概率,并且模型將k維向量的和做歸一化操作,即向量元素的和為1。因此,Softmax 回歸模型的判別函數(shù)hθ(xi)為[17]:
其中:hθ(xi)中任一元素p(yi=k|xi;θ)是當(dāng)前輸入樣本xi屬于當(dāng)前類別k的概率,并且向量中各個(gè)元素之和等于1;θ為模型的總參數(shù),θ1,θ2,…,θk∈?n為各個(gè)類別對(duì)應(yīng)的分類器參數(shù),具體關(guān)系為
Softmax 回歸模型的參數(shù)估計(jì)可用極大似然法進(jìn)行求解,似然函數(shù)和對(duì)數(shù)似然函數(shù)分別為:
在一般情況下,Softmax 回歸模型通過最小化損失函數(shù)求得θ,從而預(yù)測(cè)一個(gè)新樣本的類別。定義Softmax 回歸模型的損失函數(shù)[18]為:
其中,m為樣本個(gè)數(shù),k為類別個(gè)數(shù),i表示某個(gè)樣本,xi是第i個(gè)樣本x的向量表示,j表示某個(gè)類別。
本文使用隨機(jī)梯度下降法優(yōu)化上述損失函數(shù),由于在Softmax 回歸模型中,樣本x屬于類別j的概率為因此損失函數(shù)的梯度為
本文提出基于BERT 的中文短文本分類算法,具體步驟如下:
算法1基于BERT 的中文短文本分類算法
輸入初始中文短文本訓(xùn)練集T={(x1,y1),(x2,y2),…,(xN,yN)},i=1,2,…,N,其中,xi為第i個(gè)訓(xùn)練樣本對(duì)應(yīng)的中文短文本向量,yi為第i個(gè)訓(xùn)練樣本對(duì)應(yīng)的類別
輸出中文短文本分類模型M
步驟1對(duì)訓(xùn)練集T進(jìn)行預(yù)處理得到訓(xùn)練集T′={(x1',y1'),(x2',y2'),…,(xN',yN')},i=1,2,…,N′,其中,xi'為預(yù)處理后的第i′個(gè)訓(xùn)練樣本對(duì)應(yīng)的中文短文本向量,yi'為預(yù)處理后第i′個(gè)訓(xùn)練樣本對(duì)應(yīng)的類別。
步驟2使用BERT 預(yù)處理語(yǔ)言模型在訓(xùn)練集T′上進(jìn)行微調(diào),采用BERT 模型輸出得到訓(xùn)練集T′對(duì)應(yīng)的特征表示V=(v1,v2,…,vN'),i=1,2,…,N′,其中,vi是每條短文本xi'對(duì)應(yīng)句子級(jí)別的特征向量。
步驟3將步驟2中得到的特征表示V輸入Softmax回歸模型進(jìn)行訓(xùn)練,輸出中文短文本分類模型M。
本文實(shí)驗(yàn)使用的語(yǔ)料庫(kù)來(lái)自搜狗實(shí)驗(yàn)室提供的2012年6月—2012年7月國(guó)內(nèi)、社會(huì)、體育、娛樂等18個(gè)頻道的搜狐新聞數(shù)據(jù)[19],選取其中體育、財(cái)經(jīng)、娛樂、IT、汽車和教育6 個(gè)類別。根據(jù)6 000、18 000 和30 000 的文本數(shù)據(jù)量設(shè)計(jì)A、B、C 3 組實(shí)驗(yàn),按照8∶1∶1 的比例劃分訓(xùn)練集、驗(yàn)證集及測(cè)試集,并且每次從各類別中隨機(jī)選擇等量的文本數(shù)據(jù),如表1 所示。
表1 實(shí)驗(yàn)數(shù)據(jù)設(shè)置Table 1 Setting of experimental data
本文研究問題屬于分類問題,分類問題常用的評(píng)價(jià)指標(biāo)為精確率(P)、召回率(R)以及F1 值,分類結(jié)果的混淆矩陣[20]如表2 所示。
表2 分類結(jié)果的混淆矩陣Table 2 Confusion matrix of classification results
1)P是指分類器預(yù)測(cè)為正且預(yù)測(cè)正確的樣本占所有預(yù)測(cè)為正的樣本的比例,計(jì)算公式如下:
2)R是指分類器預(yù)測(cè)為正且預(yù)測(cè)正確的樣本占所有真實(shí)為正的樣本的比例,計(jì)算公式如下:
3)F1 值是P和R的綜合指標(biāo),一般計(jì)算公式[21]如下:
其中,F(xiàn)β是基于P和R的加權(quán)調(diào)和平均,β>0 時(shí)表示R對(duì)P的相對(duì)重要性[21],通常取β=1,此時(shí)Fβ為標(biāo)準(zhǔn)F1 值,計(jì)算公式如下:
其中,0≤F1≤1,當(dāng)P=R=1 時(shí),F(xiàn)1 值達(dá)到最大值1,此時(shí)P和R均達(dá)到100%的理想情況,而由文獻(xiàn)[21]可知該情況在實(shí)際應(yīng)用中很難實(shí)現(xiàn),當(dāng)P高時(shí)R通常會(huì)偏低,當(dāng)R高時(shí)P通常會(huì)偏低,因此在使用F1 值評(píng)估分類器性能時(shí),其值越接近1,說(shuō)明分類器性能越好??梢姡現(xiàn)1 值可以更加全面地反映分類性能,因此本文將其作為衡量分類效果的主要評(píng)價(jià)指標(biāo)。
本文選擇TextCNN 模型[22]作為對(duì)照模型進(jìn)行實(shí)驗(yàn),其利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)文本進(jìn)行分類,執(zhí)行效率高且分類效果較好。TextCNN 模型在短文本分類訓(xùn)練過程中使用的分詞工具為jieba 分詞,詞嵌入技術(shù)為word2vec,訓(xùn)練參數(shù)設(shè)置如表3 所示。
表3 TextCNN 模型訓(xùn)練參數(shù)設(shè)置Table 3 Training parameter setting of TextCNN model
本文使用Google 提供的BERT-Base 預(yù)訓(xùn)練模型。該模型具有12 層網(wǎng)絡(luò)結(jié)構(gòu),其中隱藏層有768 維,采用Multi-head Self-attention(head=12),并且共有1.1×108個(gè)參數(shù),訓(xùn)練參數(shù)設(shè)置如表4 所示。
表4 BERT 模型訓(xùn)練參數(shù)設(shè)置Table 4 Training parameter setting of BERT model
本文做了A、B 和C 3 組實(shí)驗(yàn),數(shù)據(jù)量逐漸增加,每組實(shí)驗(yàn)均使用TextCNN 模型作為對(duì)比,測(cè)試集保持不變,驗(yàn)證集與訓(xùn)練集中的模型參數(shù)保持一致,評(píng)價(jià)指標(biāo)主要采用F1 值,對(duì)比結(jié)果如圖7 所示??梢钥闯觯? 組實(shí)驗(yàn)中BERT 模型與TextCNN 模型在6 個(gè)類別上的F1 值均有所差異,說(shuō)明兩個(gè)模型在6 個(gè)類別上的分類性能不同,而且兩個(gè)模型均在體育、娛樂、汽車和教育類別上表現(xiàn)出優(yōu)于財(cái)經(jīng)和IT 類別的分類性能,主要原因?yàn)檫@4 類新聞數(shù)據(jù)具有更多的類別區(qū)分詞,有利于模型學(xué)習(xí)到更優(yōu)的類別特征,提高預(yù)測(cè)能力,這也從側(cè)面反映出文本分類模型的分類性能與文本數(shù)據(jù)質(zhì)量具有一定的關(guān)系。另外,BERT 模型在6 個(gè)類別上的分類性能均比TextCNN模型效果好,其中BERT 模型在A 組實(shí)驗(yàn)財(cái)經(jīng)類別上的F1 值相比TextCNN 模型最高提升14 個(gè)百分點(diǎn),在教育類別上最低提升3 個(gè)百分點(diǎn),而且BERT模型在C 組實(shí)驗(yàn)的體育類別上的F1 值最高可達(dá)97%,在B 組實(shí)驗(yàn)財(cái)經(jīng)類別上的F1 值最低為85%,但也高出TextCNN 模型5 個(gè)百分點(diǎn),驗(yàn)證了本文基于BERT 模型的中文短文分類算法的可行性。
圖7 BERT 模型與TextCNN 模型的分類結(jié)果對(duì)比Fig.7 Comparison of classification results between BERT model and TextCNN model
從3 組實(shí)驗(yàn)整體分類結(jié)果可以看出,隨著實(shí)驗(yàn)數(shù)據(jù)量的增加,兩個(gè)模型F1 值均有所提高,但總體而言,BERT 模型的F1 值一直優(yōu)于TextCNN 模型,最高F1 值達(dá)到93%,相比TextCNN 模型提升6 個(gè)百分點(diǎn),即使在數(shù)據(jù)量較少的情況下,BERT 模型的F1 值也達(dá)到90%,說(shuō)明其相比TextCNN 模型能更好地表示短文本層面的語(yǔ)義信息,具有更好的中文短文本分類效果。
本文在解決中文短文本分類的問題時(shí),使用BERT 模型替代常用的word2vec 模型進(jìn)行短文本的向量表示,提出一種基于BERT 模型的中文短文本分類算法。實(shí)驗(yàn)結(jié)果表明,該算法在搜狐新聞數(shù)據(jù)的多個(gè)類別上具有較好的分類效果,在體育類別上的F1 值最高達(dá)到97%,并且隨著數(shù)據(jù)量的增加,在測(cè)試集上的整體F1 值最高達(dá)到93%,相比基于TextCNN 模型的中文短文本分類算法提升6 個(gè)百分點(diǎn),說(shuō)明BERT 模型具有更好的中文短文本分類效果,對(duì)其他處理對(duì)象為句子級(jí)別的自然語(yǔ)言處理下游任務(wù)具有一定的參考價(jià)值。后續(xù)將在本文算法的句子表征上融入表情、標(biāo)點(diǎn)符號(hào)等位置信息來(lái)豐富短文本的句子向量特征表示,進(jìn)一步提高中文短文本的分類效果。