1. 程式人生 > 其它 >筆記:Matching the Blanks: Distributional Similarity for Relation Learning

筆記:Matching the Blanks: Distributional Similarity for Relation Learning

Matching the Blanks: Distributional Similarity for Relation Learning

作者:Livio Baldini Soares et al.ACL 2019.

目錄

  • Introduction
  • Overview
  • Architectures for Relation Learning
  • Learning by Matching the Blanks
  • Experiments
  • Conclusion

1 Introduction

發現問題:對於資訊抽取/關係抽取,我們所追求的目標就是希望能夠獲得一個泛化能力很強的關係抽取器,無論什麼句子以及其中的實體對,沒有太多的限制,之前雖然在這方面有了很多工作,但泛化能力有限,因此本文作者針對這一問題提出了一個Matching the Blanks的關係抽取預訓練模型。

目前再關係抽取方面比較有代表性的主要有幾個方面:supervised/distant supervised關係抽取、open information關係抽取、universal schema關係抽取。本文作者主要基於distributional hypothesis(Harris, 1954)(不懂)、以及BERT進行關係抽取。

2 Overview

Task definition
首先我們要明確這篇paper的主要任務--使用一個模型將輸入資料即relation statements對映為relation representation。其中relation statements為一個三元組\(r = (\mathbf{x,s_1,s_2})\)

, \(\mathbf{x}\)為句子/tokens的序列,\(s_1 = (i,j)\)代表\(e_1\)的範圍,i、j代表實體在句子中的位置,\(s_2 = (k,l)\)同理,relation representation為一個定長vector為對應的關係的分散式表示。
那麼如何對映?通過一個函式\(h_r = f_{\theta}(\mathbf{r})\),所以其實我們的目標就是讓這個網路模型學會這個函式,將輸入的關係陳述對映為句子中所包含的實體對所對應的關係表示--定長向量,之後我們稱這個函式\(f_\theta\)為relation encoder關係編碼器。

3 Architectures for Relation Learning

本文主要探討了兩種關係抽取任務,完全監督的關係抽取(SemEval 2010 Task 8 (Hendrickx et al., 2009))、few-shot關係匹配(FewRel (Han et al., 2018)),此節討論監督關係抽取。

之前提到本文主要就是基於BERT做關係表示對映,那麼問題來了,BERT之前從未應用在關係抽取上,雖然BERT在如分類或序列任務中很成功,但關係分類(監督的關係抽取也可看作關係分類)不同於普通的分類,它需要考慮到目標實體及其區域性資訊。因此,我們需要考慮兩個問題:(1) 輸入:我們如何讓BERT知道我們主要關注的實體即target entities。(2) 輸出:我們如何從BERT的輸出中提取出我們需要的定長關係表示向量。

本文作者針對這兩個問題分別提出了三種方案,接下來簡單說明這幾種方案的組合,如下圖Figure 3所示。

3.1 Entity span identification

Standard input Figure 3 (a) (b) 不做任何標識處理,作為參考點,因為作者認為雖然認為BERT有能力識別實體,但當句子中有多個實體時,作者判斷BERT應該無法確認我們所關注的實體是哪兩個。

Positional embeddings Figure 3 (c) “bert中對於每個輸入的詞語都會新增一個segment embedding的分段標記,為了對實體進行顯示標記,在segment embedding新增兩種標記來分別標記第一個實體和第二個實體\(^{[2]}\)。”,如圖中的1和2,其他都為0。

Entity marker tokens Figure 3 (d) (e) (f)在兩個target entity前後分別加識別符號,如\([E1_{start}],[E1_{end}],[E2_{start}],[E2_{end}]\),因此,\(\mathbf{x} \rightarrow {\tilde{\mathbf x} = [x_0,...,\)[E1_{start}],x_i,...,x_{j-1},[E1_{end}],...,[E2_{start}],x_k,...,x_{l-1},[E2_{end}],...x_n]}\(,然後將\)\tilde{x}\(餵給BERT,其中由於識別符號的插入我們的s的位置也更新了,\)\tilde{s_1} = (i+1,j+1), \tilde{s_2} = (k+3,l+3)$。

3.2 Fixed length relation representation

本小節簡要介紹三種根據BERT的輸出,抽取定長關係表示\(h_r\)的方法。這三種變體都主要依賴transformer網路的最後一層hidden layer的輸出即\(H = [h_0,...,h_n], H = (n\times d)\;d為h的維度, n = |\mathbf x|或|\tilde{\mathbf x}|\)

[CLS] token Figure 3 (a) (d)直接用[CLS]的輸出\(h_0\)作為關係表示。

Entity mention pooling Figure 3 (b) (c) (e)分別對兩個實體的輸出做maxpool操作後拼接得到\(h_r\)。即\(h_{e1} = \mathsf{MAXPOOL}([h_i...h_{j-1]}])\)\(h_{e2} = \mathsf{MAXPOOL}([h_k...h_{l-1}]), h_r = \langle{h_{e1}\rangle}\;|\;\langle{h_{e2}\rangle})\)

Entity start state Figure 3 (f) 直接取兩個實體各自的start token的輸出,做拼接,即\(r_h = \langle{h_i|h_{k+2}\rangle}\)

除了定義模型輸入和輸出架構之外,我們還修改了用於訓練模型的損失,如下圖Figure 2所示。對於監督任務直接softmax(score)後交叉熵損失,對於few shot任務先做點積相似度,再softmax(similarity score)後交叉熵損失。

最後實驗結果表明,ENTITY MARKERS輸入、ENTITY START輸出表示的組合得分最高。

4 Learning by Matching the Blanks

截止至目前為止,我們探討的都是監督即使用標註訓練資料訓練relation encoder \(f_ \theta\)函式,接下來我們使用新的方法代替監督方法,不再需要預定義的關係類別和標註資料。

首先我們先宣告有一個relation statements的語料庫\(\mathcal{D} = [(\mathsf{r^0,e_1^0,e_2^0})...(\mathsf{r^N,e^N_1,e_2^N})]\),其中一對relation statements (\(r,r’\)), 經過關係編碼器對映後將兩者的關係表示做內積即\(f_{\theta}(\mathsf r)^{\mathsf T}f_{\theta}(r’)\),表示兩關係的語義相似度,如相似則內積值應該大,反之小。 進而我們利用這個相似度值定義一個二分類器,如下公式,表示\(r\)\(r'\)是(\(l = 1\))否(\(l = 0\))編碼了相同的關係。

因此,就像開篇提到的,我們整個模型的訓練本質上就是希望網路模型能夠學到這個關係編碼器\(f_{\theta}\), 又或者說整個訓練過程就是根據損失 (如下Eq (1)) 在使其最小化的過程中,對relation encoder引數化的過程。學到這個對映就會有個對映值輸出,我們就用對映值即關係表示做內積,進而算兩關係是否相同的概率,進而計算損失進行反向傳播更新引數。

同時,作者觀察到因為我們是直接從網路上如維基百科獲取句子語料,再用現成的實體連結系統基於FreeBase對句子中target實體的span進行標註,但這樣會有很多冗餘,即每種關係都可能被多個句子提到多次,這樣這兩個關係更有可能編碼同一種關係,因此我們採用兩種方法避免這種冗餘,一是取樣時針對每種關係進行隨機sample,二就是引入Blanks。其實由Eq (1)我們很容易就可以根據D最小化Loss,但D是根據鏈式系統得到的,實體連線系統做entity annotation沒有什麼所謂的關係的概念,那麼我們如果假設\(f_{\theta}\)能夠在這樣的語料庫的基礎上根據D很魔幻的自動學到一個很有意義的relation表示或者說對映是沒有道理的,因此我們要麼重構entity linking重新獲取新的與實體關係關聯的D,但太麻煩,所以直接引入Blanks思想,修改D語料庫為\(\tilde{\mathcal{D}} = [(\mathsf{\tilde{r}^0,e_1^0,e_2^0})...(\mathsf{\tilde{r}^N,e_1^N,e_2^N})]\),其中\(\tilde{\mathsf{r}}^i = (\mathbf{\tilde{x}^i},s_1^i,s_2^i)\)包含一個relation statement,在這個relation statement即x中,\(\alpha\)的概率為s定義的entity span,否則就用[BLANK]符號替換entity span (感覺這有點類似BERT中的mask的思想,BERT學的就是預測輸入中被mask的詞,通過mask可能讓BERT模型學到了語義等資訊)。因此新的損失\(\mathcal{L(\tilde{D})}\)需要\(f_{\theta}\)做的就不只是確認 r 中的實體了,我們假設使用\(\mathcal{\tilde{D}}\)進行訓練,將會得到一個編碼了我們可能忽略的兩entity span之間的語義關係的relation encoder \(f_{\theta}\),後續實驗也支撐了這個假設。

5 Experiments

詳見paper或參考。

6 Conclusion

感覺本文的想法挺好的除了BLANKS的想法,之前的監督方法中對輸入encoder和輸出的固定長度vector的提取的幾種方案的設計都挺值的借鑑的,同時作者再Abstract也提了,詳見實驗,使用本文提出的模型做初始化,然後再具體的監督關係抽取任務上進行微調再多個監督關係抽取任務上都有很好的表現,也超過了之前方法的表現。

參考

[1] Livio Baldini Soares.Nicholas FitzGerald.Jeffrey Ling∗.Tom Kwiatkowski.Matching the Blanks: Distributional Similarity for Relation Learning.ACL 2019.

[2] 墨墨末末.Matching the Blanks: Relation Learning.zhihu 2020.9.https://zhuanlan.zhihu.com/p/110202712.