陳仁杰,鄭小盈,祝永新
(1.中國(guó)科學(xué)院上海高等研究院,上海 201210;2.中國(guó)科學(xué)院大學(xué),北京 100049)
互聯(lián)網(wǎng)上每時(shí)每刻都涌現(xiàn)出大量新聞、博客、社交媒體的文本數(shù)據(jù),如何從海量的非結(jié)構(gòu)化數(shù)據(jù)中提取出有用的結(jié)構(gòu)化信息成為亟待解決的問題,因此,信息抽?。↖nformation Extraction,IE)技術(shù)被提出。實(shí)體關(guān)系抽取是信息抽取中的核心子任務(wù),包含實(shí)體抽取和關(guān)系分類,旨在從非結(jié)構(gòu)化文本中提取出潛在的命名實(shí)體對(duì),并對(duì)每個(gè)實(shí)體對(duì)間存在的關(guān)系類型進(jìn)行分類,最終以實(shí)體-關(guān)系三元組的形式呈現(xiàn)。例如,在句子“周星馳導(dǎo)演了電影《喜劇之王》”中,可以提取出的三元組是“周星馳-導(dǎo)演-喜劇之王”,其中,“周星馳”是頭實(shí)體,“喜劇之王”是尾實(shí)體,“導(dǎo)演”是實(shí)體對(duì)之間存在的關(guān)系類型。實(shí)體關(guān)系抽取可以為自動(dòng)問答、推薦系統(tǒng)、信息檢索、知識(shí)庫(kù)填充等下游任務(wù)提供有力支持,近年來受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。
傳統(tǒng)的關(guān)系抽取方法將任務(wù)劃分為2 個(gè)流水線式的子任務(wù):命名實(shí)體識(shí)別(Named Entity Recognition,NER)和關(guān)系分類[1-2]。針對(duì)每個(gè)句子,首先識(shí)別出句子中所有的實(shí)體,然后對(duì)每個(gè)實(shí)體對(duì)進(jìn)行關(guān)系分類。這類方法容易導(dǎo)致誤差傳播問題,前一個(gè)子任務(wù)產(chǎn)生的錯(cuò)誤可能會(huì)累積到下一個(gè)子任務(wù)[3]。此外,流水線方法還忽視了2 個(gè)子任務(wù)間的內(nèi)在交互和依賴關(guān)系。
不同于流水線方法,聯(lián)合抽取方法采用一個(gè)聯(lián)合模型同時(shí)識(shí)別出實(shí)體和關(guān)系類型,現(xiàn)有的聯(lián)合抽取方法主要包括基于表格填充的方法、基于標(biāo)注策略的方法和基于編碼器-解碼器的方法?;诒砀裉畛涞姆椒ㄐ枰杜e所有可能的實(shí)體對(duì),會(huì)導(dǎo)致繁重的計(jì)算負(fù)擔(dān)[4]?;跇?biāo)注策略的方法[5]將實(shí)體關(guān)系抽取任務(wù)統(tǒng)一成一個(gè)序列標(biāo)注問題,但由于對(duì)句子中的每一個(gè)token 都只能賦予一個(gè)標(biāo)簽,因此無法處理三元組重疊問題。
為應(yīng)對(duì)三元組重疊問題,DAI 等[6]在ZHENG等[5]研究的基礎(chǔ)上,采取對(duì)一個(gè)句子進(jìn)行多輪標(biāo)注的策略,這雖然可以應(yīng)對(duì)三元組重疊問題,但是卻帶來了較大的計(jì)算量。另一種可行的思路是采用基于編碼器-解碼器結(jié)構(gòu)的方法[7-9],將非結(jié)構(gòu)化文本輸入到模型中,按照特定的順序依次解碼實(shí)體關(guān)系三元組,這類方法可以應(yīng)對(duì)三元組重疊問題,同時(shí)也不會(huì)帶來較高的復(fù)雜度。
此外,PENG 等[10]的研究表明,句子的上下文以及實(shí)體信息(主要是實(shí)體類型信息)對(duì)于關(guān)系抽取模型效果的提升起到了重要作用,ZHONG 等[11]驗(yàn)證了學(xué)習(xí)實(shí)體和關(guān)系的不同上下文表示并將實(shí)體類別信息用作關(guān)系模型輸入特征的重要性。
在聯(lián)合抽取方法中,目前關(guān)于如何有效融合實(shí)體類別信息的研究相對(duì)較少,但相關(guān)研究[10-11]表明,實(shí)體類別信息對(duì)于構(gòu)建更豐富的語義特征并進(jìn)一步提升關(guān)系模型的效果具有重要意義。文獻(xiàn)[12]利用卷積神經(jīng)網(wǎng)絡(luò)從Freebase 知識(shí)庫(kù)和Wikipedia 中提取出實(shí)體描述信息特征向量,但該方法基于遠(yuǎn)程監(jiān)督,會(huì)引入大量噪聲,并且不能直接處理三元組重疊問題。
本文提出一種融合頭尾實(shí)體類別信息的實(shí)體關(guān)系聯(lián)合抽取模型FETI。將實(shí)體類別信息融合到模型中,在解碼階段增加頭尾實(shí)體類別的預(yù)測(cè),同時(shí)優(yōu)化損失函數(shù),增加對(duì)實(shí)體類別信息的約束。此外,在百度開源的中文數(shù)據(jù)集DuIE[13]上進(jìn)行實(shí)驗(yàn)并與基線模型對(duì)比,驗(yàn)證融合實(shí)體類別信息對(duì)于提升實(shí)體關(guān)系抽取模型性能的有效性。
早期的研究工作主要采用流水線方法[1-2],先從文本中提取出所有的實(shí)體,再對(duì)每個(gè)實(shí)體對(duì)進(jìn)行關(guān)系分類,從而得到實(shí)體-關(guān)系三元組,但是這類方法存在錯(cuò)誤累計(jì)傳播問題,并且忽視了2 個(gè)子任務(wù)之間的內(nèi)在交互[14]。MIWA 等[15]通過設(shè)計(jì)復(fù)雜的特征來進(jìn)行關(guān)系抽取,特征的提取依賴NLP 句法分析工具,不同工具提取特征的準(zhǔn)確率存在差異,且句法分析工具產(chǎn)生的誤差可能傳播到關(guān)系抽取任務(wù)中。TAKANOBU 等[16]采用基于強(qiáng)化學(xué)習(xí)的方法,先識(shí)別出關(guān)系類型,再識(shí)別出相應(yīng)的實(shí)體對(duì)。孫紫陽等[17]則采用基于最短路徑表示文本的方法來進(jìn)行中文實(shí)體關(guān)系抽取。
ZHENG 等[5]提出一種新的標(biāo)注策略,將關(guān)系類型和實(shí)體用一個(gè)標(biāo)簽來表示,并根據(jù)該標(biāo)注策略對(duì)句子中的每一個(gè)單詞進(jìn)行標(biāo)注,由此將聯(lián)合抽取問題轉(zhuǎn)化為經(jīng)典的序列標(biāo)注問題。但重疊的三元組問題對(duì)于傳統(tǒng)的序列標(biāo)注策略是一個(gè)極大的挑戰(zhàn),因?yàn)樾蛄袠?biāo)注問題假定每一個(gè)單詞只包含一個(gè)標(biāo)簽,由于該方法對(duì)句子中的每個(gè)單詞只能分配一個(gè)標(biāo)簽,因此無法處理三元組重疊問題。DAI 等[6]嘗試采用多輪序列標(biāo)注的方法,但是卻又引入了較大的計(jì)算負(fù)擔(dān)。FU 等[18]采用基于圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)的方法,將句子中的單詞作為圖中的節(jié)點(diǎn),將單詞間的關(guān)系作為圖中的邊,通過加權(quán)的GCN 考慮實(shí)體間的相互作用以及可能存在的重疊關(guān)系。LI 等[19]將聯(lián)合抽取問題轉(zhuǎn)化為多輪問答問題,利用針對(duì)特定關(guān)系類型的模板生成相應(yīng)的問題。
此外,還有一些研究采用基于編碼器-解碼器結(jié)構(gòu),將關(guān)系抽取問題轉(zhuǎn)化為序列生成問題,在解決三元組重疊問題的同時(shí)避免帶來過多的計(jì)算量,這類方法與人工提取三元組的過程類似,即首先閱讀整個(gè)句子,理解其含義,然后按照特定順序抽取出實(shí)體-關(guān)系三元組。ZENG 等[7]將編碼器-解碼器結(jié)構(gòu)應(yīng)用到實(shí)體關(guān)系抽取任務(wù)中,嘗試解決三元組重疊問題。
三元組重疊問題指的是一個(gè)句子中的不同三元組之間存在某個(gè)元素(頭實(shí)體、尾實(shí)體或關(guān)系類型)重合的現(xiàn)象,這會(huì)導(dǎo)致無論是基于深度學(xué)習(xí)的方法還是傳統(tǒng)的基于特征工程的方法都難以準(zhǔn)確提取出句子中的三元組。如圖1 所示,根據(jù)是否重疊可以將三元組劃分為3 個(gè)類型:正常(Normal),單個(gè)實(shí)體重疊(Single Entity Overlap,SEO),實(shí)體對(duì)重疊(Entity Pair Overlap,EPO)。
圖1 三元組類型劃分示例Fig.1 Example of triplet type division
文獻(xiàn)[7]模型中主要包含編碼器(Encoder)和解碼器(Decoder)兩個(gè)部分,編碼器接收非結(jié)構(gòu)化的文本作為輸入并轉(zhuǎn)化為固定長(zhǎng)度的上下文向量,解碼器讀取該向量并生成三元組。但是該方法每次只能預(yù)測(cè)實(shí)體的最后一個(gè)單詞,對(duì)于含有多個(gè)單詞的實(shí)體不能完整預(yù)測(cè)。ZENG 等[8]在文獻(xiàn)[7]模型的基礎(chǔ)上進(jìn)行改進(jìn),采用多任務(wù)學(xué)習(xí)的策略使模型可以預(yù)測(cè)出多單詞實(shí)體。NAYAK 等[20]提出帶掩碼機(jī)制的編碼器-解碼器結(jié)構(gòu)來應(yīng)對(duì)實(shí)體關(guān)系抽取中的三元組重疊問題。然而,這些基于編碼器-解碼器的方法將重疊三元組的抽取分解為幾個(gè)有先后順序、相互依賴的步驟,會(huì)導(dǎo)致曝光偏差的問題[21]。曝光偏差指的是基于編碼器-解碼器的模型在訓(xùn)練和測(cè)試階段存在不一致的現(xiàn)象。在訓(xùn)練階段,當(dāng)前步三元組的預(yù)測(cè)依賴于前一步三元組的真實(shí)標(biāo)簽,但是在測(cè)試階段,當(dāng)前步模型預(yù)測(cè)的三元組卻依賴于模型上一步預(yù)測(cè)出的三元組。例如,當(dāng)一個(gè)句子中存在3 個(gè)三元組,在訓(xùn)練階段,模型按照“三元組1-三元組2-三元組3”的順序進(jìn)行學(xué)習(xí),在測(cè)試階段,如果模型首先預(yù)測(cè)出“三元組2”,則最后的結(jié)果只能是“三元組2-三元組3”,而缺失了“三元組1”的預(yù)測(cè),但“三元組2-三元組3-三元組1”仍然是正確的結(jié)果。這種在訓(xùn)練階段對(duì)于多個(gè)三元組先后順序的預(yù)定義,限制了模型的學(xué)習(xí)能力和泛化性能[9]。因此,ZHANG等[9]提出了一種樹狀解碼方法,將一維三元組序列轉(zhuǎn)化為一個(gè)無序樹狀結(jié)構(gòu),通過三層解碼依次識(shí)別出所有可能的頭實(shí)體、關(guān)系、尾實(shí)體。由于同一層預(yù)測(cè)出的結(jié)果間是無序的,并且摒棄了不同三元組間預(yù)定義的順序,因此一個(gè)三元組的預(yù)測(cè)偏差并不會(huì)累積到下一個(gè)三元組的預(yù)測(cè),該方法能夠有效緩解曝光偏差的問題。
盡管目前的實(shí)體關(guān)系聯(lián)合抽取方法研究取得了顯著的進(jìn)展,但仍然存在一些不足,例如實(shí)體描述信息(包括實(shí)體類別等信息)沒有得到充分利用,導(dǎo)致實(shí)體和關(guān)系之間缺乏內(nèi)在的交互。本文在聯(lián)合抽取模型中集成對(duì)實(shí)體類別信息的預(yù)測(cè),為聯(lián)合抽取任務(wù)補(bǔ)充了背景知識(shí),以期提升模型性能。
多任務(wù)學(xué)習(xí)[22]通過利用多個(gè)相關(guān)任務(wù)的訓(xùn)練中包含的特定信息來提高模型的泛化性能,主要研究方向包括網(wǎng)絡(luò)設(shè)計(jì)和損失函數(shù)的優(yōu)化,本文主要關(guān)注多任務(wù)損失函數(shù)的優(yōu)化。VANDENHENDE 等[23]指出,在多任務(wù)學(xué)習(xí)中,當(dāng)一個(gè)任務(wù)的梯度幅度比其他任務(wù)高得多時(shí),也即不同任務(wù)的梯度若不在一個(gè)數(shù)量級(jí)上時(shí),網(wǎng)絡(luò)權(quán)重的更新可能由梯度較高的任務(wù)主導(dǎo),并通過對(duì)現(xiàn)有的多種任務(wù)平衡策略進(jìn)行分析,總結(jié)出對(duì)平衡多任務(wù)學(xué)習(xí)有效的方法,如降低噪聲任務(wù)的權(quán)重、平衡不同子任務(wù)的梯度等。CIPOLLA等[24]利用同方差不確定性來調(diào)整各個(gè)子任務(wù)損失函數(shù)的權(quán)重,使得訓(xùn)練過程中每個(gè)子任務(wù)的損失函數(shù)值在數(shù)量級(jí)上較為接近。CHEN 等[25]定義了一些變量分別用來衡量不同任務(wù)損失的數(shù)量級(jí)以及任務(wù)的學(xué)習(xí)速度,使得訓(xùn)練過程中各個(gè)子任務(wù)的損失數(shù)量級(jí)以及訓(xùn)練速度盡可能比較接近。
盡管多任務(wù)學(xué)習(xí)損失函數(shù)優(yōu)化研究近年來受到廣泛關(guān)注,但不同方法針對(duì)不同的任務(wù)場(chǎng)景、數(shù)據(jù)集、優(yōu)化器以及網(wǎng)絡(luò)結(jié)構(gòu),其有效性并不一定能夠得到保證,且仍缺少對(duì)于損失函數(shù)權(quán)重可解釋性問題的研究與討論,因此,損失函數(shù)權(quán)重的可解釋性問題是目前多任務(wù)學(xué)習(xí)領(lǐng)域乃至整個(gè)深度學(xué)習(xí)領(lǐng)域的一大難題,學(xué)術(shù)界尚未形成系統(tǒng)有效的理論予以支撐。
本文提出一種融合實(shí)體類別信息的實(shí)體關(guān)系聯(lián)合抽取模型FETI。該模型整體采用基于編碼器-解碼器的結(jié)構(gòu)[26],其中編碼器采用經(jīng)典的Bi-LSTM 結(jié)構(gòu)[27],解碼器采用一種樹狀解碼方案替代傳統(tǒng)的一維線性解碼。具體而言,假設(shè)模型的解碼順序?yàn)閔1-h2-r-t1-t2,h1代表頭實(shí)體,h2代表頭實(shí)體類別,r 代表關(guān)系類型,t1代表尾實(shí)體,t2代表尾實(shí)體類別。首先,第1 層解碼預(yù)測(cè)出所有潛在的h1,然后將預(yù)測(cè)出的每一個(gè)頭實(shí)體依次作為下一層解碼的輸入,在下一層解碼階段預(yù)測(cè)所有的h2,再將第2 層解碼預(yù)測(cè)結(jié)果依次作為下一層解碼輸入,在第3 層解碼階段預(yù)測(cè)出所有的關(guān)系類型r。依次類推,通過5 層解碼預(yù)測(cè)出頭實(shí)體-頭實(shí)體類別-關(guān)系-尾實(shí)體-尾實(shí)體類別。本文提出的FETI 模型整體框架如圖2 所示,其中,左側(cè)為從輸入句子提取出一個(gè)實(shí)體關(guān)系三元組的示意圖,右側(cè)為利用樹狀解碼提取出句子中所有三元組的示意圖。
圖2 FETI 模型總體框架Fig.2 Overall framework of FETI model
2.1.1 嵌入層
假設(shè)單個(gè)輸入句子表示為s=[w1,w2,…,wn],經(jīng)過嵌入層后得到句子的向量表示:
其中:wi表示句子中的每一個(gè)字;xi表示每一個(gè)字對(duì)應(yīng)的向量表示;n表示句子的長(zhǎng)度。字的嵌入表示通過維護(hù)一個(gè)查找表實(shí)現(xiàn),在訓(xùn)練過程中,查找表隨不斷迭代而更新,根據(jù)每個(gè)字的索引可以查詢到對(duì)應(yīng)的向量表示。
2.1.2 Bi-LSTM 編碼層
LSTM 網(wǎng)絡(luò)[28]由不同的記憶單元組成,通過輸入門、遺忘門和輸出門對(duì)輸入內(nèi)容以及記憶單元里存儲(chǔ)的內(nèi)容進(jìn)行控制,形成對(duì)之前輸入信息的記憶。由于雙向LSTM(Bi-LSTM)考慮了當(dāng)前時(shí)間步的輸出既與之前的狀態(tài)有關(guān),又可能與未來的狀態(tài)有關(guān),因此通常可以獲得更好的編碼。LSTM 的計(jì)算過程如下:
其中:ht代表時(shí)刻t的隱藏層狀態(tài);ct代表時(shí)刻t的元胞狀態(tài);xt代表時(shí)刻t的輸入;it、ft、ot分別代表輸入門、遺忘門和輸出門。同時(shí)考慮前向LSTM 的編碼和反向LSTM 的編碼,則時(shí)刻t單詞編碼后的向量表示為:
其中:dh代表LSTM 隱藏層的維度。
編碼器對(duì)整個(gè)輸入句子進(jìn)行編碼后,特征可以表示為:
考慮時(shí)刻t解碼器隱藏層狀態(tài)為,前一時(shí)刻輸入句子編碼后的特征為ot-1,根據(jù)文獻(xiàn)[29]提出的注意力機(jī)制(Attention)生成上下文向量:
將ct與ot-1拼接,經(jīng)過卷積層(Conv Layer)得到t時(shí)刻輸出:
由于一個(gè)句子中可能存在多個(gè)三元組,且三元組之間可能存在重疊,在文獻(xiàn)[9]解碼方法基礎(chǔ)上,本文提出的FETI 模型添加了頭尾實(shí)體類型的預(yù)測(cè)層。如圖2 右側(cè)所示,假設(shè)解碼順序?yàn)椤瓣P(guān)系-頭實(shí)體-頭實(shí)體類型-尾實(shí)體-尾實(shí)體類型”,第1 步解碼出所有可能的關(guān)系,得到“導(dǎo)演”“主演”,第2 步分別將“導(dǎo)演”“主演”作為輸入送入下一層進(jìn)行解碼,得到頭實(shí)體,依次類推,繼續(xù)解碼得到頭實(shí)體類型、尾實(shí)體、尾實(shí)體類型,最終解碼得到兩個(gè)實(shí)體-關(guān)系三元組:“周星馳-導(dǎo) 演-喜劇之王”“周星馳-主 演-喜劇之王”,從而有效應(yīng)對(duì)多三元組問題以及三元組重疊問題。
本文提出的FETI 模型融合了頭尾實(shí)體類別信息的預(yù)測(cè),假設(shè)解碼時(shí)的預(yù)測(cè)順序?yàn)閔1-h2-r-t1-t2,即依次預(yù)測(cè)頭實(shí)體-頭實(shí)體類型-關(guān)系類型-尾實(shí)體-尾實(shí)體類型,則總的損失函數(shù)等于5 步解碼的損失函數(shù)之和:
其中:α、β是超參數(shù);和分別表示頭實(shí)體的開始位置和結(jié)束位置的真實(shí)標(biāo)簽;表示頭實(shí)體類型的真實(shí)標(biāo)簽;r*表示關(guān)系的真實(shí)標(biāo)簽;tb和表示尾實(shí)體的開始位置和結(jié)束位置的真實(shí)標(biāo)簽;表示尾實(shí)體類型的真實(shí)標(biāo)簽。FETI 模型在損失函數(shù)層對(duì)頭尾實(shí)體類型進(jìn)行了約束,使得模型可以充分利用實(shí)體類別信息,為聯(lián)合抽取任務(wù)提供有效的背景知識(shí)。
本文實(shí)驗(yàn)數(shù)據(jù)集采用2019 年百度信息抽取競(jìng)賽中開源的數(shù)據(jù)集DuIE[13],該數(shù)據(jù)集是目前最大的中文關(guān)系抽取數(shù)據(jù)集,基于百度新聞和百度百科的語料,通過遠(yuǎn)程監(jiān)督并結(jié)合人工校驗(yàn)的方式生成,其中包含訓(xùn)練集數(shù)據(jù)173 108 條、驗(yàn)證集數(shù)據(jù)21 639 條、測(cè)試集數(shù)據(jù)19 992 條。頭實(shí)體包含16 種類別,如“景點(diǎn)”“企業(yè)”“歌曲”等,尾實(shí)體包含16 種類別,如“人物”“國(guó)家”“學(xué)?!钡?。
醫(yī)院一名負(fù)責(zé)同志與本刊記者分享了這樣一個(gè)具體分析案例:2016年,胸椎壓縮性骨折CMI值為1.44,該病種在骨科所有病種中排名第85位(共313位)。2016年出院患者96人次,占骨科總出院患者比例為3.29%。出院患者與上年相比增加9人次。2016年例均費(fèi)用45994.65元,例均費(fèi)用與上年相比增加6739.58元。其中例均材料費(fèi)用40668.47元,與上年相比增加44.87%,2016年直接可控成本/總收入為64.27%,與上年相比增加14.82%。
由于測(cè)試集原始數(shù)據(jù)并未公開,因此將原來的驗(yàn)證集作為測(cè)試集,將原來的訓(xùn)練集按照9∶1 劃分為新的訓(xùn)練集和驗(yàn)證集,并且刪去不包含三元組的句子。新的數(shù)據(jù)集統(tǒng)計(jì)信息如表1 所示。
表1 數(shù)據(jù)集信息Table 1 Dataset information
數(shù)據(jù)集中的一個(gè)標(biāo)注樣例為{“subject”:“喜劇之 王”,“predicate”:“主 演”,“object”:“周星馳”,“subject_type”:“影視作品”,“object_type”:“人物”}。其中:“subject_type”表示頭實(shí)體的類型;“object_type”表示尾實(shí)體的類型。在之前的公開數(shù)據(jù)集中,較少有關(guān)于實(shí)體類別信息的標(biāo)注,因此,基于該數(shù)據(jù)集可以展開考慮實(shí)體類別信息的關(guān)系抽取實(shí)驗(yàn)。
實(shí)驗(yàn)中的詞向量通過維護(hù)一個(gè)查找表實(shí)現(xiàn),詞向量的維度dw為200,LSTM 隱藏層的維度dh為200,關(guān)系嵌入維度dr為200,頭實(shí)體類型嵌入維度dh2為200,尾實(shí)體類型嵌入維度dt2為200,以上提到的嵌入均進(jìn)行隨機(jī)初始化。本文使用Dropout 來防止模型產(chǎn)生過擬合[30],Dropout 的大小設(shè)置為0.5,采用梯度截?cái)喾乐褂?xùn)練過程中產(chǎn)生梯度爆炸。損失函數(shù)權(quán)重α設(shè)置為0.1,β設(shè)置為0.1。模型使 用Adam[31]優(yōu)化器訓(xùn)練50 個(gè)epoch,在驗(yàn)證集上獲取F1分?jǐn)?shù)最高的模型,然后在測(cè)試集上進(jìn)行測(cè)試,所有實(shí)驗(yàn)均在NVIDIA V100 32 GB GPU 上完成。
將本文提出的FETI 模型與以下模型進(jìn)行對(duì)比:
1)Seq2UMTree[9]。此模型基于編碼器-解碼器結(jié)構(gòu),解碼器部分采用了一個(gè)簡(jiǎn)單的樹形結(jié)構(gòu)生成三元組,本文選取其中效果最好的模型作為對(duì)比模型。
2)CopyMTL[8]。此模型是一個(gè)基于編碼器-解碼器結(jié)構(gòu)并結(jié)合了復(fù)制機(jī)制的模型,實(shí)體的預(yù)測(cè)通過多任務(wù)學(xué)習(xí)的方式實(shí)現(xiàn),解決了CopyRE[7]方法無法抽取含多個(gè)單詞的實(shí)體的問題。
3)WDec[20]。此模型基于帶掩碼機(jī)制的編碼器-解碼器結(jié)構(gòu)實(shí)現(xiàn)。
4)MHS[32]。此模型基于條件隨機(jī)場(chǎng)進(jìn)行實(shí)體識(shí)別,將關(guān)系抽取轉(zhuǎn)化為一個(gè)多頭選擇問題,是本文基線模型中唯一一個(gè)沒有采用編碼器-解碼器結(jié)構(gòu)的模型。
使用精確率P、召回率R和F1 分?jǐn)?shù)F1作為實(shí)體關(guān)系抽取的評(píng)價(jià)指標(biāo),計(jì)算方式如下:
其中:TP表示正類判定為正類的個(gè)數(shù);FP表示負(fù)類判定為正類的個(gè)數(shù);FN表示正類判定為負(fù)類的個(gè)數(shù)。在本文實(shí)驗(yàn)中,預(yù)測(cè)正確與錯(cuò)誤是針對(duì)三元組而言的,即當(dāng)三元組中的頭實(shí)體h1、關(guān)系r、尾實(shí)體t1全部預(yù)測(cè)正確時(shí),才認(rèn)定該三元組的結(jié)果是正確的。
3.4.1 基本實(shí)驗(yàn)
對(duì)比模型CopyMTL、WDec、MHS、Seq2UMTree的實(shí)驗(yàn)結(jié)果均來自文獻(xiàn)[9],本文提出的FETI 模型與所有對(duì)比模型的實(shí)驗(yàn)結(jié)果如表2 所示,其中加粗?jǐn)?shù)據(jù)表示最優(yōu)。由于解碼階段對(duì)于三元組的預(yù)測(cè)存在不同的順序,因此表2 中的結(jié)果選自使得F1 值最高的解碼順序,Seq2UMTree 模型中F1 值最高的解碼順序是r-h-t,F(xiàn)ETI 模型中F1 值最高的解碼順序是h1-h2-r-t1-t2。
表2 基本實(shí)驗(yàn)結(jié)果Table 2 Basic experimental results
在DuIE 數(shù)據(jù)集上,F(xiàn)ETI 模型取得了最高的F1 值和召回率:相對(duì)于Seq2UMTree,F(xiàn)1 值提升 了2.02%,召回率提升了4.11%;相對(duì)于未采用編碼器-解碼器結(jié)構(gòu)的MHS,召回率提升了21.99%,F(xiàn)1 值提升了9.86%。然而,F(xiàn)ETI 模型精確率相對(duì)于MHS 的0.772 下降了1.94%,原因在于MHS 模型在提取三元組時(shí)需要對(duì)所有的實(shí)體對(duì)進(jìn)行枚舉,這需要耗費(fèi)大量的顯存資源,且由于中文數(shù)據(jù)集中長(zhǎng)句較多,因此在實(shí)現(xiàn)時(shí)刪去了測(cè)試集中長(zhǎng)度超過150 的句子,在整個(gè)測(cè)試集中占比1.6%,而Seq2UMTree 模型和FETI 模型均使用全部的測(cè)試集進(jìn)行實(shí)驗(yàn)。
3.4.2 基于不同解碼順序的實(shí)驗(yàn)
在解碼階段,三元組的抽取存在一個(gè)預(yù)定義的順序,例如:如果只預(yù)測(cè)h1、r、t1,則存在h1-r-t1、r-h1-t1等6 種不同的解碼順序。由于FETI 模型添加了頭尾實(shí)體類型的預(yù)測(cè),因此需要通過5 步解碼預(yù)測(cè)出h1、r、t1、h2、t2,其中:h2表示頭實(shí)體類型;t2表示尾實(shí)體類型。由于實(shí)體和實(shí)體類型密切相關(guān),因此兩者的預(yù)測(cè)應(yīng)當(dāng)連續(xù)進(jìn)行,不應(yīng)被其他元素的預(yù)測(cè)所中斷,所以,存在“先實(shí)體后實(shí)體類型”和“先實(shí)體類型后實(shí)體”兩種順序,則FETI 模型存在12 種解碼順序,例如h1-h2-r-t1-t2,從中選取較好的效果進(jìn)行報(bào)告。基于不同解碼順序的實(shí)驗(yàn)結(jié)果如表3 所示。
表3 不同解碼順序?qū)嶒?yàn)結(jié)果Table 3 Experimental results with different decoding orders
在第1 組實(shí)驗(yàn)中,F(xiàn)ETI 模型采用“t2-t1-r-h2-h1”解碼順序時(shí)相對(duì)于對(duì)比模型在精確率、召回率、F1 值上分別提升了0.39%、2.71%、1.55%。
第3 組和第4 組實(shí)驗(yàn)FETI 模型召回率較低,導(dǎo)致最終的F1 值較低,檢查實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)大量樣例在第一步解碼時(shí)就出現(xiàn)預(yù)測(cè)錯(cuò)誤(預(yù)測(cè)h1或t1),而關(guān)系的預(yù)測(cè)在解碼的最后一步,說明關(guān)系類型信息的缺乏可能導(dǎo)致實(shí)體預(yù)測(cè)效果變差。在第3 組實(shí)驗(yàn)中,F(xiàn)ETI 模型相對(duì)于對(duì)比模型在召回率上下降較多,盡管實(shí)體類別信息給聯(lián)合抽取任務(wù)提供了一定的背景知識(shí),但同時(shí)也可能引入一定的噪聲。解碼器采用自回歸解碼的方式,前一步的預(yù)測(cè)錯(cuò)誤將會(huì)累積到下一步,從而導(dǎo)致整個(gè)三元組的預(yù)測(cè)出現(xiàn)錯(cuò)誤。在第4 組實(shí)驗(yàn)中,雖然將關(guān)系預(yù)測(cè)放在最后一步可能導(dǎo)致實(shí)體預(yù)測(cè)的效果變差,但是FETI 模型融合了頭尾實(shí)體預(yù)測(cè)之后,為整個(gè)任務(wù)提供了一定的背景知識(shí),可以緩解由于缺乏關(guān)系類型而導(dǎo)致的實(shí)體預(yù)測(cè)錯(cuò)誤,從而提升聯(lián)合抽取模型的性能,F(xiàn)ETI 模型相對(duì)于對(duì)比模型在召回率上提升了近1.46 倍,F(xiàn)1 值提升了近1.07 倍。
在第6 組實(shí)驗(yàn)中,F(xiàn)ETI 模型采用解碼順序“h1-h2-r-t1-t2”時(shí)能夠獲得最高的F1 值,F(xiàn)ETI 模型融合了頭尾實(shí)體類別預(yù)測(cè)后,相對(duì)于采用“h1-r-t1”解碼順序的對(duì)比模型提升了3.98%,相對(duì)于“r-t1-h1”順序的基線模型提升了2.02%。
整體上看,第3 組與第4 組實(shí)驗(yàn)相對(duì)其他組實(shí)驗(yàn)F1 值下降較多,Seq2UMTree 模型F1 值分別為0.467和0.208,F(xiàn)ETI 模型F1 值分別為0.201 和0.430。說明不同解碼順序?qū)τ谀P偷淖罱K效果影響較大,尤其是當(dāng)關(guān)系類型r 放在最后一步解碼時(shí),沒有為前面的頭實(shí)體h1和尾實(shí)體t1的預(yù)測(cè)提供足夠的背景知識(shí),導(dǎo)致前面幾步解碼時(shí)頭尾實(shí)體的預(yù)測(cè)大量出錯(cuò)。
3.4.3 基于不同權(quán)重?fù)p失函數(shù)的實(shí)驗(yàn)
上文討論了不同解碼順序?qū)τ谀P妥罱K效果的影響,由于本文FETI 模型采用多任務(wù)學(xué)習(xí)的策略,利用損失函數(shù)對(duì)頭尾實(shí)體類型分別進(jìn)行了約束,因此不同損失函數(shù)權(quán)重的平衡可能會(huì)影響到模型最終的效果。
選取FETI 模型實(shí)驗(yàn)效果最好的解碼順序h1-h2-r-t1-t2,進(jìn)行基于不同權(quán)重的損失函數(shù)相關(guān)實(shí)驗(yàn)。實(shí)驗(yàn)需要預(yù)測(cè)頭實(shí)體h1、頭實(shí)體類型h2、關(guān)系類型r、尾實(shí)體t1、尾實(shí)體類型t2,其中頭實(shí)體、尾實(shí)體、關(guān)系類型的預(yù)測(cè)是主要任務(wù),模型效果的評(píng)價(jià)也是基于這3 個(gè)元素預(yù)測(cè)結(jié)果的正確性來進(jìn)行的,當(dāng)一個(gè)樣本中頭實(shí)體、尾實(shí)體、關(guān)系類型預(yù)測(cè)正確,則記為預(yù)測(cè)正確,而不管頭尾實(shí)體類別是否預(yù)測(cè)正確。頭實(shí)體類型、尾實(shí)體類型的預(yù)測(cè)是輔助任務(wù),兩者預(yù)測(cè)結(jié)果的正確性并不直接參與模型效果的評(píng)價(jià),而是為頭實(shí)體、尾實(shí)體、關(guān)系類型的預(yù)測(cè)提供相應(yīng)的背景知識(shí),由于解碼步驟中存在頭尾實(shí)體類別的預(yù)測(cè),因此可能會(huì)有誤差傳播問題,從而影響主要任務(wù)的表現(xiàn),所以,輔助任務(wù)可能是潛在的噪聲任務(wù)。
基于VANDENHENDE 等[23]總結(jié)出的多任務(wù)學(xué)習(xí)中子任務(wù)平衡的兩種策略:降低噪聲任務(wù)的權(quán)重以及平衡子任務(wù)的梯度,本文對(duì)輔助子任務(wù)(頭尾實(shí)體類型的預(yù)測(cè))的損失函數(shù)賦予了較低的權(quán)重,將主要任務(wù)的損失函數(shù)權(quán)重默認(rèn)為1.0,具體實(shí)驗(yàn)結(jié)果如表4 所示,其中加粗?jǐn)?shù)據(jù)表示最優(yōu)。
表4 不同權(quán)重?fù)p失函數(shù)實(shí)驗(yàn)結(jié)果Table 4 Experimental results with different weights of loss function
在第1 組實(shí)驗(yàn)中,各子任務(wù)損失函數(shù)權(quán)重相等,通過觀察損失函數(shù)值發(fā)現(xiàn),頭尾實(shí)體類別相關(guān)的損失函數(shù)值的大小曾超過頭實(shí)體、尾實(shí)體、關(guān)系類型相關(guān)損失函數(shù)值10 倍以上,表現(xiàn)為在損失函數(shù)值上不處于同一個(gè)數(shù)量級(jí)。
在第2 組實(shí)驗(yàn)中,當(dāng)α=0.1 和β=0.1 時(shí)取得最高的F1 值0.758,一定程度上平衡了不同損失函數(shù)的數(shù)量級(jí),使得F1 值相對(duì)于實(shí)驗(yàn)1 提升了8.91%。
在第3 組和第4 組實(shí)驗(yàn)中,當(dāng)α=0 時(shí),F(xiàn)1 值相對(duì)于實(shí)驗(yàn)1 分別下降了29.02%和34.48%,由于沒有對(duì)頭尾實(shí)體類別的學(xué)習(xí)進(jìn)行約束,導(dǎo)致頭尾實(shí)體類別預(yù)測(cè)大量出錯(cuò),在h1-h2-r-t1-t2解碼順序下,嚴(yán)重影響了后續(xù)r、t1的預(yù)測(cè)效果。而對(duì)于第5 組實(shí)驗(yàn),α=0.1,β=0.0 相當(dāng)于忽略了預(yù)測(cè)t2子任務(wù)的貢獻(xiàn),但由于t2的預(yù)測(cè)是最后一步,后續(xù)不存在對(duì)實(shí)體和關(guān)系類型的預(yù)測(cè),因此F1 值仍保持在0.623。
對(duì)比第2 組和第5 組實(shí)驗(yàn),當(dāng)α=0.1,β由0.1 變?yōu)?.0 時(shí),F(xiàn)1 值由0.758 降為0.623,下降了17.81%,雖然β影響的是最后一步尾實(shí)體類別t2的預(yù)測(cè),且后續(xù)不存在對(duì)實(shí)體和關(guān)系類型的預(yù)測(cè),但也說明實(shí)體類別提供的背景知識(shí)對(duì)整個(gè)模型的效果有重要作用。實(shí)體類別的預(yù)測(cè)在提供背景知識(shí)的同時(shí)也可能帶來噪聲,對(duì)比第2 組和第6 組實(shí)驗(yàn),當(dāng)β=0.1,α 由0.1 變?yōu)?.0 時(shí),F(xiàn)1 值由0.758 降為0.729,下降了3.83%,當(dāng)頭實(shí)體類別損失函數(shù)權(quán)重升高時(shí),噪聲的影響可能超過了提供有效背景知識(shí)對(duì)模型的影響。
綜上,對(duì)于主要任務(wù)(包括預(yù)測(cè)頭實(shí)體、尾實(shí)體和關(guān)系類型)的損失函數(shù),賦予較高權(quán)重時(shí)(均設(shè)置為1.0)并且對(duì)輔助任務(wù)(包括預(yù)測(cè)頭實(shí)體類型、尾實(shí)體類型)的損失函數(shù)賦予較低權(quán)重時(shí)(均設(shè)置為0.1)實(shí)驗(yàn)效果最佳,能夠在輔助任務(wù)為主要任務(wù)提供有效背景知識(shí)的同時(shí)限制噪聲的影響,有效平衡不同損失函數(shù)值的數(shù)量級(jí),防止次要任務(wù)主導(dǎo)整個(gè)訓(xùn)練過程。
本文提出融合頭尾實(shí)體類別信息的實(shí)體關(guān)系聯(lián)合抽取模型FETI,在解碼階段融合頭尾實(shí)體類別信息的預(yù)測(cè),并且通過輔助損失函數(shù)進(jìn)行約束,使得模型能夠有效利用實(shí)體類別信息,為聯(lián)合抽取任務(wù)提供所需的背景知識(shí)。實(shí)驗(yàn)結(jié)果表明,F(xiàn)ETI 模型在DuIE 數(shù)據(jù)集上召回率達(dá)到0.760,F(xiàn)1 值達(dá)到0.758。本文對(duì)實(shí)體關(guān)系的預(yù)測(cè)采用了基于多任務(wù)學(xué)習(xí)的方法,因此,如何更好地平衡不同任務(wù)損失函數(shù)之間的權(quán)重以及損失函數(shù)權(quán)重的可解釋性問題將是后續(xù)研究的重點(diǎn)。此外,尋求多元的實(shí)體信息融合方式,更有效地表征其他實(shí)體相關(guān)的描述信息,也將是下一步的研究方向。