Slide 1

Slide 1 text

cvpaper.challenge V&L group 発表者: 品川(前半) 山本(後半) 1 http://xpaperchallenge.org/cv Learning Transformers in 40 Minutes

Slide 2

Slide 2 text

Vision and Language group @ cvpaper.challenge 2 研究機関横断で全国各地から研究者が集まって 研究を進めているコミュニティです 実はVision&Languageのグループもあります 片岡(産総研) 本発表はこのグループが主導 で行っているメタサーベイ企画 の一部です 鈴木(産総研) 品川(NAIST)山本(早稲田大) 就活中 アドバイザー陣とHQ

Slide 3

Slide 3 text

発表の流れ 3 今回はメタサーベイでまとめているTransformerに ついての概要や知見について話します 前半(品川) 1.Transformerの躍進(導入的な話題) 2.Transformer解体新書(モデルの概要説明) 3.Transformerの学習と推論(学習の枠組み) 後半(山本) • Transformerを巡るこれまでの歴史・動向・課題 (メタサーベイで得られている知見の紹介) • 使えるツールの紹介

Slide 4

Slide 4 text

1. Transformerの躍進 4

Slide 5

Slide 5 text

いま、Transformerがアツい 5 Transformerの登場以降 1 Transformerの 躍進 DALL-E (https://openai.com/blog/dall-e/) 大規模かつ多様なデータでの学習が盛んに 人間と一見遜色ない言語生成・画像生成の報告も GPT-3の検索結果

Slide 6

Slide 6 text

CVにもTransformerの波が・・・ 6 1 Transformerの 躍進 2020/12/23 A Survey on Visual Transformer (2020) https://arxiv.org/abs/2012.12556 2021/01/04 Transformers in Vision: A Survey https://arxiv.org/abs/2101.01169 2021/03/06 Perspectives and Prospects on Transformer Architecture for Cross-Modal Tasks with Language and Vision https://arxiv.org/abs/2103.04037 Computer Vision界隈でもTransformerが流行りだしてる サーベイ論文もここ最近たて続けに出てきた 知っとかないといけない・・・でも分量が多い・・・ 詳しく調べて勘所を提供したい←我々の動機

Slide 7

Slide 7 text

Transformerは何を可能にしたのか? 7 1 Transformer の躍進 NLP界隈の悩み:時系列をRNNで扱うのは時間がかかる RNN 𝑥0 embedding RNN 𝑥1 embedding RNN 𝑥2 embedding ℎ0 ℎ1 ℎ2 逐次的に更新される隠れ層ℎ𝑡−1 が入力なので遅い 並列化して一度に処理できないか・・・? ℎ0 ℎ1

Slide 8

Slide 8 text

Transformerの登場 8 1 Transformer の躍進 Self-attentionで時系列データを一度に処理(学習時) RNN 𝑥0 embedding RNN 𝑥1 embedding RNN 𝑥2 embedding ℎ0 ℎ1 ℎ2 学習の高速化により大規模データでの学習が可能に →NLP分野での大規模学習時代の到来 ℎ0 ℎ1 Transformer block

Slide 9

Slide 9 text

CV界隈にとっての嬉しさ 9 1 Transformer の躍進 CNNは局所結合を重ねた構造 大域的な関係性を見るのは苦手 Self-attentionで大域的な関係性も見られるようになった Transformer block Transformerは領域同士の 関係性を大域的に見ることが可能

Slide 10

Slide 10 text

Self-attentionの適用事例 10 1 Transformer の躍進 Self-Attention Generative Adversarial Networks [Zhang+, 2018] • GANによる画像生成にSelf-attentionを適用した例 • 点が示す領域をクエリとしたとき、画像のどの領域が強く対応 しているかを可視化 • 各クエリ点が近くの領域や遠くの領域を見ていることがわかる

Slide 11

Slide 11 text

Transformerは最強? 11 1 Transformer の躍進 Transformerの強み • RNNより処理が速い→大規模学習向き • CNNより大域な特徴も見られる→性能が高くなりそう Transformerの弱み? • ぶっちゃけよくわからんことが多い点 • ゆえに世界中がいま分析や応用に躍起 この構造がベストなのか? 精度を上げるには学習にどういう工夫がいるのか? データセットのサイズはどのくらいの規模が必要か? これらの疑問を解消するため、 我々はArXivの奥地へと進んだ・・・

Slide 12

Slide 12 text

2. Transformer解体新書 12

Slide 13

Slide 13 text

親の顔より見たかもしれない図 13 2 Transformer 解体新書

Slide 14

Slide 14 text

基本構成はそんなに難しくない 14 2 Transformer 解体新書 Transformer block Transformer block Transformer block classification head positional encoding embedding 入力 入力をトークンごとにベクトル化 Self-attentionを中心とした メインの処理 分類の予測を行う 位置情報の付与

Slide 15

Slide 15 text

基本構成はそんなに難しくない 15 2 Transformer 解体新書 Transformer block Transformer block Transformer block classification head positional encoding embedding 入力 入力をトークンごとにベクトル化 位置情報の付与 Self-attentionを中心とした メインの処理 分類の予測を行う

Slide 16

Slide 16 text

positional encoding 16 2 Transformer 解体新書 self-attentionには各トークンの位置を考慮する機構がない →明示的に位置embeddingを与えることで性能が向上 大きく分けると3種類? a) sin関数とcos関数で明示的に与える(学習不要) b) 学習可能なパラメータとして適当に初期化して学習する c) 位相部分のみを学習可能なパラメータとする positional encoding 𝑓 𝒙 = 𝒙 + 𝒑𝒐𝒔𝒆𝒎𝒃 入力 𝒙 出力 𝑓 𝒙 単純に足し合わせることが多い

Slide 17

Slide 17 text

positional encoding 17 2 Transformer 解体新書 a) sin関数とcos関数で明示的に与える(学習不要) • Sinusoidal positional embeddings (SPEs) [Vaswani+, NIPS2017] • Transformerの元論文をはじめとしてよく使われている 𝑃𝐸 𝑝𝑜𝑠,2𝑖 = sin 𝑤𝑖 ⋅ 𝑝𝑜𝑠 = sin 1 100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙 ⋅ 𝑝𝑜𝑠 𝑃𝐸 𝑝𝑜𝑠,2𝑖+1 = cos 𝑤𝑖 ⋅ 𝑝𝑜𝑠 = sin 1 100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙 ⋅ 𝑝𝑜𝑠 𝑆𝑃𝐸 = 𝑃𝐸 𝑝𝑜𝑠,0 , 𝑃𝐸 𝑝𝑜𝑠,1 , 𝑃𝐸 𝑝𝑜𝑠,2 , 𝑃𝐸 𝑝𝑜𝑠,3 , ⋯ , 𝑃𝐸 𝑝𝑜𝑠,2𝑛 , 𝑃𝐸 𝑝𝑜𝑠,2𝑛+1 = sin 𝑤0 𝑡 , cos 𝑤0 𝑡 , sin 𝑤1 𝑡 , cos 𝑤1 𝑡 , ⋯ , sin 𝑤𝑛 𝑡 , cos 𝑤𝑛 𝑡 つまり、SPEは𝑤𝑖 ごとにsinとcosの組を並べて得られるベクトル

Slide 18

Slide 18 text

SPEsの気持ちは時計型embedding? 18 2 Transformer 解体新書 from:https://github.com/jalammar/jalammar.github.io/blob/master/noteboo kes/transformer/transformer_positional_encoding_graph.ipynb sin 𝑤0 𝑡 , cos 𝑤0 𝑡 長針 周期短い 短針 周期長い sin 𝑤𝑛 𝑡 , cos 𝑤𝑛 𝑡 ⋯ sinとcosの組を時計の針とみると、位置𝑡は時刻で𝑤𝑖 は針の動く速さ 次元を2nとすると、sinとcosはn組→n個の針がある時計 “私” “は” “元気” “です” “。”

Slide 19

Slide 19 text

位置embeddingは足すべきか? 19 2 Transformer 解体新書 from:https://github.com/jalammar/jalammar.github.io/blob/master/noteboo kes/transformer/transformer_positional_encoding_graph.ipynb 位置embeddingは入力に足す実装が多い best practiceは不明。concatする方が良い可能性もある Sinusoidal positional embeddingsの場合 • ベクトルの最初の数十次元が位置情報に よって汚染される(学習済みembedding を使うときは注意が必要?) • これはソフトにconcatしているともいえる Learnable positional embeddingsの場合 • すべての次元が位置情報によって汚染さ れ得る • が、良い性能が出ているのでたぶん学習 でうまく住みわけがなされている模様

Slide 20

Slide 20 text

positional encoding 20 2 Transformer 解体新書 b) 学習可能なパラメータとして適当に初期化して学習する • Learnable positional embeddings [Gehring+, ICML2017] • BERTやGPT、ViTなどよく使われている https://huggingface.co/transformers/_modules/transfo rmers/models/vit/modeling_vit.html#ViTModel 初期化の方法は様々 HuggingfaceのViTだとゼ ロベクトルで初期化 他にも一様分布や 正規分布などの場合がある (実装による)

Slide 21

Slide 21 text

positional encoding 21 2 Transformer 解体新書 c) SPEsの𝑤𝑖 部分を学習可能なパラメータとする • Learnable sinusoidal positional embeddings [Wang+, ICLR2021] • Sinusoidalの形だと2つの位置の内積がcosの和で表される 𝑃𝐸 𝑝𝑜𝑠,2𝑖 = sin 𝑤𝑖 ⋅ 𝑝𝑜𝑠 𝑃𝐸 𝑝𝑜𝑠,2𝑖+1 = cos 𝑤𝑖 ⋅ 𝑝𝑜𝑠 𝑃𝐸(𝑝1) ⋅ 𝑃𝐸 𝑝2 = sin 𝑤1 ⋅ 𝑝1 ⋅ sin 𝑤1 ⋅ 𝑝2 + cos 𝑤1 ⋅ 𝑝1 ⋅ cos 𝑤1 ⋅ 𝑝2 ⋯ sin 𝑤𝑛 ⋅ 𝑝1 ⋅ sin 𝑤𝑛 ⋅ 𝑝2 + cos 𝑤𝑛 ⋅ 𝑝1 ⋅ cos 𝑤𝑛 ⋅ 𝑝2 = Σ𝑖 𝑛 cos 𝑤𝑖 𝑝1 − 𝑝2 距離が遠いほど類似度が小さい(単調性)が成り立つのは 𝑤𝑖 の大きさによる→学習で求めることを提案

Slide 22

Slide 22 text

Transformer blockについて 22 2 Transformer 解体新書 Transformer block Transformer block Transformer block classification head positional encoding embedding 入力 入力をトークンごとにベクトル化 Self-attentionを中心とした メインの処理 分類の予測を行う 位置情報の付与

Slide 23

Slide 23 text

Transformer block 23 2 Transformer 解体新書 Transformer block 学習方法やタスクに非依存のTransfomerの基本処理単位 ෝ 𝒙 = 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑒𝑟 𝒙 ベクトルの配列 𝒙 (トークン数×次元)を入力として 同じサイズの出力ෝ 𝒙を返す

Slide 24

Slide 24 text

Transformerブロックの中身 24 2 Transformer 解体新書 Transformerブロックの中心的要素はたった3要素 1. Multi-head attention (次元分割型Self-attention) 2. 残差接続(Residual connection) 3. Layer Normalizationによる正規化 (あとはFeedforwardとドロップアウトがある) ややこしい図(前述)でいうところのこの部分

Slide 25

Slide 25 text

Self-attention 25 2 Transformer 解体新書 辞書型の非線形処理機構 周りの情報を取り入れて新しいベクトルを作る self-attention ෝ 𝒙 = 𝒔𝒆𝒍𝒇𝒂𝒕𝒕𝒆𝒏𝒕𝒊𝒐𝒏 𝒙

Slide 26

Slide 26 text

Self-attention 26 2 Transformer 解体新書 𝑊𝑄 𝑊𝐾 𝑊𝑉 𝑛, 𝑑 + = ⋅ このクエリについて みると・・・ • 他のクエリについても同様に求められる • 内積はノルム正規化なしなので注意 • 次元の大きさに応じてスケーリング 𝑑して類似度的に扱っている • 正規化して正確にcos類似度にしても良いはずだが速度優先? 𝑛, 𝑑 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑄 ⋅ 𝐾𝑇 𝑑 ⋅ 𝑉 ベースの料理(Query)に関係する周りの料理を選び(Key) その材料(Value)で新しい料理(ベクトル)をつくる attention map

Slide 27

Slide 27 text

Multi-head attentionへの拡張 27 2 Transformer 解体新書 次元分割型Self-attention(Multi-head attention) = ⋅ Self-attentionの内積はベクトルの各要素にわたって大域 的な類似度を取っている 高次元にすると、 次元ごとの小さな特徴が無視されやすい ⋅ ⋅ ⋅ attention map • 小さなベクトルに切り分け計算 • トークン間の多様な類似性を 発見できる • 多様性を上げる損失関数を加 えると性能向上[Li+, EMNLP2018], [Huang+, EMNLP2019]

Slide 28

Slide 28 text

残差接続(Residual connection) 28 2 Transformer 解体新書 • 入力からの差分を学習する • 入力からの差分の学習が不要の場合 sublayer部分が0になるように学習が進む • 学習の安定化、性能向上に寄与 𝑅𝑒𝑠𝑖𝑑𝑢𝑎𝑙 𝑥, 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟 = 𝑥 + 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟(𝑥) 多層での学習性能を上げる工夫

Slide 29

Slide 29 text

Layer normalization 29 2 Transformer 解体新書 𝐿𝑎𝑦𝑒𝑟𝑛𝑜𝑟𝑚 𝑥 = 𝑥 − 𝐸 𝑥 𝑉𝑎𝑟 𝑥 + 𝜖 ∗ 𝛾 + 𝛽 入力系列をトークンごとに正規化する操作 𝑛, 𝑑 Layernorm Layernorm Layernorm Layernorm 𝑛, 𝑑 嬉しい特徴 Large batch訓練がbatch accumulationで安心してできる ※batch normalizationだと統計量が変わってしまう 𝛾, 𝛽は学習パラメータ

Slide 30

Slide 30 text

3. Transformerの学習と推論 30

Slide 31

Slide 31 text

NLPにおけるTransformerの類型 31 3 Transformerの学習 と推論 大きく分けて2種類のタイプがある • 【Seq2seq】 Attention is all you need [Vaswani+, NIPS2017] • 【BERT】 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding [Devlin+, ACL2019]

Slide 32

Slide 32 text

Seq2seq型 32 3 Transformerの学習 と推論 EncoderとDecoderの2種類のTransformerで構成 Encoder Decoder

Slide 33

Slide 33 text

Seq2seq型 33 3 Transformerの学習 と推論 EncoderとDecoderの2種類のTransformerで構成 Encoder情報はKey, Value情報としてDecoderへ Encoder Decoder Key Value

Slide 34

Slide 34 text

自己回帰型と非自己回帰型 34 3 Transformerの学習 と推論 自己回帰型のSeq2seq • 時系列を時々刻々と順番に予測していく • 訓練時に未来の系列がリークしないようにAttention mapにマスクする(−∞で置き換える)工夫が必要 −∞ −∞ −∞ −∞ −∞ −∞ 「私 は 元気 です」をデコーダで出力するように学習する場合 私 は 元気 です Query Key 「私」に対応するQueryは、未来 の情報である「は」「元気」「です」 のKeyを考慮しない (ちなみに推論時も同様にマスク されている)

Slide 35

Slide 35 text

非自己回帰型のSeq2seq 35 3 Transformerの学習 と推論 全系列を一度に予測する Levenshtein Transformer [Gu+, NeurIPS2019]が有名 トークン の消去 トークン用 穴の作成 穴埋め トークンの消去、トークン穴の作成、穴埋め の操作を通して全系列を段階的に編集する

Slide 36

Slide 36 text

BERT型 36 3 Transformerの学習 と推論 非自己回帰のDecoderに似た新しい言語モデルの枠組み 事前学習で以下の2つのタスクを行うことで色々なNLPタスクで効果 を発揮(V&LのモデルやViTもこの流れを汲んでいる) • Masked language modeling (MLM) • Next sentence prediction (NSP) BERT [CLS] [SEP] 文A 文B

Slide 37

Slide 37 text

Masked Langauge Modeling 37 3 Transformerの学習 と推論 系列の一部をマスクしてマスクした箇所を予測するタスク BERTでは15%を選択し、そのうち80%は[mask]トークンで置き換え、 10%はランダムなトークンで置き換え、10%はそのままにする (ViTでもpatch単位で同じことをしている) BERT [CLS] [SEP] 文A 文B 予測 予測 予測

Slide 38

Slide 38 text

Next sentence prediction 38 3 Transformerの学習 と推論 2つの文AとBが連続しているかを2値で予測するタスク (V&Lのモデルでは画像とテキストがマッチするかで使われている) BERT [CLS] [SEP] 文A 文B 連続/不連続 RoBERTa[Liu+, 2019]では性能向上に寄与しないとして排除されてる

Slide 39

Slide 39 text

Segment embeddingsの追加 39 3 Transformerの学習 と推論 どちらの文に所属しているかをより明示的に扱うためのembedding を追加で加算してembeddingを作る

Slide 40

Slide 40 text

ここまでのまとめ 40 前半はTransformerの概要についておさらいしました 前半(品川) 1.Transformerの躍進(導入的な話題) 2.Transformer解体新書(モデルの概要説明) 3.Transformerの学習と推論(学習の枠組み) ご質問があればSlackへお願いいたします。