除了生成文本,還可以補全圖像、生成音頻序列的稀疏 Transformers

AI 科技評論按:OpenAI 設計了一種新的 Transformer 模型:稀疏 Transformer(Sparse Transformer),它在序列預測任務中取得了新的表現記錄,不論是預測文本、像素還是聲音序列。它在注意力機制的基礎上做了算法改進,可以在比以前長 30 倍的序列中提取模式。

AI 科研中現存挑戰之一就是對複雜數據中的長距離、細微的互相關聯性做建模,比如圖像、視頻、音頻序列內部存在的關聯性。原始的 Transformer 中的自我注意力機制有著 O(N2) 的計算複雜度,OpenAI 新提出的稀疏 Transformer 經過重新設計,把計算複雜度降低到了 O(N√N),以及加入了其它一些改進,讓它可以處理更長的序列甚至更復雜的數據類型。在此之前,處理這些數據的模型要麼是針對單獨一種數據類型專門設計的,要麼很難處理幾千個元素以及更長的序列。而 OpenAI 的稀疏 Transformer 可以用數百層的模型處理上萬個元素長的序列額,並且在多個不同的任務中取得最佳表現。雷鋒網 AI 科技評論根據 OpenAI 技術博客介紹如下。

深層注意力

在 Transformer 模型中,每一個輸出元素都與每一個輸入元素相連接,每個連接的權重是根據不同的狀況動態計算的,這個過程就叫做注意力。相比連接方式固定的做法,研究人員們相信這樣能夠讓 Transformer 更靈活,但代價就是在實際使用中它需要為每一層、每一個注意力頭建立一個 N x N 大小的注意力矩陣,當輸入圖像、音頻波形等含有大量元素的序列時會帶來大量的內存開銷。

干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

一個具有 64 層、4 個注意力頭的深度 Transformer 模型的注意力內存消耗。作為參考,用於深度學習的 GPU 的顯存大小一般在 12GB 到 32GB 的水平。

應對這個問題的一種做法是在反向傳播中根據建立的檢查點重新計算注意力矩陣,這是深度學習中的一種常見做法,可以用消耗更多計算為代價減小內存的使用。對 Transformer 模型中的注意力矩陣使用這種做法之後,它的效果是讓最大的內存消耗不再和網絡的層數相關,就讓訓練比以往深得多的模型變得可能。在實際嘗試中,OpenAI 的研究人員們訓練了最深達 128 層的 Transformer,也在 CIFAR-10 之類的測試任務中擊敗了較淺的模型。

為了訓練更深的模型,OpenAI 的研究人員們還對 Transformer 模型中的運算順序做了多種調整、修改了最初的注意力機制。詳細介紹可以參見論文原文。

稀疏注意力

即便已經有了節省內存的方法,面對很長的序列輸入時把每個注意力矩陣都計算出來仍然是不實際的。OpenAI 轉而使用稀疏的注意力模式,也就是說,每個輸出位置在計算時只考慮一部分輸入位置的權重。當取的這一部分相比於全部輸入位置很小的時候(比如一共 N 個輸入元素,取 √N 個),即便對於很長的序列也是可以計算注意力的了,計算複雜度也就響應降低為 O(N√N),不再是完全計算時的 O(N

2)。

這種做法的可行性需要加以評估。OpenAI 的研究人員們首先對原本的深度 Transformer 模型學到的注意力模式進行了可視化,他們發現許多樣本中都體現出了可解釋的、結構化的稀疏模式。在下面的四張圖中,用高亮顯示出了預測圖像中的下一個像素時有哪些已有的像素是被注意力頭所使用的。當用到的輸入像素數量不多而且表現出高度的規律性的時候,就可以認為網絡中的這一層是可以做稀疏化改造的。圖中展示的是 128 層的網絡模型在 CIFAR-10 數據集中圖像上運行時的分析結果。

<table><tbody>
乾貨 | 除了生成文本,還可以補全圖像、生成音頻序列的稀疏 Transformers
乾貨 | 除了生成文本,還可以補全圖像、生成音頻序列的稀疏 Transformers

第 19 層

第 20 層

/<tbody>/<table>

網絡中的某些層學到的是單個維度上注意力模式。19 層關注的是每個橫排,20 層關注的是每個豎列,可以看做是完整的注意力操作的分解。

<table><tbody>
乾貨 | 除了生成文本,還可以補全圖像、生成音頻序列的稀疏 Transformers
乾貨 | 除了生成文本,還可以補全圖像、生成音頻序列的稀疏 Transformers

第 6 層

第 36 層

/<tbody>/<table>

某些層學習到的是使用某些空間位置,在不同的輸入數據或者時間步驟中這些位置都是相似的。還有一些其他的層學到的訪問模式會隨著數據的不同而變化。

雖然許多層都確實表現出了稀疏結構,不過也有一些層明顯表現出了可以覆蓋整個圖像範圍的動態注意力模式。為了仍然在網絡中保留學到這種模式的能力,OpenAI 的研究人員們實現了一種注意力矩陣的二維分解,網絡通過兩步稀疏注意力操作就仍然可以訪問圖像中的所有位置。

干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers
干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

其中的第一種,條狀注意力,基本就和前面例子中關注單行、單列一樣;第二種,固定注意力,關注的是某個固定的列以及其中最後一個列元素之後的元素,研究人員們發現這種模式對於無法用前一種模式覆蓋的數據結構(比如文本)非常有用。更多的細節可以參見論文原文。

實驗結果

稀疏 Transformers 模型在 CIFAR-10、Enwik8、Imagenet 64 數據集上的密集估計任務中取得了目前的最好成績。

干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers
干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

對於稀疏 Transformer 模型的參數,W 表示網絡寬度、L 表示網絡層數、H 表示注意力頭的數量。

OpenAI 的研究人員們還發現稀疏注意力不僅比完整的注意力快多了,損失也要更低(具體對比見論文)。這表明他們的稀疏注意力設計可能附帶了有好處的先驗偏倚,或者是密集註意力自身隱含著一定的優化問題。

用稀疏注意力生成圖像

使用稀疏注意力的 Transformer 模型在測試中似乎體現出了全局結構的概念,這在圖像補全任務中可以進行量化測量。下面展示了對於 64x64 尺寸 ImageNet 圖像的補全演示。

干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

待補全圖像
干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

補全結果
干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

真實圖像

他們還生成了完全無限制的圖像,對應的未調節 softmax 溫度為 1。模型是使用最大似然作為目標訓練的,這種方法可以覆蓋數據的所有模式(包括訓練數據中未出現甚至不存在的模式),而不是某一小部分數據中繼續增加保真度而已。取未調節的溫度對模型進行採樣,得出的圖像可以看作是「模型認為這樣的圖像在世界上是存在的」。當人類觀察的時候,自然會覺得有一些樣本很奇怪。

干货 | 除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

模型在無條件限制下生成的樣本

生成原始音頻波形

只要簡單地改變位置嵌入,稀疏 Transformer 可以用來生成音頻波形。這樣可以讓深度學習模型輕鬆地在不同的數據類型上工作,OpenAI 的研究人員們認為這減小了之前的研究中處理不同類型數據時分別引入的不同先驗偏倚,對科研會有所幫助。

他們在古典音樂片段(鋼琴曲)上訓練了模型,然後通過稀疏注意力生成長度為 65000 的音頻波形序列,對應的播放時長大約為 5 秒鐘。他們把多組生成結果拼成了三個音頻文件,試聽可以訪問 https://soundcloud.com/openai_audio/sample-set-1。雷鋒網 AI 科技評論試聽後的評價是,有些片段較為激烈雜亂,也有一些較為簡單安靜,能感覺到細微的節奏感(輕重節拍變換);總的來說,能輕鬆辨別出是鋼琴演奏,但是旋律比較難以欣賞。

現階段的不足以及未來方向

論文中設計的稀疏注意力模式僅僅是對高效地建模長序列的新方法的非常初步的研究。作者們認為探究不同的稀疏模式以及它們的組合是有用的研究,而且對於下一代神經網絡架構的發展也可以起到尤其有幫助的探路作用。

即便作者們提出的方法已經帶來了明顯的改進,非常高分辨率的圖像或者視頻的自迴歸序列生成仍然是不可行的。論文中提出的注意力機制的優化方法可以成為多尺度方法之類的高維數據建模方法的有效補充。

論文原文見:

https://arxiv.org/abs/1904.10509

GitHub 地址:

https://github.com/openai/sparse_attention

via openai.com

點擊閱讀原文查看 TensorFlow系列專題(十一):RNN的應用及注意力模型


分享到:


相關文章: