ARNOR閱讀筆記

論文名稱《Attention Regularization based Noise Reduction for Distant Supervision Relation Classification》
基於注意力正則化的ARNOR框架

弱監督關係抽取

弱監督學習是有監督學習和無監督學習的折中,訓練數據只有部分標註有噪聲。
弱監督關係抽取主要有兩種框架:

  • 使用半監督學習和主動學習等技術以儘可能少的代價提升抽取效果,也就是儘可能減少對標註數據的需求
  • 使用遠程監督的思想,利用現有知識庫的關係三元組自動標註實體所在的所有文本作爲訓練數據。

基於多示例學習的方法

把含有特定實體對的句子集合看成一個多示例包,包中只要有一個句子正確表達出了指定關係,則當前這個包就是一個正包。在測試時直接對包進行預測,取包的預測結合作爲兩個實體之間的關係。
在這裏插入圖片描述
把訓練數據集中每一個數據看作一個bag,每個bag由多個instance組成,每個bag有一個可見的標籤而bag的instance沒有可見的標籤。如果包中至少包含一個標籤爲正的示例,則包的標籤爲正;如果包中所有示例的標籤都是負的,則包的標籤爲負。多示例學習的過程就是通過模型對包以及其包含的多個示例進行分析預測得出包的標籤。也就是隻對instance進行建模,不對其進行預測。

關係抽取的目標是獲得兩個實體之間的聯繫,而不是狹義地對句子分類。

將遠程監督關係抽取看作是一個多示例問題,這樣就只需要要求在回標的所有句子中,至少有一個句子能表示兩個實體間的關係。也就是將一個實體對對應的所有句子看作一個bag,其中的每一個句子就是一個instance,從而解決回標噪聲的問題。

多示例學習指導下的遠程監督關係抽取核心假設:至少一句表達真實關係,多示例學習降噪的流程是:
多示例包>>輸入向量化>>得到句向量>>得到包向量>>訓練分類器>>得到關係

訓練過程如下
在這裏插入圖片描述
這裏的yiy_i是標註的關係,m是instance,代表第i個bag中的第j個instance。每次輸入一個包及其對應的關係標籤,再從包裏挑選一個instance輸入進網絡,這個instance就是根據上面藍框裏面的公式挑選得出的,即選出最有可能表達關係yiy_i的那個instance。然後根據選出的instance改變網絡參數。
多示例學習的最終目的就是預測未知包的標籤,核心假設就是包裏面至少有一個正例。定義在包上的最終目標函數
J(θ)=i=1Tlogp(yimij;θ)J(\theta)=\sum_{i=1}^{T} \log p\left(y_{i} | m_{i}^{j} ; \theta\right)
這是一個對數似然函數,就是令所有T個包中各自選出的那個最可能對的instance是正確的可能性最大化。

推薦文獻:
曾道建,面向非結構化文本的關係抽取關鍵技術研究,中國科學院大學,2015
林衍凱,大規模結構化知識的表示學習、自動獲取與計算應用,清華大學,2019
Jun Feng. Reinforcement Learning for Relation Classification from Noisy Data. AAAI2018

基於Bootstrapping的方法

當前工業界多采用bootstrapping的框架,該方法首先給定初始種子模板,然後通過多次迭代選取置信度高的抽取結果,這也是開放式關係抽取的一種常見做法。
在這裏插入圖片描述
Bootstrapping算法即自擴展算法,是一種半監督的學習方法,也是一種機器學習中的一般性框架。其核心思想就是,首先通過人工干預得到初始種子集合,然後增量迭代進行自動訓練,直到模型收斂或者達到迭代上限。在每一輪的迭代中,都將產生一些新的標註數據,通過對這些標註數據進行打分和選擇,就可以得到新的種子數據,用這些新的種子數據重新訓練模型,新的模型又可以產生新的數據,如此循環往復,直到模型訓練結束。顯然,這類方法能夠極大減少學習過程中人的工作量,所以一直以來,在工業界都有着及其廣泛的應用。

而將Bootstrapping算法用到關係抽取領域的核心思想是,利用互聯網上的信息具有數據規模龐大且重複性高的特點,通過不斷自動迭代的方式來減少對標記數據的需求。在這種思想的指導下,一般假設擁有正確關係類別(Relation)的實例(Instance)中含有好的關係模式(Relation Pattern),反過來講,在關係抽取過程中,根據好的關係模式(類似正則)所發現的置信度較高的實例(也就是句子)也就是好的關係實例。所以,在少量初始種子集的基礎上,通過不斷迭代產生新的關係模式來擴充種子集,就可以實現低成本地標記大量文本數據的目的。
(這裏的關係模式就類似於學習到的模型)

常見的關係模式有

  • 兩個實體之間的文本
  • 兩個實體的最短依存路徑(SDP)

基於Bootstrapping的關係抽取僅僅需要少量的種子實例就可以迭代分類出大量未標註實例,可以極大地減少人工干預。具體來說,這種方法需要進行反覆迭代產生新的關係模式。在每一次的迭代中,我們在模式相似性度量函數的輔助下將新的、可靠的模式不斷加入到種子集中,即更新種子集。然後用新的種子集對剩餘的未標註模式再次進行預測分類,選擇出可靠的關係模式繼續加入到種子集中,該過程不斷循環,直到所有未標註模式沒有剩餘或滿足終止條件。流程圖描述如下

在這裏插入圖片描述

看到上面的這種迭代循環,很自然地就能想到最容易發生的問題:如果一開始更新種子集的時候誤差就存在,那後面隨着迭代的加深準確率是否就越來越走遠了?類似這樣的問題就叫做語義漂移問題。就是說隨着迭代的進行,新抽取的語義關係已經和原始種子數據集中表述的語義關係出現了偏差,這種現象被稱爲語義漂移現象。出現語義漂移的主要原因是擴展的文本實例不能正確的表示關係語義。這些錯誤的文本實例會提取出錯誤的模式表示方法,從而導致抽取效果的下降。因此,很多系統迭代過程中會加入一些抑制語義漂移的措施。例如,僅當置信度得分等於或高於特定值時,纔將該種子實例添加到種子集。

論文提出的模型:ARNOR

要解決的問題:遠程監督中的噪聲問題
現有方法的問題:

  • 句子級別的注意力機制不能夠關注句子內部的pattern信息
  • 單詞級別的注意力機制往往會重點關注實體,顯然,這種方法並沒有準確地理解句子的語義。

對語義的準確理解能夠幫助我們解決遠程監督中的噪聲問題。

ARNOR模型包括兩個部分

  • 注意力正則:使模型重點關注對句子關係判斷有突出貢獻的詞,這些詞也就是關係模式
  • 選擇和迭代:選擇那些模型能夠對關係標籤做出準確解釋的實例作爲種子數據,進行迭代

基於注意力機制的編碼器

編碼器結構圖如下所示
在這裏插入圖片描述
輸入層&編碼層:輸入一共包括三個部分,包括詞向量、位置向量和實體類型向量,將這三者拼接起來之後輸入到一個BiLSTM層中

注意力層:使用注意力機制來計算每個單詞的重要程度,按照注意力權重加權得到句子向量,這也就是一個標準的BiLSTM+ATT的模型結構。

整個模型結構圖用數學表達式可總結爲
M=tanh(H)a=softmax(wTM)u=HaT\begin{aligned} \mathbf{M}&=\tanh (\mathbf{H}) \\ \mathbf{a}&=\operatorname{softmax}\left(\mathbf{w}^{T} \mathbf{M}\right) \\ \mathbf{u}&=\mathbf{H a}^{T} \end{aligned}

最後得出的u就是句向量,H就是一句話中的詞向量矩陣,a就是圖中的柱狀圖也就是每個單詞的權重大小。

這樣的方法很經典,那麼有什麼缺陷呢?亦如圖所示,權重最高的詞是實體。也就是說這樣的方法將注意力過多關注於兩個命名實體的詞向量,而沒有注意到一句話中其他關鍵詞的重要性。

由此,作者提出了注意力層的正則機制。給定一個具有e1,e2兩個實體的句子,將其關係模式記作m,模型計算出的注意力分佈記作asa^s目標注意力分佈記作ama^m。顯然,我們希望asa^sama^m儘可能地接近,而度量兩個分佈相似度最直接的方法就是使用KL散度(相關概念不懂可參考這篇筆記,詳細講解了KL散度和交叉熵信息熵的關係)。

在這個應用場景下的KL散度表達式爲:
lossa=amlogamas=(amlogamamlogas)\begin{aligned} \operatorname{loss}_{a} &=\sum \mathbf{a}^{m} \log \frac{\mathbf{a}^{m}}{\mathbf{a}^{s}} \\ &=\sum\left(\mathbf{a}^{m} \log \mathbf{a}^{m}-\mathbf{a}^{m} \log \mathbf{a}^{s}\right) \end{aligned}
由於目標注意力分佈ama^m往往是一個定值所以第一項是常數就不用考慮了,KL散度要優化的部分也就是最終的loss值就寫爲:
lossa=amlogas\operatorname{loss}_{a}=-\sum \mathbf{a}^{m} \log \mathbf{a}^{s}
而關係分類任務classification結果錯誤也有一個loss值,將兩個loss綜合在一起可寫爲:
 loss =lossc+βlossa\text { loss }={loss}_{c}+\beta loss_{a}
這裏的βlossa\beta loss_a就是正則項,β\beta就是正則係數,在ARNOR的實驗中大部分情況設置爲1。

這樣就得出最終要優化的目標函數了。而目標函數中還有一項是不知道的,那就是ama^m,對於ama^m的計算,ARNOR中啓發式地人爲指定了關係模式:最後希望的目標的注意力分佈全都放在實體與實體之間的詞上面,實體與實體之間的所有詞每個詞的注意力權重值都一樣,權重和爲1。用數學表達式表述如下:
bi={1xi{e1,e2,m}0 else b_{i}=\left\{\begin{array}{ll} 1 & x_{i} \in\left\{e_{1}, e_{2}, m\right\} \\ 0 & \text { else } \end{array}\right.

am={bki=1Tbi}k=1T\mathbf{a}^{m}=\left\{\frac{b_{k}}{\sum_{i=1}^{T} b_{i}}\right\}_{k=1}^{T}

這裏的{e1,e2,m}包含了兩個實體和實體中間夾着的所有詞。

基於注意力權重的句子選擇

遠程監督關係抽取中的重要問題就是噪聲問題了。ARNOR提出了一個解決方案:對於一個句子,如果模型所關注的詞和關係模式中的詞完全不匹配(通俗講就是模型的attention分佈和期望的attention分佈完全對不上),這個句子則很有可能是一個噪聲句子。在這個思想的指導下,爲每個句子可以計算出一個置信度:
c=11+KL(amas)c=\frac{1}{1+K L\left(\mathbf{a}^{m} \| \mathbf{a}^{s}\right)}

對於置信度值低於閾值的句子,則將其視爲噪聲。該部分的流程圖如下
在這裏插入圖片描述
使用實體之間的所有詞作爲關係模式,在訓練開始,先使用出現次數位於前10%的關係模式作爲初始種子。而在標註數據中,所有匹配不到關係模式的句子,都會被標記爲None標籤,也就是負例。

整個算法的流程表述如下
在這裏插入圖片描述
一開始我們有數據集D,關係分類器C,還有根據數據集D中常出現的高頻關係模式組成的M。

首先先根據M重新排列一下D

然後進入如下的循環:

  • 用D(輸入數據)和M(標籤)訓練分類器C
  • 根據attention正則來更新分類器C的參數
  • 用訓練好的C給D裏面的數據重新打分
  • 將高分的D的關係模式加入進M
  • 用新的M重新排列D

這個循環的終止條件是,模型在驗證集的準確率不再提升。第一個循環運行10個epoch,訓練好分類器,之後每一個循環一個epoch。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章