廖文雄,曾 碧,徐雅蕓
廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510006
自然語(yǔ)言處理(Natural Language Processing,NLP)是信息技術(shù)最重要的研究方向之一[1]。自然語(yǔ)言處理是利用計(jì)算機(jī)技術(shù)研究和處理語(yǔ)言的一門(mén)學(xué)科,把計(jì)算機(jī)作為語(yǔ)言研究的工具,對(duì)語(yǔ)言或文字信息進(jìn)行定量化的研究,并提供人與計(jì)算機(jī)之間能夠共同使用的語(yǔ)言描寫(xiě)[2]。隨著現(xiàn)代信息規(guī)模的急劇增大,大部分的自然語(yǔ)言處理任務(wù)(如文本分類、情感分析、中文分詞、機(jī)器翻譯)都很難通過(guò)淺層學(xué)習(xí)[3]的算法完成。
目前在自然語(yǔ)言領(lǐng)域最常用的深度學(xué)習(xí)模型主要有循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)。但是循環(huán)神經(jīng)網(wǎng)絡(luò)及其變體LSTM(Long Short-Term Memory)[4]、GRU(Gated Recurrent Unit)[5]結(jié)構(gòu)較復(fù)雜,并且存在時(shí)序依賴問(wèn)題,難以實(shí)現(xiàn)并行化計(jì)算[6]。雖然CNN 能夠容易地實(shí)現(xiàn)并行化計(jì)算,但是CNN 只能關(guān)聯(lián)卷積窗口內(nèi)的特征信息,而不能像循環(huán)神經(jīng)網(wǎng)絡(luò)那樣聯(lián)系全文[7]。
為了提升CNN 聯(lián)系上下文的能力,本文提出一種結(jié)合一維擴(kuò)展卷積和Attention 機(jī)制的自然語(yǔ)言處理模型,與LSTM 相比,本模型能夠更好更快地完成自然語(yǔ)言處理的任務(wù)。
自然語(yǔ)言處理算法大致分為以下兩類:(1)淺層學(xué)習(xí)方法;(2)深度學(xué)習(xí)方法。
經(jīng)典的自然語(yǔ)言處理算法主要有樸素貝葉斯算法、K近鄰算法、支持向量機(jī)以及最大熵模型等算法,這些都稱為淺層學(xué)習(xí)方法。Pang等人[8]使用樸素貝葉斯、支持向量機(jī)、最大熵等模型在電影評(píng)價(jià)的情感分析任務(wù)中取得較好的效果。這些淺層模型最多擁有1~2 個(gè)非線性特征轉(zhuǎn)換層,計(jì)算量小且容易實(shí)現(xiàn),在解決簡(jiǎn)單問(wèn)題上能取得較好的效果,但是由于對(duì)復(fù)雜問(wèn)題的表達(dá)能力有限,難以完成現(xiàn)代復(fù)雜的自然語(yǔ)言處理任務(wù)。
隨著深度學(xué)習(xí)在圖像領(lǐng)域取得的巨大進(jìn)展,研究者們紛紛嘗試用深度學(xué)習(xí)的方法解決自然語(yǔ)言處理問(wèn)題。其中最常見(jiàn)的是循環(huán)神經(jīng)網(wǎng)絡(luò),循環(huán)神經(jīng)能夠聯(lián)系上下文信息,在解決序列化的問(wèn)題上有突出的效果,因此在自然語(yǔ)言處理領(lǐng)域廣泛應(yīng)用。隨著循環(huán)神經(jīng)網(wǎng)絡(luò)及其變體LSTM、GRU 的不斷發(fā)展,自然語(yǔ)言處理技術(shù)有了較大的進(jìn)步,因此現(xiàn)在大部分的自然語(yǔ)言處理任務(wù)都把LSTM和GRU作為首選算法。Liu等人[9]基于循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)文本進(jìn)行分類,取得了不錯(cuò)的效果。王偉等人[10]基于雙向GRU和Attention機(jī)制對(duì)文本進(jìn)行情感分析。張子睿等人[11]通過(guò)雙向LSTM 和CRF 結(jié)合的網(wǎng)絡(luò)模型對(duì)中文進(jìn)行分詞。但是循環(huán)神經(jīng)結(jié)構(gòu)較復(fù)雜,并且在反向傳播時(shí)多個(gè)門(mén)(Gate)和記憶單元都依賴上一個(gè)時(shí)間步,導(dǎo)致訓(xùn)練速度較慢。
Attention機(jī)制方面,Bahdanau等人[12]提出自然語(yǔ)言的Attention機(jī)制并首次應(yīng)用于翻譯領(lǐng)域,取得了相當(dāng)不錯(cuò)的效果。Luong等人[13]提出了Global Attention和Local Attention 兩種 Attention 方式。Attention 機(jī)制在翻譯領(lǐng)域取得的成功,使得其廣泛應(yīng)用到基于深度學(xué)習(xí)的自然語(yǔ)言處理各個(gè)任務(wù)中。
與此同時(shí),CNN 對(duì)自然語(yǔ)言處理的能力一直被低估。近年來(lái)隨著循環(huán)神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)逐漸暴露出來(lái),研究者們紛紛嘗試采用比循環(huán)神經(jīng)網(wǎng)絡(luò)更加簡(jiǎn)單的CNN。Kim[14]2014 年將 CNN 應(yīng)用到句子分類中;Zhang 等人[15]2015 年提出字符級(jí)的CNN 文本分類方法;Gehring 等人[16]將CNN的結(jié)構(gòu)應(yīng)用到機(jī)器翻譯;王盛玉等人[17]提出通過(guò)在詞嵌入層后增加Attention機(jī)制,給予每個(gè)情感詞不同的權(quán)重以提升CNN的情感分析性能。
但是CNN 只能獲取卷積窗口內(nèi)的局部特征信息,會(huì)導(dǎo)致模型無(wú)法像RNN那樣聯(lián)系文本上下文信息。為了增強(qiáng)CNN 在處理自然語(yǔ)言任務(wù)時(shí)的上下文關(guān)聯(lián)性,本文提出一種結(jié)合一維擴(kuò)展卷積和Attention 機(jī)制(One-Dimensional Dilated Convolution and Attention Mechanism,1DDilaConv_Att)的自然語(yǔ)言處理模型。1DDilaConv_Att 模型能夠在較短的時(shí)間內(nèi)實(shí)現(xiàn)與循環(huán)神經(jīng)網(wǎng)絡(luò)相近的性能。
圖1 為1DDilaConv_Att 模型結(jié)構(gòu)圖解。首先將所有的文字都經(jīng)過(guò)Embedding 層把每個(gè)詞轉(zhuǎn)化成向量的形式,并輸進(jìn)1DDilaConv 層;通過(guò)1DDilaConv 層提取文字信息的深層特征;隨后通過(guò)Attention 機(jī)制整合由1DDilaConv 層提取得到的特征;最后通過(guò)全連接層實(shí)現(xiàn)分類或者回歸任務(wù)。
圖1 1DDilaConv_Att模型結(jié)構(gòu)
Embedding 層即詞嵌入層。由于CNN 最早是應(yīng)用于圖像處理和識(shí)別領(lǐng)域,而圖像由像素點(diǎn)矩陣組成,因此需要將文本信息轉(zhuǎn)成二維矩陣的形式。詞向量是基于語(yǔ)料庫(kù)利用算法學(xué)習(xí)得到的詞語(yǔ)低維表示形式,能充分體現(xiàn)上下文的相關(guān)特征和詞語(yǔ)之間的相似性。目前常 用的詞嵌入方法有 word2vec[18]、GloVe[19]、ELMo[20]。假設(shè)文本中含有n個(gè)詞,且嵌入層的輸出為k維特征,則1DDilaConv的輸入為n×k的二維矩陣。
本文提出的1DDilaConv以一維卷積(One-Dimensional Convolution,1DConv)為基礎(chǔ)。1DConv 主要通過(guò)模仿N-gram獲得上下文信息,設(shè)卷積的窗口大小為l,那么l即為N-gram 中的n,每個(gè)卷積窗口產(chǎn)生的信息可以認(rèn)為是一個(gè)時(shí)序信號(hào)。
2.2.1 1DConv
本文所提及的1DConv與文獻(xiàn)[14]所提到的卷積層類似。設(shè)Xi∈Rk,其中k代表嵌入層輸出維度,而i代表該詞在文檔或者句子中的位置。經(jīng)過(guò)Embedding 層后一個(gè)包含n個(gè)詞的文檔或句子可以用以下形式表示:
這里符號(hào)⊕表示連接操作。通常用向量Xi:i+j表示一系列詞向量Xi,Xi+1,…,Xi+j。每個(gè)卷積操作都包含一個(gè)卷積核w∈Rl×k,它可以通過(guò)一個(gè)包含l個(gè)詞的窗口來(lái)產(chǎn)生一個(gè)新的特征。例如:一個(gè)特征ci可由窗口Xi:i+l-1產(chǎn)生:
這里b∈R 是一個(gè)偏置項(xiàng),f是一個(gè)類似雙曲正切的非線性函數(shù)。最后文檔或句子可以表示為:
如圖2所示為卷積窗口大小為2且包含3個(gè)卷積核的卷積層,經(jīng)過(guò)特征提取后形成一個(gè)大小8×3 的特征圖,其中8=n-l+1=9-2+1,3 為卷積核數(shù)量。
圖2 1DConv操作示意圖
2.2.2 1DDilaConv原理
為了增大卷積的感受野,增強(qiáng)網(wǎng)絡(luò)模型對(duì)上下文的聯(lián)系能力,本文在文獻(xiàn)[21]的基礎(chǔ)上,提出一維的擴(kuò)展卷積(One-Dimensional Dilated Convolution,1DDilaConv),對(duì)文本進(jìn)行特征提取。
與1DConv相比,1DDilaConv引入一個(gè)名為擴(kuò)展率(Dilation Rate)的超參數(shù),以控制卷積核中空值0 的數(shù)量。擴(kuò)展率定義了卷積核處理文本數(shù)據(jù)時(shí)各詞之間的間距,圖2中原始1DConv的擴(kuò)展率為1。經(jīng)過(guò)擴(kuò)展后的卷積窗口大小可以由式(4)計(jì)算得到:
其中,l為原始卷積窗口大小,d為擴(kuò)展率。通過(guò)擴(kuò)展卷積操作后,可以捕獲到距離較遠(yuǎn)詞語(yǔ)的相關(guān)性,并且有利于特征降維。
原始卷積窗口大小為3,擴(kuò)展率為3且包含2個(gè)卷積核的1DDilaConv 操作如圖3 所示。在圖3 中不同顏色代表不同的卷積核,在卷積核中,圓點(diǎn)標(biāo)記的位置同正常卷積核,無(wú)圓點(diǎn)標(biāo)記的位置為0。
從圖3并且結(jié)合式(4)可知:經(jīng)過(guò)擴(kuò)展率為3的擴(kuò)展后,原來(lái)大小為3的卷積窗口,擴(kuò)大至7。經(jīng)過(guò)特征提取后形成一個(gè)大小6×2 的特征圖,其中6=n-l′+1=12-7+1,2 為卷積核數(shù)量。
圖3 1DDilaConv示意圖
Attention 機(jī)制的優(yōu)勢(shì)是其隨著時(shí)間推移而整合信息的能力,可以用來(lái)表示文本或句子中的詞與輸出結(jié)果之間的相關(guān)性。本文所用到的Attention 機(jī)制參考文獻(xiàn)[22]。假設(shè)ht是由第t個(gè)時(shí)序窗口產(chǎn)生的特征,那么Attention機(jī)制的過(guò)程可以用以下式子表示:
其中,Ww與bw為Attention的權(quán)重和偏置項(xiàng)。式(6)為對(duì)所有的結(jié)果計(jì)算softmax 值。式(7)將計(jì)算出的αt作為各個(gè)卷積窗口的輸出權(quán)值,對(duì)其加權(quán)求和表示為一個(gè)向量。對(duì)于圖3 所產(chǎn)生的6×2 特征圖,則有ht∈R3,1 ≤t≤6 ,而經(jīng)過(guò)Attention 機(jī)制后,輸出結(jié)果為
Attention機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 Attention機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu)
本文驗(yàn)證實(shí)驗(yàn)的運(yùn)行環(huán)境是一臺(tái)具有16 GB 內(nèi)存 且 配 有 型 號(hào) 為 Intel?CoreTMi7-7770HQ 的 CPU 和GTX1060 顯卡的個(gè)人計(jì)算機(jī),該計(jì)算機(jī)操作系統(tǒng)為Windows 10家庭中文版。
本實(shí)驗(yàn)實(shí)現(xiàn)了以下四種模型的對(duì)比:
(1)Native Bayes 模型,該模型參考文獻(xiàn)[23]的方法,先對(duì)文本計(jì)算TF-IDF值,再通過(guò)樸素貝葉斯對(duì)文本進(jìn)行處理;
(2)LSTM模型,該模型參考文獻(xiàn)[9]的方法,將經(jīng)過(guò)嵌入層的文本輸進(jìn)兩層堆疊LSTM后,根據(jù)LSTM的輸出值做相應(yīng)的處理;
(3)LSTM_Att 模型,該模型參考文獻(xiàn)[24]的方法,將經(jīng)過(guò)嵌入層的文本輸進(jìn)兩層堆疊LSTM,并且LSTM后接Attention層,根據(jù)Attention層的輸出值做相應(yīng)的處理;
(4)1DConv_Att模型,該模型參考文獻(xiàn)[14],將經(jīng)過(guò)嵌入層的文本輸入兩層堆疊的卷積層,并在卷積層后添加Attention層;
(5)本文提出的1DDilaConv_Att模型,為了與LSTM模型、LSTM_Att模型做對(duì)比,該模型也含有兩層堆疊的擴(kuò)展卷積層。
除了實(shí)驗(yàn)設(shè)置中有特別說(shuō)明外,其他的數(shù)據(jù)預(yù)處理過(guò)程,模型超參數(shù)等設(shè)置,所有模型保持一致。
本文采用accuracy、F1、訓(xùn)練時(shí)間作為評(píng)價(jià)指標(biāo)。對(duì)于多分類問(wèn)題,本文采用宏平均值。accuracy、F1的計(jì)算公式如下:
式中的TP、FN、FP、TN如表1所示。
表1 二分類結(jié)果混淆矩陣
3.4.1 數(shù)據(jù)集介紹
本文采用來(lái)源于keras的imdb數(shù)據(jù)集,其包含50 000條電影評(píng)論(英文),以情緒(正面/負(fù)面)標(biāo)記。該數(shù)據(jù)集被劃分為用于訓(xùn)練的25 000 條評(píng)論和用于測(cè)試的25 000條評(píng)論,訓(xùn)練集和測(cè)試集都包含50%的正面評(píng)價(jià)和50%的負(fù)面評(píng)價(jià)。樣本分布情況如表2所示。
表2 imdb數(shù)據(jù)集樣本分布
3.4.2 實(shí)驗(yàn)設(shè)置
Native Bayes 模型通過(guò)sklearn 實(shí)現(xiàn),其他模型通過(guò)keras 實(shí)現(xiàn)。本實(shí)驗(yàn)的Embedding 層使用imdb 數(shù)據(jù)集作為語(yǔ)料庫(kù)通過(guò)word2vec 方法訓(xùn)練詞向量。在1DDilaConv_Att 模型中第一層擴(kuò)展卷積的原始卷積核大小設(shè)為3,擴(kuò)展率設(shè)為1;第二層擴(kuò)展卷積的原始卷積核大小設(shè)為3,擴(kuò)展率設(shè)為3。
3.4.3 結(jié)果
各模型的imdb數(shù)據(jù)集情感分析結(jié)果如表3和圖5所示。從accuracy來(lái)看,Native Bayes最低,只有0.834 7,最高的是LSTM_Att,為0.879 8;從F1來(lái)看,1DDilaConv_Att最高,為0.884 1;從每輪訓(xùn)練時(shí)間來(lái)看,Native Bayes耗時(shí)最短,僅需要0.023 5 s,其次1DConv_Att為17.046 7 s,1DDilaConv_Att為18.807 8 s,而LSTM_Att每輪耗時(shí)最長(zhǎng),達(dá)到49.447 8 s。
表3 各模型情感分析性能對(duì)比
3.5.1 數(shù)據(jù)集介紹
THUCNew 是根據(jù)新浪新聞RSS 訂閱頻道2005—2011 年的歷史數(shù)據(jù)篩選過(guò)濾獲得的,一共包含74 萬(wàn)篇新聞,約為2.19 GB。本文從該數(shù)據(jù)集中提取出10個(gè)主題,每個(gè)主題隨機(jī)抽取5 000篇新聞作為訓(xùn)練集,500篇新聞作為驗(yàn)證集,1 000 篇新聞作為測(cè)試集。樣本分布如表4所示。
3.5.2 實(shí)驗(yàn)設(shè)置
圖5 各模型情感分析性能對(duì)比
表4 新聞主題分類數(shù)據(jù)集樣本分布
Native Bayes模型通過(guò)sklearn實(shí)現(xiàn),其他模型通過(guò)keras實(shí)現(xiàn)。與情感分析實(shí)驗(yàn)不同的是本實(shí)驗(yàn)的Embedding 層使用約4.1 GB 的百度百科外部語(yǔ)料庫(kù)通過(guò)GloVe 訓(xùn)練字符級(jí)嵌入。在1DDilaConv_Att 模型中第一層擴(kuò)展卷積的原始卷積核大小設(shè)為6,擴(kuò)展率設(shè)為1;第二層擴(kuò)展卷積的原始卷積核大小設(shè)為5,擴(kuò)展率設(shè)為2。
3.5.3 結(jié)果
各模型新聞主題分類結(jié)果如表5 和圖6 所示。從accuracy和F1來(lái)看,1DDilaConv_Att 均為最優(yōu)模型,其中accuracy達(dá)到0.962 1,F(xiàn)1達(dá)到0.961 84;從每輪耗時(shí)來(lái)看Native Bayes 耗時(shí)最短,僅需要0.169 3 s,其次為1DConv_Att,每輪耗時(shí) 84.901 2 s,1DDilaConv_At 為86.715 9 s,而耗時(shí)最長(zhǎng)的為L(zhǎng)STM_Att,達(dá)到221.163 6 s。
表5 各模型主題分類性能對(duì)比
圖6 各模型主題分類性能對(duì)比
以上實(shí)驗(yàn)中,Native Bayes只是通過(guò)簡(jiǎn)單的統(tǒng)計(jì)方法進(jìn)行訓(xùn)練,因此訓(xùn)練速度較快,但是由于其表達(dá)能力不足,導(dǎo)致性能遜色于其他模型。LSTM模型通過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)聯(lián)系上下文信息,而LSTM_Att 通過(guò)Attention機(jī)制整合各個(gè)時(shí)序的信號(hào),因此LSTM_Att 比LSTM 性能更好,可是LSTM和LSTM_Att由于網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,導(dǎo)致訓(xùn)練時(shí)間急劇增加。本文提出的1DDilaConv_Att 模型比1DConv_Att 能夠更好地聯(lián)系上下文并且結(jié)構(gòu)比LSTM模型更加簡(jiǎn)單,同時(shí)借助一維擴(kuò)展卷積強(qiáng)大的特征提取能力和通過(guò)Attention機(jī)制整合深層特征,因此性能較好并且耗時(shí)比LSTM和LSTM_Att都要少。
通過(guò)在公開(kāi)的數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)驗(yàn)證可知,本文提出的1DDilaConv_Att與現(xiàn)在主流的循環(huán)神經(jīng)網(wǎng)絡(luò)相比,速度提升明顯,能夠更好更快地處理自然語(yǔ)言處理任務(wù)。
本文提出一種基于一維擴(kuò)展卷積和Attention 機(jī)制的自然語(yǔ)言處理模型1DDilaConv_Att,詳細(xì)描述了1DDilaConv_Att的工作原理,并且通過(guò)實(shí)驗(yàn)驗(yàn)證了本文模型能夠在較短的時(shí)間內(nèi)獲得和循環(huán)神經(jīng)網(wǎng)絡(luò)相近甚至超過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)的性能。
盡管本文提出的1DDilaConv_Att 比LSTM 性能有所提升,但是本文使用的Attention機(jī)制較為簡(jiǎn)單。未來(lái)的工作需要結(jié)合多頭Attention 機(jī)制(Multi-head Attention)更好地融合由一維擴(kuò)展卷積產(chǎn)生的特征信息,從而實(shí)現(xiàn)性能的進(jìn)一步提升。另外,本文只在情感分析和主題分類任務(wù)上進(jìn)行模型驗(yàn)證,未來(lái)工作需要在更多任務(wù)上(命名實(shí)體識(shí)別、詞性標(biāo)注、關(guān)系抽取等)進(jìn)一步驗(yàn)證本文模型的有效性。