莊傳志,靳小龍,李 忠,孫 智
(1.中國科學院計算技術研究所網絡數(shù)據(jù)科學與技術重點實驗室,北京,100190; 2.中國科學院大學計算機與控制學院,北京 100049)
隨著互聯(lián)網技術的發(fā)展,人們越來越多地使用互聯(lián)網來交流信息,導致網絡中散布著大量無結構的文本知識。如何將這些異質網絡中的信息轉換為結構化知識成為自然語言處理NLP(Natural Language Processing)領域的研究熱點。關系分類(Relation Classification)是其中1個很重要的研究分支,可以應用到信息檢索[1]、問答系統(tǒng)[2]等任務中。
關系分類是指對于特定的句子,對句子中給定的實體對之間的語義關系進行分類。比如,對于句子“The flower are carried into the chapel”,關系分類的任務是判斷實體flower和chapel具有entity-destination關系。
基于機器學習的關系分類方法可以分為基于特征向量的方法、基于核函數(shù)的方法和基于深度學習的方法3類?;谔卣飨蛄康姆椒ê突诤撕瘮?shù)的方法一般稱之為傳統(tǒng)的關系分類方法。與傳統(tǒng)的關系分類方法相比,使用深度學習的方法來構造的關系分類模型可以減少甚至避免傳統(tǒng)關系抽取中的特征工程,同時可以在一定程度上減少NLP工具的使用帶來的錯誤累積。相較于傳統(tǒng)關系抽取方法改進成本巨大,調整模型時需要對代碼進行大量改動而言,深度學習的方法調整模型的結構和參數(shù)的方法較為簡單,具有很強的靈活性和可遷移性。
本文提出一種用于關系分類的深度學習模型Att-Comb,該模型沒有使用任何其他的詞典資源或者NLP工具。首先將每個句子中的每個單詞映射到1個低維向量表示;然后使用雙向長短時記憶BLSTM(Bidirectional Long Short-Term Me-mory)網絡來捕捉句子序列中的長程依賴和時序信息;同時,使用卷積神經網絡CNN(Convolutional Neural Network)來捕捉句子中每個單詞的局部特征。本文最后使用注意力(Attention)機制來關注句子中最有利于關系分類的部分。本文我們在SemEval-2000數(shù)據(jù)集上驗證了該方法的有效性。
關系分類任務的重點在于對關系實例進行表示,并對其進行分類。
基于特征向量的方法主要依賴設計與關系分類相關的有效特征,并將這些特征轉化為特征向量來獲取句子的表示,隨后通過單一分類器或者多個分類器的組合來計算2個關系實例之間的相似性。Kambhatla[3]使用實體上下文、依存關系、句法樹在內的多個層次的語言學特征實現(xiàn)了1個最大熵模型。Zhou 等人[4]在文獻[3]實驗的基礎上,增加了基本詞組塊特征,并使用了WordNet等額外資源,采用支持向量機SVM(Support Vector Machine)作為分類器,其實驗結果顯示了實體類別特征在關系分類任務中的重要性。Jiang等人[5]將序列、句法和依存關系劃分為不同的子空間,并驗證了其有效性。Rink等人[6]使用支持向量機SVM構造多個二類分類器,同時設計了詞性標注、WordNet、FrameNet、依存關系、n-gram特征、單詞前綴等10余種類型的特征進行分類。該方法基本上覆蓋了現(xiàn)有的語言學特征,取得了較好的分類效果。
基于核函數(shù)的方法不需要顯性構造相關特征空間,將關系實例表示成特定的形式,比如以文本序列或者句法樹作為輸入,然后通過設計特定的核函數(shù)來計算實例之間的相似度。常用的核函數(shù)有子序列核、卷積樹核和依存樹核。Mooney等人[7]考慮句子中每個單詞本身、單詞的詞性POS(Part-Of-Speech)標記、泛化的POS標記和實體類型等特征,對每個關系實例構造5個特定的子序列核函數(shù),并通過對核函數(shù)的結果求和來表示2個實例之間的相似程度。Culotta等人[8]利用依存句法樹表示關系實例,設計基于依存句法樹的核函數(shù),并通過添加POS標記、實體類型等特征,對相似度加以嚴格的匹配約束,使得關系分類準確性提升。Zhang等人[9]利用實體對最短路徑樹,綜合考慮語義關系不同層面特征和謂語上下文信息,設計了卷積樹核函數(shù),有效地提升了關系性能。
基于特征向量的方法需要人工設計大量特征來表示句子實例和用于句子實例之間相似性判斷,最終選擇哪些特征往往通過啟發(fā)式實驗得出,工作量較大?;诤撕瘮?shù)的方法的重點在于設計核函數(shù)來比較句子實例之間的相似性,而核函數(shù)的設計需要較多技巧。同時,傳統(tǒng)的關系分類方法多使用許多傳統(tǒng)NLP工具,比如POS標記、最短依存路徑以及命名實體識別等來抽取高階特征。這些工具容易帶來較高的計算代價和誤差傳遞,而且在不同數(shù)據(jù)集上的遷移性較差。
為此,研究人員探索使用深度學習方法來進行關系分類。將深度學習用于關系分類時,重點在于通過采取不同神經網絡并結合語言學相關知識來進行模型設計。通過使用神經網絡來抽取句子的特征表示并直接進行分類可以減少大量特征工程。
Zeng等人[10]使用CNN模型來著重抽取句子的特征表示。該方法直接將句子作為輸入,并引入位置特征,通過窗口操作和卷積層來抽取句子的上下文信息,隨后采取最大池操作獲取句子最有效的特征表示,最后結合實例的部分詞匯特征,如實體上下文信息、WordNet超詞等信息來進行關系分類。Zhang等人[11]使用BLSTM模型抽取句子雙向的隱狀態(tài)輸出,并通過組合詞匯特征和句子級別的2類特征來豐富句子的特征表示以進行關系分類。Zhou等人[12]在文獻[8]的基礎上,結合注意力機制提出了Att-BiLSTM模型。該模型使用雙向LSTM網絡來獲取句子中每個單詞對應的隱狀態(tài)輸出,使用注意力機制來抽取關鍵詞特征信息,賦予句子中對關系分類影響重要的單詞以重要的權重,以得到句子最終表示。Zhang等人[13]綜合上述模型的特點,提出了RCNN模型,使用基于Attention的BLSTM網絡來抽取長距離特征和關鍵詞信息,然后將模型輸出送入1個CNN模型,并最終用來進行關系分類。
上述方法未使用其他自然語言處理工具,也未使用特征工程來人工構造特征,屬于端到端的方法,本文提到的模型也屬于此類方法。
自然語言處理領域中,深度學習工作的重點在于設計合適的網絡來抽取句子的特征,不同的網絡具有的功能是不相同的。直觀上來講,對于特定的句子序列中的每個單詞,從不同的角度對其進行觀察可以得到該單詞更全面的結果。因此,本文提出Att-Comb模型,通過結合不同網絡的特點來對單詞的特征進行抽取,進而抽取出整個句子的向量表示。具體地,Att-Comb模型通過CNN模型捕獲單詞的n-gram特征,通過LSTM網絡得到單詞融合句子時序信息的特征,并采用Attention機制關注不同時刻單詞的重要程度。
本節(jié)主要介紹Att-Comb模型的組成,如圖1所示,該模型包含如下部分:
Figure 1 Model of the attention based hybrid neural network for relation classification圖1 基于注意力的混合神經網絡關系分類方法模型
(1)預處理和詞嵌入層:將數(shù)據(jù)集中給定的句子S中的所有單詞經過處理轉化成特征向量表示,作為神經網絡的輸入x。
(2)窗口處理和卷積操作層:將網絡輸入處理成特定的格式,并使用卷積操作抽取特定單詞的上下文信息,得到每個單詞位置相對應的卷積輸出向量c。
(3)雙向LSTM層:將預處理和詞嵌入層的輸出分別放入前向和后向LSTM中,將每個單詞對應位置的隱層輸出相加作為雙向LSTM層的輸出h。
(4)Attention層:將卷積層和雙向LSTM層的輸出相連接得到的H作為Attention層的輸入,計算每個單詞的權重α,并求得整個句子的特征表示。
(5)分類層:將Attention層得到的結果與標記實體的嵌入表示進行組接,作為該關系實例的最終表示,并將其投入到1個單隱層的多層感知機和Softmax分類器中。
本層首先去掉句子中不常見的符號,并將各類縮寫處理成對應的全稱形式,如“it’s”處理成“it is”“can’t”處理成“can not”“’ll處理成will”。為了更好地進行句子表示,我們將標點符號與單詞之間加入了空格,并對常用的縮寫形式進行了歸一化,比如”e g ”歸整成“eg”。同時保留實體標記符號,即數(shù)據(jù)集中實體前后的“〈e1〉〈e1〉〈e2〉〈e2〉”標記。
嵌入表示的主要目的是將預處理得到的句子以向量的形式表示,每1列對應1個單詞,經過處理的文本中可能出現(xiàn)的各類符號也看作1個單詞。嵌入層將文本轉化為計算機能夠處理的數(shù)字向量形式,便于之后的網絡提取特征。對每1個單詞,我們僅使用了2種映射方法:單詞的嵌入表示和位置的嵌入表示。
3.1.1 單詞嵌入
單詞嵌入的目的是將單詞轉化為低維向量表示,該方法能夠捕捉單詞之間的語義信息,并使得語義相似的單詞具有相近的向量表示。Collobert等人[14]認為,使用從大規(guī)模語料中學習到的詞向量表示要比隨機初始化效果好得多。因此,本文首先使用了Pennington等人[15]預訓練得到的單詞初始嵌入表示,并在隨后的模型訓練過程中對其進行調整。
3.1.2 位置嵌入
位置嵌入的目的是將詞匯表中每個單詞相對于實體的位置進行編碼。最早由Zeng等人[10]將句子中相對于實體的位置特征引入關系分類中。由于句子中有2個實體,因此本文定義了2個位置嵌入。這2個位置嵌入假設每個實體的位置是固定的值,然后將句子中其他的單詞相對于實體的位置進行編碼。比如,對于句子“The〈e1〉flower 〈e1/〉 are carried into the 〈e2〉chapel〈/e2〉?!保僭O實體“flower”的位置和“chapel“的位置分別是0,那么就得到同1個句子關于2個實體的位置編碼(-2,-1,0,1,2,3,4,5,6,7,8)和(-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1)。隨后將這些數(shù)字映射到低維向量表示,這些向量表示有效地融合了句子語義信息和位置信息。
近年來,卷積神經網絡在圖像分類領域發(fā)揮了重要作用,其主要是基于局部感受野[16]的思想,可以有效減少全連接網絡存在的參數(shù)量較大的問題,并被廣泛應用于自然語言處理領域。
窗口和卷積操作可以在避免傳統(tǒng)方法人工提取大量特征的情況下,提取出句子的詞匯特征等信息。窗口操作的功能是收集句子的局部特征,其基本思想是單詞本身及上下文窗口為l的句子可以整合成為1個句子更豐富的表示。在句首或者句尾,由于窗口有可能超出句子的界限,需要進行“補零”操作,也就是把超出范圍的輸入向量設置為0。
例如,對于句子S:[People]0have1been2moving3back4into5[downtown]6,令xi表示第i個單詞的嵌入表示,那么句子可以被表示成{x0,x1,x2,x3,x4,x5,x6},通過1個寬度為3的窗口操作可以將句子中的每1個單詞對應1個上下文為3的更豐富的特征表示,{[xs,x0,x1], [x0,x1,x2],[x1,x2,x3],[x2,x3,x4],[x3,x4,x5],[x4,x5,x6],[x5,x6,xe]},其中xs和xe分別對應句子的開始向量和結束向量。隨后對于特定的窗口操作得到的句子,使用對應窗口大小的卷積核進行卷積操作。在位置i,采取如式(1)的方法處理:
(1)
其中,w表示卷積窗口大小為k的卷積核對應的權重,b為對應的偏差項,mi表示在句中第i個位置使用窗口大小為l的卷積核進行卷積得到的結果,對于特定的k,這里f是1個非線性函數(shù)。將每1個卷積核得到的所有特征連接起來就得到了該位置特征Mi,如式(2)所示:
Mi=[mi1,mi2,…,mil]
(2)
其中l(wèi)表示窗口的大小。同時,定義每1個窗口卷積核的數(shù)量為d,因此在位置i處,最終的輸出特征xi-conv的維度為d*l。
LSTM是由Hochreiter等人[17]提出的,該網絡通過各類門機制來“記住”或“忘記”相關信息,以解決循環(huán)神經網絡中出現(xiàn)的梯度消失或者梯度爆炸問題。由于句子中單詞與單詞出現(xiàn)的順序是相關的,通常把句子看作是1個有序的單詞序列,因此可以使用LSTM網絡來抽取其特征。
每1個LSTM單元由1個內存單元和輸入門、遺忘門、輸出門共同組成,這些特定的結構使得LSTM可以選擇記住或者遺忘哪些信息。若時刻t的輸入向量為xt,前一時刻的輸出為ht-1,前一時刻的隱層狀態(tài)為ct-1,則當前時刻的狀態(tài)ct,隱狀態(tài)輸出ht,LSTM單元內部按式(3)~式(8)計算更新:
it=σ(Wxixt+Whiht-1+bi)
(3)
ft=σ(Wxfxt+Whfht-1+bc)
(4)
gt=tanh(Wxcxt+Whcht-1+bc)
(5)
ct=it·gt+ft·ct-1
(6)
ot=σ(Wxoxt+Whoht-1+bc)
(7)
ht=ot·tanh(ct)
(8)
其中,σ表示Sigmoid觸發(fā)函數(shù),·表示按位點乘操作。it,ft,ct,ot分別表示輸入門、遺忘門、內存單元狀態(tài)和輸出門的結果,Wxi,Wxf,Wxc,Wxo分別表示不同門控制變量對應的權重矩陣,Whi,Wxf,Wxc,Wxo為隱狀態(tài)輸出ht對應的權重矩陣,bi,bf,bc,bo分別對應偏差項。
多數(shù)情況下,自然語言中的反向單詞序列也有可能包含有序的信息。由于LSTM只能保留“過去”的信息,即只能正向提取句子中的相關語法和語義信息,Graves等人[18]提出雙向LSTM,該網絡分別通過從前往后和從后往前地操作2個LSTM,能夠同時訪問“過去”的信息和“未來”的信息,得到更豐富、更深入的句子信息,對于關系分類任務非常有益。
雙向LSTM層是由前向和后向LSTM網絡組成的,網絡中的任一時刻t,既可以通過逆向LSTM從后往前捕捉輸入序列中該時刻之后的序列中包含的信息,也可以通過正向LSTM捕獲輸入序列中該時刻之前的信息,同時也可以通過門機制捕獲單詞之間長程依賴的特征捕捉,前向RNN和后向RNN同時訓練,這2個RNN之間沒有共享向量。
最后將前向和后向的特征采取按位加和操作,如式(9)所示:
(9)
因此,在時刻i,最終的輸出特征xi-BLSTM的維度為p,p為LSTM中隱層神經元的個數(shù)。
注意力機制的目的是讓模型在訓練過程中學習模型中輸入的哪一個部分是重要的,因此,模型可以對這些信息以更大的注意力。這里,我們首先從CNN層和LSTM層分別獲得不同維度的輸出,將其組接得到1個矩陣H,如式(10)所示:
H=[x1-comb,x2-comb,x3-comb,…,xT-comb]
(10)
其中,T為輸入句子的長度,xi-comb表示將CNN層的輸出xi-conv與BLSTM層的輸出xi-BLSTM進行組接,維度dcomb=d*l+p,那么句子的最終向量表示r通過式(11)~式(13)進行計算更新:
M=tanh(H)
(11)
α=Softmax(wTM)
(12)
r=HαT
(13)
其中,w,α,r的維度分別為dcomb,T,dcomb。
分類層由1個單隱層的感知機組成。感知機的輸入是Attention層的輸出以及2個實體向量的詞嵌入之間的連接。對于任意給定的句子,最終使用Softmax分類器來進行分類,其計算過程如式(14)~式(17)所示:
h*=[tanh(r);xe1;xe2]
(14)
mid=fr(W(r)h*+br)
(15)
p(y-|S)=Softmax(W(S)mid+b(S))
(16)
y=arg maxp(y-|S)
(17)
其中,y為模型的預測結果,fr為非線性激活函數(shù),這里設置為ReLU函數(shù)。代價函數(shù)為句子的真實關系標記y-與預測結果y之間的交叉熵損失函數(shù),m為樣本的個數(shù)。一般認為,正則化方法能夠防止過擬合以增強泛化能力,為此在交叉熵損失函數(shù)的基礎上增加了參數(shù)的正則信息,如式(18)所示:
(18)
為了評價本文提出的組合模型,選擇近年來被廣泛使用的SemEval-2010Task8關系分類數(shù)據(jù)集[19]進行實驗。這個數(shù)據(jù)集包含了10種關系,分別是Cause-Effect,Component-Whole,Content-Container,Entity-Destination,Entity-Origin,Instrument-Agency,Member-Collection,Message-Topic,Product-Producer,other類。other類意味著2個實體之間不存在上述關系,除了other類以外,其他9類都是有方向的。比如:Cause-Effect(e1,e2)和Cause-Effect(e2,e1)是2個不同的類別。
該數(shù)據(jù)集包含10 717個標記樣本,包含8 000個訓練樣本,2 717個測試樣本,每1個句子中包含2個標記實體以及他們之間的關系。在實驗中,我們隨機采取10%的訓練數(shù)據(jù)作為驗證集來選取最優(yōu)的參數(shù),并采用官方的評價指標macro-F1值來評價方法的好壞,計算方式如式(19)~式(21)所示:
precision=Ncorrect/Npredicted
(19)
recall=Ncorrect/Ntarget
(20)
(21)
其中,Ncorrect表示正確識別出關系類別j的樣本數(shù)量,Npredicted表示預測結果中識別為特定的關系類別j的數(shù)量,Ntarget表示數(shù)據(jù)集中該類別的樣本數(shù)量。我們在每1個關系類別上分別計算精確度和召回率,然后使用平均macro-F1值對模型進行評價。
深度學習由于其自身特點,模型中的參數(shù)都比較多,為了更好地解決這個問題,本文引入了Dropout技術。Dropout最早是由Srivastava等人[20]提出的,通過隨機忽略掉神經網絡中的部分變量,使用更少的獨立網絡節(jié)點來達到更好的效果。Dropout層將特定的輸入向量中的每個元素以一定的概率置零。本文分別在嵌入層、卷積層、LSTM層、Attention層以及分類層的組接部添加Dropout層,概率分別為0.3,0.4,0.4,0.5,0.5。其他參數(shù)設置如表1所示。
Table 1 Hyper parameters表1 超參數(shù)設計
本文方法的實驗結果與使用了多特征的傳統(tǒng)的關系分類方法以及僅使用詞嵌入或少量外部特征作為輸入的端到端的方法進行了對比,結果如表2所示。從表2可以發(fā)現(xiàn):
(1)端到端的關系分類方法僅僅使用BLSTM[11]以及Att-BLSTM[12]模型即可達到甚至優(yōu)于通過構造所有可能特征的傳統(tǒng)關系分類方法相近的結果。
(2)本文模型的F1-值為83.2%,在未使用其他NLP工具及詞典資源的情況下優(yōu)于其他僅使用單個網絡或者Attention機制的模型。
(3)相比較于RCNN模型先采用Att-BLTM模型學習再進行CNN模型學習而言,通過不同網絡進行特征抽取再進行Attention操作,可以在一定程度上提升F1值。
Table 2 Comparison of relation classification methods表2 關系分類方法對比
本文提出了一種混合CNN和BLSTM的端到端的關系分類方法。該方法分別繼承了各自網絡的特點,既能使用CNN抽取句子的局部特征,也能通過BLSTM來獲取句子的長程依賴等全局特征,同時也考慮了每個單詞的語義對關系的影響。SemEval-2010關系分類數(shù)據(jù)集上的實驗結果表明了該方法的有效性。