付文杰,楊 迪,馬紅明,吳 迪
(1.國網(wǎng)河北省電力有限公司 營銷服務(wù)中心,河北 石家莊 050000;2.河北工程大學 信息與電氣工程學院,河北 邯鄲 056038)
短文本因其內(nèi)容簡短、易于閱讀的特性,廣泛存在于微博、短信、電力工單等載體中[1]。文本分類作為自然語言處理的基本任務(wù),能夠為輿情分析、情感分析、個性化推薦等下游應(yīng)用服務(wù)。因此,如何高效、精確地對短文本進行分類已經(jīng)成為自然語言處理領(lǐng)域的難點與重點[2]。
針對文本長度長短不一和特征提取困難的問題,文獻[3]提出了一種基于LDA和深度學習的文本分類方法,但LDA更加適用于長文本。針對短文本存在高維和特征稀疏的問題,文獻[4]在短文本分類方法中,采用BTM挖掘潛在主題信息,充分考慮短文本特征,有效緩解了語義模糊的問題。
為充分提取短文本語義信息,文獻[5]提出了融合詞向量及BTM的分類方法BTM&Word2Vec,文獻[6]提出了一種基于BTM和Doc2Vec的分類方法BTM&Doc2Vec,上述文獻均采用主題模型和潛在特征向量模型對語料庫進行建模,向量拼接后輸入到SVM實現(xiàn)短文本分類。
針對Word2Vec與Doc2Vec模型在進行文本向量表示時,存在無法解決一詞多義的問題,文獻[7-9]提出了一種基于BERT的短文本分類方法,提高了中文短文本分類精度和魯棒性。
綜上所述,本文結(jié)合BTM和BERT模型優(yōu)勢,提出一種融合BTM和BERT的短文本分類方法。分別采用BTM和BERT模型對預處理后的短文本集建模,提取文本主題特征信息和上下文語義信息,構(gòu)建短文本特征向量,以增強語義表征能力,從而提高短文本分類精度。
LDA和PLSA等傳統(tǒng)主題模型通過獲取詞語的共現(xiàn)信息來表示文本級的潛在主題,但在處理短文本時,存在嚴重的特征稀疏問題。而BTM模型通過對整個語料庫的詞對建模來提高主題學習的能力,有效克服了短文本特征稀疏的問題,較傳統(tǒng)主題模型能夠更好地理解短文本主題信息。BTM圖模型[4]如圖1所示,其符號含義見表1。
圖1 BTM圖模型
表1 BTM符號及其含義
假設(shè)Multi()表示多項分布,Dir()表示Dirichlet分布,則對于整個語料庫中的詞對,BTM建模過程如下[10]:
(1)對整個語料庫,采樣一個主題分布θ~Dir(α);
(2)對每一個主題z∈[1,K], 采樣主題-詞分布φz~Dir(β);
(3)對每一詞對b=(wi,wj), 采樣一個主題z~Multi(θ), 從采樣到的主題z中隨機抽取兩個詞wi、wj組成詞對b=(wi,wj)~Multi(φz)。
Word2Vec、GloVe作為詞嵌入模型只能獲得靜態(tài)的和上下文無關(guān)的詞向量,不能很好地表示不同上下文中詞的語義[11]。而BERT[12]基于雙向Transformer 結(jié)構(gòu)生成上下文感知的動態(tài)詞向量,能夠更好地表示上下文語義信息[13]。BERT模型結(jié)構(gòu)[14]如圖2所示。
圖2 BERT模型結(jié)構(gòu)
圖2中,E1、E2、E3、…、En表示短文本中的字符,Trm表示Transformer編碼器,T1、T2、T3、…、Tn表示經(jīng)過雙向Transformer編碼器后,獲得的字向量。
融合BTM和BERT的短文本分類方法BTM&BERT流程如圖3所示。首先,對短文本進行預處理;其次,采用BTM對預處理后的短文本集進行建模,獲得K維主題向量;再次,采用BERT模型對預處理后的短文本集進行建模,獲得句子級別的Q維特征向量;最后,將BTM與BERT建模獲得的特征向量進行拼接,獲得K+Q維短文本特征向量,輸入到Softmax分類器,獲得分類結(jié)果。
圖3 BTM&BERT流程
原始語料庫數(shù)據(jù),包含了很多無用信息,如符號、戶號等,需要對原始語料庫進行預處理來獲取比較規(guī)范的數(shù)據(jù)集。短文本預處理主要包括清洗過濾、分詞、去停用詞三部分。
第一部分:對短文本進行清洗過濾,以電力工單短文本為例,刪除“[”、“]”、“客戶×××來電反映”、“請盡快核實處理”等無意義的符號和語句,以此來減少數(shù)據(jù)噪聲,另外,過濾少于10個字符的超短文本,以及多于128個字符的長文本;
第二部分:基于jieba采用樹結(jié)構(gòu)查找速度較快的優(yōu)勢,以及較好地解決了過多的形容詞和副詞對計算概率與句子切分的影響[15]。因此,本文采用jieba分詞工具對短文本進行分詞,在分詞模塊中加入停用詞表和自定義詞表,使分詞更加的精確;
第三部分:對短文本進行去停用詞處理,刪除諸如“同時”、“的”、“現(xiàn)在”、“今天”、“一直”等意義不大的詞匯,減少文本的冗余度。
短文本特征向量構(gòu)建主要包含3部分內(nèi)容。首先,采用BTM對預處理后的短文本集進行建模,獲得K維主題向量;然后,采用BERT模型對預處理后的短文本集進行建模,獲得句子級別的Q維特征向量;最后,將BTM與BERT建模獲得的向量進行拼接,獲得K+Q維短文本特征向量。
2.2.1 BTM建模
BTM從文本的潛在語義方向建模,能夠有效解決TF-IDF、TF-IWF等統(tǒng)計方法忽略語義信息的問題。似于LDA,θ和φ是BTM主題模型中的隱含變量,因此需要從語料庫中的觀察變量詞項來估計參數(shù)θ和φ,本文采用吉布斯抽樣(Gibbs sampling)方法進行推斷,得到每個詞對b=(wi,wj) 的條件概率為
(1)
式中:z-b表示除了詞b以外的所有其它詞對的主題分配,B表示數(shù)據(jù)集中的詞對集,cz表示詞對b被分配給主題z的次數(shù),cw|z表示詞w被分配給主題z的次數(shù),W為詞匯表大小。
根據(jù)經(jīng)驗,取α=50/K,β=0.01。 最終估計出主題分布θz、 主題-詞分布φw|z和文本-主題概率P(z|d)。θz和φw|z公式請參見文獻[16],P(z|d) 公式如下
(2)
式中:cd(b)表示文本d中包含詞對b的次數(shù)。
在獲得文本-主題概率P(z|d) 之后,選取每篇文本的文本-主題概率值P(z|d) 作為文本主題特征,獲得主題向量集dBTM={d1_BTM,d2_BTM,…,dn_BTM}, 其中,第n篇短文本主題向量可以表示為dn_BTM={p(z1|dn),p(z2|dn),…,p(zK|dn)}。
2.2.2 BERT建模
采用輸出句子級別向量的方式,即BERT模型輸出最左邊[CLS]特殊符號的向量,該符號對應(yīng)的輸出向量作為整篇文本的語義表示。BERT模型輸出[17]如圖4所示。
圖4 BERT模型輸出
如圖4所示,[CLS]和[SEP]是BERT模型自動添加的句子開頭和結(jié)尾的表示符號,假設(shè)有某篇短文本s=[申請用電服務(wù)查詢密碼重置], 將其按照字粒度進行分字后可表示為s=[申、請、用、電、服、務(wù)、查、詢、密、碼、重、置], 經(jīng)Word Embedding之后,得到s對應(yīng)的字嵌入矩陣A=[a1,a2,a3,…,a12]T, 其中a12是對應(yīng)“置”的向量表示,假設(shè)字向量維度為k, 則A是一個12*k的矩陣。然后,構(gòu)建Q-Query、K-Key、V-Value這3個矩陣,分別來建立當前字與其它字的關(guān)系,并生成特征向量。其中,Q=AWQ、K=AWK、V=AWV。 接著,進行多頭自注意力計算,計算公式為
(3)
MultiHead(Q,K,V)=Concat(head1,head2,…,headh)WO
(4)
(5)
最后,將MultiHead與最初輸入的文本序列進行殘差連接,最終得到句子級別特征向量。
2.2.3 短文本特征向量拼接
將BTM建模獲得的文本特征向量集dBTM={d1_BTM,d2_BTM,…,dn_BTM} 與BERT建模獲得的句子級別文本特征向量集dBERT={v1,v2,…,vn} 進行對應(yīng)拼接,獲得最終短文本特征向量集dBTM+BERT={d1_BTM+v1,d2_BTM+v2,…,dn_BTM+vn}, 其中第n篇短文本特征向量可以表示為dn_BTM+BERT={p(z1|dn),p(z2|dn),…,p(zK|dn),vn}。
在獲得短文本特征向量集之后,采用Softmax回歸模型對短文本進行分類。假設(shè)有訓練樣本集 {(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)}, 其中xn表示第n個訓練樣本對應(yīng)的短文本特征向量,共n個訓練樣本,yn∈{1,2,…,m} 表示第n個訓練樣本對應(yīng)的類別,m為類別個數(shù),本文中m=4。
給定測試短文本特征向量x,通過Softmax回歸模型的判別函數(shù)hθ(x) 計算給定樣本x屬于第j個類別的概率,輸出一個m維向量,每一維表示當前樣本屬于當前類別的概率,出現(xiàn)概率最大的類別即為當前樣本x所屬的類別。Softmax 回歸模型的判別函數(shù)hθ(x) 為
(6)
(7)
通過判別函數(shù)hθ(x), 即可以實現(xiàn)短文本數(shù)據(jù)預測分類。
融合BTM和BERT的短文本分類方法(BTM&BERT)如算法1所示。
算法1: BTM&BERT
輸入:D={(d1,y1),(d2,y2),…,(dn,yn)}、Niter=1000、K、α=50/K、β=0.01
輸出: 短文本分類模型BB_model
(1) 對短文本集D進行預處理
(2) 為所有詞對隨機分配初始主題
(3) foriter=1 toNiterdo
(4) forbi∈Bdo
(5) 為每一個詞對分配主題zb
(6) 更新cz、cwi|z、cwj|z
(7) End for
(8) End for
(9) 計算主題分布θz和主題-詞分布φw|z
(10) 根據(jù)式(2)計算文本-主題概率P(z|d), 獲得主題向量集dBTM={d1_BTM,d2_BTM,…,dn_BTM}
(11) 采用BERT預訓練模型對預處理后的短文本集進行建模, 獲得句子級別的特征向量集dBERT={v1,v2,…,vn}
(12) 對文本向量集dBTM和dBERT進行拼接, 獲得短文本特征向量集dBTM+BERT
(13) 將短文本向量集dBTM+BERT輸入到Softmax 回歸模型進行訓練
(14) 輸出短文本分類模型BB_model
本實驗的環(huán)境為:操作系統(tǒng)為64位Win10家庭版,處理器為Intel Core(TM) i5-9300H,RAM為16 GB,語言環(huán)境為Python3.6,BTM建模環(huán)境為Ubuntu 16.04,BERT建模環(huán)境為tensorflow 1.14。
表2 實驗數(shù)據(jù)具體分布情況
實驗數(shù)據(jù)(部分)見表3。
表3 實驗數(shù)據(jù)(部分)
本文采用Precision(精確率)、Recall(召回率)和F1-measure(F1值)3個指標對提出的BTM&BERT方法進行有效性分析。對應(yīng)的混淆矩陣見表4,3個指標的計算公式如下所示
表4 分類結(jié)果的混淆矩陣
(8)
(9)
(10)
采用Google提供的BERT-Base模型進行訓練,BERT模型的網(wǎng)絡(luò)結(jié)構(gòu)為12層,隱藏層為768維,注意力機制采用12頭模式,采用Adam優(yōu)化器,學習率為0.001,dro-pout 為0.1。由于主題數(shù)目K值的選取會直接影響B(tài)TM的性能,所以本文在主題數(shù)目K值上進行了實驗,在BTM建模時,根據(jù)語料庫類別數(shù),設(shè)置K=4,9,14 (以5為間隔),分析在不同K值下,對本文所提出的方法的影響。在不同K值下,本文提出的BTM&BERT方法在生產(chǎn)類非緊急業(yè)務(wù)、用電服務(wù)需求、用電異常核實、用電信息變更4個類別下的Precision、Recall和F1-measure結(jié)果見表5~表7。
表5 BTM&BERT在各個類別下的分類結(jié)果(K=4)
表6 BTM&BERT在各個類別下的分類結(jié)果(K=9)
表7 BTM&BERT在各個類別下的分類結(jié)果(K=14)
從表5~表7可以看出,在不同K值下,本文提出的BTM&BERT方法在各個類別下的Precision、Recall和F1-measure雖然有小幅度變化,但其分值均能達到0.8,表明主題數(shù)目K值對分類效果有一定地影響,但還是能夠?qū)﹄娏味涛谋具M行較高精度的分類,在以后的工作中,可以考慮利用困惑度(Perplexity)[18]或者主題連貫性(Topic Coherence)[19]等方法優(yōu)先確定最優(yōu)主題數(shù)目K值,進一步提高短文本分類效果。
為了驗證BTM&BERT方法在分類精度上的優(yōu)勢,本文將BTM&BERT方法與基于BTM的分類方法(BTM)、基于BERT的分類方法(BERT)、融合詞向量及BTM模型的分類方法(BTM&Word2Vec)以及基于BTM和Doc2Vec的分類方法(BTM&Doc2Vec)進行對比實驗。5種方法對應(yīng)的Precision、Recall和F1-measure見表8~表10。
表8 5種方法對比實驗結(jié)果(K=4)
表9 5種方法對比實驗結(jié)果(K=9)
表10 5種方法對比實驗結(jié)果(K=14)
在不同K值下,各個類別下對應(yīng)的F1-measure比較結(jié)果如圖5~圖7所示。
圖5 各個類別下對應(yīng)的F1-measure比較(K=4)
圖6 各個類別下對應(yīng)的F1-measure比較(K=9)
圖7 各個類別下對應(yīng)的F1-measure比較(K=14)
從表8~表10以及圖5~圖7可以看出,與其它4種分類方法相比,本文提出的BTM&BERT方法在分類精度上取得了更好的效果。其中,對于BTM方法,提取文本主題特征來表示整體文本信息,無法準確全面地表示文本,分類精度最低;對于BTM&Word2Vec方法,利用BTM擴充Word2Vec文本向量,有效解決文本稀疏性問題,分類精度高于BTM方法,但利用Word2Vec表示文本向量無法解決一詞多義和文本語序的問題;對于BTM&Doc2Vec方法,有效解決了文本語序的問題,分類精度高于BTM&Word2Vec方法,但仍沒有解決一詞多義的問題;對于BERT方法,融合了字向量、文本向量和位置向量,該方法具有較強的文本表征能力,分類精度高于BTM、BTM&Word2Vec和BTM&Doc2Vec方法;對于本文提出的BTM&BERT方法,結(jié)合BTM和BERT的優(yōu)勢,充分考慮文本上下文語義信息,并融合文本主題特征信息來豐富文本語義信息,分類精度高于BTM、BTM&Word2Vec、BTM&Doc2Vec和BERT這4種方法。
針對短文本特性,在BTM能夠有效解決短文本特征稀疏以及較高精度提取主題特征信息的基礎(chǔ)上,結(jié)合BERT預訓練語言模型強大表義能力的優(yōu)勢,提出了一種融合BTM和BERT的短文本分類方法,并應(yīng)用到電力工單短文本中。首先,對電力工單短文本集進行清洗過濾、分詞和去停用詞預處理操作;其次,采用BTM對預處理后的電力工單短文本集建模,獲得K維主題向量;再次,采用BERT對預處理后的電力工單短文本集建模,獲得句子級別的Q維特征向量;最后,將BTM與BERT獲得的特征向量進行拼接,獲得K+Q維文本特征向量,輸入到Softmax分類器,獲得電力工單短文本分類結(jié)果。實驗結(jié)果表明,BTM&BERT方法與BTM、BTM&Word2Vec、BTM&Doc2Vec以及BERT方法相比,在精確率、召回率以及F1值3個指標上,對電力工單短文本分類任務(wù)表現(xiàn)出更優(yōu)效果,有效提高了電力工單短文本分類精度。在今后工作中,將對BTM進行優(yōu)化,提高短文本主題特征信息提取精度,以進一步提高短文本分類性能。