蔡雨岐,郭衛(wèi)斌
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
序列標(biāo)注是自然語言處理領(lǐng)域的一個(gè)基本任務(wù),目的是通過給文本序列中的每個(gè)詞進(jìn)行標(biāo)注得到對應(yīng)的標(biāo)簽序列,包括命名實(shí)體識(shí)別NER(Named Entity Recognition)、詞性標(biāo)注POS(Part Of Speech)及詞匯組塊(Chunking)等子任務(wù)。序列標(biāo)注在自然語言處理中發(fā)揮著重要作用,其性能對于機(jī)器翻譯和智能問答等下游應(yīng)用有著重要影響。
目前,主流的序列標(biāo)注方法多使用循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Network)或其變體來直接提取序列中的上下文信息,即按照序列的輸入順序,利用網(wǎng)絡(luò)生成的所有歷史信息來遞歸地對每一個(gè)單詞進(jìn)行編碼,有效提取序列中單詞之間的連續(xù)依賴關(guān)系。但是,這種方法捕獲離散依賴關(guān)系的能力不強(qiáng),同時(shí)也忽略了詞與標(biāo)簽之間的聯(lián)系。在序列標(biāo)注任務(wù)中,序列中每一個(gè)詞的最終標(biāo)注結(jié)果都受其他所有詞的影響,這種影響與距離無關(guān),句子中的末尾詞可能對句首詞的最終標(biāo)注結(jié)果產(chǎn)生很大影響。以命名實(shí)體識(shí)別為例,在“Amazon is one of the largest online e-commerce companies”這一句子中,將“Amazon”標(biāo)注為“機(jī)構(gòu)”主要依賴于“companies”。由此可見,序列中詞之間的離散依賴關(guān)系也十分重要。其次,詞與標(biāo)簽之間也存在一定關(guān)聯(lián),若上下文編碼過程中學(xué)習(xí)到正確的標(biāo)簽知識(shí)[1,2],能夠提升模型的性能。
為了更好地捕獲序列中的離散依賴關(guān)系,同時(shí)增強(qiáng)詞與標(biāo)簽的聯(lián)系,本文提出了一種基于多級語義信息融合編碼的序列標(biāo)注方法。首先,采用雙向長短期記憶網(wǎng)絡(luò)BiLSTM(Bidirectional Long Short-Term Memory)[3]提取序列上下文語義信息;然后,利用注意力機(jī)制將標(biāo)簽語義信息添加到上下文語義信息中,得到融合標(biāo)簽信息的上下文語義信息;接著,引入自注意力機(jī)制捕捉序列中的離散依賴關(guān)系,得到含有離散依賴關(guān)系的上下文語義信息;再使用融合機(jī)制對3種語義信息進(jìn)行融合,得到一種全新的語義信息;最后,使用條件隨機(jī)場CRF(Conditional Random Fields)[4]對全新的語義信息進(jìn)行建模,得到對應(yīng)的標(biāo)簽序列。通過對比實(shí)驗(yàn)發(fā)現(xiàn),融合標(biāo)簽信息的上下文語義信息和含有離散依賴關(guān)系的上下文語義信息,在單獨(dú)使用的情況下,相比于基準(zhǔn)模型性能有提升,但提升幅度要小于使用多級語義信息融合編碼的模型,驗(yàn)證了基于多級語義信息融合編碼的序列標(biāo)注方法的合理性與有效性。
傳統(tǒng)的序列標(biāo)注方法主要是基于經(jīng)典的機(jī)器學(xué)習(xí)模型,如隱馬爾可夫模型HMM(Hidden Markov Model)[5]、條件隨機(jī)場CRF[5]和支持向量機(jī)SVM(Support Vector Machine)[6]等。傳統(tǒng)的序列標(biāo)注方法取得了成功,但是其所使用的特征需要手工制作,使得系統(tǒng)的設(shè)計(jì)成本過高,且泛化能力較弱,在新的數(shù)據(jù)集上很難達(dá)到好的效果。近年來,隨著深度神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,其在訓(xùn)練過程中自動(dòng)提取特征的能力引起了研究人員的關(guān)注。
Collobert等人[7]率先使用固定大小窗口的簡單前饋神經(jīng)網(wǎng)絡(luò)提取上下文語義信息,并通過CRF層生成最終的標(biāo)記序列,取得了不錯(cuò)的實(shí)驗(yàn)結(jié)果。然而,通過窗口對序列進(jìn)行編碼只能提取到鄰近詞的信息,忽略了序列中的長距離連續(xù)依賴關(guān)系。雙向長短期記憶網(wǎng)絡(luò)BiLSTM因?yàn)榫哂辛己玫男蛄行畔⒈4婺芰?,被廣泛應(yīng)用于各種序列建模任務(wù)當(dāng)中。Huang等人[8]首先利用BiLSTM對序列進(jìn)行編碼,得到序列的上下文語義表示后,利用CRF層解碼生成最終的序列標(biāo)記。在此基礎(chǔ)上,Lample等人[9]和Ma等人[10]分別使用BiLSTM和卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)對序列字符級別的特征進(jìn)行編碼;Liu等人[11]在使用BiLSTM提取字符特征的基礎(chǔ)上加入了語言模型進(jìn)行聯(lián)合訓(xùn)練;Yamada等人[12]和Jiang等人[13]使用了新的詞嵌入模型,通過引入外部知識(shí)來提升模型的性能。上述模型在序列標(biāo)注任務(wù)中都取得了很好的成績,但都沒有有效捕捉詞之間的離散依賴關(guān)系。
自注意力機(jī)制(Self-Attention)[14]能夠無視距離建模序列中任意2個(gè)詞依賴關(guān)系的能力引起了研究人員的關(guān)注,如何利用自注意力機(jī)制提高自然語言處理任務(wù)的性能,成為了當(dāng)前研究的熱點(diǎn)。目前,通過引入自注意力機(jī)制,閱讀理解[15]、情感分析[16]和機(jī)器翻譯[14]等自然語言處理任務(wù)的性能都得到了提升。同時(shí)有大量研究表明,在原有的語義信息上加入標(biāo)簽語義信息[17-20],增強(qiáng)序列與標(biāo)簽之間的依賴關(guān)系能夠得到更好的實(shí)驗(yàn)結(jié)果。
本文受以上研究啟發(fā),提出了一種新的語義信息編碼方法。首先,利用注意力機(jī)制生成包含序列離散依賴關(guān)系的語義信息,以及包含序列與標(biāo)簽依賴關(guān)系的語義信息;然后,設(shè)計(jì)了一種新的語義信息融合機(jī)制,將不同的語義信息融合在一起。在新的語義信息中既包含了序列的離散依賴關(guān)系,又包含了序列與標(biāo)簽之間的依賴關(guān)系。實(shí)驗(yàn)結(jié)果表明,本文提出的多級語義信息融合編碼方式與基準(zhǔn)模型相比性能有明顯提升。
序列標(biāo)注任務(wù)可以看成一個(gè)分類任務(wù),目的是給序列中的每一個(gè)單詞選擇一個(gè)最佳標(biāo)記。即給定序列X=(X1,X2,…,Xn),求出對應(yīng)的標(biāo)記序列(y1,y2,…,yn)。本文提出了一種基于多級語義信息融合編碼的序列標(biāo)注方法,具體標(biāo)注過程如圖1所示。
Figure 1 Process of sequence labeling based on multi-level semantic information fusion coding
首先,使用第1層BiLSTM提取原始序列的上下文語義信息,并將其輸入多級語義信息融合層;在多級語義信息融合層中,利用注意力機(jī)制生成包含序列離散依賴關(guān)系的語義信息和包含序列與標(biāo)簽依賴關(guān)系的語義信息,然后將3種語義信息進(jìn)行融合得到新的語義信息;第2層BiLSTM對新的語義信息進(jìn)行建模,進(jìn)一步從新的語義信息中提取特征;最后,將這些特征輸入CRF層中,利用CRF預(yù)測出最終的標(biāo)簽序列。
給定文本序列(X1,X2,…,Xn),其中Xi表示序列中的第i個(gè)單詞。首先使用BiLSTM對序列進(jìn)行字符編碼,提取序列字符級別的特征,得到單詞字符級別的向量表示,如式(1)所示:
(1)
將ci與預(yù)先訓(xùn)練好的詞向量ei進(jìn)行拼接得到單詞的分布式表示。對于給定單詞Xi,其單詞的分布式表示xi如式(2)所示:
xi=[ci;ei]
(2)
本文使用BiLSTM來學(xué)習(xí)序列的上下文特征表示,共有2個(gè)BiLSTM編碼層。
(3)
H={h1,h2,…,hn}
(4)
第2個(gè)BiLSTM層的輸入為融合后的語義信息,通過對新的語義信息進(jìn)行建模,進(jìn)一步從新的語義信息中提取上下文特征。
BiLSTM按照順序處理輸入的文本序列,以遞歸的方式將每個(gè)單詞的前向隱藏狀態(tài)和后向隱藏狀態(tài)拼接起來,作為每個(gè)單詞的上下文信息表示。在此基礎(chǔ)上,為了更好地捕捉序列中的離散依賴關(guān)系以及充分利用標(biāo)簽信息,本文提出了一種多級語義信息融合編碼方式。
(1)使用多頭自注意力機(jī)制對序列的上下文語義信息H進(jìn)行建模,增強(qiáng)序列中任意2個(gè)單詞之間的依賴關(guān)系,進(jìn)而得到含有離散依賴關(guān)系的上下文語義信息Hs。對于輸入序列H,定義Q=K=V=H,其中Q,K和V分別表示查詢向量序列、鍵向量序列和值向量序列。多頭自注意力機(jī)制計(jì)算如式(5)~式(7)所示:
(5)
(6)
Hs=concat(head1,…,headm)Ws
(7)
再利用多頭注意力機(jī)制將標(biāo)簽語義信息添加到序列的上下文語義信息H中,得到融合標(biāo)簽語義信息的上下文語義信息Hl。輸入序列為H,定義Q=H,K=V=Le,Le為標(biāo)簽的分布式表示。具體計(jì)算同式(5)~式(7),最后得到輸出Hl。
(3)由(1)可知,Hs和Hl中包含了一部分H的信息,因此需要通過遺忘機(jī)制增強(qiáng)Hs和Hl中的特殊語義信息。首先通過線性變換和非線性激活函數(shù)tanh、sigmoid生成對應(yīng)的遺忘因子λ,如式(8)和式(9)所示:
(8)
(9)
接著使用融合門自適應(yīng)地分別將Hs和Hl中的語義信息與H中的語義信息結(jié)合起來,得到zs和zl,如式(10)和式(11)所示:
zs=(1-λs)⊙H+λs⊙Hs
(10)
zl=(1-λl)⊙H+λl⊙Hl
(11)
最后將3種語義信息進(jìn)行拼接,得到融合多級語義信息的Hf,如式(12)所示:
Hf=concat(H,zs,zl)
(12)
不同于普通的分類任務(wù),序列標(biāo)注任務(wù)中的標(biāo)簽之間具備一定的相關(guān)性,序列中元素的標(biāo)簽正確與否往往取決于鄰近元素的標(biāo)簽。因此,在對元素進(jìn)行標(biāo)簽預(yù)測時(shí),還需要考慮相鄰標(biāo)簽之間的相關(guān)性,從而得到最優(yōu)的標(biāo)注序列。
(13)
(14)
其中,Wyi-1,yi和byi-1,yi分別表示標(biāo)簽對(yi-1,yi)的狀態(tài)轉(zhuǎn)移矩陣和偏置矩陣中的相應(yīng)值,這些參數(shù)在訓(xùn)練過程中被不斷優(yōu)化,從而讓條件概率達(dá)到最大值。最后,選取極大似然函數(shù)L為目標(biāo)函數(shù),如式(15)所示:
(15)
其中,Y為所有可能的序列標(biāo)注的集合。
本文針對命名實(shí)體識(shí)別NER、詞性標(biāo)注POS和詞性組塊Chunking等序列標(biāo)注子任務(wù)進(jìn)行實(shí)驗(yàn),從而綜合評估本文方法的性能,所使用的數(shù)據(jù)集分別為CoNLL03 NER、WSJ和CoNLL00 chunking等公開數(shù)據(jù)集,表1是3個(gè)數(shù)據(jù)集的具體統(tǒng)計(jì)情況。
Table 1 Information of three datasets
在單詞的分布式表示過程中,使用隱藏狀態(tài)大小為25維的BiLSTM學(xué)習(xí)單詞字符級別的表示,得到維度大小為50的字符嵌入,然后與預(yù)訓(xùn)練好的100維度的glove詞嵌入[21]進(jìn)行拼接,得到150維度的單詞分布式表示。上下文編碼過程中BiLSTM的隱藏狀態(tài)維度設(shè)置為256,層數(shù)為1,在多級語義信息融合編碼階段,設(shè)置多頭注意力機(jī)制中的h=8。為了防止過擬合,在詞嵌入與神經(jīng)網(wǎng)絡(luò)之后添加了dropout層,dropout參數(shù)分別設(shè)置為0.1和0.3。
在模型訓(xùn)練過程中,使用隨機(jī)梯度下降優(yōu)化函數(shù)訓(xùn)練模型參數(shù),初始學(xué)習(xí)率η0=0.02,學(xué)習(xí)率更新方式為ηt=0.9ηt-1,batch_size=32,max_epoch=100。
POS實(shí)驗(yàn)采用精確度Accuracy來評估實(shí)驗(yàn)結(jié)果,NER和Chunking實(shí)驗(yàn)采用綜合評價(jià)指標(biāo)F1值來評估實(shí)驗(yàn)結(jié)果,具體計(jì)算如式(16)~式(18)所示:
(16)
(17)
(18)
其中,TP表示正例樣本中被預(yù)測為正例樣本的數(shù)目,F(xiàn)P表示反例樣本中被預(yù)測為正例樣本的數(shù)目,F(xiàn)N表示正例樣本中被預(yù)測為反例樣本的數(shù)目。
為了綜合評估模型的性能,定義深度學(xué)習(xí)模型將所有輸入數(shù)據(jù)完整運(yùn)行一次的時(shí)間為模型的訓(xùn)練時(shí)間,所有輸入數(shù)據(jù)完整運(yùn)行一次的過程稱為一個(gè)epoch。本文記錄模型的訓(xùn)練時(shí)間以及模型達(dá)到收斂所需的epoch數(shù)量,用于評估模型的效率。
本文所提出的基于多級語義信息融合編碼的序列標(biāo)注方法對BiLSTM-CRF基準(zhǔn)模型做出了改進(jìn),為了驗(yàn)證本文方法的有效性與合理性,本文自主設(shè)計(jì)了4種對比實(shí)驗(yàn),每種對比實(shí)驗(yàn)重復(fù)實(shí)驗(yàn)5次,取平均值做為最終結(jié)果。同時(shí),為了綜合評估改進(jìn)模型的性能,在經(jīng)典的NER任務(wù)中,本文選取了BiLSTM-CRF基準(zhǔn)模型和幾個(gè)在其基礎(chǔ)上改進(jìn)的經(jīng)典模型進(jìn)行對比。4種自主設(shè)計(jì)的對比實(shí)驗(yàn)如下所示:
(1)BiLSTM-CRF:經(jīng)典的BiLSTM-CRF模型,基于Huang等人[8]提出的序列標(biāo)注模型,在單詞層級上使用3.1節(jié)的單詞分布式表示方法。
(2)BiLSTM-CRF+SA:在BiLSTM-CRF的基礎(chǔ)上,添加自注意力機(jī)制捕獲序列中的離散依賴關(guān)系。
(3)BiLSTM-CRF+LA:在BiLSTM-CRF的基礎(chǔ)上,使用標(biāo)簽嵌入生成標(biāo)簽語義關(guān)系,然后利用多頭注意力機(jī)制將標(biāo)簽語義關(guān)系添加到原始語義關(guān)系中,增強(qiáng)序列元素與標(biāo)簽之間的聯(lián)系。
(4)BiLSTM-CRF+FA:在BiLSTM-CRF的基礎(chǔ)上,通過(2)和(3)得到包含序列離散依賴關(guān)系的語義信息以及包含序列與標(biāo)簽依賴關(guān)系的語義信息,然后將這2種語義信息與原始語義信息融合得到新的語義信息。
4.4.1 NER實(shí)驗(yàn)結(jié)果
上述算法在NER任務(wù)上的實(shí)驗(yàn)結(jié)果如表2所示。其中,Lample等人[9]和Ma等人[10]分別使用BiLSTM和CNN對序列字符級別的特征進(jìn)行編碼,Liu等人[11]在使用BiLSTM提取字符特征的基礎(chǔ)上加入了語言模型進(jìn)行聯(lián)合訓(xùn)練。
Table 2 Comparison of experimental results of different models on NER
從表2可以看出,相比于經(jīng)典的BiLSTM-CRF模型,加入使用自注意力機(jī)制的語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.27%;加入融合標(biāo)簽嵌入信息的語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.18%;加入融合多級語義信息的新型語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.39%。相比于Huang等人實(shí)現(xiàn)的基準(zhǔn)模型,本文改進(jìn)的BiLSTM-CRF+SA模型的F1分?jǐn)?shù)提高了1.04%;BiLSTM-CRF+LA模型的F1分?jǐn)?shù)提高了0.95%;BiLSTM-CRF+FA模型的F1分?jǐn)?shù)提高了1.16%。
總之,對比算法所取得的實(shí)驗(yàn)效果均不如本文所提方法對基準(zhǔn)模型改進(jìn)后的效果。
4.4.2 POS實(shí)驗(yàn)結(jié)果
上述算法在POS任務(wù)上的實(shí)驗(yàn)結(jié)果如表3所示。
Table 3 Comparison of experimental results of different models on POS
從表3可以看出,相比于經(jīng)典的BiLSTM-CRF模型,加入使用自注意力機(jī)制的語義信息后,準(zhǔn)確率提高了0.06%;加入融合標(biāo)簽嵌入信息的語義信息后,準(zhǔn)確率提高了0.04%;加入融合多級語義信息的新型語義信息后,準(zhǔn)確率提高了0.09%。相比于Huang等人[8]實(shí)現(xiàn)的基準(zhǔn)模型,BiLSTM-CRF+SA模型的準(zhǔn)確率提高了0.15%;BiLSTM-CRF+LA模型的準(zhǔn)確率提高了0.13%;BiLSTM-CRF+FA模型的準(zhǔn)確率提高了0.18%。
4.4.3 Chunking實(shí)驗(yàn)結(jié)果
上述算法在Chunking任務(wù)上的實(shí)驗(yàn)結(jié)果如表4所示。從表4可以看出,相比于經(jīng)典的BiLSTM-CRF模型,加入使用自注意力機(jī)制的語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.22%;加入融合標(biāo)簽嵌入信息的語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.09%;加入融合多級語義信息的新型語義信息后,F(xiàn)1分?jǐn)?shù)提高了0.38%。相比于Huang等人[8]實(shí)現(xiàn)的基準(zhǔn)模型,本文所實(shí)現(xiàn)的BiLSTM-CRF+SA模型的F1分?jǐn)?shù)提高了0.41%;BiLSTM-CRF+LA模型的F1分?jǐn)?shù)提高了0.28%;BiLSTM-CRF+FA模型的F1分?jǐn)?shù)提高了0.57%。
Table 4 Comparison of experimental results of different models on Chunking
4.4.4 模型訓(xùn)練時(shí)間結(jié)果對比與分析
本文所提方法改進(jìn)的模型在不同數(shù)據(jù)集上的訓(xùn)練時(shí)間如表5所示。從表5可以看出,在3個(gè)數(shù)據(jù)集上,模型訓(xùn)練時(shí)間滿足如下關(guān)系:BiLSTM-CRF+FA > BiLSTM-CRF+SA > BiLSTM-CRF+LA > BiLSTM-CRF。
Table 5 Comparison of the training time of models on different data sets and the number of epochs required for training
從模型結(jié)構(gòu)上來看,前3種模型相比于基準(zhǔn)模型多了一個(gè)BiLSTM層,因此訓(xùn)練時(shí)間增加較為明顯;3種模型的線性變換結(jié)構(gòu)不同,訓(xùn)練時(shí)間雖然有差異,但差距較?。籅iLSTM-CRF+FA模型結(jié)構(gòu)最復(fù)雜,所以訓(xùn)練時(shí)間最長。
在NER任務(wù)和Chunking任務(wù)上,BiLSTM-CRF+FA模型的F1分?jǐn)?shù)相比于基準(zhǔn)模型提升較大,訓(xùn)練所需時(shí)間提升較??;在POS任務(wù)上,BiLSTM-CRF+FA模型的準(zhǔn)確率相比于基準(zhǔn)模型提升較小,但是訓(xùn)練所需時(shí)間提升較大。因此,在解決NER問題和Chunking問題時(shí),BiLSTM-CRF+FA模型是最好的選擇;在解決POS問題時(shí),如果要選擇最高的準(zhǔn)確率,也應(yīng)該選擇BiLSTM-CRF+FA模型。
從表5還可以看出,在NER任務(wù)上,模型達(dá)到收斂所需的訓(xùn)練時(shí)間較短,不同的模型所需時(shí)間相差不大,均為1~2 h;在POS任務(wù)上,BiLSTM-CRF+FA模型達(dá)到收斂所需的訓(xùn)練時(shí)間最長,需要將近10 h,經(jīng)典的BiLSTM-CRF模型所需時(shí)間最短,需要7 h;在Chunking任務(wù)上,模型達(dá)到收斂所需的訓(xùn)練時(shí)間大約為1 h。
4.4.5 實(shí)驗(yàn)結(jié)果分析
通過對比實(shí)驗(yàn)可以看出:
(1)在基準(zhǔn)模型上加入使用自注意力機(jī)制的語義信息后,模型性能在3個(gè)任務(wù)上都有提升。這說明利用自注意力機(jī)制能捕獲序列中的離散依賴關(guān)系,且使用包含序列離散依賴關(guān)系的語義信息能提高模型的性能。
(2)在基準(zhǔn)模型上加入融合標(biāo)簽嵌入信息的語義信息后,模型性能在3個(gè)任務(wù)上都有提升。這說明在訓(xùn)練過程中優(yōu)化標(biāo)簽嵌入向量的參數(shù)能夠使標(biāo)簽具備語義信息,且利用注意力機(jī)制可以建立序列元素與標(biāo)簽之間的依賴關(guān)系,合理利用這種依賴關(guān)系能提高模型的性能。
(3)BiLSTM-CRF+SA模型的整體性能優(yōu)于BiLSTM-CRF+LA的。這說明在本文提出的模型中,序列間離散依賴關(guān)系對最終序列標(biāo)注結(jié)果的影響大于序列元素與標(biāo)簽之間的依賴關(guān)系的。
(4)BiLSTM-CRF+FA模型的性能在3個(gè)任務(wù)上都取得了最好的結(jié)果。這說明本文提出的融合機(jī)制能有效地將3種語義信息融合成為1種新的多級語義信息,使新的語義信息同時(shí)包含了序列中的離散依賴關(guān)系與序列元素與標(biāo)簽之間的依賴關(guān)系,且在后續(xù)的神經(jīng)網(wǎng)絡(luò)中使用融合后的多級語義信息提升了模型性能。
本文提出了一種基于多級語義信息融合編碼的序列標(biāo)注方法。針對BiLSTM-CRF基準(zhǔn)模型無法有效捕獲序列中離散依賴關(guān)系的缺點(diǎn),引入自注意力機(jī)制生成包含離散依賴關(guān)系的語義信息;在此基礎(chǔ)上,將標(biāo)簽語義信息加入原始語義信息中,建立序列與標(biāo)簽之間的聯(lián)系;最后通過融合機(jī)制生成一種新的多級語義信息。通過多組對比實(shí)驗(yàn)發(fā)現(xiàn),本文提出的方法改進(jìn)的模型相比于基準(zhǔn)模型在性能上有顯著提升,驗(yàn)證了本文所提方法的合理性與有效性。從實(shí)驗(yàn)結(jié)果可以看出,序列間的離散依賴關(guān)系是影響序列標(biāo)注最終結(jié)果的一個(gè)重要因素,因此設(shè)計(jì)出相應(yīng)方法以更高效地捕捉序列間離散依賴關(guān)系是未來的一個(gè)重要研究方向。