Effectively Combining RNN and CNN for Relation Classification and Extraction
轉載請註明出處:西土城的搬磚日常
來源:SemEval 2018
ETH-DS3Lab at SemEval-2018 Task 7: Effectively Combining Recurrent and Convolutional Neural Networks for Relation Classification and Extraction
ABSTRACT
本文使用將RNN和CNN ensemble的方法,在SemEval Task7 的四個子任務中取得了三個第一。
INTRODUCTION and RELATED WORK
SemEval Task 7 子任務介紹:
Subtask1.1 實體對關係分類(給定實體對,句子,關係,不包含NA類別)
Subtask1.2 加噪數據實體對關係分類(給定實體對,句子,關係,不包含NA類別)
Subtask2 實體關係分類(給定實體位置,句子,關係,包含NA類別)
本文的實驗結果如下(原文先貼了實驗結果)
本文分析了各種特徵(以及trick)最實驗結果的影響。如下圖所示
分別解釋一下這些feature的含義:
ICC : 原始CNN分類器
CSD: 將subtask 1.1 1.2的數據合在一起訓練
OP: 調參
RS: 數據增廣:將句子反轉 (後面會說)
WCE : 加權的Cross entropy, 樣本數量越少的數據分配越高的權重。
EN : 模型集成
RPE: 引入位置信息
PTE: 引入POS信息
CRC : RNN + CNN
GD: 將訓練集和測試集混在一起,生成新的數據。新的數據使用語言模型打分,分數超出一定閾值並且句子長度足夠長才算有效。
WNC : 將CNN的prob和RNN的prob按句子長度加權求和
METHOD
本文的模型由20對CNN和RNN網路 ensemble而成。模型輸入是 word embedding + POS + RPE, CNNN部分:一層conv + reu + maxpooling + FC , 沒有dropout, 輸出prob。 RNN 部分:不加padding的Bi-LSTM + FC + dropout, 輸出prob。這樣的網路訓練20個,得到40個prob, 取平均。
數據預處理
將所有句子兩個實體之間的部分切出來,剩下的去除。然後對於句子長度長於一定量(本文>19)的句子刪除。
本文做了實驗,句子長度對於分類效果的影響。可見句子長度截斷閾值為19的時候效果最好。
數據清洗
有的實體裡面包含了別的實體,本文將這些實體分開。例如有的句子是 「信號處理」 , 「信號處理」可以是一本書,作為一個實體,「處理」也可以作為一個實體,這樣的句子變成兩句,一個只標記「處理」, 另一個標記「信號處理」。 (原文中舉的例子有些奇怪。。。)
[] () 這兩種括弧內的token也刪除。有些名詞裡面帶的數字替換成隨機token。
本文使用了一種數據増廣方式(前面提到的RS):句子反轉。上圖中的關係是非對稱的關係,將句子按字反轉之後,實體對的前後關係發生反轉,他們之前的關係也就發生了反轉,於是使用一種替換的方式直接將實體中間的字換成表達相反關係的token。 例如圖中表達的是「由…組成的關係」, 前者「corpus」由後者「text」組成。將句子反轉之後,他們之間的位置反轉,中間的token 「 from a 「 表示」由…組成的關係「相反的關係。這樣新生成的句子雖然是語法上不通,但是可以提升Performace。
可以看到本文真是進行了極為詳細的grid search, 這在一定程度上是在擬合數據集了。
進行subtask2 的時候,由於樣本極度不均衡,於是對所有數據上採樣,也就是網路輸入每次保證正負樣本的比例是固定的(本文設定的是1:1)。
作者做實驗的時候發現,單獨使用RNN或者CNN, 效果都差不多,但是兩種模型ensemble的時候效果會有提升。更進一步的結果是,作者發現RNN模型對長一些的句子比CNN效果好。於是本文使用如下公式對RNN的prob加權。
Si是對一個句子的長度拉伸結果(拉到 -0.5 ——> 0.5)。句子越長,權重越高。
結果後處理
六類關係中有五種是非對稱的,一種是對稱的。由於進行了句子反轉,所以翻轉後的句子結果不可能為對稱關係,需要將這種情況下的預測改變為得分第二高的類別。
還有一種情況是,subtask2中,每個實體只能屬於一個關係,如果出現一個實體同時出現在兩個關係中,需要選擇更短的或者頻率更高的或者隨機輸出。
閱讀心得
本文進行了非常非常詳細的實驗,正是這樣才能在SemEval Task 7 上表現這麼好。分析提到的很多feature有擬合數據集或者取巧的嫌疑,不過還是有幾點有實際用處,有值得借鑒的地方:比如句子反轉RS, 加權的cross entropy, ensemble CNN 和 RNN 模型,以及對於RNN和CNN根據句子長度加權預測的方式。結合這些加上對於深度學習方式的探索,相信還可以將NYT上的表現刷的更高。
推薦閱讀: