陽 萍,謝志鵬
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 201203)
定義抽取指從自然語言文本中提取出術(shù)語,是本體生成、詞匯表抽取、e-learning應(yīng)用、術(shù)語詞典、問答(QA)系統(tǒng)中的基本任務(wù)。定義抽取的主要任務(wù)是從自然文本中提取出定義性的句子,可以建模為句子分類問題。例如,WCL-1和WCL-3系統(tǒng)依賴于一系列詞形網(wǎng)格的泛化,這些詞形網(wǎng)格是從大型數(shù)據(jù)集獲取的黃金定義中學(xué)習(xí)到的,從而對文本定義進(jìn)行建模。DR系統(tǒng)[1]采用依存關(guān)系來生成句子的特征集,再利用這些生成的特征集進(jìn)行句子分類。簡單的分類模型依賴句子的結(jié)構(gòu)特征來進(jìn)行分類任務(wù),但當(dāng)遇到類似定義句結(jié)構(gòu)的非定義性句子時,分類模型有可能會判斷錯誤。
本文解決定義抽取任務(wù)的方法是實(shí)現(xiàn)一個序列標(biāo)記系統(tǒng)。根據(jù)定義句概念:X=Y+區(qū)別特征,其中,X為術(shù)語,Y+區(qū)別特征就是術(shù)語的定義,可以得出在一個定義句中,一定能夠找到至少一對術(shù)語及其定義,同樣,如果一個句子包含至少一個術(shù)語及其相應(yīng)的定義,那么這個句子就是定義性的。 通過把句子級別的分類任務(wù)轉(zhuǎn)換為字級別的標(biāo)注任務(wù),可以提高對結(jié)構(gòu)模糊的輸入句的判斷精度。
本文提出基于BiLSTM的序列標(biāo)注神經(jīng)網(wǎng)絡(luò)模型用于定義抽取。BiLSTM具有學(xué)習(xí)長期依賴信息的能力,能夠得到具有全局上下文信息的特征表示,通過LSTM解碼器逐字生成最終的標(biāo)簽序列,并運(yùn)用標(biāo)注結(jié)果完成定義抽取任務(wù)。
隨著自然語言研究的發(fā)展,人們對與文本自動化處理和智能化知識生成有著越來越高的要求。而互聯(lián)網(wǎng)技術(shù)的不斷提高,新興詞匯和用語數(shù)量急劇增加,文本語料規(guī)模擴(kuò)大與自動化定義抽取成為學(xué)者們研究的熱點(diǎn)。定義抽取任務(wù)是從非結(jié)構(gòu)化文本中抽取出事件或物件基本屬性的描述,這對于進(jìn)一步深入理解自然語言和構(gòu)建詞典等知識系統(tǒng)有著重要的作用。定義抽取的研究成果可以進(jìn)一步應(yīng)用于智能問答系統(tǒng)中,以回答“什么”類型的問題,或是自動構(gòu)建詞匯表,為在線學(xué)習(xí)平臺提供參考依據(jù),也可以用來完成特定領(lǐng)域的術(shù)語抽取任務(wù)[2]或本體獲取[3-4]
定義抽取任務(wù)傳統(tǒng)上是通過模式匹配來解決的,文獻(xiàn)[5]應(yīng)用諸如“{What is}[determiner]{concept}”之類的模式來挖掘網(wǎng)絡(luò)上特定主題的概念和定義,可以使用像“X is Y”這樣的模式來對手動標(biāo)注的語料中的句子進(jìn)行分類。文獻(xiàn)[6]利用一種軟硬模板相結(jié)合的方式抽取定義句,其中硬模板由手工模板和詞類格模板結(jié)合形成,然后利用N元語言模型匹配完成定義句識別。模式匹配方法是基于規(guī)則的,需要大量的人力資源。由于領(lǐng)域的多樣性和人力資源的限制,這種方法很難囊括所有的模式,因此模式匹配的方法雖然有著極高的精確度,卻從本質(zhì)上很難提高召回率。文獻(xiàn)[7]提出一種通過基因編程(Genetic Programming,GP)學(xué)習(xí)有效語言規(guī)則,然后添加上通過基因算法(Genetic Algorithm,GA)學(xué)習(xí)到的權(quán)重來形成最終的規(guī)則集的方法。然而,這種基于GP的方法的召回率仍然很低。即使基于GP的方法能夠自動化生成豐富的規(guī)則,但是由于定義性句子結(jié)構(gòu)極其多樣,這些學(xué)習(xí)到的規(guī)則仍然非常嘈雜。WCL系統(tǒng)[8]采用一種稱為詞類格(Word-Class Lattices)的有向無環(huán)圖(DAG)來建模定義。
由于基于模式方法的局限性,有監(jiān)督的機(jī)器學(xué)習(xí)方法被越來越多的研究者所使用。文獻(xiàn)[9]利用詞法分析加簡單句法分析組成句子特征,然后通過分類完成定義抽取,這種方法雖然利用了句法信息,但是人工對句子中的專有名詞以及關(guān)鍵動詞的信息分析并沒有完全利用到句子整體結(jié)構(gòu)的信息。一些系統(tǒng)通過從依賴樹中導(dǎo)出,或結(jié)合語言和結(jié)構(gòu)特征來生成所需特征,然后將這些特征輸入機(jī)器學(xué)習(xí)分類器中進(jìn)行定義抽取[10-12]。文獻(xiàn)[13]基于N-gram加入了句子結(jié)構(gòu)中的上下文語義依賴關(guān)系,來解決N-gram抽取模型的數(shù)據(jù)稀疏的問題。DefMiner系統(tǒng)[14]通過融合前人的特征工作來生成自己的特征集,特別地,這些特征不僅包括詞級別上的,而且也包括在句子級和文檔級上提取的,因此可以較充分地保留上下文信息。然后,DefMiner使用條件隨機(jī)場(CRF)將輸入語句中的詞標(biāo)記為集合 A = {(T)erm,(D)efiniton,(O)ther}中的標(biāo)簽,標(biāo)注術(shù)語和定義的F1值分別為45%和 56%。上述有監(jiān)督學(xué)習(xí)方法采用的特征都來自于預(yù)處理過的語句,這意味著句子預(yù)處理操作可能導(dǎo)致偏差和錯誤傳播。文獻(xiàn)[15]提出一種利用長短時記憶神經(jīng)網(wǎng)絡(luò)獲取句子特征的新方法,并在維基百科數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)(取得F1值為91.2%)。
近年來,隨著處理大數(shù)據(jù)集技術(shù)的發(fā)展,研究者利用弱監(jiān)督[16-17]或遠(yuǎn)程監(jiān)督的方法來增加訓(xùn)練數(shù)據(jù)的大小或生成領(lǐng)域特定的訓(xùn)練數(shù)據(jù)。文獻(xiàn)[18]提出一個基于遠(yuǎn)程監(jiān)控的系統(tǒng),用于在不使用任何標(biāo)記數(shù)據(jù)的情況下自動獲取目標(biāo)語料庫中的訓(xùn)練數(shù)據(jù),該方法可以在樣本數(shù)據(jù)不足的情況下對訓(xùn)練集進(jìn)行有效擴(kuò)充。
本文模型的整體結(jié)構(gòu)如圖1所示,模型算法流程如下:
1)對于輸入句中的詞,利用詞嵌入作為其空間向量表示。
2)與傳統(tǒng)的人為建立特征方法不同,本文將詞嵌入輸入到一個雙向長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)中得到輸入句的特征表達(dá)。
3)利用一個基于LSTM的解碼器對得到的特征進(jìn)行解碼。
4)將解碼的結(jié)果輸入到一個CRF中,得到句子整體最優(yōu)的標(biāo)注結(jié)果。
5)利用模型預(yù)測的標(biāo)簽,完成定義句判斷。
圖1 模型整體結(jié)構(gòu)Fig.1 Overall structure of model
本文模型是通過有監(jiān)督的方法進(jìn)行訓(xùn)練,數(shù)據(jù)集選擇為WIKIPEDIA數(shù)據(jù)集,這個數(shù)據(jù)集的正樣本由從維基百科中隨機(jī)抽取出第1條句子(其中選取的術(shù)語屬于4個不同的種類)組成,文獻(xiàn)[19]對其進(jìn)行了詳細(xì)的標(biāo)注,標(biāo)注分為4個部分:術(shù)語(Definiendum),定義引導(dǎo)詞(Definitor),定義(Definiens)和其他(Rest),負(fù)樣本由來自于抽取到正樣本文章中的其他句子組成。鑒于本文的需求,本文對標(biāo)注數(shù)據(jù)進(jìn)行了不同的預(yù)處理,將句子中的token標(biāo)注為集合{TM,DF,NONE} 中的標(biāo)簽,其中,TM 代表術(shù)語,DF 代表定義,NONE表示不屬于功能性的部分。
轉(zhuǎn)化原始輸入到token,從訓(xùn)練集中抽取出前1 000的高頻詞作為高頻詞表L,如果句子S中的詞x屬于L,那么句中第i個詞xi的token就為ti(ti∈L),如果該詞沒有出現(xiàn)在高頻詞中,那么就用該詞的詞性標(biāo)注作為詞的表征。使用的詞性標(biāo)注采用 TreeTagger系統(tǒng)自動生成。本文采用詞嵌入向量作為詞的向量表示,然后把詞嵌入向量輸入到一個BiLSTM 結(jié)構(gòu)中,得到句子的特征表達(dá)。
本文的目標(biāo)是更加自動化的定義抽取。在多數(shù)情況下,人為的特征抽取并非來自于句子本身,而是來自加工處理過的包含著詞依賴關(guān)系、語法等信息的結(jié)構(gòu),如依存樹等,這樣的方法可能會損失一部分來自于句子本身的信息,同時,以往的研究工作大多數(shù)極為依賴人為建立的特征集合,這些集合可能包含長達(dá)數(shù)十條規(guī)則特征。 雖然大量的人為特征工作可以抽取出更多更好的特征,但需要借助專家的領(lǐng)域知識對訓(xùn)練數(shù)據(jù)的深入分析和啟發(fā)性思考,通過抽取或者組合各種原始特征才能得到,需要消耗大量的人力與計(jì)算資源,并且隨著行業(yè)的增加、知識的深入、特征的細(xì)化以及領(lǐng)域的不同,人力特征抽取就更加困難,所以本文選擇通過自動特征提取的方法計(jì)算出原始的特征。選擇利用基于字的雙向LSTM神經(jīng)網(wǎng)絡(luò)對句子進(jìn)行特征建模,選擇這個網(wǎng)絡(luò)的優(yōu)點(diǎn)是,BiLSTM在設(shè)計(jì)上避免了長期依賴,因此可以對長遠(yuǎn)依賴關(guān)系進(jìn)行建模。通過BiLSTM可以對句子進(jìn)行從前到后以及從后到前的完整的上下文信息保存,同時,本文的定義部分形態(tài)復(fù)雜,結(jié)構(gòu)往往較長,使用雙向LSTM能夠更好地利用句子級的語義特征,對于標(biāo)注任務(wù)也更有效。
傳統(tǒng)的RNN模型存在著梯度消失和爆炸的問題,在訓(xùn)練的過程中,越遠(yuǎn)的序列對于正確結(jié)果的影響越小,越近的序列對于結(jié)果的影響更大,所以不利于保存遠(yuǎn)距離的信息。LSTM模型通過對其增加控制門等操作解決了梯度消失和爆炸的問題,并且也解決了信息長期依賴的問題。文獻(xiàn)[20]對最初的LSTM原型[21]通過增加遺忘門、加入Peephole等操作,使模型更加強(qiáng)大。LSTM單元模型如圖2所示。
圖2 基礎(chǔ)LSTM模型Fig.2 Basic LSTM model
與簡單的RNN結(jié)構(gòu)不同,在LSTM模型的重復(fù)結(jié)構(gòu)中有4個神經(jīng)網(wǎng)絡(luò)相互作用。在整個LSTM模型的結(jié)構(gòu)中,細(xì)胞狀態(tài)承載著重要的信息,LSTM通過各種門的作用對細(xì)胞狀態(tài)進(jìn)行修改,從而得到輸出和保留的信息。在LSTM中有3個重要的門來實(shí)現(xiàn)信息的改變,包括遺忘門i、輸入門f和輸出門o。細(xì)胞狀態(tài)公式為:
ct=ftct-1+ittanh(Wxcxt+Whcht-1+bc)
(1)
其中,ct表示當(dāng)前細(xì)胞狀態(tài),ft表示當(dāng)前遺忘門,ct-1表示前一個細(xì)胞狀態(tài),it表示當(dāng)前輸入層,xt表示當(dāng)前輸入句子的token,ht-1表示前一個隱藏層輸出,wxy表示從神經(jīng)元x到y(tǒng)的連接權(quán)重,b(.)表示偏置量。
信息的遺棄主要由遺忘門實(shí)現(xiàn),其通過輸入xt和隱藏層ht-1來決定是否完全保留或丟棄前一個細(xì)胞的每個元素的信息:
ft=σ(Wxfxt+Whfht-1+Wcfct-1+bf)
(2)
除信息的丟棄外,信息的更新由輸入門實(shí)現(xiàn):
it=σ(Wxixt+Whiht-1+Wcict-1+bi)
(3)
通過輸出門實(shí)現(xiàn)對信息的限制性輸出:
ot=σ(Wxoxt+Whoht-1+Wcoct+bo)
(4)
隱藏層輸出為:
ht=ottanh(ct)
(5)
在序列標(biāo)注任務(wù)中,每個詞會被賦給一個來自集合{TM,DF,NONE}的標(biāo)簽,在這里沒有采用大多數(shù)適用的BIOS(Begin,Inside,Outside,Single)[22]編碼系統(tǒng),因?yàn)閷τ谛g(shù)語及其定義而言,術(shù)語多數(shù)以名詞的形式出現(xiàn)在謂語之前,在本文的數(shù)據(jù)集中,術(shù)語大部分是單一的詞,而定義則是內(nèi)容豐富的描述,所以,無論是術(shù)語還是其定義,其本身的位置信息(術(shù)語或定義本身的開始、中間和結(jié)尾)對于最終結(jié)果的影響很小。
在解碼時,本文利用每個詞經(jīng)過BiLSTM的隱藏層輸出作為decoder-LSTM的輸入,將當(dāng)前詞的decoder-LSTM隱藏層輸出變換輸入到條件隨機(jī)場(Conditional Random Field,CRF)中得到最終的句子標(biāo)記結(jié)果,同時把這個隱藏層輸出變換,即前一個分類標(biāo)簽信息作為輸入傳給下一個詞進(jìn)行解碼操作。模型的LSTM基本結(jié)構(gòu)與2.3節(jié)所述基本類似,輸入部分改寫為:
it=σ(Wxiht+Whih′t-1+WtiVt-1+bi)
(6)
其中,ht表示BiLSTM的隱藏層輸出,h′t-1前一個詞的decoder-LSTM隱藏層狀態(tài),Vt-1表示前一個標(biāo)記信息向量。
輸入到CRF的向量為:
Vt=Wth′h′t+bth′
(7)
CRF計(jì)算分?jǐn)?shù)公式如下:
(8)
其中,Pt,yt表示把wt分類到標(biāo)簽yt的分?jǐn)?shù),Ayt-1,yt表示從標(biāo)簽yt-1到標(biāo)簽yt的轉(zhuǎn)移分?jǐn)?shù)。
模型的訓(xùn)練目標(biāo)為最大化對數(shù)似然,損失函數(shù)為:
(9)
因?yàn)閿?shù)據(jù)集相對較小,所以為防止過擬合,在BiLSTM層采取dropout,保留概率為0.8。
數(shù)據(jù)集:本文用到的第1個數(shù)據(jù)集是NAVIGLI等人于2010 年在網(wǎng)絡(luò)中抽取定義和其上位詞的研究而標(biāo)注的數(shù)據(jù)集——Wikipedia數(shù)據(jù)集。該數(shù)據(jù)集包含了1 902條正樣本和2 711條負(fù)樣本,正負(fù)樣本中明確地標(biāo)注了句子的組塊和每個token的詞性,此外,正樣本中還標(biāo)注出了句子中的術(shù)語、定義引導(dǎo)項(xiàng)(通常為緊跟術(shù)語的謂語詞)、定義及其他,同時人工標(biāo)注出術(shù)語的上位詞。第2個數(shù)據(jù)集是LI等人抽取的中文數(shù)據(jù)集,包括人工標(biāo)注的抽取自百度百科的2 161條正樣本和2 161條負(fù)樣本,本文使用哈工大語言技術(shù)平臺對中文數(shù)據(jù)集進(jìn)行了分詞、詞性標(biāo)注和依存句法分析等基本處理,然后對該數(shù)據(jù)集的術(shù)語和定義進(jìn)行了人工標(biāo)注。
數(shù)據(jù)預(yù)處理:通過轉(zhuǎn)換原始句子到token,首先從數(shù)據(jù)集中抽取出前N的高詞頻詞,高頻詞的選取數(shù)量N在英文數(shù)據(jù)集上為1 000,在中文數(shù)據(jù)集上為500,這在文獻(xiàn)[15]中已被證實(shí)分別是在英文和中文數(shù)據(jù)集上取得的最好效果,然后在詞級別對原始輸入進(jìn)行處理。本文采用一個BiLSTM神經(jīng)網(wǎng)絡(luò)自動生成句子的特征。BiLSTM的單向輸出維度為100維,句子特征輸出為200維,word embedding 的初始化維度為64,初始學(xué)習(xí)率為1e-3。
本文在一臺裝有GeForce GTX 1080顯卡的Arch Linux 系統(tǒng)上進(jìn)行模型的訓(xùn)練和預(yù)測。
在Wikipedia英文數(shù)據(jù)集上,訓(xùn)練50個ephoch,batch大小為64,平均處理輸入句的訓(xùn)練速率為108條/s,測試速率為277條/s。
在空間方面,模型復(fù)雜度主要跟神經(jīng)網(wǎng)絡(luò)的參數(shù)量相關(guān)。本文的神經(jīng)網(wǎng)絡(luò)模型基本結(jié)構(gòu)主要利用到LSTM結(jié)構(gòu)(包括一個BiLSTM和一個LSTM解碼器),在該結(jié)構(gòu)中,每一個句子共享相同的矩陣參數(shù)。所以,模型復(fù)雜度為:
V(LLSTM)=4n(m+n+1)
(10)
其中,n為LSTM隱藏層維度,m為數(shù)據(jù)的輸入維度。
本文采用精確率Precision,召回率Recall和F1作為評價(jià)指標(biāo)。
1)句子分類比較結(jié)果
為更好地與本文系統(tǒng)相比較,表1列出了在Wikipedia數(shù)據(jù)集上各定義抽取系統(tǒng)的結(jié)果。其中Star-pattern通過將一些單詞轉(zhuǎn)換為stars的方式把句子概括為star pattern,如果輸入句與star pattern之一匹配,則將句子識別為定義句。 Bigrams是一個基于二元語法的軟匹配模型,提供了一個將模式匹配建模為生成token序列的概率過程的方法,可以用來做定義句檢索。Wcl-1系統(tǒng)對于每組句子,從訓(xùn)練集中學(xué)習(xí)一個詞形網(wǎng)格,一個句子如果匹配其中一個詞形網(wǎng)格可以被分類為定義性的。Wcl-3系統(tǒng)為每個句子字段分別訓(xùn)練詞形網(wǎng)格,如果句子可以匹配任意詞形網(wǎng)格集的組合,則將句子分類為定義性的。 Defminer通過使用有監(jiān)督的序列標(biāo)記系統(tǒng)來識別術(shù)語和其相應(yīng)的定義。
表1 不同系統(tǒng)在Wikipedia英文數(shù)據(jù)集上的句子分類結(jié)果 Tabel 1 Sentence classification results of different systemson Wikipedia English dataset %
Luis& horacio2014使用一種僅從依賴關(guān)系中提取的句法信息進(jìn)行定義抽取的有監(jiān)督的分類器進(jìn)行分類。SVM實(shí)現(xiàn)僅使用從句法分析器導(dǎo)出的術(shù)語之間的句法依賴性的方法提取定義和上位詞關(guān)系的系統(tǒng)。Si& bin(with lstm)采用LSTM遞歸神經(jīng)網(wǎng)絡(luò)識別句子是否為定義性的。
從表1可以看出,與傳統(tǒng)基于模式的系統(tǒng)相比,本文系統(tǒng)因?yàn)楸苊饬藗鹘y(tǒng)的人工模式歸納的特征工作,所以在精確率、召回率和F1上都有明顯提升。雖然Wcl-1和Wcl-3在精確度上表現(xiàn)較好,但是模式匹配的局限性導(dǎo)致了較低的召回率,從而最終表現(xiàn)較差。與有監(jiān)督的研究方法相比,本文利用自動特征抽取,避免了繁瑣的人力特征工程與人為特征抽取帶來的不足,減少了人為因素的干擾和錯誤傳播以及信息不全等弊端。由于利用BiLSTM神經(jīng)網(wǎng)絡(luò)生成后續(xù)結(jié)構(gòu)的特征輸入,因此本文系統(tǒng)與之相比也有較大的優(yōu)勢。與Si& bin提出的神經(jīng)網(wǎng)絡(luò)模型相比,本文提出的基于BiLSTM的序列標(biāo)注神經(jīng)網(wǎng)絡(luò)模型進(jìn)行定義抽取,在最終的定義抽取F1分?jǐn)?shù)上也有著較大的提升。
表2列出了在中文數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,其中Si& bin是使用LSTM遞歸神經(jīng)完成定義抽取的系統(tǒng)。結(jié)果顯示,本文方法在中文數(shù)據(jù)集上有著很好的效果,具有處理不同語言的能力。
表2 不同系統(tǒng)在中文數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 Tabel 2 Experimental results of different systems onChinese dataset %
2) 不同模型結(jié)構(gòu)對實(shí)驗(yàn)結(jié)果的影響
為證明本文模型的有效性,通過改變模型的結(jié)構(gòu)進(jìn)行對比實(shí)驗(yàn),如表3所示。其中,實(shí)驗(yàn)1為BiLSTM加上未采用decoder的模型,實(shí)驗(yàn)2使用CNN,實(shí)驗(yàn)3為BiLSTM加上CNN的分類模型,實(shí)驗(yàn)4使用LSTM加上decoder。
表3 不同模型對比實(shí)驗(yàn)結(jié)果
Tabel 3 Compare of experimental results of different models%
實(shí)驗(yàn)序號模型精確率召回率F11BiLSTM(no decoder)94.5585.5289.752CNN90.5588.0389.233BiLSTM+CNN92.5991.2991.874LSTM+decoder94.2265.9176.515BiLSTM+decoder(本文系統(tǒng))94.2190.1092.11
定義抽取是信息抽取中一個重要的任務(wù),對于本體生成、術(shù)語抽取等任務(wù)具有較大影響。本文提出基于BiLSTM的序列標(biāo)注神經(jīng)網(wǎng)絡(luò)模型完成定義抽取任務(wù),該模型首先將句子中的詞標(biāo)注為集合{TM,DF,NONE}中的標(biāo)簽,然后使用標(biāo)注結(jié)果將句子分為定義性和非定義性的句子分類。對于定義描述不規(guī)范和句子結(jié)構(gòu)復(fù)雜的定義句,序列標(biāo)注在詞級別上識別句子中的術(shù)語和定義,從而增加分類判斷準(zhǔn)確的機(jī)率,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文模型的有效性。下一步將研究使用弱監(jiān)督或遠(yuǎn)程監(jiān)督的方法自動擴(kuò)大實(shí)驗(yàn)數(shù)據(jù)規(guī)模,從而達(dá)到更好的實(shí)驗(yàn)效果。