歡迎光臨
每天分享高質量文章

AAAI 2019 | 基於分層強化學習的關係抽取

本文是清華大學發表在 AAAI 2019 上的一篇關係抽取方向的文章。作者開創性地提出了使用層次強化學習做關係抽取的方法,在不同資料集上和現有方法相比都有提高。

作者丨劉朋伯 

學校丨哈爾濱工業大學碩士生 

研究方向丨自然語言處理

 

現有的關係抽取方法大多是先識別所有物體然後再確定關係型別。但是這類方法並沒有考慮到物體與關係之間的作用。本文應用分層強化學習框架來增強物體提及和關係型別之間的交互,將相關物體視為關係的集合。此外,該方法還解決了抽取重疊關係(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 的應用較少,該工作為關係抽取任務帶來了啟發,事實證明,基於強化學習的關係抽取是可以成功的。

赞(0)

分享創造快樂