基於深度學習的關係抽取最新進展(2018)
最早將深度學習應用到關係抽取的文章出現在COLING 2014上,近年來,基於深度學習的關係抽取呈現出蓬勃發展的趨勢。但一直以來,學者們大都致力於解決遠端監督標註資料產生的噪聲問題,將一些在通用自然語言處理任務中效果很好的方法應用到關係抽取任務上。直到2018年,隨著一些新技術和新思路的出現,學者們不再聚焦於傳統的去噪任務,逐漸開始針對關係抽取任務的特點進行一些深入分析和大膽嘗試。本文從2018年人工智慧和自然語言處理的頂級會議中選取了部分相關論文進行簡單介紹,希望能夠從中發現關係抽取的最新發展方向。
基本介紹
本文蒐集了2018年AAAI、IJCAI、ACL、COLING、EMNLP上所有和關係抽取/關係分類相關的論文,共計31篇(見附錄),總體來看,這些會議和論文的出發點大都為神經網路模型和相關的語言學知識,所涉及的技術包括強化學習、生成對抗網路、膠囊網路、圖卷積網路等。
按照論文要解決的問題,本文將它們分成四大類:
a)模型去噪:使用模型方法來解決遠端監督的噪聲問題;
b)外部知識:通過融入外部知識或知識庫知識來提升總體效能;
c)關係重疊:使用新模型來解決一句話中出現多個關係的情況;
d)其他:包括聯合學習、跨句子關係抽取、少樣本學習等等。
注意力機制出現之後,學者們傾向於使用各種各樣的注意力機制來降低噪聲的干擾,但是18年的幾篇文章有了新的思考,開始關注句子本身的一些結構資訊,例如SDP,STP,LCA等等。融入外部知識是今年的主流方向,因為關係抽取最直接的任務就是知識庫擴充,知識庫中大量的結構化知識一直以來都未得到充分的利用。關係重疊問題的解決方案相對較少,膠囊網路和編碼解碼模型為這個問題的解決提供了新的思路,除此之外,聯合學習和跨句子的關係抽取依舊是值得關注的研究點。
接下來,本文分四個部分,分別對上述每一類的代表性文章進行探討分析。
模型去噪
[AAAI 2018] CNN+RL
Reinforcement Learning for Relation Classification from Noisy Data
這是來自清華大學黃民烈老師組的工作,文章的目的是解決遠端監督標註資料集的錯誤標籤問題。為了減少噪聲資料對模型的影響,我們希望能夠訓練一個模型實現對樣本的篩選,從而得到一個高質量的資料集。在對樣本進行篩選時,往往無法直接判斷每個樣本的好壞,只能在全部樣本選擇完成後,集中評價整個資料集的質量,這種延遲反饋的方法天然適合強化學習的框架。
模型

模型框架如圖所示,左邊是句子選擇器,右邊是一個經典的基於卷積神經網路的關係分類器。句子選擇器根據 policy 函式對樣本逐個篩選,每個樣本都可以執行選或者不選兩種 action,篩選完之後會生成一個新的資料集,policy 函式定義如下:
$$\pi_{\theta}(s_i, a_i) = P_{\theta}(a_i|s_i) = a_i\sigma(W·F(s_i) + b) + (1-a_i)(1-\sigma(W·F(s_i) + b)) $$
其中 $a_i \in {0,1}$ 表示是否選擇當前句子,$s_i$ 是表示當前句子的狀態,包括當前句子、已選擇的句子和當前包的實體對資訊。$F(s_i)$ 是狀態特徵向量,同樣也包括以上三個部分,$\sigma$ 是 sigmoid 函式。
接下來,模型用關係分類器來評價選擇的句子集的好壞,並計算出一個 reward,再使用 policy gradient 來更新 policy 函式的引數。顯然,只有當句子的選擇狀態全都確定後,才能計算 reward,所以 reward 定義如下:
$$ r(s_i|B) = \begin{cases} 0 & \text{if i < |B| + 1} \\ \frac 1 {|\hat B|} \sum_{x_j \in |\hat B|} \log p(r|x_j) & \text{if i = |B| + 1} \end{cases} $$
其中,$B$ 代表一個示例包,$|\hat B|$ 表示篩選後得到的新示例包。為了得到更多的反饋,提高訓練效率,論文將樣本按照實體對分成若干個示例包,每次句子選擇器完成一個包的選擇後,模型都會用關係分類器來評估這部分資料,並更新 policy 函式的引數。當所有包都訓練完成之後,再篩選出所有的樣本,訓練更新關係分類器的引數,從而得到最終的模型來用於關係預測。
實驗
實驗在 NYT 資料集上進行,通過與當前主流深度神經網路方法的比較,來證明強化學習的方法在資料篩選方面的卓越效能。
從下表可以看出,基於強化學習的方法比當前基於池化和注意力機制的方法在效能上都高出很多,需要注意的一點是,這裡的評價的是句子級別的準確率。
實驗還使用保留集比較了句子質量和句子選擇策略對模型效果的影響。由上圖中的圖 3 可以看出,使用句子選擇器篩選後的資料集訓練出了更好的關係分類模型,這也就意味著強化學習對句子的篩選在提高模型效能方面起到了一定的作用。此外,文章還通過實驗說明,在對句子的選擇上,強化學習的方法優於使用貪心策略的方法。
[ACL 2018] DSGAN
DSGAN: Generative Adversarial Training for Distant Supervision Relation Extraction
這是來自UCSB王威廉老師組的工作,論文使用生成對抗網路(GAN)來解決遠端監督的噪聲資料問題,按照GAN的框架思想,在生成器生成資料劃分之後,判別器來評價該劃分的好壞,並將結果反饋給生成器,生成器根據反饋進一步生成新的資料,希望能夠最大限度地降低判別器的判別能力。
模型
模型的整體結構如上圖所示,給定一個使用遠端監督標註的資料集,生成器希望從中選擇出全部的真正例,但是在整個框架中,這些被選擇出來的正例卻被看作為負例來訓練判別器,沒有被選擇出來的樣本卻被當做正例。最後,生成器發現越多的正例,那麼被標記的負例也就越多,判別器的效能下降也就越多。這樣一來,我們的目標就是希望得到一個強大的生成器,以至於在最大程度上使得判別器喪失分類能力。顯然,在這個迭代過程開始之前,我們需要對判別器進行預訓練。
為了獲得更多的反饋,我們把整個正例集合劃分成了 $N$ 個包,每處理完一個包,就更新一次模型引數。我們把第 $i$ 個包記作 $B_i$,對於其中的一個句子 $s_j$, 定義其被生成器判斷為真正例的概率為 $p_G(s_j)$,其被判別器判斷為真正例的概率為 $p_D(s_j)$。
生成器基於 $p_G(s_j)$ 來選出高概率的句子組成一個集合 $T$:
$$T={s_j}, \; s_j \sim p_G(s_j), \; j=1,2,…,|B_i|$$
顯然,生成器的目標就是使得選擇出的真正例集合 $T$ 的概率最大;
$$ \max L_G = \sum_{s_j\in T} \log p_D(s_j) $$
判別器將 $T$ 中的樣本標籤置為 0,剩餘的樣本標籤置為 1。訓練目標就是最小化二分類的交叉熵損失:
$$ \min L_D = -(\sum_{s_j\in(B_i-T)}\log p_D(s_j) + \sum_{s_j\in T} \log (1-p_D(s_j))) $$
生成器選擇句子是離散的取樣過程,不能直接基於梯度來優化網路,論文使用強化學習來解決這一問題。此外,判別器在每一個epoch開始時載入的都是同一套預訓練的引數。這樣做的原因有兩個,首先,我們最後需要的是生成器而不是判別器。其次,在迭代過程中,生成器面向的是原始的資料而不是生成的新資料。綜合來看,文章的亮點在於將判別器的目標逆向思考,即把生成器選擇的正樣本標記為負樣本,使用判別器效能下降的程度來衡量生成器選擇資料的質量。
實驗
實驗首先在三種關係上分別探討了不同的訓練策略在訓練過程中的收斂速度和表現效能,隨後也展示了生成器在這三種關係上生成資料的準確率,最後在 NYT 資料集上進行關係抽取的實驗。

根據使用不同的判別器,文章把實驗分成了兩大組,一組是基於CNN的判別器,另一組是基於PCNN的判別器,通過上表可以看出,加入DSGAN策略後,AUC值普遍提升了1-2個點,從而說明這是一種十分有效的句子選擇(去噪)手段。
[EMNLP 2018] STP+TL
Neural Relation Extraction via Inner-Sentence Noise Reduction and Transfer Learning
這是來自上海交通大學的工作,在遠端監督場景下,除了語料的錯誤標註問題,還存在句內噪聲單詞過多的問題,這個問題一直沒有引起足夠的重視,並且,隨機初始化特徵抽取器引數的方法過於粗暴。文章分別使用子樹解析和遷移學習的方法來解決這兩個問題。同時,這也是第一篇在關係抽取任務中使用遷移學習的文章。
模型
上圖的框架可以大致分為三個部分,第一個部分是子樹解析(Sub-Tree Parse),對句子進行句法解析後,找到兩個實體最近的公共祖先,取以該祖先節點的父節點為根節點的子樹,只保留句子中的這些單詞。隨後將原始句子包的 STP 輸入到網路中,經過一個 Bi-GRU 來編碼句子的語義,第二個部分就是編碼器中的注意力機制,編碼器中不僅含有單詞級別的注意力機制和句子級別的注意力機制,還增加了一個面向實體的注意力機制:
$$ \alpha_{it}^e = \begin{cases} 1, & t\;=\;head, tail \\ 0, & others \end{cases}; \quad
\alpha_{it}^w = \frac{\exp(h_{it}A^wr^w)}{\sum_{t^{‘}=1}^T\exp(h_{it^{‘}}A^wr^w)}; \quad
\alpha_{i}^s = \frac {\exp(S_iA^sr^s)} {\sum_j\exp(S_jA^sr^s)}$$
$$ S_i = \sum_t(\alpha_{it}^w + \alpha_{it}^e)h_{it}; \quad
S = \sum_i \alpha_i^s S_i $$
其中,$r^s$ 是關係向量,$r^w$ 是一個隨機初始化的上下文查詢向量,並隨著網路訓練逐步學習,直觀上可以看成為了判斷哪些詞語有更多資訊而引入的一個 高階表示 。
框架的第三個部分就是模型引數的初始化,這裡使用一個實體型別分類的任務來初始化模型的一部分引數:
$$ \hat{p}^{t} = softmax(W_{t}S_{t} + b_{t}); \quad t \in {head, tail}; \quad\quad \hat{p}^{r} = softmax(W_{r}S_{r} + b_{r}) $$
實體分類和關係分類任務共享除了注意力層和輸出層的所有引數,需要注意的是,對頭實體和尾實體的分類分別是兩個不同的任務,使用的也是兩套不同的引數(筆者注:在對頭實體預測時,實體級別的注意力機制可能只關注頭實體,反之亦然)。在最後的訓練過程中,首先訓練兩個實體分類任務,隨後將共享層的引數遷移到關係分類任務上,作為模型的初始化,最後再進一步優化與關係分類任務相關的引數。
實驗
實驗在 NYT 資料集上進行,首先使用 PR 曲線來分別展示文章中三個模組的具體作用,每一個功能模組的增加都對最終的結果產生了明顯的提升,尤其是 STP 部分和遷移學習部分。
值得一提的是,在STP部分,實驗表明了使用SDP比使用整個句子有小幅度的提升,相較於前兩個部分,STP的提升則十分顯著,這是一種符合資料分佈的結果,因為 SDP 在去除噪音詞的同時,也誤刪了很多對關係分類來說十分有意義的詞彙。
通過表 3 可以發現,相比於 PCNN + ATT,這種方法取得了6-7個點的效能提升。在不使用遷移學習的情況下,就取得了不錯的效果,從而也說明了 STP 和實體級別的注意力機制都是十分有效的方法。此外,預訓練和遷移學習對模型效果的提升可能不限於此,選擇更合適的預訓練任務可能能夠取得更好的效果。
外部知識
[COLING 2018] CORD
Cooperative Denoising for Distantly Supervised Relation Extraction
這是來自北京大學深圳研究生院和騰訊 Medical AI Lab的工作,合作作者還有中科院深研院的楊敏老師。文章認為,當前的很多方法都僅僅侷限於語料集,知識圖譜中的很多資訊都未得到充分利用,充分利用各種資訊源的監督資訊,有利於緩解遠端監督中的噪聲標籤問題。此外,論文還獲得了COLING 2018 Best Paper的提名。
模型
文章提出了一種協同去噪框架CORD,該框架由Corpus-Net、KG-Net兩個神經網路和一個協同模組組成,兩個神經網路分別在文字語料庫和知識圖譜中進行學習,再通過一個自適應的雙向知識蒸餾模組(Adaptive Bi-directional Knowledge Distillation)完成它們間的相互學習,並結合一些實體型別的約束,最終達到去除噪聲的目的。
其中,Corpus-Net 和 PCNN +ATT 幾乎完全相同,只是把編碼器換成了 Bi-GRU。KG-Net 的輸入是從句子中識別出的實體在知識庫中對應的候選實體序列,這些候選實體經過一個鏈指級別的注意力機制(候選實體向量預先使用 DeepWalk 和 TransE 得到),得到對應實體的向量表示,與該實體在原句子中的位置向量拼接後輸入到一個 Bi-GRU 中,再經過一個實體級別的注意力機制,就可以得到基於知識圖譜的句子表示。
文章還關注了關係的特定規則,因為一些典型的錯誤可以通過這種規則來糾正,比如兩個實體的型別都為 person,那麼其關係就不可能是 born_in,這種規則資訊可以大規模地從 Freebase 中統計得出。給定一個實體對中兩個實體的所有實體型別 $t_{j,1}$ 和 $t_{j,2}$,我們給每個關係 $i$ 設計了一個邏輯規則:$r_i= (T_{i,1} \in t_{j,1}) \land (T_{i,2} \in t_{j,2})$,即關係對應的頭尾實體的型別需要在對應位置實體的型別集合中出現過。這裡沿用 前人的工作 使用了一種軟邏輯,使得這個規則得分取值在 [0,1] 之間。這樣,我們就可以使用後驗正則化的方式將原預測結果 $p(S^e)$ 投影到新的約束子空間 $(p^{‘}(S^e))^*$ 中去:
$$ (p^{‘}(S^e))^* \propto p(S^e) \times e^{s_r}, \quad \quad s_r = -\sum_{i=1}^l C \lambda_i (1-r_i(S^e)) $$
其中,$s_r$ 是一個規則得分因子,用來表示包 $S^e$ 滿足規則的程度,$C$ 是正則化引數, $\lambda_i$ 是關係 $i$ 的規則的置信度。
顯然,Corpus-Net 的預測結果和 KG-Net 的預測結果具有不同的傾向性,所以需要一個協同模組將這兩者結合到一起。我們把兩個基礎網路的預測記為 $p^c$ 和 $p^k$,在雙向知識蒸餾的指導思想下,將兩個基礎網路的訓練目標分別改寫為以下形式:
$$ L_c = \sum_{i=1}^N(l(y_i, p_i^c) + \pi_c l(p_i^k, p_i^c)), \quad L_k = \sum_{i=1}^N(l(y_i, p_i^k) + \pi_k l(p_i^c, p_i^k)) $$
其中,$l$ 為交叉熵損失, $\pi$ 為模仿率(Imitation Rate),這個雙向知識蒸餾的過程不僅從ground truth中學習到相應的知識,還將另外一個網路的預測結果當做另一種形式的ground truth進行學習,$\pi$ 可以被理解為預測結果的置信度。顯然,這兩個基礎網路事先需要預訓練。此外,我們希望 $\pi$ 與對應基礎網路和ground truth的交叉熵損失成反比,即,當前網路的損失越小,就越具有指導另一個基礎網路的資格:
$$ \pi_c = \frac {l(y_i, p_i^k)} {l(y_i, p_i^c) + l(y_i, p_i^k)}, \quad \pi_k = \frac {l(y_i, p_i^c)} {l(y_i, p_i^c) + l(y_i, p_i^k)}$$
在最終的聯合預測上,使用了兩個基礎網路的預測結果的聯合:
$$p^{co} = (1-w_k)p^c+w_kp^k, \quad w_k = \alpha + \beta (\frac{s_r} {n_r} - \frac {n_c} {n_e\times N_e}) $$
其中,$\alpha$ 是KG-Net的經驗權重,$\beta$ 是自由調節權重, $n_r, n_c, n_e, N_e$ 分別是關係的數量,所有候選實體的數量,句子中實體的數量和,候選實體的數量上限。
實驗
實驗在 NYT 資料集上進行,首先比較了CORD的方法和傳統方法在 PR 曲線上的效能,隨後探討了實體向量的不同預訓練方式對KG-Net的影響,最後還探討了在知識蒸餾模組使用不同的模仿率、靜態和動態的聯合預測對最終結果的影響。
上圖的結果表明,Corpus-Net和傳統的注意力機制的方法效果相近,因為只是編碼器的CNN換成了GRU,KG-Net 的效果超過了基於特徵的方法,這似乎表明它們捕獲的都是一些特定的模式,所以具有較高的準確率和較低的召回率,最終,CORD的方法達到了最好的效果,雖然提升不是很大。
根據上圖可以看出,加入關係型別的約束對長尾資料有很大提升($\ge 1$表示使用整個測試集, $> 1$ 表示過濾掉那些實體對只出現過一次的情況)。這是一種很符合直覺的結果,因為長尾關係的訓練相對不充分,加入額外的約束就顯得十分有用。
[COLING 2018] DesRC
Neural Relation Classification with Text Descriptions
這是來自東北大學知識圖譜組的工作,針對關係抽取中的資料稀疏性問題,提出了一個DesRC模型,藉助注意力機制將實體的文字描述作為額外資訊加入到了句子向量中去。在訓練過程中,論文還使用了一些對抗方法來提高模型的魯棒性。
模型
模型的輸入包括三個部分,原句子和兩個實體的描述資訊。對於關係分類來說, BRCNN 是目前表現最好的一種句子編碼器,輸入的是兩個實體之間的最短依存路徑(SDP),由於實體描述資訊中通常只有一個我們關注的實體,無法抽取SDP,所以只能使用CNN來進行編碼。在輸入部分,依舊使用詞向量和位置向量相結合的方法,只是對於描述資訊,我們只關注到當前實體的距離。
文章使用單詞級別的注意力機制來調整原始的詞向量,使那些與實體對和關係相關的單詞權重更高。對於句子中的單詞 $w$,取其$m$個上下文單詞來計算新的詞表示 $x$:
$$ x = \sum_i \alpha_i * w_i; \quad \alpha_i = \frac {\exp(f_i)} {\sum_j\exp(f_j)} $$
其中,$f_j$ 是一個衡量當前詞和句子關係$r$以及句子中實體(對)之間的語義相關性的函式,對於原句子和描述資訊分別有不同的計算方式:
$$ f_i = \tanh(W [w_i;w_{e1};w_{e2}]+ U r) \quad or \quad f_i = \tanh(W_{1/2} [w_i;w_{e1}/w_{e2}]+ U r) $$
將調整後的詞向量輸入到編碼器中,分別得到句子和描述資訊的向量表示,在這裡使用了一個句子級別的注意力機制把句子和描述資訊的向量合併為一個全域性向量:
$$ s = \sum_i \alpha_i s_i; \quad \alpha_i = \frac {\exp(g_i)} {\sum_j \exp(g_j)}; \quad g_i = s_i r $$
這就相當於是把每一個樣本都轉化為一個原始的句子向量和兩個描述向量,然後使用注意力把向量加權相加,最後就可以使用這個全域性向量進行關係分類。
前人的工作表明在詞向量級別加入一些對抗噪聲的時候,通常可以獲得更好的實驗效果,論文同樣也做了這樣的嘗試:
$$ w_i = w_i + v_i; \quad v_i = \epsilon * g/||g||; \quad where\; g = \partial L/ \partial w_i $$
實驗
實驗在 SemEval-2010 Task 8 上進行,文章首先使用該控制變數的詞項逐一探討模型中各個模組對實驗效果的影響,即文字描述資訊的重要度、兩個注意力機制的影響和對抗訓練的影響,最後和當前的基線方法做了對比,

相較於BRCNN,本文取得了約1個點的提升,下方4組實驗表明可以發現,BRCNN比CNN有明顯提升,加入實體描述資訊也對實驗效果有明顯提升。其中,WordNet指的是將實體在WordNet中上位詞的詞向量與實體向量進行拼接。
[EMNLP 2018] HATT
Hierarchical Relation Extraction with Coarse-to-Fine Grained Attention
這是來自清華大學劉知遠老師組的工作,之前的工作中,關係都是被獨立處理的,但是知識庫中的關係往往具有層級結構。文章提出了一種層級注意力機制來關注關係之間的層級關係,使得高層次的關係具有更多的訓練資料,從而可以獲得更好的效能。
模型
模型包括一個句子編碼器和一個從粗到細的層級注意力機制,句子編碼器使用CNN或PCNN來編碼句子,層級注意力機制來選擇那些最能表達這個關係的示例。底層的注意力關注的是具體關係的特徵,是一種細粒度的樣例選擇,和傳統的方法並無二致,高層的注意力關注的是關係之間的共同特徵,是一種粗粒度的樣例選擇,因為頂層的關係具有足夠多的訓練資料,所以對長尾關係有很大程度的效能提升。
記實體對 ($h,t$) 對應的句子包為 $S_{h,t}$,關係的全集為 $R$。框架輸出層通過加權句子向量得到兩個實體之間的文字關係向量 $r_{h,t}$,隨後根據這個文字關係向量計算當前向量對知識庫關係的得分,得分最高的即為預測出來的關係:
$$ r_{h,t} = \sum_{i=1}^m \alpha_is_i, \; s_1, … , s_m \in S_{h,t}; \quad \quad P(r|h,t,S_{h,t}) = \frac {\exp(o_r)} {\sum_{r^{‘}\in R}\exp(o_{r^{‘}})}, \; o = Mr_{h,t} $$
文章的重點則是對不同的層級使用不用的注意力權重 $\alpha_i$ 來計算 $r_{h,t}$,為了方便敘述,我們定義,給定一個查詢向量 $q$, $r_{h,t} = ATT(q, S_{h,t})$。
假設關係的層級結構是樹形的,/location/province/capital 為低層次關係,/location 為高層次關係。記 $R^0 = R$,然後迭代 $k-1$ 次,生成 $k$ 個等級的關係集合 ${R^0, R^1,…, R^{k-1}}$。對於一個關係 $r=r^0 \in R = R^0$,通過回溯關係層級樹就可以找到它的上層關係:$(r^0, …, r^{k-1}) \in R^0 \times … \times R^{k-1}$,其中,$r^{i-1}$ 是 $r^{i}$ 的子關係。
在計算層級注意力的時候,對每一層的每一個關係都指定一個查詢向量,然後利用當前關係的所有句子來計算文字關係向量,最後把各層的文字關係向量拼接起來,就可以得到最終的文字關係向量。
$$ r_{h,t}^i = ATT(q_{r^i}, S_{h,t}); \quad r_{h,t} = [r_{h,t}^0;…;r_{h,t}^{k-1}] $$
這樣的一個直觀解釋就是,對於/location/province/capital的實體對,同樣具有/location/province和/location關係,/location的訓練資料也會包括/location/contains下的關係,所以就具有更多的訓練資料,最後是把所有層級的向量拼接到一起,很顯然,這種做法可以提高那些細粒度的長尾關係的識別率。
實驗
實驗在 NYT 資料集上進行,如上文例子中所述的那樣,NYT資料集中的關係本身就具有層級。首先分別使用 PR 曲線和 P@N 指標和基線模型對比,來表明當前模型的優越性,隨後分開探討了層級注意力機制對不同關係的影響,尤其是在長尾關係上。最後做了樣例分析,來展示高層次關係和低層次關係關注的不同點。
由上圖中的圖 3 可以看出,HATT方法和對應的基礎方法相比,具有很大程度上的提升,顯然,這種程度的提升遠不是長尾資料能夠帶來的,論文也通過實驗給出了說明,對於普通的關係,Hits@K平均都有10個點的提升。上圖中的表 3 分析了訓練資料少於 100/200 條的關係的表現效能,可以看出,傳統的方法幾乎不能處理此類資料,加入HATT策略可以給此類資料帶來成倍的效能提升。
[EMNLP 2018] RESIDE
RESIDE: Improving Distantly-Supervised Neural Relation Extraction using Side Information
這是來自Indian Institute of Science的工作,論文使用關係別名和實體型別這兩種知識庫知識來輔助解決遠端監督關係抽取問題。在自然語言場景中,不同的句子對關係的表達方式不盡相同,這種關係別名的資訊在關係抽取中十分重要。同時,因為每種關係對應的實體型別都是有限的,所以實體型別在關係抽取中也扮演著不可或缺的角色。
模型
模型首先對句子進行編碼,編碼過程中,不僅按照傳統方法將詞向量和位置向量拼接後輸入到 Bi-GRU 中得到 $h^{gru}$,同時也在句法依存樹上使用 GCN 來獲得每個單詞的句法知識,記作 $h^{gcn}$,其中,GCN的輸入就是 $h^{gru}$。將這兩者拼接後使用一個單詞級別的注意力機制就可以得到句子的向量表示(其中,$r$ 是一個隨機初始化的查詢向量):
$$ s = \sum_{j=1}^m \alpha_i h_i^{concat}; \quad \alpha_i = \frac {\exp(h_i^{concat} · r)} {\sum_j \exp(h_j^{concat} · r)}; \quad h_i^{concat} = [h_i^{gcn};h_i^{gru}] $$
對於關係別名的資訊,模型首先使用斯坦福的 Open IE 工具來抽取兩個實體之間的關係短語集合 $P$。對於知識庫關係,使用 PPDB 將其擴充到一個更大的知識庫關係別名集合 $R$,隨後把 $P$ 和 $R$ 對映到同一個語義空間中,對於 $P$ 中的每個關係短語 $p$,從集合 $R$ 中選出與其最相近的知識庫關係 $h^{rel}$($|P|>1$時,把所有的$h^{rel}$取平均),最後,$h^{rel}$ 被拼接到句子向量 $s$ 之後,得到新的句子表示 $\hat{s}$。
對於實體型別的資訊,使用一個外部工具包 FIGER 來獲取Freebase中的實體型別,對每個實體型別,指定一個實體型別向量 $h^{type}$,如果一個實體屬於多個型別,就把多個型別的向量取平均,然後把這個向量拼接到包向量上,進行最後的關係分類:
$$ B = \sum_i \alpha_i \hat{s_i}; \quad \hat{s_i} = [s_i; h_i^{rel}]; \quad \alpha_i = \frac {\exp(\hat{s_i}·q)} {\sum_j \exp(\hat{s_j}·q)}, \; \text{where q is a random query vector.} $$
$$ \quad \hat{B} = [B; h_{sub}^{type}; h_{obj}^{type}]; \quad p(y) = softmax(W·\hat{B}+b);$$
實驗
實驗在 NYT (Riedel) 資料集和 GDS (Google Distant Supervision) 資料集上進行,對比了 RESIDE 和傳統方法的表現效能,探討了在關係別名部分是否使用 PPDB (即知識庫關係別名空間的大小)對最終結果的影響。
通過上圖的實驗結果可以看出,在關係抽取任務中加入關係別名和實體型別的外部知識可以顯著提升模型的效能,尤其是在高召回的場景下,準確率的提升十分可觀:文中給出的結論是 P@100 的提升大約在2個百分點,P@300 的提升達到了 5 個以上的百分點。最後,實驗還通過 Ablation Study 分析了不同因素對模型效果的提升,最後得出 RA > GCN > ET 的結論。
GDS 是基於Google關係抽取語料集構建的一個遠端監督資料集,保證了每個包中至少含有一個表達當前關係的例項,所以不需要人工評測 P@N 的準確性。GDS 共包含 perGraduatedInstitution、perHasDegree、perPlaceOfBirth、perPlaceOfDeath和NA五種關係,類別分佈相對較均衡,每類大約有4k條句子,2k對實體。
關係重疊
[IJCAI 2018] PartialMax
Exploring Encoder-Decoder Model for Distant Supervised Relation Extraction
這是來自北京郵電大學的工作,文章使用編碼解碼框架來解決實體對的多關係問題。通常來講,實體對之間的關係都具有依賴性,已知兩個實體具有某種關係對預測其它關係而言是一種十分重要的資訊。文章設計了一種方法來決定關係的預測順序,並將上一個時間步預測出的關係作為下一個時間步的輸入,從而實現對關係依賴的建模。
模型
模型使用CNN來編碼句子得到向量表示$x_i$,進而得到包的向量表示 $B$,解碼器使用 LSTM 來建模關係之間的聯絡,解碼器的輸出應該是一個關係的集合。對於第 $t$ 個時間步,LSTM 解碼器的隱層狀態 $s_t$ 和輸出 $y_t = l_j$ 的概率可以使用以下方法來計算(其中,$l_j \in L$ 是第 $j$ 個關係):
$$ s_t = LSTM(s_{t-1}, y_{t-1}, B) ;\quad p(y_t=l_j|{y_1, …, y_{t-1}}, B) = \frac {\exp(l_jTs_t)} {\sum_r \exp(l_rTs_t)} $$
在得到每一個時間步的輸出之後,模型需要重點關注那些關係還尚未被預測出來的句子,這裡使用一個注意力機制來動態調整包的向量表示,來降低那些關係已經被預測出來的句子的權重,在注意力權重時,使用了一個神經網路 $\eta$ 來計算當前句子向量$x_i$和解碼器上一時刻隱狀態 $s_{t-1}$ 的相似度:
$$ B_t = \sum_i \beta_{ti} x_i; \quad \beta_{ti} = \frac {\exp(\eta (s_{t-1}, x_i))} {\sum_j \exp(\eta (s_{t-1}, x_j))} $$
目前,框架還剩下一個重要的問題,就是如何確定關係預測的順序,因為具有更多資訊的關係應當被更早地識別出來並且用作做下一步預測的先驗知識。在訓練時,預測順序是通過對每個包中關係的“資訊量”來確定的。在測試時,輸入只有一個實體對對應的句子包,模型需要自動判斷每個關係的資訊量然後按照降序預測。
訓練集中資訊量(IQ)的計算分兩步進行,第一步計算句子表示和關係向量的匹配度: $W = XM$,其中 $X\in R^{n\times d^s}$ 是句子表示的矩陣,$M\in R^{d^s\times n_l}$ 是預訓練關係向量的矩陣,$n$ 是包中句子的數量,$d^s$ 是句子和關係向量的維度,$n_l$ 是關係的數量。第二步使用區域性池化根據匹配得分來計算每個句子的權重,我們用 $W_{ij}$ 來表示達第 $i$ 個句子和第 $j$ 個關係的匹配度,用$L^+$來表示給定句子包的所有關係:
$$ IQ_j = \sum_{i=1}^n \alpha_i W_{ij}; \quad \alpha_i = \frac {\exp(e_i)} {\sum_k\exp(e_k)}; \quad e_i = \max(W_{ij}); \quad i = 1,2,…,n, j \in L^+ $$
最後,對於包向量的初始化,文章給出了兩種計算方法:
$$ B_0 = \frac {1} {n} \sum_{i=1}^n x_i; \quad B_0 = \sum_{i=1}^n \alpha_i x_i $$
訓練損失使用的是均方誤差:
$$ L_{squared} = \sum_{t=1}^{n_B} \sum_{i=1}^{n_l} (q_{ti} - p_{ti})^2 $$
其中,$n_B$ 是包中對應關係的數量,$n_l$ 是總的關係數量。$q_{ti} \in {0,1}$ 是 $t$ 時間第 $i$ 個關係的標籤, $p_{ti}$ 是 $t$ 時間第 $i$ 個關係的預測概率。訓練時,對每個包的關係末尾增加了一個
實驗
實驗在 NYT 資料集上進行,分別使用 PR 曲線和 P@N 兩種指標來評價模型效能。
由上圖可以看出,Partial+IQ+ATT 達到了一個很優異的效果,相較於基線模型提高了近10個點。其中,Ave 和 Partial 指包向量的兩種初始化方法,Freq 指根據關係頻率降序來確定關係預測順序,ATT指在解碼器中加入注意力機制來調整包的表示。
[ACL 2018] MultiDecoder
Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism
這是來自自動化所劉康老師組的工作,通常來講,一個句子中會含有很多的實體三元組,但是以往的工作常常忽略了這一點。文章基於編碼解碼模型,主要關注三元組中實體和實體對的重疊(同一個實體或實體對參與多個關係)的情況。
模型
給定一個句子 $s=[x_1,…,x_n]$,編碼器使用一個Bi-RNN來對句子進行編碼,在 $t$ 時刻,得到其輸出 $o_t^E$ 和隱藏狀態 $h_t^E$:$o_t^E, h_t^E = f(x_i, h_{t-1}^E)$。解碼器直接生成關係的三元組,每三個時間步為一個週期,每三個時間步為一個週期,第一個時間步,使用編碼器的輸出來預測關係,產生一個新的三元組,第二個時間步,從源句子中複製第一個實體,第三個時間步,從源句子中複製第二個實體。不斷重複這個過程,就可以生成很多的三元組,最後輸出一個NA標籤來標誌解碼結束。
使用單解碼器時,在 $t$ 時刻,記作其輸出 $o_t^D$ 和隱藏狀態 $h_t^D$:$o_t^D, h_t^D = f(u_t, h_{t-1}^D)$,其中,$u_t = [v_t;c_t]·W^u$,$v_t$ 是上一個時間步複製過來的實體的向量或者預測的關係的向量,$c_t$ 是一個注意力向量:
$$ c_t = \sum_{i=1}^n \alpha_i \times o_i^E; \quad \alpha_i = softmax(\beta);\quad \beta_i = selu([h_{t-1}^D; o_i^E]·w^c) $$
在第 $t$($t\%3=1$) 個時間步,計算關係的置信度向量 $q^r = [q_1^r,…,q_m^r]$,選擇概率最大的關係作為輸出,並將這個關係向量作為下一個時間步的$v_{t+1}$,實現對關係的拷貝:
$$ q^r = selu(o_t^D·W^r + b^r);\quad q^{na} = selu(o_t^D·W^{na} + b^{na}); \quad p^r = softmax([q^r; q^{na}]) $$
在第 $t$($t\%3=2$) 個時間步,根據句子中的每個單詞計算實體的置信度向量 $q^e = [q_1^e,…,q_n^e]$,選擇概率最大的實體作為輸出,並將這個實體向量作為下一個時間步的$v_{t+1}$,實現對實體的拷貝:
$$ q^e_i = selu([o_t^D;o_i^E]·w^c); \quad p^e = softmax([q^e; q^{na}]) $$
在第 $t$($t\%3=0$) 個時間步,複製第二個實體和複製第一個實體的過程幾乎完全相同,區別在於對 $q^e$ 乘了一個mask來避免選中第一個實體:
$$ M_i = \begin{cases} 1, i \neq k \\ 0, i = k \end{cases}; \quad p^e = softmax([M \otimes q^e; q^{na}]) $$
單解碼器模型中,解碼器的最初輸入是句子向量,多解碼器模型中,每隔三個時間步,都使用一個新的解碼器,並且重新輸入一次原始的句子向量,把句子向量和上一時刻的隱層狀態取平均作為當前解碼器的輸入。顯然,這是一種更好的方法,相對只使用一個編碼器可以有效避免錯誤傳播的問題。
實驗
實驗在 NYT 資料集和 WebNLG 資料集上進行,作者人工過濾掉了NYT 中不包含實體三元組的句子和長度大於100的句子,最後使用56195條作為訓練,5000條作為驗證,5000條作為測試。文章選取了一個17年的 工作 作為基線,實驗的重點在於探討單編碼器和多編碼器的區別和模型對不同重疊程度資料的處理情況。
文章把句子分成了三類,一類是實體沒有重疊(Normal),一類是實體對完全重疊(EntityPairOverlap, EPO),還有一類是單實體重疊(SingleEntityOverlap. SEO)。
實驗結果表明,模型提出的兩種方法在這兩個資料集上都取得了卓越的效能,文章提出的方法在實體無重疊的情況下,並沒有超過基線模型,但是在實體有重疊的場景,各項指標都遙遙領先。最後,實驗還展示了句子中三元組的數量對關係抽取效能的影響,並且對比了單解碼器和多解碼器在拷貝時的準確率。
WebNLG 是為自然語言生成準備的資料集,其中包括 246種關係,在這個資料集中,每個示例都包括一組三元組和一些對應的(標準人工)句子,每個句子中都包含示例中所有的三元組,論文對其進行了一系列過濾,最後剩下訓練資料5019條,驗證資料500條,測試資料703條。
其他
[EMNLP 2018] C-GCN
Graph Convolution over Pruned Dependency Trees Improves Relation Extraction
這是來自Stanford University / Manning 老師組的工作,句子的句法依存樹對關係分類來說是一種十分重要的資訊,但傳統的神經網路模型很難直接高效地處理此類資訊,GCN作為CNN在圖上的擴充套件,天然地適合處理這種非歐的結構。同時,為了更好地利用這種樹狀結構,文章還提出了一種以路徑為核心的剪枝策略來降低噪聲詞的影響。
模型
直接在句子的依存樹上使用 GCN 會面臨兩個問題:句子表示傾向於大度節點而忽略其他小度節點的資訊,並且低層的隱狀態不會被傳遞到高層,因為在依存樹中節點不會和自己相連。文章使用兩種策略來解決這兩個問題:對隱層狀態除以節點的度、給每個節點增加一個自環。我們定義 $A$ 為原始鄰接矩陣,增加自環後 $\tilde{A} = A + I$,$d_i = \sum_j \tilde{A_{ij}}$。記第 $l$ 層的第 $i$ 個節點的輸入為 $h^{(l-1)}_i$, 輸出為 $h^{(l)}_i$,於是有:
$$ h^{(l)}_i = \sigma (\sum_{j=1}^n A_{ij}W^{(l)}h_{j}^{(l-1)} + b^{(l)}) \quad \rightarrow \quad h^{(l)}_i = \sigma (\sum_{j=1}^n \tilde{A_{ij}}W^{(l)}h_{j}^{(l-1)} / d_i + b^{(l)}) $$
按照上圖所示的模型,將句子中的每個單詞轉化成其詞向量 $h^{0}$,經過 GCN 得到新的詞表示 $h^{(L)}$,接最大池化層得到句子表示 $h_{sent}$。此外,還將 GCN 輸出層中與頭尾實體位置對應的單詞單獨取出進行最大池化,分別得到頭尾實體的向量表示 $h_o$,$h_s$。最後把這三個向量首尾拼接進行關係分類:$ h_{final} = FFNN([h_{sent};h_{s};h_{o}]) $。
GCN無法編碼長距離資訊,並且完全依賴於依存樹的結構,這可能會放大句法分析帶來的噪聲,為了解決以上問題,模型在詞向量層和圖卷積層之間增加了一層 Bi-LSTM 來編碼單詞的上下文資訊,最終得到C-GCN模型。
文章提出了一種以依存路徑為核心的剪枝,引入一個變數 $K$ 來衡量單詞到 SDP 的距離。當$K=0$時,只保留 SDP 上的節點,當$K=\infty$ 時,則保留 LCA 上的全部節點,當$K=1$ 時,即保留 SDP 及其一階鄰居節點。
實驗
實驗在 SemEval 2010 Task 8 和 TACRED 上進行,實驗和分析十分詳實,實驗部分的側重點在於展示模型在這兩個資料集上的結果,並探討 $K$ 值對模型結果的影響。
如上圖中的表1和表2所示,在兩個資料集上,C-GCN的方法相較於 PA-LSTM 的方法都取得了大約1個點的提升,作者認為,這兩種方法雖然效能相近,但是在資料處理上是互補的,於是引出了 C-GCN + PA-LSTM的Ensemble方法和下文對這兩類模型的分析。下圖中的圖3展示了驗證集上的 $F_1$ 值隨著 $K$ 取值的變化情況,當$K=1$,即保留 SDP 及其一階鄰居節點時,所有的模型都達到了最好的效果。

最後,文章針對模型和任務進行了全面的分析和討論,首先,Ablation Study的結果表明,剪枝策略對模型的影響很大;隨後 Case Study表明基於依存結構的模型可以更好的處理兩個實體距離較遠的情況,序列模型可以更好地捕獲到上下文模式;最後使用視覺化的方式展示了 C-GCN 預測正確的樣例的情況。
TACRED 是Stanford在2017年釋出的一個新的(精標)遠端監督關係抽取資料集,使用TAC KBP 2009-2012年的語料作為訓練集,2013年的語料作為驗證集,2014年的語料作為測試集。最終的共包括 42 個關係,100對實體,約12w句子。
Additional
除了以上10篇文章,2018年還有很多極具代表性的工作,有的提出了一些新的問題,有的給傳統問題提供了一種新思路,還有的使用了一些新的模型。在本小節,我們額外選取了6篇工作,對它們分別進行簡略的介紹。
Joint Extraction of Entities and Relations Based on a Novel Graph Scheme
這是來自哈爾濱工業大學劉挺老師組的工作,通訊作者是西湖大學的張嶽老師。論文面向實體和關係的聯合抽取任務,提出了一種基於圖結構的聯合方法,針對標註方案不能抽取一個句子中包含多個關係的場景,圖結構構建了實體弧和關係弧,每個節點都可能有多個關係弧。在將一句話轉化成一個初始狀態之後,模型使用貪心的方法,根據當前狀態從預先定義的狀態中選擇下一個動作,直至終止狀態。狀態的定義和從句子到圖的轉化,整體來看是借鑑前人的工作,但是卻是首次應用到關係抽取領域,並且取得了很好的效果。
Ranking-Based Automatic Seed Selection and Noise Reduction for Weakly Supervised Relation Extraction
這是來自Nara Institute of Science and Technology的工作,文章創造性地將關係抽取中的自動選種和資料降噪任務轉換為排序問題。然後借鑑 HITS、K-means、LSA 和 NMF 等傳統策略,按照對(S,P,O)三元組排序的思路,構建出了兼具自動選種和資料降噪功能的演算法。實驗結果表明,文章提出的演算法能夠有效完成這兩個任務,並且其效能也有較大提升。這篇文章的啟發在於,對於關係抽取中的各種子任務,可以通過問題轉換的方式,將其歸約到具有成熟解決方案的傳統問題中去,而後借鑑已有的演算法設計出通用的解決策略,這種思路上的開拓創新是值得思考和探索的。
Exploratory Neural Relation Classification for Domain Knowledge Acquisition
這是來自華東師範大學的工作,近幾年來,關係分類任務主要利用神經網路模型來自動學習複雜的特徵。然而這類監督式學習方法的侷限性在於,它需要大量訓練資料,並且特定領域存在長尾的低頻關係無法被有效地預定義。本論文提出了基於領域知識獲取的探索式關係分類任務。目標在於學習預定義關係的分類器的同時,從文字中發現新的語義關係。文章提出了一個動態結構的神經網路,可以對持續擴充的關係集進行分類。並進一步提出了相似度敏感的中餐館過程演算法,用於發現新關係。基於大語料庫上的實驗證明了該神經網路的分類效果,同時新發現的關係也有較高的準確率和召回率。
Attention-Based Capsule Networks with Dynamic Routing for Relation Extraction
這是來自阿里巴巴-浙江大學前沿技術聯合研究中心的工作,合作作者還有阿里巴巴知識圖譜團隊負責人張偉(覽圖)。當前神經網路依舊面臨著一些問題,一個是當前的模型十分依賴於句子表示的質量,使用向量來表示句子是十分受限的;另一個是CNN的子取樣無法保證高維特徵中各個部分之間的聯絡,膠囊網路的提出就是為了解決以上兩個問題,正如Hinton所說,膠囊網路天然地適合處理重複的資料(重疊的圖片,重疊的語義)。作者把膠囊網路應用到多示例多標籤的關係抽取上,模型首先使用Bi-LSTM來編碼句子,隨後就是傳統的膠囊網路模型在關係抽取任務上的簡單修改,實驗在兩個公開資料集上進行,相較於傳統方法,膠囊網路取得了十分可觀的提升。
N-ary Relation Extraction using Graph State LSTM
這是來自西湖大學張嶽老師組的工作,文章面向跨句子的多元關係抽取,提出了一種基於圖狀態轉移的方法,模型基於Tree LSTM和圖迴圈神經網路,在每個時間步實現每個節點和與其直連節點之間的資訊互動,和前人的工作不同,使用這種圖方法可以直接把句子的依存圖輸入到模型中,對於每個單詞,將其拆分成出度節點和入度節點,從而增強節點之間的聯絡。實驗結果表明,這種圖方法比傳統的樹方法和序列方法在效能上都有很大程度的提升。
FewRel: A Large-Scale Supervised Few-Shot Relation Classification Dataset with State-of-the-Art Evaluation
這是來自清華大學劉知遠老師組的工作,文章面向少樣本學習場景,提出了一個大規模有監督的關係分類資料集FewRel,並在這個資料集上系統地實現了近年來少樣本學習的典型方法。作者首先使用遠端監督構建了一個大規模的候選句子集合,然後針對每個關係,人工地篩選出了那些標籤錯誤的句子,最後得到的FewRel共含有70000條句子,100個關係,每個關係含有700條句子。
總結
縱觀整個基於深度學習的關係抽取的發展情況,在2018年以前,關係抽取領域面臨的問題主要有兩個,正如 Manning 在 EMNLP 2017 上的 一篇論文 的觀點:1) 之前的模型不足以適用於關係抽取任務;2) 缺少滿足當前深度模型訓練的標註資料,那篇文章也針對這兩個點都做了一些改進,併發布了一個數據集 TACRED。整體來看,2018年關係抽取也主要都在解決這兩個問題,研究者們開始關注句法結構這一在關係抽取任務中十分重要的資訊,同時很多工作也使用或釋出了一些新的資料集。除此之外,對於知識庫知識的利用是在 2018 年得以長足發展的一個研究點,這個研究點會持續不斷地發展下去,可以預見,這種 “知識+模型” 的方法將會應用到其他的自然語言處理任務中。目前自然語言處理任務中利用的知識多為語義特徵標籤,關係抽取領域利用知識庫知識的工作仍舊停留在向量拼接的階段,知識庫知識的利用絕不限於此,我們應該用一種更有效的方法將其應用到更廣泛的任務中去。
不得不提的是,頂會上關於關係抽取的文章也越來越多,更多的人開始關注這一領域。綜合來看,關係抽取接下來的發展方向可以概括為以下三個部分:1) 更先進的方法:強化學習,生成對抗網路,圖卷積網路,膠囊網路;2) 更廣的抽取範圍:實體關係聯合抽取,單句子多關係同時抽取,篇章級關係抽取;c) 更少的標註資料:無監督的關係抽取,少樣本的關係抽取。AAAI 2019錄取的文章也表達出了這個趨勢,其中不乏一些使用新模型或者提出新問題的工作。