范明煒,張云華
(浙江理工大學 信息學院,杭州 310018)
隨著互聯(lián)網的飛速發(fā)展,評論、朋友圈等信息傳播中產生了大量的短文本,短文本分類任務已經成為自然語言處理領域的重要研究熱點之一。
文本中單詞往往有多層意思,雖然利用外部知識對文本進行特征擴展,豐富語義關系,在消除文本稀疏性和歧義性有較好的效果,但忽略了單詞的位置不同對結果的影響。Google提出BERT模型,采用MLM對雙向的Transformers進行預訓練,以生成深層的雙向語言表征,但并沒有體現(xiàn)出每個詞語對整個文本的重要程度。針對短文本分類,傳統(tǒng)的機器學習算法,如決策樹模型、空間向量模型和支持向量機模型等,主要解決詞匯層面的匹配問題,在分類短文本時忽略了詞與詞之間潛在的語義相關性,導致向量空間稀疏,處理高維數(shù)據(jù)和泛化能力有所欠缺。
近年來,深度學習在計算機視覺,自然語言處理等領域獲得了不錯的效果。因此,基于深度學習的短文本分類算法開始受到關注。例如,卷積神經網絡(CNN)、Liu等人提出的循環(huán)神經網絡(RNN)以及注意力機制等?;贑NN的方法雖然可以捕捉局部特征,但忽略了單詞之間的順序和關系,容易丟失之前的信息。而RNN是包含循環(huán)的網絡,允許信息的持久化,但當相關信息和當前預測位置之間的間隔不斷增大時,RNN會喪失學習間隔信息的能力。LSTM是RNN的一種特殊類型,可以學習長期依賴信息,但由于網絡一次只讀取解析輸入文本中的一個單詞或字符,必須等前一個單詞處理完才能處理下一個單詞,因此無法大規(guī)模并行處理,導致效率不高。Bai等人針對此問題提出時序卷積網絡(TCN),經過與多種RNN結構對比,在很多任務上TCN都能達到甚至超過RNN,并且更加高效。
為了提高基于深度學習的短文本分類的有效性和效率,本文提出了基于CNN與TCN相結合,并加入權重優(yōu)化與注意力機制的短文本分類模型。通過TF-IDF計算詞的權重,使用Probase豐富語義知識,將詞和概念通過BERT-Base轉換詞向量,并將詞向量與詞語權重相乘,將得到優(yōu)化后的詞向量作為輸入層。運用TCN與CNN結合注意力,更加高效且準確的獲取最終特征表達。
TCN是一種將獲取編碼時空信息的CNN和獲取時間信息的RNN,用一種統(tǒng)一的方法,以層次的方式捕獲兩個級別所有的信息。因果卷積上一層時刻的值只對下一層之前的值有依賴,是嚴格時間約束模型。卷積核大小會限制因果卷積對時間的長度,膨脹卷積可以獲得更長的歷史信息,其允許卷積時的輸入存在間隔,用較少的層獲得更大的感受野。如圖1所示,本文選擇在TCN中加入一個殘差塊替換一層卷積,使網絡可以更好的通過跨層來傳遞信息。
圖1 時間卷積網絡Fig.1 TCN architecture
一個詞語可以具有多重意思,如蘋果可以指水果,也是一家公司的名稱。為了使機器更好理解人類的語言,有學者提出了概念圖譜。Probase可以將短文本進行概念化,其包含了大量如圖2所示的is-A關系,可以很好的解決短文本的稀疏性和歧義性問題。
圖2 知識圖譜Fig.2 CN-Probase
BERT模型通過MLM 對雙向Transformers進行預訓練,生成雙向語言表征,結構如圖3所示。通過字向量、文本向量和位置向量,將3部分的和作為輸入層,則可以得到融合了語義信息的表示向量。
圖3 基于Transformers的雙向編碼器Fig.3 Bilateral encoder based on transformer
圖4展示了模型的整體設計,通過CN-Probase獲取短文本概念層,使用BERT模型將短文本和概念層轉換為向量矩陣(矩陣大小為單詞數(shù)乘詞向量維度),利用計算每個詞的權重,并與向量矩陣相結合,得到賦予權重矯正的新矩陣。使用CNN對新矩陣次卷積,得到個不同階段的矩陣,以便提取不同的上下文特征表示。將這個矩陣運用TCN和注意力獲得特征表示,而后拼接向量進入全連接層,經過分類器輸入結果。
圖4 模型整體設計Fig.4 Overall design of the model
2.1.1 文本預處理
由于短文本中含有標點符號和字符等干擾項,因此在處理前需要進行數(shù)據(jù)清洗。本文使用Jieba分詞中的全模式,能夠快速獲取短文本中所有可以成詞的詞語,并利用四川大學機器智能實驗室停用詞庫去除無用的詞和特殊符號。
2.1.2 CN-Probase擴展
簡單依靠分詞和停用詞并不能很好地消除短文本中的歧義性,因此本文通過CN-Probase對分詞進行轉換,獲取到相對應的概念層,可以很好地消除歧義性和稀疏性。
2.1.3 優(yōu)化的BERT獲取詞向量
字詞的重要性與其在文本中出現(xiàn)的次數(shù)成正比,但和文本庫中出現(xiàn)的頻率成反比。利用計算出每個單詞的權重。計算公式為:
其中,是詞頻,由總文件數(shù)目除以包含該詞語文件的數(shù)目,再將得到的商取以10為底的對數(shù)得到。
輸入向量包含的信息直接決定了后面提取特征能夠獲得的上限,因此本文采用BERT-LARGE模型。該模型有24個網絡層數(shù)、1 024個隱藏維度和16個注意力頭。BERT的向量化過程如圖5所示。
圖5 BERT文本向量化Fig.5 BERT text vectorization
將向量化后的文本矩陣與對應詞的相乘得到新的詞向量矩陣,即為帶權重的輸入層。同理,將概念層做相同處理得到概念矩陣。
輸入層使用CNN對獲取的信息進行特征提取,為了更加深層次挖掘詞語和概念的局部語義特征,使用多個層次的卷積層進行特征提取。TCN能夠捕獲較長的上下文信息,但由于因果卷積的單向性不適合此類任務,因此使用膨脹卷積對和運算,同時加入殘差鏈接,使網絡可以更加有效地跨層傳遞信息,得到。為了減少錯誤詞語和概念造成的壞影響,通過注意力機制可以達到該效果。如圖6所示,將不同階段獲取到的特征向量()和()拼接,得到最終的特征表達。
圖6 注意力機制Fig.6 Attention mechanism
為了充分利用上述處理得到的短文本中詞和概念結合的特征表示,采用線性函數(shù)訓練模型,公式如下:
其中,是所有類別的可能性分布;是權重;是偏移量。使用交叉熵訓練Loss。
為了驗證模型的有效性,本文使用了今日頭條新聞文本分類數(shù)據(jù)集。其包含了382 688條數(shù)據(jù),并劃分為15個類別。將這些數(shù)據(jù)中的新聞標題提取出來,通過十折交叉驗證。參數(shù)設置見表1:
表1 參數(shù)設置表Tab.1 Parameter set
通過在相同數(shù)據(jù)集與其它模型進行對比,驗證本文模型的有效性,主要采用值和值進行評估。對 比 模 型 包 括 BERT、LSTM、CNN、Transformer、Seq2seq_Att等。不同模型在數(shù)據(jù)集的結果見表2。
表2 不同模型在數(shù)據(jù)集的結果Tab.2 Results of different models on the dataset
從實驗結果來看,本文方法相比于基本的深度學習模型,準確率和值都有所提高。其主要原因是模型通過外部預料豐富的短文本的語義信息;其次對于BERT的權重更改以及多階段卷積和注意力機制的引入,也使得結果變得更加精確。
針對短文本分類問題,本文提出了利用外部知識豐富短文本語義,優(yōu)化的BERT向量,以及在多階段卷積中獲取不同階段的特征,利用加入了殘差鏈接的TCN和注意力機制,使得模型擁有更加全面的特征獲取的能力。從實驗結果來看,本文提出的模型能有效提高短文本分類的效果。