科技改變生活 · 科技引領未來
選自towardsdatascience作者:NikosKafritsas機器之心編譯編輯:杜偉、陳萍如果說「LSTM」已死,它為何依然能夠在Kaggle競賽中成為贏家呢?長短期記憶(LongShort-TermMemory,LSTM)是一
選自towardsdatascience
作者:Nikos Kafritsas
機器之心編譯
編輯:杜偉、陳萍
如果說「LSTM」已死,它為何依然能夠在Kaggle競賽中成為贏家呢?
長短期記憶(Long Short-Term Memory,LSTM)是一種時間循環(huán)神經網絡(RNN),論文首次發(fā)表于1997年。由于獨特的設計結構,LSTM適合于處理和預測時間序列中間隔和延遲非常長的重要事件。在過去幾十年里,LSTM發(fā)展如何了?密切關注機器學習的研究者,最近幾年他們見證了科學領域前所未有的革命性進步。這種進步就像20世紀初,愛因斯坦的論文成為量子力學的基礎一樣。只是這一次,奇跡發(fā)生在AlexNet論文的推出,該論文一作為Alex Krizhevsky,是大名鼎鼎Hinton的優(yōu)秀學生代表之一。
AlexNet參加了2012年9月30日舉行的ImageNet大規(guī)模視覺識別挑戰(zhàn)賽,達到最低的15.3%的Top-5錯誤率,比第二名低10.8個百分點。這一結果重新燃起了人們對機器學習(后來轉變?yōu)樯疃葘W習)的興趣。我們很難評估每次技術突破:在一項新技術被引入并開始普及之前,另一項技術可能變得更強大、更快或更便宜。
技術的突破創(chuàng)造了如此多的炒作,吸引了許多新人,他們往往熱情很高,但經驗很少。深度學習領域中一個被誤解的突破就是循環(huán)神經網絡(Recurrent neural network:RNN)家族。如果你用谷歌搜索諸如「LSTMs are dead」「RNNs have died」短語你會發(fā)現(xiàn),搜索出來的結果大部分是不正確的或者結果太片面。本文中數(shù)據科學家Nikos Kafritsas撰文《Deep Learning: No, LSTMs Are Not Dead!》,文中強調循環(huán)網絡仍然是非常有用的,可應用于許多實際場景。此外,本文不只是討論LSTM和Transformer,文中還介紹了數(shù)據科學中無偏評估這一概念。以下是原文內容,全篇以第一人稱講述。
LSTM 曾經主導了 NLP 領域
每個大型科技公司都會采用LSTM,在NLP研究中都有LSTM的身影。早在1997年,LSTM在論文 《LONG SHORT-TERM MEMORY 》中被提出,直到2014年才進入高速發(fā)展階段。它們屬于循環(huán)神經網絡家族- RNN,以及門控循環(huán)單元GRU。隨著GPU的可訪問性和第一個深度學習框架的出現(xiàn),LSTM成為支配NLP領域的SOTA模型。2013 年詞嵌入的出現(xiàn)促進了遷移學習機制的構建。事實上,當時幾乎所有 NLP 任務的標準組件都是:a)預訓練詞嵌入,b)LSTM 和 c)序列到序列架構。在那個時期,每個數(shù)據科學家都同意 LSTM 主導了 NLP 領域:它們被用于語音識別、文本到語音合成、語言建模和機器翻譯。每家大型科技公司都接受了LSTM ;毫不夸張的說沒有 LSTM 就沒有 NLP。谷歌為機器翻譯創(chuàng)建的最佳模型之一,如下圖1所示:
圖1:谷歌神經機器翻譯- GNMT架構。這個復雜的模型存在于谷歌翻譯服務中,與之前的版本相比,GNMT減少了60%的翻譯錯誤。正如我們看到的,GNMT大量使用了LSTM,形成了著名的編碼器-解碼器拓撲(包括一個雙向LSTM)。此外,GNMT還利用了Attention,這是一種允許模型在需要時關注輸入序列相關部分的機制。如圖1 所示,其中編碼器的頂部向量使用注意力分數(shù)加權。換句話說,每個時間步驟中的每個單詞都有一個可學習的分數(shù),以最小化錯誤。要了解更多信息,請查看資料:
然而,LSTM有兩個缺點:首先LSTM不容易在訓練過程中并行化;其次由于它們具有周期性,它們可以建模的序列長度是有限制的。
打開Transformers的世界
RNN是序列模型,也就是說單詞是按順序處理的。但是,Transformer可以并行處理所有的單詞。2017年,谷歌在論文《Attention Is All You Need》中推出Transformer ,這是NLP生態(tài)系統(tǒng)的里程碑式的進步。這個新模型通過提出多頭注意力機制來深入研究注意力,具體表現(xiàn)在:
然而,Transformer沒有使用LSTM,即使在提取上下文信息很重要的第一層(LSTM可能很有用),Transformer提出了一種不同的機制,稱為位置編碼。這揭示了兩類模型之間的主要區(qū)別:RNN 是序列模型,這意味著單詞是按順序處理的;但 Transformer 并行處理所有單詞,這大大減少了訓練時間。從那以后,Transformer成為研究語言處理的基礎,并產生了新的變體。變體如下圖2所示:
圖2:開源的Transformer系列
不能被遺忘的時間序列
LSTM 和 Transformer 都非常擅長對序列信息進行建模。因此,它們也可以應用于時間序列預測(TSF)案例。
傳統(tǒng)統(tǒng)計方法贏得第一輪
然而,實驗結果表明,LSTM和Transformer在準確度方面并非一定優(yōu)于傳統(tǒng)統(tǒng)計方法(例如 ARIMA)。另一方面,統(tǒng)計方法和基于RNN的方法相結合更有效。一個典型的例子是 Uber 構建的 ES-RNN 模型,該模型最終贏得了 M4競賽。該模式是一種在擴張的 LSTM 之上使用指數(shù)平滑的混合模型。當然,Transformer 也受到了考驗。對于時間序列預測,最常用的方法是使用原始的 Transformer,并將位置編碼層替換為 Time2vec 層。但是,Transformer 模型也無法超越統(tǒng)計方法。此外,我還想說明以下幾點:
總之,就預測能力而言,ML 方法并不總是優(yōu)于統(tǒng)計方法。
深度學習(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 單元的隱藏狀態(tài),它們被用來計算高斯分布的 μ 和 σ 參數(shù)。從這個分布中,選擇n個樣本,其中位數(shù)代表預測值。結果表明,這兩種深度學習模型都優(yōu)于傳統(tǒng)的統(tǒng)計方法。此外,這兩種模型都更加通用,因為它們可以處理多個時間序列并接受更豐富的功能集,其中TFT 略勝一籌。
循環(huán)與注意力如何關聯(lián)起來
為了學習不同尺度的時序關系,TFT 使用循環(huán)層進行局部處理,使用可解釋的自注意力層進行長期依賴。考慮到我們目前所知道的以及上文所述,可以得出以下結論:循環(huán)網絡非常擅長捕捉序列的局部時間特征,而注意力則更擅長學習長期動態(tài)。這不是一個武斷的結論。TFT論文的作者通過執(zhí)行消融分析證明了這一點。他們在其他組件中測試了LSTM編碼器-解碼器層:在消融實驗中使用原始 Transformer 的標準位置編碼層來替換它,得出了以下兩個結論:
因此,我們可以有把握地得出結論:LSTM 層仍然是時間序列深度學習模型中的一個非常有用的組件。此外,它們不會對抗注意力機制,相反可以與基于注意力的組件相結合,進一步提高模型的效率。
LSTM的隱藏優(yōu)勢:條件輸出
條件輸出是 LSTM 最被忽視的優(yōu)勢之一,許多數(shù)據科學從業(yè)者仍然沒有意識到這一點。如果你一直在用原始循環(huán)網絡,就會發(fā)現(xiàn)這種類型的網絡只能處理被表示為具有各種依賴關系的序列的時序數(shù)據。但是,它們不能直接對靜態(tài)元數(shù)據或非時變數(shù)據進行建模。
在 NLP 中,靜態(tài)元數(shù)據是不相關的。相反,NLP 模型專注于單詞詞匯表,其中每個單詞都由嵌入表示,這是整個模型的統(tǒng)一概念。每個單詞所來自文檔的類型并不重要,只要 NLP 模型可以學習每個單詞的正確上下文感知表示即可。但要記住:一個特定的單詞可以有不同的嵌入,這取決于它的含義和它在句子中的位置。
但是,在時間序列模型中,非時變數(shù)據的影響要大得多。例如,假設我們有一個涉及商店產品的銷售預測場景,產品的銷量可以建模為時間序列,但也會受到假期等外部因素的影響。因此,一個好的預測模型也應該考慮這些變量。這就是TFT所做的,參見下圖 5。
圖5:外部靜態(tài)變量對預測的影響。但是,TFT是如何實現(xiàn)的呢?TFT 專為集成靜態(tài)元數(shù)據而設計,它使用了各種技術,最重要的一個與 LSTM有關。LSTM 使用 [11] 中首次介紹的技巧無縫地執(zhí)行此任務:沒有將 LSTM 的初始 h_0 隱藏狀態(tài)和單元狀態(tài) c_0 設置為 0(或隨機),而是使用指定向量或嵌入來初始化它們。或者正如 TFT 所做的一樣,在擬合期間使這些向量可訓練。通過這種方式,LSTM 單元的輸出可以適當?shù)卦谕獠孔兞可习l(fā)揮作用,而不會影響其時間依賴性。
LSTM vs TCN
在注意力和Transformer出現(xiàn)之前,有另一種有望改變現(xiàn)狀的模型,即時間卷積網絡(Temporal Convolutional Networks, TCN)。TCN 在 2016年首次提出并在2018年規(guī)范化,它利用卷積網絡對基于序列的數(shù)據進行建模。自然地,它們也是時間序列預測任務的理想方案。
擴張卷積示意圖,其中過濾器大小k = 3,擴張因子d = 1, 2, 4。感受野可以覆蓋來自輸入序列的所有數(shù)據點x_0...x_T。圖源:https://arxiv.org/pdf/1803.01271.pdfTCN 的「秘密武器」是擴張卷積,如上圖6所示。標準CNN 使用固定大小的內核/過濾器,因此它們只能覆蓋鄰近的數(shù)據元素。TCN使用擴張卷積,它們在不同長度的輸入序列上使用填充(padding),從而能夠檢測彼此鄰近但位置完全不同的item之間的依賴關系。
此外,TCN 中還使用了其他技術,例如殘差連接,它現(xiàn)在已經成為深度網絡的標準。這里主要關注 LSTM與TCN之間的差異:
TCN和LSTM都有各自的優(yōu)缺點。最好的方法是對它們進行評估,找到最適合自己的方案。但要注意,除非你的用例非常小,否則無法通過單個TCN或LSTM模型實現(xiàn) SOTA 性能。現(xiàn)代用例會考慮更多外部參數(shù),這就需要更具挑戰(zhàn)性的方法。反過來,這也就意味著必須使用多個組件或模型。
Kaggle中的深度學習和時間序列
到目前為止,我們一直在從學術角度評估單個模型。然而,如果我們要制定一個更詳細的觀點,就不能忽略實際應用。Kaggle提供了一個很好的評估基準,我們以 Kaggle 比賽為例:呼吸機壓力預測。該比賽任務是根據控制輸入的序列預測機械肺內的壓力序列。
這場比賽之所以具有挑戰(zhàn)性,有三個原因:
現(xiàn)在,有兩個比較有趣的地方介紹一下:第一個是排名前三的團隊以及其他許多團隊在他們的最終解決方案中至少使用了一個基于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》中提出。這篇論文引發(fā)了進一步的研究,最終經過不斷的升級,ViT模型能夠在圖像分類任務中優(yōu)于CNN。因此,這個階段,我希望我們不要再說「CNN已經死亡」或者「CNN正在衰落」這樣的評價。
總結來講,本文可以總結為以下幾點:
原文鏈接:https://towardsdatascience.com/deep-learning-no-lstms-are-not-dead-20217553b87a
張原明