因爲課題組的需要,過去幾個月一直在學習強化學習和魯棒性算法。再加上忙於課題組中的一些工作,所以過去兩個月基本沒有什麼時間來寫博客。最近讀了不少強化學習和魯棒性算法方面的論文,也有一些小的收穫,等有時間再通過博客分享出來。今天分享的是我近期記錄的關係抽取的筆記,希望對想要入門關係抽取這個任務的朋友們有些幫助。
1 關係抽取概述
關係抽取從信息抽取(亦稱爲“文本結構化”)中演化而來。關係抽取一般指從非結構化文本中抽取實體以及實體間的關係。關係抽取的下游任務是:問答系統,聊天機器人等。
1.1 關係的獲取方法
-
人工構建;
-
從結構化數據庫中轉換;
-
自動構建:即自動從文本中抽取。
1.2 關係抽取的任務分類
關係實例抽取:
輸入:文本,給定的關係;
輸出:實體對{(主體,客體)}。
關係分類:
輸入:文本,實體對,關係列表P;
輸出:關係P_i。
實體關係聯合抽取:
輸入:文本;
輸出:三元組的集合{(主體,關係,客體)}
開放關係抽取:此類任務抽取的是關係的文本描述,這類關係通常未定義。開放關係抽取之後要進行規範化。
2 關係抽取方法
評測數據集:
人工構建的數據集:ACE 2005, SemEval-2010 Task 8。質量高,規模小。
基於遠程監督構造的數據集:NYT, KBP。 規模大、但噪音多。
遠程監督方法是一種弱監督方法,優點是代價小,規模大;缺點是質量問題。
基於遠程監督的數據集構造過程:
-
從知識庫中爲目標關係識別儘可能多的實體對;
-
對於每個實體對,利用實體鏈接從大規模文本中抽取提及該實體對的句子集合,併爲每個句子標註相應的關係;
-
包含實體對的句子集合 和 關係類型標籤 構成關係抽取的標註集。相應的句子是訓練數據,關係類型是標籤。
解決遠程監督的噪音問題:
發表於2018年ACL的《Robust distant supervision relation extraction via deep reinforcement learning》這篇論文中的思路是引入強化學習的思想,通過選擇高質量的句子,來不斷地篩選數據集。這種思路是將基於遠程監督的關係分類劃分爲兩個子任務:
實例篩選:利用強化學習策略構造一個實例選擇器,從遠程監督產生的數據中獲取優質樣本。
關係分類:根據選擇的樣本訓練關係分類器。關係分類器同時爲實例選擇器提供獎勵。
以及同時期發佈的另一篇論文《Reinforcement learning for relation classification from noisy data》
2.1 基於模式的抽取
使用模式來表達關係在文本中提及方式,將模式與語料匹配,來獲取關係實例。這種方法現在用得比較少。
有兩種方法,一種是專家定義模式,俗稱規則法;另一種是自動學習模式。
自動化模式獲取方法:bootstrapping,即根據已經習得的模式自動標註新樣本,然後基於新補充的標註樣本來獲取新的模式,依次逐步提升模型。
2.2 基於學習的關係抽取
數據標註->模型構建->模型學習
-
基於RNN的關係抽取:包括輸入層,雙向循環層和池化層,最後借全連接層+softmax層生成關係的概率分佈;
-
基於CNN的關係抽取;
-
基於注意力機制的關係抽取:爲每個句子賦予權重,權重越大表明該句子表達目標關係的程度越高,反之則越可能是噪聲。