1. 程式人生 > 其它 >筆記:Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling

筆記:Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling

Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling

作者:Dai Dai et al., AAAI 2019.

目錄

  • 簡介
  • 方法
  • 實驗
  • 總結

1 簡介

對比之前的兩篇(Zheng et al., ACL \(^{[3]}\), Zeng et al.,ACL \(^{[4]}\)),這三篇都是做聯合抽取實體和關係的任務,不同的是,(Zheng et al.)這篇無法解決關係重疊的問題,(Zeng et al.)這篇雖然解決了關係重疊的問題,但是他的方法只能針對單個詞的實體,對於多詞實體即一個實體由多個詞構成的情況無法處理(這也正是讀這篇paper時的疑問),因此本篇paper類似(Zheng et al.)也設計了一個新的標註方案,將聯合抽取看作是三元組抽取轉化為序列標註任務,同時利用提出的position-attentive模型進行標註,進而抽取關係和實體,既能解決關係重疊問題,又適用於多詞實體的情況。

2 方法

首先介紹新的標註方案,將抽取任務轉化為一系列序列標註任務(為什麼是一系列序列標註?與position-attentive有關),之後基於此標註方案,詳細介紹position-attentive序列標註模型--即如何標註的。

2.1 Tagging Scheme

如圖Figure 2,為標註方案的一個例子。

他這個標註感覺是實體和關係標註混合了,n為句子長度,p為詞的位置。首先,正如介紹中所說是position-attentive,此標註要基於不同位置的p,產生不同的句子表示,那麼n個詞就會有n個表示,所以說是一些列標註任務。
其次,具體的標註條件是若p位置的詞是實體的開始詞,那麼就去其他位置找與它有關係的實體並標註關係型別,那麼由於會遍歷所有位置p然後去匹配其他實體,那麼說明實體可以重複利用且對於<e1,e2>、<e2,e1>反向關係也能處理,就解決了關係重疊問題,同時實體的標註採用BIES標註方案,那麼也就能夠解決多詞實體的問題了。
例如,figure 2中p=5, “Trump”為S-PER,那麼與其他位置與它有關的實體依次構成不同的關係, (trump, President_of,United States)等,標註縮寫見Figure 2中的說明。

2.2 End-to-End Sequence Labeling Model with Position-Attention

那麼知道標註方案後,如何進行標註呢,本節就介紹具體的序列標註模型。結構圖如Figure 3所示。

Bi-LSTM Encoder

首先對於圖中Word Character部分,就是序列標註任務中常見的處理,使用CNN做字元級別的embedding與預訓練的word embedding拼接得到最終的輸入詞表示,使用BLSTM作為編碼器,使用其輸出作為計算Position Attention的輸入。

Position-Attention Mechanism

抽取所需要的主要的資訊就是實體所包含的詞的資訊、句子中相關聯的實體資訊(這就需要位置資訊)以及兩實體之間的關係資訊(這就需要上下文資訊),因此基於此想法,提出了position-attention,既能夠根據位置p編碼實體資訊,又能夠編碼整個句子的上下文資訊,進而產生position-aware和context-aware的句子表示:\(\{\mathbf{u}_t\}_{t=1}^n\)

,作為下一步的輸入。

其中,\(\mathbf{u}_t\)表示每種句子表示的第t個詞(假設句子長度為n),\(h_t\)表示表示位置t處的hidden state,\(c_t\)表示整個句子的attention-pooling vector--即對整個句子attention後資訊整合的向量。

\(c_t\)就是對每個位置的hidden state \(h_j,j=1,...,n\)的權重求和,\(a_{tj}\)為權重,通過對得分\(s_{tj}\)做softmax得到,t為當前要進行表示的詞位置t,\(s_{tj}\)是通過\(h_j,h_p,h_t\)計算得到的每一個位置的得分。那麼為什麼要使用這三個hidden state計算呢,這就回到此小節開頭說到的編碼位置和上下文資訊的問題,對於當前遍歷的位置p的hidden state,通過\(h_p\)與所有位置的hidden state \(h_j\)計算,得到我們需要的針對當前遍歷到的位置p處的實體與其他詞的位置資訊。我們是要根據不同的位置p表示整個句子的,對於t位置的要表示的詞,我們利用\(h_t\)\(h_j\)計算得到t位置詞的上下文資訊。也就是說利用\(h_p\)\(h_t\)分別與\(h_j\)計算編碼針對當前遍歷位置p與當前表示位置t的位置資訊和上下文資訊。

如圖Figure 3,先利用虛線框中的\(h_t,h_p\)與虛線箭頭的\(h_j,j=1,...,n\)計算\(a_t\),之後再利用\(a_t\)對每個實現箭頭也是\(h_j\)加權處理得到\(c_t\),最後再將\(c_t\)\(h_t\)拼接得到CRF層的輸入。至於為什麼\(u_t\)\(h_t,c_t\)的拼接,個人感覺要預測當前t位置的詞的標籤,肯定需要當前詞的資訊\(h_t\)以及整個句子整合的資訊\(c_t\)

CRF Decoder

\(\{\mathbf{u}_t\}_{t=1}^n\)作為輸入預測標籤,對於LSTM-CRF標籤預測結構原理之類的解釋,見參考[5]。

最後對每個輸入語句都標註得到標籤序列後,就按照Figure 2的方法依次結合三元組。

3 實驗

作者做了很多實驗,包括消融實驗、attention權重分析--看看到底是否編碼了位置和上下文資訊等,值得看看包括裡面一些論述對於理解此模型或此類聯合抽取任務都有幫助,這裡就不再贅述了,感興趣可以看看原文。

4 總結

還是那個問題,單就序列標註任務,雖然明白了序列標註模型,但序列標註其實就是多分類嘛,那這資料集如NYT10裡的資料也沒他提出的這個新的標註的類別標籤啊,模型怎麼標註啊哪裡知道哪類是哪個標籤,不像傳統多分類如NER雖然也是給每個詞打標籤,但人家資料集本身就是這樣的啊每個詞都有個標籤到時候模型根據訓練集預測標籤與真實標籤計算損失學習就行了,他或者(Zheng et al., ACL)提的新的標註方案都一樣,這資料集都沒有這樣標籤的資料怎麼訓練啊???主要他這還是關係實體標籤混著來的要是單就實體標籤還有這樣的標註資料集,難道自己手動標啊這麼多條資料呢,以後看看程式碼或者其他paper吧,搞不懂。

參考

【1】Dai Dai,Xinyan Xiao,Yajuan Lyu,Shan Dou,Qiaoqiao She,Haifeng Wang.Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling.AAAI 2019.

【2】論文筆記 – Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling.https://ivenwang.com/2020/12/18/pa-lstm-crf/.

【3】Suncong Zheng, Feng Wang, Hongyun Bao, Yuexing Hao,Peng Zhou, Bo Xu.Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme.ACL 2017.

【4】Xiangrong Zeng, Daojian Zeng, Shizhu He1, Kang Liu, Jun Zhao.Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism.ACL 2018.

【5】BiLSTM + CRF 學習.https://ivenwang.com/2020/06/12/bilstmcrf/.