在NLP中深度學習模型何時需要樹形結構?
前段時間閱讀了Jiwei Li等人[1]在EMNLP2015上發表的論文《When Are Tree Structures Necessary for Deep Learning of Representations?》,該文主要對比了基於樹形結構的遞歸神經網絡(Recursive neural network)和基於序列結構的循環神經網絡(Recurrent neural network),在4類NLP任務上進行實驗,來討論深度學習模型何時需要樹形結構。下面我將通過分享這篇論文以及查看的一些相關資料來討論一下我們何時需要樹形結構知識。
1 句法分析樹
根據不同的標注樹庫,句法分析樹主要有兩種形式:1) 短語結構樹(Constituent Tree) 和2) 依存結構樹(Dependency Tree)。下面舉個簡單的例子,"My dog likes eating sausage." 使用Stanford parsing tool進行句法分析可以得到如下結果:
我們將其可視化后,短語結構樹和依存樹分別為:
論文[1]中指的樹形結構即為NLP中句法分析后得到的句法樹結構。
2 對比模型
在論文中,主要分了兩大組模型進行對比實驗,具體的是:
-
Standard tree models (standard Recursive neural models), standard sequence models (standard Recurrent neural models), standard bi-directional sequence models (bi-directional recurrent neural models).
-
LSTM tree models[2], LSTM sequence models vs LSTM bi-directional sequence models.
每組就是三個模型,樹模型,單向序列模型和雙向序列模型,具體的模型大家可以查閱文獻,下面我只給出標准模型的結構圖。
Standard Recursive/Tree Models
Standard Recurrent/Sequence Models
Bidirectional Recurrent Models
3 實驗數據
該文在NLP領域中4種類型5個任務進行了實驗,具體的實驗數據大家可以從論文中查閱,這里我主要分析一下每個任務的特點,以及最后實驗的結果:
-
Sentiment Classification on the Stanford Sentiment Treebank
這是一個細粒度的情感分類問題,根據Stanford的句法樹庫,在每一個節點上都標注了情感類型,所以實驗分為了句子級別和短語級別,從結果來看,樹形結構對於句子級別有點幫助,對於短語級別並沒什么作用。
-
Binary Sentiment Classification
這同樣是一個情感分類問題,與上面不同的是,它只有二元分類,並且只有在句子級別上進行了標注,且每個句子都比較長。實驗結果是樹形結構並沒有起到什么作用,可能原因是句子較長,而且並沒有豐富的短語級別標注,導致在長距離的學習中丟失了學習到的情感信息。
-
Question-Answer Matching
這個任務是機智問答,就是給出一段描述一般由4~6句組成,然后根據描述給出一個短語級別的答案,例如地名,人名等。在這個任務上,樹形結構也沒有發揮作用。
-
Semantic Relation Classification
這個任務是給出兩個句子中的名詞,然后判斷這兩個名詞是什么語義關系。樹形結構的方法在這個任務上有明顯的提升。
-
Discourse Parsing
是一個分類任務,特點是其輸入的單元很短,樹形結構也沒有什么效果。
結論
通過上面的實驗,作者總結出下面的結論。
需要樹形結構:
-
需要長距離的語義依存信息的任務(例如上面的語義關系分類任務)Semantic relation extraction
-
輸入為長序列,即復雜任務,且在片段有足夠的標注信息的任務(例如句子級別的Stanford情感樹庫分類任務),此外,實驗中作者還將這個任務先通過標點符號進行了切分,每個子片段使用一個雙向的序列模型,然后總的再使用一個單向的序列模型得到的結果比樹形結構的效果更好一些。
不需要樹形結構:
-
長序列並且沒有足夠的片段標注任務(例如上面的二元情感分類,Q-A Matching任務)
-
簡單任務(例如短語級別的情感分類和Discourse分析任務),每個輸入片段都很短,句法分析可能沒有改變輸入的順序。
此外,哈工大的車萬翔在哈工大的微信公眾號也發表了《自然語言處理中的深度學習模型是否依賴於樹結構?》[3],其中提到了"即使面對的是復雜問題,只要我們能夠獲得足夠的訓練數據"也可以無需樹形結構。
通過這篇論文和車老師的博文以及一些相關資料,句法樹形結構是否需要值得我們關注,我們應該根據自己做的任務以及句法分析的優缺點進行判斷,我自己總結如下:
句法分析能夠帶給我們什么?
-
長距離的語義依賴關系
-
包含語言學知識的序列片段
-
簡化復雜句子提取核心
句法分析的缺點
-
自身分析存在錯誤,引入噪聲
-
簡單任務復雜化
-
句法分析時間長
主要參考文獻
[1] J. Li, M.-T. Luong, D. Jurafsky, E. Hovy, When Are Tree Structures Necessary for Deep Learning of Representations?, EMNLP. (2015) 2304–2314.
[2] K.S. Tai, R. Socher, C.D. Manning, Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks, Acl-2015. (2015) 1556–1566.
[3] 哈工大車萬翔:自然語言處理中的深度學習模型是否依賴於樹結構?