諶予恒王 崢
(1.武漢郵電科學(xué)研究院 武漢 430074)(2.烽火通信科技股份有限公司南京研發(fā)部 南京 210019)
關(guān)系抽取旨在識(shí)別句子中實(shí)體對(duì)的關(guān)系和屬性。例如此句“Barack Obama was born in Honolulu,Hawaii.”關(guān)系抽取器的目標(biāo)就是識(shí)別出其中的關(guān)系“bornInCity”。關(guān)系抽取是構(gòu)建知識(shí)圖譜的關(guān)鍵組成部分,對(duì)語(yǔ)義分析,智能問(wèn)答等自然語(yǔ)言處理任務(wù)也是極其重要的。
在關(guān)系抽取中,一個(gè)主要挑戰(zhàn)就是標(biāo)注樣本的缺失,針對(duì)這個(gè)局限性,Mintz等(2009)[1]提出了遠(yuǎn)程監(jiān)督的思想,遠(yuǎn)程監(jiān)督假設(shè),一個(gè)同時(shí)包含兩個(gè)實(shí)體的句子蘊(yùn)含了該實(shí)體對(duì)在Freebase中的關(guān)系,并將這個(gè)關(guān)系作為該句子的標(biāo)簽。Mintz等在遠(yuǎn)程監(jiān)督標(biāo)注的數(shù)據(jù)上訓(xùn)練了關(guān)系抽取模型,有效解決了關(guān)系抽取的標(biāo)注數(shù)據(jù)規(guī)模問(wèn)題。但它同樣也帶來(lái)了一個(gè)新的問(wèn)題——誤標(biāo)記問(wèn)題。例如,句子“BillGatesofMicrosoft is the richestman?!辈](méi)有表達(dá)關(guān)系“founder”,但在樣本中仍被標(biāo)記為“founder”。近年來(lái),深度學(xué)習(xí)被廣泛應(yīng)用于各個(gè)領(lǐng)域,Zeng等(2015)[2]提出采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行關(guān)系抽取,提出了一種新的網(wǎng)絡(luò)結(jié)構(gòu)PCNN,取得了遠(yuǎn)遠(yuǎn)高于基于特征的關(guān)系抽取模型的識(shí)別效果。次年Lin等(2016)[4]提出了一種新的選擇注意力機(jī)制用于關(guān)系抽取任務(wù),充分利用所有信息句,緩解遠(yuǎn)程監(jiān)督關(guān)系的錯(cuò)誤標(biāo)記問(wèn)題,取得了當(dāng)時(shí)最好的效果。但這種Attention機(jī)制作用于句子級(jí)別,在緩解錯(cuò)誤標(biāo)記問(wèn)題的同時(shí)卻沒(méi)有深入提取句子內(nèi)部的信息。
本文通過(guò)結(jié)合Attention機(jī)制和ResNet結(jié)構(gòu),提出了一種改進(jìn)的CNN網(wǎng)絡(luò)用于進(jìn)行關(guān)系抽取任務(wù)。ResNet充分利用了有效樣本的信息并且通過(guò)Attention減少了噪音數(shù)據(jù)的干擾,在遠(yuǎn)程監(jiān)督的關(guān)系抽取方面取得了較好的結(jié)果。
在這一節(jié)中,我們描述了一種用于遠(yuǎn)程監(jiān)督的關(guān)系抽取的新的深度學(xué)習(xí)網(wǎng)絡(luò)模型。圖1描述了我們的整體網(wǎng)絡(luò)結(jié)構(gòu)。
本文采用的數(shù)據(jù)格式由實(shí)體對(duì)、關(guān)系、句子三部分組成,設(shè)wi為句子的第i個(gè)單詞,e1、e2是相應(yīng)的實(shí)體對(duì)。每一個(gè)單詞將會(huì)經(jīng)由兩個(gè)映射表分別得到Word Embedding WFi和position embedding PFi,拼接這兩個(gè)embedding后得到每個(gè)單詞的詞向量[WFi,PFi],設(shè)為xi。
2.1.1 Word Embeddings
Word Embeddings的目的是將詞轉(zhuǎn)化為分布式表示,從而捕捉詞的句法意義和語(yǔ)義意義。所有的分布式表示包含在一個(gè)映射矩陣中,該映射矩陣可以表示為Xw∈Rdw×|V|,其中dw表示詞向量大小,V表示一個(gè)固定大小的詞匯表。然后wi在經(jīng)過(guò)映射矩陣后可以得到一個(gè)實(shí)值對(duì)WFi。
2.1.2 Position Embeddings
在關(guān)系抽取任務(wù)中,我們的主要目標(biāo)是識(shí)別句子中的實(shí)體對(duì)的關(guān)系,一個(gè)啟發(fā)性的觀點(diǎn)是距離實(shí)體對(duì)越近的單詞越有可能包含了決定實(shí)體對(duì)之間關(guān)系的信息。因此,我們選擇了Ps來(lái)標(biāo)識(shí)句子中當(dāng)前單詞分別距離句子中兩個(gè)實(shí)體e1、e2的相對(duì)位置。例如,在這個(gè)例子中“russia,turkey and india were off about 30 percent?!眴?詞“india”距 離head entity“russia”的相對(duì)位置是P1=3,距離tail entity“turkey”的相對(duì)位置是P2=2。Position Embeddings的映射矩陣Xp∈Rdp×|P|是經(jīng)過(guò)隨機(jī)初始化得到的,其中dp表示位置向量大小,|P|是固定的距離集合。應(yīng)該指出,如果一個(gè)詞離實(shí)體太遠(yuǎn),它可能與關(guān)系無(wú)關(guān)。因此,我們選擇最大值emax和最小值emin作為相對(duì)距離的上限制和下限值。最后我們將P1和P2通過(guò)矩陣映射為位置向量PF1和PF2。圖1假設(shè)詞向量大小dw=4,位置向量大小dp=1,結(jié)合詞向量和兩個(gè)位置向量后,一個(gè)實(shí)例將被映射為一個(gè)矩陣S∈Rs×d,s表示句子長(zhǎng)度,d=dw+dp*2。矩陣S={x1,x2,…,xs}是網(wǎng)絡(luò)的最初輸入。
圖1 用于關(guān)系抽取任務(wù)的ARCNN結(jié)構(gòu)
Attention機(jī)制的思想來(lái)自于人類視覺(jué)注意力機(jī)制,人類視覺(jué)通過(guò)快速掃描全局圖像,獲得需要重點(diǎn)關(guān)注的目標(biāo)區(qū)域,而后對(duì)這一區(qū)域投入更多注意力資源,抑制其他無(wú)用信息,本文設(shè)計(jì)的Attention架構(gòu)也遵循這一思想。關(guān)系抽取任務(wù)的主要目的是獲取與句中實(shí)體對(duì)相應(yīng)的關(guān)系。因此,考慮與句子中實(shí)體對(duì)關(guān)系越近的單詞越有可能包含實(shí)體對(duì)之間的關(guān)系信息,通過(guò)加強(qiáng)對(duì)這些單詞的注意力權(quán)重,抑制其他的無(wú)用信息,使網(wǎng)絡(luò)可以更好地讀取需要的信息。
我們?cè)O(shè)計(jì)的Attention模型具體計(jì)算方式如下,首先將實(shí)體對(duì)與句子中的每個(gè)單詞進(jìn)行相似性計(jì)算得到每個(gè)單詞與實(shí)體對(duì)的相似度作為注意力權(quán)重。
e是實(shí)體對(duì)相應(yīng)的向量表示,然后對(duì)權(quán)重進(jìn)行歸一化處理。
最后將權(quán)重與相應(yīng)的單詞進(jìn)行加權(quán)求和,得到每個(gè)單詞都被添加了與實(shí)體對(duì)相關(guān)信息的輸入句子。
由于在關(guān)系抽取任務(wù)中,卷積被定義為權(quán)向量W∈Rl×d和輸入矩陣S∈Rs×d之間的運(yùn)算,l表示過(guò)濾器窗口長(zhǎng)度,在圖1中假設(shè)長(zhǎng)度為3,即從每三個(gè)單詞中提取一個(gè)新的特征。設(shè)xi:i+j={xi,xi+1,…,xi+j-1},則經(jīng)過(guò)卷積后一個(gè)窗口xi:i+f生成的特征ci如下:
這里b∈R是偏置項(xiàng),f是非線性函數(shù)。過(guò)濾器W將從x1滑動(dòng)至xs產(chǎn)生特征c={c1,c2,…,cdc},dc=s-l+1。
殘差網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo)是殘差F(x)=H(x)-x,這種跳躍式的學(xué)習(xí)結(jié)構(gòu)忽視了中間層直接將低層表示與高層表示相連接,并且極大地緩解了困擾深度網(wǎng)絡(luò)的梯度消失問(wèn)題。在我們?cè)O(shè)計(jì)的模型中,我們使用捷徑連接(shortcut connections)來(lái)構(gòu)建殘差卷積結(jié)構(gòu)。每一個(gè)殘差塊包含兩層卷積,每層卷積層后面緊接著一層非線性層,激活函數(shù)設(shè)置為Re-LU激活函數(shù)。所有的卷積窗口大小都是l×d,在經(jīng)過(guò)padding之后輸出與輸入保持相同的尺寸。第一層層卷積過(guò)后,第i個(gè)窗口輸出結(jié)果如下:
第二層卷積過(guò)后,第i個(gè)窗口輸出結(jié)果如下:
這里的b1和b2是每一層的偏置,b1,b2∈Rdc。殘差塊學(xué)習(xí)的目標(biāo)如下:
整個(gè)ResNet由四個(gè)上述殘差塊組成一個(gè)級(jí)聯(lián)架構(gòu),最終輸出結(jié)果為c,代表提取出的更抽象的關(guān)系信息,c∈Rdc×1。
卷積層和ResNet層的輸出依賴于輸入句子的長(zhǎng)度,為了消除這種影響,我們應(yīng)用了最大池化(Max Pooling)層將ResNet層提取的特征結(jié)合起來(lái),Max Pooling的主要目的是捕捉每個(gè)特征映射中最重要的特征,c′=max(c)合并后可以得到更高層的特征,m表示過(guò)濾器的數(shù)目。為
了計(jì)算每個(gè)關(guān)系的置信度,我們將z輸入一個(gè)全連接的softmax層中:
o是網(wǎng)絡(luò)的最終輸出對(duì)應(yīng)于與所有關(guān)系類型相關(guān)聯(lián)的分?jǐn)?shù),其中分?jǐn)?shù)最大的一項(xiàng)為當(dāng)前句子的關(guān)系,n表示需要識(shí)別的關(guān)系類型數(shù)目,最后為了避免過(guò)擬合我們選擇在輸出層使用dropout:
°是元素乘法操作,r是概率為p的伯努利隨機(jī)變量的向量。在測(cè)試過(guò)程中,學(xué)習(xí)到的權(quán)重向量按p縮放,并用來(lái)評(píng)估實(shí)例(這里不使用dropout)。
在本文中,我們的Word Embedding是使用Skip-gram模型在NYT語(yǔ)料庫(kù)上訓(xùn)練得到的。ARCNN算法使用的Word Embedding的尺寸是50,輸入文本經(jīng)過(guò)padding之后尺寸固定為100。模型采用Tensorflow框架構(gòu)建,選用了自適應(yīng)優(yōu)化算法Adam來(lái)最小化目標(biāo)函數(shù),每批次訓(xùn)練數(shù)據(jù)大小設(shè)為B=64,初始學(xué)習(xí)速率設(shè)為λ=0.001。整體實(shí)驗(yàn)基于TensorFlow 1.7.0。所有的實(shí)驗(yàn)都是在三個(gè)Nvidia GTX 1080(GPU)上進(jìn)行的。在表1我們展示了所有的實(shí)驗(yàn)參數(shù)配置。
表1 實(shí)驗(yàn)參數(shù)
為了評(píng)價(jià)模型效果,我們通過(guò)held-out評(píng)估方法對(duì)以下幾種模型進(jìn)行比較。CNN由Zeng等(2014)[3]提出,包含了一層卷積層和一層全連接層。CNN+ATT添加了注意力機(jī)制的CNN模型,由Lin等(2016)[4]提 出。ResCNN-9由Huang等(2017)提出,在CNN的基礎(chǔ)上添加了4個(gè)殘差塊及兩層全連接層。ARCNN-9則是我們提出的包含注意力機(jī)制的深層CNN模型。
我們?cè)谝粋€(gè)開(kāi)放使用的NYT freebase大型數(shù)據(jù)集上評(píng)估實(shí)驗(yàn)效果。該數(shù)據(jù)集的優(yōu)點(diǎn)在于訓(xùn)練數(shù)據(jù)含有570088個(gè)實(shí)例,測(cè)試數(shù)據(jù)含有172448個(gè)實(shí)例,數(shù)據(jù)格式為(實(shí)體對(duì),關(guān)系,句子)。與Zeng等(2015),Lin等(2016)[2,4]類似,我們采用precision/recall曲線和Precision@N(P@N)來(lái)評(píng)判模型效果。
在圖2中,我們提出的模型ARCNN與其他幾種深度學(xué)習(xí)模型進(jìn)行了比較。首先,深層的網(wǎng)絡(luò)模型確實(shí)取得了相比單層CNN更好的效果,假設(shè)低層,中層和高層網(wǎng)絡(luò)分別學(xué)習(xí)了文本中隱藏的詞法,句法和語(yǔ)義表示,ResNet的shortcut connections結(jié)構(gòu)則跨過(guò)了句法直接將詞法和語(yǔ)義相連接使ResCNN模型可以讀取更關(guān)鍵的信息[5]。其次CNN+ATT模型取得了近似于ResCNN-9的效果,驗(yàn)證了Attention機(jī)制在處理噪音數(shù)據(jù)上的優(yōu)良性能。最后結(jié)果顯示我們結(jié)合ResNet結(jié)構(gòu)與Attention機(jī)制的優(yōu)點(diǎn)提出的新的ARCNN模型的召回率在不丟失精確率的情況下相比ResCNN模型和CNN+ATT模型有較大的提升,獲得了更好的效果。
圖2 ARCNN與不同的CNN模型的比較結(jié)果
表2 多種關(guān)系抽取模型的P@N
在表2中我們使用了Precision@N方法比較了各種模型的性能,當(dāng)N=100時(shí),ARCNN的precision高達(dá)84%,當(dāng)N=300時(shí),precision也不低于70%。相較CNN、ResCNN和CNN+ATT而言,本文提出的ARCNN在所有的測(cè)試設(shè)置中都達(dá)到了更好的性能。
本文介紹了一種用于遠(yuǎn)程監(jiān)督關(guān)系提取的深度學(xué)習(xí)方法。我們證明了:1)更深的卷積模型有助于從文本中提取更關(guān)鍵的信息;2)Attention機(jī)制可以更好地抑制遠(yuǎn)程監(jiān)督數(shù)據(jù)中的噪音影響。
在實(shí)驗(yàn)中評(píng)估了我們的深度學(xué)習(xí)模型ARCNN,相對(duì)于ResCNN和CNN+ATT模型,在關(guān)系抽取任務(wù)中ARCNN模型表現(xiàn)出了更好的性能。