lstm原始论文_有序的神经元——ON-LSTM模型浅析
盡管最近出現的Transformer系列的模型在nlp領域內很流行,但RNN仍然有著重要的地位。本文介紹的模型來自于ICLR 2019的最佳論文之一,它針對自然語言具有語法分層的特點,對原有的LSTM模型的結構做出了改進,使得新模型不僅具有更好的性能,還能夠無監督地從語料文本中學習到句子的語法結構。
LSTM與ON-LSTM
先介紹一下該模型的出發點,自然語言雖然從表面來看呈現出來的是序列形式,但其實句子的結構并不是連續的序列,而是樹狀結構,如下圖所示。因此如果我們能夠設計一種可以考慮到句子的語法結構的模型,那么就有可能在nlp任務中表現的更好。
先來看原始的LSTM模型,如下所示,其中
分別是遺忘門和輸入門,可以看出它們通過對于 的更新來實現對于歷史信息 和當前輸入信息 的記憶與忘記。LSTM流程圖(來自參考資料[2])在原始LSTM中,更新的方式是通過遺忘門和輸入門來完成的,即
。而ON-LSTM做出改進的地方就在這里,它通過語法層次來控制哪些信息需要記憶或忘記,對于語法層次較高的內容(語法樹中更靠近根節點的內容),它們影響的范圍更大,對于這些信息,模型應該保留較長的時間;而對于層次較低的,它們對之后內容影響較小,模型應該盡快忘記它們,以免這些信息干擾后面的過程。有序的神經元
為了達到這樣的目的,首先我們就需要對信息進行語法分層,對神經元按照語法層次進行排序,語法層次較高的信息儲存在上面的神經元中,較低的則儲存在下面的神經元,然后根據層次的不同,采用不同的更新方式。如下圖所示,對于句子中較高層次的信息S,則位于cell states的上面的維度,這類信息的更新頻率不應該很快;而對于底層信息如N和V,它們位于cell states的下部,這些信息應該較快地進行更新。這樣,我們就能通過cell stats的維度的高低來將信息中不同語法層次的內容分開,從而實現了有序的神經元。
完成了對cell states的排序之后,我們接下來就是劃分區間,以便模型按照區間的不同實現不同的更新方式。為了實現區間的劃分,模型用到了兩個整數
,它們分別用來表示歷史信息的最低層次和當前信息的最高層次,如下圖所示。區間劃分(來自參考資料[3])對于上面的區間,有如下的更新規則:
- 當 時,兩區間有交疊。對于交疊的部分,采用原始LSTM的方式進行更新;對于高于 的部分, 只保留原來的歷史信息;對于低于 的部分, 只保留當前輸入的信息。
- 當 時,兩區間沒有交疊。對于沒有交疊的部分,直接設其為0;而對于大于 和小于 的部分,分別只保留歷史信息和當前輸入信息。
可以看出,其實模型在這里認為高層次的語法信息主要是來自于歷史信息,而低層次的主要來自當前輸入信息,而這也比較符合人們的直觀印象,對于一個新的輸入,它對于語法信息的影響往往局限于一個較低的層次,高層次的信息(如句子或者短語信息)仍然來自于歷史信息,只有當一個句子或者短語完結的時候,歷史信息的影響變小,這時新的輸入才有可能影響較高語法層次的信息。而這樣也就使得高語法層次的信息的更新頻率較低,大多時候是保持不變,而低語法層次的信息則隨著當前的輸入在一直變化。
上面是區間劃分的思想,而具體的實現過程如下:
定義向量
定義函數
可以得到
它們表示了歷史信息和當前信息的影響范圍,可以看作窗口函數,也就起到了區間劃分的作用。這兩個向量需要通過模型學習得到,但是如果直接去學習
這樣的one hot向量,會導致更新過程不可導,這就會比較麻煩,因此我們對它做一些“軟化”,用 函數來表示one hot向量,輸入歷史信息 和當前輸入信息 ,通過神經網絡來對 進行預測,則有得到
之后,就可以按照上面的思想進行區間劃分,具體形式如下:其中
對上式簡單分析一下,
主要由三個區間組成,如下圖所示:區間分布 與此類似,這樣我們就實現了對于 的更新,把公式放到一起,則整個ON-LSTM的更新公式為:其流程圖如下:
ON-LSTM流程圖,來自參考資料[2]最后補充一下,通常隱層神經元的數目都比較大,而實際中語法的層數遠遠達不到這個數字,因此對于
而言,其實不需要那么多的維數,這樣會導致需要學習的參數量過多,但是 要求它們的維數必須這么大,因此我們可以構造一個維數為 的向量,其中D為隱層神經元的維數,然后在將其擴充為D維向量,例如D=6,c=3,先構造一個向量 ,然后將其擴充為 。無監督提取語法結構
上面就是ON-LSTM模型的全部內容,不過該模型除了在性能表現上更優以外,還有一個很有意思的特性,那就是能夠無監督地提取出句子的語法結構,其基本思想如下:
在時間步t,可以得到歷史信息的語法層次
,我們可以認為這個數字的大小代表了歷史信息對當前輸入影響的大小,如果較小,則時間步t之前的歷史信息對當前影響較小,可以認為出現了一個新的語法結構。對于所有的時間步,則可以得到一個序列 ,然后采用下面的貪心算法來提取出語法結構:對于然后找出層級序列中最大值所在的下標,比如k,那么就將輸入序列分區為 。然后對子序列 和 重復上述步驟,直到每個子序列長度為1。其中
的計算方式如下:下圖是一些語法結構提取的實驗結果對比,其中左側是模型結果,右側是人類專家的結果
總結
該ON-LSTM模型從語法結構的角度出發,根據語法層次對cell states進行有序排列,再按照語法層次的不同實行不同的更新規則,從而實現對于較高語法層次信息的保留,這樣對于語言模型等任務無疑是很有利的。另外,利用該模型還能夠較好地從句子中無監督地提取出語法結構,而這也是該模型的一大亮點。
參考資料
[1] ORDERED NEURONS: INTEGRATING TREE STRUCTURES INTO RECURRENT NEURAL NETWORKS
[2] 蘇劍林. (2019, May 28). 《ON-LSTM:用有序神經元表達層次結構 》[Blog post]. Retrieved from https://kexue.fm/archives/6621
[3] ON-LSTM:能表示語言層次的LSTM
總結
以上是生活随笔為你收集整理的lstm原始论文_有序的神经元——ON-LSTM模型浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冒泡排序和选择排序区别_你以为只是简单的
- 下一篇: iphone个系列尺寸_最值得入手的4款