在NLP中深度學習模型何時需要樹形結構?

該文主要對比了基於樹形結構的遞歸神經網絡(Recursive neural network)和基於序列結構的循環神經網絡(Recurrent neural network),在4類NLP任務上進行實驗,來討論深度學習模型何時需要樹形結構。

下面我將通過分享這篇論文以及查看的一些相關資料來討論一下我們何時需要樹形結構知識。

1.句法分析樹

根據不同的標註樹庫,句法分析樹主要有兩種形式:

1) 短語結構樹(Constituent Tree)

2) 依存結構樹(Dependency Tree)。

下面舉個簡單的例子,"My dog likes eating sausage." 使用Stanford parsing tool進行句法分析可以得到如下結果:


在NLP中深度學習模型何時需要樹形結構?




在NLP中深度學習模型何時需要樹形結構?

樹形結構即為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.


每組就是三個模型,樹模型,單向序列模型和雙向序列模型,具體的模型大家可以查閱文獻,下面我只給出標準模型的結構圖。

在NLP中深度學習模型何時需要樹形結構?

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
  • 是一個分類任務,特點是其輸入的單元很短,樹形結構也沒有什麼效果。


4.結論

通過上面的實驗,作者總結出下面的結論。

需要樹形結構:

  1. 需要長距離的語義依存信息的任務(例如上面的語義關係分類任務)Semantic relation extraction
  2. 輸入為長序列,即複雜任務,且在片段有足夠的標註信息的任務(例如句子級別的Stanford情感樹庫分類任務),此外,實驗中作者還將這個任務先通過標點符號進行了切分,每個子片段使用一個雙向的序列模型,然後總的再使用一個單向的序列模型得到的結果比樹形結構的效果更好一些。

不需要樹形結構:

  1. 長序列並且沒有足夠的片段標註任務(例如上面的二元情感分類,Q-A Matching任務)
  2. 簡單任務(例如短語級別的情感分類和Discourse分析任務),每個輸入片段都很短,句法分析可能沒有改變輸入的順序。


此外,哈工大的車萬翔在哈工大的微信公眾號也發表了《自然語言處理中的深度學習模型是否依賴於樹結構?》,其中提到了"即使面對的是複雜問題,只要我們能夠獲得足夠的訓練數據"也可以無需樹形結構。

通過這篇論文和車老師的博文以及一些相關資料,句法樹形結構是否需要值得我們關注,我們應該根據自己做的任務以及句法分析的優缺點進行判斷,我自己總結如下:

句法分析能夠帶給我們什麼?

  1. 長距離的語義依賴關係
  2. 包含語言學知識的序列片段
  3. 簡化複雜句子提取核心

句法分析的缺點

  1. 自身分析存在錯誤,引入噪聲
  2. 簡單任務複雜化
  3. 句法分析時間長


大家在做具體任務的時候,可以分析到底是否使用樹結構,如果使用恰當,沒準能給實驗帶來較大的提升。

在NLP中深度學習模型何時需要樹形結構?

另外近期想對這幾個商業項目進行講解,有感興趣的老鐵可以私信我。


分享到:


相關文章: