馮 桫,劉井平,蔣海云,肖仰華
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200433)
近年來,隨著自然語言處理需求的不斷增長,知識圖譜成為人們研究的焦點(diǎn)。目前,知識圖譜已經(jīng)被廣泛地應(yīng)用于各種智能化的推薦系統(tǒng)[1]、問答系統(tǒng)[2]以及語言生成[3]等諸多場景。為滿足這些應(yīng)用的數(shù)據(jù)需求,研究人員構(gòu)建出大規(guī)模的知識圖譜,如英文的DBpedia[4]、YAGO[5]以及中文的CN-DBpedia[6]等。在這些知識圖譜中,數(shù)據(jù)通常以<實(shí)體,屬性(關(guān)系),屬性值(尾實(shí)體)>的三元組形式進(jìn)行組織,例如“特朗普的國籍是美國”這一條知識,就可以被表示為<特朗普,國籍,美國>。由于本文所敘述的方法對屬性值及尾實(shí)體的抽取均適用,后文將屬性和關(guān)系統(tǒng)一稱為屬性,將屬性值和尾實(shí)體統(tǒng)一稱為屬性值。
在構(gòu)建知識圖譜的過程中,獲取圖譜中實(shí)體相關(guān)的各屬性的屬性值是非常重要的步驟。傳統(tǒng)的屬性值抽取方法主要分為基于模式的方法、基于分類器的方法和基于序列標(biāo)注模型的方法?;谀J降姆椒ㄍǔ1挥糜趶母哔|(zhì)量的半結(jié)構(gòu)化文本(如百科頁面的信息表)中,利用句法模式[7]、語義模式[8]或正則表達(dá)式等人工或自動生成的模式直接進(jìn)行抽取。由于這類半結(jié)構(gòu)化文本的表達(dá)規(guī)律性強(qiáng),通過基于模式的方法可以用較小代價得到大量高質(zhì)量的三元組。此類方法已經(jīng)被應(yīng)用于大量的知識圖譜構(gòu)建實(shí)踐中。基于分類器的方法首先需要利用命名實(shí)體識別(NER)工具,在文本中定位整個三元組的實(shí)體和屬性值。然后利用類似PCNN[9]及文獻(xiàn)[10]所述的分類器,結(jié)合實(shí)體和屬性值之間的上下文信息,分類得到三元組對應(yīng)的屬性,從而實(shí)現(xiàn)抽取。基于序列標(biāo)注模型的方法最初的序列標(biāo)注模型常被應(yīng)用于NER 等任務(wù)中[11]。隨著序列標(biāo)注模型的發(fā)展,序列標(biāo)注模型也開始被應(yīng)用于抽取任務(wù),例如,人們利用BiLSTM-CRF 神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了已知屬性下的實(shí)體和屬性值抽取[12]。近年來,隨著注意力機(jī)制的不斷發(fā)展,人們也開始使用更強(qiáng)的序列標(biāo)注模型,實(shí)現(xiàn)了具有較高準(zhǔn)確率的屬性值抽取方法[13]。
隨著在真實(shí)場景下數(shù)據(jù)需求的不斷擴(kuò)展,知識圖譜開始需要更多細(xì)節(jié)的知識,這使得從互聯(lián)網(wǎng)語料中抽取更多更稀有的屬性成為知識圖譜構(gòu)建中的新問題。傳統(tǒng)的基于模式的方法由于互聯(lián)網(wǎng)語料的高噪音,導(dǎo)致人工構(gòu)建模式的工作量大幅增加,自動構(gòu)建模式準(zhǔn)確率下降,難以召回足夠的高質(zhì)量知識。而對于和訓(xùn)練集有著較強(qiáng)相關(guān)性的分類方法和序列標(biāo)注方法,目前仍然缺乏高質(zhì)量的基于互聯(lián)網(wǎng)語料的訓(xùn)練數(shù)據(jù)。并且由于模型本身的限制,它們難以抽取超出訓(xùn)練集之外(缺乏訓(xùn)練數(shù)據(jù))的稀有屬性,使得其應(yīng)用受到了限制。
考慮到傳統(tǒng)方法在新場景下所受到的限制,本文提出一種基于機(jī)器閱讀理解模型和眾包驗(yàn)證的屬性值抽取方法。該方法的輸入為所需抽取的實(shí)體-屬性對,通過構(gòu)造搜索關(guān)鍵字從互聯(lián)網(wǎng)中獲得上下文,并根據(jù)機(jī)器閱讀理解模型,以類似序列標(biāo)注模型的形式標(biāo)注出候選屬性值并得到置信度。在此基礎(chǔ)上,通過輕量化的眾包驗(yàn)證方法,對模型得到的抽取結(jié)果進(jìn)行驗(yàn)證,并調(diào)整優(yōu)化各候選結(jié)果置信度以得到最終的抽取結(jié)果。
實(shí)體屬性值抽取任務(wù)的輸入為所需抽取的實(shí)體-屬性對,輸出為抽取得到的屬性值。本文屬性值抽取方法總體框架如圖1 所示。
圖1 本文方法的總體框架Fig.1 Overall framework of the proposed method
本文方法主要步驟如下:
步驟1構(gòu)造搜索關(guān)鍵字與獲取互聯(lián)網(wǎng)上下文。對于輸入的實(shí)體-屬性對,需要其相關(guān)上下文作為抽取時的知識來源。通過簡單的模板,“[實(shí)體]的[屬性]”可以構(gòu)造出用于搜索引擎搜索的關(guān)鍵字,例如對于實(shí)體-屬性對<西虹市首富,上映時間>,可以構(gòu)造出搜索關(guān)鍵字“西虹市首富的上映時間”。利用上面構(gòu)造的關(guān)鍵字進(jìn)行搜索,可以從搜索引擎的結(jié)果頁中抓取各條結(jié)果的摘要信息,由于這些摘要信息為基于實(shí)體-屬性對構(gòu)造出的關(guān)鍵詞的相關(guān)內(nèi)容,本文直接把搜索結(jié)果中的前k條作為獲取的互聯(lián)網(wǎng)上下文。
步驟2基于機(jī)器閱讀理解模型的候選屬性值抽取。機(jī)器閱讀理解模型以實(shí)體-屬性對和一條對應(yīng)的上下文作為輸入,并輸出從該上下文中抽取出的候選屬性值及其置信度。
步驟3眾包驗(yàn)證。得到候選屬性值及其置信度后,本文引入一種基于判斷題形式的眾包驗(yàn)證任務(wù)。在人工標(biāo)注中,僅需要根據(jù)提示對各侯選屬性值進(jìn)行簡單判斷。通過人工判斷的結(jié)果對上面步驟得到的候選屬性值的置信度進(jìn)行調(diào)整,最終選擇置信度最高的一條結(jié)果作為輸出。
為實(shí)現(xiàn)對候選屬性值的抽取,本文提出了針對屬性值抽取的機(jī)器閱讀理解模型,即MCKE(Machine reading Comprehension Knowledge Extraction)模型。該模型主要來自文獻(xiàn)[14-15]中的兩個基于注意力機(jī)制的機(jī)器閱讀理解模型,它們在機(jī)器閱讀理解任務(wù)上有著較高的準(zhǔn)確率。針對屬性值抽取任務(wù),MCKE 模型通過引入BERT 進(jìn)行字級別的輸入表示學(xué)習(xí),并在輸入表示的過程中進(jìn)行了上下文表示的增強(qiáng),從而提高其對屬性值抽取任務(wù)的適應(yīng)性。MCKE 模型的整體架構(gòu)如圖2 所示。
圖2 MCKE 模型的整體架構(gòu)Fig.2 Overall framework of MCKE model
本文模型的輸入為上下文字符串C,以及用空格隔開的由實(shí)體和屬性拼接而成的字符串Q。模型的輸出為最終抽取結(jié)果的起始位置以及末尾位置的概率分布,分別為ps和pe。
本文模型主要包含輸入表示、表示變換、注意力層、輸出層等組成部分。
2.1.1 字符級別表示
不同于常用的Word2Vec[16]、GloVe[17]等詞嵌入方法,本文選擇使用Google 最新提出的BERT[18]語言模型來獲得模型輸入部分的向量表示。BERT 模型是一種Transformer[19]結(jié)構(gòu)實(shí)現(xiàn)的語言模型,實(shí)現(xiàn)了對于各輸入字符上下文的編碼。不同于傳統(tǒng)詞嵌入方法中字符的表示與上下文無關(guān),本文引入BERT可以使同一個字符輸入在上下文不同的情況下有著不同的向量表示,其包含了與字符同時輸入的上下文信息。
在MCKE 模型中使用了預(yù)訓(xùn)練的BERT 模型來獲得輸入信息的向量表示,對于實(shí)體-屬性輸入和上下文輸入Q={q1,q2,…,qm}和C={c1,c2,…,cn},先在其首尾添加標(biāo)識符[CLS]和[SEP],將其輸入BERT 模型中,得到輸入實(shí)體-屬性表示與上下文表示的U0={u1,u2,…,um}和H0={h1,h2,…,hn}。
2.1.2 增強(qiáng)表示
除字符級別的表示外,本文針對上下文輸入進(jìn)行了表示的增強(qiáng)。通過計(jì)算額外信息向量,在表示中標(biāo)注了和實(shí)體-屬性有關(guān)部分的信息,也間接補(bǔ)充了分詞的信息。在上下文輸入中引入實(shí)體-屬性輸入內(nèi)容的位置信息,可有助于模型對句子結(jié)構(gòu)信息的學(xué)習(xí),增強(qiáng)其對稀有屬性的抽取效果,增強(qiáng)表示方法如下:
1)對輸入的上下文和實(shí)體-屬性進(jìn)行分詞得到Cword={cw1,cw2,…}和Qword={qw1,qw2,…},其中,qwi和cwi為分詞結(jié)果得到的詞語。利用這部分信息,可以計(jì)算上下文中各詞的額外信息向量,其組成部分如式(1)所示:
2)每個信息向量包含兩個維度,其中,第一維表示該詞語是否被包含在實(shí)體-屬性輸入中,第二維表示該詞語中各字符被包含在實(shí)體-屬性輸入中的比率。計(jì)算得到各額外信息向量后,將其與H0中各對應(yīng)的字符向量進(jìn)行拼接,得到增強(qiáng)過的上下文表示,如式(2)所示:
基于本文提出的模型,在整個模型的輸入和輸出過程中需要對文本的表示進(jìn)行變換,從而生成其后面步驟所需的表示。為此,本文引入了類似于文獻(xiàn)[14]所采用的編碼模塊,并通過這些編碼模塊實(shí)現(xiàn)表示的變換。
在一個編碼模塊中,對于一個輸入表示X,首先對該表示進(jìn)行位置編碼。位置編碼是一種常用的用于在非循環(huán)神經(jīng)網(wǎng)絡(luò)中保留輸入位置信息的方法。經(jīng)過位置編碼后,得到新的表示。
在編碼模塊中,使用了3 種不同的編碼層對輸入表示進(jìn)行變換,即卷積層、自注意力層和前饋層。
編碼模塊中的卷積層選用了Separable 卷積層[20],其相比普通的卷積層有著計(jì)算速度快、泛化能力強(qiáng)的優(yōu)勢。在本文模型中,卷積核大小設(shè)為7,并通過padding 方法補(bǔ)全輸出至和輸入相同維度。
編碼模塊中的自注意力層使用了多頭注意力的方式來計(jì)算,從而增強(qiáng)自注意力層對于多關(guān)注點(diǎn)的信息,對于輸入X進(jìn)行如下計(jì)算:
其中,O為本層輸出,和WO為可訓(xùn)練的參數(shù)。本文模型自注意力層的頭數(shù)設(shè)為2。
編碼模塊中的前饋層計(jì)算方法如下:
為防止訓(xùn)練過程中可能出現(xiàn)的梯度消失現(xiàn)象,在上述各層的使用中都加入了殘差機(jī)制。對于編碼模塊中各層,其輸出為:
其中,layernorm 為Layer Normalization[21]。
通過上述3 種層的結(jié)合,可以得到2 種不同的編碼模塊,在注意力層之前的編碼模塊,由4 個卷積層、1 個自注意力層和1 個前饋層組成。在注意力層之后的編碼模塊,由2 個卷積層、1 個自注意力層和1 個前饋層組成。
注意力層的輸入是前面步驟獲得的上下文表示和實(shí)體-屬性表示,經(jīng)過編碼模塊之后得到的新表示結(jié)果和。在本文步驟中,主要利用注意力機(jī)制對上下文表示進(jìn)行進(jìn)一步的增強(qiáng)。
采用類似于文獻(xiàn)[15]的方法,本文模型需要首先通過式(8)中的線性變換,得到實(shí)體-屬性表示的相似性矩陣S。
其中,⊙為元素級別的乘法,Ws為可訓(xùn)練的參數(shù)。利用相似性矩陣S,經(jīng)過式(9)~式(12)中的變換,可以進(jìn)一步計(jì)算上下文對實(shí)體-屬性對的注意力A,以及實(shí)體-屬性對與上下文的注意力B。
最終通過對上述注意力以及表示的組合,得到融合了實(shí)體-屬性信息的新上下文表示G,其中Gi=[hi,ai,hi⊙a(bǔ)i,hi⊙bi]。
經(jīng)過注意力層得到的新的上下文表示G后,經(jīng)過3 個額外的編碼模塊,可以分別得到用于計(jì)算輸出的3 個新的上下文表示:G0=Encoder(G),G1=Encoder(G0),G2=Encoder(G1)。
模型的輸出層通過對拼接之后的編碼進(jìn)行一次非線性變化,可以得到抽取結(jié)果的起始位置和末尾位置在上下文輸入中位置的概率分布:
其中,W1與W2為可訓(xùn)練的參數(shù),[;]為向量拼接操作,ps為起始位置分布,pe為末尾位置分布。
本文模型的目標(biāo)函數(shù)為:
基于模型輸出的起始位置分布ps以及末尾位置分布pe,通過最大化得到相應(yīng)的起始和終止位置(start,end),就可以得到最終的抽取結(jié)果所在的坐標(biāo)。該抽取結(jié)果的置信度為。
在經(jīng)過模型抽取后可以發(fā)現(xiàn),一些容易混淆的結(jié)果通常在置信度上相差不多。本文參照文獻(xiàn)[22]中的架構(gòu),引入一種高效率的判斷題式眾包驗(yàn)證任務(wù),對合理的抽取結(jié)果進(jìn)行獎勵,對不合理的結(jié)果進(jìn)行懲罰來進(jìn)一步提高抽取的效果。
本文將眾包任務(wù)設(shè)定為判斷題,以提高眾包任務(wù)的時間效率。將抽取任務(wù)中的上下文、實(shí)體-關(guān)系對以及抽取的候選屬性值展示給眾包工人,由工人判斷這一候選屬性值是否合理。通過這樣的手段,降低了工人的準(zhǔn)入門檻,提高了任務(wù)的完成效率。本文所設(shè)計(jì)的眾包任務(wù)的實(shí)際界面如圖3 所示。
圖3 眾包驗(yàn)證的用戶界面Fig.3 User interface for crowdsourcing validation
在界面中,為方便定位,在上下文中對候選屬性值進(jìn)行了加粗處理,方便在遇到困難情況時快速跳轉(zhuǎn)到下一條任務(wù),提供不確定的選項(xiàng)。
通過對各結(jié)果進(jìn)行眾包后,可以獲得對每條候選結(jié)果的包含正確、錯誤及不確定3 種選項(xiàng)的信任度投票情況?;谶@些情況,對在眾包驗(yàn)證中被選擇正確占比較高的候選結(jié)果的權(quán)重進(jìn)行獎勵,對被選擇錯誤數(shù)量占比較高的結(jié)果的權(quán)重進(jìn)行懲罰,并保持被選擇不確定的結(jié)果的權(quán)重??梢詤^(qū)分置信度相差不大的易混淆結(jié)果,并對模型抽取出的錯誤結(jié)果進(jìn)行排除。參考文獻(xiàn)[23]中的基于正確、錯誤、不確定3 項(xiàng)標(biāo)注的置信度計(jì)算方法,可利用式(16)計(jì)算得到調(diào)整系數(shù)γi:
最終以具有最高抽取分?jǐn)?shù)的屬性值作為抽取結(jié)果輸出,其中分?jǐn)?shù)大于閾值β的結(jié)果被作為有效抽取結(jié)果。
本文所采用的實(shí)驗(yàn)數(shù)據(jù)分為2 個部分:1)抽樣數(shù)據(jù),從CN-DBpedia 中抽樣得到的162 組實(shí)體-屬性對以及其對應(yīng)的屬性值;2)新實(shí)體數(shù)據(jù),采用人工標(biāo)注得到的496 組實(shí)體-屬性對以及對應(yīng)屬性值。為保證實(shí)驗(yàn)數(shù)據(jù)的多樣性,在上面的實(shí)驗(yàn)數(shù)據(jù)獲取過程中,選擇了分別來自于手機(jī)、電影、事件、游戲、顯卡等多種類別實(shí)體。
在實(shí)驗(yàn)的過程中,上下文信息使用了在搜索引擎(百度)上的結(jié)果頁面,將召回的各條結(jié)果信息分條作為實(shí)體-屬性對的上下文。對于每組搜索關(guān)鍵字獲取的結(jié)果數(shù)量k設(shè)為10。
模型的訓(xùn)練數(shù)據(jù)包括以下2 個部分:1)來自文獻(xiàn)[24]所提供的中文機(jī)器閱讀理解數(shù)據(jù)集;2)通過遠(yuǎn)程監(jiān)督方法從CN-DBpedia 和百度搜索引擎中得到的數(shù)據(jù)集。
4.2.1 實(shí)驗(yàn)設(shè)置
為驗(yàn)證本文所提出的候選屬性值抽取模塊(機(jī)器閱讀理解模型)的有效性,選擇了另外3 種模型作為基線。
1)序列標(biāo)注模型OpenTag[13]
OpenTag 是最新的一種適用于開放域?qū)傩灾党槿〉幕谧宰⒁饬C(jī)制的序列標(biāo)注模型,其在多個數(shù)據(jù)集上有著超過常用的BiLSTM 以及BiLSTMCRF 模型的效果。
2)機(jī)器閱讀理解模型QANET[14]
QANET 是由Google Brain 所提出的基于注意力機(jī)制的機(jī)器閱讀理解模型,它長期在機(jī)器閱讀理解的SQuAD 數(shù)據(jù)集的排行榜上位置靠前。
3)去除表示增強(qiáng)的MCKE?NA 模型
為驗(yàn)證表示增強(qiáng)部分的效果,本文也引入了不包含表示增強(qiáng)部分,僅使用字符級表示作為輸入的MCKE 模型進(jìn)行對比。
為評測模型本身的效果,在最終抽取結(jié)果的選定上,使用了一種簡單策略來計(jì)算最終的候選屬性值分?jǐn)?shù),類似于2.2 節(jié)所述,對有多個來源的候選屬性值,令其抽取分?jǐn)?shù)為與之相同的所有候選屬性值的置信度之和。最后,選取分?jǐn)?shù)最高的候選屬性值作為輸出,對于模型的輸出結(jié)果,其閾值設(shè)為β=0.1。
4.2.2 實(shí)驗(yàn)結(jié)果與分析
表1 列出了各基線模型與本文MCKE 模型在兩組數(shù)據(jù)上通過執(zhí)行上述簡單策略進(jìn)行屬性值抽取的結(jié)果,并分別評測了抽取結(jié)果的準(zhǔn)確率以及抽取結(jié)果PR 曲線(Precision-Recall 曲線)的曲線下面積(AUC)。
表1 屬性值抽取模型效果Table 1 Effect of attribute value extraction models
從表1 可以看出,本文的MCKE 模型在兩組數(shù)據(jù)中均在準(zhǔn)確率和AUC 上超過了所選的對比基線。在實(shí)驗(yàn)中發(fā)現(xiàn),基于標(biāo)注模型的OpenTag 方法的表現(xiàn)受限于訓(xùn)練數(shù)據(jù)的結(jié)構(gòu),難以召回訓(xùn)練數(shù)據(jù)中較為稀有的屬性所對應(yīng)的屬性值,導(dǎo)致其召回率的下降。并且,由于OpenTag 僅返回標(biāo)注結(jié)果,難以使用閾值對結(jié)果進(jìn)行篩選,導(dǎo)致了其在準(zhǔn)確率上表現(xiàn)偏低,對于QANET 和MCKE-NA 兩種機(jī)器閱讀理解模型,受限于它們本身對表示增強(qiáng)的缺乏,使得它們在稀有屬性中效果偏低,而MCKE-NA 由于缺乏詞級別的表示學(xué)習(xí),導(dǎo)致其結(jié)果屬性值不完整的情況較多。
表2 列出了實(shí)驗(yàn)中2 種機(jī)器閱讀理解模型得到的抽取結(jié)果。從表2 可以看出,對于顯卡相關(guān)的在知識庫中較為稀有的屬性,通過使用機(jī)器閱讀理解模型可以實(shí)現(xiàn)抽取,并且MCKE 模型的性能更強(qiáng)。同時,對于電影相關(guān)屬性,得益于MCKE 模型所采用的更優(yōu)秀的輸入表示學(xué)習(xí)方法與表示增強(qiáng)方法,可以抽取出語義更加完整的屬性值結(jié)果。
表2 屬性值抽取模型結(jié)果實(shí)例Table 2 Result examples of attribute value extraction models
4.3.1 實(shí)驗(yàn)設(shè)置
為驗(yàn)證眾包驗(yàn)證步驟的有效性,在本文實(shí)驗(yàn)中,將每個通過MCKE 模型得到的候選屬性值及其相關(guān)上下文輸入到眾包驗(yàn)證模塊,并邀請了5 位志愿者,每人隨機(jī)完成150 個眾包任務(wù)。對眾包結(jié)果進(jìn)行統(tǒng)計(jì)后調(diào)整權(quán)重,得到最終的抽取結(jié)果。
4.3.2 眾包驗(yàn)證分析結(jié)果
表3 列出了隨機(jī)進(jìn)行750 個任務(wù)以及其中前200 個任務(wù),在眾包驗(yàn)證之后所實(shí)現(xiàn)的抽取效果。通過對總共750 個眾包任務(wù)的日志進(jìn)行分析,發(fā)現(xiàn)本文眾包任務(wù)的平均響應(yīng)時間為4.21 s。
表3 眾包驗(yàn)證效果Table 3 Effect of crowdsourcing validation
實(shí)驗(yàn)結(jié)果表明,在增加了眾包驗(yàn)證的步驟后,在其他實(shí)驗(yàn)設(shè)置相同的情況下,可以糾正MCKE 模型抽取結(jié)果中的錯誤,使得準(zhǔn)確率大幅上升,并且可以發(fā)現(xiàn),其中存在的一些由于模型缺乏訓(xùn)練數(shù)據(jù)所導(dǎo)致的常識性錯誤結(jié)果以及其中出現(xiàn)了邊界錯誤的結(jié)果,可以被較快糾正,如表4 所示。
表4 眾包驗(yàn)證結(jié)果實(shí)例Table 4 Result examples of crowdsourcing validation
另外,在進(jìn)行分析的過程中發(fā)現(xiàn),通過調(diào)整置信度閾值,本文方法在閾值β為0.4 的情況下抽取出屬性值的準(zhǔn)確率為0.857。
本文針對日益增長的知識圖譜數(shù)據(jù)需求,提出一種基于機(jī)器閱讀理解以及眾包驗(yàn)證的實(shí)體屬性值抽取方法。從互聯(lián)網(wǎng)獲取相關(guān)上下文,利用機(jī)器閱讀理解模型從相關(guān)上下文中獲取候選屬性值,通過眾包驗(yàn)證從候選屬性值中找出最優(yōu)的抽取結(jié)果。實(shí)驗(yàn)結(jié)果表明,該框架能夠有效地從互聯(lián)網(wǎng)語料中抽取出實(shí)體屬性值,且提出的眾包任務(wù)能夠以較高的效率提升整體抽取效果。本文對于眾包結(jié)果的應(yīng)用僅針對抽取模型的結(jié)果驗(yàn)證,而從眾包結(jié)果中獲取的其他信息,也可成為模型增強(qiáng)訓(xùn)練的重要反饋,對于該部分信息的應(yīng)用將是下一步的研究重點(diǎn)。