Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Transformer / Vision and Languageの基礎

Transformer / Vision and Languageの基礎

Masanori Suganuma

October 08, 2022
Tweet

More Decks by Masanori Suganuma

Other Decks in Research

Transcript

  1. 5 Visual Question Answering(VQA)とは? Q. What does the man who

    sits have trouble doing? A. Walking [Schewenk+, A-OKVQA, 2022] VQAのベンチマークはいくつか存在し,もう少し⾼度な質問を含む ベンチマークもある(e.g. OK-VQA [Schewenk+, 2022])
  2. 7 Text-to-image generation “a shiba inu wearing a beret and

    black turtleneck” DALL-E 2 [Ramesh+, 2022] VQAだけでなく,最近はテキスト指⽰による画像⽣成でも⼤きな進展が
  3. • ペイント→写実画像⽣成 • インペインティング • 超解像 などにも応⽤でき,⾼性能 9 Latent Diffusion

    Model [Rombach+, CVPRʼ22] ペイントからの画像⽣成 インペインティング 超解像
  4. 14 Transformer [Vaswani+, NeurIPSʼ17] Encoder Decoder Encoder-Decoder 代表的な モデル GPT-1/2/3

    • 原著のTransformer • BART • T5 • テキスト分類 • 画像分類 代表的な タスク • BERT • Vision Transformer • テキスト分類 • ⾔語⽣成(e.g. 機械翻訳) • テキスト分類 • ⾔語⽣成(e.g. 機械翻訳)
  5. どのTransformerモデルにおいても,下記の基本素⼦から構成される • 単語・位置埋め込み(Word / Positional embedding) • 注意機構(Attention) • 層正規化(Layer

    normalization) • フィードフォワード層(FFN) • 残差結合(Residual connection) 15 Transformerの構成要素 Word/Position embedding Attention Layer norm FFN 𝑋 Layer norm × 𝐿
  6. 単語埋め込みにも様々な⽅法があるが,Transformerを使う上で最も⼀般的 なのが,単語埋め込み層 𝑊 ∈ ℝ'× ( を⽤いる⽅法 17 単語埋め込み I

    am a smart cat 𝒉! 𝒉"# 𝒉" 𝒉$#"%& 𝒉'"& 我々が扱う記号 ベクトル表現(𝑣 ∈ ℝ!) 単語埋め込み 1. 与えられた単語列を辞書に基づいて,単語ID列に変換する • I am a smart cat → 4 12 0 32 14 • 実装によっては,one-hotベクトルで表現する 2. 単語ID列に対して単語埋め込み層を適⽤して,単語ベクトルに変換 • 4 12 0 32 14 → ℎ! ℎ"# ℎ" ℎ$#"%& ℎ'"& • 𝒉 = 𝑊𝑋, 𝑋は単語ID列
  7. • PyTorchの単語埋め込み層(nn.Embedding) 𝑊 ∈ ℝ'× ( は単に単語埋め込みの ルックアップテーブルになっている • この𝑊は学習可能なパラメータなので,⽬的のタスクに特化した

    単語埋め込み学習がモデル全体の最適化を通して実⾏される 18 (補⾜)単語埋め込み ℎ!! … ℎ!" ℎ#! ⋮ … ⋮ ℎ#" ⋮ ℎ$! … ℎ$" ID0の単語のベクトル表現 ID1の単語のベクトル表現 ID 𝑉 の単語のベクトル表現 𝑊 ∈ ℝ'× (
  8. • 位置符号化は,⼊⼒系列の先頭から何番⽬の単語であるかをベクトルで表現 したもの 19 位置符号化(Positional encoding) • Transformerの主要な演算である注意機構は⼊⼒系列の順番の⼊れ替えに 対して不変であるため,位置情報を付与することは重要 •

    例えば,I am a smart cat → cat am a smart I では⽂章の意味が全く異なるが, 注意機構の出⼒結果としては同じになってしまう • ⾃然⾔語処理のような単語の順序や位置が重要なタスクでは,各単語の位置情報は必要 不可⽋
  9. 20 位置符号化(Positional encoding) • 単語埋め込みによって,単語はベクトルで表現されているので,位置情報も ベクトルで表現する 𝑝&,) = sin 𝑡

    𝑇()+,)// , 𝑘が奇数 cos 𝑡 𝑇 )+0 // , 𝑘が偶数 • 𝒉 = 𝑊𝑋 + 𝒑 のように単語埋め込みベクトルに加算する • これにより,同じ単語でも位置によって異なるベクトル表現となる 𝑡: ⼊⼒系列内の先頭からの位置 𝑘: ベクトルの𝑑次元のうちの先頭からの位置 𝑇: 想定されうる最⼤系列⻑(原論⽂では10,000) 𝑑: ベクトルの次元数 • 具体的には,周期の異なる正弦波によって,位置情報を符号化する
  10. • 内積によって単語間の相対位置の近さを計算可能(位相差で表現可能) • 𝒑! ⋅ 𝒑" = ∑ # "

    # cos 𝑤# 𝑚 − 𝑛 , 𝑤# = $ % #$ /" • 位置が遠い単語間の内積の⽅が,近い単語間の内積よりも⼤きくなる 22 位置符号化の特性 • 位置符号化ベクトルのノルムが常に⼀定 • sin& 𝜃 + cos& 𝜃 = 1より,すべての位置𝑡において 𝒑' & = ( & となる • ベクトルの⾃由度が抑えられているため,学習しやすい(と考えられる)
  11. • Transformerで使⽤される注意機構は⼀般に,QKV注意機構と呼ばれる • Query, Key, Valueの頭⽂字をとっている • Key・Value⽅式のデータベースにQueryを投げて処理を⾏うことになぞっている 24 注意機構(Attention)

    • 特に,Query, Key, Valueがすべて同じベクトルであるときに, ⾃⼰注意機構(Self Attention)と呼ぶ 𝑄 𝐾 𝑉 2 𝑄 QKV-attention 𝑄 2 𝑄 Self-attention
  12. • ʻI am a smart catʼ を単語埋込みして,𝐻 = 𝒉$ ,

    … , 𝒉) ∈ ℝ)×( を得られたとする • 各単語𝒉# は𝑑次元のベクトルで表現されている • 𝐿は単語数(この例だと𝐿 = 5) 25 ⾃⼰注意機構:QKVの獲得 • このとき,Query, Key, Valueはそれぞれ異なる重み⾏列を⽤いて計算される • 𝑄 = 𝐻𝑊3, 𝐾 = 𝐻𝑊4, 𝑉 = 𝐻𝑊( • 𝑊+ , 𝑊, , 𝑊- ∈ ℝ(×( • 元となるベクトル𝐻は共通だが,重み⾏列が異なるため,𝑄, 𝐾, 𝑉は完全には 同じベクトル表現にはならない
  13. 続いて,Query/Key間の類似度を⾏列積で計算する • 𝒂 = 𝒒6! 7 • ベクトルの次元数𝑑が⼤きくなると,内積の値も⼤きくなってしまうため, 𝑑で除算することで,これを防いでいる 26

    ⾃⼰注意機構:QK間の類似度の計算 𝒒 𝐾 ∈ ℝ&×( = I am a smart cat 𝒂 ∈ ℝ). 𝑎* は𝒒と𝒌* の類似度を表す ∗ 𝑎+ -0.5 𝑎, 1.1 𝑎- 0.3 𝑎( 0.8 𝑎& 0.2 図解のため,Queryから1単語𝒒だけ抜き出して 説明する
  14. 類似度𝒂に対して,ソフトマックス関数をかけることで,アテンション0 𝒂を 計算する # 𝒂 = softmax 𝒒𝐾8 𝑑 27

    ⾃⼰注意機構:アテンションの計算 𝑎+ -0.5 𝑎, 1.1 𝑎- 0.3 𝑎( 0.8 𝑎& 0.2 : 𝑎+ 0.07 0.36 0.16 0.26 0.15 : 𝑎, : 𝑎- : 𝑎( : 𝑎& softmax 和が1になる
  15. アテンション0 𝒂とValue 𝑉の重み付き和によって最終的な出⼒1 𝒒を計算 • . 𝒒 = # 𝒂𝑉

    28 ⾃⼰注意機構:アテンションによる重み付き和 3 𝑎; am a smart cat I 3 𝑎< 3 𝑎= 3 𝑎> 3 𝑎? + + + + = @ 𝒒 参照先となるKeyの各単語の中から,Queryの観点から重要と思われるベクトルを選別し, その重要度に応じて,元となるValueを混ぜ合わせる処理とみなせる
  16. アテンション0 𝒂とValue 𝑉の重み付き和によって最終的な出⼒1 𝒒を計算 • . 𝒒 = # 𝒂𝑉

    29 ⾃⼰注意機構:アテンションによる重み付き和 cat am a smart cat I • 注意機構によって⽂章内の単語間の関係性を捉えることが可能 • 遠く離れた単語との関係性も捉えることができるため,RNNやLSTMよりも優れた性能 を⽰している(と考えられる)
  17. • アテンションを計算する際にソフトマックス関数を⽤いるが,ソフトマックスは ある⼀つの要素が⼤きい値,それ以外を0にする傾向がある(a winner takes all) • そのため,注意機構を⼀つだけ⽤いた場合,複数の観点から多様な情報を 抽出しづらい(e.g. ある2つの単語間の関係のみ焦点が当たるなど)

    31 マルチヘッド注意機構(Multi-head attention) A 𝒂のうちどれか1つの要素だけが⼤きくなりがち = 複雑な特徴抽出が難しい • これを解決するために,単純に注意機構を複数⽤いる⽅法が提案されており, これをマルチヘッド注意機構と呼ぶ
  18. マルチヘッド注意機構は,次元軸を𝐻等分して,それぞれ独⽴にアテンションを 計算して,最後に出⼒結果を結合するだけ 32 マルチヘッド注意機構の例 = ∗ ∗ = -0.5 1.1

    0.3 0.8 0.2 0.23 0.21 0.08 0.11 0.37 @ 𝒒 𝒒 𝑲 ※ 4次元表現に対してヘッド数𝐻 = 2で分割する例( 𝑉の分割の様⼦はスペースの都合で省略)
  19. • 層正規化は,過剰に値が⼤きくならないように各ベクトルを正規化する • 過剰に⼤きくなると,勾配爆発が⽣じてしまい,学習ができない • また,ベクトル内のある特定の次元の要素のみの値が⼤きくならないようにすることで, ベクトル空間を効率的に使えるようになる • Batch Normalizationなどと異なり,各ベクトル独⽴に計算(NLPタスクでは系列の⻑さが

    データごとにばらつくため,バッチ内の統計量は使わない⽅が良いため) 33 層正規化(Layer Normalization) • 層正規化は学習可能なパラメータ𝒂, 𝒃 ∈ ℝ'を⽤いて,下記式で計算する ℎ9 : = 𝑎9 ;"<=𝒉 >𝒉?@ + 𝑏9 𝜇1 = 1 𝑑 C )2, / ℎ) 𝜎𝒉 = 1 𝑑 C )2, / ℎ) − 𝜇𝒉 0
  20. • 2層の線形層と活性化関数で構成 • ⼊⼒系列中の各要素𝒉C ∈ ℝ;×'に適⽤する C 𝒉C = 𝑊<𝒉C

    D + 𝒃< 𝒉C D = 𝑓 𝑊; 𝒉C + 𝒃; • 𝑓は活性化関数.ReLUやGeLUがよく使⽤される • 画像認識等では,中間層の次元数を⼊⼒層よりも⼩さくすることが多いが Transformerでは⼤きくする(次元数を4倍にすることが多い) 35 フィードフォワード層 𝑊+ 𝑊,
  21. • 画像認識でよく使われるResNet [He+, CVPRʼ16]で提案された⽅法 • 勾配消失を防ぐのに⾮常に有効 • ⼊⼒に近い層にまで勾配が⼗分に伝搬されるようになる 36 残差結合

    [He+, CVPRʼ16] • 計算はベクトルごとに要素和をとるだけ • 𝒉E = 𝒔E + 𝒉EF; • E.g. 𝒉4+,: 注意機構処理前のベクトル 𝒔4 : 注意機構処理後のベクトル 残差結合 残差結合 𝒉./+ 𝒉. 𝒔. Attention Layer norm FFN Layer norm + + • Transformerでは,注意機構,FFN部分の2箇所に配置
  22. 37 Transformer Encoder Encoderは下記の基本素⼦から構成される • 単語・位置埋め込み • ⾃⼰注意機構(Self Attention) •

    層正規化(Layer normalization) • フィードフォワード層(FFN) • 残差結合(Residual connection) Word/Position embedding Self Attention Layer norm FFN 𝑋 Layer norm × 𝐿
  23. 38 Transformer Decoder Decoderは下記の基本素⼦から構成される • ⾃⼰注意機構(Self Attention) • 層正規化(Layer normalization)

    • クロス注意機構(Cross Attention) • フィードフォワード層(FFN) • 残差結合(Residual connection) Layer norm Layer norm × 𝐿 Self Attention Layer norm Cross Attention FFN 𝑄 𝐾, 𝑉
  24. QueryがDecoderからのベクトル,Key/ValueがEncoderからのベクトル となるだけで,計算⽅法はこれまでの注意機構と全く同じ 39 クロス注意機構(Cross attention) 4 𝑄 = softmax 𝑄𝐾8

    𝑑 𝑉 𝑄 = 𝑧I, … , 𝑧J ∈ ℝJ×' 𝐾 = ℎI, … , ℎK ∈ ℝK×' 𝑉 = ℎI, … , ℎK ∈ ℝK×' … Decoder内のベクトル … Encoder内のベクトル … Encoder内のベクトル Self Attention Layer norm Cross Attention 𝑄 𝐾, 𝑉 L 𝑄
  25. Masked Language Modeling • 系列中のランダムにマスクされた単語の予測([MASK]トークンで置換された単語の予測) • [MASK]トークンの最終出⼒𝐻 5678 を全結合層𝑊9%:/ ∈

    ℝ ; ×/に⼊⼒し,予測 I 𝑦 = softmax 𝑊NOP' 𝐻 QRST 43 BERTにおける事前学習:Masked Language Modeling BERT I am a [MASK] cat [SEP] I donʼt have [MASK] yet [SEP] [CLS] Masked language modeling smart name
  26. 47 GPT (Generative pretrained Transformer) • GPTはTransformerのDecoder部分のみを⽤いたモデル • バージョンはGPT-1 [Radford+,

    Tech report, 2018], GPT-2 [Radford+, Tech report, 2019], GPT-3 [Brown+, NeurIPSʼ20] と3種類ある • バージョンごとに若⼲の差異はあるが,どれもDecoderをアーキテクチャとして採⽤ • GPTでは⾔語モデル(次単語予測)の事前学習を⾏う • BERTとは異なり,先⾏する左側のみの⽂脈からそれに続く単語を予測する⾔語モデルの 学習を⾏う 先⾏する⽂章に続く次単語を予測
  27. 系列⻑が𝑁の単語列𝑠 [𝑥; … , 𝑥J ] に対して,位置𝑖の単語𝑥C を予測するとき, それよりも𝑘個前に出現する単語列 𝑥CFU,

    𝑥CFUV;, … , 𝑥CF; を⽤いて, ⾔語モデルの負の対数尤度を最⼩化するように,Decoderを最適化する 𝐿 = − Q CWUV; J log 𝑃 𝑥C|𝑥CFU, 𝑥CFUV;, … , 𝑥CF; 48 GPTの事前学習⽅法:⾔語モデリング
  28. 具体的には,𝑥CF; に対するDecoderの最終出⼒𝐻X$%& に単語埋め込み⾏列の 転置⾏列𝑊Y ∈ ℝ ( ×'を適⽤することで,次単語を予測する 49 GPTの事前学習⽅法:⾔語モデリング

    • 𝐻I = 𝑊𝑋 + 𝑝 • for 𝑙 in range(1, 𝐿 + 1) 𝐻E = TransformerZ[\]Z[^ E 𝐻EF; • I 𝑥C = softmaxX$ 𝑊Y𝐻X$%& _ ※ 𝑃 𝑥* |𝑥*/0 , 𝑥*/01+ , … , 𝑥*/+ = softmax2! 𝑊3𝐻2!"# )
  29. テキスト分類の例 • 系列⻑𝑁の単語列 𝑥$ , … , 𝑥1 とそのテキストの正解クラス𝑦があるとする •

    𝑥1 に対応するGPTの最終出⼒𝐻24 ) を全結合層に⼊⼒し,下記の負の対数尤度を 最⼩化するようにGPT内部のパラメータも含めて学習する 50 GPTのファインチューニング⽅法 𝐿 = − Q X&,…,X' ,l ∈ m log 𝑃 𝑦|𝑥;, … , 𝑥J なお,𝑃 𝑦|𝑥+ , … , 𝑥5 = softmax6 𝑊𝐻2$ )
  30. GPT-1 (約1.1億) → GPT-2(約15億)→ GPT-3(約1750億)とパラメータが増えるに つれて,性能も⾶躍的に向上 • データセットもGPT-1では約7000冊の書籍であったが,GPT-3ではそれに加えて Common Crawl

    [Raffel+, JMLRʼ20]と呼ばれる巨⼤テキストコーパスも使⽤(約3000億トークン) • 96層のTransformerモデル 52 GPT-3(超巨⼤⾔語モデル)の衝撃 GPT-3が⽣成した偽の新聞記事 ⼈間でも⾒分けがつかない精度で ⽣成可能
  31. • GPT-3のような巨⼤⾔語モデルでは,タスクを解くために適切な 「⼊⼒(プロンプト)」をいかにヒトが⾒つけるかが鍵になる • 例えば,プロンプトに「Letʼs think step by step」と追加するだけで, 推論タスクの性能が17.7%→78.7%と⼤幅に向上

    [Kojima+, NeurIPSʼ22] • そのほかの推論タスクでも,10.4%→40.7%と向上 • 問題を解くための知識はモデル内にあったが,我々⼈間がうまくそれを引き出せて いなかったともいえる 57 Prompt engineering Zero-shot Zero-shot (+Letʼs think step by step)
  32. • Encoder-Decoder型Transformerの事前学習の有効性も確認されている • 代表的なモデルは,BART [Lewis+, ACLʼ20], T5 [Raffel+, JMLRʼ20] •

    Encoderを使うことで,⼊⼒⽂に強く条件付けられるタスク(e.g. 機械翻訳 や対話)との相性が良い 59 Encoder-Decoderモデルの事前学習 • BARTでは,⼊⼒⽂の順序を⼊れ替えて,かつ⼀部単語をマスクした系列を ⼊⼒し,⽂の順序とマスクされた単語を復元する事前学習を⾏う
  33. • 学習済みのCNN(教師)を⽤いた蒸留によって,効率的にViTを学習 • 蒸留には,教師モデルの出⼒そのまま使⽤するSoft Target Lossと,教師 モデルの出⼒をGTと同様にone-hotベクトル化するHard Target Lossが存在 •

    DeiTでは,Hard Target Lossを⽤いた⽅が優れた性能を⽰す • 論⽂内では,ImageNet-1Kで分類精度85.2%を達成(JFT-300Mで事前学習したモデルは 84.15%) 65 ViTの効率的な学習⽅法:DeiT [Touvron+, ICMLʼ21] ViT image patches [Distil] [CLS] … Ground truthのラベルとの損失計算 … 学習済みCNNの出⼒とのKL距離を計算
  34. 蒸留を利⽤しなくても,データ拡張や損失関数の⼯夫をすることで,ViTを 通常の学習のみで効率的に学習可能 66 ViTの更なる効率的な学習⽅法:DeiT-III [Touvron+, ECCVʼ22] ⼯夫の⼀例(ほかにも低解像度で学習等がある) • データ拡張の変更 •

    グレースケール化,Solarization,Gaussian blur, horizontal flip, color jitterを採⽤ • 正則化・損失関数 • Binary cross-entropy (ImageNet1Kで有効), Stochastic depth, Layer scale • Simple Random Crop • AlexNetで使⽤されていたcropping • ImageNet-1Kでの学習のみに利⽤ DeiTとの⽐較
  35. • 近傍の𝟐×𝟐のパッチを統合 • 1つのパッチが𝐶次元のベクトルなので,統合することで4𝐶次元になる • 全体としては,𝐻×𝑊×𝐶 → @ 0 ×

    A 0 ×4𝐶 • 統合後に,Layer normalizationと全結合層によって,n < × o < ×2𝐶 に変換 70 Patch Merging 近傍2×2パッチを統合
  36. • Transformer Encoderの注意機構部分をWindow-based Attentionと Shifted Window-based Attentionに置換 • Window-based Attention

    • 特徴マップを𝑀×𝑀のウィンドウに区切り,各ウィンドウ内のパッチでのみSAを計算 • 𝐻×𝑊 × 𝐻×𝑊 の計算量が,𝑀0×𝑀0× 𝐻/𝑊 × 𝑊/𝑀 = 𝑴𝟐𝑯𝑾 に削減 71 Swin Transformer Block 8×8の特徴マップを 4×4のウィンドウで区切った例
  37. Shifted Window-based Attention • C 0 , C 0 だけwindowをシフトさせて,Window-based

    Attentionを計算する • Window-based Attentionだけだと,より広範囲の特徴を集約できないが,Shifted Window-based Attentionによって,隣接Window間での情報集約が可能 72 Swin Transformer Block Shifted Window-based Attention
  38. Grid feature • 通常のCNNやViTでの中間特徴マップ • 画像全体の情報を均等に利⽤ 79 画像特徴量の抽出(grid / region

    feature) Region feature [Anderson+, CVPRʼ17] • 物体検出器の中間表現を利⽤ • 物体中⼼の情報を利⽤可能
  39. • Grid + Region特徴の両⽅を⽤いることで,image captioningタスクで ⼤幅に性能改善 [Quang, Suganuma, Okatani, ECCVʼ22]

    • 当時の⼤規模事前学習なしSOTAモデル(135.4 CIDEr score)→ 144.2 CIDEr score • Transformerのみで構成することで,NMSなどの⾼負荷演算を回避できるため, 推論も⾼速 80 画像特徴量の抽出(grid + region feature) モデルの全体像 推論速度の⽐較
  40. 最近はTransformerの隆興もあり, 1. Web上の⼤量の画像・テキストペア※を⽤いてTransformerを事前学習 2. ⽬的タスク上でファインチューニング のアプローチが主流 81 TransformerのV&Lへの適⽤ Transformer encoder

    ※ Web上の画像とAlt-textをフィルタリングしたものを利⽤ (e.g. [Sharma+, ACLʼ18]) CNN Where is the child sitting? fridge Transformer encoder Where is the child sitting? fridge …
  41. • Masked language modeling (MLM) • BERTと同様に,マスクされた単語もしくは画像パッチを復元 • Image-text matching

    (ITM) • また,⼊⼒された画像・テキストが正しいペアかどうかを判定 マスクされた単語を視覚情報を頼りに復元可能=視覚・⾔語間の特徴がうまく繋がっている 82 画像・テキストペアによる事前学習 Transformer encoder Yes/No … [CLS] The [MASK] sitting on the fridge ITM loss child MLM loss
  42. • CLIPによって得られた画像・⾔語エンコーダからの特徴ベクトルは,画像ー⾔語間で アライメントされている • さらに任意の⾔語(キャプション)と画像の結び付けが可能になった • これまでは単なる「画像と有限個の記号(クラスID)」との結びつけであった 85 CLIPによるブレイクスルー [Radford+,

    ICMLʼ21] これまでの画像分類 CLIP 「有限個のクラスID Xの何か」 ⾔語情報との対応付けかつ one-hotベクトルよりも圧倒的な情報量との関連付け “A brown dog is sitting on the grass” 何を意味しているのか 理解していない
  43. • CNN(物体検出器)の事前学習のみ • CNN/LSTMのハイブリッド • Bottom-up attention [Anderson+, CVPRʼ17], Co-attention

    [Kien+, CVPRʼ18] 88 最近のV&L事前学習のトレンド • Transformer+⼤規模画像・テキストペアによる事前学習 • Masked Language Modeling+Image-text matching • ViLBERT [Lu+, NeurIPSʼ19], VinVL [Zhang+, CVPRʼ21] • Transformer+より⼤規模画像・テキストペアによる事前学習 • Language modeling + Contrastive learningによる事前学習 • SimVLM [Wang+, ICLRʼ22], CoCa [Yu+, arXiv:2205.01917] ~2019 2019~ 2022~
  44. 89 SimVLM Wang+, SimVLM: Simple Visual Language Model Pretraining with

    Weak Supervision, ICLRʼ22 シンプルなV&L事前学習⽅法の提案 • 物体検出器が不要,デファクトスタンダードであるMLM・ITMなどの事前学習を撤廃 • ⾔語モデルの学習の枠組みで事前学習を実⾏(auto-regressive) • ただし,学習データと計算資源は1.8B image-textペア + 512 TPU v3 • 画像特徴+テキストの前半部分を Encoderに⼊⼒ • Decoderは次単語を予測(⾃⼰回帰) 𝑇" : encoderに⼊⼒するtext length
  45. 90 SimVLM Wang+, SimVLM: Simple Visual Language Model Pretraining with

    Weak Supervision, ICLRʼ22 • 多くのV&Lタスクで⾮常に⾼性能 • これまでのSoTAであったVinVLを⼤きく凌駕(VQAタスクで精度80%を超える)
  46. 91 CoCa Yu+, CoCa: Contrastive Captioners are Image-Text Foundation Models,

    arXiv:2205.01917 これまでV&Lで提案されてきたEncoder-Decoderモデルを統⼀ • 単⼀モダリティ(画像 or ⾔語)のみも,両モダリティも扱える統⼀的なモデル • image captioning+対照学習で画像・テキストエンコーダを事前学習 • JFT-3BとALIGNで事前学習(約4B?) + 約10000 TPUv4 days ここを分離しているのが単⼀モダリティと2つの モダリティを同時に扱うためのポイント
  47. • Outside Knowledge VQA(OK-VQA)と呼ばれるタスク • 質問の回答には,データセットに含まれていない外部知識や常識が必要 95 外部知識・常識が必要なVQA [Marino+, CVPRʼ19,

    Schwenk+, arXiv2022] Q. What does the man who sits have trouble doing? A. Walking Q. What could block the washerʼs door? ⾞椅⼦を利⽤している⼈は歩くことが困難であるという知識が必要 画像情報からのより深い推論が必要 A. Stove
  48. • Outside Knowledge VQA(OK-VQA)と呼ばれるタスク • 質問の回答には,データセットに含まれていない外部知識や常識が必要 96 外部知識・常識が必要なVQA [Marino+, CVPRʼ19,

    Schwenk+, arXiv2022] Q. How many people will dine at this table? コップやメインディッシュの数が1つであるため,⾷事をしているのは 1⼈だろうという推論 Q. What makes those chairs easy to carry? ⽇常⽣活から知り得る世の中の知識が必要 A. One A. Foldable
  49. • Outside Knowledge VQA(OK-VQA)と呼ばれるタスク • 質問の回答には,データセットに含まれていない外部知識や常識が必要 97 外部知識・常識が必要なVQA [Marino+, CVPRʼ19,

    Schwenk+, arXiv2022] Q. What sort of vehicle uses this item? 消防⾞がこれを使うという外部知識(常識?) Q. When was the soft drink company shown first created? ペプシの設⽴年を問う外部知識 A. Firetruck A. 1898
  50. GPT-3に以下を結合して⼊⼒する • Prompt head : 固定のフレーズ • “Please answer the

    question according to the above context” • In-context examples 𝑛 : caption, question, answerのペアを𝑛個⽤意 • captionは学習済みのVinVL [Zhang+, CVPRʼ21]を利⽤して,⼊⼒画像から⾃動⽣成 • Testing question : 回答が欲しいcaption, questionペア + “A: ” • captionの⽣成⽅法はIn-context exampleと同様 101 PICaの概要 GPT-3の出⼒がそのまま answerになる
  51. • 2つの情報ソース(implicit/explicit knowledge)を⽤いたOK-VQA • implicit : language model内で内包されている知識 • explicit

    : Wikidataなどの情報ソース • PICaよりも約6%⾼精度 104 KAT : implicit knowledge+Explicit knowledgeによるOK-VQA [Gui+, NACCLʼ22] PICaとの⽐較 モデル概要 Gui+, KAT: A Knowledge Augmented Transformer for Vision-and-Language, NAACLʼ22
  52. • Implicit Knowledge • 学習済みGPT-3を⽤いた推論 • Explicit Knowledge • Wikidataからの情報検索による推論

    • Reasoning module • 上記2つをまとめて,最終的な推論を実⾏ 105 KATの概要 • KATはclassificationとしてVQAを 解くのではなく,auto-regressiveに 回答を⽣成 • Encoder-Decoderモデル
  53. • Wikidata*からanimal, sportsなど8カテゴリ分のentity + descriptionを抽出 • 画像内をウィンドウで⾛査することで,𝑁個の局所領域を取得 {𝑣C ;, …

    , 𝑣C J}し, 各entityとの類似度をCLIP encoderを⽤いて算出 • 𝑠𝑖𝑚 𝑣D E, 𝑒 = 𝐸:F& 𝑒 G𝐸D#H(𝑣D E) • 各局所領域からtop-kのentityをまず抽出 = 𝑁×𝑘のentityを取得 • そのうち,top-mのentityを最終的な explicit knowledge source 𝑥PXNとする 106 Explicit Knowledge [*] Denny Vrandecic+, Wikidata: a free collaborative knowledgebase. Communications of the ACM, 2014
  54. • 2021年9⽉時点でのwikidataを使⽤ • 計95,870,584 entityが含まれているが,現実に関係しそうなオブジェクトを 抽出+descriptionが空 or 英語ではないものを除外することで,最終的に 423,520 entityを使⽤

    • <Q2813, Coca-Cola, carbonated brown colored soft drink>のようにtripletで表現 107 KATで利⽤するWikidataの詳細 Denny Vrandecic+, Wikidata: a free collaborative knowledgebase. Communications of the ACM, 2014 使⽤した8カテゴリの内訳
  55. • Explicit knowledgeだけでは,いわゆる常識的な知識が網羅できていない • 例えば,レモンはすっぱい,など • こうした情報は巨⼤⾔語モデルが知識としてもっている • PICaと同様に,GPT-3 +

    Prompt engineeringによって知識を抽出する • 画像からのキャプション⽣成には,Oscar*を利⽤ 108 Implicit Knowledge [*] Li+, Oscar: Objectsemantics aligned pre-training for vision-language tasks, ECCV, 2020
  56. • Prompt head + Context (image caption) + Question +

    Answer を⼊⼒し,回答𝑎を取得 • さらに,”Question? Answer 𝑎. This because”もGPT-3に⼊⼒することで,判断根拠も取得 • 回答𝑎と判断根拠をまとめたものをimplicit knowledge 𝑥D#9 とする 109 Implicit Knowledge 回答の取得のための prompt 判断根拠の取得のための prompt
  57. Encoder • 各knowledgeにquestionを結合し,knowledge + questionのペアを作成 • e.g., question: q, candidate:

    a and evidence: e • これをTransformer encoderに⼊⼒し,最終層の平均ベクトルを計算後, 後段のreasoning moduleに⼊⼒する(𝑋#!8 ∈ ℝ!×(, 𝑋928 ∈ ℝ8×() 110 Knowledge encoder and reasoning module Reasoning module • encoderの出⼒を結合し(𝑋 ∈ ℝ(!;8)×(), decoderの直前の出⼒𝐻 ∈ ℝ(間でattentionを計算 • 𝑄7 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 89% ! 𝑉 • 𝑄 = 𝑊# 𝐻, 𝐾 = 𝑊$ 𝑋, 𝑉 = 𝑊% 𝑋
  58. 113 REVIVE: implicit knowledge + explicit knowledgeによるOK-VQA* KATと同様に,implicit/explicit knowledgeを⽤いたOK-VQAだが, region

    visual featuresを利⽤する点が異なる • 本⼿法ではGLIP**を利⽤して,物体領域を取得し,推論に活⽤ • KATはsliding windowで画像から局所領域を取得していた • KATよりも約4%⾼精度(PICaと⽐較すると10%) KAT REVIVE 性能⽐較 [*] Lin+, REVIVE: Regional Visual Representation Matters in Knowledge-Based Visual Question Answering, arXiv:2206.01201 [**] Li+, Grounded Language-Image Pre-training, CVPRʻ22
  59. • GLIPを利⽤して,画像から物体領域を抽出し,promptを⽣成 • “Detect: person, bicycle, car, …” • さらに,GLIPで検出したBBOXをクロップし,タグ

    b 𝒯との類似度top-Pを算出 • ℋ = ℎ9 92, I = arg 𝑇𝑜𝑝𝑃&&∈ K 𝒯 𝐸 𝑟E , 𝑇(𝑡D) 𝐸: 𝐶𝐿𝐼𝑃 𝑖𝑚𝑔 𝑒𝑛𝑐𝑜𝑑𝑒𝑟, 𝑇: 𝐶𝐿𝐼𝑃 𝑡𝑒𝑥𝑡 𝑒𝑛𝑐𝑜𝑑𝑒𝑟 • タグ n 𝒯は,Bing Searchにおけるtop-400Kのquery 114 REVIVEで利⽤する画像特徴 • KATと同様に,画像キャプションも⽣成する • “Two brown dogs fighting over a red frisbee” • VinVLを使⽤
  60. • KATと同様にWikidataから8カテゴリを選定し,”[Entity] is a [description]” を⽣成 • e.g., “pegboard is

    a board wall covering with regularly-spaced holes for insertion of pegs or hooks” • 先に算出したregion vector 𝐸(𝑟C )と上記のtext間の類似度top-Kを算出 • 𝜀 = 𝑒U UW; 4 = arg 𝑇𝑜𝑝𝐾'$∈𝒯 𝐸 𝑟C , 𝑇(𝑑C) • 𝑑D ∶ “”[Entity] is a [description]” 115 External knowledge
  61. • GPT-3を利⽤ • Text Prompt • 𝑋 = “context: {caption}

    + {tags}. question: {question}” • 上記をPCIaと同様に⼊⼒することで,暫定の回答 𝑜M M2, N を取得 • KATと同様に判断根拠も取得する • 𝑒M = “{question} {𝑜M }. This is because” • 最終的なimplicit knowledge:ℐ = 𝑜•, 𝑒• •W; € 116 Implicit knowledge
  62. Knowledge Encoder For Explicit knowledge • ℎ) = “entity: {entity}

    description: {description}” を作成 • entityとdescriptionは𝜀 = 𝑒) )2, O = arg 𝑇𝑜𝑝𝐾/&∈𝒯 𝐸 𝑟D , 𝑇(𝑑D) を使⽤ For Implicit knowledge • 𝑠M = “candidate: {answer} evidence: {explanation}” • answerとexplanationはGPT-3の出⼒ • 最後にそれらをTransformer Encoderに⼊⼒する • 𝛼) = 𝐹: ℎ) , 𝛽M = 𝐹: 𝑠M 117 Encoder-Decoder module
  63. Visual Encoder • visual feature 𝑣E E2, C , bboxの座標

    𝑏E E2, C をfully connected layer𝐹𝐶,,0 に⼊⼒する • 𝑓 = 𝐹P Concat(𝐹𝐶, 𝑣, , 𝐹𝐶0 𝑏0 , … , 𝐹𝐶, 𝑣C , 𝐹𝐶0(𝑏C)) ∈ ℝ(0C)×Q 118 Encoder-Decoder module Context-aware Question Encoder • ⼊⼒questionを𝑋 = “context: {caption} + {tags}. question: {question}”に置換し, Transformer Encoder 𝐹: に⼊⼒ • 𝑞 = 𝐹:(𝑋) Generative Decoder • 𝛼) , 𝛽M , 𝑓, 𝑞 を結合したものをTransformer decoder 𝐹/ に⼊⼒ • 𝑦 = 𝐹/ Concat 𝛼,, … , 𝛼O, 𝛽,, … , 𝛽N, 𝑓, 𝑞 • ℒ = − ∑42, > log 𝑝R • 𝑦4|𝑦S4
  64. • 画素単位のラベルなしで セマンティックセグメンテーションを ⾏うモデル • キャプションのみを学習に利⽤ 122 GroupViT [Xu+, CVPRʼ22]

    • ViTとほとんど同じモデルだが, Group Tokenと呼ばれるトークンを 使って,画像パッチをクラスタリング していく
  65. 125 GroupViT: セグメンテーション例 セグメンテーション例(Zero-shot) Group tokenとカテゴリラベルの対応付け Zero-shot transfer to semantic

    segmentation • 推論時はカテゴリラベルとGroup token間の類似度を計算し,最⼤類似度のGroup tokenを 抽出 • そのGroup tokenとの類似度が⾼い画像パッチを該当カテゴリとして予測