ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataを読んだ

概要

テキストと画像のマルチモーダルBERTの提案。Transformerの入力にテキストのtokenだけでなく、Faster-RCNNで検出したRoIをTransformerに入力できる形にEncodingしたvisual tokenも入力できるようにしてEmbeddingを行えるようにしている。

また、数億パラメータを学習するためには大量のデータが必要であるとし、Pre-training用に弱学習器を用いたデータセット作成方法を提案している。

リンク

arXiv

pre-training用のデータセット(LAIT)の作成

LAIT(Large-scale weAk-supervised Image-Text)はpre-trainingを行うために著者らがWebから集めた画像とキャプションのペアのデータセット

マルチモーダルのpre-trainingに用いられるデータセットはConceptual Captions(CC)とSBU Captionsが多い。しかし、CCは3M件の画像とdescriptionの組み合わせ、SBUは1M件の画像とユーザが作成したキャプションの組み合わせで、著者らの主張としては数億パラメータのモデルを学習するためには件数が少ない。 pre-trainingにはデータのボリュームと品質が重要なため、LAITはweak-supervised approachを採用し、10M件の画像とdescriptionのペアで構成される。descriptionは平均13単語。

weak-supervisedというのは、後述するデータ収集pipeline内のImage-Text Semantic Scoringでテキストと画像が関連したものかどうかスコアリングを行う弱学習器を構築しているためにと思われる。

data collection pipeline

データ収集のパイプラインの全体像はFigure 1を参照。
各処理の内容はその後に記載しておく。

f:id:wwacky:20200426212347p:plain
Figure 1. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Web-page collection
Webページをクロールし、画像URLとテキストを収集する。テキストが英語でないものと、画像がWebページに対してDominantでないものは廃棄される。Figure 1では何かしらの判定器を用いているようだが詳しい記載はなし。Dominant, Non-dominantについては定義がないため不明。

Image Content Based Filtering
画像情報を用いてフィルタリングを行う。画像の縦横が両方とも300ピクセル未満のものと、エロ画像(Pornographic or Racy)、non-realisticな画像、non-learn-ableな画像は除外される。non-realistic、non-learn-ableについては定義が記載されていないが、Figure 3を参照とのこと。画像判定器についても記載がないが、恐らくMicrosoftのありものを使っていると思われる。

f:id:wwacky:20200426215805p:plain
Figure 3. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Sentence Detection & Cleaning

画像に対応するdescriptionを取得する。descriptionにはHTMLのAlt属性やTItle属性、もしくは画像の周辺テキストを用いる。ヒューリスティックルールを用いてノイズを除去し、適切な長さにする。詳細は記載されていない

Image-Text Semantic Scoring
少量の画像とテキストのペアの教師データを用いて、テキストと画像のペアが関連しているものかどうかの2値分類を行う弱学習モデルを作成し、スコアリングを行う。モデルに用いる特徴量はテキストのみの素性、画像のみの素性、テキストと画像のクロスモーダルな素性を数百種類用いている。モデルに用いた手法や学習用のデータ件数については記載なし。

Image-Text Aggregation
異なるdescriptionが同じ画像に紐付いていたり、異なる画像が同じdescriptionに紐付いている場合があるので、これらを解消する。
複数のdescriptionが同じ画像に紐付いている場合は、前段のImage-Text Semantic Scoringのスコアが最も高いdescriptionと画像のペアのみ残す。
複数の画像が同じdescriptionを持つ場合は、これらのペアをコーパスから除外する。

LAITのデータセットのサンプルは以下のFigure 2を参照。

f:id:wwacky:20200426220841p:plain
Figure2. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Architecture

提案手法の構造をFigure 4に示す。基本的な構造はBERTと同じで、TransformerのEmbeddingの構成要素となる"Sequence Position Embedding", "Segment Embedding", "Linguistic Embedding" のうち、Linguistic Embeddingに単語の代わりに画像のEncodingしたものと画像内の位置情報を渡すものである。(画像内のPositionが定義できないのでSequence Position Embeddingには画像の場合は同じ値を入れるという制約もあるが)

f:id:wwacky:20200426221213p:plain
Figure 4. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Image Embedding

Faster-RCNNで抽出されたregions of interest(RoI)を単語とみなしてEmbeddingを行う。

  • ObjectEmbedding  {\bf v}^{(i)}:RoI内の画像をEocodingしたもの
  • SegmentEmbedding  {\bf s}^{(i)}:テキストの時と同じ様にSegment単位で同じ値を入れてEncodingしたもの
  • ImagePositionEmbedding  {\bf p}^{(i)}_{img}:画像の位置情報のEncoding。位置情報は5次元で表される。(数式の入力だったので省略しました。原論文を見てください。相対位置と、相対面積を使ってます。)
  • SequencePositionEmbedding  {\bf p}^{(i)}_{seq}:Segment内の順序のEmbedding。RoIの順序は明確に決まらないのでダミーとして全て同じ値を入れる。

i番目のRoIの最終的なEmbeddingは以下となる。 LNはTransformerの隠れ層と同じembedding sizeにするためのLayer Normalization。


e^{(i)} = LN({\bf v}^{(i)} + {\bf s}^{(i)} + {\bf p}^{(i)}_{img} + {\bf p}^{(i)}_{seq} )

Pre-training

Pre-training task

Pre-trainingでは以下の4タスクを行う。

  • Task 1: Masked Language Modeling (MLM)
  • Task 2: Masked Object Classification (MOC)
  • Task 3: Masked Region Feature Regression (MRFR)
  • Task 4: Image-Text Matching (ITM)

Masked Language Modeling (MLM)
BERTで行っているMLMと同じ。

Masked Object Classification (MOC)
MLMの画像版。Faster-RCNNでRoIを検出した際に一緒に返却されるラベル(face, armなど)を正解とし、マスクしたRoIに対応するトークンのクラスを予測して学習を行う。Lossにはcross-entropy lossを用いる。
15%の確率でRoIをマスクし、マスクする際は90%の確率でタスクを行う対象のトークンとし、10%の確率で単に入力を0にする。

Masked Region Feature Regression (MRFR)
このタスクではマスクしたfeature embeddingの値を回帰で予測する。そのため、Transformerの出力層に全結合層を追加し、RoIの特徴ベクトルと同じ次元に変換する。LossにはL2 lossを用いる。
マスクする確率は恐らくMOCと同じと思われる。

Image-Text Matching (ITM)
textをランダムに別のペアのものと変換し、negative sampleを作成する。sequenceの先頭の[CLS]トークンの特徴量を用いて、negative sampleかどうかの2値分類を行う。 Lossにはbinary classification lossを用いる。

Multi-stage Pre-training

著者らが提案した手法で作成したデータセットLAITと、Conceptual Captions(CC)、SBUの3つでどの様にPre-trainingを行うのかを決めておく。

著者らは冒頭で数億パラメータを学習するためにはより大規模なデータセットが必要なので、LAITデータセットを作成したと述べていた。しかし、LAITのデータの品質はCC、SBUよりも劣るために段階を分けることにしている。

Pre-trainingではまずLAITデータセットで学習を行い(stage 1)、その後、CC、SBUを結合したデータセットで学習を行う(stage k+2)。
Stage 1のPre-trainingではk+1回のpretrainを行うように書いてあるが、実験では1回しかpretrainしてない。

f:id:wwacky:20200426221309p:plain
Figure 5. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

検証結果

画像検索のタスクを用いて提案手法の性能評価を行う。
Transformerは12層、768 hidden units、3072 intermediate units、12 attention headのものを用いる。入力の最大長は144トークンで、100トークンはFaster-RCNNで抽出したRoIが入る。
Faster-RCNNは1600カテゴリに分類されたGenomeデータセットを用いる。

Pre-trainingではドロップアウトを10%の確率でGELUを用いて行う。バッチサイズは48、学習率は1e-4、最適化にはAdamを利用、4つのV100 GPUを用いて17エポック学習を行った。 fine-tune時はITMタスクだけ学習に用い、バッチサイズが24、学習率が5e-5、4つのV100 GPUを用いて130エポック学習を行った。

画像検索のタスクでの検証

MSCOCO、Flicker30kデータセットを用いて画像検索タスクを行う。MSCOCOは1kテストセット、5kテストセットの両方で検証を行う。 Image Retrievalはテキストを入力として画像を検索するタスク、Sentence RetrievalはImage Retvievalとは逆向きのタスク。
Pre-trainingの効果を検証するためのfine-tuneなしのZero-shotでの検証と、fine-tuneありの検証の両方を行う。

Zero-shot画像検索での検証結果はTable 1を参照。他の手法ではZero-shot画像検索の検証結果がないらしくて、結果の表がスカスカ…。
Flicker30kではUNITERに劣っているが、MSCOCOでは1kテストセットで最も良い結果。

f:id:wwacky:20200426221356p:plain
Table 1. より引用

fine-tune後の比較結果はTable 2を参照。
一応どの手法よりも良い結果になっているが、Zero-shotの時に負けていたUNITERと比べると大差ないので、そこまで大きな差はないと思われる。

f:id:wwacky:20200426221431p:plain
Table 2. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Ablation Studies

Pre-trainingの各条件設定が性能にどのような影響があるのかを調べている。

Pre-train dataset
Pre-trainingに使うデータセットの違いによる比較。結果はTable 3を参照。LAIT、CC、CC+SBU、LAIT+CC+SBUは各データセットを結合してPre-trainingを行った結果。LAIT→(CC+SBU)は前述のMulti-Stage Pretrainingを行った場合の結果。評価はFlicker30kでZero-shot検索で実施。

f:id:wwacky:20200426221505p:plain
Table 3. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Global image features
RoIの特徴量だけでなく、画像全体の特徴量もトークンとして追加した場合の検証。結果はTable 4のPart 1を参照。性能を改善する効果は見られない。

Pre-training loss

MRFRタスクの有効性を検証する。Pre-training時のlossにMRFRのlossも追加していない場合と追加した場合を比較。結果はTable 4のPart 2を参照。
大きな改善効果があることが確認でき、より難しいタスクを追加することが良いモデリングに繋がることが示されている。

Number of Objects(RoIs) from image
画像トークンとして利用するRoIを36個の場合と100個の場合を比較検証。RoIはFaster-RCNNが予測時に出力するconfidenceでソートし、高い順に採用する。36個はViLBERTと同じ個数らしい。結果はTable 4のPart 3を参照。
結果からRoIの個数が多いほうが精度が上がっていることが確認できる。

Fine-tune loss
Fine-tune時利用するlossの比較検証。結果はTable 4のPart 4を参照。
Binary classification lossのみを利用する場合の精度が最も良い。

f:id:wwacky:20200426221552p:plain
Table 4. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用