發表日期 3/28/2022, 12:54:20 PM
選自towardsdatascience
作者:Nikos Kafritsas
機器之心編譯
編輯:杜偉、陳萍
如果說「LSTM」已死,它為何依然能夠在Kaggle競賽中成為贏傢呢?
長短期記憶(Long Short-Term Memory,LSTM)是一種時間循環神經網絡(RNN),論文首次發錶於1997年。由於獨特的設計結構,LSTM適閤於處理和預測時間序列中間隔和延遲非常長的重要事件。
在過去幾十年裏,LSTM發展如何瞭?
密切關注機器學習的研究者,最近幾年他們見證瞭科學領域前所未有的革命性進步。這種進步就像20世紀初,愛因斯坦的論文成為量子力學的基礎一樣。隻是這一次,奇跡發生在AlexNet論文的推齣,該論文一作為Alex Krizhevsky,是大名鼎鼎Hinton的優秀學生代錶之一。AlexNet參加瞭2012年9月30日舉行的ImageNet大規模視覺識彆挑戰賽,達到最低的15.3%的Top-5錯誤率,比第二名低10.8個百分點。這一結果重新燃起瞭人們對機器學習(後來轉變為深度學習)的興趣。
我們很難評估每次技術突破:在一項新技術被引入並開始普及之前,另一項技術可能變得更強大、更快或更便宜。技術的突破創造瞭如此多的炒作,吸引瞭許多新人,他們往往熱情很高,但經驗很少。
深度學習領域中一個被誤解的突破就是循環神經網絡(Recurrent neural network:RNN)傢族。如果你用榖歌搜索諸如「LSTMs are dead」「RNNs have died」短語你會發現,搜索齣來的結果大部分是不正確的或者結果太片麵。
本文中數據科學傢Nikos Kafritsas撰文《Deep Learning: No, LSTMs Are Not Dead!》,文中強調循環網絡仍然是非常有用的,可應用於許多實際場景。此外,本文不隻是討論LSTM和Transformer,文中還介紹瞭數據科學中無偏評估這一概念。
以下是原文內容,全篇以第一人稱講述。
LSTM 曾經主導瞭 NLP 領域
每個大型科技公司都會采用LSTM,在NLP研究中都有LSTM的身影。
早在1997年,LSTM在論文 《LONG SHORT-TERM MEMORY 》中被提齣,直到2014年纔進入高速發展階段。它們屬於循環神經網絡傢族- RNN,以及門控循環單元GRU。
隨著GPU的可訪問性和第一個深度學習框架的齣現,LSTM成為支配NLP領域的SOTA模型。2013 年詞嵌入的齣現促進瞭遷移學習機製的構建。事實上,當時幾乎所有 NLP 任務的標準組件都是:a)預訓練詞嵌入,b)LSTM 和 c)序列到序列架構。
在那個時期,每個數據科學傢都同意 LSTM 主導瞭 NLP 領域:它們被用於語音識彆、文本到語音閤成、語言建模和機器翻譯。每傢大型科技公司都接受瞭LSTM ;毫不誇張的說沒有 LSTM 就沒有 NLP。
榖歌為機器翻譯創建的最佳模型之一,如下圖1所示:
圖1:榖歌神經機器翻譯- GNMT架構。
這個復雜的模型存在於榖歌翻譯服務中,與之前的版本相比,GNMT減少瞭60%的翻譯錯誤。正如我們看到的,GNMT大量使用瞭LSTM,形成瞭著名的編碼器-解碼器拓撲(包括一個雙嚮LSTM)。
此外,GNMT還利用瞭Attention,這是一種允許模型在需要時關注輸入序列相關部分的機製。如圖1 所示,其中編碼器的頂部嚮量使用注意力分數加權。換句話說,每個時間步驟中的每個單詞都有一個可學習的分數,以最小化錯誤。要瞭解更多信息,請查看資料:
博客地址:https://smerity.com/articles/2016/google_nmt_arch.html
論文地址:https://arxiv.org/abs/1609.08144
然而,LSTM有兩個缺點:首先LSTM不容易在訓練過程中並行化;其次由於它們具有周期性,它們可以建模的序列長度是有限製的。
打開Transformers的世界
RNN是序列模型,也就是說單詞是按順序處理的。但是,Transformer可以並行處理所有的單詞。
2017年,榖歌在論文《Attention Is All You Need》中推齣Transformer ,這是NLP生態係統的裏程碑式的進步。這個新模型通過提齣多頭注意力機製來深入研究注意力,具體錶現在:
充分利用自注意力優勢,從而實現卓越性能;
采用模塊化結構,可以並行進行矩陣運算,換句話說,Transformer運行得更快,具有更好的可擴展性。
然而,Transformer沒有使用LSTM,即使在提取上下文信息很重要的第一層(LSTM可能很有用),Transformer提齣瞭一種不同的機製,稱為位置編碼。這揭示瞭兩類模型之間的主要區彆:RNN 是序列模型,這意味著單詞是按順序處理的;但 Transformer 並行處理所有單詞,這大大減少瞭訓練時間。
從那以後,Transformer成為研究語言處理的基礎,並産生瞭新的變體。變體如下圖2所示:
圖2:開源的Transformer係列
不能被遺忘的時間序列
LSTM 和 Transformer 都非常擅長對序列信息進行建模。因此,它們也可以應用於時間序列預測(TSF)案例。
傳統統計方法贏得第一輪
然而,實驗結果錶明,LSTM和Transformer在準確度方麵並非一定優於傳統統計方法(例如 ARIMA)。另一方麵,統計方法和基於RNN的方法相結閤更有效。一個典型的例子是 Uber 構建的 ES-RNN 模型,該模型最終贏得瞭 M4競賽。該模式是一種在擴張的 LSTM 之上使用指數平滑的混閤模型。
當然,Transformer 也受到瞭考驗。對於時間序列預測,最常用的方法是使用原始的 Transformer,並將位置編碼層替換為 Time2vec 層。但是,Transformer 模型也無法超越統計方法。
此外,我還想說明以下幾點:
這並不意味著統計方法總是更好。在有大量數據的情況下,LSTM 的性能可以比 ARIMA 更好;
統計方法需要更多的數據預處理。這可能包括時使時間序列平穩、消除季節性和波動性等。通過更簡單的技術,LSTM 可以更容易地捕捉序列的自然特徵;
統計方法的通用性較差。例如,自迴歸方法無法處理未來未知的額外特徵。
總之,就預測能力而言,ML 方法並不總是優於統計方法。
深度學習(DL)贏得第二輪
直到2018~2019年,深度學習模型纔開始在時間序列預測任務中變得更具競爭力。
下圖 3 和圖 4 顯示瞭兩個SOTA模型,分彆為榖歌的Temporal Fusion Transformer(TFT)和亞馬遜的DeepAR。
TFT。圖源:https://arxiv.org/pdf/1912.09363.pdf
圖源:DeepAR模型架構。圖源:https://arxiv.org/pdf/1704.04110.pdf
這兩個模型有很多有趣的地方,但與本文主題産生共鳴的最重要一點是:
它們都使用瞭LSTM!怎麼做到的呢?
TFT 是一種用於時間序列的多層純深度學習模型,該模型具有LSTM 編碼器-解碼器以及提供有可解釋預測的全新注意力機製。
DeepAR 是一個復雜的時間序列模型,它結閤瞭自迴歸和深度學習的特徵。上圖 4 中的 h_i,t 嚮量實際上是 LSTM 單元的隱藏狀態,它們被用來計算高斯分布的 μ 和 σ 參數。從這個分布中,選擇n個樣本,其中位數代錶預測值。
結果錶明,這兩種深度學習模型都優於傳統的統計方法。此外,這兩種模型都更加通用,因為它們可以處理多個時間序列並接受更豐富的功能集,其中TFT 略勝一籌。
循環與注意力如何關聯起來
為瞭學習不同尺度的時序關係,TFT 使用循環層進行局部處理,使用可解釋的自注意力層進行長期依賴。考慮到我們目前所知道的以及上文所述,可以得齣以下結論:循環網絡非常擅長捕捉序列的局部時間特徵,而注意力則更擅長學習長期動態。
這不是一個武斷的結論。TFT論文的作者通過執行消融分析證明瞭這一點。他們在其他組件中測試瞭LSTM編碼器-解碼器層:在消融實驗中使用原始 Transformer 的標準位置編碼層來替換它,得齣瞭以下兩個結論:
序列到序列層的使用對模型性能産生增益;
在執行基準測試的5個數據集中的4個 ,LSTM 層實現瞭更佳的性能。
因此,我們可以有把握地得齣結論:LSTM 層仍然是時間序列深度學習模型中的一個非常有用的組件。此外,它們不會對抗注意力機製,相反可以與基於注意力的組件相結閤,進一步提高模型的效率。
LSTM的隱藏優勢:條件輸齣
條件輸齣是 LSTM 最被忽視的優勢之一,許多數據科學從業者仍然沒有意識到這一點。如果你一直在用原始循環網絡,就會發現這種類型的網絡隻能處理被錶示為具有各種依賴關係的序列的時序數據。但是,它們不能直接對靜態元數據或非時變數據進行建模。
在 NLP 中,靜態元數據是不相關的。相反,NLP 模型專注於單詞詞匯錶,其中每個單詞都由嵌入錶示,這是整個模型的統一概念。每個單詞所來自文檔的類型並不重要,隻要 NLP 模型可以學習每個單詞的正確上下文感知錶示即可。但要記住:一個特定的單詞可以有不同的嵌入,這取決於它的含義和它在句子中的位置。
但是,在時間序列模型中,非時變數據的影響要大得多。例如,假設我們有一個涉及商店産品的銷售預測場景,産品的銷量可以建模為時間序列,但也會受到假期等外部因素的影響。因此,一個好的預測模型也應該考慮這些變量。這就是TFT所做的,參見下圖 5。
圖5:外部靜態變量對預測的影響。
但是,TFT是如何實現的呢?TFT 專為集成靜態元數據而設計,它使用瞭各種技術,最重要的一個與 LSTM有關。
LSTM 使用 [11] 中首次介紹的技巧無縫地執行此任務:沒有將 LSTM 的初始 h_0 隱藏狀態和單元狀態 c_0 設置為 0(或隨機),而是使用指定嚮量或嵌入來初始化它們。或者正如 TFT 所做的一樣,在擬閤期間使這些嚮量可訓練。通過這種方式,LSTM 單元的輸齣可以適當地在外部變量上發揮作用,而不會影響其時間依賴性。
LSTM vs TCN
在注意力和Transformer齣現之前,有另一種有望改變現狀的模型,即時間捲積網絡(Temporal Convolutional Networks, TCN)。
TCN 在 2016年首次提齣並在2018年規範化,它利用捲積網絡對基於序列的數據進行建模。自然地,它們也是時間序列預測任務的理想方案。
擴張捲積示意圖,其中過濾器大小k = 3,擴張因子d = 1, 2, 4。感受野可以覆蓋來自輸入序列的所有數據點x_0...x_T。圖源:https://arxiv.org/pdf/1803.01271.pdf
TCN 的「秘密武器」是擴張捲積,如上圖6所示。標準CNN 使用固定大小的內核/過濾器,因此它們隻能覆蓋鄰近的數據元素。TCN使用擴張捲積,它們在不同長度的輸入序列上使用填充(padding),從而能夠檢測彼此鄰近但位置完全不同的item之間的依賴關係。
此外,TCN 中還使用瞭其他技術,例如殘差連接,它現在已經成為深度網絡的標準。這裏主要關注 LSTM與TCN之間的差異:
速度:一般來說,TCN 比 LSTM 快,因為它們使用捲積,可以並行完成。但在實踐中,通過使用大量擴張,並考慮到殘差連接,TCN 最終可能會變慢;
輸入長度:TCN 和 LSTM 都能夠接受可變長度輸入;
內存:平均而言,TCN 比 LSTM 需要更多內存,因為每個序列都由多個擴張層處理。同樣,這取決於定義每個模型變得有多復雜的超參數;
性能:最初的論文錶明 TCN 優於LSTM。然而,在實踐中,情況並非總是如此。[13] 中的一項更詳盡的研究錶明,在某些任務中,TCN 更好,而在其他任務中,LSTM 更有效。
TCN和LSTM都有各自的優缺點。最好的方法是對它們進行評估,找到最適閤自己的方案。但要注意,除非你的用例非常小,否則無法通過單個TCN或LSTM模型實現 SOTA 性能。現代用例會考慮更多外部參數,這就需要更具挑戰性的方法。反過來,這也就意味著必須使用多個組件或模型。
Kaggle中的深度學習和時間序列
到目前為止,我們一直在從學術角度評估單個模型。然而,如果我們要製定一個更詳細的觀點,就不能忽略實際應用。
Kaggle提供瞭一個很好的評估基準,我們以 Kaggle 比賽為例:呼吸機壓力預測。該比賽任務是根據控製輸入的序列預測機械肺內的壓力序列。
這場比賽之所以具有挑戰性,有三個原因:
比賽需要同時解決迴歸和分類任務;
數據集為創造性特徵工程打開瞭大門;
由於每個主題/數據點都用不同的序列錶示,因此使用統計模型是不可行的。
現在,有兩個比較有趣的地方介紹一下:第一個是排名前三的團隊以及其他許多團隊在他們的最終解決方案中至少使用瞭一個基於LSTM的組件(例如stacked LSTMS,雙嚮LSTMS)。
獲勝團隊提交瞭一個多層次深度架構,其中包括一個 LSTM 網絡和一個 Transformer 塊。此架構如圖 7 所示:
圖7:第一名解決方案架構。
捲積神經網絡的命運
我希望這篇文章對LSTM的價值作齣瞭很好的論證。但是毫無疑問Transformer是機器學習領域一個驚人突破。這種突破性的成功將會促進未來更高級彆的研究。
2020年,Transformer被改編為計算機視覺版,誕生瞭vision Transformer (ViT),論文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》中提齣。這篇論文引發瞭進一步的研究,最終經過不斷的升級,ViT模型能夠在圖像分類任務中優於CNN。
因此,這個階段,我希望我們不要再說「CNN已經死亡」或者「CNN正在衰落」這樣的評價。
總結來講,本文可以總結為以下幾點:
要正確評估機器學習領域的突破所帶來的影響幾乎是不可能的;
Transformer的齣現重塑瞭這一局麵:LSTM,尤其是NLP中的LSTM不再是人們關注的焦點;
對於時間序列,LSTM更有用;
數據科學涉及多個領域,例如音頻、文本、圖形等。這反過來又需要各種方法/模型的結閤來應對這些挑戰。