蔣偉強, 李鳳英, 董榮勝
(桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004)
實體抽取及關(guān)系抽取是構(gòu)建大規(guī)模知識圖譜的關(guān)鍵技術(shù)[1],對于深度理解自然語言和實現(xiàn)知識圖譜的自動問答具有重要研究價值[2]。實體和關(guān)系的聯(lián)合抽取是根據(jù)預定義的關(guān)系類別,從句子中抽取實體對及其關(guān)系。實體關(guān)系的信息表述可形式化為三元組t=(s,r,o),其中s表示主實體,o表示目標實體,r表示預定義關(guān)系類別中主實體與目標實體之間的關(guān)系。
早期對關(guān)系抽取的研究主要是管道(pipeline)方法[3-5]。首先,研究者提出使用命名實體識別[6](named entity recognition,簡稱NER)模塊來識別實體,然后將得到的實體成對組合,使用關(guān)系分類(relation classification,簡稱RC)模塊對其關(guān)系進行分類[7]。經(jīng)過這2個連續(xù)步驟,最終得到有效的三元組。然而,流水線方法面臨著誤差傳播問題,即NER模塊中的誤差會被引入后續(xù)的RC模塊。聯(lián)合方法[8-9]旨在通過NER和RC的任務(wù)組合直接獲得三元組,從而解決這一問題。與流水線方法相比,聯(lián)合方法可同時提取和利用實體與關(guān)系之間的深層關(guān)聯(lián)。
當前諸多研究中提出的實體與關(guān)系聯(lián)合抽取任務(wù)存在較大改進空間。為緩解關(guān)系重疊問題對抽取效果的影響,提出了一個基于混合神經(jīng)網(wǎng)絡(luò)的實體與關(guān)系聯(lián)合抽取模型(mixed neural network model for entity and relation extraction,簡稱MNN-RE),MNN-RE的核心是實體抽取任務(wù)與關(guān)系抽取任務(wù)共享一個膨脹卷積編碼層,通過共享編碼參數(shù),獲得實體抽取任務(wù)與關(guān)系抽取任務(wù)之間更豐富的關(guān)聯(lián)信息。此外,該模型采用門控線性單元(gated linear units,簡稱GLU)并引入注意力機制(attention mechanism)來捕獲任意詞之間的關(guān)系和提取局部信息,從而實現(xiàn)信息的多通道融合。
由于文本中存在重疊的三元組,但聯(lián)合抽取模型不能抽取重疊的三元組,導致抽取效果不佳。以表1的實體對重疊例子為參考,聯(lián)合模型[8]中的關(guān)系分類模塊只能預測到“離開”和“張宇”的三元組,不能得到正確的關(guān)系,以及2017年Zheng等[9]的標記方案,無法在一個標簽中標記“歌手”和“作曲”。這類句子不僅使關(guān)系分類模塊急需改進,而且使原有的順序標注方案陷入困境。2018年Zeng等[10]率先認識到重疊三元組問題,并將三元組重疊的句子分為實體對重疊(entity problem overlapped,簡稱EPO)和單實體重疊(single entity overlapped,簡稱SEO)。為了解決這一問題,人們提出了一些新的標注方案來處理這些句子,但是這些模型花費了大量的時間,且仍不能通過有限數(shù)量的標記來保存句子中的所有三元組。例如,2019年Dai等[11]建立了一個大型模型,用標簽填充(sequence length×sequence length)表標記關(guān)系,但仍然只能預測一個實體對的單一關(guān)系類別,無法處理單關(guān)系實體重疊問題。
關(guān)系重疊類型示例如表1所示,關(guān)系類型可分為三類:單一關(guān)系類型,如“中國的首都是北京”中,有實體關(guān)系對(中國,首都,北京);單實體重疊類型,如“《李烈鈞自述》是2011年11月1日人民日報出版社出版的圖書,作者是李烈鈞”,可以得到實體關(guān)系對(李烈鈞自述,作者,李烈鈞),(李烈鈞自述,出版社,人民教育出版社);實體對重疊類型,如“《離開》是由張宇譜曲,演唱”,可以得到實體關(guān)系對(離開,歌手,張宇),(離開,作曲,張宇)。
表1 關(guān)系重疊類型示例
關(guān)系抽取是從文本中挖掘知識的自然語言處理任務(wù),當給出一個帶有注釋實體的句子時,這個任務(wù)退化為一個簡單的任務(wù),即關(guān)系分類。如Zeng等[4]在2014年使用卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,簡稱CNN)來處理關(guān)系抽取任務(wù),Xu等[12]使用最大池化層將不同的長短期記憶節(jié)點信息聚合用于抽取實體關(guān)系。然而,這些方法忽略了句子實體的提取,不能真正提取關(guān)系事實。聯(lián)合方法在于使用一個模型來合并處理2個任務(wù),Miwa等[8]在2016年提出一個“端到端”模型,使用共享編碼層將2個任務(wù)合并學習,提取特征,抽取實體和關(guān)系。Zheng等[9]于2017年提出了一種新的標簽方案,將聯(lián)合抽取任務(wù)轉(zhuǎn)化為標簽問題,然后,基于標記方案,研究不同的端到端模型來直接提取實體及其關(guān)系,而無需單獨識別實體和關(guān)系。Bekoulis等[13]在2018年提出了一個聯(lián)合神經(jīng)網(wǎng)絡(luò)模型,可以同時進行實體識別和關(guān)系提取,而無需任何手動提取特征或使用任何外部工具。使用條件隨機場層對實體識別任務(wù)進行建模,并將關(guān)系提取任務(wù)作為多頭選擇問題,可為每個實體識別多個關(guān)系。
針對以往流水線抽取方法在對句子抽取實體關(guān)系時忽視實體抽取與關(guān)系抽取之間存在關(guān)聯(lián)的問題,提出一個基于膨脹卷積神經(jīng)網(wǎng)絡(luò)與注意力層的混合模型MNN-RE,使用共享編碼層強化實體抽取任務(wù)與關(guān)系抽取任務(wù)之間的依賴。此外,該模型采用門控線性單元并使用注意力機制來獲取詞與詞之間的關(guān)聯(lián)信息和提取句子全局信息,實現(xiàn)特征信息的多通道傳輸。在抽取策略上,采用貪心原則對所有關(guān)系都進行預測,并基于預測的關(guān)系抽取對應的實體。
MNN-RE結(jié)構(gòu)如圖1所示。主題框架包括3個部分:輸入表示與編碼、實體抽取模塊、關(guān)系抽取分類模塊。
圖1 聯(lián)合抽取模型整體結(jié)構(gòu)
模型的輸入是一個漢語句子。為了充分利用語句的信息,輸入向量的表示主要包括3個部分:1) 字向量表示。2)詞向量表示:使用百度百科語料訓練的Word2Vec模型的詞向量。3) 位置向量表示。
2.1.1 輸入表示
輸入以字為單位的文本序列,經(jīng)過一個嵌入表示層后得到字向量序列;將文本分詞,使用一個預訓練的中文詞向量模型來提取對應的詞向量。卷積神經(jīng)網(wǎng)絡(luò)不具有循環(huán)神經(jīng)網(wǎng)絡(luò)的時序結(jié)構(gòu),因此需要加入位置編碼來更好地體現(xiàn)詞與詞之間的位置關(guān)系。Vaswani等[14]提出的注意力機制,在使用位置向量的情況下,能表現(xiàn)出更好的性能。本模型使用了可優(yōu)化的位置向量,初始化一個新的嵌入表示層,維度與字向量維度相同,輸入語句后輸出對應的位置向量,并把這個位置向量與字向量和詞向量拼接,得到最終的輸入向量表示,傳入殘差模塊進行編碼。
2.1.2 編碼器
車輛在運行過程中,隨著線路曲線的變化,車端跨接線纜被動地進行伸展和收縮運動,因此跨接線纜的復雜受力運動情況成為影響跨接線纜使用壽命的重要因素[2]。
如圖2所示,編碼器由Wu等[15]提出的殘差模塊構(gòu)成。殘差模塊由膨脹卷積神經(jīng)網(wǎng)絡(luò)、門控線性單元及殘差連接方法組合而成。在Wu的實驗中,殘差模塊在閱讀理解等自然語言處理任務(wù)中有著跟Bi-LSTM一樣的效果。殘差模塊也在Gehring等[16]提出的Seq2Seq翻譯任務(wù)中使用,并表現(xiàn)出有效性。殘差模塊由一個具有門控線性單元激活功能的2層一維卷積層構(gòu)成,這個小的2層卷積層的輸出后來被總結(jié)成輸入,允許卷積層學習轉(zhuǎn)換的殘差,概念類似He等[17]提出的ResNet。該殘差模塊能夠多層堆疊,獲取更廣的感受野[15]。
圖2 殘差模塊的結(jié)構(gòu)
為了簡單起見,所有卷積的核大小為3,而各個層的膨脹率是不同的。更具體地說,前幾個殘差塊中卷積的擴張以指數(shù)形式增加(1,2,4,8),目的是增加感受野。經(jīng)過膨脹后,感受野增加,再切換回正常卷積以進一步細化。
膨脹卷積神經(jīng)網(wǎng)絡(luò)是殘差模塊的3個關(guān)鍵部分之一。在自然語言處理任務(wù)中,CNN一般是一維的。為了使CNN模型能夠捕捉更遠的距離,又不增加模型參數(shù),模型使用了膨脹卷積,如圖3所示。對于輸入的序列信息,CNN捕獲的信息不夠全面,而使用膨脹卷積,可盡可能多地獲取輸入序列的全局信息。
圖3 一維情況下的膨脹卷積示例
Liu等[18]的研究表明,卷積神經(jīng)網(wǎng)絡(luò)很容易捕捉到句子的全局結(jié)構(gòu)信息。本研究采用Dauphin等[19]提出的門控線性單元(GLU),可以使卷積操作梯度的不易消失,并基于句子的特征來控制信息的流動。因此,門控機制在其他自然語言處理任務(wù)中(如機器翻譯、閱讀理解)都取得了不錯的效果。給定輸入X,GLU的輸出為
GLU(X)=Conv1d1(X)?σ(Conv1d2(X)),
(1)
其中,Conv1d1與Conv1d2均為對X的一維卷積操作,?表示向量之間的點積,σ為sigmod激活函數(shù)。通過卷積計算句子的特征,使用sigmod函數(shù)控制輸出信息的流動。
對于輸入X,卷積網(wǎng)絡(luò)的函數(shù)為F(X),輸出為Y=F(X)+X。在He等[17]提出的ResNet中,適度深層的網(wǎng)絡(luò)能提取更高維度的特征。模型中輸入輸出的維度相同,使用殘差連接會很好地表示多層次的特征信息。
對于實體抽取,對編碼表示好的特征向量,先使用自注意力機制探索句子內(nèi)部詞與詞之間的聯(lián)系,然后使用卷積神經(jīng)網(wǎng)絡(luò)與全連接層拼接的指針網(wǎng)絡(luò),將作為主體的實體抽取出來,形成備選實體集。
(2)
(3)
該層主要計算文本序列中每個詞與其他詞的相似度,計算任意2個詞之間的關(guān)聯(lián)度。
對于實體抽取策略,模型采用QANet[20]的指針網(wǎng)絡(luò)抽取實體。對于注意力層的輸出序列h=(h1,h2,…,hn),分別通過2個不同的全連接層,使用sigmod激活函數(shù),得到實體的首部預測序列Pstart=(s1,s2,…,sn)及尾部預測序列Pend=(e1,e2,…,en)。
實體抽取模塊將二分類交叉熵作為損失函數(shù),其形式為
loss=L(Pstart)+L(Pend),
(4)
其中L(Pstart)、L(Pend)分別為實體首部、尾部預測與真實結(jié)果的二分類交叉熵。將兩者相加作為最后的損失函數(shù)。
在提取特征后,將抽取的實體作為表示輸入自注意力層與全連接層,使用全連接網(wǎng)絡(luò)對任務(wù)進行實體關(guān)系的預測,抽取的邏輯如式(5),
P(s,r,o)=P(s)P(s|r)P(o|s,r)。
(5)
其中:s表示實體抽取模塊所得到的實體;r表示對應關(guān)系;o表示s在對應關(guān)系p下的實體。
使用sigmod函數(shù)
a=sigmod(wTH)
(6)
計算某一關(guān)系是否存在,表示文本中是否有s對應的關(guān)系r以及對應關(guān)系的目標實體o。對于每種關(guān)系r,都會計算預測該關(guān)系是否存在于應輸入的文本中,即已抽取主實體相同,然后根據(jù)計算判斷對應的關(guān)系是否存在對應的目標實體?;谥鲗嶓w和預測的關(guān)系類型,用指針網(wǎng)絡(luò)對目標實體進行抽取,目標實體的抽取方法同主實體相同。本研究使用隨機采樣獲取的訓練數(shù)據(jù)來訓練模型,并采用Adam優(yōu)化器算法來優(yōu)化模型參數(shù)。
為了驗證MNN-RE的有效性,在關(guān)系抽取數(shù)據(jù)集DuIE上進行實驗,并與多種聯(lián)合抽取模型對比,驗證模型的效果。
DuIE數(shù)據(jù)集是業(yè)界規(guī)模最大的基于關(guān)系的中文信息抽取數(shù)據(jù)集,其包含超過43萬三元組數(shù)據(jù)、21萬中文句子及50個已定義好的關(guān)系。數(shù)據(jù)集中的句子來自百度百科和百度信息流文本。該數(shù)據(jù)集有17萬訓練集、2萬驗證集和2萬測試集。訓練集和驗證集用于訓練,可供自由下載,測試集未標注,因此不用作實驗評估。故使用DUIE數(shù)據(jù)集提供的訓練集作為訓練集,驗證集作為本研究的測試集用于評估模型的效果。
遵循前人的工作,實驗結(jié)果用準確率P、召回率R和兩者之間的調(diào)和平均數(shù)F1值作為評價指標。準確率、召回率及調(diào)和平均數(shù)F1值的計算式如下:
(7)
(8)
(9)
其中:NTP為被正確抽取的屬于關(guān)系R的實體對個數(shù);NTP+NFP為所有被抽取為關(guān)系R的實體對的個數(shù);NTP+NFN為實際應被抽取的屬于關(guān)系R的實體對的個數(shù)。
為驗證MNN-RE模型在聯(lián)合抽取任務(wù)中的效果,對比了3個模型,其中InfoExtractor是基于模式約束的知識抽取數(shù)據(jù)集的信息抽取基線系統(tǒng)。InfoExtractor采用了一種流水線結(jié)構(gòu),p-分類模型和so-標記模型都是用paddle實現(xiàn)的。p-分類模型是一種多標簽分類模型,采用一個最大池化網(wǎng)絡(luò)的堆積Bi-LSTM來識別給定句子的謂詞。在Solabeling模型中采用一個深Bi-LSTM-CRF網(wǎng)絡(luò)和BIO標記方案,對主語和賓語提到的元素進行標記,給出p-分類模型中區(qū)分的謂詞。Noveltagging[9]算法是一個基于序列標注的聯(lián)合抽取模型,對于實體重疊問題,序列標注方法不能很好地處理。Multi-head selection[13]用序列標注得到實體,再用多頭選擇抽取關(guān)系。各模型在DuIE開發(fā)集(dev)上的實驗結(jié)果如表2所示。
表2 各模型在DuIE開發(fā)集(dev)上的實驗結(jié)果 %
實驗結(jié)果驗證了MNN-RE在中文聯(lián)合抽取任務(wù)上比Multi-head模型、Noveltagging模型、Infoextractor模型均有提升,抽取性能的提升有3個原因:第一部分為深度殘差網(wǎng)絡(luò)模塊,使用膨脹卷積提取的全局特征比普通卷積廣。通過殘差連接結(jié)合不同維度的信息表征,同時使用GLU讓信息更好地在網(wǎng)絡(luò)中流動。殘差模塊較好地利用了句子的信息,提取了豐富的句子特征。第二部分來源于注意力機制。注意力機制能夠獲取句子序列的全局信息以及詞之間的局部信息。第三部分是貪心策略,通過預測預定義的關(guān)系來盡可能多地抽取對應的三元組。
提出了一種基于深度殘差網(wǎng)絡(luò)模塊的聯(lián)合抽取模型MNN-RE,并在DuIE中文數(shù)據(jù)集上做實體與關(guān)系聯(lián)合抽取實驗。通過添加自注意力層,使模型的性能得到了改善。輸入表示和編碼層的深度殘差網(wǎng)絡(luò)模塊具有比其他模型(如卷積神經(jīng)網(wǎng)絡(luò)或循環(huán)神經(jīng)網(wǎng)絡(luò)及其變體)更好的句子編碼性能和特征提取性能。實驗結(jié)果表明,提出的模型能夠有效地解決實體關(guān)系抽取問題中的實體重疊問題。后續(xù)會繼續(xù)對抽取策略做進一步研究,研究在多元實體對與實體關(guān)系的情況下,通過添加權(quán)重矩陣來探索模型對復雜三元組關(guān)系的抽取效果,進一步提高模型性能。