Reformer: The Efficient Transformer③(Reversible Transformer以降)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #41
言語処理へのDeepLearningの導入をご紹介するにあたって、#3〜#8においては、Transformer[2017]やBERT[2018]について、#9~#10ではXLNet[2019]について、#11~#12ではTransformer-XL[2019]について、#13~#17ではRoBERTa[2019]について、#18~#20ではWord2Vec[2013]について、#21~#24ではALBERT[2019]について、#26〜#30ではT5[2019]について、#31〜#32ではERNIEについて、#33〜#34ではELMo[2018]について、#35〜#36ではself-attention、#37〜#38ではDecomposable Attentionについて取り扱ってきました。
ALBERT③(The Elements of ALBERT)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #23 - Liberal Art’s diary
#39以降ではTransformerの効率化について試みた研究であるReformerを確認するにあたって"Reformer: The Efficient Transformer"について取り扱っています。
[2001.04451] Reformer: The Efficient Transformer
#39ではAbstractとIntroduction、#40ではSection2のLocality-Sensitive Hashing Attentionについて取り扱いました。
#41ではSection3のReversible Transformer以降の内容の確認を行います。
以下目次になります。
1. Reversible Transformer(Section3)
2. Related Work(Section4)
3. Experiments(Section5)
4. まとめ
1. Reversible Transformer(Section3)
1節ではSection3のReversible Transformerについて取り扱います。
第一パラグラフでは、の行列を考える際にSection2のLocality-Sensitive Hashing Attentionによってからのオーダーで考えればよくなった一方で、や自体がのサイズを持ち、隠れ層の数を意味するは大規模のTransformerでは4K(4,000)ほどになることから、レイヤー数がほどのケースで考えるとまたメモリの問題が生じてしまいます。これを防ぐためにSection3ではReversible Residual Network[2017]の考えを用いたReversible Transformerを紹介しています。
[1707.04585] The Reversible Residual Network: Backpropagation Without Storing Activations
第二パラグラフではRevNets(Reversible Residual Network)について簡単に紹介されています。
上記はRevNetsのFigure2ですが、RevNetsは通常のResNetがとの対応についてという計算を行うのに対し、との対応についてとの計算を行うように計算を行います。
第三パラグラフではRevNetsの考え方をTransformerに導入したReversible Transformerについて記述されています。第二パラグラフのをAttentionの処理、をFeedForwardの処理と見立てて学習を行うとされています。この考えに基づくことで次のレイヤーの情報のみを用いて学習を行うことができるとされており、を考慮しなくてよくなり、メモリ効率を上げることができるとされています。
第四、第五パラグラフでは計算をチャンク(ここではレイヤー単位の意味だと思われる)としてみなすことなどについて言及されています。
2. Related Work(Section4)
Related Workでは関連研究についてまとめられています。
上記のDelvin et al.,2018が、BERTの研究になっています。関連で諸々の研究が紹介されており、それに関連してメモリの使用や計算コストを下げることの重要性について示唆されています。
メモリの使用や計算コストを下げるにあたってReformerで導入したLocality-sensitive hashingへの言及と、これまでのTransformer関連のモデルは比較的大きなメモリを使うなどによる力技が多かったことについて紹介されています。
3. Experiments(Section5)
諸々の実験結果についてまとめられています。
Figure3では左側でQueryとKeyの行列の共有(Sharing Query-Key Space)について、右側ではSection3で取り扱った反転性(reversibility)について元々のTransformerのモデルと比較が行われています。精度面でのパフォーマンスはそれほど大きな影響がないので、どちらもメモリの効率や計算コストを下げつつ精度に影響がないことで導入すると良いように解釈できる結果が出たと考えて良さそうです。
Figure4ではLSH attentionのパフォーマンスを計測するにあたって、通常のattention(full attention)とLSH attentionの比較が行われています。でほぼ通常のattentionと同様の結果が出ているとされています。Figure5は左側はLayerの数とスコアの関係、右側は系列の長さと処理スピードの関係のグラフとなっています。
4. まとめ
#41ではReformerの論文のSection3のReversible Transformer以降の内容について取り扱いました。Transformerの効率化を試みた論文で、非常に興味深い内容になっていたという印象を受けました。
#42以降では条件付きのTransformerを用いることで、生成の制御を行うCTRL(Conditional TRansformer Language Model)についての下記の論文を確認していきます。
[1909.05858] CTRL: A Conditional Transformer Language Model for Controllable Generation