ViLBERT는 VisualBERT와 매우 비슷한 시기에 나온 논문으로, 이미지 content와 언어 content의 task-agnostic joint representation을 학습하기 위한 BERT 기반의 two-stream attention을 제안한다. Two-stream transformer layer는 visual/textual 입력을 각각 분리된 stream으로 처리하며, co-attentional transformer layer로 상호작용한다. ViLBERT는 Conceptual Captions 데이터셋을 사용해 pre-training을 진행하고, transfer learning 후 4가지 task에 대해 평가된다. 기존의 모델들과 비교하여 상당한 성능 발전이 있었으며, 4개의 task에서 모두 SOTA를 달성한다.
Methods
해당 섹션에서는 모델의 two-stream 모델링 및 사용된 objective 등에 대해 설명한다.
BERT
ViLBERT는 BERT 모델을 기반으로 multi-modality를 구현했다. BERT는 해당 포스트에서 자세히 설명하지 않고, 포스트를 참고해주세요.
ViLBERT
BERT은 언어 모델로써 성공적인 결과를 보였고, 이에 따라 language와 visual content의 joint representation을 학습할 수 있는 ViLBERT를 제안한다.
Multimodal BERT를 구현하는 가장 간단한 방법은 간단히 클러스터링으로 이산화시켜 텍스트 입력과 동일하게 처리하고, pre-trained BERT로 초기 상태를 정의하는 것이다. 하지만 이런 접근 방식을 사용할 경우 아래와 같이 세가지 문제점이 존재한다.
- 클러스터링으로 인한 이산화 에러가 발생할 수 있으며, 이로 인해 중요한 visual detail을 잃을 수 있다.
- 두 modality를 동일하게 처리하며, 내재적인 복잡성이나 입력 representation의 추상화 정도 등에 따라 다른 수준의 처리가 필요하다는 점을 무시하게 된다.
- Pretrained 가중치에 강제로 visual input을 수용시키는 것은 학습된 BERT를 손상시킬 수 있다.
그대신에, ViLBERT는 two-stream architecture를 채택하여 각 modality를 따로 모델링하고 attention-based interaction을 하는 방식으로 구현되었다. 이러한 접근 방식은 각 modality에 대한 network 깊이를 달리하는 것을 가능하게 하고, 이런 상황에서의 cross-modal connection을 가능하게 한다.
ViLBERT의 two-stream 구조는 위 그림과 같다. 두개의 병렬화된 BERT-style 모델을 포함하고 있으며, 이미지 영역과 텍스트 segment 간의 상호작용이 이뤄진다. 각 stream은 transformer block(TRM)의 집합으로 구성되며, Co-TRM을 통해 alignment 학습이 진행된다.
Co-Attentional Transformer Layers
위 그림은 Co-TRM이 어떤 방식으로 계산되는지를 보여준다. Visual representation $H_V^{(i)}$과 Linguistic representation $H_W^{(j)}$이 각각 주어질 때, Query는 그대로 입력되고 Key와 Value가 교차 입력된다. 이에 따라 visual stream에서는 image-conditioned language attention을 계산하고, linguistic stream에서는 language-conditioned image attention을 게산하게 된다.
Image Representations
ViLBERT는 pre-trained 객체 인식 network을 사용해 visual feature를 추출하여 이미지 영역 feature를 생성한다. 텍스트와 달리 이미지 영역은 따로 정의된 순서가 없기 때문에 공간적인 위치 및 region이 차지하는 면적을 사용해 5-d positional vector를 생성한다. 그 다음 visual feature의 차원과 매칭되도록 변형된 뒤 더해진다.
Training Tasks and Objectives
저자들은 ViLBERT을 pre-training하기 위해 다음의 두 가지 task를 고안한다.
- (a): 입력의 15%을 마스킹하고, 마스킹된 image region feature에 대해서는 해당되는 label을 예측하며 마스킹된 텍스트 토큰에 대해서는 원래의 텍스트를 예측한다.
- (b): Image-text pair가 주어질 때, 모델은 alignmet 여부를 출력한다.
Experiments
ViLBERT는 위의 네 가지 benchmark에서 평가된다. 모델 평가 과정에 비교 기준을 위해 다음 두 가지 baseline 모델들을 세팅한다.
- Single-Stream: 단일 BERT 구조를 사용하는 모델로, two-stream architecture를 사용하는 것의 영향력을 관찰하기 위한 baseline 모델
- $ViLBERT^{+}$: 앞에서 설명한 pre-training을 거치지 않은 ViLBERT 모델이다.
ViLBERT은 평가가 진행된 모든 task들에서 SOTA 성능을 큰 폭으로 능가했으며, 다른 baseline과 결과를 비교했을 때, 논문에서 제시된 two-stream architecture와 pre-training procedure가 중요한 영향을 준다는 것을 알 수 있다.
Conclusion
ViLBERT는 visual-and-language modality를 효과적으로 학습하기 위한 접근 방법을 제안했다. 효율적인 alignment 학습을 위해 two-stream architecture를 사용했으며, cross-modality pre-training을 위한 두 가지 objective를 제시했다. 결과적으로 ViLBERT는 평가가 진행된 4개의 benchmark에서 모두 SOTA를 달성했으며, 사용된 method가 성능 증가에 매우 효과적임을 입증했다.