景永霞,茍和平,劉 強
(1.瓊臺師范學院 信息科學技術學院,海南 海口 571100;2.瓊臺師范學院 教育大數據與人工智能研究所,海南 海口 571100)
Web技術的發展和移動終端的普及,為網絡用戶提供了廣闊的信息獲取與分享平臺,用戶不再只是被動地成為信息的接受者,也作為信息的創造者通過網絡發布自己的信息,分享自己的知識和觀點,因此產生了大量的短文本數據.為了能夠實現短文本數據中的文本分類、網絡輿情監控和產品推薦服務等,人們更加關注短文本數據的分析.
研究者提出了不同的文本分類算法,其中基于機器學習的文本分類算法獲得了廣泛的應用,如支持向量機(SVM)、k最近鄰(kNN)、樸素貝葉斯(Native Bayes)等算法都是常用的文本分類模型.目前,深度學習技術已經成為主流的文本分析模型,最初研究人員采用CNN模型實現短文本分類[1],RNN、RNN與CNN融合等模型也逐步應用到短文本分類中[2],同時還采用融合詞向量的方法來提高文本分類精度[3],采用BTM和BERT模型提取文本主題特征信息和上下文語義信息,構建短文本特征向量[4].
在文本分類過程中,采用TF-IDF、LDA等方法實現文本向量化表示,這些方法在實現文本表示時忽略了文本詞之間的語義關系,而Word2Vec是一種淺層網絡,在實現文本表示中無法解決一詞多義問題.
在線評論文本具有文本短小,特征稀疏、語法不規范等特點,使用傳統特征表示模型會造成表示模型的高維稀疏性,同時特征選擇計算開銷大、適應性差,無法表達文本詞之間的語義關系或者無法解決在不同上下文環境中的多義詞,進而造成文本語義理解能力不強.CNN模型雖然能夠很好地獲得深層語義關系,但對長距離特征捕獲能力相對較弱;RNN存在短期記憶問題,無法很好地學習到全局的結構信息.因此,本文提出一種基于BERT模型的文本表示,這種基于Transformer的模型,能夠較好地實現長距離特征獲取,解決了短期記憶的問題,實現文本向量表示,提高短文本分類效果.
David Blei等[5]在2003年提出基于貝葉斯理論的方法(Latent Dirichlet Allocation,LDA),該方法可獲取文本中隱藏的主題和特征,從而實現文本的向量化表示,廣泛應用在文本分類等自然語言處理領域[6],但該模型更加適用于長文本,針對短文本存在高維和特征稀疏的情況,需要結合其他的表示模型實現.Word2Vec是google的開源詞向量計算工具,通過給定的語料庫進行訓練,將詞轉換為指定實數空間中的向量,詞之間的相似度通過計算詞向量之間的相似度實現.Word2Vec包含CBOW和Skip-gram兩種訓練模型[7].利用Word2Vec模型獲取詞在解決短文本特征表達能力弱的問題時取得了較好的效果[8],但在進行文本向量表示時,存在無法解決一詞多義的問題.
BERT(Bidirectional Encoder Representations from Transformers,BERT)是google人工智能研究團隊2018年提出的一種基于深度學習的語言表示模型,通過文本語料庫訓練獲得語言模型,然后下游任務可以采用此模型進行諸如文本分類等任務.采用BERT獲得的詞向量能夠很好地解決GPT等這類單向語言模型無法雙向結合上下文有效信息的局限性.
BERT的模型架構是一個多層雙向Transformer編碼器[9],其結構如圖1所示.

圖1 BERT模型架構
短文本W={w1,w2,…,wN}表示一條短文本,Ei(i=1,2,3,…,N)表示N個將句子的字符向量、字符類型向量、位置向量相加得到的文本向量表示.Trm表示Transformer處理,整個文本表征是通過雙向Transformer進行堆疊編碼,最后生成融合整個文本信息的語言表征.Ti(i=1,2,3,…,N)表示輸入的文本字符經過多層雙向Transformer進行編碼后輸出的字符向量.BERT中Self-Attention機制獲取句子中每個字符的詞向量.
BERT模型采用兩種無監督任務進行預訓練[9]:①掩碼語言模型(Mask Language Model).為了訓練深度雙向表示,隨機屏蔽一些百分比的輸入標記,再根據剩余的標記預測那些被屏蔽的標記;②下句預測(Next Sentence Prediction).許多重要的下游任務都是基于對兩個句子之間關系的理解,如問答系統、段落排序等自然語言處理任務.
本文提出的基于BERT模型短文本分類模型(MBERT)處理流程如圖2所示.該模型主要是采用BERT進行文本詞向量表示,通過詞向量融合獲得整個文本向量表示.
對于包含n條短文本數據集D,表達式為:
D={Ci|i=1,2,3,…,m},
(1)

圖2 基于BERT模型短文本分類模型
其中,Ci(i=1,2,3,…,m)表示文本數據的類別,|Ci|表示類別Ci中包含的總文本數.采用BERT進行短文本分類主要過程如下.
(1) 短文本數據預處理,對于獲取的短文本數據,去重,采用分詞的方法,對停用詞處理,如去掉一些虛詞、代詞等文本分類沒有實際意義的字詞;
(2) 文本標記向量化表示.對于短文本數據d={w1,w2,…,wN},wi(1,2,3,…,N)表示文本標記(詞),根據BERT模型獲取文本d([CLS])和其對應標記wi的向量表示為:
(2)
其中,M表示文本標記向量的長度,就是BERT模型最后一層隱層輸出的hidden_states狀態,即hidden_size;
(3) 獲得文本標記均值向量表示.根據輸出的文本,可得表達式為:
(3)
(4) 通過全連接層(FC)和Softmax處理,獲得最后的分類結果.經過全連接層處理獲取的輸出為:
y=WTd′+bias,
(4)
其中,W為768×m維的權重矩陣,bias為偏置項.則有
(5)
在本次實驗中,采用BERT預訓練模型:BERTBASE(L=12,H=768,A=12,Total Parameters=110 M),軟件環境為Python 3.9和Anaconda集成開發工具.
實驗數據為今日頭條TNEWS短文本數據集,包含15個類別,總共382 691條數據,其中訓練集為267 882條,驗證集為57 404條,測試集為57 405條.實驗相關參數設置如表1所列.

表1 參數設置表
算法評價采用傳統的文本分類性能評價指標,即精確率precision、召回率recall和綜合評價指標F1(F1-measure),根據文本標簽的真實值和預測值,給定:
(1)TP,真實值是positive,預測值為positive的樣本數(True Positive);
(2)FP,真實值是negative,預測值為positive的樣本數(False Positive);
(3)FN,真實值是positive,預測值為negative的數量(False Negative);
(4)TN,真實值是negative,預測值為negative的數量(True Negative).
混淆矩陣如表2所列.

表2 文本測試混淆矩陣
根據表2可得3類評價的計算公式為:
(6)
(7)
(8)
在實驗中采用BERT模型進行中文文本詞嵌入處理,采用所提模型最后一層輸出的各個詞的混合模型來進行文本表示和分類.其實驗訓練損失和驗證損失、訓練準確率和驗證準確率曲線如圖3所示.

圖3 訓練與驗證的損失與準確率
文本分類測試結果的精確率、召回率和F1值的宏平均(Macro avg)與加權平均(Weighted avg)如表3所列.

表3 文本分類測試結果
根據模型測試,其分類準確率(accuracy)達到88.66%.且15個類別的f1-score值的宏平均和加權平均達到82.15%和88.61%.因此,采用本文提出的文本分類方法,能夠很好地獲取文本中詞語之間的語義關系,提升分類性能.
本文提出BERT模型結合文本中各個詞嵌入表示獲得文本上下文語義關系,實現短文本詞之間的語義關聯分析,進而獲得整個文本的語義表示及短文本關鍵分類特征,提高分類的準確率.通過實驗分析,能夠獲得較好的分類效果.后續將研究采用詞向量表示模型,同時去除短文本中的部分虛詞,減少噪聲對分類結果的影響,以提高分類效果.