盧 玲,楊 武,王遠倫,雷子鑒,李 瑩
(重慶理工大學計算機科學與工程學院,重慶400050)
(*通信作者電子郵箱yw@cqut.edu.cn)
對海量文本進行自動分類,在信息檢索、網絡輿情發現等領域具有廣泛應用價值。其中,長文本由于字符數多,文本中常蘊含多個主題。另外,為維持良好的上下文結構及完整的句法結構,長文本常包含許多與主題相關性較低的句子。發現和過濾這種與主題相關性低的句子,加大對文本局部信息的注意力,可在提高長文本分類效率的同時,改善其分類效果。
目前,文本分類研究多注重分類模型的構建和優化。傳統機器學習模型,如支持向量機[1]、樸素貝葉斯、最大熵模型[2]等,以及神經網絡(Neural Network,NN)方法,如卷積神經網絡[3](Convolutional Neural Network,CNN)、長短時記憶網絡[4](Long Short Term Memory Network,LSTM)等都被廣泛研究和運用。總體來看,現有研究較少從文本信息過濾的角度改善分類性能。分析其原因,一是由于目前數據量大、計算力增強,同時模型參數多、容量大使得對時間代價不敏感,另外,常用的文本特征表示方法也使文本信息過濾方法難以改進。
文本信息過濾是指從大量文本數據流中搜尋滿足特定需求的文本[5]。現有文本過濾方法主要將文本看成詞袋(Bag of Words,BOW)。常見的數據清洗如去停用詞、去高頻詞等通常需維護自定義的詞典,且詞典內容較多依賴于交叉驗證的結果。進一步的信息過濾為特征抽取[6],如通過互信息、信息增益、卡方值[7-9]等表示特征的重要性,再進行特征抽取。總之,基于BOW的文本過濾丟失了詞序信息,在需要深入理解上下文語義的應用中,過濾后文本的分析效果難以改善。
近年來,用神經網絡方法對詞、短語、句子及段落等更大粒度文本特征表示方法的研究被廣泛關注:詞特征方面,Bengio等[10]提出用神經網絡模型訓練詞向量;Mikolov等[11-13]提出結合哈夫曼編碼的 CBOW 模型和 Skip-gram模型,以提升用大規模語料訓練詞向量的性能。短語及句子特征方面,Mitchell等[14]對向量加、張量積等短語組合模型進行了研究,其實證表明向量加是一種簡單有效的語義組合方法,但是該方法與BOW模型一樣忽略了詞序信息;文獻[15]將詞向量與句法結構結合進行句子表示,該方法依賴于句法分析,因此只適合句子的表示;文獻[16]提出了一種分布式記憶模型(Distributed Memory model of Paragraph Vectors,PVDM),可將任意長度文本表示為定長的段落向量(Paragraph Vector,PV),并用情感分類、段落相似度實驗驗證了PV的有效性。文獻[10-13,16]為本文的特征表示方法提供了依據,使句子級信息過濾成為可能。
在改善文本分析效果方面,最早運用于圖像處理的注意力(attention)機制[17]也被逐步用于自然語言處理領域,如結合 attention 機制的機器翻譯[18]、情感分析[19]及問答系統[20]等。文獻[21]將注意力機制用于文本的觀點實體抽取,文獻[22]將attention機制與CNN結合進行機器翻譯,是注意力機制在CNN中較早的探索性工作。現有對attention機制的研究啟發了本文方法的提出。
綜上所述,基于現有研究對文本句子級信息過濾較少涉及,本文針對長文本分類任務,對如何進行句子過濾并改善分類效果問題進行了研究,提出了一種結合注意力機制的文本過濾方法及分類模型。首先建立句子與文本類別的注意力模型,再根據句子注意力進行信息過濾,最后構建結合句子注意力的卷積神經網絡分類模型,用于改善過濾后文本的分類性能。實驗在自然語言處理與中文計算(Natural Language Processing and Chinese Computing,NLP&CC)2014評測的新聞分類數據集上進行。本文方法在過濾后文本為過濾前文本長度的82.74%時,比過濾前文本的分類正確率提高2.1%,驗證了本文方法的有效性。
正文內容文本長度是一個相對概念,一般研究并無明確定義,但對分類速度、分類效果卻會產生較大影響。相對于微博、網絡評論等短文本,科技論文、新聞正文、公司年報等文本字符數多,屬于長文本。以本文實驗采用的NLP&CC2014評測的新聞分類數據集為例,分析該數據集的39 743條新聞正文,其長度(字符數)介于19~28 204(長度小于50的文本為新聞快訊)。去掉長度超過5000的133個樣本,余下文本在各長度區間內的數量分布如圖1所示(圖1表示當文本長度以10字符為步長遞增,在每一個長度區間內,文本數的統計情況)。
從圖1可見,該數據集中,文本長度為300~500的占30.2%,長度為500 ~1 000 的占35.3%,約20.0%的文本長度超過1000。總體來看,本文采用的這一數據集屬于長文本。由于長文本字符數多,一般會圍繞文本主題展開較多補充性說明和描述,如包含句子“這是一件全世界矚目的大事”“可能需要一到兩星期”等。另外,長文本的句子數、段落數多,上下文結構完整,句子語法結構規范。為維持這種結構的完整性和規范性,文本中常包含承接句,如“有關專家認為”“據新華社2015年9月20日報道”等。這些句子與文本主題相關性小,在閱讀時會分散讀者注意力,不僅影響讀者對文本主題的把握,且會產生較大分析代價。

圖1 新聞文本長度分布Fig.1 Length distribution of news text
正文內容Word Embedding(本文稱詞向量)是目前被廣泛使用的詞特征表示方法。詞向量可通過神經網絡模型,結合上下文信息,將詞映射成低維實向量而得到。詞向量避免了BOW模型中特征的高維、稀疏問題,同時詞的語義被分布到詞向量的各維上,相似詞在向量空間中的位置更相近,較好地表達了詞的語義。但僅用詞向量仍難以描述復雜的文本語義,因為文本語義多是由詞組合表達的。結合詞向量生成模型,文獻[16]提出了PV-DM,用無監督方法生成任意長度文本的段落向量。PV-DM的結構[16]如圖2所示。

圖2 分布式記憶模型Fig.2 Distributed memory model of paragraph vectors
如圖2所示,PV-DM將段落矩陣Q與段落中的詞向量W拼接,作為神經網絡模型的輸入。網絡訓練時,預測當前輸入文本的下一個詞,以下一個詞出現的最大似然估計為目標,用隨機梯度下降法訓練網絡參數。訓練結束后,段落文本被映射為定長的實向量,即段落向量,PV-DM同時還得到各詞的詞向量。用訓練好的PV-DM,可將任意長度的文本映射成段落向量。
在長文本分類問題中,將文本中長度各異的句子表示為定長的向量,有利于進行句子級的文本分析,提高長文本分析速度。因此,本文用文獻[16]的PV-DM生成文本句子的段落向量(本文稱為句向量)。對本文中需運用詞特征的場合,本文用詞向量表示詞特征。
受人類注意力的啟發,基于神經網絡的注意力(attention)機制最早被用于視覺圖像處理[17]領域。人們在觀察圖像時,并非一次看到圖像的每個位置,多是將注意力集中到圖像的局部。與觀察圖像類似,在閱讀長文本時,通常讀者會結合自身認知,著重注意文本的某些局部信息,以快速把握文本主題。例如如下文本:
專家敦促東亞太平洋各國加強艾滋病患者咨詢服務.記者樊曦雷柏松.3月24日專電.聯合國兒童基金會的一位艾滋病專家24日在此間表示,為艾滋病感染者提供咨詢是抑制艾滋病病毒傳播的有效途徑.“如果我們不能正視艾滋病,不與這些人坦誠地交流,就無法控制這種疾病的傳播.”聯合國兒童基金會東亞及太平洋地區辦公室艾滋病顧問鄭詠詩說.她同時指出,在過去的兩年間,東亞及太平洋地區艾滋病患者的人數增長了50%,艾滋病正在逐漸通過接觸吸毒者、性工作者和男同性戀者等高危群體的中間人群向普通大眾傳播.鄭詠詩還特別強調,要向普通大眾特別是15歲至24歲的青少年進行宣傳教育.
如果將上述整段文本看成如圖3所示的圖像,通過突顯文本的某些句子,如將“專家敦促東亞太平洋各國加強艾滋病患者咨詢服務”加下劃線,將“聯合國兒童基金會東亞及太平洋地區辦公室艾滋病顧問鄭詠詩說.”加波浪下劃線,可幫助讀者快速把握文本主題。圖3是用本文的句子注意力模型,計算文本句子的注意力,并由此計算其對分類的貢獻度,根據貢獻度值標注的下劃線型。不同線型體現了句子對分類的貢獻度,下劃線表示貢獻度最大,波浪下劃線次之,無下劃線的句子對文本類別的貢獻度最小。

圖3 句子注意力示意圖Fig.3 Schematic diagram of sentence attention
從圖3可見,在文本中抽取句子的關鍵信息,與人類的注意力機制很相似。突顯的句子有利于快速把握文本主題,在需進一步理解文本的場景中,可繼續分析帶波浪線或無下劃線的句子,以加深對文本的理解。另外,在不同的應用問題中,對同一文本可能關注不同的句子。如圖3文本在新聞分類和觀點檢測問題中,關注的句子是不同的。由于本文將句子注意力用于文本分類任務,因此本文的句子注意力,是指句子對該文本所屬類別的注意力。發現文本中不同句子的注意力,可以快速過濾注意力較小的信息,降低計算任務的復雜度。
為提取句子對類別的注意力,本文提出構建圖4所示的注意力模型,將句子與其所屬文本的類別以加權的形式聯接,再通過softmax函數得到句子對于類別的概率分布,即句子的注意力向量。
圖4所示注意力模型本質是一個基于單層神經網絡的softmax分類器,其輸入是句向量,輸出是句向量對于文本類別的概率。設任意文本D表示為(d1,d2,…,dn),其中n為D的句子數,句向量di∈RM,M為句向量維數。圖4模型的輸入為句向量di,輸出Y是一維實向量,表示為[y(1),y(2),…,y(k)],其中k為分類類別數,y(k)為di屬于第k類的得分,Y的計算如式(1):

其中:W是權重矩陣,表示為(w(1),w(2),…,w(k));b是偏置項,表示為[b1,b2,…,bk]; 輸出 Y 再經 sigmoid激活函數及softmax函數,轉換為di屬于各類別的概率。圖4中sofmax的輸出如式(2):

式(2)求解的是di屬于類別r的概率。在訓練階段,模型以二元組(di,yi)為訓練數據,其中yi是句子di所處文本的類別,以式(3)為損失函數,用隨機梯度下降法更新網絡參數W和b:

其中m為訓練集的句子數。訓練結束后,對待分析文本T的句子集(t1,t2,…,th),ti為句向量,依次將ti作為輸入,模型輸出ti屬于各類別的概率值,將其作為ti對于類別的注意力向量,由此得到表1所示的句子注意力矩陣ATT_MATRIX。

圖4 句子注意力學習模型Fig.4 Sentence attention learning model

表1 句子的注意力矩陣ATT_MATRIXTab.1 Sentence attention matrix ATT_MATRIX
其中,k為分類類別數,ATT_MATRIX[i]是ti的注意力向量,表明ti對各類別的置信度。本文在分類前,根據句子的注意力計算其對分類的貢獻度,以進行句子過濾。
句子的注意力向量實際是其屬于文本類別的概率值,本文將該概率值看成句子對文本類別的置信度。概率值越大,其對類別的置信度越高。因此,對概率最大值也較低的句子,認為其對類別的置信度不高,這類句子對文本分類的貢獻度也較弱。為提高分類效率,在分類前過濾這類句子。本文提出將注意力向量的均方差定義為句子對分類的貢獻度,對句子di,其貢獻度計算如式(4)所示:

其中:k為類別數,atti[r]是di對類別r的注意力,a是注意力均值,為1/k。式(4)描述了句子對分類的貢獻度。在一個三分類問題中,設句子 d1、d2的注意力分別為(0.36,0.30,0.34),(0.43,0.29,0.28),a 為 0.33,則 Cd1、Cd2分別為 0.000 63、0.0047,即句子 d2對分類貢獻度更大。設注意力矩陣為ATT_MATRIX,任意文本 D 表示為(d1,d2,…,dn),句向量di∈RM,本文的句子過濾如算法ATT_FILT所示:
算法ATT_FILT:
Input:D,ATT_MATRIX
Output:D
Steps:
a=1/k
for each diin D:
atti=ATT_MATRIX[i]

if(Cdj<threshold)
remove(D,di)
其中,remove方法表示從文本 D中刪除句子di。算法ATT_FILT需設置超參數threshold,具有較大的啟發式特征。本文在實驗中用交叉驗證法設置threshold,對比了其對分類效果的影響。
對文本分類問題,文獻[3]提出了一種基于CNN的分類模型。該模型無需過多干預文本,在本文前期的中文分類研究中都表現了穩定的性能。由于本文著眼于句子過濾后的分類性能,因此僅以文獻[3]模型作為Baseline,研究句子注意力是否能對文本分類產生積極影響。為將句子注意力矩陣用于分類,本文對CNN模型進行簡單結構調整,得到圖5所示的結合attention的分類模型,稱為CNN_A模型。對任意文本D,首先將其詞向量拼接成KEYS矩陣,然后將句子注意力作為句中詞的注意力,拼接詞注意力向量成ATTS矩陣。將KEYS與ATTS作為網絡輸入,分別經卷積計算抽取特征圖FKEYS、FATTS;對 FKEYS、FATTS 分別進行 max pooling,并經全連接層及softmax得到網絡輸出,即文本D所屬類別。
1)構造輸入數據。
設文本 D 為{t1,t2,…,tn},ti為其任一詞項,n是 D 的詞數,WDIC∈RN×dim為訓練好的詞向量,N為詞總數,dim為詞向量維度。以WDIC為查找表,查找D中各詞的詞向量,拼接得到詞向量矩陣 KEYS ∈ Rn×dim,表示為(m1,m2,…,mn),其中mi∈ Rdim。
2)網絡訓練。
網絡訓練過程分為3步:
①特征抽取。KEYS和ATTS分別用不同卷積核,經卷積層進行特征抽取,KEYS經卷積層輸出特征圖FKEYS,ATTS經卷積層輸出特征圖FATTS。
② 采樣及隨機 dropout。特征圖 FKEYS、FATTS經max pooling采樣以減少參數數量,將采樣結果拼接為一維實向量F。在訓練階段對F進行隨機dropout,使采樣的輸出每次隨機減少,以避免模型過擬合。
③全連接層參數訓練。將采樣層輸出F作為一個全連接(Full Connection,FC)層的輸入。通過后向誤差反饋和隨機梯度下降法,訓練FC層的網絡參數。

圖5 結合句子注意力的卷積神經網絡分類模型Fig.5 CNN model for text classification combined with sentence attention
實驗數據來自NLP&CC 2014評測的新聞文本分類任務。其數據格式如下:
<doc id=“1”>
<content>新華網吉隆坡2月26日體育專電(記者趙博超)經全球媒體提名投票,博爾特、納達爾等體壇名將獲2014年勞倫斯世界體育獎提名.其中,博爾特和小威廉姆斯已經贏得過3次勞倫斯獎.
</content>
<ccnc_cat id=“1”>39.14< /ccnc_cat>
</doc>
其中,<content>標記間為新聞正文。正文以新華社新聞分類編碼法進行二級類別標注,如上例文本類別為39.14,表示一級類別“體育(39)”中的“體育獎(14)”類。本文選取樣本數大于1000的一級類別作為實驗數據,共包括19個類別,39743個樣本。實驗文本長度介于19~28 204,用符號集[,.?!]進行分句后,單個文本包含句子數介于3~1 608。實驗以75%為訓練數據,25%為測試數據,所用句向量、詞向量維度均為400,以分類正確率為評價指標,對未登錄詞的詞向量隨機初始化。
1)結合句子注意力的文本過濾效果分析。
圖6是用算法ATT_FILT進行句子過濾時,過濾后文本長度、詞項數、句子數占過濾前文本的比例隨threshold的變化情況。其中,長度指文本的字符數,詞項數指文本中的不重復詞數。本文實驗用5折交叉驗證,記錄threshold與過濾效果的關系。交叉驗證表明當threshold大于5.0×10-4時分類正確率低于69.0%,當 threshold小于3.1×10-4時過濾句子數趨于零,因此本文記錄的 threshold測試區間為[3.1×10-4,5.0 ×10-4]。
設文本過濾前、后的長度、詞項數、句子數分別為(L、W、S)、(L'、W'、S')。從圖6 可見,當 threshold 為3.1 × 10-4時,沒有任何句子被過濾,即為過濾前文本。隨threshold增加,文本長度及句子數減少速率顯著高于詞項數。當threshold為5.0×10-4時,L'為 L 的41.38%,S'為 S 的41.52%,此時保留的詞項數W'為W的69.32%,這表明本文方法過濾的句子中包含較多高頻詞,當文本長度大幅減少時,仍較好地保留了文本的詞項,這也與一般文本過濾方法的思路是一致的。另外,圖6中句子數與文本長度變化趨勢完全一致,表明本文過濾的句子平均長度是均衡的,未出現短句或長句被集中過濾的情況。圖6在threshold較小時,文本長度減少速率大,例如threshold在3.2 × 10-4~ 3.4 × 10-4內,文本長度減少了18.3%,表明文本中貢獻度小的句子數量較多。

圖6 文本長度、句子數、詞項數隨threshold變化情況Fig.6 Text length,sentences and terms change with threshold
2)結合句子注意的CNN_A模型分類性能。
以文獻[3]的CNN模型為Baseline,圖7是本文的CNN_A模型與Baseline的分類正確率隨threshold變化情況。

圖7 CNN_A模型的分類性能Fig.7 Classification performance of CNN_A
從圖7中Baseline的分類效果看。當threshold為3.1×10-4時表示對過濾前文本的分類正確率,為78.73%。如果以threshold等于3.4 ×10-4為過濾點,如圖6、圖7所標注,此時L'為L的82.74%,分類正確率為78.51%,比過濾前文本降低了0.28%。可見本文方法可較好地過濾相關度低的句子,隨文本長度縮短,分類性能沒有顯著下降。實驗在threshold為3.3 ×10-4時,L'為 L的90.85%,其分類正確率為78.85%,完全超過了過濾前文本,也表明本文對相關度低的句子的過濾有效;但是在圖7所標注的“D”點處,可見當threshold大于4.8×10-4時,正確率急速降低,對比圖6可見,此時文本長度L'與詞項數W'并無顯著下降。該現象表明,由于句子過濾的粒度太粗,當文本保留的詞項達到一定閾值時,再進行句子過濾可能使某些文本的特征損失過大,導致分類正確率大幅降低,因此句子過濾方法更適于對大量相關度低的信息進行快速過濾。當文本保留的詞項達到一定閾值后,應結合詞項特征及n-gram特征,對文本作進一步分析。
從baseline與CNN_A模型的分類性能看。圖7中,CNN_A的分類正確率整體高于Baseline。當threshold為3.5×10-4時,L'為L的 76.41%,CNN_A 正確率為78.93%,已超過了Baseline對過濾前文本的分類正確率。當threshold為3.4×10-4時,L'為 L的82.74%,CNN_A 正確率達到 80.39%,比Baseline對過濾前文本的分類正確率高出了2.1%。這一結果表明,注意力矩陣在CNN_A模型學習文本特征的過程中,起到了積極的影響。
總體來看,CNN_A模型對過濾后文本分類的正確率,優于Baseline對過濾前、過濾后文本的正確率,從一定程度表明本文的句子注意力對文本特征的學習起到了積極影響。但CNN_A模型把句子注意力作為句中詞的注意力,直接作為模型的輸入,這種方法是句子注意力與文獻[3]模型的簡單結合,具有較大的啟發式特征。實際上,句子注意力如何用于分類,與選取的分類模型存在很大關系,需針對不同分類模型,具體研究其與句子注意力的結合方式。因此,對如何在分類模型的結構方面更好地運用句子注意力,還需進一步研究。
針對長文本字符數多,大量描述及承接性句子與文本的主題相關性小,影響分類性能的問題,提出了結合注意力機制的信息過濾及文本分類方法,將句子級信息過濾與長文本分類相結合,以改善長文本分類性能。首先將文本的句子表示為句向量,然后構建句向量與文本類別的注意力模型,用于計算句子注意力,將句子注意力的均方差作為句子對分類的貢獻度,進行句子篩選,最后用結合注意力的卷積神經網絡進行文本分類。對NLP&CC2014評測的中文新聞分類實驗表明,用本文的句子過濾及分類方法,當過濾后文本長度為過濾前文本長度的82.74%時,分類正確率為80.39%,高于過濾前文本2.1%,表明本文方法可以在過濾相關性較小的句子的同時,維持或提高分類性能。實驗同時表明,句子過濾的粒度較粗,在過濾后文本詞項達到一定閾值時,還應結合詞項特征及n-gram特征對文本作進一步分析。
從本文方法的特點及存在的問題看,本文用基于PV-DM表示的句向量進行句子過濾,因此分類性能一定程度依賴于句向量質量。另外,本文的句子過濾方法依賴于閾值設定,需通過交叉驗證進行參數尋優。本文在CNN_A分類模型中,將句子注意力直接作為句中詞的注意力,雖然過濾后文本的分類正確率有所提高,但該方法具有一定的啟發式特征。后續將在注意力機制與分類模型相結合方面,展開進一步研究。