吳思怡 吳陳
(江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212100)
在互聯(lián)網(wǎng)和大數(shù)據(jù)時(shí)代,人人既是數(shù)據(jù)的接收者也是生產(chǎn)者,數(shù)據(jù)之間的互聯(lián)互通給我們帶來了便利,但同時(shí)也產(chǎn)生了限制。因?yàn)槊總€(gè)人的注意力是短暫的,精力也是有限的,如何在紛繁復(fù)雜的數(shù)據(jù)海洋中高效準(zhǔn)確地找到所需的信息,似乎是一個(gè)難題。這也顯示出準(zhǔn)確有效地將文本分類管理是具有重大意義的。
文本分類是自然語言處理研究中的任務(wù)之一,其目的就是將一段文本內(nèi)容分類為一個(gè)或多個(gè)類別。它的應(yīng)用也非常廣泛,比如:垃圾過濾,新聞分類,詞性標(biāo)注等[1]。
深度神經(jīng)網(wǎng)絡(luò)已成為文本分類的有效解決方案。深度神經(jīng)網(wǎng)絡(luò)一般是學(xué)習(xí)輸入文本的單詞級表示,輸入文本通常是矩陣,每行/列作為文本中單詞的嵌入[2]。然后,將字級表示壓縮成具有聚合操作的文本級表示。然后通過最后一層(全連接層)作出最后的結(jié)果判斷。雖然已經(jīng)取得了很大的成功,但是這些基于深度神經(jīng)網(wǎng)絡(luò)的解決方案忽略了細(xì)粒度的分類線索,因?yàn)樗鼈兊姆诸愂腔谖谋炯壉硎?。這樣,文本屬于某個(gè)類的概率很大程度上取決于它的整體匹配分?jǐn)?shù),而不是字級匹配信號,然而這些字級匹配信號將提供用于分類的顯式信號(例如,原子彈強(qiáng)烈地指示軍事的主題)[3]。
因此,為了解決上述問題,本文提出了一種新的融合自注意力機(jī)制的詞級交互模型,該模型主要分為三層:自注意力層,交互層,聚合層。
受人類注意力觀察機(jī)制的啟發(fā),注意力機(jī)制在20 世紀(jì)90 年代就被視覺領(lǐng)域作為一種理論思想,即人們在觀察一個(gè)事物時(shí),是無法一次性觀察到整個(gè)事物細(xì)節(jié)形態(tài),而是將注意力集中在某個(gè)部分,然后根據(jù)我們所觀察學(xué)習(xí)到的特征去尋找注意力應(yīng)該集中的位置。直到2014 年,谷歌團(tuán)隊(duì)發(fā)表了文章《Recurrent Models of Visual Attention》之后,注意力機(jī)制才真正被相關(guān)學(xué)者關(guān)注。次年,該機(jī)制被應(yīng)用到自然語言處理當(dāng)中的機(jī)器翻譯研究領(lǐng)域,其采用Seq2Seq+Attention 模型來進(jìn)行機(jī)器翻譯,提高了現(xiàn)有模型準(zhǔn)確率[4]。而在2017 年谷歌公司發(fā)表的《Attention is All You Need》文章中,其翻譯模型中只采用了注意力機(jī)制就取得了很好的結(jié)果[5],從此,對于注意力機(jī)制的研究和應(yīng)用被推上了更高層次。注意力機(jī)制又分為層次注意力、循環(huán)注意力、多頭注意力等,因?yàn)楸疚闹饕槍﹂L文本進(jìn)行分類研究,所以在文中我們采用了注意力機(jī)制中的自注意力機(jī)制模型,該模型特點(diǎn)就是能夠使文本中的組成長句子的隨機(jī)兩個(gè)詞語產(chǎn)生聯(lián)系,所以即使是距離較遠(yuǎn)的特征也能夠被充分利用。
在NLP中,最細(xì)粒度的對象是詞語。我們最常使用的詞性標(biāo)注方法是貝葉斯等傳統(tǒng)算法,即利用樣本數(shù)據(jù)(x,y),其中x表示詞語,y表示詞性,然后找到x→y的映射關(guān)系。但在自然語言中,我們所使用的文字、圖標(biāo)等都是符號化的,要將這些信息加入到數(shù)學(xué)模型當(dāng)中,就必須將其轉(zhuǎn)換為數(shù)值形式進(jìn)行處理。這個(gè)過程也可以理解成將符號信息對應(yīng)地嵌入到數(shù)學(xué)空間中,即詞嵌入(word embedding)。Word2vec 是詞嵌入的一種,其是用一層的神經(jīng)網(wǎng)絡(luò)(即CBOW)把one-hot 形式的稀疏詞向量映射成為一個(gè)n維稠密向量的過程[7]。其優(yōu)勢在于能夠利用詞的上下文信息,使語義信息更加飽滿,較于傳統(tǒng)NLP 的高維、稀疏的表示法(One-hot Representation),Word2vec訓(xùn)練出的詞向量是低維、稠密的[8]。Word2vec常應(yīng)用兩個(gè)方面:
1)使用訓(xùn)練出的詞向量作為輸入特征,提升現(xiàn)有系統(tǒng),如應(yīng)用在情感分析、詞性標(biāo)注、語言翻譯等神經(jīng)網(wǎng)絡(luò)中的輸入層。
2)直接從語言學(xué)的角度對詞向量進(jìn)行應(yīng)用,如使用向量的距離表示詞語相似度、query相關(guān)性等[9]。
在本文中,我們提出的模型如圖1 所示,主要包含以下幾層:自注意力層,交互層,聚合層。
圖1 基于自注意力機(jī)制的顯式交互文本分類模型
這一層主要是從輸入文檔的詞向量矩陣中獲得相互聯(lián)系的特征向量矩陣。將文檔D={x1,x2,…,xn},n代表的是文檔中詞的個(gè)數(shù),xi代表是文檔中第i個(gè)詞的詞向量,其維度為d。將文本D通過全連接,再激活得到新的矩陣Q,Q∈Rn×d。公式即為
其中σ代表激活函數(shù),激活函數(shù)有tanh 函數(shù),sigmoid 函數(shù),relu 函數(shù)等,此處選擇relu 函數(shù)作為激活函數(shù)。
如圖2所示,原詞向量矩陣D激活后得到矩陣Q,通過D矩陣與Q的轉(zhuǎn)置矩陣做點(diǎn)乘運(yùn)算:
圖2 詞向量處理
自注意力矩陣B(B∈Rn×n)中每一個(gè)元素是矩陣A(A∈Rn×n)中的每一行通過softmax 函數(shù)分類所得:
其中aij表示矩陣A中的第i行第j列元素,bij代表B矩陣中第i行第j列元素。
將矩陣B與原詞向量矩陣D進(jìn)行如下計(jì)算得到自注意力矩陣C(C∈Rn×d):
其中U代表B矩陣中每一行元素bij與D矩陣中每一行Dj向量相乘累加得到C矩陣中的一行Ci。
交互機(jī)制的關(guān)鍵思想是使用小單元之間的交互特征(例如文本內(nèi)容中的單詞)來推斷兩個(gè)內(nèi)容是否匹配的細(xì)粒度線索[10]。受基于編碼的方法的交互機(jī)制以匹配文本內(nèi)容的方法的成功啟發(fā),我們將交互機(jī)制引入到將文本內(nèi)容與其類(即文本分類)匹配的任務(wù)中。本文設(shè)計(jì)一個(gè)交互層,主要用來計(jì)算單詞與類之間的匹配度。使用可訓(xùn)練的表示矩陣T∈Rk×d來編碼類(其中每一行表示一個(gè)類),k表示類的數(shù)量,d是維度,等于單詞的大小。通過點(diǎn)積作為交互函數(shù)來估計(jì)目標(biāo)詞i與類j的匹配程度,公式如下:
其中C∈Rn×d是自注意力層處理過得到的關(guān)于文本的字級表示,其中n代表文本的長度。經(jīng)過以上這種方式我們可以得到交互矩陣H∈Rk×n。
該層被設(shè)計(jì)為將每個(gè)類是s的交互特征聚合成logits Ois,其表示類s和輸入文本xi之間的匹配數(shù)。聚合層可以使用CNN 或者LSTM,但是,為了保持模型的簡單性和高效性,這里我們只使用具有兩個(gè)FC 層的MLP,其中relu 是第一層的激活函數(shù)。形式上,MLP聚合類s的交互特征Hs,并計(jì)算其關(guān)聯(lián)的logits如下:
其中W1和W2是可訓(xùn)練參數(shù),b是第一層中的偏差。然后,我們將logits oi=歸一化為概率pi,根據(jù)前人的實(shí)驗(yàn),我們使用sigmoid 函數(shù)對新聞文本進(jìn)行多標(biāo)簽分類。
本文是采用的是對比實(shí)驗(yàn),在數(shù)據(jù)集下,通過跟不同的文本分類模型對比文本分類準(zhǔn)確度和召回率等。我們采用的兩個(gè)數(shù)據(jù)集,中文數(shù)據(jù)集有復(fù)旦中文文本分類數(shù)據(jù)集,此數(shù)據(jù)集中一共有19637篇文檔,其中測試語料有9833 篇,訓(xùn)練語料9804篇,分為20 個(gè)類別;英文數(shù)據(jù)集有DBpedia 兩個(gè)數(shù)據(jù)集,其中DBpedia數(shù)據(jù)集中包含14個(gè)不重疊的類別,含40000個(gè)訓(xùn)練樣本和5000 個(gè)測試樣本。
在分類模型中,有很多用于評估模型的標(biāo)準(zhǔn),本文中主要用到的有準(zhǔn)確率,召回率和F1 函數(shù)。準(zhǔn)確率是指正例判斷正確的個(gè)數(shù)與模型預(yù)測輸出的正例的總個(gè)數(shù)之比[11]。模型預(yù)測為正例的情況有兩種:一種是將正例預(yù)測為正例(TP),另外一種是將負(fù)例預(yù)測為正例(FP)。準(zhǔn)確率計(jì)算表達(dá)式如下:
召回率是指正例判斷正確的個(gè)數(shù)與真正的正例樣本的總個(gè)數(shù),這其中也有兩種預(yù)測情況,一是將樣本中的正例預(yù)測為正例(TP),二是將樣本中的正例預(yù)測為負(fù)例(FN)[12]。召回率計(jì)算公式如下:
理想情況下,精確率和召回率兩者都越高越好。然而事實(shí)上這兩者在某些情況下是矛盾的,精確率高時(shí),召回率低;精確率低時(shí),召回率高[13]。綜合考慮之下,我們引入F1 函數(shù),F(xiàn)1 值是精確率和召回率的調(diào)和均值,具體公式如下:
從下面的對比結(jié)果表1 中可以看出,本文模型在基于詞級的新聞文本分類中顯示出了一定的優(yōu)勢;圖3 為不同模型下的分類指標(biāo)的柱狀對比圖,從準(zhǔn)確率和F1 兩方面來看,相對于CNN、RCNN 兩個(gè)模型,我們的模型有了顯著的提高。在現(xiàn)有的文本分類性模型中,主要分為兩類:一種是基于特征的模型,另外一種是深度神經(jīng)網(wǎng)絡(luò)分類模型[14]。前者比較偏向?yàn)槿斯ぬ卣?,采用機(jī)器學(xué)習(xí)算法作為分類器。后者深度神經(jīng)模型,利用神經(jīng)網(wǎng)絡(luò)完成數(shù)據(jù)模型學(xué)習(xí),已成為文本分類的很有前景的一種解決方案。目前已經(jīng)提出的深度網(wǎng)絡(luò)學(xué)習(xí)模型有很多,例如,Iyyer 等提出深度平均網(wǎng)絡(luò)(DAN)和Grave 等提出了FastText,兩者都很簡單但效率很高[15]。為了獲得文本中單詞之間的時(shí)間特征,一些模型如TextCNN(Kim 2014)和Char-CNN(Zhang,Zhao 和LeCun 2015)利用卷積神經(jīng)網(wǎng)絡(luò),還有一些模型基于遞歸神經(jīng)網(wǎng)絡(luò)(RNN)[16]。約翰遜等研究了剩余架構(gòu)并建立了一個(gè)名為VD-CNN 和Qiao 等的模型。后來又有人提出了一種用于文本分類的區(qū)域嵌入的新方法。但是,如簡介中所述,所有這些方法都是文本級模型,而本文所提出的模型是在單詞級別進(jìn)行匹配。交互機(jī)制在自然語言處理中應(yīng)用很廣泛,它的關(guān)鍵思想是使用小單元之間的交互特征(如句子中的單詞)進(jìn)行匹配[17]。王等提出了一個(gè)“匹配-聚合”框架來執(zhí)行自然語言推理中的交互。再后來Munkhdalai 等提出了一個(gè)密集交互式的推理網(wǎng)絡(luò),使用DenseNet 來聚合密集的交互功能[18]。我們的工作與他們的研究有所不同,因?yàn)樗麄冎饕獙⑦@種機(jī)制應(yīng)用于文本匹配而不是分類。
圖3 不同分類模型下的分類指標(biāo)柱狀圖
表1 中英文數(shù)據(jù)集下各個(gè)模型的準(zhǔn)確率
在本文的模型中,我們?yōu)榱顺浞掷瞄L文本中兩個(gè)詞向量之間的依賴特征,而選擇采用了注意力機(jī)制中的自注意力模型,其能將兩個(gè)長距離的詞之間的關(guān)系直接計(jì)算出來,并從中了解句子的內(nèi)部結(jié)構(gòu),使模型中得到更為精準(zhǔn)的詞向量特征。我們將這種處理機(jī)制融合到交互分類模型中,應(yīng)用交互機(jī)制來明確地計(jì)算文本分類的單詞級交互信號。本文在中英文文本數(shù)據(jù)集上面測試模型性能,該模型優(yōu)化了當(dāng)前已有模型中的基于文本級匹配而忽略詞級匹配的缺點(diǎn),通過具體計(jì)算詞與類之間的匹配度,充分利用詞與類的關(guān)系來完成更精細(xì)的分類問題。在未來的研究工作中,我們將會在準(zhǔn)確度以及運(yùn)行耗時(shí)方面進(jìn)一步優(yōu)化模型。