본 논문은 visual-and-linguistic task에 대한 일반적인 representation을 학습할 수 있는 VL-BERT(Visual-Linguistic BERT)를 소개한다. VL-BERT는 간단하지만 강력한 Transformer 네트워크를 backbone으로 사용하여 입력의 형태를 visual & linguistic embedded feature로 확장한다. 따라서 모델의 입력은 word 혹은 RoI로 구성된다. 모델은 대부분의 visual-linguistic downstream task에 적용할 수 있도록 설계되었으며, 일반화를 위해 massive-scale Conceptual Captions dataset로 pre-training이 진행되었다. Pre-training은 모델이 visual-linguistic alignment를 더 잘 학습할 수 있도록 하고, 결과적으로 downstream task에서 더 나은 성능을 보여준다. VL-BERT는 VCR benchmark에서 1등을 차지하게 된다 🥇
Introduction
- Pre-training method는 CV(Computer Vision) 및 NLP(Natural Language Processing) 분야에서 모두 좋은 성능을 보인 중요한 접근 기법이다.
- 하지만 기존의 연구는 visual-linguistic task를 해결하기 위해 image recognition과 NLP pre-train을 각각 적용한 모델을 결합해 task-specific 학습을 하는 것에 그쳤다.
- 이렇게 하면 vision/language feature alignment를 충분히 학습하지 못할뿐더러, 데이터가 적을 경우 과적합 현상이 발생하기도 한다.
- BERT와 같은 성공적인 사례를 기반으로, 논문에서는 visual-linguistic pre-trainable한 VL-BERT를 소개한다.
- VL-BERT는 visual-linguistic corpus와 text-only dataset에서 pre-training이 진행된다.
VL-BERT는 BERT를 기반으로 하며, 자세한 설명은 포스팅를 참고해주세요
Model Architecture
위의 그림은 VL-BERT의 구조를 대략적으로 보여준다. 기본적으로, 해당 모델은 BERT 모델이 이미지 입력을 수용할 수 있도록 확장한 모델이라고 볼 수 있다. VL-BERT는 visual & linguistic 요소를 모두 입력으로 받으며, 이는 RoI feature와 sub-words로 이뤄져 있다. RoI는 object detector가 생성한 bounding box가 될수도, 특정 task에서 주석 처리된 feature일 수도 있다. VL-BERT는 bidirectional encoder backbone 모델을 사용하여 모든 입력에 대한 dependency를 학습한다.
중요하게 생각할 점은 visual-linguistic task에 따라 입력 format이 달라진다는 것이다.
- Image Captioning: <Caption, Image>
- VQA, VCR: <Question, Answer, Image>
이 점은 Transformer attention의 비순서적인 특징으로 positional embedding 등의 임베딩 요소를 잘 설계한다면 충분히 general representation을 유도할 수 있다. 입력은 세 가지 종류의 element로 구성되는데, 이는 visual/linguistic/special element로 구성된다. 항상 입력의 처음에 삽입되는 special classification element [CLS], 끝에 삽입되는 [END], 그리고 문장 및 viisual/linguistic 요소를 분리하기 위한 [SEP]가 special element에 포함된다.
각 입력 요소는 4가지 input embeddings의 합으로 구해진다: token embedding, visual feature embedding, segment embedding, sequence position embedding. 이 중 visual feature embedding은 이미지 feature를 capture하기 위해서 새로 고안된 embedding 계층이며, 나머지 셋은 BERT와 동일하다.
Token Embedding
BERT에서와 동일하게 linguistic word는 WordPiece에 의해 임베딩되며, vocab size는 30,000이다. 특별 토큰은 special element를 나타내기 위해 사용되었으며, 예를 들어 visual element는 위의 그림에서처럼 token embedding layer에서 [IMG]로 표현된다.
Visual Feature Embedding
해당 임베딩 계층은 visual appearance feature와 visual geometry embedding에 대해 설명하고, 둘을 결합해서 최종 임베딩 층을 계산한다.
Visual element인 RoI가 visual appearance feature를 말하며, 이는 Fast R-CNN detector를 적용하여 추출한다. 이는 모델의 출력 바로 이전에서 추출한 feature vector를 말한다. Non-visual element에는 전체 이미지를 Fast R-CNN에 입력해 계산된 feature vector를 임베딩한다.
Visual geometry embedding은 각 image region의 위치를 알려주기 위해 사용한다. 각 RoI는 4-d 벡터로 특성화되며, $(\frac{x_{LT}}{W}, \frac{y_{LT}}{H}, \frac{x_{RB}}{W}, \frac{y_{RB}}{H})$와 같이 명시된다. $(x_{LT}, y_{LT})$와 $(x_{RB}, y_{RB})$는 각각 top-left와 bottom-right 좌표를 나타내고, $W$와 $H$는 각각 입력 이미지의 width, height를 의미한다. 4-d 벡터값은 다양한 wavelength의 sine/cosine 함수를 계산하여 고차원의 representation(2048-d)으로 임베딩된다.
Visual feature embedding은 visual appearance feature와 visual geometry의 concatenation을 입력으로 계산한 fully-connected layer의 출력이며, 각 입력 요소에 더해진다.
Segment Embedding
세 종류의 segment A, B, C는 입력 요소의 종류를 구별하기 위해 정의되었다. A와 B는 각각 첫번째 문장과 두번째 문장의 단어들에, C는 입력 이미지의 RoI에 적용된다. 예를 들어 <Question, Answer, Image>의 입력 format와 같은 경우, A는 Question에, B는 Answer에, 그리고 C는 Image에 대응된다. <Caption, Image>의 경우 Caption과 Image에 각각 A와 C가 연결된다. 학습된 segment embedding은 모든 입력 요소에 더해지며, 어떤 segment에 속하는지를 명시한다.
Sequence Position Embedding
학습이 가능한 sequence position embedding은 입력의 모든 요소에 더해지며, 기존의 BERT와 동일하다. Visual element는 순서적인 특징이 없기 때문에 해당 요소들은 동일한 결과가 도출되어야 한다. 따라서 모든 visual element에 대한 sequence position embedding은 같다.
Pre-training strategy
VL-BERT의 general feature representation은 큰 스케일의 데이터셋에서의 pre-training을 가능하게 한다. Pre-training 과정에서는 모델을 visual-linguistic dataset과 text-only dataset에서 학습시킨다. Visual-linguistic corpus로 3.3M개의 이미지와 해당하는 캡션들을 포함하고 있는 Conceptual Captions dataset을 사용한다. 캡션은 웹 상에서 자동적인 파이프라인을 기반으로 추출되어서 몇 가지 문제를 가지고 있다. 캡션은 너무 짧거나 간단해서 overfitting을 야기할 수 있기 때문에 길고 복잡한 문장들로 구성된 text-only dataset에서도 학습을 진행한다. 본 논문은 2개의 pre-training task를 제시하며, 다음과 같다.
- MLM with Visual Clues: 이 task는 BERT의 MLM과 상당히 유사하며, 다른 점이라면 visual feature를 참고하여 MLM을 수행할 수 있다는 것이다.
- MRC with Linguistic Clues: MRC(Masked RoI Classification)은 마스킹된 RoI feature의 라벨을 예측하는 task로, 이전 task와 마찬가지로 linguistic feature를 참고하여 예측을 수행한다. 이때 pre-trained Faster R-CNN에 의해 예측된 라벨을 ground-truth로 정의한다. 마스킹은 위의 그림과 같이 zero-out으로 표시되었다.
Text-only 데이터셋은 <Text, \o>의 입력 format을 사용하고, training loss는 BERT의 MLM(Masked Language Modeling)과 동일하게 사용되었다.
Fine-tuning
VL-BERT는 다양한 visual-linguistic task에서 generic feature representation을 갖도록 설계되었고, fine-tuning을 위해서 간단히 format에 맞춰 입력하고, 출력 레이어를 설정하여 end-to-end 학습을 진행하면 된다. Input format은 이전에 언급한 <Caption, Image>, <Question, Answer, Image>를 사용한다. [CLS]는 출력에서 sentence-image-연관성 수준의 예측에 사용되고, word/RoI feature는 각각 word-level 및 RoI-level를 예측하기 위해 사용된다.
Experiments
위의 그림은 평가가 진행된 visual-linguistic 데이터셋에 따라 입력과 출력 format을 나타내고 있다. 예를 들어 VCR은 입력 format <Question, Answer, Image>를 사용하고 있고, Answer 예측을 위해 [CLS]의 출력 representation을 softmax에 통과시킨다. VQA 또한 같은 입력 format을 사용하고 있지만, Answer 문장이 [MASK]로 입력되며 해당 토큰의 분포를 예측하는 방식으로 task를 해결한다.
위의 그림은 VCR 벤치마크에서 다른 baseline 모델들과 성능을 평가한 결과이다. VL-BERT 모델은 다른 BERT 기반의 모델들을 outperform하는 성능을 보여주며, SOTA를 달성한다.
VQA 또한 LXMERT을 제외한 다른 BERT 기반의 vision & language baseline 성능을 능가했다. LXMERT와 비교한 성능은 조금 떨어지는 것을 확인할 수 있다. 모델은 가능한 3,129개의 답변 중 하나를 고른다.
Referring expression comprehension task는 주어진 표현에 알맞는 이미지 영역을 고르는 문제로, 해당 task에서는 ViLBERT와 비슷한 성능을 보여주었다.
Conclusion
결과적으로 VL-BERT 또한 이전의 LXMERT, ViLBERT와 같이 visual-linguistic 모델링 기법을 소개하고 BERT를 기반으로 하여 pre-training 전략과 사용된 embeddings 등에 대해 소개해 봤다. 논문에서 언급되지는 않았지만, 본 모델의 입력 format은 이미지가 하나인 경우만 다루기 때문에 NLVR과 같이 2개의 이미지에 대한 task는 다루지 못한다는 단점이 존재할 것 같다.
논문