Attention is All You Need?LSTM提出者:我看未必

2020-12-04 機器之心Pro

機器之心報導

機器之心編輯部

Transformer 中的注意力機制等價於一種 Hopfield 網絡中的更新規則?LSTM 提出者 Sepp Hochreiter 等人在最近的一篇論文中表達了這種觀點,並將這篇論文命名為《Hopfield Networks is All You Need》。

深度學習先驅、圖靈獎獲得者 Yann LeCun 一直認為無監督學習才是通向真正人工智慧的方向。為了實現無監督學習,我們需要探索基於能量的學習(energy-based learning)。這個方向在 AI 領域裡已經存在幾十年了,生物學家約翰 · 霍普菲爾德(John Hopfield)於 1982 年將之以 Hopfield Network 的形式進行了推廣。這在當時機器學習領域中是一個突破,它推動了其他學習算法的發展,如 Hinton 的「玻爾茲曼機」。

「基於能量的學習已經存在了一段時間,最近一段時間裡,因為尋求更少監督的方法,它重新回到了我的視野中。」Yann LeCun 在 2019 年 10 月於普林斯頓大學的演講中說道。

深度學習領軍人物給未來 AI 方向的預測讓我們對 Hopfield 網絡這一「古老」事物燃起了興趣,無獨有偶,最近一群研究者又告訴我們:NLP 領域裡大熱的 Transformer,其網絡更新規則其實是和 Hopfield 網絡在連續狀態下是相同的。

於是,一篇標題也要對標 Transformer 論文的《Hopfield Networks is All You Need》誕生了。

2018 年,谷歌的一篇論文引爆了 NLP 學界。在這篇論文中,研究者提出了一種名為 BERT 的模型,刷新了 11 項 NLP 任務的 SOTA 記錄。眾所周知,BERT 之所以能取得如此成功,很大程度上要歸功於其背後的 Transformer 架構。

2017 年,谷歌在《Attention is All You Need》一文中提出了 Transformer。自提出以來,它在眾多自然語言處理問題中取得了非常好的效果:不但訓練速度更快,而且更適合建模長距離依賴關係。

目前,主流的預訓練模型都是以 Transformer 模型作為基礎進行修改,作為自己的特徵抽取器。可以說,Transformer 的出現改變了深度學習領域,特別是 NLP 領域。

為什麼 Transformer 如此強大?這還要歸功於其中的注意力機制。注意力機制在 NLP 領域的應用最早可以追朔到 2014 年,Bengio 團隊將其引入神經機器翻譯任務。但那時,模型的核心構架還是 RNN。相比之下,Transformer 完全拋棄了傳統的 CNN 和 RNN,整個網絡結構完全由注意力機制組成,這種改變所帶來的效果提升也是顛覆性的。

但最近的一項研究表明,Transformer 中的這種注意力機制其實等價於擴展到連續狀態的 modern Hopfield 網絡中的更新規則。論文作者來自奧地利林茨大學、挪威奧斯陸大學等機構,與 Jürgen Schmidhuber 合著 LSTM 的 Sepp Hochreiter 也是作者之一。

Hopfield 網絡是一種 RNN 模型,由 John Hopfield 於 1982 年提出。它結合了存儲系統和二元系統,保證了向局部極小值的收斂,但收斂到錯誤的局部極小值而非全局極小值的情況也可能發生。Hopfield 神經網絡對上世紀 80 年代初神經網絡研究的復興起到了重大作用。

1987 年,貝爾實驗室在 Hopfield 神經網絡的基礎上研製出了神經網絡晶片。2016 年和 2017 年,Hopfield 等人又改進了這一網絡(即下文中的 modern Hopfield 網絡 )。

在林茨大學和挪威奧斯陸大學的這篇論文中,研究者提出了一種新的 Hopfield 網絡,將 modern Hopfield 網絡從二元模式擴展到了連續模式,並表明這些新 Hopfield 網絡的更新規則(update rule)等價於 Transformer 中的注意力機制。

這種帶有連續狀態的新 Hopfield 網絡保留了離散網絡的特點:指數級的存儲容量和極快的收斂速度。

在發現新 Hopfield 網絡更新規則與 Transformer 注意力機制的等價性之後,研究者利用這一發現分析了 BERT 等基於 Transformer 的模型。他們發現,這些模型有不同的運行模式,而且更加傾向於在較高的能量最小值下運行,而後者是一種亞穩態(metastable state)。

這篇論文在 Twitter、Reddit 等平臺上引發了廣泛的討論。

知名 Youtube 博主、蘇黎世聯邦理工學院博士生 Yannic Kilcher 還針對該論文進行了解讀,相關視頻播放量兩天內就超過了一萬次。

00:00/00:00倍速

原視頻地址:https://www.youtube.com/watch?v=nv6oFDp6rNQ&feature=youtu.be

以下是論文的詳細內容。

Hopfield Networks is All You Need

深度學習社區一直在尋找 RNN 的替代方案,以解決信息存儲問題,但大多數方法都是基於注意力的。Transformer 和 BERT 模型更是通過注意力機制將模型在 NLP 任務中的性能推到了新的水平。

這項研究表明,Transformer 中的注意力機制其實等價於擴展到連續狀態的一種 modern Hopfield 神經網絡的更新規則。這個新的 Hopfield 網絡能夠實現模式存儲的指數級提升,一次更新即可收斂,並且檢索誤差也呈現指數級下降。存儲模式的數量與收斂速度和檢索誤差之間存在必然的權衡。

研究者提出的新 Hopfield 網絡有三種類型的能量最小值(更新的固定點):

1)所有模式上的全局固定點平均值;

2)模式子集上的亞穩態平均值;

3)存儲單個模式的固定點。

Transformer 通過構建一個模式嵌入和關聯空間的查詢來學習注意力機制。在最初幾層,Transformer 和 BERT 模型傾向於在全局平均機制下運行,但在更高層則傾向於在亞穩態下運行。Transformer 中的梯度在亞穩態機制中最大,在全局平均時均勻分布,在固定點臨近存儲模式時消失。

基於 Hopfield 網絡的解釋,研究者分析了 Transformer 和 BERT 架構的學習。學習開始於注意力頭(attention head),它們最初平均分布,然後其中的大部分轉換為亞穩態。但是,前幾層中的注意力頭大多依然平均分布,並且可以被研究者提出的高斯權重等平均運算取代。

相比之下,最後幾層中的注意力頭穩定地學習,而且似乎利用亞穩態來收集較低的層創建的信息。這些注意力頭似乎就是改進 Transformer 的潛在目標。

集成 Hopfield 網絡的神經網絡(等同於注意力頭)在免疫組庫分類任務中的性能優於其他方法,其中的 Hopfield 網絡可以存儲數十萬個模式。研究者提出了一種名為「Hopfield」的 PyTorch 層,藉助 modern Hopfield 網絡來改進深度學習。這是一種包含池化、記憶和注意力的強大新概念。

論文地址:https://arxiv.org/pdf/2008.02217.pdf

項目地址:https://github.com/ml-jku/hopfield-layers

連續狀態 Modern Hopfield 網絡的新能量函數和更新規則

在論文中,研究者提出了一個新的能量函數,它是在 modern Hopfield 網絡能量函數的基礎上做出的改進,以使其擴展到連續狀態。改進之後,新的 modern Hopfield 網絡可以存儲連續模式,還能保持二元 Hopfield 網絡的收斂和存儲能力。經典 Hopfield 網絡不需要約束自身狀態向量的範數,因為這類網絡是二元的,且具有固定長度。

此外,研究者還提出了一個新的更新規則,它被證明可以收斂至能量函數的穩定點(局部最小值或鞍點)。他們還證明,一個與其他模式實現良好分離的模式可以通過一步更新被檢索到,同時還能實現指數級的誤差下降。

下圖 1 展示了二元 modern Hopfield 網絡、研究者提出的連續狀態 Hopfield 網絡、新更新規則和 Transformer 之間的關係。

通過使用 negative 能量的對數並添加一個確保狀態向量ξ的範數受限的二次項,研究者將這個能量函數泛化至連續值模式。他們證明,這些改動保持了 modern Hopfield 網絡的指數級存儲能力優勢以及單次更新即可收斂的屬性,具體可見上圖 1。

研究者將這個新穎的能量函數 E 定義如下:

其中,

。研究者用 p = softmax(βX^T ξ)定義了一個新的更新規則,公式如下:

接下來,他們又證明了更新規則公式 (3) 具有全局收斂性。

連續狀態 Hopfield 網絡的更新規則就是 Transformer 中的注意力機制

研究者認為,連續狀態 Hopfield 網絡中的更新規則就是 Transformer 和 BERT 中使用的注意力機制。為此,他們假設模式 y_i 映射到維度 d_k 的 Hopfield 空間。研究者令

並將更新規則結果與 W_V 相乘。

矩陣

結合 y_i,作為行向量。研究者分別將矩陣 X^T 和 V 定義為

其中

對於結合矩陣 Q、

和 softmax ∈ R^N 中變成行向量的所有查詢,研究者將更新規則公式 (3) 乘以 W_V,得到的結果如下:

這個公式就是 Transformer 的注意力機制。

Transformer 和 BERT 模型分析

Transformer 和 BERT 模型的運算類別

通過對注意力機制的理論分析,研究者提出了以下三種固定點:a)如果模式 x_i 沒有實現良好的分離,那麼迭代轉向靠近向量算數平均值的固定點,即全局固定點;b)如果模式彼此之間實現良好的分離,則迭代靠近模式。如果初始ξ類似於模式 x_i,則它將收斂至接近 x_i 的向量,p 也將收斂至靠近 e_i 的向量,研究者稱之為靠近單個模式的固定點;c)如果一些向量彼此之間類似並與其他所有向量實現良好的分離,則類似向量之間存在著所謂的亞穩態。開始時靠近亞穩態的迭代收斂至這個亞穩態。

研究者觀察到,Transformer 和 BERT 模型都擁有包含以上三種固定點的注意力頭,具體如下圖 2 所示:

從上圖 2 可以看到,較低層中的很多注意力頭在 class (I)中運行。

較低層中的注意力頭執行平均運算

如下圖 3d 所示,困惑度是根據改動層的數量繪製的(第一層的困惑度最低)。紅線表示初始模型的困惑度。研究者發現,較低層中性能受影響的程度低於較高層,並且在第一層幾乎不受影響。這表明,第一層的注意力頭可以被基於平均運算的非注意力頭所取代。

基於這些分析,研究者用高斯權重替換了第一層的注意力頭,其中高斯函數的均值和方差可以學得。所以,他們得到了一個位置高斯權重平均方案,其中每個 token 僅有兩個參數,而沒有注意力頭。

此外,注意力頭總是執行相同的平均運算,而與輸入無關。研究者採用的高斯權重類似於隨機合成器頭(random synthesizer head),其中注意力權重可以直接學得。

後幾層的注意力頭在中等亞穩態下運行,而且看起來對於 BERT 非常重要

如上圖 2 所示,研究者發現後幾層(第 10、11 和 12 層)中的注意力頭主要在 class III 狀態下運行。

為了研究這些層,研究者像以往一樣以平均值運算替換注意力頭。與前幾層和中間層執行相同的操作相比,模型的性能下降要明顯得多,具體如上圖 3d 所示。

在更新到大約 9000 次時,損失函數曲線出現劇烈下滑(如上圖 3a 藍線所示),這與注意力頭轉向其他類是一致的。相比之下,後幾層的注意力頭在下降之後依在學習(如上圖 3c 所示),並且更靠近 class (III)。

最後,層歸一化與 modern Hopfield 網絡中最重要參數的調整高度相關。研究者將β認定為固定點以及注意力頭運算模式的一個關鍵參數。

Hopfield 網絡由β、M(最大模式範數)、m_max(類似模式的傳播)和 ‖m_x‖(類似模式的中心)共同決定。β的較低值誘導全局平均值和更高的β亞穩態值。調整β或 M 等同於調整層歸一化的(逆)增益參數。所以,層歸一化控制了 Hopfield 網絡最重要的幾個參數:β、M、m_max 和 ‖m_x‖。

實驗

在實驗部分,研究者證實在免疫組庫分類和大規模多實例學習中,modern Hopfield 網絡可以被視為類似於 Transformer 的注意力機制。原文中定理 3 表明,modern Hopfield 網絡具有指數級存儲能力,從而可以解決免疫庫分類等大規模多實例學習問題。研究者通過大規模對比研究證實了 modern Hopfield 網絡的有效性。

此外,研究者還提供了一個新 Hopfield 層的 PyTorch 實現,從而可以將 Hopfield 網絡作為一種新穎的記憶概念加入到深度學習架構中。新的 Hopfield 層能夠關聯兩個向量集合。這種通用的功能性可以實現類似於 Transformer 的自注意力、編碼器 - 解碼器注意力、時序預測(可能使用位置編碼)、序列分析、多實例學習、點集學習、基於關聯的數據源組合、記憶構建以及運算求平均值和池化等等。

具體來說,新 Hopfield 層能夠輕易地作為池化層(最大池化或平均池化)、排列等變層、GRU&LSTM 層以及注意力層等現有層的 plug-in 替代。新 Hopfield 層基於連續狀態的 modern Hopfield 網絡,這些網絡具有極強的存儲能力以及一次更新即可收斂的能力。

參考內容:

https://www.zdnet.com/article/high-energy-facebooks-ai-guru-lecun-imagines-ais-next-frontier/

相關焦點

  • 電視劇《我在北京等你》插曲 找到你You’re All I Need完整歌詞介紹
    編曲製作:sususu  馬伯騫:  每天  高樓大廈從我眼前閃過  能否  真正獲得自我  如何在這concrete jungle當中閃爍  時光從不等待青春  就算站在空曠廣場中央未必找到年輕時的靈魂  我渴望時間停頓  在那一刻 在人群中 注意到你
  • 泰勒you need to calm down歌詞完整版 中文英文歌詞翻譯對照版
    泰勒斯威夫特新歌you need to calm down發布,不過不少網友不知道you need to calm down歌詞什麼意思?you need to calm down歌詞是什麼?
  • 是listen to you嗎?
    listen to youIf you listen to someone, you do what they advise you to do, or you believe them.如果你listen to 某個人,那麼就是說你會做那個人建議你做的事情,或者表示你相信那個人。
  • Rise again after you fall, you need to get out
    If you are struggling, please work harder and do better.If you are complaining, please stop, complaint will make your life worse.Everything in the past is history.
  • 中考英語解析Unit14 I remember meeting all of you in Grade 7
    ---因為它總是讓我想起溫暖而陽光明媚的一天。remind sb of sth讓某人想起某事,所以選C。2. Cross the road carefully, ___ you』ll keep yourself safe.Thank you.
  • I'm all ears是什麼意思呢?
    I'm all ears是什麼意思呢?用英語說英語I'm all ears,做得到嗎?不要一問到英語「I'm all ears是什麼意思呢?」就理解為問:中文什麼意思呢?你這樣學英語只會「得到」一句中文。
  • 適合一個人看的句子,唯美治癒,說出了很多人的無奈
    二、我希望你能迷失在那些讓你覺得有活力的事物中。I hope you get lost in all the things that make you feel alive.你可能會從不同的角度看問題。你可能不再愛同一個人了,這沒關係。人改變。生活會改變,感覺會改變,有時你也必須改變。
  • 「中考加油」need的短語,到底是need to do還是need doing呢?
    我是白話英語朱老師——聽白話講英語,讓英語學習不再可怕!上期我們講了must開頭的一般疑問句的答語,相信很多小夥伴已經對must開頭的一般疑問句的答語駕輕就熟了,那麼今天我們一起來討論下中考重要知識點need的相關用法吧。OK!先看兩個例子吧!
  • 暖心文案|別擔心,只要你需要,我一直都在
    別擔心,只要你需要,我一直都在。Don't worry, I'll be there for you as long as you need me.你難過的時候,我會在,你開心的時候,我也會在,只要你需要的時候,我就會一直在。
  • 抖音i love you baby是什麼歌 Can't Take My Eyes Off You歌詞
    你好得讓人難以置信  Can't take my eyes off you.  不能不看你(意思是總想看著你)  You'd be like heaven to touch.  你就像天堂一樣難以觸及  I wanna hold you so much.  我多想抱著你.
  • 網易雲熱評文案|當我靠近你的時候,希望你也在靠近我
    當我靠近你的時候,希望你也在靠近我。When I come near you, I hope you are also near me.當我在努力靠近你的時候,我希望你在努力靠近我,不需要太多人打擾,然後慢慢成為我生命中最重要的時刻。
  • a friend in need is a friend indeed 患難見真情
    人生苦短,能得到幾個知己是非常幸福的事情,a friend in need is a friend indeed 意為「患難見真情」,它表示:indicate a person who helps at the time of a requirement is a true friend表明在需要時提供幫助的人是才是真正的朋友used to say when
  • 實用口語:回答「Thank You"的幾種說法
    Saying thank you is good manners. That’s not up for debate.But we do need to talk about the way to respond when beingthanked. You need to say something, right?
  • needn't 還是don't need?總有人會犯錯,原因是什麼
    還需要我多說嗎?Need I remind you that it's Monday?需要我提醒你今天是星期一嗎?(疑問句中,need大多用實義動詞句型,need提前到主語前為數不多)You needn't stay in the office all day.你不必整天呆在辦公室裡。
  • 「all in」別理解成「都在裡面」!
    大家好,今天我們分享一個非常有用且地道的表達——all in, 這個短語的含義不是指「都在裡面」,其正確的含義是:all in 枯疲力竭的,疲乏到極點的After the marathon, most