李雅欣 王佳英,2 單 菁,2 邵明陽
(1.沈陽建筑大學信息與控制工程學院 沈陽 110168)(2.沈陽工業(yè)大學軟件學院 沈陽 110023)
實體關系抽取是構(gòu)建知識圖譜的關鍵組成部分,已經(jīng)廣泛應用于智能問答、檢索等自然語言處理任務[1]。作為信息抽取技術的核心任務之一,其目標是從非結(jié)構(gòu)化的文本內(nèi)容中提取語句中兩個實體之間產(chǎn)生的語義關系,即給定一個純文本,實體關系抽取的主要目標是找出句子中包含的兩個實體及它們之間存在關系類別。
隨著深度學習技術的飛速發(fā)展,相比于傳統(tǒng)方法,深度學習在實體關系抽取任務中取得了更好的綜合效果。而深度練習方法的局限,就是必須通過大量的標注數(shù)據(jù)集來訓練模型才能取得更好的訓練效果,而數(shù)據(jù)的標記非常昂貴且費時,所以如何獲取大量的標記數(shù)據(jù)集一度成為了國內(nèi)外學者的研究阻礙[2]。直到Mintz等提出了遠程監(jiān)督[3],其作用是通過把現(xiàn)有的知識庫映射到更大量的非結(jié)構(gòu)化數(shù)據(jù)中,其一般流程如圖1所示。
圖1 遠程監(jiān)督數(shù)據(jù)
由圖1可以看出,遠程監(jiān)督獲取大規(guī)模標注數(shù)據(jù)的方法是利用文檔和知識庫(KB)對齊,來提取具有特定關系的實體對。在圖1中“Bill Gates”和“Microsoft”在知識庫中的關聯(lián)為“Founder”,那么就假定相似于“Bill Gates,founder of Microsoft。”的語句都具有“founder關聯(lián)”。由此就可利用將海量文本與KB對齊,來得到大量的自動標注數(shù)據(jù)集。但是并非所有含“Bill Gates”和“Microsoft”的句子都表達出了兩個實體的“Founder”關系,由此可知,遠程監(jiān)督是一個強假設問題,這種方式雖然避免了繁雜的特征工程,同時也不可避免地產(chǎn)生大量噪聲數(shù)據(jù),即錯誤標簽問題,從而降低了關系抽取的性能。
為了減少遠程監(jiān)督帶來的錯誤標簽問題,Zeng等在遠程監(jiān)督抽取任務上提出了基于分段卷積的神經(jīng)網(wǎng)絡模型—PCNN,該模型基于卷積神經(jīng)網(wǎng)絡—CNN改進,通過添加實體對的位置特征將模型中的句子分割成三段來實現(xiàn)池化操作,以便更好地捕捉實體間的語義特征,并提出用多實例學習來選擇最有效的句子,多實例學習將包含同一實體對的所有實例組成一個包,每個包對應一個最有效的實例[4]。Lin等[5]和Ji等[6]在PCNN的基礎上運用注意力機制(Attention,ATT),通過注意力機制從每個包里選擇多個有效實例,來緩解遠程監(jiān)督數(shù)據(jù)集產(chǎn)生的錯誤標簽問題。Zhou等基于RNN模型進行改進,引入雙向循環(huán)神經(jīng)網(wǎng)絡—BLSTM模型用作句子編碼器,并添加了詞級別的注意力機制來進行權重學習[7]。但這些深度學習模型都只采用了一層神經(jīng)網(wǎng)絡,即淺層神經(jīng)網(wǎng)絡作為句子編碼器。Huang等首先提出利用基于CNN的九層深度殘差網(wǎng)絡模型—ResCNN-9來訓練遠程監(jiān)督關系抽取任務[8]。但是對于9層深的網(wǎng)絡,并非每一層都有用。因為各個通道之間傳遞的信息本就存在不可避免優(yōu)劣勢,故不斷增加網(wǎng)絡深度一定程度上導致沉余的特征也在不斷疊加,所以這種深層網(wǎng)絡的性能提升相比于淺層網(wǎng)絡并不太大。
為證實合適深度的深層神經(jīng)網(wǎng)絡在遠程監(jiān)督關系抽取任務上可以得到更好的表現(xiàn),我們提出了一個融合注意力機制的密集連接卷積神經(jīng)網(wǎng)絡—DenseCNN-ATT,進行遠程監(jiān)督關系抽取任務。密集連接卷積神經(jīng)網(wǎng)絡—DenseCNN是一種新型的深層卷積神經(jīng)網(wǎng)絡架構(gòu)[9],由Huang等首次使用,其在圖像分類任務中達到了良好的性能[10]。該網(wǎng)絡采用建立在各個層次間的連接關系,來最大程度地提升網(wǎng)絡中層與層之間特征傳遞的效果。首先,在DenseCNN網(wǎng)絡的文本向量表示層采用了word2vec的詞嵌入模型得到詞向量表征[11],作為模型的輸入;為了更好地表示句子的全局特征矩陣,我們將最大池化的結(jié)果融合注意力權重參數(shù)[12],通過強調(diào)句子權重,進而減少噪聲句子來提高遠程監(jiān)督關系抽取的性能。我們通過在NYT-Freebase數(shù)據(jù)集[13],將相關模型進行對比實驗,來驗證模型的有效性。本文的主要貢獻有如下三點。
1)提出一種融合注意力池化機制的5層深度的DenseCNN網(wǎng)絡的密集連接模塊—DenseCNNATT模型,來提高遠程監(jiān)督關系抽取任務的性能;
2)設計了一個五層的密集連接模塊,利用多個特征通道來組合不同層次的特征,從而提高了特征傳遞和復用,并降低了梯度消失現(xiàn)象;
3)為了最大程度地降低遠程監(jiān)督帶來的噪聲問題,將最大池化的結(jié)果融合注意力權重參數(shù),通過強調(diào)句子權重,進一步提高關系抽取的性能。
實體關系抽取作為信息文本抽取的重要任務之一,其目標是在實體的基礎上,從非結(jié)構(gòu)化文本內(nèi)容中抽取出預先定義的實體關系。
實體的關系被定義為多個關系三元組構(gòu)成的集 合ER={(e1,r1,e2),( e3,r2,e4),…,( e2n-1,rn,e2n)},對于關系元組( e1,r1,e2),其中ei∈E{e1,e2,…,e2n}代表實體,ri∈R{r1,r2,…,rn}代表實體之間的關系。
本文研究的問題是實體關系抽取,即給定一個文檔D={s1,s2,…,sn}和一個實體集合E,其中si表示的是該文檔中位置i的句子,該實體抽取的目標是返回所有滿足某個實體關系( ei,rj,ek)∈ER的句子,并給出標注實體和關系在句子中出現(xiàn)的位置。
本節(jié)將具體介紹我們提出的DenseCNN-ATT模型,其網(wǎng)絡架構(gòu)如圖2所示。為了更好地降低遠程監(jiān)督帶來的噪聲數(shù)據(jù)影響,我們采用了5層的密集卷積模塊,并融合了注意力池化機制,來最大程度的提升模型的性能。DenseCNN-ATT的模型架構(gòu)主要包括以下三部分。
圖2 DenseCNN-ATT模型框架圖
1)詞向量表示層,即模型的輸入部分;
2)密集連接卷積層,即句子編碼部分;
3)注意力池化和softmax輸出部分。
在神經(jīng)網(wǎng)絡模型中,模型的輸入通常需要把單詞標記轉(zhuǎn)換成低維向量。在我們的方法中,除了通過查找預先訓練的單詞嵌入,標記每個輸入的單詞,并轉(zhuǎn)換成一維向量,還引入了位置特征來指定實體對,這些實體對通過查找位置嵌入來轉(zhuǎn)換成向量。
3.1.1 單詞嵌入
單詞嵌入是把句子si={ }w1,w2,w3,…,wn中的每一個單詞映射為低維實值向量,這個向量會包含了這個詞的所有信息。詞嵌入模型能夠反映出詞匯間的關聯(lián),進而使得后續(xù)的特征提取更為合理[11]。本文把詞向量定義為xw,本文采用word2vec的Skip-gram詞嵌入模型[14]進行預處理,來更高效更準確地去捕捉單詞的語義和句法信息。
3.1.2 位置嵌入
為了增強關系抽取的有效性,我們引入了位置向量表示。通過把每個詞到每個實體的相對距離映射到低緯位置向量,再將所得特征拼接到該詞向量中,來更加準確地表示句子特征[15]。
定義句子si={w1,w2,w3,…,wn},通過將詞wi到實體e1和e2的相對距離映射為低維向量,得出位置向量xp1和xp2,其中xp∈Rdp×l,其中dp表示位置向量的維度,l表示距離大小,將位置向量xp1和xp2拼接到該詞向量中,得到詞wi的詞向量表示:Xi=[ xw,xp1,xp2],其中Xi∈Rd,d=dw+dp×2,dw為詞向量維度。我們把拼接好的詞向量矩陣Xi作為整個模型的輸入,隨后將被輸入到卷積層。
3.2.1 卷積層
卷積層可以看作是權重矩陣W和模型的輸入向量X之間的運算,以滑動窗口形式捕獲局部特征,然后進行全局關系預測。其中W被視為卷積中的濾波器,我們定義濾波器(滑動窗口)的長度為l,輸入的詞向量表示維度為d,xi:j表示為xi到xj拼接向量。通過濾器Wi∈Rl×d可以捕捉到連續(xù)l個詞的特征,則第i個連續(xù)l個詞的向量表示xj-l+1:j通過卷積得到的特征矩陣Ci表示如下:
其中,b∈R表示偏移項,f表示非線性函數(shù),其包括采用的歸一化處理函數(shù)BN[16]、ReLU激活函數(shù)[17]。詞向量表示矩陣X在經(jīng)過卷積后,此時特征向量表示為Ci=[cx1,cx2,cx3,…,cn],其中ci∈Rn。
3.2.2 密集連接網(wǎng)絡
在關系抽取任務中,為更多地使用句子語義數(shù)據(jù)信息捕獲更豐富的語義表達特征,我們采用密集連接網(wǎng)絡來實現(xiàn)特征學習,其網(wǎng)絡結(jié)構(gòu)如圖2中“Dense-CNN Block”模塊。從圖3中可以看出,密集連接模塊的輸入為si的句子向量化表示Xi=[x1,x2,…,xn],通過式(1)中的卷積操作可以得出,第一層的特征C0應表示為
接著,我們通過密集連接模塊的特征映射,將c0的輸出作為之后所有層的輸入,如圖3所示,當?shù)?層卷積的輸入為c0時,輸出的特征c1表示為
圖3 密集連接模塊
最終,我們的密集連接卷積層的輸出表示為
其中,Cout為句子的特征向量表示。
池化的目的是在保持主要特征的同時,減少參數(shù)量和運算量。最常見的池化方式主要為兩種:平均池化和最大池化,在通過密集連接卷積神經(jīng)網(wǎng)絡獲取到特征之后,在本文中對輸出的特征Cout進行最大池化表示:
在遠程監(jiān)督關系抽取任務中,對于不可避免產(chǎn)生的噪聲數(shù)據(jù),本文采用句子級注意機制去強調(diào)噪聲數(shù)據(jù)。通過將網(wǎng)絡的最大池化結(jié)果融合注意力權重矩陣得到所有句子的注意力特征向量,從而有效的選擇正確實例和噪聲句子,進一步緩解了句子層面的錯誤標簽問題。我們將注意力權重參數(shù)定義為ai:
其中,A是加權矩陣,ri是與實體關系r相關的查詢向量,νi是查詢函數(shù),目的是對最大池化后的輸入矩陣xpooled和預測關系r的匹配程度進行評分,得到關系特征矩陣M。
經(jīng)過上一節(jié)我們得到最終的關系特征矩陣M,通過softmax層[18]來定義輸出關系上的條件概率p,并使用dropout來防止過擬合[19],表示如下:
其中nr代表關系總數(shù),o是相對應關系類型的得分表示,d∈Rnr是偏差向量。我們可以通過交叉熵代價函數(shù)[20],定義目標函數(shù)如下:
在本文中我們采用隨機梯度下降法來優(yōu)化目標函數(shù),其S表示訓練樣本的集合,θ為模型中的可訓練參數(shù)。
在本節(jié)中,我們主要介紹數(shù)據(jù)集和模型的評估指標,接著通過一系列對比實驗來證明我們模型的有效性,實驗結(jié)果顯示,我們提出的DneseCNNATT是一種有效的語義特征提取方法。本文的實驗環(huán)境為python3.7.0,深度學習框架為pytorch 1.6.0版本。
為了驗證DneseCNN-ATT模型的效果,我們在被廣泛使用的NYT-Freebase數(shù)據(jù)集上來評估我們的模型。該數(shù)據(jù)集在2010年被Riedel首次提出,是將Freebase中的關系和NYT語料庫對齊得到,是遠程監(jiān)督關系抽取任務中的典型數(shù)據(jù)集之一。其中的訓練數(shù)據(jù)為522611個語句、18252個關系事實、281270個實體對;測試數(shù)據(jù)集為172448個語句、1950個關系事實、96678個實體對。其中,有來自Freebase的39528個實體對、53類關系,包含52類通用關系、1類特殊關系NA,即噪聲數(shù)據(jù)[13]。
本文主要通過準確率-召回(P-R)曲線和平均準確率Precision@N(P@N)值等多種指標來評估模型的綜合性能,與對比模型所采用的模型評估方式相同。
在本文中,我們使用word2vec的Skip-gram模型,通過在NYT語料庫上訓練,獲得需要嵌入的詞向量。設置輸入的文本填充大小為120,詞向量維度為200?;趯σ酝倪h程監(jiān)督關系抽取任務的研究,我們的實驗中所采用的超參數(shù)設置如表1所示。
表1 參數(shù)設置表
為了驗證DenseCNN-ATT模型在遠程監(jiān)督關系抽取上的性能,我們進行了以下三組對比實驗。
4.3.1 注意力對模型的影響
本文為了提高關系抽取的效果,提出了融合注意力池化機制的DenseCNN-ATT模型。為了驗證DenseCNN網(wǎng)絡融合注意力機制的有效性,本文在各參數(shù)設置一致的情況下,對DenseCNN模型和我們的模型進行對比,對比實驗的P-R曲線如圖4所示。
圖4實驗表明,融合了注意力池化機制的模型—DenseCNN-ATT,在遠程監(jiān)督關系抽取任務上取得了更好的成績。
圖4 注意力對模型性能的影響
4.3.2 對比多個模型
為了進一步證明本文所設計的DenseCNNATT模型在關系抽取任務中取得了更優(yōu)的效果,本文將DenseCNN-ATT與以下在近幾年取得較好成績的四種基線模型加以比較。
1)PCNN使用了分為三段的池化層來替代最大池化層,來改善模型性能[4]。
2)CNN+ATT在原CNN模型的基礎上,添加注意力機制來實現(xiàn)權重學習,從而降低遠程監(jiān)督產(chǎn)生的噪聲問題[5]。
3)PCNN+ATT是在PCNN的基礎上引入用句子級注意力機制來進一步進行權重學習[5]。
4)ResCNN-9采用了深層的殘差網(wǎng)絡作為句子編碼器[8]。
本文在保持常規(guī)參數(shù)一致的情況下,減少實驗變量帶來的誤差,從而獲得更加精確的結(jié)果。各模型的P-R曲線如圖5所示。實驗結(jié)果根據(jù)P-R曲線可以得到:我們的模型在整個召回率范圍內(nèi),性能均高于目前的主流模型。這表明我們提出的DenseCNN-ATT網(wǎng)絡是一種更強大的句子編碼器,能更好地降低噪聲句子帶來的影響,更有效地提高遠程監(jiān)督關系抽取任務的性能。
圖5 對比模型P-R曲線圖
4.3.3 對比連接層數(shù)
為了驗證網(wǎng)絡的連接層數(shù),即模型深度對實驗結(jié)果的影響,在各參數(shù)設置一致的情況下,改變我們模型的深度,即卷積層數(shù),記為x,來對比不同深度下的DenseCNN-ATT模型對實驗結(jié)果產(chǎn)生的影響。
圖6是在不同卷積深度下的Dense模型對應的P-R曲線圖,我們從下圖中可以發(fā)現(xiàn),隨著密集連接網(wǎng)絡深度的提高,關系分類的準確度也發(fā)生了小幅度提升高,當卷積層數(shù)深至6層和7層時,其網(wǎng)絡性能逐步達到飽和狀態(tài)。
圖6 對比深度P-R曲線圖
所以我們可以得出,深度密集連接網(wǎng)絡比傳統(tǒng)的淺層網(wǎng)絡有效,但是不斷增加更深的深度卻并不能為我們的模型帶來很好的性能。另外,模型的深度的越深,其復雜度也會越高,消耗更多的GPU顯存,耗費大量的訓練時間。
綜上可以看出,我們提出的卷積深度為5層的DenseCNN-ATT模型,在效率和復雜性適當?shù)那闆r下,都可達到較好的性能。
此外,我們的模型和其對比模型的平均準確率(P@N)數(shù)據(jù)如表2所示,在表中可以看出,我們的模型—DenseCNN-ATT在各方面均顯著高于其他模型。另外,對比于模型效果較好的九層的深度殘差網(wǎng)絡ResCNN-9,我們的模型只采用了5層深度,就實現(xiàn)了更好的效果,并且在控制參數(shù)和計算成本更少的情況下,實現(xiàn)了遠超深度殘差網(wǎng)絡的性能。
表2 平均準確表
我們的模型通過五層的密集連接網(wǎng)絡,首先使用多特征通道來合并特征,然后實現(xiàn)特征復用,從而提高了對語義的表征能力;其次,融入注意力池化機制,更高效地過濾噪聲數(shù)據(jù),使關系抽取在遠程監(jiān)督的任務上取得了顯著效果。基于以上結(jié)果,可以得出結(jié)論:我們提出的DenseCNN-ATT模型在綜合表現(xiàn)上都優(yōu)于當下效果較好的基線模型。
本文提出了一種新的用于遠程監(jiān)督關系抽取的DenseCNN-ATT關系抽取模型。該模型采用5層深度的DenseCNN作為句子編碼器,通過多個特征通道加強特征傳遞,之后融合了選擇性注意力機制來減弱噪聲數(shù)據(jù)產(chǎn)生的影響。實驗證明,該模型能夠充分利用有效的實例關系,在綜合性能上明顯優(yōu)于目前主流的基線模型。
本文在未來的工作中,將在基于密集連接卷積的句子編碼器上探索有效的頭尾分離卷積和池化改進,從而更進一步地提升關系抽取任務的性能。