周筠昌,陳振彬,陳珂
(1.廣東石油化工學(xué)院 計算機學(xué)院,廣東 茂名 525000;2.廣西師范大學(xué) 計算機科學(xué)與工程學(xué)院,廣西 桂林 541000)
關(guān)系抽取作為自然語言處理(Natural Language Processing,NLP)領(lǐng)域的基礎(chǔ)性任務(wù)之一,同時對自然語言處理的發(fā)展也產(chǎn)生著一定的影響。關(guān)系抽取的目標(biāo)是在給定文本中識別實體以及實體之間的關(guān)系,組成關(guān)系三元組(頭實體,關(guān)系,尾實體)。目前的研究中關(guān)系抽取仍存在有待解決的關(guān)鍵性問題和瓶頸,如數(shù)據(jù)稀疏和誤差傳遞等問題,這些問題影響著關(guān)系抽取的模型效果,因此在未來的研究中關(guān)系抽取仍充滿挑戰(zhàn)性。
本文在基于英文的實體關(guān)系抽取的基礎(chǔ)上,綜合了句子級和文檔級別兩個類別的關(guān)系抽取、基于流水線和聯(lián)合抽取兩種抽取框架的關(guān)系抽取和基于遠程監(jiān)督的關(guān)系抽取。本文只討論基于神經(jīng)網(wǎng)絡(luò)的關(guān)系抽取研究成果,并對具有里程碑意義的研究成果進行詳細(xì)的探討,以及分析了關(guān)系抽取目前存在的不足和仍需解決的問題。
目前關(guān)系抽取研究中,從文本的長度進行分類大致可分為句子級別(sentence-level)的關(guān)系抽取和文檔級別(document-level)的關(guān)系抽取。句子級別的關(guān)系抽取相對于文檔級別的關(guān)系抽取而言簡單,所給的文本句子中,頭實體和尾實體及其關(guān)系皆通過單句進行表達;文檔級別的關(guān)系抽取中,其頭實體和尾實體并不一定出現(xiàn)于同一句中,且其實體之間的關(guān)系可能存在于多個句子甚至多個段落之中。由于兩類關(guān)系抽取的任務(wù)具有差異性,因此其所使用的語料集也并不相同。
除了待抽取文本長度外,目前的語料集可以細(xì)分為通過人工標(biāo)注生成的語料集和通過遠程監(jiān)督生成的語料集兩類,這兩者之間的主要差別在于數(shù)據(jù)標(biāo)注的質(zhì)量。關(guān)系抽取研究中,較為廣泛的公開語料集如表1所示。
表1 關(guān)系抽取公開語料集匯總
目前的關(guān)系抽取研究中,基于流水線的關(guān)系抽取相對較多,該類關(guān)系抽取一般將關(guān)系抽取任務(wù)分成兩步:命名實體識別和關(guān)系分類。
早期的關(guān)系抽取模型中,比較依賴于對文本的特征的抽取工作。Mintz等[1]提出基于特征的關(guān)系分類模型,他將實體事件的詞序列、詞性標(biāo)注、實體位置、實體臨近的k個詞作為詞法特征,另外使用依存句法分析,將實體之間的路徑作為語法特征。在此基礎(chǔ)上,Riedel等[2]提出了多實例學(xué)習(xí)來解決語料集在遠程監(jiān)督過程中產(chǎn)生的噪音問題。該方法提高了當(dāng)時關(guān)系抽取任務(wù)的模型效果。
關(guān)系重疊是關(guān)系抽取領(lǐng)域中一個待改進的關(guān)鍵性問題。在關(guān)系抽取中,一個實體可能只和另一個實體存在單一的關(guān)系,這種關(guān)系類型被定義為Normal類型,代表沒有重疊的部分;但實際情況中,一個實體可以和另一個實體存在著多種關(guān)系,這種則被定義為EPO(Entity Pair Overlap);更復(fù)雜的情況則是一個實體和其他不同實體之間存在著多種關(guān)系,則被定義為SEO(Single Entity Overlap)。Hoffmann[3]等則提出多實例多標(biāo)簽(multi-instance multi-labels,MIML)來解決關(guān)系重疊的問題。他們即將一系列包含實體對的句子作為輸入,利用概率圖模型,最終來獲得它們之間的關(guān)系。
2013年Mikolov等[4]提出了Word2vec,詞嵌入工具的提出改變了自然語言處理領(lǐng)域的版圖,深度學(xué)習(xí)方法開始廣泛應(yīng)用于自然語言處理領(lǐng)域。詞的分布式嵌入表示,也成了基于深度學(xué)習(xí)的自然語言處理模型的核心部分。卷積神經(jīng)在圖像處理中的應(yīng)用取得不錯的效果,因此在自然語言處理領(lǐng)域也逐漸被重視起來。2014年,Zeng等[5]使用卷積神經(jīng)網(wǎng)絡(luò)進行關(guān)系抽取任務(wù)。文中使用了詞嵌入模型[6],還使用了詞和兩個實體之間的距離向量作為模型的輸入,通過卷積神經(jīng)網(wǎng)絡(luò)來抽取出句子的特征向量,最后經(jīng)過一個帶softmax分類器的前向神經(jīng)網(wǎng)絡(luò)進行關(guān)系分類。
2015年,Zeng等[7]提出了分段卷積神經(jīng)網(wǎng)絡(luò)(Piecewise Convolution Neural Network,PCNN),進一步提升關(guān)系抽取的模型效果。在PCNN中的max-pooling操作并非是整個句子的特征,而是將句子分為三個部分:句子開始到實體1,實體1到實體2,實體2到句子末,每個單獨的分段都有單獨的卷積神經(jīng)網(wǎng)絡(luò),它們之間的參數(shù)并不共享。這種優(yōu)勢在于能更好地學(xué)習(xí)到句子各個分段的特征,并且通過拼接的方式綜合考慮三個分段的信息,最后將其輸入softmax分類器進行分類。
注意力機制的發(fā)展極大地促進了自然語言處理的發(fā)展,在自然語言處理各個子領(lǐng)域(如文本分類、情感分析等)上皆取得了不錯的效果。Shen等[8]將注意力機制結(jié)合卷積神經(jīng)網(wǎng)絡(luò)進行關(guān)系抽取任務(wù)。該文獻中,卷積神經(jīng)網(wǎng)絡(luò)被用于提取全局特征,而注意力機制則分別基于兩個實體應(yīng)用于句子中的單詞。實體最后的一個字的詞嵌入和其他詞語的詞嵌入進行拼接,計算每個詞語的注意力權(quán)重。詞向量通過使用注意力分?jǐn)?shù)進行加權(quán)平均后得到注意力特征向量,然后將其和詞向量進行拼接,輸入帶softmax的前饋神經(jīng)網(wǎng)絡(luò)進行關(guān)系分類。Zhang等[9]提出了基于LSTM的位置意識的注意力機制模型,也取得了不錯的效果,其模型結(jié)構(gòu)見圖1。
圖1 基于LSTM的位置意識注意力機制模型結(jié)構(gòu)
2018年,Devlin等[10]提出了基于Transformer的BERT(Bidirectional Encoder Representations from Transformers)模型,它只采用了Transformer的編碼器部分卻超過了當(dāng)時自然語言處理各個任務(wù)的前沿模型和方法。隨后,基于BERT的子注意力模型不斷被提出,例如效果更好的ALBERT[11]等。BERT的基礎(chǔ)模型直接應(yīng)用到中文的關(guān)系抽取中就已經(jīng)取得不錯的效果,Han等[12]則在開放領(lǐng)域的文檔級關(guān)系抽取任務(wù)中使用了BERT模型,基于DEMMT(Document-level Entity Mask Method with Type Infor mation)的基礎(chǔ)上,提出了基于BERT的one-pass模型,文中模型在DocRED數(shù)據(jù)上進行實驗,相比于其他State of art模型的F1值提高了6%。
近5年來,圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)逐漸被NLP領(lǐng)域?qū)W者們關(guān)注。
2017年Quirk等[13]提出基于圖網(wǎng)絡(luò)的跨句關(guān)系抽取,該文中以句子中的詞作為圖的節(jié)點,而其中的邊則由相鄰的詞、依存關(guān)系還有語義關(guān)系等決定。接下來在圖中計算出所有實體之間的可達路徑,而每一條路徑也表示著不同的文本特征,如句法特征、語義特征和詞性標(biāo)注等。通過以上特征來抽取出實體之間的關(guān)系。同年,Peng等[14]也在N元關(guān)系抽取中使用了圖神經(jīng)網(wǎng)絡(luò),不同的是該文中是將LSTM用于圖神經(jīng)網(wǎng)絡(luò)中。而基于LSTM的圖神經(jīng)網(wǎng)絡(luò)中,如果以文本中的詞作為節(jié)點,其中的邊只包含詞與詞之間的鄰接關(guān)系,此時的LSTM是常規(guī)的線性LSTM神經(jīng)網(wǎng)絡(luò);但如果邊的信息包含了依存句法樹中所表現(xiàn)的詞之間的依存關(guān)系,則變成了樹形LSTM(tree-LSTM),其模型架構(gòu)見圖2。而與之相近的成果就是Song等[15]所發(fā)表的文獻。Song等與Peng等的任務(wù)不同之處在于并沒有把圖分為兩個,而是直接在圖上進行迭代t個時間步更新圖的節(jié)點,如圖2所示,當(dāng)前時間步的隱藏狀態(tài),通過在圖結(jié)構(gòu)中與之相鄰的結(jié)點信息的上一時間步的信息對其更新獲得。
圖2 基于Graph-LSTM的跨句N元關(guān)系抽取模型
在關(guān)系抽取任務(wù)中,最短依存路徑(Shortest Dependency Path,SDP)被證實能有效地提取實體之間的關(guān)鍵信息,Guo等[16]提出了在GCN中使用軟剪枝會對GCN模型的效果有所提升,因此考慮整個依存樹信息來構(gòu)建鄰接矩陣,并使用多頭子注意力機制進行軟剪枝來區(qū)分獲得重要程度。
圖神經(jīng)網(wǎng)絡(luò)在文檔級的關(guān)系抽取中,也取得了不錯的效果。Sahu等[17]將文檔中的單詞作為圖結(jié)點,同時基于依存句法樹、鄰接的詞語和公指關(guān)系來確定邊。類似的工作如Christopoulou等[18]提出的方法,不同之處在于Christopoulou等使用啟發(fā)式算法在文檔的不同成分之間建立自然聯(lián)系的邊,用邊來構(gòu)建圖,而這些邊的建立又基于預(yù)先定義的文檔級的相互關(guān)系,比如Mention-Mention(MM)、Mention-Sentence(MS)等,然后使用圖神經(jīng)網(wǎng)絡(luò)進行特征學(xué)習(xí),最后在推理層迭代N次后進行關(guān)系分類,該模型在CDR數(shù)據(jù)集上進行實驗并取得了不錯的效果。
上述所有工作都是基于實體已經(jīng)被識別出來的基礎(chǔ)上,進行關(guān)系抽取任務(wù),我們稱之為基于流水線的關(guān)系抽取,它大致地將關(guān)系抽取任務(wù)分為實體識別和關(guān)系抽取兩步。是否能將這兩個步驟進行一體化則是聯(lián)合抽取重點解決的問題。
在初期的聯(lián)合抽取研究中,學(xué)者們試圖通過共享參數(shù)的方式將命名實體識別和關(guān)系分類任務(wù)一體化。這些工作首先找出文本中所有可能的實體對,然后在文中抽取所有的實體組合的關(guān)系。命名實體識別任務(wù)和關(guān)系分類任務(wù)都是通過同一個神經(jīng)網(wǎng)絡(luò)進行實現(xiàn),嚴(yán)格意義上,并沒有實現(xiàn)真正的聯(lián)合抽取。
Zheng等[19]提出了第一個真正意義上的聯(lián)合抽取模型。文中工作的主要思想是將聯(lián)合抽取任務(wù)轉(zhuǎn)換成序列標(biāo)注任務(wù)處理。通過組合實體標(biāo)簽和關(guān)系標(biāo)簽,構(gòu)建新的標(biāo)注標(biāo)簽,通過新的標(biāo)簽?zāi)軌驅(qū)嶓w信息和關(guān)系信息進行編碼,然后通過使用由BiLSTM和LSTM組成使用該標(biāo)簽進行序列標(biāo)注任務(wù),最終通過標(biāo)注的結(jié)果給出句子中所包含的關(guān)系三元組。Zeng等[20]提出了使用Eoncode-Decode網(wǎng)絡(luò)中的復(fù)制機制(Copy Mechanism)進行抽取關(guān)系三元組來解決實體重疊的問題。Takanobu等[21]提出使用層次強化學(xué)習(xí)進行關(guān)系抽取任務(wù);Nayak等[22]在Encoder-Decoder框架的基礎(chǔ)上提出了一個詞級的解碼器框架和一個基于指針的解碼器框架。
基于流水線的關(guān)系抽取中,數(shù)據(jù)稀疏問題尤為嚴(yán)重,None類別的數(shù)據(jù)占據(jù)了絕大部分,但None類別的數(shù)據(jù)中并非所有樣本都是無關(guān)系類別,部分樣本所屬關(guān)系類別可能不在定義的關(guān)系集中,導(dǎo)致最終被分類為None類別,而None類別的關(guān)系樣本對于深度學(xué)習(xí)模型沒有太多的幫助也不能幫助構(gòu)建知識圖譜。
聯(lián)合抽取的研究中,目前已有的工作并不能很好地考慮到樣本訓(xùn)練集或者測試集中不存在關(guān)系三元組的情況,因此在未來的研究中如何識別和處理文本中無關(guān)系的類別將是一項挑戰(zhàn)。另外,由于數(shù)據(jù)稀疏的問題和數(shù)據(jù)集的質(zhì)量都普遍不高、遷移性差等問題,基于Zero-shot和Few-shot的小樣本學(xué)習(xí)關(guān)系抽取將是未來一段時間的研究熱點。