謝斌紅,王恩慧,張英俊
太原科技大學 計算機科學與技術學院,太原 030024
隨著信息技術的蓬勃發展,網絡資源不斷涌現,出現了海量半結構化或者非結構化形式的數據,如何從這些復雜、多元分散和冗余異構的數據中提取結構化的、高質量的信息成為學者們研究的熱點問題。在這種背景下,關系抽取作為信息抽取重要的子任務之一,吸引了眾多學者的關注。關系抽取的目的是從無結構的文本中抽取出實體對之間的語義關系,它的解決有利于一些下游任務的完成,如知識圖譜的構建、關系問答系統等,同時關系抽取的研究對文本摘要、機器翻譯等研究領域也有著重要意義,因此具有廣闊的應用前景。
目前,最常用于實體關系抽取的方法是有監督的關系抽取,并且由于深度學習技術的成功應用,取得了較好的效果,但其代價是依靠人工標注數據,耗時耗力。因此為了獲得大規模的標注語料,Mintz等人[1]提出了使用遠程監督方法自動標注文本,它基于這樣的假設條件:假如兩個實體在知識庫(knowledge base,KB)中存在某種關系,則包含這兩個實體的句子都同樣表達這種關系。但真實情況下包含同一實體對的句子并不一定會表達相同的關系,因此錯誤標注就會引入噪聲問題。它的噪聲包括假陽性噪聲和假陰性噪聲,假陽性噪聲是指語料庫中某一實體對間的關系并非KB所標注的關系,如表1所示,假設(喬布斯,創立者,蘋果)三元組是KB中的一個關系事實,遠程監督就會把所有包含實體“喬布斯”和“蘋果”的句子作為關系“創立者”的訓練實例,但對于句子S1“喬布斯吃了一個蘋果”來說,它并沒有表達“創立者”的關系,遠程監督方法依然會將它作為此關系類型的正例,這類噪聲問題即為假陽性噪聲。假陰性噪聲是指由于知識庫不足,將語料庫中原本表達了某種關系的句子標注為不存在關系(non-relation,NA),如表1的句子S3,“張三結婚后生了兩個孩子,定居在北京”中存在著(張三,居住于,北京)的關系事實,但實體對(張三,北京)在KB中并不存在關系,因此S3被錯誤地標記為NA,這類噪聲問題即為假陰性噪聲。

表1 遠程監督關系抽取中錯誤標注的例子Table 1 Examples of incorrect annotations in distant supervision relation extraction
為了解決錯誤標注問題,Zeng等人[2]提出從噪聲數據中選擇正確的句子來進行關系抽取,但這樣無疑會丟失大量有用的句子;Lin等人[3]、Han等人[4]通過運用注意力機制對噪聲句子進行抑制來減輕錯誤標注對關系抽取模型性能的影響。雖然這些方法在一定程度上減少了噪聲數據的影響,但它們訓練和測試過程都是在包級別上進行的,無法處理包中全部句子都是噪聲數據的情況。為了進一步提高模型性能,很多學者將復雜的機制運用到了遠程監督關系抽取任務中,如Feng等人[5]、Yang等人[6]引入了強化學習,Qin等人[7]運用對抗學習更好地識別噪聲數據,進一步實現了句子級別上的關系分類,從而將每個關系映射到相應的句子,但它們只是簡單地運用強化學習的隨機策略,在選擇狀態和策略時會耗費時間。而且這些方法只聚焦于正例中的噪聲數據,并未解決在NA集合中被錯誤標注的實例。
因此,現有方法還存在著兩種挑戰。(1)只關注假正例問題,而忽略了可能表達了某種關系的假負例,沒有有效利用語料庫資源,而且混淆了關系分類器識別相應關系特征的能力。(2)基于強化學習的方法忽略了策略的探索和利用之間的平衡問題。使用隨機策略雖然可以幫助Agent遍歷各種狀態,避免陷入局部最優解,但是盲目嘗試會使Agent由于來回探索許多不必要的狀態和策略而浪費很多時間,降低了學習效率。
針對上述不足,本文提出采用帶有噪聲網絡的強化學習方法設計噪聲指示器,為噪聲數據分配正確的標簽,既可以減少噪聲數據的影響,又可以增加有用的訓練數據。具體來說,首先在Qin等人[8]提出使用假正例指示器解決假正例問題的基礎上,設計了假負例指示器,它根據關系分類器的性能變化移除或保留噪聲句子,從而識別每種關系的假負例,并為其分配正確的標簽,不僅可以移除正例中的噪聲數據,而且可以增多目標關系的訓練樣本。此外,考慮了策略的探索與利用的平衡問題。通過在策略網絡的權重上增加噪聲,使噪聲指示器在策略執行過程中既可以嘗試新的策略,發現能使獎勵最大化的行為,而且還可以利用已經學到的策略,提高強化學習的效率,更好地利用標注數據。
許多學者致力于研究基于有監督的實體關系抽取,如利用基于卷積神經網絡[9-10]、遞歸神經網絡[11-12]和長短期記憶網絡[13-14]的模型來進行句子特征的自動學習,實現了良好的關系抽取性能。但其缺點是需要依賴大量標注數據,不僅耗費成本高,而且學習到的關系抽取模型跨領域泛化性低,無法遷移到其他領域。因此,為了解決上述問題,Mintz等人[1]提出一種知識庫與語料庫啟發式對齊的遠程監督方法來進行大規模關系抽取,但由于它并非由人工直接標注,因此產生了錯誤標注的問題。
為了緩解錯誤標注帶來的噪聲問題,許多研究者將關系分類建模為一個多實例學習問題。Zeng等人[2]采用分段卷積神經網絡(PCNN)與多實例學習(MIL)相結合的方法,選擇最可靠的句子作為訓練數據。Lin等人[3]提出了基于注意力的方法,通過給噪聲數據分配較小的權重來抑制其對關系分類器的影響。Ji等人[15]還加入了實體描述信息來豐富句子的特征表示,使得對包中句子權重的分配更加準確。為了強化注意力機制,Han等人[4]引入關系之間的分層信息來識別有效的實例。Ye等人[16]同時考慮了包內和包間的注意力,分別處理句子級和包級噪聲。Feng等人[5]和Zeng等人[17]運用強化學習方法顯式地識別并移除假正例,進一步提高了關系分類器的性能。
很多學者認為,只通過簡單地抑制或移除噪聲數據會丟失數據本身所包含的有用信息,可以通過為噪聲句子分配可靠的標簽進一步豐富訓練數據。Wu等人[18]提出利用神經噪聲轉換器來減輕噪聲數據影響的方法,并且引入條件最優選擇器來對其進行正確的預測。Shang等人[19]引入無監督聚類方法為噪聲數據選擇合適的關系標簽。而且Qin等人[8]利用強化學習方法設計了可以應用到任何遠程監督關系抽取模型上的假正例指示器,可移植性比較強。Chen等人[20]致力于采用強化學習方法進行標簽去噪,從遠程監督方法標注的多個關系標簽中選取最可靠的一個,用新的關系標簽訓練關系分類器,使其性能得以提高。
然而,這些方法旨在通過處理假正例問題或噪聲標簽問題提高關系分類器的效果,忽視了同樣表達了目標關系的假負例,而在Riedel等人[21]對數據集的介紹中統計,有將近80%的數據都被標注為NA,因此如果在訓練時保持假負例的錯誤標簽,就會丟失大量有用的句子信息。另外這些方法并沒有考慮策略的探索度問題,當策略探索不充分時,使用采集到的樣本進行策略優化時就會陷入局部最優;而當策略探索太強,使用收集到的樣本進行策略優化時對于策略的改進并沒有幫助,反而降低了學習效率。
因此本文利用強化學習方法學習一個噪聲指示器來識別目標關系的假正例與假負例,充分利用遠程監督自動標注過程中兩種噪聲數據所包含的信息,同時采用Deepmind[22]在2017年提出的噪聲網絡,平衡策略的探索與利用問題,使噪聲指示器既可以嘗試新的策略,發現能使獎勵最大化的行為,而且還可以利用已經學到的策略,進行更有效的學習。
本文提出的基于噪聲網絡的強化學習遠程監督關系抽取模型由噪聲指示器和關系分類器兩部分組成。添加噪聲網絡的噪聲指示器根據策略網絡對當前給定的句子進行決策,識別當前句子標簽是否正確。關系分類器根據噪聲網絡的決策結果重分配噪聲數據,利用重分配的數據訓練網絡。同時,關系分類器反饋獎勵給噪聲指示器,優化噪聲指示器的策略功能。圖1描述了模型動態重分配噪聲數據的過程,首先利用噪聲指示器識別遠程監督數據集中的假正例(false positive instances,FP)與假負例(false negative instances,FN),同時為了提高強化學習模型的探索能力,在指示器的網絡空間中加入噪聲,對一個遠程監督句子做出移除或保留的決策,根據決策結果將FP從正例集中移出到負例集中,將FN從負例集中移出到正例集中;在對整個噪聲數據集進行決策之后,再利用重新生成的數據集訓練關系分類器,最后,利用關系分類器提供的獎勵指導噪聲指示器更新其策略網絡的參數。這兩部分在彼此動態交互中進行訓練。

圖1 動態重分配噪聲數據過程Fig.1 Dynamic redistribution of noisy data
本文將錯誤標注數據的識別建模為強化學習問題,其中,Agent即為噪聲指示器,Environment由分類器和噪聲數據組成,通過二者動態交互獲得魯棒的噪聲指示器,使其能夠采取更準確的行為。另外,利用策略網絡π(a|s;θ)對噪聲指示器進行參數化,即在狀態s下給出行為a的概率分布,并且根據關系分類器反饋的獎勵更新參數θ。由于強化學習的獎勵有延遲特性,噪聲指示器只有在每種關系的數據都處理完成后才能得到獎勵,從而更新其參數。本文的假正例指示器與Qin等人[8]的結構相同,下面重點介紹假負例指示器結構。
首先對假負例指示器中狀態、行為與獎勵等基本組件進行定義。
狀態。在強化學習中,一個最主要的前提是Environment必須滿足馬爾可夫決策過程(MDP),即當前的狀態轉移概率僅與前一狀態和行為相關,但遠程監督自動標注的數據集中每個句子彼此獨立,因此,為了將其構建為MDP,狀態s不僅需要包含當前句子信息,并且還要添加前一狀態下移除的句子信息。本文用當前輸入句子與早期狀態下被移除句子的特征相連接的實值向量來表示狀態,它包括:(1)由分類器的非線性層得到當前要處理的句子的向量表示repj;(2)早期狀態下被移除句子的平均向量表示repmean。
行為。假負例指示器是用來對NA集合中的句子是否為目標關系的假負例做出決策,因此每類關系都需要構建一個假負例指示器,并用行為aj∈{0,1}表示假負例指示器是否移除第j個句子。0表示當前句子未能表達目標關系,保留在NA集合中;1表示當前句子屬于目標關系,需要移除到目標關系的正例集合中。aj的值由假負例指示器的策略網絡π(a|s;θ)得到,其中θ是可以學習的參數。策略網絡的作用是判斷輸入句子是否具有目標關系的特征,從而采取移除或保留的決策,類似于二元關系分類問題。為了更好地捕捉文本的局部相關性,本文基于Kim[23]所提出的TextCNN網絡,并采用多個大小不同的核對句子關鍵特征進行提取,如圖2所示,經過TextCNN網絡的輸入層、卷積層、最大池化層和非線性層,最后進行二元決策分類。

圖2 噪聲指示器結構Fig.2 Noisy indicator structure
獎勵。獎勵函數用來衡量噪聲數據重新分配的好壞。從NA數據集中隨機分配樣本數為該目標關系正例的2倍的負例樣本R={x1,x2,…,x|R|},對每個句子進行決策,以判斷是否應該移除當前的句子。當假負例指示器把某個錯誤標注的句子移除到目標關系的正例樣本集合中時,關系分類器即可學到更多特征,從而實現更好的性能。本文假設當模型完成所有的決策,即到達最終狀態s|R|+1時會獲得一個最終的延遲獎勵:

其中,Rel表示當前處理的實體關系,表示在第i個epoch時分類器所計算的F1值表示在第i-1個epoch時分類器所計算的F1值,當F1值升高時分類器為假負例指示器反饋一個正獎勵,否則,給假負例指示器反饋一個負獎勵。α將F1值的差異轉化到一個合理的數值范圍內。
其中,F1的計算公式為:

Precision與Recall的計算公式如下:

TP表示真正例。
噪聲網絡。由于強化學習中基于策略的方法具有隨機性,很容易因盲目嘗試各種行為而浪費時間,因此本文通過在策略網絡參數中加入噪聲,幫助策略網絡將正確表達目標關系的句子移除到正例集合中,從而提高強化學習的效率。

其中f(·)取f(x)=sgn(x)||x,將該噪聲添加到策略網絡的全連接層即可表示為:

因此網絡的目標函數定義為J(ξ)=E[J(θ)],即只計算集合ξ中參數的梯度,但是計算損失時,將θ當作參數參加運算。
訓練基于策略的假負例指示器。
假負例指示器需要弱監督信息判斷表達了目標關系的句子是否被錯誤標注為NA,因此利用關系分類器提供的獎勵來調整參數。由上述可知,只有當一個關系中的所有負例都處理完成才能得到獎勵,如果隨機初始化策略網絡的參數,通過不斷地試錯來訓練模型,會浪費大量時間,因此先利用原始數據及標簽預訓練策略網絡和關系分類器,從而為假負例指示器的學習提供方向,節省訓練模型時間。
如圖3所示,在訓練過程中,對于第i個epoch,假負例指示器根據策略π(a|s;θ),從NA數據集Nori中將表達了目標關系的正例Hi移出,對應的該關系的負例集變為Ni=Nori-Hi,正例集變為Pi=Pori+Hi,因此該關系的數據集總量并未改變,實現了噪聲數據的充分利用。然后將新得到的數據集劃分為用于訓練關系分類器的訓練集和用來計算當前分類器的F1值的驗證集如上所述,利用相鄰兩個epoch分類器所計算得到的F1值的差異作為獎勵。

圖3 假負例指示器訓練過程Fig.3 Training process of false negative instances indicator
假負例指示器的目標是將概率分布取樣的行為期望回報最大化。而實際上,在相鄰兩個epoch中,由于強化學習的預訓練策略,假負例指示器已經擁有了一定的識別目標關系句子特征的能力,因此所過濾的句子并非完全不同的,則F1的差異主要體現在不同的移除部分。定義以下兩個集合:

其中,Zi-1表示移除的集合中第i-1個epoch不同于第i個epoch的部分,Zi則表示移除的集合中第i個epoch不同于第i-1個epoch的部分。因此,若第i-1個epoch所移除的句子質量更好,假負例指示器則會得到負的獎勵,相反,若第i個epoch所移除的句子質量更好,假負例指示器則會得到正的獎勵。因此其目標函數可定義為:

對于每一個關系Rel,根據當前策略為每個狀態依次取樣一個動作,然后得到一個采樣的軌跡{s1,a1,s2,a2,…,s|R|,a|R|,s|R|+1}以及對應的最終的獎勵r(s|R|+1|Rel),且只有s|R|+1處獎勵非零,因此對于t=1,2,…,|R|,r=r(st|Rel)=r(s|R|+1|Rel)。
根據策略梯度理論和REINFORCE[24]算法,本文使用策略梯度算法計算梯度并更新假負例指示器中策略網絡的參數:

本文使用關系分類器評價假負例指示器所采取的一系列行為的好壞,也是一個二元分類問題,因此同樣采用TextCNN架構。
算法1噪聲指示器和關系分類器的強化學習算法


輸入層:對每一個輸入句子,將其表示為向量列表x={v1,v2,…,vm},每個表示向量由詞嵌入和位置嵌入兩部分組成,維度分別為dw與dp,其中詞嵌入由word2vec[25]訓練獲得,位置嵌入通過計算該單詞距離頭實體與尾實體的相對距離得到。每個單詞的表示向量vk由該詞的詞嵌入及位置嵌入連接而得(vk∈Rd,d=dw+2×dp),然后將每個單詞的向量輸入到TextCNN中。
網絡模型:本文采用可以更好捕捉文本局部相關性的TextCNN架構將輸入語句編碼為低維向量,并預測對應的關系標簽,負標簽表示輸入語句不屬于此目標關系,對應于保留操作;正標簽表示輸入語句表達了此目標關系,對應于移除操作。

其中,x表示為輸入句子的向量,L∈Rds為經過卷積、池化的一系列計算后的輸出,ds為特征映射的數量。卷積層利用窗口大小為l的核滑動輸入句子向量x,得到的隱藏嵌入進入最大池化層得到最終的輸出L。
關系預測的概率如下:

其中,全連接層的參數Wr∈Rnr×ds是每個關系的類別嵌入,br∈Rnr是一個偏置向量,nr為總的類別數量。
損失函數:給定由假負例指示器重新分配的數據集,訓練關系分類器的目標函數定義如下:

經過上述強化學習過程后,假負例指示器具有了對假負例FN進行分類的能力。如果包含同一對實體的全部句子都被識別為假負例,這個實體對才被劃分到對應關系的正例集中。
由于噪聲指示器與包含噪聲數據和關系分類器的環境動態交互,因此需要聯合訓練這兩部分,而且在聯合訓練之前,為了節省時間,對噪聲指示器中的策略網絡和關系分類器中TextCNN進行了預訓練。噪聲指示器中的策略網絡使用策略梯度理論來優化,關系分類器中目標函數利用梯度下降法進行最小化。
算法1詳細描述了噪聲指示器和關系分類器的強化學習過程,噪聲指示器識別訓練集中的噪聲數據并進行重新分配,并對關系分類器進行訓練;關系分類器對新生成的數據進行預測從而計算F1值,并且相鄰epoch的F1值的差異作為獎勵反饋給噪聲指示器。
本文采用廣泛用于遠程監督關系抽取任務的Riedel[21]數據集,該數據集是通過將New York Times語料庫中的文本與Freebase知識庫中的實體對對齊得到的,New York Times語料庫中提及的實體由斯坦福命名實體識別器[26]識別。其中2005—2006年的文本用來進行訓練,2007年的文本用來進行測試。訓練數據集包括522 611個句子,281 270個實體對和18 252個關系事實。測試數據集包括172 448個句子,96 678個實體對和1 950個關系事實。共有53種關系,其中包括一個“NA”特殊標簽,用于表示實體對之間不存在關系。
本文采用留出法對模型進行了評價,將從測試語料庫中提取的關系事實和Freebase中的關系事實進行了對比,該方法在可以提供分類能力的近似測量的基礎上避免昂貴的人工評估。本文采用精度/召回率曲線來對模型的性能進行評估,除了精度/召回率曲線,還展示了特定召回率下的精度值,以便進行更直接的比較,并對模型的AUC值進行計算,以顯示不同模型的整體效果。AUC即Roc曲線與坐標軸形成的面積,表示隨機從正樣本集中抽取一個正樣本,負樣本集中抽取一個負樣本,正樣本的預測值大于負樣本的概率。其計算公式如下:

與之前的工作相同,本文直接使用Lin等人[3]給定的詞嵌入文件,只保留NYT中出現100次以上的詞。另外,對位置嵌入設置相同的尺寸,相對距離的最大長度為-30和+30(-和+表示實體的左右兩側),使用RMSprop優化器對噪聲指示器的參數進行優化,學習率為2E-5;使用Adam優化器對關系分類器的參數進行優化,學習率設為1E-3。具體超參數設置如表2所示。

表2 超參數設置Table 2 Hyperparameter settings
本文采用強化學習的方法解決上述PCNN+ONE/ATT只能處理假正例的問題,并且考慮了強化學習的探索與利用的平衡問題,利用添加了噪聲的指示器識別每一種關系的NA句子,將表達目標關系的句子重新分配到正例集合中,從而構建一個新的數據集。雖然Riedel[25]數據集中包含52種關系,但由于強化學習的訓練需要大規模數據,因此只選擇了正例數大于1 000的10種關系進行訓練。最后利用新構建的數據集分別訓練PCNN+ONE與PCNN+ATT模型,并且與使用原始數據集訓練后的模型進行比較。Original表示利用原始遠程監督數據集訓練PCNN+ONE/ATT模型;+FP表示利用Qin等人[8]基于強化學習方法設計的假正例指示器,將假陽性樣本移到負樣本集后得到新的數據集,用其訓練PCNN+ONE/ATT模型;+OURS表示利用本文方法對假陽性樣本及假陰性樣本進行重新分配,使用處理后的數據集訓練PCNN+ONE/ATT模型。實驗結果如圖4、圖5所示,將這三種方法的精確率-召回率曲線進行對比可知,由本文方法重新分配后獲得的數據集更加合理,同樣的模型其性能可以得到明顯的提升,這說明充分利用噪聲數據,以及添加噪聲網絡可以有效提高關系分類器的能力。

圖4 基于PCNN+ONE模型的PR曲線對比圖Fig.4 Comparison diagram of PR curve based on PCNN+ONE model

圖5 基于PCNN+ATT模型的PR曲線對比圖Fig.5 Comparison diagram of PR curve based on PCNN+ATT model
由于在召回率大于0.05時,模型的精確率-召回率曲線波動不明顯,為了更具體地解釋,將不同召回率(0.1/0.2/0.3/0.4)下的最高的精度及其平均值記錄在表3中。從結果中可以看出,相對比原始數據集以及僅處理假正例的數據集,本文方法提高了遠程監督關系抽取的準確性。為了更加直觀地比較,計算了每條PR曲線的AUC值,如表4所示,它反映了這些曲線下的面積大小。這些比較結果也表明了本文方法的有效性。

表3 各種神經網絡模型在不同召回率下的最大精度Table 3 Maximum precision of various neural network models at different recall 單位:%

表4 本文方法與以往研究的AUC值Table 4 AUC values of method in this paper and previous studies
本文對處理不同噪聲數據及添加噪聲網絡的有效性進行了實驗,結果如圖6、圖7所示,其中PCNN+ONE/ATT+ALL是將處理假正例與假負例的這兩種模型進行結合,可以充分利用對齊過程中產生的噪聲數據進行關系分類,相比于只處理假正例一種噪聲,其性能提升3%左右,因為重分配假負例,可以增多正確的訓練樣本,從而更好地學習關系特征。PCNN+ONE/ATT+ALL+Noisy是在策略網絡權值中加入參數噪聲,與PCNN+ONE/ATT+ALL相比,模型的分類效果進一步提升,說明參數噪聲的添加確實增強了強化學習探索的能力,幫助噪聲指示器更準確地重新分配噪聲數據,增多了正確表達實體-關系的句子。

圖6 不同設置下PCNN+ONE模型的PR曲線圖Fig.6 PR curve of PCNN+ONE model under different setting

圖7 不同設置下PCNN+ATT模型的PR曲線圖Fig.7 PR curve of PCNN+ATT model under different setting
為了驗證模型對于識別假負例數據的有效性,本文分別對模型識別出的每種關系的假負例數據進行統計,其結果如表5所示,表明本文所提出的模型可以用于糾正假負例標簽,而且本文對一些標記錯誤的數據進行了采樣,如表6所示,以S2為例,由于知識庫的不完整,因此認為實體對(kathleen,new_york_city)之間不存在關系,但其語句表達了二者之間存在/peo-ple/person/place_of_birth的關系,具有目標關系的特征。另外,S3雖然沒有表達任何關系,但因為在Freebase中存在關系事實(New Yorkcity,/people/deceased_person/place_of_death,William O’Dwyer),所以它被錯誤地標記為/people/deceased_person/place_of_death。從中可以看出,對于每種關系,本文的關系分類器對噪聲數據進行了準確的識別,表明本文的模型確實捕獲了噪聲數據的有效信息,并利用這些信息提高了遠程監督關系抽取模型的能力。

表5 每種關系重新分配假負例數量統計Table 5 Statistics on number of false negative cases of reallocation for each relationship

表6 案例研究實例(前兩個句子為假陰性實例,后兩個句子為假陽性實例)Table 6 Case study examples
本文提出了一個帶有噪聲網絡的強化學習模型,將本文模型與識別假正例的模型相結合,可用于識別并重新分配遠程監督關系分類中被錯誤標注的句子。通過利用基于策略的強化學習方法,最大化由關系分類器得到的獎勵從而訓練噪聲指示器識別、分配噪聲數據的能力,其中在策略網絡權值中加入參數噪聲,增加強化學習的探索。這樣,本文的模型不僅減少了錯誤標簽帶來的負面影響,而且可以利用噪聲數據所包含的關系特征。實驗結果表明,本文的框架提高了各種深度學習模型在Freebase對齊NYT公共數據集上提取遠程監督關系的性能。