現有的關係抽取方法大多是先識別所有實體然後再確定關係型別。但是這類方法並沒有考慮到實體與關係之間的作用。本文應用分層強化學習框架來增強實體提及和關係型別之間的互動,將相關實體視為關係的集合。此外,該方法還解決了抽取重疊關係(Overlapping Relations)的問題。
研究動機
該研究主要解決的問題有兩個:
1. 大部分現有的方法在實體被識別後才決策關係型別。這種方法存在兩個弊端:一是並沒有充分挖掘實體和關係之間的聯絡,而是把他們割裂作為兩個子任務去處理;二是很多和關係無關的實體會帶來噪聲;
2. 關係抽取會存在重疊關係問題(也叫一對多問題)。在一句話中,一個實體可能會存在多個關係,或者一個實體對可能存在多種關係。目前已知只有 CopyR 方法研究了這個問題,但是本文作者實驗證明了這種方法嚴重依賴資料,並且無法抽取多詞語關係。 如圖:
層次抽取框架
首先,文章定義了“關係指示符”(Relation Indicator)。 當在一句話中的某個位置有足夠資訊去識別語義關係時,我們把這個位置就叫做“關係指示符”。它可以是名詞、動詞、介詞,或者是一些其他的符號比如逗號、時間等等。關係指示符在本結構中非常重要,因為整個的關係抽取任務可以分解為“關係指示符”和“關係中的實體抽取”。
整體來看,關係抽取過程如下:
一個 agent 在掃描句子時預測特定位置的關係型別。不同於識別實體對之間關係的關係分類,該過程不需要對實體進行標註。當在一個時間步中沒有足夠的資訊來指示語義關係時,agent 可以選擇 NR,這是一種指示沒有關係的特殊關係型別。否則,觸發一個關係指示符,agent 啟動一個用於實體提取的子任務,以識別兩個實體之間的關係。當實體被識別時,子任務完成,代理繼續掃描句子的其餘部分尋找其他關係。
這種過程可以被表述為半馬爾可夫決策過程:1)檢測句子中關係指示符的高階 RL 過程;2)識別對應關係的相關實體的低階 RL 過程。
通過將任務分解成兩個 RL 過程的層次結構,該模型有利於處理對於同一實體對具有多種關係型別的句子,或者一個實體涉及多種關係的情況。過程如圖:
下面分別介紹兩個決策過程。
Relation Detection with High-level RL
High-level RL 的策略(policy)µ 旨在從句子中找到存在的關係,可以看做是帶有 options 的 RL policy。option 指的是一旦 agent 執行了某個選項,就會啟動低階別的 RL 策略。
Option:option 在集合 O = {NR} ∪ R 中選擇,當 low-level RL 進入結束狀態,agent 的控制將被 high-level 接管去執行下一個 option。
State:狀態 S 由以下三者共同決定:當前的隱狀態,最後一個 option 的 relation type vector 和上一個時間步的狀態。公式如下:
是非線性變換,是由 Bi-LSTM 得到隱狀態。
Policy:關係檢測的策略,也就是 option 的概率分佈,如下,其中 W 是權重:
Reward:環境提供給 Agent 的一個可量化的標量反饋訊號,也就是 reward。reward 計算方法如下:
最後,用一個最終的 reward 來評價句子級別的抽取效果:
Entity Extraction with Low-level RL
當 High-level RL policy 預測了一個非 NR 的relation,Low-level RL 會抽取 relation 中的實體。High-level RL 的 option 會作為 Low-level RL 的額外輸入。
Action:action 會給當期的詞分配一個 tag,tag 包括 A=({S,T,O}×{B,I})∪{N}。其中,S 是參與的源實體,T 是目標實體,O 是和關係無關的實體,N 是非實體單詞,B 和 I 表示一個實體的開始和結束。可參看下圖:
State:類似 High-level RL 中的關係檢測,High-level 中的狀態計算方法如下:
是當前單詞的隱狀態,同樣也是經過 Bi-LSTM 計算得到,Vet 是可學習的實體標籤向量,是上一階段的狀態(注意,既可以是 High-level 的狀態,也可以是 Low-level 的狀態)。g 和 f 都是多層感知機。
Policy:由句子到實體的概率計算如下:
Reward:給定一個關係型別,通過 policy 可以很容易得到實體標籤。我們需要用 reward 來衡量預測的標籤是否準確:
其中,λ(y) 用來降低 non-entity tag 的權重。
Hierarchical Policy Learning
在優化 High-level policy 時,我們需要最大化預期累積回報,如下:
γ 是 RL 中的折扣因子。在結束前,整個取樣過程需要 T 個時間步長。
同樣的,在優化 Low-level policy 時,我們也需要最大化累計回報,公式如下:
把累計回報分解成 Bellman 方程,得到:
當實體提取策略根據選項 ot 執行時,子任務持續的時間步數是 N。當 option 是 NR 是,N=1。
可以一同優化 High-level 和 Low-level 兩段策略,High-level 的梯度是:
Low-level 的梯度是:
整個訓練過程如下:
實驗
資料集:通過遠端監督得到的資料:NYT10 和 NYT11。
引數設定:預訓練詞向量使用 300 維的 GloVe 詞向量,Relation Type Vectors 和 Entity Tag Vectors 是隨機初始化的,學習率:4e − 5,mini-batch size:16,α = 0.1,β = 0.9,discount factor γ = 0.95。
評價方法:採用 micro-F1 評價方法,如果關係型別和兩個對應的實體都正確,則認為三元組是正確的。
Baselines:作為對比的 baseline 方法有:FCM、MultiR、CoType、SPTree、Tagging 和 CopyR。
實驗結果
Split:輸入為 c×h×w 的特徵圖,和均表示 Group Convolution。這裡使用 Group Convolution 以減少計算量。注意,這裡兩路 Group Convolution 使用的卷積核大小不一致,原因在於 Motivation 中說的第一點,提升精度。
總結
在本文中,作者提出了一種通過分層強化學習進行關係抽取的分層抽取正規化。該正規化將實體視為關係的集合,並將關係抽取任務分解為兩個子任務的層次結構:High-level 指示符檢測和 Low-level 實體抽取。
關係檢測的 High-level 策略識別句子中的多個關係,實體提取的 Low-level 策略啟動子任務以進一步提取每個關係的相關實體。這種方法擅長於建模兩個子任務之間的互動,尤其擅長於提取重疊關係。
實驗證明,該方法優於最先進的基線。目前,強化學習在 NLP 的應用較少,該工作為關係抽取任務帶來了啟發,事實證明,基於強化學習的關係抽取是可以成功的。