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?

www.arxiv-vanity.com

ABSTRACT

本文使用將RNN和CNN ensemble的方法,在SemEval Task7 的四個子任務中取得了三個第一。

INTRODUCTION and RELATED WORK

SemEval Task 7 子任務介紹:

Subtask1.1 實體對關係分類(給定實體對,句子,關係,不包含NA類別)

Subtask1.2 加噪數據實體對關係分類(給定實體對,句子,關係,不包含NA類別)

Subtask2 實體關係分類(給定實體位置,句子,關係,包含NA類別)

本文的實驗結果如下(原文先貼了實驗結果)

本文分析了各種特徵(以及trick)最實驗結果的影響。如下圖所示

原文倒數第二個注釋有錯,應該是GD

分別解釋一下這些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的時候效果最好。

不同的embedding 的影響

數據清洗

有的實體裡面包含了別的實體,本文將這些實體分開。例如有的句子是 「信號處理」 , 「信號處理」可以是一本書,作為一個實體,「處理」也可以作為一個實體,這樣的句子變成兩句,一個只標記「處理」, 另一個標記「信號處理」。 (原文中舉的例子有些奇怪。。。)

[] () 這兩種括弧內的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上的表現刷的更高。

推薦閱讀:

TAG:信息檢索 | 自然語言處理 |