2018-07-28-論文閱讀(1)-Learning Ensembled for Structured Prediction Rules

weixin_33850890發表於2018-07-28

在高人的指點之下準備開始海量讀論文,計劃本系列完成ACL,EMNLP,NAACL最近五年來的全部論文。希望有所收穫,啦啦啦!

1. Learning Ensembled for Structured Prediction Rules

1.1 -1st PASS

①論文型別

  嘖嘖,第一篇論文就不是熟悉的領域。這篇論文提出了新的演算法,並且對老演算法進行了調研和比較。

②問題領域

  這篇論文是針對整合學習提出的新演算法。試圖通過新的演算法,將整合學習能夠應用到新的研究潮流中。

③假設正確性討論

  該論文最重要的假設就是將一類任務統一看做是結構化輸出的任務,整合學習僅僅針對這個結構化的輸出結果,而和前面的模型訓練過程無關。這個假設大大的簡化了整合學習的難度。有了這個前提,統一的整合學習的框架將會成為可能。其實這個假設可以進行一下擴充套件,我們知道啊,在現在的問題中,比如序列標註,我們高大上的訓練模型不僅僅可以給出標註的結果,甚至是可以給出標註的概率的。那麼我們如果採用論文中的假設的話,就沒有辦法充分利用這一部分資訊咯。

  另外一個假設是輸出的整體損失是子結構的損失之和。這個假設在大多數結構化輸出的任務中都是成立的。

  還有一個隱藏的假設,就是我們用於整合學習的模型(專家)是各有所長的。每個人對於某一個子結構的預測能力是不一樣的。這個假設就要求我們在構造這些專家的時候儘量採用不同的模型,模型的差距越大越好。

  還有一個小假設吧,就是每個輸出的子結構的個數都是一樣的。這個呢是為了方便說明問題才做這樣的假設的,完全可以採用不等長的子結構。演算法的過程是完全一樣的。

④主要貢獻

  本文的基本思想是:在當今的研究潮流中,預測問題的結果已經不再是原本的分類或者回歸問題了。而是更多的涉及到結構化的結果,比如語音識別和序列標註等等。以序列標註為例,我們如今面臨的任務是給整個序列每個基本單元都貼上標籤。

  想象一下,如果我們採用原本的整合學習的方法,把這個問題當做分類問題,那麼預測空間將會非常龐大。整合策略如果採用傳統的“投票”的方式的話,訓練5個模型,每個模型對這個序列進行一下標註,然後把標註的結果進行投票。這是沒有意義的,因為從結果來說,很有可能最終每個模型都給出了不同的標註方案,一人一票,沒有意義。但是,同時我們注意到,每個模型雖然標註的結果都不一樣,但是每個模型的標註都是有意義的,就像5個專家,說的雖然不一定一致吧,但是各有各的道理,所以急需一種新的演算法能夠將整合學習應用到這類新問題上來,將每個“專家”的意見取其精華去其糟粕。

  在這樣的背景下,這篇論文提出了新的演算法,主要具有以下幾個貢獻:

    1.歸一處理。將不同的任務泛化成同樣的抽象任務,該論文在不瞭解任何任務背景的情況下建立起一套統一的整合學習框架,因此可以說是徹底的任務無關的。以前的隨機森林等方法,都是隻能針對特定的任務,或者說是特定的學習模型,在該論文提出的方法中將不存在這種限制。

    2.充分利用子結構資訊的整合。正如前面提到的,這篇論文充分利用了結構化的輸出中的子結構的資訊,即從各個專家的話中獲取有用的資訊進行整合,而不是像傳統的方法一樣進行粗粒度的簡單整合。同時,區別貪心演算法,貪心演算法並沒有辦法保證整個序列的最優性。

    3.非基於概率的。傳統的整合學習大多是基於概率的模型,而一旦基於概率,該模型將會變得非常複雜。在該論文中並沒有任何和概率相關的內容。

1.2 -2nd PASS

  啊哈哈哈。。。這個圖叫“線上學習”(on-line)哎。。差點被忽悠了!這個模型的大概意思呢是很簡單的。我們認為呀,每個專家對不同的子結構的預測能力是不一樣的,那麼就各司其職唄。我們從這些專家的話中綜合出來一個path_expert.舉例來說,有五個專家,有六個子結構,每個專家都對序列做了標註,那麼就會最多可以出現6的5次方種不同的標註方法(說是最多因為可能存在意見相同的時候),然後根據損失函式進行選擇一個就好啦。文章中還提到啦,這樣的模型能夠做到綜合各個專家的意見,而不是最後就是選了某一個人的意見作為判別啦。

12011882-dc3bed1ace3e5e08.png
image.png

  這個方法簡單吧。但是效率低哇!怎麼辦??論文提出了batch方法,包括基於WMWP和基於FPL方法的兩種方案。其中前者是該論文的研究重點。

  基於WMWP的方法呢也很簡單。既然不能遍歷的話就引入概率唄。這就簡單啦。按照指定的概率選擇path_expert作為最終的標註序列。可以看出來啦,這裡最關鍵的就是這個概率啦。不說也知道,這個概率一定和預測的好壞程度成正比 咯。猜的越好我們就優先按這個來,損失越小就是猜的越好。但是這樣的話效率沒有提高,這時使用了關鍵的轉換,序列的損失是單個子結構損失之和。所以我們只需要計算有限數量的單個損失,然後把每個序列的損失加出來就行了。這樣就從指數複雜度O(n2)變成了線性複雜度O(n)

1.3 -3rd PASS

  這個演算法可以說是很簡單啦,具體的思維重現結果如下。需要注意,演算法輸入是黑箱訓練模型提供的標註,輸出是整合之後的序列標註。

12011882-d17a59ecd2af6f9a.png
image.png

12011882-dd111ec2dff22337.png
image.png

相關文章