BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
Vision-Language Pre-training (VLP) has advanced the performance for many vision-language tasks. However, most existing pre-trained models only excel in either understanding-based tasks or generation-based tasks. Furthermore, performance improvement has bee
arxiv.org
0. Abstract
본 논문에서는 vision-language understanding과 genration task 모두에 유연하게 전이될 수 있는 BLIP 프레임워크를 제안한다. BLIP은 합성된 caption을 만드는 bootstrapping 방식을 이용하여, 노이즈가 있는 웹 데이터를 효과적으로 활용하고 필터가 노이즈가 있는 데이터를 제거한다.
1. Introduction
기존 VLP 방법론들은 두 가지 주요 한계점이 있다.
1. 모델 관점
대부분 방법들은 encoder-based 모델이나 encoder-decoder 모델 구조를 채택하는데, encoder-based 모델은 text generation task에 직접 전이되는 것이 간단하지 않고 encoder-decoder 모델은 이미지-텍스트 retrieval task에서 우수하지 않다.
2. 데이터 관점
CLIP, ALBEF, SimVLM과 같은 대부분의 SOTA 모델은 웹으로부터 수집된 이미지-텍스트 쌍으로 사전 학습하는데, 노이즈가 있는 웹 텍스트는 vision-language learning에 최적이 아니다.
본 논문에서 제안하는 BLIP(Bootstraping Language-Image Pre-training for unified vision-language understading and generation)은 기존 방법론들보다 더 많은 downstream task를 가능하게 하며, 모델 관점과 데이터 관점 각각에서 기여를 한다.
(a) Multimodal mixture of Encoder-Decoder (MED)
MED는 unimodal encoder, image-grounded text encoder, image-grounded text decoder로 작동할 수 있다.
image-text contrastive learning, image-text matching, image-conditioned language modeling 세 가지 목적으로 훈련된다.
(b) Captioning and Filtering (CapFilt)
노이즈가 있는 이미지-텍스트 쌍으로부터 학습하기 위한 boostrapping 방식의 새로운 데이터셋이다.
사전 학습된 MED를 웹 이미지에서 합성된 caption을 만드는 captioner와, 원래의 웹 텍스트와 합성된 텍스트에서 노이즈 caption을 제거하는 filter 역할로 사용한다.
본 연구에서는 다음과 같은 핵심 발견을 하였다.
- captioner와 filter는 함께 작용하여 caption을 bootstrapping함으로써 다양한 downstream task에서 우수한 성능을 얻는다.
- BLIP이 여러 vision-language task에서 SOTA를 달성한다.
2. Related Work
2.1. Vision-language Pre-training
많은 방법론들이 웹으로부터 수집한 노이즈가 있는 이미지-텍스트 쌍으로부터 학습하는데, 데이터셋을 확장함으로써 얻어진 성능 향상에 가려져 노이즈의 부정적인 영향이 매우 간과되어 왔다.
vision과 language task를 통합하려는 많은 시도가 있었는데, 가장 큰 문제는 understaing-based tasks(e.g. image-text retreival)과 generation-based tasks(e.g. image captiong) 모두가 가능하도록 모델을 설계하는 것이다.
2.2. Knowledge Distillation
Knowledge distillation (KD)는 teacher 모델로부터 지식을 증류함으로써 student 모델의 성능을 향상시키는 것을 목표로 한다.
Self-distillation은 teacher와 student가 동일한 사이즈를 가지고 있는 KD의 특별한 경우이다.
단순히 student 모델이 teacher 모델과 같은 예측을 하도록 하는 기존 방법론들과는 다르게, CapFilt는 captioner가 의미적으로 풍부한 합성된 caption을 통해 지식을 증류하고, filter가 노이즈가 있는 caption을 제거함으로써 지식을 증류하는, KD를 수행하는 효과적인 방법으로 해석될 수 있다.
2.3. Data Augmentation
computer vision에 비해, language task에서는 data augmentation(DA)가 덜 간단하다. 저자원 language-only task에 초점을 맞춘 방법들과 달리, 본 연구에서 사용하는 방법은 대규모 vision-language pre-training에서 합성된 caption의 장점을 보여준다.
3. Method
3.1. Model Architecture
이미지 encoder로는 ViT를 사용하여, 입력 이미지를 패치로 분할한 후 이미지 전체 특성을 나타내는 [CLS] 토큰과 함께 embedding 시퀀스로 넣는다.
understanding과 generation 능력을 모두 가진 통합된 모델을 사전 훈련하기 위해, multimodal mixture of encoder-decoder(MED)를 제안한다. 이는 세 가지 기능으로 작동할 수 있는 multi-task 모델이다.
(1) Unimodal encoder
이미지와 텍스트를 각각 encoding한다. 텍스트 encoder는 BERT와 같고, [CLS] 토큰이 텍스트 앞에 추가되어 문장을 요약한다.
(2) Image-grounded text encoder
텍스트 encoder의 각 transformer block에서 self-attention(SA)과 feed forward network(FFN) 사이에 추가적인 cross-attnetion(CA) layer를 추가하여 시각 정보를 주입한다.
task-specific한 [Encode] 토큰이 텍스트에 추가되고, [Encoder]의 출력 embedding이 이미지-텍스트 쌍의 multimodal representation으로 사용된다.
(3) Image-grounded text decoder
image-grounded text decoder는 image-grounded text encoder의 양방향 self-attention layer를 casual self-attention layer로 바꾼 것이다.
[Decode] 토큰은 시퀀스 시작을 나타내는데 사용되고, end-of-sequence 토큰은 끝을 나타내는데 사용된다.
3.2. Pre-training Objectives
사전 학습동안 두 개의 understanding-based 목표와 하나의 generation-based 목표, 총 세 가지의 목표를 최적화한다.
각 이미지-텍스트 쌍은 visual transformer를 통해 한 번의 forward, text transformer를 통해 세 번의 forward를 진행하고, 각 기능이 아래의 세 loss를 계산하기 위해 사용된다.
- Image-Text Contrastive Loss (ITC)
ITC loss는 unimodal encoder를 활성화한다.
이미지-텍스트 positive 쌍은 비슷한 representation을 갖고, negative 쌍은 멀어지도록 visual transformer와 text transformer의 feature를 align하는 것을 목표로 한다.
ALBEF의 ITC loss를 따르며, momentum encoder를 사용하여 feature를 생성하고 momentum encoder로부터 생성된 soft label을 학습 target으로 사용한다.
- Image-Text Matching Loss (ITM)
ITM은 image-grounded text encoder를 활성화한다.
vision과 language 사이의 세밀한 alignment를 포착하는 이미지-텍스트 multimodal representation을 학습한다.
ITM은 이진 분류 task이며, ITM head(linear layer)를 사용하여 주어진 multimodal feature에 대해 이미지-텍스트 쌍이 positive(matched)인지 negative(unmatched)인지 예측한다.
contrastive 유사도가 더 높은 negative 상이 loss 계산에서 선택될 가능성이 더 높도록 하는 hard negative mining 전략을 사용한다.
- Language Modeling Loss (LM)
LM은 image-grounded text decoder를 활성화하며, 주어진 이미지에 대해 텍스트 설명을 만드는 것을 목표로 한다.
cross entropy loss를 최적화하여 모델이 autoregressive 방식으로 텍스트의 likelihood를 최대화하도록 학습한다.
VLP에 일반적으로 사용되는 MLM loss와 다르게, LM은 일반화 능력을 가진 모델이 시각 정보를 caption으로 바꿀 수 있도록 한다.
text encoder는 양방향 self-attention을 사용하여 현재 input 토큰의 representation을, text decoder는 casual self-attention을 사용하여 다음 토큰을 만들도록 한다. 두 구조는 SA를 제외한 모든 파라미터를 공유하여 학습 효율성을 높인다.
3.3. CapFilt
최근 연구들은 웹으로부터 수집된 대규모 이미지-텍스트 쌍 ${(I_w, T_w)}$을 활용하는데, 텍스트가 이미지의 내용을 정확히 설명하지 않으며 vision-language alignment를 학습하기에 최적이 아니다.
Captioning and Filtering(CapFilt)는 텍스트 말뭉치의 퀄리티를 개선하기 위한 새로운 방법이다.
captioner와 filter 모두 동일한 사전 학습된 MED 모델로 초기화되고, human-annotated인 COCO 데이터셋으로 각각 fine-tuning한다.
captioner는 image-grounded text decoder 구조로, 웹 이미지가 주어졌을 때 caption을 생성한다. LM 목표로 fine-tuning되어 주어진 이미지에 대해 텍스트를 decoding한다. 웹 이미지 $I_w$가 주어졌을 때, 합성 caption $T_s$를 생성한다.
filter는 image-grounded text encoder 구조로, 노이즈가 있는 이미지-텍스트 쌍을 제거한다.
ITC와 ITM 목표로 fine-tuning 되어 이미지와 매칭되는 텍스트인지를 학습한다.
filter는 원본 웹 텍스트 $T_w$와 합성 텍스트 $T_s$에서 ITM head가 이미지에 대해 unmatched 텍스트라고 예측하면, 해당 텍스트를 제거한다.
최종적으로 filtering된 이미지-텍스트 쌍과 human-annotated 쌍을 결합하여 새로운 데이터셋을 만들고, 새로운 모델을 사전 학습하기 위해 사용한다.