選自towardsdatascience作者:NikosKafritsas機(jī)器之心編譯編輯:杜偉、陳萍如果說「LSTM」已死,它為何依然能夠在Kaggle競(jìng)賽中成為贏家呢?長(zhǎng)短期記憶(LongShort-TermMemory,LSTM)是一
選自towardsdatascience
作者:Nikos Kafritsas
機(jī)器之心編譯
編輯:杜偉、陳萍
如果說「LSTM」已死,它為何依然能夠在Kaggle競(jìng)賽中成為贏家呢?

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