Reformer: The Efficient Transformer③(Reversible Transformer以降)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #41

f:id:lib-arts:20200131184442p:plain

言語処理への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について取り扱ってきました。

XLNet②(事前学習におけるAutoRegressiveとPermutation)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #10 - Liberal Art’s diary

RoBERTa(論文の詳細④ RoBERTa、Related Work、Conclusion)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #17 - Liberal Art’s diary

ALBERT③(The Elements of ALBERT)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #23 - Liberal Art’s diary

T5(Text-toText Transfer Transformer)③(Section2_Setup)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #28 - 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について取り扱いました。

Reformer: The Efficient Transformer②(Locality-Sensitive Hashing Attention)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #40 - Liberal Art’s diary

#41ではSection3のReversible Transformer以降の内容の確認を行います。
以下目次になります。
1. Reversible Transformer(Section3)
2. Related Work(Section4)
3. Experiments(Section5)
4. まとめ


1. Reversible Transformer(Section3)
1節ではSection3のReversible Transformerについて取り扱います。

f:id:lib-arts:20200203162556p:plain

f:id:lib-arts:20200203162628p:plain

第一パラグラフでは、QK^{T}の行列を考える際にSection2のLocality-Sensitive Hashing Attentionによってlength^2からlengthのオーダーで考えればよくなった一方で、QK自体がlength×d_{ff}のサイズを持ち、隠れ層の数を意味するd_{ff}は大規模のTransformerでは4K(4,000)ほどになることから、レイヤー数がn_{l}=16ほどのケースで考えるとまたメモリの問題が生じてしまいます。これを防ぐためにSection3ではReversible Residual Network[2017]の考えを用いたReversible Transformerを紹介しています。

[1707.04585] The Reversible Residual Network: Backpropagation Without Storing Activations

f:id:lib-arts:20200203163835p:plain

第二パラグラフではRevNets(Reversible Residual Network)について簡単に紹介されています。

f:id:lib-arts:20200203164050p:plain

上記はRevNetsのFigure2ですが、RevNetsは通常のResNetがxyの対応についてy=x+F(x)という計算を行うのに対し、(x_{1},x_{2})(y_{1},y_{2})の対応についてy_{1}=x_{1}+F(x_{2})y_{2}=x_{2}+G(y_{1})の計算を行うように計算を行います。

f:id:lib-arts:20200203163916p:plain

第三パラグラフではRevNetsの考え方をTransformerに導入したReversible Transformerについて記述されています。第二パラグラフのFをAttentionの処理、GをFeedForwardの処理と見立てて学習を行うとされています。この考えに基づくことで次のレイヤーの情報のみを用いて学習を行うことができるとされており、n_{l}を考慮しなくてよくなり、メモリ効率を上げることができるとされています。

f:id:lib-arts:20200203164021p:plain

第四、第五パラグラフでは計算をチャンク(ここではレイヤー単位の意味だと思われる)としてみなすことなどについて言及されています。


2. Related Work(Section4)
Related Workでは関連研究についてまとめられています。

f:id:lib-arts:20200203173355p:plain

f:id:lib-arts:20200203173410p:plain

上記のDelvin et al.,2018が、BERTの研究になっています。関連で諸々の研究が紹介されており、それに関連してメモリの使用や計算コストを下げることの重要性について示唆されています。

f:id:lib-arts:20200203173709p:plain

メモリの使用や計算コストを下げるにあたってReformerで導入したLocality-sensitive hashingへの言及と、これまでのTransformer関連のモデルは比較的大きなメモリを使うなどによる力技が多かったことについて紹介されています。


3. Experiments(Section5)
諸々の実験結果についてまとめられています。

f:id:lib-arts:20200203174712p:plain

Figure3では左側でQueryとKeyの行列の共有(Sharing Query-Key Space)について、右側ではSection3で取り扱った反転性(reversibility)について元々のTransformerのモデルと比較が行われています。精度面でのパフォーマンスはそれほど大きな影響がないので、どちらもメモリの効率や計算コストを下げつつ精度に影響がないことで導入すると良いように解釈できる結果が出たと考えて良さそうです。

f:id:lib-arts:20200203174731p:plain

f:id:lib-arts:20200203174746p:plain

Figure4ではLSH attentionのパフォーマンスを計測するにあたって、通常のattention(full attention)とLSH attentionの比較が行われています。n_{round}=8でほぼ通常の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