語義角色標註相關論文解析

語義角色標註(Semantic Role Labeling,SRL)的使用範圍很廣泛,可以作爲信息抽取(Information Extraction)、自動答覆(Question Answering)、機器翻譯(Machine Translation)的中間步驟。本篇博文將介紹 Zhou and Xu, 2015 的一篇論文,希望能對讀者有所啓發。

SRL的目標是找到給定句子裏的謂詞(predicate)相關的成分與此謂詞的角色關係,被認爲是一種監督學習問題(supervised machine learning)。傳統方法中,比如邏輯迴歸(Logistics Regression,LR)、支持向量機(Supported Vector Machine,SVM)等線性分類器基於特徵來完成此任務:

  1. 確定成分是否與謂詞相關;
  2. 如果相關是何種關係類型?

在特徵中,句法信息(syntactic information)被認爲是必不可少的(Punyakanok etal., 2008a),因爲成分在句法樹(semantic tree)中的位置提供了中間的標籤類型,有助於提高性能。然而要得到一顆句法樹就必須對句子進行解析(semantic parse),而解析不能保證完全正確,因此基於句法樹的方法錯誤會傳導至最終SRL的結果。此外,如何選取特徵嚴重依賴專家經驗,費時費力,而且當換了語料或者使用其他語言的預料時又得重新設計特徵模板,費時費力!

本篇論文作者提出了end-to-end的BD-LSTM模型(bi-directional long short-term memory)來解決上述問題,只輸入原始的文本信息即可,不需要任何句法信息,輸入的特徵被8(是實驗最好的結果不是幸運數字)層雙向的LSTM層處理,最上層是條件隨機場(Conditional Random Field,CRF)用來分類,並且句法信息也可以一定程度得到。序列信息輸入給正向的LSTM層,這個層的輸出作爲緊接着的反向的LSTM層的輸入,這兩層構成一對LSTM層,一共有4對堆疊到一起,如下圖:
圖一
文中使用4種特徵:predicate(pred),argument(argu),predicate context(ctx-p),region mark(mr)。因爲僅僅靠單一的謂詞很難表達出謂詞的信息,尤其是當一句話中同一單詞出現多次的情況下,這就是爲什麼會設計predicate context這個特徵,主要用來消除歧義。當argument落在predicate context範圍內時,mr = 1,否則爲0。如下表:
表一上述四種特徵拼接起來作爲輸入餵給LSTM層。文中還是用了預訓練的詞向量,對於給定的序列,查找每個詞對應的詞向量然後用LSTM來處理詞向量。使用隨機梯度下降(Stochastic Gradient Descent,SGD)算法作爲訓練技術。在LSTM層處理完整個序列的時間步之後,將所有的輸出作爲CRF層的輸入執行序列tagging任務,最後用Viterbi算法解碼。

作者還簡單分析了卷積神經網絡(Convolutional Neural Network,CNN)在SRL任務的表現,以求獲得這個問題的deep insight。在CNN模型中,加入了argument context這個特徵,所以一共就是5個特徵。對於除了region mark以外的4個特徵,每個都增加一個隱藏層,加上region mark一起投影給下一個隱藏層。最後也是接一個CRF層,網絡結構見下圖:

在這裏插入圖片描述
作者做了一組基於CNN模型的實驗,結果如下表,其中h1c是連接到argument context(ctx-a)或者predicate context(ctx-p)的隱藏層的維度:
在這裏插入圖片描述
可以得出以下結論:

  1. 更長的argument context或者predicate context可以得到更好的結果,因爲更長的文本會帶來更多信息;
  2. 在其他的NLP實驗中,例如NER,POS tagging也有同第一點的趨勢。不同的是,不必使用11位context長度,因爲NER或者POS tagging有用的信息一般都反映在tag位置附近,不像SRL具有長距離依賴,因此在傳統的SRL任務中一般引入semantic tree;
  3. 並不是模型越複雜表現就越好,對比CNN-2、CNN-3、CNN-6;
  4. region mark特徵至關重要,對比CNN-3、CNN-5,這是因爲通常認爲predicate附近的詞與predicate更相關。
  5. SRL是一個典型的長距離依賴問題,這就是爲什麼會引入context長達11。但是僅僅增加context長度不能完全表達出文本信息,所以作者才選用LSTM。

緊接着作者又做了一組基於LSTM的實驗,從LSTM層數d = 1,隱藏層維度h = 32,詞向量隨機初始化,ctx-p = 1,不使用region mark開始,慢慢增加d、h、ctx-p並使用英語維基百科的詞向量Ewk,實驗結果如下表:
在這裏插入圖片描述從實驗中可以得出以下幾點結論:

  1. 在不使用region mark的情況下,最簡單的模型的F1 = 49.44,高於CNN-1或者CNN-5,說明LSTM結構能更有效地提取序列信息;
  2. predicate context很有必要,對比ctx-p =5與ctx-p = 1可知F1從49.44增長到56.85;
  3. region mark也很有用,可以把F1得分提升到58.71,原因同CNN;
  4. 使用預訓練的的詞向量Ewk可以提高模型的表現;
  5. 提升模型的關鍵在於增加模型的深度:a、增加了反向的LSTM層之後F1從65.11提升至72.56;b、增加堆疊的LSTM對也可以提升模型的表現,8層的LSTM的F1可達78.28;c、模型不是越深越好,從d = 6到d = 8並沒有帶來顯著提升;
  6. 增加維度也可以緩慢提升模型的表現。

由於此模型輸入特徵遠比需要sparse特徵魔板的傳統模型小,所以非常高效,平均每秒可以處理6.7K個token。最後放一張state-of-the-art的表(2015年)以表敬意:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章