LSTM的興衰

本文最初發表於 Towards Data Science 博客,經原作者 Andre Ye 授權,InfoQ 中文站翻譯並分享。

LSTM(Long Short-Term Memory,長短期記憶網絡)作爲遞歸神經網絡(Recurrent Neural Networks,RNN)的一種更好的變體,已經成爲深度學習領域中的主力軍。隨着機器學習研究的加速,各種方法出現和消失得越來越快,似乎 LSTM 已經開始走向消亡。讓我們回過頭,去探索語言建模的演變,從它的起步階段到解決複雜問題的現代進步。

從根本上說,就像任何其他監督式機器學習的問題一樣,語言建模的目標是:在給定文檔 d 的情況下,預測一些輸出 y。文檔 d 必須以某種方式以數字形式表示,這可以通過機器學習算法進行處理。

將文檔表示爲數字的最初解決方案是詞袋(bag of words,BoW)模型。每個單詞在向量中佔據一個維度,每個值表示該單詞在文檔中出現的次數。但是,這種方法並沒有考慮到單詞的順序,這很重要(請想想“I live to work, I work to live)。

爲了解決這個問題,人們使用了 n 元語法模型(n-gram)。這些是由 n 個單詞組成的序列,其中每個元素表示一個單詞組合的存在。如果我們的數據集中有 10000 個單詞,並且我們想存儲爲二元語法,則需要 10000² 個唯一的組合。對於任何相當不錯的模型,我們很可能需要三元語法甚至四元語法,每個都會將詞彙量提高到另一個冪。

顯然,n 元語法和詞袋模型甚至並不能處理稍微複雜的語言任務。它們的解決方案包括向量化過程,但這些過程過於稀疏、龐大,並且無法捕捉到語言本身的精髓。那解決方案是什麼呢?是遞歸神經網絡。

與使用高維、稀疏的向量化解決方案(試圖一次性地將整個文檔饋送到模型中)不同,遞歸神經網絡是利用文本的序列特性。遞歸神經網絡可以表示爲遞歸函數,其中 a 是在每個時間步驟上應用的變換函數,h 是隱層狀態的集合,x 表示數據的集合。

$h_t=A(h_{t-1},x_{t-1})$

每個時間步驟都是利用前一個時間步驟的知識創建的,通過對前一個輸出應用相同的函數創建一個新的輸出。當遞歸神經網絡“展開”時,我們可以看到在不同的時間步驟的輸入是如何被饋送到模型中的,並且還知道模型之前“看到”了什麼。

“展開”遞歸神經網絡細胞。來源:《理解長短期記憶網絡》(Understanding LSTM Networks),C.Olah,2015 年。

因爲遞歸神經網絡對每個輸入都應用相同的函數,所以它還有一個額外的好處:能夠處理可變長度的輸入。使用相同函數背後的基本原理可以被認爲是將“通用語言 / 序列規則”應用於每個時間步驟。

然而,遞歸神經網絡出色的遞歸特性也導致了一些問題。將遞歸神經網絡的遞歸定義簡單地展開到第四個隱藏狀態,我們可以看到,A 函數被應用了很多次。

$h_3=(A(A(A(H_0,x_0),x_1),x_2)$

$A(x)$ 實際上只是乘以一個權重矩陣,然後加到一個偏差矩陣上。當然,在進行較大的簡化時,經過十個時間步驟之後,初始輸入 $x_0$ 基本上是乘以 $w^{10}$,其中 $w$ 是權重矩陣。因爲任何計算都會產生結果,所以將數字轉換爲冪會得到極端的結果:

  • 0.3¹⁰ = 0.000005
  • 0.5¹⁰ = 0.0009
  • 1.5¹⁰ = 57.7
  • 1.7¹⁰ = 201.6

這就引起了很多問題。權重矩陣將導致值要麼向零(遞減),要麼向無窮大或負無窮大(爆炸)。因此,遞歸神經網絡受到梯度遞減和梯度爆炸問題的困擾。當權重更新時,這不僅會導致計算問題,還意味着它們“患有癡呆症”:它們忘記了任何超過幾個時間步驟的東西,因爲通過遞歸乘法,它們已經被模糊或放大到無法理解的程度。

因此,當使用遞歸神經網絡生成文本時,你可能會看到無限循環:

I walked on the street and walked on the street and walked on the street and walked on the street and walked on the street and…

當網絡生成第二輪“walked on”時,它已經忘記了上次說過的內容。它認爲,通過它天真的機制,有了前一次的輸入“the street and…”,下一次的輸出應該是“walked on”。這種循環會持續下去,是因爲注意力框架太小。

解決方法:LSTM 網絡,於 1997 年首次提出,但基本上不被重視,直到最近,計算資源使這一發現變得更加實用。

它仍然是一個遞歸網絡,但是對輸入進行了複雜的轉換。每個細胞的輸入通過複雜的操作進行處理,產生兩個輸出,可以認爲是“長期記憶”(貫穿細胞的頂線)和“短期記憶”(底部輸出)。

通過長期記憶通道的向量可以在沒有任何干擾的情況下通過整個鏈。只有門(粉紅點)可以阻止或添加信息,所以如果網絡選擇這樣做,它可以保留它從任意數量的細胞之前發現有用的數據。

這種長期信息流的加入極大地擴大了網絡的注意力規模。它可以訪問之前的細胞狀態,但也可以訪問不久前的學習中獲得有用的信息,使得它能夠參考上下文——這是更多人類交流的關鍵屬性。

LSTM 運作良好——有一段時間。它可以在較短的文本長度上進行相當好的字符生成,並且沒有被許多早期自然語言處理髮展的問題所困擾,特別是更全面的深度和對單個單詞以及它們的集體含義的理解。

然而,LSTM 網絡也有它的缺點。它仍然是一個遞歸網絡,因此如果輸入序列有 1000 個字符,LSTM 細胞被調用 1000 次,這是一個很長的梯度路徑。雖然增加一個長期記憶通道有所幫助,但它可以容納的容量畢竟是有限的。

另外,由於 LSTM 本質上是遞歸的(要查找當前狀態,你需要找到以前的狀態),因此並不能並行地對它們進行訓練。

也許更爲緊迫的是,遷移學習在 LSTM(或遞歸神經網絡)上並不是十分有效。深度卷積神經網絡之所以能夠得到普及,部分原因是像 Inception 這樣的預訓練模型可以簡單地下載和微調。從一個已經知道任務的普遍規則的模型開始訓練的寶貴能力使其更易於獲得和可行。

有時候,經過預訓練的 LSTM 可以成功遷移,但並不是常見的做法是有原因的。這是有道理的——每篇文字都有自己獨特的風格。與圖像不同的是,圖像幾乎總是遵循某種某種帶有陰影和邊緣的嚴格的通用規則,而文本的結構則沒那麼明顯,更爲流暢。

是的,有一些基本的語法規則來支撐文本的框架,但它遠沒有圖像那麼嚴格。除此之外,還有不同的語法規則——不同的詩歌形式、不同的方言(如莎士比亞和古英語)、不同的用法(Twitter 上的推文語言、即興演講的書面版本)。比方說,從維基百科(Wikipedia)上預訓練的 LSTM 開始,可能比從頭開始學習數據集要容易得多。

除了經過預訓練的嵌入之外,當遇到更高要求的現代問題時,如跨多種語言的機器翻譯或與人工書寫的文本完全無法區分的文本生成,而 LSTM 是有限的。越來越多的新架構被用來處理更具挑戰性的任務:Transformer。

Transformer 最初是在論文《注意力就是你所需要的一切》(Attention Is All You Need)提出的,以解決語言翻譯問題,它的架構非常複雜。不過,最重要的部分是注意力的概念。

在本文的前面,我們討論了注意力跨度,即遞歸神經網絡過去有多少隱藏狀態可以回顧。Transformer 擁有無限的注意力大小,這是它們相對於 LSTM 優勢的核心。做到這一點的關鍵是什麼?

Transformer 不使用遞歸。

Transformer 通過全比較來實現無限的注意力大小。它不是按順序處理每個單詞,而是一次性處理整個序列,建立一個“注意力矩陣”,其中每個輸出是輸入的加權和。因此,例如,我們可以將發育單詞“accord”表達爲 ‘The’(0)+‘agreement’(1)+…。網絡會學習注意力矩陣的權重。

來源:《通過神經機器聯合學習進行對其和翻譯》(NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE.)

紅色邊框內的區域很有趣:儘管“European Economic Area”被翻譯成“européenne économique zone”,但在法語中,其詞序實際上是“zone économique européenne”。注意力矩陣能夠直接捕捉到這些關係。

注意力允許輸出值之間的直接訪問,LSTM 必須通過記憶通道間接和順序訪問這些信息。

Transformer 的計算成本很高——構建矩陣的 O(n²) 運行時間是無法避免的。然而,由於各種原因,它並不像一些人想象的那樣言中。首先,由於 Transformer 的非遞歸性質,可以使用並行性來訓練模型,而這正是 LSTM 或遞歸神經網絡無法做到的。

此外,GPU 和其他硬件已經發展到這樣的程度:它們的擴展能力令人難以置信的強大——10 × 10 矩陣的速度基本上與 1000 × 1000 矩陣的速度一樣快。

現代 Transformer 的計算時間很長,很大程度上並不是因爲注意力機制。相反,在注意力機制的幫助下,遞歸語言建模的問題得到了解決。

Transformer 模型在使用遷移學習時也顯示出了很好的效果,這對它們的普及起到了巨大的作用。

那麼,LSTM 的未來是什麼?

在它真正“消亡”之前,還有很長的路要走,但它肯定是在走下坡路。首先,LSTM 的變體在序列建模方面已顯示出成功,例如在生成音樂或預測股票價格,在這種情況下,考慮到額外的計算負擔,回溯和保持無限長注意力持續時間的能力並不那麼重要。

摘要

  • 通過將前一個輸出傳遞到下一個輸入,創建了一個更加有序的建模方法,從而創建了遞歸神經網絡,已解決傳統的 n 元模型和詞袋模型方法的稀疏性、低效性和信息缺乏性的問題。

  • LSTM 是通過引入由門控制的長短期記憶通道來解決遞歸神經網絡忘記輸入超過幾個時間步驟的問題。

  • LSTM 的一些缺點包括對遷移學習不友好、不能用於並行計算,以及注意力跨度有限,即使在擴展後也是如此。

  • Transformer 拋棄了遞歸建模。相反,通過注意力矩陣,Transformer 可以直接訪問輸出的其他元素,這使得它們具有無限的注意力大小。此外,它們還可以在並行計算上運行。

  • LSTM 在序列建模方面仍有應用,例如,音樂生成或股票預測。然而,隨着 Transformer 變得更易於獲取、更強大、更實用,與語言建模的 LSTM 相關的大部分炒作預計將煙消雲散。

作者介紹:

Andre Ye,Critiq 聯合創始人。機器學習、計算機科學與數學愛好者。

原文鏈接:

https://towardsdatascience.com/long-short-term-memory-networks-are-dying-whats-replacing-it-5ff3a99399fe

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