將注意力機制引入RNN,解決5大應用領域的序列預測問題

2020-12-04 機器之心Pro

本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。

編碼器-解碼器結構在多個領域展現出先進水平,但這種結構會將輸入序列編碼為固定長度的內部表徵。這限制了輸入序列的長度,也導致模型對特別長的輸入序列的性能變差。將注意力機制引入循環神經網絡幫助解決這一局限性。該方法可用於多個領域的序列預測中,包括文本翻譯、語音識別等。

編碼器-解碼器結構流行的原因是它在眾多領域展現出了當前最高水平。這種結構的局限性在於它會將輸入序列編碼為固定長度的內部表徵。這限制了輸入序列的長度,並且導致模型對特別長的輸入序列的性能變差。

在這篇博客中,我們將發現可以在循環神經網絡中採用注意力機制(attention mechanism)來克服這種局限性。

讀完這篇博客,你會知道:

編碼器-解碼器結構和固定長度內部表徵的局限性

讓網絡學會針對輸出序列的每一項去注意輸入序列中對應位置的注意力機制

帶有注意力機制的循環神經網絡在文本翻譯、語音識別等 5 個領域中的應用。

長序列的問題

在編碼器-解碼器循環神經網絡中,一系列長短期記憶網絡(LSTM)學習將輸入序列編碼為固定長度的內部表徵,另一部分長短期記憶網絡讀取內部表徵並將它解碼到輸出序列中。這種結構在困難的序列預測問題(例如文本翻譯)中展示出了當前最先進的水平,並迅速成為了主導方法。例如,下面這兩篇論文:

使用神經網絡的序列到序列學習(Sequence to Sequence Learning with Neural Networks, 2014)

使用 RNN 編碼器-解碼器學習短語表徵,用於統計機器翻譯(Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014)

編碼器-解碼器結構仍然能夠在很多問題上實現優秀的結果。然而,它受到了一個限制,即所有的輸入序列都被強制編碼成固定長度的內部向量。這一局限性限制了這些網絡的性能,尤其是考慮到比較長的輸入序列時,例如文本翻譯中的長句子。

「這種編碼器-解碼器方法的一個潛在問題是神經網絡需要把源句子中的所有必要信息壓縮成一個固定長度的向量。這使得神經網絡在處理長句子,尤其是比訓練語料長的句子時會比較困難。」

——Dzmitry Bahdanau, et al.,Neural machine translation by jointly learning to align and translate, 2015

序列中的注意力機制

注意力機制是一個將編碼器-解碼器結構從固定長度的內部表徵中解放出來的方法。它通過保持 LSTM 編碼器對輸入序列每一步的中間輸出結果,然後訓練模型學習如何選擇性地關注輸入,並將它們與輸出序列中的項聯繫起來。換句話說,輸出序列中的每一項都取決於輸入序列中被選中的項。

「論文中提出的模型在翻譯的時候每生成一個詞,就會在源句子中的一系列位置中搜索最相關信息集中的地方。然後它會基於上下文向量以及這些源文本中的位置和之前生成的目標詞來預測下一個目標詞。」「……該模型將輸入語句編碼成向量序列,並在解碼翻譯的時候適應性地選擇這些向量的子集。這使得神經翻譯模型不必再將各種長度的源句子中的所有信息壓縮成一個固定長度的向量。」

——Dzmitry Bahdanau, et al., Neural machine translation by jointly learning to align and translate (https://arxiv.org/abs/1409.0473), 2015

雖然這樣做會增加模型的計算負擔,但是會形成目標性更強、性能更好的模型。此外,模型還能夠展示在預測輸出序列的時候,如何將注意力放在輸入序列上。這會幫助我們理解和分析模型到底在關注什麼,以及它在多大程度上關注特定的輸入-輸出對。

「論文提出的方法能夠直觀地觀察到生成序列中的每個詞與輸入序列中一些詞的(軟)對齊關係,這可以通過對標註權重的可視化來實現……每個圖中矩陣的每一行代表與標註相關聯的權重。由此我們可以看出在生成目標詞時,源句子中的哪一個位置受到了重視。」

——Dzmitry Bahdanau, et al., Neural machine translation by jointly learning to align and translate (https://arxiv.org/abs/1409.0473), 2015

使用大幅圖片時的問題

應用在計算機視覺問題中的卷積神經網絡也面臨類似問題,用特別大的圖片訓練模型會很困難。由此引發的結果就是在做出預測之前,圖像會被大量觀察,得到其近似表示(approximate impression)。

「人類感知的一個重要特點就是不會傾向於一次性處理場景的全貌,而是選擇性地將注意力聚焦於視覺空間中的某些部分來獲取所需信息,並且結合不同時間點的局部信息來構建整個場景的內部表徵,以此指導隨後的眼動和決策。」

——Recurrent Models of Visual Attention (https://arxiv.org/abs/1406.6247), 2014

這些基於 glimpse 的修正也可以被認為是注意力機制,但是並不是本文要說的注意力機制。

相關論文:

Recurrent Models of Visual Attention, 2014

DRAW: A Recurrent Neural Network For Image Generation, 2014

Multiple Object Recognition with Visual Attention, 2014

使用注意力機制進行序列預測的 5 個例子

這一部分給出了一些將注意力機制與循環神經網絡結合起來用於序列預測的具體例子。

1. 文本翻譯中的注意力機制

文本翻譯這個例子我們在前面已經提過了。給定一個法語句子的輸入序列,將它翻譯並輸出英文句子。注意力機制用於觀察輸入序列中與輸出序列每一個詞相對應的具體單詞。

「生成每個目標詞時,我們讓模型搜索一些輸入單詞或由編碼器計算得到的單詞標註,進而擴展基本的編碼器-解碼器結構。這讓模型不再必須將整個源句子編碼成一個固定長度的向量,還能讓模型僅聚焦於和下一個目標詞相關的信息。」

—Dzmitry Bahdanau, et al., Neural machine translation by jointly learning to align and translate (https://arxiv.org/abs/1409.0473, 2015

法語-英語翻譯中的注意力編譯

圖註:列為輸入序列,行為輸出序列,高亮塊代表二者的關聯,顏色越淺,則關聯性越強。

圖片來自論文:Dzmitry Bahdanau, et al., Neural machine translation by jointly learning to align and translate, 2015

2. 圖像描述中的注意力機制

與 glimpse 方法不同,基於序列的注意力機制可以應用在計算機視覺問題上,來幫助找出方法,使輸出序列時更好地利用卷積神經網絡來關注輸入的圖片,例如在典型的圖像描述任務中。給定一幅輸入圖像,輸出對該圖像的英文描述。注意力機制用於關注與輸出序列中的每一個詞相關的局部圖像

「我們提出了一個基於注意力機制的方法,該方法在三個基準數據集上都達到了最先進的性能表現……我們還展示了如何使用學得的注意力機制為模型生成過程提供更多可解釋性,演示了學得的對齊與人類直覺一致性很高。」

—— Show, Attend and Tell: Neural Image Caption Generation with Visual Attention, 2016

輸出單詞與輸入圖像特定區域的注意力編譯

和上圖類似,輸出文本中下劃線處單詞對應右側圖片中的泛光區域。圖片來自論文:Show, Attend and Tell: Neural Image Caption Generation with Visual Attention, 2016

3. 語義蘊涵中的注意力機制

給定一個前提場景,並且用英文給出關於該場景的假設,輸出內容是前提和假設是否矛盾、二者是否相互關聯,或者前提是否蘊涵假設。

例如:

前提:「婚禮上的照片」

假設:「某人在結婚」

注意力機制用於將假設中的每一個詞與前提中的詞關聯起來,反之亦然

我們提出了一個基於 LSTM 的神經模型,它能夠將兩個句子讀取成一個句子來進行語義蘊涵分析,而不是把每個句子都獨立地編碼成一個語義向量。然後,我們用逐詞注意力機制(neural word-by-word attention mechanism)來擴展該模型,以鼓勵對成對單詞和詞組是否存在蘊涵關係作出推理……該擴展模型的基準測試分數比 LSTM 高了 2.6%,創造了一項新的準確率記錄……

——Reasoning about Entailment with Neural Attention (https://arxiv.org/abs/1509.06664), 2016

前提中的單詞到假設中單詞的注意力編譯。圖片來自論文:Reasoning about Entailment with Neural Attention, 2016

4. 語音識別中的注意力機制

給定一個英文語音片段作為輸入,輸出一個音素序列。注意力機制被用來關聯輸出序列中的每一個音素和輸入序列中特定的語音幀。

「……提出一個新型的基於混合注意力機制的端到端可訓練的語音識別結構,為了在解碼的時候在輸入序列中選擇下一個位置,它同時結合了內容信息和位置信息。該模型令人滿意的一點是它能夠識別比訓練所用的語料更長的語音。」——Attention-Based Models for Speech Recognition (https://arxiv.org/abs/1506.07503), 2015.

輸出音素到輸入語音幀的注意力編譯。圖片來自論文:Attention-Based Models for Speech Recognition, 2015.

5. 文本摘要中的注意力機制

給定一段英文文章作為輸入序列,輸出一段英文文本來總結輸入序列。注意力機制被用來關聯摘要文本中的每一個詞語與源文本中的對應單詞。

「……提出一個基於 neutral attention 機制的模型用於抽象摘要,該模型在最近神經機器翻譯的進展基礎上發展而來。我們將該概率模型與一個能夠生成準確抽象摘要的生成算法結合起來。」——A Neural Attention Model for Abstractive Sentence Summarization (https://arxiv.org/abs/1509.00685), 2015

輸入文本中的單詞與輸出摘要的注意力編譯。圖片來自論文:A Neural Attention Model for Abstractive Sentence Summarization, 2015.

延伸閱讀

如果你對在 LSTM 中添加注意力機制感興趣,可以閱讀下面的內容:

深度學習和自然語言處理中的注意力和記憶(Attention and memory in deep learning and NLP,http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/)

注意力機制(Attention Mechanism,https://blog.heuritech.com/2016/01/20/attention-mechanism/)

基於注意力機制的模型在自然語言處理中的應用(Survey on Attention-based Models Applied in NLP,http://yanran.li/peppypapers/2015/10/07/survey-attention-model-1.html)

[Quora 問答] 將注意力機制引入 RNN 究竟是什麼?(What is exactly the attention mechanism introduced to RNN? https://www.quora.com/What-is-exactly-the-attention-mechanism-introduced-to-RNN-recurrent-neural-network-It-would-be-nice-if-you-could-make-it-easy-to-understand)

神經網絡中的注意力機制是什麼?(What is Attention Mechanism in Neural Networks? https://www.quora.com/What-is-Attention-Mechanism-in-Neural-Networks)

總結

這篇博文介紹了在 LSTM 循環神經網絡中使用注意力機制用於序列預測。

具體而言:

循環神經網絡中的編碼器-解碼器結構使用固定長度的內部表徵,給超長序列的學習帶來了限制。

通過允許網絡學習將輸出序列中的每一項與輸入序列中的相關項相對應,注意力機制克服了編碼器-解碼器結構的這種局限性。

這種方法在多種序列預測問題中得到應用,包括文本翻譯、語音識別等。

相關焦點

  • 教程 | 將注意力機制引入RNN,解決5大應用領域的序列預測問題
    這限制了輸入序列的長度,也導致模型對特別長的輸入序列的性能變差。將注意力機制引入循環神經網絡幫助解決這一局限性。該方法可用於多個領域的序列預測中,包括文本翻譯、語音識別等。編碼器-解碼器結構流行的原因是它在眾多領域展現出了當前最高水平。這種結構的局限性在於它會將輸入序列編碼為固定長度的內部表徵。
  • nlp領域發生了新的技術突破,用attention機制研究nlp領域
    lstm,已經有了兩種不同的,看似性能和效率差異不大的attention機制:rnnattention,lstmattention。今天我們將從這兩種attention機制開始研究nlp領域突破性技術!
  • 加性注意力機制 - CSDN
    學習本部分默認大家對RNN神經網絡已經深入理解了,這是基礎,同時理解什麼是時間序列,尤其RNN的常用展開形式進行畫圖,這個必須理解了。這篇文章整理有關注意力機制(Attention Mechanism )的知識,主要涉及以下幾點內容:1、注意力機制是為了解決什麼問題而提出來的?
  • 乾貨| 完全圖解RNN、RNN變體、Seq2Seq、Attention機制
    二、經典的RNN結構(N vs N) 在實際應用中,我們還會遇到很多序列形的數據: 如: 序列形的數據就不太好用原始的神經網絡處理了。為了建模序列問題,RNN引入了隱狀態h(hidden state)的概念,h可以對序列形的數據提取特徵,接著再轉換為輸出。
  • 谷歌聯手DeepMind提出Performer:用新方式重新思考注意力機制
    對於需要長距離注意力的應用,目前已經提出了幾種快速且更節省空間的方法,如內存緩存技術,但是一種更常見的方法是依賴於稀疏注意力。稀疏注意力機制通過從一個序列而不是所有可能的Pair中計算經過選擇的相似性得分來減少注意機制的計算時間和內存需求,從而產生一個稀疏矩陣而不是一個完整的矩陣。
  • 簡單有效的注意力機制
    這種能力就叫做注意力。 ------ 摘自《百度百科》想解決什麼問題?深度神經網絡中引入注意力機制,主要想解決時序模型中的上下文問題。RNN是時序建模的一個最常見的方法,RNN通過形如f(f(f(x)))的遞歸形式順序表達序列。RNN存在梯度爆炸、梯度消失的問題,對於長期依賴的上下文情況比較吃力;同時串行計算,尤其是當序列很長時,導致訓練時間複雜度高。
  • 一文解讀NLP中的注意力機制
    新智元推薦 來源:AI小白入門作者:yuquanle 整理編輯:三石【新智元導讀】注意力機制越發頻繁的出現在文獻中,因此對注意力機制的學習、掌握與應用顯得十分重要。本文便對注意力機製做了較為全面的綜述。
  • 告別RNN,迎接TCN
    在模型分析中增加了投資者的情緒趨勢,並引入經驗模態分解(EMD)與LSTM相結合,以獲得更準確的股票預測。基於注意力機制的LSTM模型在語音和圖像識別中很常見,但在金融領域卻很少使用。Radford  等。 目前 流行的GPT-3的前身,GPT-2的目標是設計一個多任務學習器,它結合了預訓練和監督式微調,以實現更靈活的傳輸形式。因此,它具有1542M參數,比其他比較模型大得多。
  • 哈佛大學提出變分注意力:用VAE重建注意力機制
    注意力 (attention) 模型在神經網絡中被廣泛應用,不過注意力機制一般是決定性的而非隨機變量。VAE 應用到文本生成上,通過引入隱變量對不確定性進行建模。為了解決這個問題,在哈佛研究人員的工作中,注意力被建模成隱變量,由於解碼器 (decoder) 和解碼器 (encoder) 之間的主要信息傳輸通道是通過注意力來傳輸的,如果忽略了這個隱變量,就會因無法得到源文本的信息而得到很大的懲罰 (penalty)(這相比之前的許多工作中直接把隱變量加入到每個解碼步驟不同,因為那樣即使解碼器忽略了隱變量,也可以達到很好的模型表現
  • 哈希算法、愛因斯坦求和約定,這是2020年的注意力機制
    藉助注意力機制,神經機器翻譯、預訓練語言模型等任務獲得了前所未有的提升。但與此同時,注意力機制也面臨著重重問題,首先就是參數量太大,這有點類似於全連接層,注意力機制需要考慮兩兩之間的所有連接。我們可以看到,完全用注意力機制的模型,參數量輕輕鬆鬆破個億,而卷積這類參數共享的運算,參數量一般也就幾百萬。
  • 注意力機制想要覺醒AI,總共分幾步?
    這必須從Bengio視為機器學習殺手的注意力機制開始。將意識注入機器:注意力機制增加了另一項任務腦極體的高級讀者應該熟悉注意力機制。在機器學習任務中,例如圖像處理,語音識別和自然語言處理,過去兩年中引入了注意力模型。在行業中如此受歡迎,其特點自然是突出的:一種是讓神經網絡學習僅專注於特定部分,從而大大提高任務的有效性和效率。
  • 無需標註數據集,自監督注意力機制就能搞定目標跟蹤
    一般來說,嬰兒在 2 至 3 個月大的早期階段就具有目標跟蹤的本能。然而,從神經生理學的層面上講,人類視覺系統的實際工作機制仍然有些模糊。與人類視覺系統類似,計算機視覺系統也廣泛應用於視頻監控和自動駕駛等領域。跟蹤算法的目標是在給定的視頻序列中重新定位它在初始幀中識別的一組特定對象。
  • 深度| 從各種注意力機制窺探深度學習在NLP中的神威
    直觀而言,注意力機制通過允許解碼器在多個向量中關注它所需要的信息,從而使編碼器避免了將輸入嵌入為定長向量,因此能保留更多的信息 [1]。如今,注意力機制在深度模型中已經非常普遍,它已經不再僅流行於編碼器-解碼器架構。
  • 華為諾亞方舟加拿大實驗室提出BANet,雙向視覺注意力機制用於單目...
    作者 | SFXiang  編輯 | 陳彩嫻  論文地址:https://arxiv.org/abs/2009.00743  這是一篇將雙向注意力機制用於彈幕深度估計的工作。主要的創新點在視覺注意力機制的基礎上引入了前向和後向注意力模塊,這些模塊可以有效地整合局部和全局信息,以此來消除歧義。
  • 用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和...
    近來在同時做一個應用深度學習解決淘寶商品的類目預測問題的項目,恰好碩士畢業時論文題目便是文本分類問題,趁此機會總結下文本分類領域特別是應用深度學習解決文本分類的相關的思路、做法和部分實踐的經驗。應用深度學習解決大規模文本分類問題最重要的是解決文本表示,再利用CNN/RNN等網絡結構自動獲取特徵表達能力,去掉繁雜的人工特徵工程,端到端的解決問題。
  • 今日Paper | 空間注意力網絡;深度信念網絡;GhostNet;位置預測等
    用單個深度學習模型代替移動相機ISP基於深度信念網絡來識別阿爾茲海默症的蛋白質組危險標誌物分層時空LSTM在位置預測中的應用GhostNet:廉價運營帶來的更多功能  VSGNet:基於圖卷積的人體物體交互檢測的空間注意力網絡
  • 用RNN和TensorFlow創作自己的《哈利波特》小說
    如果數據量不成問題,那麼則是LSTM(長短期記憶網絡)性能更優。如果數據量較少,那麼GRU參數更少,因此訓練更快,並能很好地泛化。為什麼是基於字符的?在處理這樣的大型數據集時,一個語料庫中不重複單詞的總量遠遠高於唯一字符的數量。一個大型數據集有許多不重複的單詞,當為如此大的矩陣分配獨熱編碼時,很可能會遇到內存問題。光是標籤本身就可以佔據Tb級的內存。
  • 乾貨|時間序列預測類問題下的建模方案探索實踐
    時間序列預測類問題在金融領域比較常見,例如股票價格的預測,網點現金流量的預測等等,在氣象、人口密度預測等領域也有很廣泛的應用。傳統的時間序列預測模型通常是統計學模型,比如經典的ARMA系列,它們建立在統計學基礎上,需要滿足一些基本假設(例如平穩性假設等),因此適用場景比較少,在現實中比較容易受限。
  • 百度AAAI 2018錄用論文:基於注意力機制的多通道機器翻譯模型
    基於注意力的神經翻譯系統目前,很多研究工作者提出了許多基於注意力的神經翻譯系統(NMT,Neural Machine Translation)的改進方法,其中效果最優的是基於注意力架構的編解碼系統。圖 1. 提供了基於注意力 NMT 模型的結構原理,共包括三個部分:編碼、解碼層,及中間級聯的引入注意力機制的結構。
  • AI解決生物學50年大挑戰,破解蛋白質分子摺疊問題
    科學家們表示,Alphafold 的突破性研究成果將幫助科研人員弄清引發某些疾病的機制,並為設計藥物、農作物增產,以及可降解塑料的「超級酶」研發鋪平道路。「這是該研究領域激動人心的一刻,」DeepMind 創始人、執行長德米斯 · 哈薩比斯說道。「這些算法今天已經足夠成熟強大,足以被應用於真正具有挑戰性的科學問題上了。」