歐陽康 ,朱艷輝 ,張 旭 ,孔令巍,黃雅淋,金書川,沈加銳
(1.湖南工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,湖南 株洲 412007;2.湖南省智能信息感知及處理技術(shù)重點(diǎn)實(shí)驗(yàn)室,湖南 株洲 412007)
近年來,各大網(wǎng)絡(luò)社交及傳媒平臺帶來的信息數(shù)不勝數(shù),如何快速、精準(zhǔn)地獲取其中的關(guān)鍵信息是一個(gè)巨大的挑戰(zhàn)。信息抽取隨之誕生,關(guān)系抽取(relation extraction,RE)作為信息抽取的子任務(wù),通過二分類方法判定語句中是否存在關(guān)系,并通過多分類的形式判定該語句存在何種類型的關(guān)系。在關(guān)系分類任務(wù)中,往往需要事先定義關(guān)系類型,然后判斷文本中實(shí)體間是否可能存在某種關(guān)系類型。該形式可描述為三元組
隨著時(shí)代發(fā)展,信息抽取技術(shù)在文本信息化工作中起著越來越不可忽視的作用,也吸引了國內(nèi)外學(xué)者對前沿技術(shù)的探索。傳統(tǒng)的關(guān)系抽取方式大多采用流水線的方式進(jìn)行,流水線方式抽取包含兩個(gè)子任務(wù):命名實(shí)體識別(named entity recognition,NER)和關(guān)系分類[1-2]。流水線方法指將實(shí)體關(guān)系抽取以流水線方式進(jìn)行,即第一步是進(jìn)行實(shí)體識別,在實(shí)體識別完成之后,再進(jìn)行關(guān)系抽取。早期工作中,D.Zelenko[3]、Chan Y.S.等[4]以流水線的方式處理關(guān)系抽取任務(wù),他們通過兩個(gè)獨(dú)立的步驟提取關(guān)系三元組:首先,在輸入句子上通過命名實(shí)體識別的方式識別出文本中所有實(shí)體;提取出實(shí)體對后,在該基礎(chǔ)上進(jìn)行關(guān)系分類。流水線方法通常存在錯(cuò)誤傳播問題,而且會(huì)忽略兩個(gè)步驟之間的相關(guān)性,為了緩解這些問題,現(xiàn)有研究已經(jīng)提出許多旨在共同學(xué)習(xí)實(shí)體和關(guān)系的聯(lián)合模型。
聯(lián)合抽取方法的出現(xiàn),較好地解決了流水線方法中存在的誤差傳播問題,能夠更好地利用子任務(wù)之間的關(guān)聯(lián)性。該方法選擇對命名實(shí)體識別和關(guān)系分類采用聯(lián)合建模,能夠較好地利用實(shí)體和關(guān)系之間的交互信息,同時(shí)抽取實(shí)體并分類實(shí)體對的關(guān)系。聯(lián)合抽取通常是先提取實(shí)體對,然后再對關(guān)系進(jìn)行分類或采用統(tǒng)一標(biāo)注的方式來解決實(shí)體關(guān)系抽取問題。早期Yu X.F.[5]、Li Q.[6]、Ren X.等[7]提出的基于特征的聯(lián)合模型需要復(fù)雜的特征工程過程,嚴(yán)重依賴各種NLP(natural language processing)工具且需手動(dòng)操作,操作繁瑣。為了減少這種手工操作,最近的研究著重于基于神經(jīng)網(wǎng)絡(luò)的方法來解決問題。M.Miwa 等[8]提出一種端到端的神經(jīng)網(wǎng)絡(luò)模型,該方法首次將深度網(wǎng)絡(luò)和依存樹進(jìn)行結(jié)合,通過該方式來進(jìn)行實(shí)體和關(guān)系抽取,該論文的成果為后續(xù)實(shí)體關(guān)系聯(lián)合抽取的研究奠定了基礎(chǔ)。Zheng S.C.等[9]通過序列標(biāo)注的方式解決實(shí)體關(guān)系聯(lián)合抽取,該方案可以獲得實(shí)體信息和它們所持有的關(guān)系,擺脫了復(fù)雜的特征工程,且該方法可以直接將關(guān)系三元組作為一個(gè)整體進(jìn)行建模,但該方法并未解決關(guān)系重疊問題。
關(guān)系往往指兩個(gè)實(shí)體之間存在的某種聯(lián)系,關(guān)系重疊即某實(shí)體和其他實(shí)體可能存在一種或多種關(guān)系,將這種情況分為單實(shí)體多關(guān)系(single entity overlap,SEO)和同實(shí)體對存在多關(guān)系(entity pair overlap,EPO),如圖1,實(shí)體“戰(zhàn)狼2”與“吳京”和“盧靖姍”3 個(gè)實(shí)體之間分別擁有“導(dǎo)演”、“主演”的關(guān)系,稱之為SEO 問題;實(shí)體“吳京”和實(shí)體“戰(zhàn)狼2”分別擁有“導(dǎo)演”和“編劇”兩對關(guān)系,稱之為EPO 問題。
針對關(guān)系重疊問題,Wei Z.P.等[10]提出了CASREL 模型,通過一種新的級聯(lián)二進(jìn)制框架先預(yù)測出文本中所有可能是主體的實(shí)體后,下一步通過預(yù)測出的主體預(yù)測與其相關(guān)聯(lián)的客體。Wang Y.C.等[11]提出了一種TPLinker 思路,并在英文數(shù)據(jù)集NYT和WebNLG 上進(jìn)行實(shí)驗(yàn),通過3 個(gè)握手矩陣將實(shí)體與關(guān)系進(jìn)行規(guī)則抽取,取得了較好結(jié)果。陳仁杰等[12]將該兩類方法應(yīng)用在英文數(shù)據(jù)集NYT和WebNLG上,都取得了很好的結(jié)果,但對關(guān)系重疊,還在探索和研究之中。陳仁杰等[12]提出了一種融合實(shí)體類別信息的實(shí)體關(guān)系聯(lián)合抽取方法,該方法在解碼階段融合了頭尾實(shí)體類別信息的預(yù)測,在中文數(shù)據(jù)集DuIE 上進(jìn)行試驗(yàn),但最終實(shí)驗(yàn)結(jié)果還有一定的提升空間。為了更有效地抽取出文本中的實(shí)體與關(guān)系,且能較好地解決實(shí)體關(guān)系重疊問題,本文做了如下工作:1)針對關(guān)系重疊問題提出了位置輔助標(biāo)記方法;2)運(yùn)用位置輔助標(biāo)記方法在中文數(shù)據(jù)集DuIE 上進(jìn)行對比實(shí)驗(yàn)證明了該方法的有效性。
本文提出一種基于位置輔助標(biāo)記的方法來抽取實(shí)體關(guān)系三元組,整體模型結(jié)構(gòu)如圖2 所示。將實(shí)體關(guān)系三元組定義為
在整個(gè)實(shí)體關(guān)系的抽取過程中,有可能存在
BERT(bidirectional encoder representation from transformers),2018 年由Google 首次提出,是一種預(yù)訓(xùn)練語言模型。BERT 采用雙向Transformer 的Encoder,通過新的遮蔽語言模型(masked language modeling,MLM)來生成深度的雙向語言表征,這不同于以往采用單向語言模型或?qū)蓚€(gè)單向語言模型進(jìn)行淺層拼接,且BERT 在預(yù)訓(xùn)練完成之后,只需要一個(gè)額外的輸出層進(jìn)行fine-tune,就能在各種下游任務(wù)中取得state-of-the-art 的表現(xiàn)。基于此,本文采用BERT來作為embedding層,以較好地獲取上下文信息,將BERT 對應(yīng)輸入文本使用詞向量的方式進(jìn)行表示。
式中:S為模型文本;(w1,w2,…,wn)為S的每個(gè)字;V為文本S經(jīng)過BERT 預(yù)訓(xùn)練語言模型后的字向量表現(xiàn)形式;(v1,v2,…,vn)為(w1,w2,…,wn)經(jīng)過BERT預(yù)訓(xùn)練語言模型后的每個(gè)字對應(yīng)的字向量表現(xiàn)形式。
通過位置輔助標(biāo)記矩陣,可以通過索引標(biāo)記將實(shí)體對之間建立關(guān)系,如圖3 所示。
輸入語句S:“在吳京自導(dǎo)自演的電影《戰(zhàn)狼2》里,盧靖姍作為女主角在電影中扮演援非醫(yī)生瑞秋。”在該例句中,以三元組<吳京,導(dǎo)演,戰(zhàn)狼2>為例,實(shí)體矩陣中,“吳京”實(shí)體索引位置為<1,2>,“戰(zhàn)狼2”實(shí)體索引位置為<11,13>;關(guān)系矩陣中分為關(guān)系頭部矩陣和關(guān)系尾部矩陣,關(guān)系頭部矩陣中,“吳京”實(shí)體中的第一個(gè)字“吳”與“戰(zhàn)狼2”實(shí)體中第一個(gè)字“戰(zhàn)”索引位置為<1,11>,關(guān)系尾部矩陣中,“吳京”實(shí)體的最后一個(gè)字“京”與“戰(zhàn)狼2”實(shí)體最后一個(gè)字“2”索引位置為<2,13>。解碼時(shí),實(shí)體矩陣中存在索引<1,2>與<11,13>,通過關(guān)系矩陣中存在<1,11>與<2,13>可以得到索引<1,2>與<11,13>,故實(shí)體“吳京”和“戰(zhàn)狼2”存在關(guān)系,能夠構(gòu)成三元組<吳京,導(dǎo)演,戰(zhàn)狼2>。此外,對于實(shí)體矩陣而言,因?yàn)閷?shí)體尾部索引必然大于實(shí)體頭部索引,矩陣存儲(chǔ)的方式采用上三角矩陣的方式進(jìn)行存儲(chǔ),即對于句子S,設(shè)句長為n,則位置輔助矩陣的長度為n(n+1)/2,通過該方式,可以更好地利用空間。該模塊的操作流程通過以下公式表示:
式中:Wh為參數(shù)矩陣;[hi,hj]為在位置輔助矩陣中的索引位置;bh為可在訓(xùn)練中進(jìn)行更新的偏差向量。
本文針對每一種實(shí)體類型設(shè)置一個(gè)實(shí)體抽取器,對于N個(gè)預(yù)定義的實(shí)體類型,共有N個(gè)實(shí)體抽取器。實(shí)體抽取器內(nèi)使用一個(gè)全連接層加softmax 的方式,標(biāo)簽采用1/0 的方式,若在文本中某一位置上被判定為某一類型實(shí)體的可能性大于0,那么就將該值標(biāo)記為1,否則標(biāo)記為0。得到標(biāo)記結(jié)果的情況下,會(huì)根據(jù)位置輔助上三角矩陣來獲取每個(gè)實(shí)體抽取器中的所有實(shí)體。操作流程如公式(3)(4)所示。
式(3)(4)中:We為參數(shù)矩陣;hi,j為位置向量;be為可以在訓(xùn)練中進(jìn)行更新的偏差向量;P(yi,j=m)為在[i,j]位置鏈接實(shí)體類型為m的概率;Link(wi,wj)為[i,j]位置鏈接概率最大的實(shí)體類型。
與實(shí)體抽取器相似,根據(jù)預(yù)定義關(guān)系種類設(shè)立關(guān)系抽取通道,但本文針對每個(gè)關(guān)系設(shè)置4 個(gè)關(guān)系抽取器。以導(dǎo)演為例,將會(huì)設(shè)置導(dǎo)演SH2OH(主實(shí)體頭部與客實(shí)體頭部),導(dǎo)演ST2OT(主實(shí)體尾部與客實(shí)體尾部),導(dǎo)演OH2SH(客實(shí)體頭部與主實(shí)體頭部),導(dǎo)演OT2ST(客實(shí)體尾部與客實(shí)體頭部),因?yàn)樵谖恢幂o助標(biāo)記中,統(tǒng)一采用了上三角矩陣進(jìn)行存儲(chǔ)。這樣,對于某些輸入語句而言,可能會(huì)存在客實(shí)體在主實(shí)體之前,那么,上三角矩陣就無法標(biāo)記出所有的實(shí)體對,無法確認(rèn)主實(shí)體與客實(shí)體,故設(shè)置了OH2SH 和OT2ST 通道,將其設(shè)置為輸出種類,操作流程與實(shí)體抽取流程一樣。
式(5)(6)中:Wr為參數(shù)矩陣;br為訓(xùn)練中進(jìn)行更新的偏差向量;P(yi,j=n)為在[i,j]位置鏈接關(guān)系n的概率;Link(wi,wj)為[i,j]位置鏈接概率最大的關(guān)系類型。
由于該任務(wù)用于多分類任務(wù),所以選擇了多分類交叉熵?fù)p失函數(shù)作為損失函數(shù),公式定義如下:
式中:N為實(shí)體類型數(shù)加上4 倍的關(guān)系類型數(shù);m為實(shí)體類型集合;n為關(guān)系類型集合。
實(shí)驗(yàn)數(shù)據(jù)集來自百度提供的數(shù)據(jù)集DuIE[13]。DuIE 是一個(gè)大規(guī)模的高質(zhì)量數(shù)據(jù)集,該數(shù)據(jù)集采用從粗到精的過程,結(jié)合遠(yuǎn)程監(jiān)控和眾包標(biāo)注。本文使用的是DuIE 中的訓(xùn)練集和驗(yàn)證集,由于實(shí)驗(yàn)設(shè)備受限,且所提出模型復(fù)雜程度與句長呈指數(shù)級關(guān)系,故將文本長度大于130 的句子全部舍棄,最終實(shí)驗(yàn)所用數(shù)據(jù)情況如表1 所示。

表1 實(shí)驗(yàn)數(shù)據(jù)集Table 1 Experimental dataset
基于位置輔助標(biāo)記方法的實(shí)體關(guān)系抽取模型評價(jià)指標(biāo)通過精準(zhǔn)率(P,precision),召回率(R,recall)和F1值來進(jìn)行衡量,具體計(jì)算方式如下:
式(8)(9)中:TP為預(yù)測出的三元組與原文本中存在三元組一致的個(gè)數(shù);FP為預(yù)測出來的三元組與原文本中存在三元組不一致的個(gè)數(shù);FN為原文本中存在的三元組但預(yù)測結(jié)果沒有該三元組的個(gè)數(shù)。
實(shí)體關(guān)系抽取模型實(shí)驗(yàn)環(huán)境如表2 所示。

表2 實(shí)驗(yàn)環(huán)境Table 2 Experimental environment
本文進(jìn)行了一系列實(shí)驗(yàn),各實(shí)驗(yàn)參數(shù)設(shè)置如表3所示。

表3 各模型參數(shù)設(shè)置Table 3 Parameter settings of each model
為了驗(yàn)證本文提出模型的有效性,利用上述模型按照上述參數(shù)進(jìn)行了對比實(shí)驗(yàn),結(jié)果如表4 所示。
如表4 所示,本文提出的方法與基于BERT 的模型相比,F(xiàn)1值提高了0.107;與FETI(融合實(shí)體類型信息)的實(shí)體關(guān)系聯(lián)合抽取方法相比,本文提出的方法F1值提高了約0.079;相較于序列標(biāo)注的方法,本方法F1值提高了約0.027。采用BERT+sigmoid 先識別實(shí)體再關(guān)系分類,使用該方式很難獲取到實(shí)體和關(guān)系之間的相互依賴性。相比之下,本文提出的模型,實(shí)體和關(guān)系共享編碼層參數(shù),可以較好地利用實(shí)體和關(guān)系之間的交互信息。FETI 融合了實(shí)體類別信息進(jìn)行關(guān)系抽取,將實(shí)體類別信息作為輔助信息做實(shí)體關(guān)系聯(lián)合抽取,使用該方式,會(huì)給聯(lián)合抽取任務(wù)提供大量的背景知識,同時(shí)也會(huì)引入更多噪聲。本文提出的方法不會(huì)引入與抽取出的三元組無關(guān)的噪聲,可以有效提高抽取的準(zhǔn)確率。BERT+CNN+CRF 采用了序列標(biāo)注的方法進(jìn)行學(xué)習(xí),通過該類方法模型需要額外學(xué)習(xí)復(fù)雜的BIEOS(B-beginner,I-inside,E-end,O-outsde,S-single)對性能有一定影響。而采用多個(gè)二分類器的方法進(jìn)行實(shí)體關(guān)系聯(lián)合抽取過程較為簡單,在解碼階段引入相應(yīng)位置輔助信息,而且能解決SEO 和EPO 問題。

表4 各模型實(shí)驗(yàn)結(jié)果Table 4 Experimental results of each model
綜上所述,本研究提出的BERT 結(jié)合位置輔助標(biāo)記和sigmoid 模型的總體性能最好,優(yōu)于其他模型。
為了解決實(shí)體關(guān)系抽取任務(wù)中的關(guān)系重疊問題,本文采用了基于位置輔助標(biāo)記[14-16]的方法進(jìn)行實(shí)體關(guān)系抽取,可以更準(zhǔn)確地抽取出實(shí)體關(guān)系三元組。該方法使用了BERT 來獲取文本中的上下文語義,位置輔助信息可以更好地定義規(guī)則,為后續(xù)學(xué)習(xí)建立一個(gè)更明確的目標(biāo),解決了關(guān)系重疊問題。經(jīng)過實(shí)驗(yàn)論證,本文在中文數(shù)據(jù)集DuIE 上表現(xiàn)良好,取得了不錯(cuò)的效果。在后續(xù)研究中,由于位置輔助矩陣引入?yún)?shù)過多,模型花費(fèi)時(shí)間會(huì)較長,因而將對模型進(jìn)行改進(jìn),以減少參數(shù),提高效率。