朱金簫 陳媛媛
(新疆師范大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 烏魯木齊 830054)
對(duì)智庫文本進(jìn)行自動(dòng)分類是對(duì)其進(jìn)行管理、整合、再利用等工作的基礎(chǔ),大多智庫發(fā)布的內(nèi)容為文本形式,而文本分類是人工智能技術(shù)在自然語言領(lǐng)域的一項(xiàng)基礎(chǔ)任務(wù),但也是一項(xiàng)非常重要的任務(wù)。其主要原理是將原始的文本表示成機(jī)器可以識(shí)別的形式,然后對(duì)模型進(jìn)行訓(xùn)練,得到文本的特征,再將其輸入分類器中進(jìn)行最后的分類。在這一過程中,無需人工進(jìn)行干預(yù),機(jī)器可自動(dòng)對(duì)大量的文本進(jìn)行準(zhǔn)確的分類,這樣既節(jié)省了人力,又提高了分類效率,且有效地將現(xiàn)如今蓬勃發(fā)展的人工智能技術(shù)應(yīng)用到智庫建設(shè)中[1-2]。本研究旨在將深度學(xué)習(xí)技術(shù)運(yùn)用到智庫文本的分類中,提高智庫文本資源進(jìn)行自動(dòng)分類的準(zhǔn)確度,以期可以為智庫建設(shè)中的資源管理工作做出貢獻(xiàn)。
黨政機(jī)構(gòu)是智庫的重要服務(wù)對(duì)象,并且智庫所做的工作是對(duì)具體的實(shí)際問題進(jìn)行研究和提出建議。所以在進(jìn)行類別劃分時(shí),既需要將國(guó)家政策的主題作為依據(jù),也需要以問題為導(dǎo)向進(jìn)行劃分,以確保類別的劃分符合實(shí)際情況。
統(tǒng)計(jì)發(fā)現(xiàn),其政策共劃分為21個(gè)主題,并且在大主題下又劃分為122個(gè)子主題。但是其政策主題類別太多,這樣就容易產(chǎn)生主題交叉,難以堅(jiān)持相對(duì)獨(dú)立。
通過對(duì)中國(guó)知網(wǎng)所做的黨政智庫學(xué)術(shù)成果統(tǒng)計(jì)分析數(shù)據(jù)庫進(jìn)行調(diào)研,發(fā)現(xiàn)其以具體問題為導(dǎo)向,在參考國(guó)務(wù)院政策分類的基礎(chǔ)上,利用關(guān)鍵詞聚類等大數(shù)據(jù)技術(shù),形成包含7個(gè)一級(jí)、27個(gè)二級(jí)的智庫專題分類體系,具體如表1所示。
劃分該專題分類體系的關(guān)鍵技術(shù)是聚類技術(shù)。聚類技術(shù)和分類問題不同的是,通過算法將樣本劃分成多個(gè)類,保證類中相似度最高,類間相似度最低(類又被稱為“簇”)。其中K-Means[3]算法因其具有運(yùn)算簡(jiǎn)單、效率高等優(yōu)點(diǎn),被廣泛使用。
結(jié)合上述,通過研究分析將智庫發(fā)布的內(nèi)容劃分為黨的建設(shè)、政治、文化、經(jīng)濟(jì)、國(guó)際問題、社會(huì)、生態(tài)文明等7個(gè)類別,并且在之后的數(shù)據(jù)收集過程中按照該類別體系進(jìn)行收集。
文本分類是自然語言處理中的一個(gè)基礎(chǔ)任務(wù),由于深度學(xué)習(xí)模型摒棄了傳統(tǒng)的機(jī)器學(xué)習(xí)中繁雜的由手工設(shè)計(jì)的特征工程,改用端到端的方式學(xué)習(xí)特征表示,使得深度學(xué)習(xí)模型具備端到端學(xué)習(xí)能力,較傳統(tǒng)機(jī)器學(xué)習(xí)模型有著更廣泛的應(yīng)用。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[4]作為一種序列模型,對(duì)于建模文本具有先天優(yōu)勢(shì),將文本視為單詞序列,在訓(xùn)練的過程中捕獲序列元素之間的語義依賴關(guān)系。但由于其串行處理方式,也使其難以捕獲長(zhǎng)序列中的語義依賴關(guān)系,容易造成梯度消失或爆炸問題。為了解決該問題,Hochreiter和Schmidhuber提出的LSTM及Cho等人提出的GRU,通過加入門控機(jī)制對(duì)特征信息進(jìn)行篩選,以此來解決梯度消失及爆炸問題;Tai等[5]通過使用樹結(jié)構(gòu)的LSTM(Tree-LSTM)來更好的表示文本的層次結(jié)構(gòu),改變串行處理的方式。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在計(jì)算機(jī)視覺領(lǐng)域收獲了很多成功,之后研究人員將其應(yīng)用在自然語言處理的任務(wù)中來。CNN可以檢測(cè)局部和位置不變模式,不會(huì)受到距離的影響,并且參數(shù)規(guī)模更小。Kim等[6]使用簡(jiǎn)單的CNN捕獲文本序列的關(guān)鍵特征信息;Liu等[7]在Kim的基礎(chǔ)上,首先采用動(dòng)態(tài)池化層來捕獲文本不同區(qū)域的細(xì)粒度特征,然后在池化層和輸出層之間插入一層,來降低特征表示的維度。但當(dāng)使用單一結(jié)構(gòu)的CNN時(shí),存在無法捕獲長(zhǎng)距離的語義關(guān)系的問題,Lai等人提出了RCNN,先使用RNN來捕獲單詞的上下文語義,然后再使用CNN來獲得文本中的關(guān)鍵性詞語;Zhou等人提出了C-LSTM,首先使用CNN來提取文本序列中的局部短語特征信息,隨后輸入到LSTM中來捕獲序列的全局特征信息。
隨著最初被用于機(jī)器翻譯的注意力機(jī)制的引入,進(jìn)一步推動(dòng)了神經(jīng)網(wǎng)絡(luò)模型在文本分類任務(wù)以及自然語言處理上的發(fā)展。它不僅能夠幫助模型更好地利用輸入中的有效信息,而且還提高了模型的解釋性。Yang等[8]提出了一種分層注意力網(wǎng)絡(luò)模型,依次捕獲詞、句的上下文特征信息,使最終得到的文檔表示更加關(guān)注于關(guān)鍵信息;Yin等[9]提出了一種基于注意力的CNN,用于句子對(duì)匹配,以便每個(gè)句子的表示都考慮到它的配對(duì)的句子。Transformer[10]由Google團(tuán)隊(duì)于2017年提出,其摒棄了RNN的串行處理序列的方式,改而完全使用自注意力機(jī)制,并行地計(jì)算每個(gè)單詞與其他單詞的相關(guān)系數(shù)。因此使其具有了較高地并行處理能力,可訓(xùn)練較大的數(shù)據(jù)。但由于計(jì)算量的限制,序列長(zhǎng)度存在一定限制,否則容易發(fā)生內(nèi)存溢出。
綜上,RNN、CNN、Transformer這三大特征提取器在短文本分類任務(wù)上取得了許多成功,但本研究所處理的文本對(duì)象為智庫文本,大多長(zhǎng)度較長(zhǎng)。因此,本文針對(duì)智庫文本長(zhǎng)度較長(zhǎng)的問題,采用層次結(jié)構(gòu),依次從詞、句兩個(gè)層次使用注意力機(jī)制來獲取序列的上下文向量,而不是直接學(xué)習(xí)整個(gè)文檔并采用多尺寸CNN來提取序列的局部關(guān)鍵特征向量來對(duì)文本進(jìn)行表示。
本節(jié)詳細(xì)介紹本研究提出的模型結(jié)構(gòu),該模型包括詞嵌入層、詞注意力層、句表示層、句注意力層、文檔表示層、分類層等結(jié)構(gòu)。Embedding層的作用是把經(jīng)過清洗處理的文本序列映射到訓(xùn)練好的單詞序列向量空間中;詞注意力層、句注意力層使用自注意力機(jī)制,來分別計(jì)算得到詞、句的上下文向量,使序列的表示包含更多的關(guān)鍵信息,并且還需為其添加詞、句的位置信息,以此來區(qū)別不同位置的相同單詞;句表示層、文檔表示層則使用多尺寸的卷積核來提取出序列中的局部關(guān)鍵特征信息,以此來獲取句表示、文檔表示;最后,分類層來對(duì)最終得到的文檔表示進(jìn)行分類。本文所提模型結(jié)構(gòu)如圖1所示。
圖1 文本分類模型結(jié)構(gòu)
文本分類的首個(gè)任務(wù)就是對(duì)文本進(jìn)行表示,即需要將原始文本字符串轉(zhuǎn)化為機(jī)器可以進(jìn)行識(shí)別與操作的數(shù)值表示。
模型的輸入為一段長(zhǎng)度為l的文本T,由若干詞語(w1,w2,w3, …,wl)組成。為了將其轉(zhuǎn)化為機(jī)器可以識(shí)別且操作的數(shù)值向量,需要通過詞嵌入層來將詞語映射到一個(gè)向量空間,查找向量表后轉(zhuǎn)化得到低維向量(e1,e2,e3,…,el)。為了提高文本表示的質(zhì)量,本文選擇使用通過搜狗語料庫預(yù)訓(xùn)練得到的詞向量。
E(wt)=Embedding(wt)
(1)
該模塊使用self-attention機(jī)制提取長(zhǎng)距離依賴關(guān)系,并且使序列表示關(guān)注于關(guān)鍵信息,詞注意力模塊結(jié)構(gòu)如圖2所示,句注意力模塊結(jié)構(gòu)相同,該部分以詞注意力模塊為例進(jìn)行介紹。
由于self-attention機(jī)制提取各詞語間的長(zhǎng)距離依賴關(guān)系時(shí)會(huì)丟失詞的位置信息,本文使用三角函數(shù)式位置編碼,得到位置信息,直接與初始表示進(jìn)行簡(jiǎn)單相加得到序列表示wj,j為句子編號(hào),為不同位置的詞提供位置信息(p1,p2,…,pl)[10],增加各自的獨(dú)特性。
圖2 自注意力層結(jié)構(gòu)
在為序列表示wj附加上位置向量后,使用self-attention機(jī)制,計(jì)算得到序列的上下文表示,計(jì)算公式如(2)。首先,Q、K的點(diǎn)乘結(jié)果經(jīng)過softmax函數(shù)計(jì)算得到詞語間的注意力分?jǐn)?shù),隨后與V進(jìn)行點(diǎn)乘計(jì)算后得到序列的上下文表示wsj。
(2)
其中,Q、K、V由wj經(jīng)不同線性變換得到。
該表示層通過卷積和池化操作對(duì)詞表示或句表示提取特征,進(jìn)一步得到句表示或文檔表示,句表示層模塊結(jié)構(gòu)如圖3所示,文檔表示層模塊結(jié)構(gòu)相同。
圖3 句表示層模塊結(jié)構(gòu)
該層采用c種不同大小尺寸的卷積核來提取句子特征向量的局部特征向量,類似于n-gram方式,但會(huì)避免由于n的增加而造成數(shù)據(jù)稀疏以及特征空間大小指數(shù)級(jí)增加的問題。
隨后對(duì)通過卷積操作得到的特征向量進(jìn)行最大池化操作,得到句子的關(guān)鍵特征表示,如公式(3):
(3)
其中,ci表示第i種尺寸的卷積核,ci×n表示卷積核的尺寸,n表示句子的長(zhǎng)度,j表示屬于第j句。
最后將最大池化操作所得到的結(jié)果進(jìn)行拼接得到句子表示si,如公式(4):
si=poolc1⊕poolc2⊕…⊕poolck
(4)
其中,k表示卷積核的種類數(shù),i表示句子編號(hào),⊕為拼接操作。
按同樣步驟,通過文檔表示層得到文檔表示D,并作為分類層的輸入。
分類層通過一個(gè)Softmax激活函數(shù)來計(jì)算對(duì)應(yīng)每個(gè)類別的概率,計(jì)算公式如下:
Y=softmax(D)
(5)
(6)
其中,cn表示類別數(shù)目。
本研究目的是為了驗(yàn)證所提模型對(duì)具有長(zhǎng)度較長(zhǎng)的智庫文本成果分類的效果。中國(guó)智庫網(wǎng)由國(guó)務(wù)院發(fā)展研究中心主辦,聯(lián)合全國(guó)各大智庫成員單位共同建設(shè)發(fā)展,致力于發(fā)展建設(shè)新型特色智庫,因此其收錄的智庫成果有一定的代表性以及影響力,本研究從中國(guó)智庫網(wǎng)上獲取了近30 000篇智庫發(fā)布的文本用于對(duì)模型的可行性進(jìn)行驗(yàn)證分析,數(shù)據(jù)集樣本信息如表2所示,文本示例如表3所示。
表2 數(shù)據(jù)集信息
表3 文本示例
在使用收集到的文本對(duì)模型的效果進(jìn)行驗(yàn)證之前,為了使模型可以更好地進(jìn)行學(xué)習(xí),需要對(duì)收集到的原始文本進(jìn)行清洗。本研究對(duì)文本數(shù)據(jù)依次進(jìn)行以下清洗操作:首先,因?yàn)楸疚牡难芯繉?duì)象為中文文本,需要去除文本中的非中文符號(hào),同時(shí)也可將文本中的亂碼去除;然后,使用Jeiba分詞工具對(duì)文本進(jìn)行分詞操作,并且根據(jù)預(yù)先準(zhǔn)備好的停用詞表,去除文本中一些對(duì)文本類別的確定無較大意義的停用詞;最后,由于本研究使用詞-句的層次結(jié)構(gòu)對(duì)文本進(jìn)行語義建模,需要將文檔按句分開。通過統(tǒng)計(jì)分析,文本中的句子數(shù)量大都分布在100以內(nèi),且集中分布在65左右;句子的長(zhǎng)度集中分布在20左右。因此,在處理文本時(shí),每篇文章保留65個(gè)句子以及每句保留20個(gè)詞。對(duì)于句子數(shù)目超過65的文檔,通過計(jì)算文檔中每個(gè)句子所包含詞語的TF-IDF[11]的總和,剔除掉TF-IDF較低的句子,保留65個(gè)句子;而對(duì)于句子數(shù)目低于65的文檔,使用0來填充。句子包含詞語數(shù)目超過20個(gè),通過比較所包含詞語的TF-IDF來剔除掉數(shù)值較低的詞語,保留20個(gè)詞語;而詞語數(shù)目低于20的句子,使用0來填充。
實(shí)驗(yàn)將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,比例分別為8∶1∶1。訓(xùn)練集用于對(duì)模型進(jìn)行訓(xùn)練;而驗(yàn)證集用于選擇模型的超參數(shù),對(duì)模型進(jìn)行優(yōu)化;測(cè)試集用來評(píng)估模型最終的性能效果。
本實(shí)驗(yàn)使用Word2vec模型訓(xùn)練得到的詞向量,維度設(shè)置為300維。為了防止過擬合,在模型的全連接層之間、CNN與全連接層都放置了Dropout[12]層,以及采用了L2正則化,并分別設(shè)置為0.5、1e-4。
根據(jù)模型的結(jié)構(gòu)設(shè)計(jì),通過分析研究,模型的性能效果主要受自注意力模塊的維度、表示層的卷積核尺寸、迭代次數(shù)、Dropout率等因素影響。通過反復(fù)多次的實(shí)驗(yàn)分析,確定自注意力模塊維度128、卷積核尺寸為[3,4,5],epoch=5,初始學(xué)習(xí)率為0.001。
本研究使用準(zhǔn)確率、F1值作為模型評(píng)估指標(biāo),并且為了驗(yàn)證說明本文所提模型SHTC的優(yōu)越性,選擇了7 個(gè)基準(zhǔn)模型,包括BiLSTM、TextCNN、Transformer、BiLSTM+Attention、RCNN、C_LSTM、HAN等文本分類模型。
a.對(duì)比實(shí)驗(yàn)。本文使用準(zhǔn)確率、F1、召回率作為評(píng)估指標(biāo),這些都是文本分類任務(wù)中常用的評(píng)估指標(biāo),實(shí)驗(yàn)結(jié)果如表4所示。
通過對(duì)這幾種模型的實(shí)驗(yàn)結(jié)果比較,Bi-LSTM、TextCNN、Transformer的準(zhǔn)確率分別只有52.75%、58.34%、65.79%,相比較之下Transformer比另外兩者在處理長(zhǎng)文本時(shí)效果較好一些。TextRNN加入Attention機(jī)制后,效果提升了19%左右,說明Attention機(jī)制通過計(jì)算詞語對(duì)序列表示的貢獻(xiàn)度,增強(qiáng)了模型學(xué)習(xí)長(zhǎng)文本語義的能力,使模型能夠關(guān)注到文本中的關(guān)鍵信息,提高了長(zhǎng)文本分類的效果。RCNN(77.62%)、C_LSTM(0.7765%)在對(duì)長(zhǎng)文本分類時(shí),通過將Bi-LSTM和CNN結(jié)合使用,與使用單一結(jié)構(gòu)Bi-LSTM或CNN的模型相比,可以更全面的提取文本的特征信息,有更好地分類效果。
表4 實(shí)驗(yàn)結(jié)果
本文所提模型SHTC相較于前面的方法,使用了層次結(jié)構(gòu)的建模方式,將文本分為詞級(jí)、句級(jí)兩個(gè)層次,使用自注意力模塊、與多尺寸卷積對(duì)文本序列進(jìn)行語義表示的學(xué)習(xí)并提取局部關(guān)鍵特征信息,以得到更好地文檔表示。從實(shí)驗(yàn)結(jié)果來看,SHTC取得了最好的效果,相較于其它基準(zhǔn)模型在準(zhǔn)確率上平均提高了13%左右,相較于未使用Attention機(jī)制與層次建模的RCNN有了5%的提升;與使用了層次結(jié)構(gòu)建模的HAN相比提高了4%左右,表明了Self-Attention機(jī)制能夠捕獲長(zhǎng)距離語義,提高了模型的學(xué)習(xí)能力。
b.低秩瓶頸。根據(jù)智庫文本具有長(zhǎng)度較長(zhǎng)的特點(diǎn),本文使用基于Self-Attention的層次模型對(duì)文本進(jìn)行分類任務(wù)。Self-Attention機(jī)制作為模型的核心模塊,通過計(jì)算詞與詞之間的依賴關(guān)系對(duì)文本的表示進(jìn)行學(xué)習(xí)。
雖然Self-Attention機(jī)制學(xué)習(xí)對(duì)詞與詞之間、句與句之間的語義依賴關(guān)系有很強(qiáng)大的能力,但是它的表達(dá)能力也存在瓶頸。從原理來看,Self-Attention機(jī)制首先將Q、K、V投影到一個(gè)d維,d為注意力機(jī)制的輸出維度即key_size,隨后去計(jì)算得到n×n維的注意力分值,n為詞或句子的數(shù)目。而2n×d>n×n,使得該計(jì)算是通過一個(gè)低維度的參數(shù)去擬合高維度的參數(shù),這時(shí)就出現(xiàn)了“低秩瓶頸”問題[13]。
根據(jù)文獻(xiàn)[13],一個(gè)簡(jiǎn)單直接的解決方法就是增大d的值,以此來使2n×d>n×n。但是如果一味地增加d又會(huì)增大模型的復(fù)雜度以及計(jì)算量。并且在投影時(shí),并不一定需要將Q、K、V同時(shí)投影到相同的維度上,只需要Q、K相同即可,所以其中一個(gè)解決“低秩瓶頸”問題的方法就是,只增大Q、K的維度,該維度稱為key_size,這樣既可以增加Self-Attention的表達(dá)能力,也不會(huì)改變模型的整體規(guī)模,并且不會(huì)使計(jì)算量增大很多。
基于以上分析研究,通過實(shí)驗(yàn)來選取與本文所提模型相適應(yīng)的維度大小。通過研究分析,在實(shí)驗(yàn)中設(shè)置d={16×2k|0≤k≤4,k∈N*},得到實(shí)驗(yàn)結(jié)果如圖4所示。隨著d的增大,SHTC在測(cè)試集上的表現(xiàn)呈現(xiàn)出先上升后降低的趨勢(shì),當(dāng)d=64時(shí),得到最好的表現(xiàn)。
圖4 取不同k值的實(shí)驗(yàn)結(jié)果
本文以提高智庫資源的管理效率為目的,提出了基于深度學(xué)習(xí)的智庫文本分類模型SHTC。
通過研究分析,智庫文本成果大都為長(zhǎng)文本,而文本分類的一些經(jīng)典方法如Bi-LSTM、TextCNN、RCNN等在對(duì)長(zhǎng)文本的分類問題上效果并不好。因此,本文采用層次結(jié)構(gòu),依次從詞、句兩個(gè)層面來對(duì)智庫文本進(jìn)行建模學(xué)習(xí)表示,通過層次建模在一定程度上解決當(dāng)文本過長(zhǎng)時(shí)語義表示學(xué)習(xí)困難的問題。通過收集數(shù)據(jù)進(jìn)行實(shí)驗(yàn),驗(yàn)證了本文所提出SHTC模型與實(shí)驗(yàn)設(shè)置的基線模型相比,準(zhǔn)確率都有一定的提高。且為解決自注意力機(jī)制的“低秩瓶頸”問題[13],通過實(shí)驗(yàn)確定了自注意力機(jī)制的key_size大小,進(jìn)一步提高了模型對(duì)于文本的表達(dá)能力。
本文僅使用Word2Vec詞向量來對(duì)文本表示進(jìn)行初始化,后續(xù)將實(shí)驗(yàn)使用較為流行的Bert等預(yù)訓(xùn)練模型來對(duì)文本詞向量進(jìn)行預(yù)訓(xùn)練,希望能暨此進(jìn)一步的改善模型對(duì)長(zhǎng)文本的語義表示的學(xué)習(xí),進(jìn)而提高對(duì)智庫文本的分類效果
并且本研究所收集的智庫文本成果多為論文、時(shí)評(píng)等標(biāo)準(zhǔn)格式的文章,但是智庫組織中也有很多格式并不是非常標(biāo)準(zhǔn)的文本資源。因此,為了能夠更好的提高智庫文本資源的管理,后續(xù)將驗(yàn)證本研究所提模型在這些非標(biāo)準(zhǔn)格式的文本資源上的有效性,使其應(yīng)用更具有泛化性,覆蓋更多類型的文本成果,為智庫成果的分類管理提供參考。