LSTM要過氣了,用什麼來取代? - 知乎

大數據文摘出品算法

來源:medium網絡

編譯:Hippo、coolboy框架


LSTM(The Long Short-Term Memory,長短時間記憶網絡)已成爲深度學習的主流之一,並做爲循環神經網絡(RNN,recurrent neural networks)的一種更好的變體而被普遍應用。可是隨着機器學習研究的加速,各類方法的更迭愈來愈快,LSTM彷佛已經開始變得落伍。機器學習


讓咱們退後幾步,從0到1來探索語言建模的發展歷程。函數


從根本上講,像其餘任何監督機器學習問題同樣,語言建模的目標是預測給定文檔d的輸出結果y。該文檔d必須以數字形式表示,使其能夠經過機器學習算法進行處理。學習


將文檔表示爲數字的最初解決方案是單詞袋(BoW)。每一個單詞在向量中佔一個維度,每一個值表明單詞在文檔中出現的次數。大數據


可是,這種方法沒有考慮單詞的排序,而這很重要(好比:「我爲工做而生」,「我爲生活而工做」)。google


爲了解決這個問題,人們引入了n-grams概念,即n個單詞的序列,其中每一個元素表示某個單詞組合。若是咱們的數據集中有10,000個單詞,而且咱們要存儲二元組,則須要存儲10,000²個惟一組合。對於任何足夠完善的建模,咱們可能都須要三元組甚至四元組,而它們分別將詞彙量提升了一個冪次。spa


顯然,這個解決方案所涉及的矢量過程過於稀疏和龐大,沒法捕捉語言本質,稍微複雜的語言任務都沒法用n-grams和BoW來處理。那麼如何解決呢?這裏就要用到循環神經網絡(RNN)了。翻譯


高維、稀疏矢量化解決方案嘗試將整個文檔一次性輸入模型當中。與此不一樣,循環神經網絡的運做機制更加靠近文檔的序列特徵。RNN能夠表示爲遞歸函數,其中A表示對應每一個時間點的轉換函數,h表示隱藏層狀態的集合,x表示數據集合。


每一個時間點都是在前一個時間點的知識的基礎上,經過對前一個輸出引用相同的函數來建立的。當RNN處於「展開狀態」時,咱們能夠了解到各個時間的輸入如何利用以前積累的知識反饋到模型中。




「展開」 的RNN單元,摘自C.Olah(2015)的「瞭解LSTM網絡」


因爲RNN對每一個輸入都引用相同的函數,所以它的另外一個優點是可以處理可變長度的輸入。對每一個時間點使用相同函數的原理,能夠視爲對每一個時間點應用通用語言(或通用時序)的規則。


RNN的遞歸思路有很大的優點,但同時也產生了一些問題。將咱們對RNN的遞歸定義簡單地擴展到第四個隱藏狀態,咱們看到A函數被屢次引用。


A(x)實際上只是乘以權重矩陣並加到誤差矩陣上。固然,要進行很大的簡化,在10個時間點以後,初始輸入x₀實際上要乘以w¹⁰,其中w是權重矩陣。正如任何計算所得出的那樣,將數字取冪會返回極端結果:


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


這引發不少問題。權重矩陣將致使值趨向於零(遞減)、無窮大或負無窮大(激增)。所以,RNN受梯度遞減(或激增)問題的困擾。權重更新時,這不只會致使計算問題,還意味着知識的「遺忘」:模型會「遺忘」僅僅幾步以前的輸入,由於這些輸入已經被遞歸乘法所掩蓋或放大而致使沒法理解。


所以,當使用RNN生成文本時,您可能會看到無限循環:


我走在大街上,走在大街上,走在大街上,走在大街上,走在大街上,…


當神經網絡生成第二輪「走」時,模型已經忘記了上一次曾經說過。經過它的簡單機制,它認爲在先前的輸入爲「 在大街上…」的狀況下,下一個輸出應爲「 走」。由於關注範圍過小,因此循環不斷持續。


解決方法:LSTM網絡於1997年首次推出(哇!20多年前),但直到最近才收到普遍青睞,當今快速發展的計算資源使這項發現變得更加實用。


它仍然是一個循環網絡,可是對輸入進行了更加精確的轉換。每一個單元的輸入都經過複雜的操做進行管理,產生兩個輸出,能夠將其視爲「長期記憶」(下圖中貫穿整個單元的頂行)和「短時間記憶」(下圖中底部輸出)。




資料來源:Chris Olah


經過長期記憶通道的向量能夠經過整個鏈路而不會受到任何干擾。只有門(粉紅色圓點)能夠阻止或添加信息。所以,只要神經網絡作出選擇,它能夠保留從任意數量的單元中發現有用的數據。


長期信息流的添加極大地擴展了神經網絡的關注範圍。它能夠訪問很早之前的單元狀態,同時也能夠學習不久前的有用信息,從而使其可以聯繫上下文語境(多數人際交流的關鍵屬性)。


很長一段時間LSTM都運做良好。它能夠在較短的文本長度上很好地實現文字生成,而且克服了不少早期天然語言處理髮展過程當中遇到的問題,不侷限於對單一單詞的理解,而是對文檔進行更全面的深度理解。


可是,LSTM網絡也有缺點。它仍然是一個循環網絡,所以,若是輸入序列具備1000個字符,則LSTM單元被調用1000次,即長梯度路徑。雖然增長一個長期記憶通道會有所幫助,可是它能夠容納的存儲空間是有限的。


另外,因爲LSTM本質上是遞歸的(要找到當前狀態,您須要找到先前的狀態),所以不能進行並行訓練。


也許更緊迫的是,遷移學習(transfer learning)在LSTM(或RNN)上不能很好地運做。深度卷積神經網絡之因此獲得普及,部分緣由是像Inception之類的預訓練模型能夠輕鬆下載和微調。在已知任務通用規則的前提下開始訓練,任務能夠變得更加容易和可行。


有時,通過預訓練的LSTM能夠成功遷移,但這沒有成爲廣泛作法是有緣由的。由於每段文字都有本身獨特的風格。這與圖像不一樣,圖像幾乎老是遵循某種嚴格的通用規則(帶有陰影和邊緣),而文本的結構並不那麼顯而易見,並且更加多變。


是的,有一些基本的語法規則能夠支持文本框架,可是它不如圖像嚴格。最重要的是,不一樣的語言表達形式有不一樣的語法規則集,好比不一樣的詩歌形式、不一樣的方言(莎士比亞和古英語)、不一樣的用例(Twitter上的文字語言,即興演講的書面版本)。所以,從Wikipedia上通過預訓練的LSTM開始,彷佛並不比從頭學習數據集要容易不少。


除了預訓練的嵌入以外,LSTM在遇到更苛刻的現代問題時也受到限制,例如跨多種語言的機器翻譯、與人工文本沒法區分的機器文本。爲此,一個新的框架被愈來愈多的用在這些更具挑戰的課題上:transformer(出自google,被普遍應用於NLP的各項任務中)。


該框架最初在論文《Attention is All You Need》中發佈以解決機器翻譯問題,框架的體系結構很是複雜。可是,它最核心的概念是所謂的「注意力(attention)」。





資料來源:Hong Jing


本文的前面咱們討論了注意力跨度,即遞歸神經網絡能夠回顧多少以前的隱藏狀態。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²)時間複雜度是不可避免的(O(n²)簡單的說是指當n足夠大的時候,複雜度將按平方增加)。但因爲各類緣由,它並不像某些人想象的那麼嚴重。其中很關鍵的一點在於因爲Transformer的非遞歸性質,可使用並行計算來訓練模型,這在應用LSTM或RNN時是不可能實現的。


此外,GPU和其餘硬件的規模已經發展到能夠使人難以置信的程度,1000乘以1000矩陣基本上能夠與10乘以10矩陣相提並論。


現代transformer的長時間計算大部分都與注意力機制無關。相反,在其幫助下,遞歸語言模型的問題得以解決。


Transformer模型在遷移學習應用時也顯示出了出色的結果,這對它的普及發揮了很大的做用。


那麼LSTM還有將來嗎?


要真正實現「退役」,還有很長的路要走,可是它的應用確定處於降低狀態。首先,LSTM的變體一般在序列建模方面顯示出成功的應用,例如在音樂創做或預測股票價格方面,對這些應用來講引用和保留無限長的關注範圍的能力並不那麼重要,即便考慮到額外的計算負擔。


小結


循環神經網絡(RNN)經過將先前的輸出傳遞給下一個輸入來解決傳統n-gram和BoW方法的稀疏性、效率低下和信息匱乏的問題,是一種更加序列化的建模方法。


LSTM的創建經過引入由門控制的長期和短時間記憶通道,解決RNN會「遺忘」幾個時間點以前的輸入的問題。


LSTM的缺點包括:對遷移學習不友好、沒法用於並行計算、以及即便擴展後的關注範圍也有限。


Transformer模型直接丟掉了遞歸建模。與之不一樣的是,藉助注意力矩陣,Transformer能夠直接訪問輸出的其餘元素,從而使它們具備無限的注意力區間。此外,它還能夠進行並行計算。


LSTM在音樂創做或股票預測之類的順序建模中仍然具備應用前景。可是,隨着Transformer變得更加易於訪問、功能強大和實用,與LSTM有關的語言建模可能逐漸銷聲匿跡。


相關報道:

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

相關文章
相關標籤/搜索