丁建立,蘇偉
(中國民航大學計算機科學與技術學院,天津 300300)
在“互聯(lián)網(wǎng)+”時代,如何高效地組織信息以方便人們獲取和使用,成為眾多學者研究的課題。2012年,谷歌針對其搜索引擎優(yōu)化提出了用于語義搜索的知識圖譜,該技術常用于多源異構的數(shù)據(jù)融合,可為用戶在海量信息中提供快速、準確的語義關聯(lián)信息。作為知識圖譜的基本組成單元,實體關系三元組的主要獲取方式包括基于傳統(tǒng)機器學習和基于深度學習的實體關系抽取?;趥鹘y(tǒng)機器學習的實體關系抽取模型由于其前期需要人工設計特征與核函數(shù),具有主觀性強且工作量大的缺點,已逐漸被深度學習模型所取代。
依據(jù)實體和關系類型是否預定義,基于深度學習的實體關系抽取方法分為特定領域的實體關系抽取和開放領域的實體關系抽取。開放領域的實體關系抽取雖然不需要領域專家來預定義實體與關系類型,但需要應對自然語言中多種多樣的實體和關系,且提取到的實體和關系還需進行預處理才能應用到下游任務。因此,特定領域的實體關系抽取仍然是目前主流的方法。早期特定領域的實體關系抽取會將實體識別與關系抽取作為兩個子任務分開進行,也被稱為流水線型的實體關系抽取。目前,基于該思想的實體關系抽取已經(jīng)取得了較多成果[1-8]。但隨著實體關系抽取問題被廣泛關注,有學者發(fā)現(xiàn)流水線型的實體關系抽取會導致誤差傳播且子任務間的特征難以交互的問題。因此,基于聯(lián)合學習思想的實體關系抽取被提出。文獻[9-10]通過共享編碼特征的方式,將實體關系抽取轉換成序列標注問題;文獻[11]將經(jīng)典的機器翻譯模型與注意力機制相結合,將預定義關系作為查詢向量,引導模型進行對應關系實體對的抽取。
然而,以上實體關系聯(lián)合抽取模型都將實體關系的聯(lián)合抽取作為一個多分類問題,導致模型結構復雜,難以得到較高的準確率。文獻[12]提出基于二分類級聯(lián)關系抽取的CasRel 模型,并成功刷新了眾多關系抽取數(shù)據(jù)集的榜單。但是,CasRel 模型存在4 個問題:①基于WordPiece 分詞后的詞片段序列在一定程度上模糊了詞的邊界信息;②采用主語在句中的開始位置向量和結束位置向量的均值作為主語特征向量,引入了噪聲,影響特征分布;③采用主語特征向量與句子編碼向量求和作為融合主語特征的句子編碼向量(同問題②);④關系賓語預測時,沒有考慮首尾位置預測任務中可能存在的交互信息。針對以上問題,提出基于預訓練的BERT(bidirectional encoder representation from transformers)與CNN(convolutional neural network)編碼特征融合的實體關系聯(lián)合抽取方法,主要工作如下:
(1)在特征編碼層,采用BERT-CNN 模型來替代BERT 模型對輸入的詞片段序列進行編碼;
(2)替代CasRel 模型的均值特征融合,采用主語在句中的開始位置向量與結束位置向量乘積作為主語特征向量;
(3)替代CasRel 模型中求和方式的特征融合,采用主語特征向量與句子編碼向量乘積作為融合主語特征的句子編碼向量;
(4)為了增加預測關系賓語首尾位置信息的交互性,用一個全連接神經(jīng)網(wǎng)絡來同時預測其首尾位置信息。
為更好地利用實體識別與關系抽取子任務之間的交互信息,鑒于二分類任務在多個領域中的優(yōu)秀表現(xiàn),提出基于BERT-CNN 編碼特征融合的實體關系聯(lián)合抽取方法。接下來,將從模型結構與模型算法描述兩方面進行介紹。
首先是模型結構,圖1 詳細展示了模型內(nèi)部結構及數(shù)據(jù)的轉換流程。
圖1 模型框架圖Fig.1 Frame diagram of model
依據(jù)數(shù)據(jù)處理流程,模型可分為以下5 個部分。
1)輸入層
該層負責將輸入句子通過WordPiece[13]算法轉換為詞片段序列。
2)特征編碼層
該層負責對輸入的詞片段序列進行特征編碼。區(qū)別于基礎模型,本層的特征編碼包含兩個部分:①通過預訓練的BERT 對輸入內(nèi)容提取上下文信息;②基于BERT 編碼后的上下文特征,采用多個卷積神經(jīng)網(wǎng)絡過濾詞邊界信息。最后,將兩部分特征拼接得到句子編碼向量。
3)主語預測層
該層用于預測實體關系三元組的頭部實體。其通過兩個全連接神經(jīng)網(wǎng)絡預測主語的開始與結束位置。
4)特征融合層
該層負責對不同的特征向量進行特征組合,包含兩個階段:①通過預測的主語開始位置和結束位置在句子編碼向量中索引得到主語開始向量和主語結束向量,對其進行特征組合得到主語特征向量;②通過對主語特征向量與句子編碼向量進行特征組合,得到融合主語特征的句子編碼向量。不同于基礎模型,本模型為了保留更多基礎向量特征,在兩個階段均采用乘積方式來進行特征融合。
5)關系賓語預測層
該層負責預測不同關系下對應賓語的首尾位置。不同于CasRel 模型,本層在預測關系賓語位置時,采用一個全連接神經(jīng)網(wǎng)絡來同時預測其首尾位置,加強了首尾位置任務間的信息交互。
模型的算法描述如下:
(1)模型的輸入為包含待抽取實體關系三元組句子的詞片段嵌入向量s 及其對應的標簽(包括目標實體關系三元組的頭部實體、尾部實體在詞片段序列中的位置以及實體關系三元組對應關系的索引);
(2)在特征編碼層,采用預訓練模型BERT 對詞片段嵌入向量s 進行編碼得到融合上下文語義信息的特征向量t1,再使用3 個不同卷積核大小的CNN 來對t1進行一維卷積得到融合詞邊界信息的特征向量c1、c2、c3,然后將t1、c1、c2、c3進行向量拼接得到同時融合上下文信息和詞邊界信息的句子編碼向量t2;
(3)主語預測層將句子編碼向量t2輸入到兩個獨立的全連接神經(jīng)網(wǎng)絡FCLayer 中去預測主語在詞片段中的開始位置h1和結束位置h2;
(4)特征融合層通過h1和h2索引其在t2對應位置的字編碼特征向量Shead與Stail,然后采用乘積方式的特征融合得到主語特征向量Ssub;
(5)在得到主語特征向量Ssub后,特征融合層將其與BERT-CNN 網(wǎng)絡編碼后的句子向量t2采用乘積方式的特征融合得到融合主語特征的句子編碼特征向量Vsub;
(6)關系賓語預測層將Vsub輸入到一個全連接神經(jīng)網(wǎng)絡FCLayer 中來同時預測不同關系所對應賓語在句子中可能的開始位置o1和結束位置o2,最終得到目標關系三元組。
預訓練語言模型BERT 是谷歌團隊在2018 年提出的基于雙向Transformer[13]的雙向編碼表示模型。不同于其他預訓練模型,該模型憑借基于多頭注意力機制的Transformer,在大規(guī)模語料庫預訓練下,能夠較完整地獲取句子的上下文信息特征并支持下游諸多NLP(natural language processing)任務的微調,極大地提升了NLP 領域中諸多任務的表現(xiàn)效果。預訓練BERT模型的輸入由以下3 部分組成。
(1)WordPiece Embedding:輸入句子經(jīng)WordPiece算法分詞后的詞片段嵌入向量s。
(2)Position Embedding:詞片段嵌入向量s 中各詞片段在句中的位置編碼向量Q。
(3)Segment Embedding:用于區(qū)別不同句子的標志向量Eseg。
設BERT 的subword 詞表大小為Nv,詞嵌入維度為Ne,輸入句子最大長度為NBert_max_len,詞嵌入獨熱編碼矩陣為Eone-hot-s,位置嵌入獨熱編碼矩陣為Eone-hot-p,維度分別為(Nv,Ne)與(NBert_max_len,Ne),則BERT 輸入序列x 和BERT 編碼句子向量t1計算過程如下
然而,BERT 中WordPiece 嵌入會使得句子編碼中詞的界限模糊,對BERT 編碼的句子向量主語首尾位置預測構成干擾。為避免該現(xiàn)象,將BERT 編碼后的句子向量t1輸入到不同卷積核大小的CNN 網(wǎng)絡中,在句子維度進行一維卷積以增加詞邊界信息得到t2。其中,卷積神經(jīng)網(wǎng)絡的卷積核大小分別為1、3、5,卷積核數(shù)量均為64,該部分模型結構如圖2 所示。
圖2 特征編碼層Fig.2 Feature coding layer
為獲得更好的主語特征向量,基于BERT-CNN 編碼特征預測得到了實體關系三元組中頭部實體的開始位置h1和結束位置h2,再根據(jù)預測得到的開始位置h1和結束位置h2來索引BERT-CNN 編碼特征向量對應位置的向量Shead與Stail,對二者進行特征融合以表示主語特征向量Ssub,為關系賓語預測任務提供導向。針對該層,通過采用均值、乘積、差值、求和4 種不同方式的特征融合進行對比試驗,最終選用乘積方式作為本模型中主語首尾向量的特征融合方式。
為了在預測關系對應的尾部實體位置時能夠考慮到主語特征,模型將句子編碼向量t2與預測主語特征向量Ssub進行融合得到融合主語特征的句子編碼向量Vsub。針對該部分,設置了基于注意力機制、求和與乘積方式的特征融合對比試驗,并最終選用乘積方式來融合特征。
本模型將實體關系抽取任務視為一個基于句子編碼特征識別主語和關系賓語位置信息的二分類任務,主語預測層和關系賓語預測層均采用全連接神經(jīng)網(wǎng)絡FCLayer 與激活函數(shù)Sigmod 來預測其對應的位置信息。在主語(關系賓語)的實體開始位置(結束位置)預測任務中,全連接神經(jīng)網(wǎng)絡將輸出與句子長度相同的預測序列,默認預測序列中的概率值大于等于0.5 為1、小于0.5 為0,其中1 的位置表示該位置是頭實體(尾實體)的開始位置(結束位置)。頭實體與關系賓語位置預測公式如下
由于考慮到預測主語和關系賓語的首尾位置時,預測的主語(關系賓語)開始位置可能會影響到其結尾位置信息的預測,因此,該部分使用一個激活函數(shù)為Sigmod 的全連接神經(jīng)網(wǎng)絡來同時預測主語(關系賓語)的開始和結束位置。
文中使用的數(shù)據(jù)集是實體關系抽取任務的公共數(shù)據(jù)集NYT 與WebNLG。兩個數(shù)據(jù)集中的實體關系三元組根據(jù)不同關系中是否共用頭實體(尾實體)、同時共用頭尾實體以及沒有共用頭尾實體分為SEO(single entity overlap)、EPO(entity pair overlap)、Normal 3 種類型,數(shù)據(jù)集所包含的訓練集、測試集個數(shù)[14]如表1所示。
表1 數(shù)據(jù)集介紹Tab.1 Introduction of dataset
為了便于與其他實體關系抽取模型進行性能對比,采用常見的評價指標,分別是準確率P、召回率R以及F1值,計算公式如下
式中:TP 表示預測的實體關系三元組中主語、關系及其對應的賓語同時被預測正確的個數(shù);FP 表示預測的實體關系三元組中的主語、關系及其對應的賓語至少有1 個預測錯誤的個數(shù);FN 表示目標實體關系三元組中未被模型正確預測到的個數(shù)。模型實際預測到的實體關系三元組數(shù)量為TP 與FP 之和,目標實體關系三元組數(shù)量為TP 與FN 之和。
模型針對內(nèi)部各部分均嘗試進行了優(yōu)化實驗。
模型實驗的硬件環(huán)境:CPU 為i7-9750h;內(nèi)存為頻率2666MHz 的兩條8G,共16G;GPU 為1660Ti-MaxQ;軟件環(huán)境為Python3.7,PyCharm 編譯器等。
在模型參數(shù)設置上,由于NYT 數(shù)據(jù)集較大導致模型訓練時間相對較長,文中各部分的對比實驗結果均基于WebNLG 數(shù)據(jù)集的驗證集得到,實驗參數(shù)設置如表2 所示。其中:Batch_size 表示一次訓練包含的樣本數(shù)量;Max_len 表示句子輸入模型的最大長度;Learning rate 表示深度學習模型中調整各參數(shù)的初始比例;Drop-out rate 表示每次訓練過程中不參加的神經(jīng)元比例;Patience 表示在Early Stopping(早停,在過擬合之前提前終止訓練)機制中,允許模型在優(yōu)化器作用下找到更優(yōu)解所能容忍的最大Epoch 個數(shù);Optimizer 表示深度學習模型使用的優(yōu)化器算法。
表2 實驗參數(shù)設置Tab.2 Experimental parameter setting
3.2.1 模型內(nèi)部對比實驗
模型內(nèi)部對比實驗是針對每層設置的不同對比實驗,除對比實驗層外,其余層結構與CasRel 模型結構一致。
1)特征編碼層對比實驗
針對該層,考慮到WordPiece 分詞會將1 個詞分為多個子詞的情況,使用3 個不同卷積核大小的卷積神經(jīng)網(wǎng)絡在WordPiece 分詞后的句子編碼特征序列上進行一維卷積,得到c1、c2和c3,設卷積神經(jīng)網(wǎng)絡的卷積核個數(shù)為Filter_num,3 個特征向量的維度均為(Batch_size,Max_len,Filter_num)。針對卷積神經(jīng)網(wǎng)絡中不同卷積核大小與卷積核數(shù)量進行了對比實驗,對比實驗結果如表3 所示。實驗序號5 為基于BERT 編碼的句子特征向量用于實體關系抽取。
表3 特征編碼層對比實驗Tab.3 Comparison experiment for feature coding layer
由表3 可以看出,基于BERT-CNN 編碼的句子特征向量優(yōu)于單純使用BERT 編碼的句子特征向量,擁有更豐富的表征能力。此外,卷積神經(jīng)網(wǎng)絡的卷積核數(shù)與卷積核大小均對三元組抽取效果有影響,卷積核數(shù)量為(1,3,5),卷積核數(shù)量為64 在模型中獲得更好的抽取效果。
2)主語預測層對比實驗
由于在基于特征編碼向量預測主語首尾位置任務中,預測的主語開始位置與主語結束位置可能會存在交互信息,針對是否使用同一神經(jīng)網(wǎng)絡來同時預測主語的首尾位置設置了對比實驗。實驗結果如表4所示。
表4 主語預測層對比實驗Tab.4 Comparison experiment for subject prediction layer
通過表4 可以看到,主語預測層使用兩個獨立的神經(jīng)網(wǎng)絡仍然優(yōu)于使用一個神經(jīng)網(wǎng)絡,這表明使用同一個神經(jīng)網(wǎng)絡同時預測主語的開始和結束位置時存在干擾的情況,兩個獨立的神經(jīng)網(wǎng)絡能學習到更優(yōu)的特征表示。
3)特征融合層對比實驗
由于采用均值與求和方式的特征融合可能會對融合前特征產(chǎn)生負面影響,本研究嘗試采用了其他方式的特征融合并設置對比實驗。對比實驗分為兩個,分別是:①預測主語首尾向量的特征融合;②主語特征向量與句子編碼向量的特征融合。在第2 個實驗中,由于使用注意力機制來調整句子編碼向量的結果較差,沒有列入實驗表格中。實驗結果如表5 和表6 所示。
表5 主語首尾向量特征融合Tab.5 Feature fusion of head and tail vectors of the subject
表6 主語特征向量與句子編碼向量特征融合Tab.6 Feature fusion of subject vector and sentence vector
通過對比表5 與表6 的實驗結果,在主語首尾向量特征融合和主語特征向量與句子編碼向量特征融合過程中,采用乘積方式能夠高效捕捉到更有價值的信息,得到更好的融合向量。這是由于:①預訓練語言模型BERT 由多個Transformer 組成,而每個Transformer 都包含Layer Normalizaiton層,其可以保證經(jīng)過BERT 編碼得到的融合上下文信息的字向量服從標準正態(tài)分布,因此Shead與Stail服從獨立的標準正態(tài)分布,而其采用乘積方式融合依然可以保證特征向量服從標準正態(tài)分布,更易尋找到最優(yōu)解;②乘積方式的特征融合更能體現(xiàn)原有特征之間的相關程度,如兩對特征向量值分別為(0.9,0.1)與(0.5,0.5)時,在求和與均值方式的特征融合時,特征值融合后均表現(xiàn)等于1 與0.5,導致其之間的差異性被忽略;而在差值方式的特征融合時,融合后的特征值表現(xiàn)為0.8 與0,雖然從結果上看保留了原有特征之間的差異,但是特征值為0的概率增大,容易出現(xiàn)特征消失的情況;但是,在乘積方式的特征融合中,特征融合后表現(xiàn)為0.09 與0.25,不但保留了原有特征值之間的差異,還降低了特征值為0 時導致的特征消失情況發(fā)生。因此,采用乘積方式的特征融合更能保留原有特征之間的相關程度。
4)關系賓語預測層對比實驗
由于該層任務和主語預測層任務相似,以是否使用同一神經(jīng)網(wǎng)絡來預測其開始和結束位置設置了對比實驗,實驗結果如表7 所示。
表7 關系賓語預測層對比實驗Tab.7 Comparison experiment for relative object prediction layer
通過對表7 結果分析,在關系賓語首尾位置預測任務中預測關系賓語的開始位置與結束位置并不是相互獨立的,存在交互信息,使用同一個神經(jīng)網(wǎng)絡更能捕捉關系賓語首尾的位置特征。
3.2.2 模型性能對比
根據(jù)上述各層的對比實驗,確定最優(yōu)模型結構如下。
特征編碼層:使用基于BERT-CNN 的網(wǎng)絡來進行特征編碼,CNN 的卷積核個數(shù)為64,卷積核大小分別為1、3、5。
主語預測層:使用兩個獨立的全連接神經(jīng)網(wǎng)絡預測主語的開始和結束位置。
特征融合層:兩次特征融合均采用乘積方式。
關系賓語預測層:使用一個全連接神經(jīng)網(wǎng)絡來同時預測關系賓語對應的開始和結束位置。
模型對比目前WebNLG 數(shù)據(jù)集上表現(xiàn)最好的實體關系抽取模型GraphRel[15]、CopyRRL[14]、CasRel[12]、TPLinker-BERT[16],其表現(xiàn)結果如表8 所示。
表8 模型對比實驗Tab.8 Model comparison experiment
由表8 可以看出,本文方法在NYT 與WebNLG兩個數(shù)據(jù)集上的綜合評估指標F1分別達到了92.75%與93.19%,比基線模型CasRel 分別高3.15 個百分點與1.39 個百分點,并且對比同數(shù)據(jù)集上的其他最新模型,在準確率、召回率和F1值上均表現(xiàn)更優(yōu),更能勝任實體關系聯(lián)合抽取任務,具有一定的實用價值。
基于二分類任務在各領域中的優(yōu)秀表現(xiàn),提出基于BERT-CNN 編碼特征融合的實體關系聯(lián)合抽取方法:①基于BERT-CNN 網(wǎng)絡編碼輸入句子的特征向量;②采用乘積方式來融合預測主語的首尾特征向量,再將融合的主語特征向量與句子編碼向量使用乘積方式進行融合得到帶有主語特征的句子編碼向量;③使用一個全連接神經(jīng)網(wǎng)絡來充分利用關系賓語首尾位置預測中的交互信息。在CasRel 模型基礎上進行了各層的不同實驗對比,經(jīng)過實驗數(shù)據(jù)對比可知,本文方法在NYT 和WebNLG 數(shù)據(jù)集上表現(xiàn)效果優(yōu)于當前最新模型,F(xiàn)1值分別達到了92.75%與93.19%。
實體關系抽取任務本質上是服務于知識圖譜內(nèi)容的構建。目前,本文方法雖然在關系抽取方面的多個數(shù)據(jù)集上表現(xiàn)突出,但由于其提取的實體必須在原句中存在,對數(shù)據(jù)集要求較高。因此,考慮在未來的研究中將風格翻譯作為一個突破點,解耦算法對數(shù)據(jù)格式的依賴。