劉鑒,張怡,張勇
(華中師范大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢 430079)
隨著大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)規(guī)模不斷增大,信息過(guò)載的問(wèn)題日益嚴(yán)重,因此快速準(zhǔn)確地獲取關(guān)鍵信息有著重大意義。實(shí)體關(guān)系抽取作為文本挖掘和信息抽取[1]的核心任務(wù),其任務(wù)是識(shí)別句子中兩個(gè)命名實(shí)體之間的語(yǔ)義關(guān)系。實(shí)體關(guān)系抽取作為自然語(yǔ)言處理(NLP)的一項(xiàng)基本任務(wù),近年來(lái)對(duì)海量信息處理、中文信息檢索、知識(shí)圖譜、自動(dòng)問(wèn)答、機(jī)器翻譯和自動(dòng)文摘等領(lǐng)域提供了技術(shù)支持。根據(jù)論元個(gè)數(shù)不同,關(guān)系一般可以分為二元關(guān)系和多元關(guān)系,目前主要研究為二元關(guān)系,二元關(guān)系是兩個(gè)實(shí)體之間存在某種語(yǔ)義關(guān)系。兩個(gè)實(shí)體加上關(guān)系,則構(gòu)成一個(gè)三元組[2]。
關(guān)于經(jīng)典的實(shí)體關(guān)系抽取方法主要有四類(lèi),分別是有監(jiān)督、半監(jiān)督、弱監(jiān)督和無(wú)監(jiān)督。傳統(tǒng)的有監(jiān)督實(shí)體關(guān)系抽取主要分為基于特征和基于核函數(shù)的方法。Zhou[3]和郭喜躍[4]等人利用支持向量機(jī)(SVM)作為分類(lèi)器分別研究詞匯、句法和語(yǔ)義特征對(duì)實(shí)體語(yǔ)義關(guān)系抽取的影響,取得了一定的成果。但有監(jiān)督的方法需要手工標(biāo)注大量的訓(xùn)練數(shù)據(jù),要花費(fèi)大量的時(shí)間和精力。因此人們提出了基于半監(jiān)督[5]、弱監(jiān)督和無(wú)監(jiān)督的關(guān)系抽取方法來(lái)解決人工標(biāo)注語(yǔ)料問(wèn)題。其中Brin[6]利用Bootstrapping方法對(duì)命名實(shí)體之間的關(guān)系進(jìn)行抽取。在研究從文本中抽取結(jié)構(gòu)化數(shù)據(jù)、建立生物學(xué)知識(shí)庫(kù)的過(guò)程中,Craven等人[7]首次提出了弱監(jiān)督機(jī)器學(xué)習(xí)思想。Hasegawa等人[8]在ACL會(huì)議上首次提出了一種無(wú)監(jiān)督的命名實(shí)體關(guān)系抽取方法。在這些經(jīng)典的方法中,有監(jiān)督的方法在標(biāo)注語(yǔ)料完善的情況下綜合利用各種特征對(duì)關(guān)系分類(lèi)的模型進(jìn)行改進(jìn),可以獲得較好的效果,但標(biāo)注語(yǔ)料十分耗費(fèi)人力。其他的方法雖然在一定程度上解決了標(biāo)注數(shù)據(jù)的問(wèn)題,但在效果上仍然不太理想。
為在較少人工干預(yù)的條件下得到高性能的關(guān)系抽取模型,基于遠(yuǎn)程監(jiān)督[9]的關(guān)系抽取方法開(kāi)始得到廣泛關(guān)注。該方法假設(shè)“如果兩個(gè)實(shí)體間具有關(guān)系,那么至少有一個(gè)包含該實(shí)體對(duì)的句子描述了這個(gè)關(guān)系[10]”,利用現(xiàn)有知識(shí)庫(kù)中所包含的具有關(guān)系的實(shí)體對(duì),對(duì)文本中包含該實(shí)體對(duì)的句子進(jìn)行回標(biāo),以自動(dòng)獲取大量訓(xùn)練實(shí)例,較好地解決了缺少標(biāo)注訓(xùn)練數(shù)據(jù)的問(wèn)題。然而,由于遠(yuǎn)程監(jiān)督的假設(shè)并不嚴(yán)密,自動(dòng)構(gòu)建的訓(xùn)練語(yǔ)料中存在大量噪聲數(shù)據(jù),對(duì)關(guān)系抽取的效果具有一定的影響。
近年來(lái),隨著深度學(xué)習(xí)中的注意力機(jī)制快速發(fā)展,對(duì)遠(yuǎn)程監(jiān)督數(shù)據(jù)的處理研究工作已經(jīng)被大量提出,并取得顯著的進(jìn)展。Lin[11]等人提出實(shí)例級(jí)的注意力機(jī)制,通過(guò)對(duì)各個(gè)訓(xùn)練實(shí)例的權(quán)重進(jìn)行動(dòng)態(tài)地調(diào)整來(lái)降低噪音,使模型效果得到了顯著提升。Yang[12]等人采用了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)加上詞級(jí)和句級(jí)注意力機(jī)制,用基于詞的注意力機(jī)制來(lái)學(xué)習(xí)模型在各個(gè)詞上的權(quán)重分布,得到更好的面向?qū)嶓w對(duì)的上下文表示。用基于句子的注意力機(jī)制來(lái)學(xué)習(xí)各實(shí)例上的權(quán)重分布,給有效的實(shí)例更高的權(quán)重,給嘈雜的實(shí)例較低的權(quán)重。在紐約時(shí)報(bào)(NYT)數(shù)據(jù)集上取得了很好的效果。這些深度學(xué)習(xí)模型主要解決兩個(gè)問(wèn)題:(1)從實(shí)例中學(xué)習(xí)更好的面向?qū)嶓w對(duì)的上下文表示;(2)從多個(gè)實(shí)例上選擇更好的實(shí)例。
在以往的遠(yuǎn)程監(jiān)督任務(wù)研究中,采用的詞級(jí)注意力機(jī)制都是簡(jiǎn)單的一維向量,一維向量的缺點(diǎn)在于它只關(guān)注一個(gè)句子的某一方面,結(jié)果導(dǎo)致句子的不同語(yǔ)義方面不能被有效利用。
本文提出一種結(jié)構(gòu)化自注意力機(jī)制和雙向LSTM結(jié)合的模型,在詞級(jí)注意力機(jī)制上采用二維矩陣。它包含多個(gè)向量,每個(gè)向量都聚焦于句子的不同方面以便更好地學(xué)習(xí)面向?qū)嶓w對(duì)的上下文表示。而由于遠(yuǎn)程監(jiān)督的單個(gè)實(shí)體對(duì)的實(shí)例數(shù)量不多,所以在句子級(jí)別依然采用傳統(tǒng)的句級(jí)注意力機(jī)制。同時(shí)針對(duì)中文的特點(diǎn),在詞向量表示階段采用結(jié)合HowNet中的義原訓(xùn)練的詞向量資源。利用遠(yuǎn)程監(jiān)督的方法在在線(xiàn)知識(shí)庫(kù),百度百科等資源獲取的中文人物關(guān)系語(yǔ)料庫(kù)進(jìn)行實(shí)驗(yàn)。
目前對(duì)遠(yuǎn)程監(jiān)督數(shù)據(jù)的研究大多集中在對(duì)數(shù)據(jù)進(jìn)行去噪,主要是學(xué)習(xí)一個(gè)句子的表示向量,然后選擇一個(gè)或多個(gè)有效的實(shí)例進(jìn)行關(guān)系分類(lèi)。Zeng[13]等人提出了一種分段卷積神經(jīng)網(wǎng)絡(luò)(PCNN)方法自動(dòng)學(xué)習(xí)句子級(jí)特征,并選擇一個(gè)有效的實(shí)例進(jìn)行關(guān)系分類(lèi)。由于單句選擇策略沒(méi)有充分利用多個(gè)實(shí)例之間的信息,Lin[11]和Ji[14]等人提出實(shí)例級(jí)的注意力機(jī)制,通過(guò)對(duì)各個(gè)訓(xùn)練實(shí)例的權(quán)重進(jìn)行動(dòng)態(tài)的調(diào)整來(lái)降低噪音,使效果得到顯著提升。然而他們的注意機(jī)制只關(guān)注到句子層面,沒(méi)有包含詞匯層面的注意機(jī)制。Zhou[15]提出一種基于Bi-LSTM的詞級(jí)注意力機(jī)制模型,在有監(jiān)督的數(shù)據(jù)集上取得了很好的效果,但這個(gè)模型不是針對(duì)遠(yuǎn)程監(jiān)督數(shù)據(jù)集。Yang[12]等人采用了雙向RNN加上詞級(jí)和句級(jí)注意力機(jī)制模型,在NYT數(shù)據(jù)集上取得了很好的效果。但是詞級(jí)和句級(jí)注意力機(jī)制模型都是一維向量,沒(méi)有關(guān)注句子的多個(gè)方面。
目前關(guān)系抽取技術(shù)主要是針對(duì)英文,對(duì)中文關(guān)系抽取的研究較少,但依舊有一些進(jìn)展。如Li等[16]提出一種基于特征的中文實(shí)體關(guān)系抽取方法, 選取特征時(shí)不僅考慮實(shí)體的特征,上下文特征和單詞列表特征, 還定義了兩個(gè)實(shí)體之間的位置結(jié)構(gòu)特征,以及基于關(guān)系層次和共同參考信息提出的校正和推理機(jī)制。肜博輝等[17]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的實(shí)體關(guān)系抽取模型。該方法采用不同的詞向量來(lái)表示語(yǔ)句, 輸入到模型的不同通道, 使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)提取句子的特征信息, 最后通過(guò)softmax分類(lèi)器得到關(guān)系類(lèi)型。
本文提出一種基于雙向LSTM和結(jié)構(gòu)化自注意力機(jī)制模型,用于中文文本人物關(guān)系抽取,模型圖如圖1所示。首先對(duì)句子進(jìn)行分詞,將結(jié)合義原訓(xùn)練的詞向量輸入到雙向LSTM,提取句子的語(yǔ)義特征,對(duì)句子進(jìn)行編碼。然后利用詞級(jí)結(jié)構(gòu)化的自注意力機(jī)制,獲得面向?qū)嶓w對(duì)的句子表示,再加上句級(jí)注意力機(jī)制,對(duì)各個(gè)訓(xùn)練實(shí)例的權(quán)重進(jìn)行動(dòng)態(tài)的調(diào)整。最后通過(guò)softmax分類(lèi)器輸出關(guān)系類(lèi)型。
本文提出的Bi_LSTM_SATT模型見(jiàn)圖1,其結(jié)構(gòu)主要是:
(1)輸入層:將句子輸入到模型;
(2)向量映射層:將句子的詞語(yǔ)映射成低維向量;
(3)雙向LSTM 層:通過(guò)雙向LSTM獲取句子的語(yǔ)義特征;
(4)自注意力機(jī)制層:分為結(jié)構(gòu)化詞級(jí)注意力機(jī)制和句級(jí)注意力機(jī)制;
(5)輸出層:通過(guò)softmax函數(shù)輸出關(guān)系類(lèi)型。
向量映射層主要是將原始的輸入語(yǔ)句轉(zhuǎn)換為模型需要的向量形式,以便進(jìn)行后面的特征抽取等操作。它主要包括兩個(gè)部分:詞向量表示、位置向量表示。
1.1.1 詞向量表示
相對(duì)于傳統(tǒng)的one-hot編碼,由Mikolov[18]等人提出的分布式詞向量表示方法經(jīng)過(guò)模型訓(xùn)練可以將每個(gè)詞映射成低維的實(shí)數(shù)向量。由于分布式詞向量都包含了豐富的語(yǔ)義信息,在多種自然語(yǔ)言處理任務(wù)中都取得了優(yōu)越的效果。目前大部分任務(wù)都采用分布式詞向量。
由于大量的中文詞都有多種語(yǔ)義,詞向量表示不夠準(zhǔn)確,而義原是詞義的最小語(yǔ)義單位,每個(gè)詞的意義通常由幾個(gè)義原組成。本文采取Niu等人[19]利用Sogou-T語(yǔ)料庫(kù)以及HowNet中詞語(yǔ)包含的義原訓(xùn)練的詞向量。對(duì)于一個(gè)包含t個(gè)詞語(yǔ)的輸入句子s={w1,w2,…,wt},每個(gè)詞語(yǔ)wi都被轉(zhuǎn)換為一個(gè)dw維度的實(shí)數(shù)向量x(wi)。
圖1 Bi_LSTM_SATT模型圖Fig.1 Model diagram
1.1.2 位置向量表示
在關(guān)系抽取任務(wù)中,句子中的詞到命名實(shí)體的距離能夠影響關(guān)系抽取的結(jié)果。采用位置特征來(lái)指定句子中的詞,即當(dāng)前單詞到實(shí)體一和實(shí)體二的相對(duì)距離的組合。舉例來(lái)說(shuō),句子“蔡加贊父親是香港玩具大王蔡志明,其父親身家過(guò)百億,有三個(gè)姐姐,是家中獨(dú)子?!睂?shí)體蔡加贊和實(shí)體蔡志明分別是實(shí)體一和實(shí)體二,詞“父親”到這兩個(gè)實(shí)體的相對(duì)距離分別是1和-5。所以詞語(yǔ)wi到兩個(gè)實(shí)體的相對(duì)距離會(huì)被分別映射轉(zhuǎn)換成dr維度的向量d1,d2。通過(guò)組合得到詞的位置向量pwi=[d1,d2]。
最終我們將詞語(yǔ)表示和位置表示連接起來(lái)作為網(wǎng)絡(luò)的輸入ei=(x(wi),pwi)。
LSTM網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)的變形,最早是由Hochreiter[20]為了克服梯度消失的問(wèn)題提出來(lái)的,其主要思想是引入一種自適應(yīng)門(mén)控機(jī)制,這種門(mén)控機(jī)制控制了LSTM單元保留以前狀態(tài)的程度以及記住當(dāng)前數(shù)據(jù)輸入的提取特征。LSTM神經(jīng)網(wǎng)絡(luò)模型有3個(gè)門(mén):輸入門(mén)、遺忘門(mén)和輸出門(mén)。輸入門(mén)用于控制保留多少當(dāng)前時(shí)刻的輸入信息到當(dāng)前時(shí)刻的單元狀態(tài),遺忘門(mén)用于控制保存多少上一時(shí)刻的單元狀態(tài)到當(dāng)前時(shí)刻的單元狀態(tài);輸出門(mén)用于控制當(dāng)前時(shí)刻的單元狀態(tài)有多少輸出。LSTM網(wǎng)絡(luò)前向傳播的公式見(jiàn)式(1-6)。
g(t)=φ(Wgxx(t)+Wghh(t-1)+bg)
(1)
i(t)=σ(Wixx(t)+Wihh(t-1)+bi)
(2)
f(t)=σ(Wfxx(t)+Wfhh(t-1)+bf)
(3)
o(t)=σ(Woxx(t)+Wohh(t-1)+bo)
(4)
s(t)=g(t)·i(t)+s(t-1)·f(t)
(5)
h(t)=s(t)·o(t)
(6)
對(duì)于大量的序列建模任務(wù)來(lái)說(shuō),同時(shí)訪問(wèn)過(guò)去和未來(lái)的上下文對(duì)于提高模型的準(zhǔn)確率都是有益的。然而,標(biāo)準(zhǔn)的LSTM網(wǎng)絡(luò)按時(shí)間順序處理序列,忽略了未來(lái)的上下文。雙向LSTM網(wǎng)絡(luò)通過(guò)引入第二層LSTM,對(duì)單向LSTM網(wǎng)絡(luò)進(jìn)行擴(kuò)展,其中一個(gè)采取正向?qū)W習(xí),另外一個(gè)采取反向?qū)W習(xí)的方式,最后將正向和反向的輸出向量連接起來(lái)。因此,雙向LSTM能夠充分利用過(guò)去和未來(lái)的信息。
將句子向量輸入到雙向LSTM網(wǎng)絡(luò)后,輸出如式7。
(7)
最近幾年,注意力機(jī)制在深度學(xué)習(xí)的各個(gè)領(lǐng)域取得了成功,無(wú)論是圖像處理、語(yǔ)音識(shí)別、還是自然語(yǔ)言處理的各種任務(wù)。從本質(zhì)上講,深度學(xué)習(xí)中的注意力機(jī)制和人類(lèi)的選擇性注意力類(lèi)似,都是從繁多的信息中選擇出對(duì)當(dāng)前任務(wù)目標(biāo)更重要的信息。各種實(shí)驗(yàn)證明,加入了注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)模型比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確率有了明顯提升。因此在本文中我們將采用注意力機(jī)制。
設(shè)由雙向LSTM網(wǎng)絡(luò)產(chǎn)生的輸出向量H組成矩陣[h1,h2,h3,…,hT],其中T是句子的長(zhǎng)度,每個(gè)單向LSTM的大小為u,那么H的大小為2u。
基于詞級(jí)的自注意力機(jī)制的句子表示由公式(8-9)得到。
M=tanh(ws1H)
(8)
α=softmax(ws2M)
(9)
其中ws1權(quán)重矩陣的大小為da×2u,da是注意力網(wǎng)絡(luò)中神經(jīng)元的數(shù)量。ws2的權(quán)重矩陣大小為r×da,r表示二維注意力矩陣中向量多少的超參數(shù),r的大小是根據(jù)需要關(guān)注句子多少的不同方面來(lái)定義的??紤]到句子的長(zhǎng)度較長(zhǎng),我們這里將其設(shè)置為9。
將不同詞的權(quán)重和Bi_LSTM的隱狀態(tài)H相乘,如公式10所示。
f=αHT
(10)
將f的每一行連接起來(lái)形成一個(gè)扁平的結(jié)構(gòu)化句子表示向量fFT。
最后基于詞級(jí)別的結(jié)構(gòu)化注意力機(jī)制的句子表示如公式11所示:
X=ReLU(wofFT+bo)
(11)
在基于詞的結(jié)構(gòu)化注意力機(jī)制的句子表示上加入基于句子級(jí)別的注意力機(jī)制如公式12所示:
(12)
其中βi是句子級(jí)的注意力機(jī)制的權(quán)重。
(13)
y=argmaxp(Y/S)
(14)
損失函數(shù)采用交叉熵來(lái)計(jì)算模型輸出結(jié)果分布和真實(shí)結(jié)果分布的差距,如公式15所示:
(15)
其中λ是L2正則化參數(shù),ti是用one-hot表示的真實(shí)標(biāo)簽,yi是通過(guò)softmax函數(shù)得到的每個(gè)類(lèi)別的概率。
由于公開(kāi)的中文關(guān)系抽取語(yǔ)料庫(kù)的缺乏,目前還沒(méi)有較為通用且權(quán)威的中文遠(yuǎn)程監(jiān)督關(guān)系抽取數(shù)據(jù)集,本文基于在線(xiàn)知識(shí)庫(kù)復(fù)旦知識(shí)工廠確定實(shí)體對(duì),借助百度百科,互動(dòng)百科等資源,獲得包含實(shí)體對(duì)的句子。將其經(jīng)過(guò)整理,構(gòu)建了人物關(guān)系語(yǔ)料,并將該語(yǔ)料作為實(shí)驗(yàn)數(shù)據(jù),其中共包含12類(lèi)關(guān)系,8 492個(gè)人物的關(guān)系。實(shí)驗(yàn)隨機(jī)選取了人物關(guān)系語(yǔ)料中的16 000個(gè)實(shí)例作為訓(xùn)練集,2 400個(gè)實(shí)例作為驗(yàn)證集,1 200個(gè)實(shí)例作為測(cè)試集。關(guān)系類(lèi)別如下表1所示。
表1 人物關(guān)系類(lèi)別
為了驗(yàn)證加入結(jié)構(gòu)化自注意力機(jī)制的雙向LSTM網(wǎng)絡(luò)模型在中文關(guān)系抽取上的效果,本文設(shè)置了4組實(shí)驗(yàn):CNN_ATT,Bi_LSTM,Bi_LSTM_ATT,Bi_LSTM_SATT,分別是結(jié)合注意力機(jī)制的CNN模型,傳統(tǒng)的雙向LSTM模型,結(jié)合了注意力機(jī)制的雙向LSTM模型以及本文提出的結(jié)合了結(jié)構(gòu)化自注意力機(jī)制的LSTM模型,同時(shí)將F1值作為各個(gè)模型效果的評(píng)價(jià)標(biāo)準(zhǔn)。通過(guò)這幾種模型效果的對(duì)比,來(lái)驗(yàn)證本文提出模型的有效性。
我們將各個(gè)模型在測(cè)試集上的準(zhǔn)確性,召回率和F1值匯總到表2,將實(shí)驗(yàn)的具體參數(shù)匯總到表3中。
表2 實(shí)驗(yàn)的結(jié)果
表3 實(shí)驗(yàn)的參數(shù)
從實(shí)驗(yàn)結(jié)果看,由于注意力機(jī)制能夠使模型關(guān)注到句子更重要的部分,加上注意力機(jī)制的CNN模型比沒(méi)加上注意力機(jī)制的雙向LSTM模型效果要好。但是由于LSTM在處理序列數(shù)據(jù)上的天然優(yōu)勢(shì),加上了注意力機(jī)制的雙向LSTM效果比加上注意力機(jī)制的CNN模型要好。而加上結(jié)構(gòu)化注意力機(jī)制的雙向LSTM由于關(guān)注了句子更多方面,效果優(yōu)于以上這些深度學(xué)習(xí)模型。
本文提出了一種結(jié)構(gòu)化注意力機(jī)制和雙向LSTM網(wǎng)絡(luò)用于中文人物關(guān)系抽取,實(shí)驗(yàn)結(jié)果表明由于關(guān)注了詞和句子的更多方面,結(jié)構(gòu)化的注意力機(jī)制相對(duì)于一般注意力機(jī)制的網(wǎng)絡(luò)模型效果有了明顯提升。