BLIP (2022) 논문 리뷰

정예슬·2024년 7월 3일
0

논문 리딩

목록 보기
20/20
post-thumbnail

벌써 두번째 학기 종강을 했다 🥲

논문을 꾸준히 보고 공부는 하고 있는데 (핑계지만) 이게 정리하려면 또 시간이 한참이라.. 글을 올리려면 참 힘들고.. 그래서 안 올리게 되는...

여튼 종강 기념 찾아온 오랜만의 논문 리뷰!

Salesforce의 vision-language model, BLIP에 대한 논문 리뷰다. 첫 multimodal model에 대한 review 인 것 같은데 읽으면서 나름 공부가 많이 된 거 같아서 보람있는 논문이였다.

후속 논문으로 2023년 퍼블리시 된 BLIP-2, InstructBLIP도 있는데 읽고 시간 나면 간단히 리뷰 해보겠다.


BLIP

BLIP : Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation (2022, arXiv) 에 대한 논문 리뷰

BLIP는 Vision-Language pretraining model로, 다양한 multimodal downstream task에서 활용 가능하다.

해당 모델은 LAVIS library나 pyTorch, HuggingFace로 쉽게 사용이 가능하다.

글 중간에 (참조) 부분은 논문에는 적혀있지 않지만 내가 읽으면서 따로 정리한 부분이다.


1. Instruction

최근 Vision-language pretraining은 다양한 multimodal downstream tasks에서 큰 성공을 거두었으나, 현존하는 방법론들은 2가지 주요한 한계점이 존재한다.

첫째, Model perspective에서 대부분의 방법들은 encoder-based model(Radford et al., 2021; Li et al., 2021a)또는 encoder-decoder model(Cho et al., 2021; Wang et al., 2021)을 사용한다. 그러나 encoder-based model은 text generation task(image captioning과 같은)로 직접 전이하기 어렵고, encoder-decoder model은 image-text retrieval task를 성공적으로 수행하지 못한다.

둘째, Data perspective에서 CLIP(Radford et al., 2021), ALBEF (Li et al., 2021a), SimVLM (Wang et al., 2021))등과 같은 대부분의 SOTA 방법들은 웹에서 수집된 image-text pairs로 사전학습된다. 이러한 데이터셋을 scaling up하여 성능을 향상시키더라도, vision-language learning 분야에서 이러한 noisy web text는 최적이 아니다.

본 논문에서는 BLIP : Bootstrapping LanguageImage Pre-training for unified vision-language understanding and generation을 제시하며, BLIP는 현존하는 방법들보다 더 넓은 범위의 downstream task를 수행할 수 있는 새로운 VLP framework이다.

본 논문의 기여는 2가지로, model, data perspective 관점에서 서술한다.

첫째, Multimodal mixure of Encoder-Decoder(MED) : 효율적인 multi-task pretraining과 flexible transfer learning을 위한 새로운 model architecure. MED는 unimodal encoder, image-grounded text encoder, 또는 image-grounded text decoder로써 작동할 수 있다. 본 모델은 3가지 vision-language objectives로 사전학습된다 : 1. image-text contrastive learning(ITC), 2. image-text matching (ITM), 3. image-conditioned language modeling (LM)

둘째, Captioning and Filtering(CapFilt) : noisy image-text pairs로 학습하는 새로운 dataset bootstrapping method. pretrained MED를 2개의 모듈로 finetuning한다.

  • captioner : 주어진 웹 이미지에 대한 synthetic captions을 생성
  • filter : 원본 웹 이미지와 synthetic text에 대한 noisy caption을 제거

Vision-language Pretraining, Knowledge Distillation, Data Augmentation에 대한 선행 방법들을 소개하고 논문에서 제시된 방법론의 차이점을 간단히 언급하고 있다.

본 포스팅에서는 section 2에 대해서 자세히 다루진 않을테니 궁금하면 찾아서 읽어보기.


3. Method

BLIP는 noisy image-text pairs를 통해 학습하는 unified VLP framework로, 본 section에서는 먼저 새로운 model architecture인 MED와 그 pretraining objectives에 대해 소개하고, 다음으로 dataset bootstrapping을 수행하는 CapFilt에 대해 소개한다.

Model Architecture & Pretraining Objectives

BLIP는 visual transformer(ViT)(Dosovitskiy et al., 2021)를 image encoder로서 사용한다. image encoder는 입력 이미지를 patch로 나누고, 이러한 patch들을 sequence of embeddings로 인코딩하는데, 이에 global image feature를 나타내기 위한 [CLS] token을 추가한다. visual feature extraction (Chen et al., 2020)에서 사용하는 pre-trained object detector에 비해 ViT의 사용은 더 연산 친화적이고, 최근 방법들에서 더 사용되고 있다 (Li et al., 2021a; Kim et al., 2021).

understanding, generation 성능을 갖춘 unified model을 pretrain하기 위해서, 본 논문에서는 3개 기능 중 하나로 작동할 수 있는 multi-task model, multimodal mixture of encoder-decoder (MED)을 제시한다.

또한, 2개의 understanding-based objectives와 1개의 generation based objective를 통해 MED를 사전학습한다. 각 image-text pair는 1개의 visual transformer forward pass와 3개의 text transformer forward pass를 필요로 하며, 3개의 loss 연산에 각각 다른 functionality가 활성화된다.

1) Unimodel encoder

image와 text를 각각 인코딩. text encoder는 BERT 구조와 같이, [CLS] token을 text input의 시작점에 삽입하여 문장을 요약하고자 한다.

  • Pretraining method - ITC
    : Image-Text Contrastive Loss(ITC)는 unimodal encoder를 통해 visual transformer와 ext transformer의 feature space를 align하여, image-text pair가 similar representation을 갖도록 학습하고자 한다. 이러한 loss 계산법은 Li et al. (2021a) 을 따라 momentum encoder를 도입하여 특징을 생성하고, 이 momentum encoder로부터 soft labels을 생성하여 잠재적인 positive pair를 고려하기 위한 학습 목표로 사용하게 된다.
  • momentum encoder (참조)
    주로 contrastive learning에서 사용되는 encoder로, 표준 encoder와 함께 사용되어 더 안정적이고 일관된 feature representation을 학습할 수 있도록 돕는다. Momentum Encoder는 표준 인코더의 가중치 업데이트를 일정한 비율로 지연(Delayed Updates)시키는 방식으로 동작한다.

2) Image-grounded text encoder

self-attention(SA) layer와 feedfoward network(FFN) 사이에 cross-attention(CA) layer를 추가적으로 삽입해서 visual information을 얻고자 한다. task-specific [Encode] token을 text에 추가하고, [Encode] token의 output embedding은 image-text pair의 multimodal representation으로 사용한다.

  • Pretraining method - ITM
    : Image-Text Matching Loss(ITM)은 image grounded text encoder를 통해 vision, language 간 fine-grained alignment를 포착하는 image-text multimodal representation을 학습하고자 한다. ITM은 multimodal feature가 주어졌을 때, image-text pair가 positive/negative pair인지를 판별하는 binary classification task이다.

    더욱 informative한 negative pairs를 찾기 위해, 본 논문에서는 Li et al. (2021a)의 hard negative mining strategy를 사용하여, batch 내에서 더 높은 contrastive similarity를 갖는 negative pairs 가 loss 연산에 포함될 확률이 더 높아지도록 한다.

  • self-attention vs. cross-attention (참조)

    Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V

    • self-attention

      • Q,K,VQ,K,V는 모두 동일한 입력 sequence에서 생성된 행렬.
      • 입력 sequence의 각 요소가 동일 sequence 내의 다른 요소에 attend하는 메커니즘 → 각 토큰(단어)이 문맥에 맞춰 다른 단어들과의 관계를 학습
      • 입력 sequence 각 요소가 같은 sequence 내 다른 요소에 attend
      • 병렬 처리가 가능하여 효율적 (입력 sequence 모든 요소에 대해 동시에 attention 연산 수행)
      • 각 단어가 전체 문맥 내 의미를 이해할 수 있도록 함.
    • cross-attention

      • QQ는 decoder의 입력 sequence에서 생성된 행렬, KKVV는 encoder의 출력 sequence에서 생성된 행렬
      • 하나의 sequence가 다른 sequence에 attend하는 메커니즘 → transformer decoder에서 주로 사용되며, 생성된 출력 sequence와 encoder의 출력 사이의 관계를 학습
      • 입력 sequence 각 요소가 다른 sequence (e.g. encoder의 출력)에 attend
      • 서로 다른 두 sequence 간 상호작용을 통한 정보 결합
      • decoder가 현재 생성된 단어와 입력 문장 간 관계 학습에 사용 (번역, 생성 모델)

3) Image-grounded text decoder

image-grounded text encoder의 bidirectional self-attention layer를 casual self-attention layer로 대체한다.

[Decode] token은 sequence의 시작을 알리기 위해 사용되고, sequence의 끝을 알리기 위해 end-of-sequence token이 사용된다.

  • Pretraining method - LM
    : Language Modeling Loss (LM)은 image grounded text decoder를 통해 주어진 이미지에 대한 textual description을 생성하도록 한다.

    LM에서는 cross entropy loss를 최적화하여, text의 likelihood를 최대화하도록 autoregressive하게 모델을 학습한다. 이러한 loss 계산에는 0.1의 label smoothing이 사용된다.

    VLP 분야에서 널리 사용되는 MLM loss에 비해, LM loss는 visual information을 coherent captions로 변환하는 generalization 능력이 뛰어나다.

  • MLM loss vs LM loss (참조)

    • MLM(Masked Language Modeling) Loss
      : 입력 문장에서 일부 단어를 masking하고, 마스킹 된 단어를 예측하도록 학습 (Bidirectional learning). BERT와 같은 모델에 사용됨.

    • LM(Language Modeling) Loss
      : 주어진 컨텍스트를 바탕으로 다음 단어를 예측 (Sequential Learning). GPT와 같은 생성 모델에 사용됨.

  • label smoothing (참조)
    encoding 된 label vector를 약간의 smoothing을 통해 변경하여, 모델이 각 클래스에 대해 너무 확신을 갖지 않고 일반화된 예측을 하도록 유도 (주로 분류 문제에서 사용)

multi-task learning에서 효율적인 pretraining을 수행하기 위해서, text encoder와 text decoer는 SA layer를 제외한 모든 파라미터를 공유한다. 그 이유는, encoder와 decoder의 차이가 SA layer에서 포착되기 때문이다. encoder는 bi-directional self-attention을 통해 현재 input token에 대한 representation을 구축하고, 반면 decoder는 casual self-attention를 사용하여 next token prediction을 수행하고자 한다.

CA layer와 FFN은 encoding, decoding task에서 유사하게 작용하므로, 이러한 layer들을 공유하는 것은 훈련 효율성을 향상시키면서 더불어 multi-task learning의 혜택을 볼 수 있게 된다.

CapFilt

human annotation 의 image-text pair data (e.g. Lin et al., 2014의 COCO data)는 코스트 문제로 인해 고품질의 데이터를 확보하는 데는 한계가 있고, 이로 인해 최근 연구에서는 web에서 자동 수집된 pair data를 많이 사용한다. 그러나 이러한 데이터는 이미지의 visual content를 정확히 묘사하지 않는 경우가 많으며, 이러한 상황은 vision-language alignment를 학습하는 데 noisy signal을 발생시킨다.

본 논문에서는 이러한 web collected data를 suboptimal한 것으로 여기며, text corpus의 품질 향상을 위하여 Captioning and Filtering (CapFilt) 라는 새로운 방법론을 제안한다.

CapFilt는 2개의 모듈 captionerfilter를 도입한다.

  • captioner : 주어진 web images에서 caption을 생성
  • filter : noisy image-text pairs를 제거

이 captioner와 filter는 동일하게 사전학습된 MED model을 통해 initialize되고, COCO dataset에서 개별적으로 finetuning된다. (finetuning은 lightweight procedure 임)

captionerimage-grounded text decoder로, LM objective로 finetuning되어 주어진 이미지에 대한 text decoding을 수행한다. web images IwI_w가 주어졌을 때, captioner는 이미지 하나 당 synthetic captions TsT_s를 생성한다.

filterimage-grouned text encoder로, ITC 및 ITM objectives로 finetuning되어 텍스트가 이미지에 매칭되는지를 학습한다. filter는 original web text TwT_w와, syntethic texts TsT_s에서 noisy text를 제거한다. 이 때, text가 “noisy”하다고 판별되는 조건은 ITM head에서 해당 text가 image와 match를 이루지 않는다고 판별했을 경우이다.

마지막으로, filtered image-text pairs를 human-annotated pairs와 결합하여 새로운 데이터셋을 생성하고, 이를 새로운 모델 pretraining에 사용한다.


4. Experiments and Discussions

Effect of CapFilt

본 논문에서는 먼저 실험을 통해 CapFilt의 효과를 입증한다.

위 Table을 보면, Captioner 또는 Filter 한가지만 적용하여도 성능 향상이 관찰되었고, Captioner와 Filter를 모두 적용하면 큰 성능 향상을 확인할 수 있다.

또한, 더 큰 dataset 및 backbone을 사용할 때 CapFilt가 성능을 더욱 향상시킴을 관측하며 data size와 model size 측면에서 CapFilt의 scalability를 입증한다.

더불어 ViT-L과 large captioner, filter를 같이 사용하면, base model 성능 또한 향상시킬 수 있다는 것을 입증하였다.

Diversity is Key for Synthetic Captions

두번째 실험은 synthetic caption을 생성하는 decoding method에 대한 실험이다. CapFilt에서는 necleus sampling (Holtzman et al., 2020)을 사용하여 synthetic caption을 생성한다. Nucleus sampling은 stochastic decoding method로, 각 token은 누적 확률 질량이 임계값 pp (본 실험에서 p=0.9p=0.9 사용)를 초과하는 token set에서 샘플링된다.

위 Table을 보면, Necleus를 가장 높은 확률의 caption을 생성하는 deterministic decoding method인 beam search와 비교하고 있다.

Nucleus sampling은 filter에서 noisy ratio가 더 높음에도 불구하고, 더 좋은 성능을 보인다. 본 논문에서 이러한 결과는, Nucleus sampling이 더 다양하고 새로운 정보를 많이 포함하는 caption을 생성하기 때문이라고 추정하고 있다. 반면, beam search 방식은 데이터셋에서 안전하고 일반적인 caption을 생성하는 경향이 있어 추가적인 지식을 덜 제공하게 된다.

Parameter Sharing and Decoupling

세번째 실험은 text encoder와 decoder의 parameter sharing에 대한 실험이다.

pretraining 단계에서 encoder와 decoder는 SA layer를 제외한 모든 parameter를 공유하는데, 이러한 parameter sharing 전략에 따른 pretrained model을 평가하고자 한다.

위 Table을 보면, SA layer를 제외한 모든 layer를 공유하는 것(All except SA)이 더 높은 성능을 나타내며, 모델 크기를 줄여 훈련 효율성을 향상시킨다는 것을 알 수 있다. SA layer를 공유할 경우, encoding과 decoding 작업 간 충돌로 인해 모델의 성능이 저하된다.

위 Table에서는 Captioner와 Filter가 pretraining과 동일한 방식으로 파라미터를 공유할 경우의 효과를 연구한다. Captioner와 Filter가 파라미터를 공유하게 되면 downstream task의 성능이 감소하며, 이는 주로 confirmation bias (확증 편향) 때문이라고 본다. Captioner에서 생성된 noisy caption은 Filter에 의해 걸러질 확률이 적고, 이에 대한 결과는 nose ratio의 하락(25%→8%)으로 확인할 수 있다.


5. Comparision with State-of-the-arts

본 section에서는 다른 VLP methods와 BLIP를 다양한 vision-language downstream task를 통해 비교해 본다.

Image-Text Retrieval

COCO, Flickr30K dataset의 TR(image-to-text retrieval), IR(text-to-image retrieval)성능에 대해 평가한다.

위 Table에서 BLIP는 COCO 평균 R@1에서 이전 최고 모델인 ALBEF를 +2.7% 능가하며, 기존 방법들에 비해 상당한 성능 향상을 이룬다.

또한, COCO에서 finetuning 된 모델을 직접 Flickr30K로 전이하여 zero-shot retrieval을 수행하였는데, 그 결과 또한 현존하는 방법들을 큰 차이로 능가했다. (아래 Table 참조)

Image Captioning

NoCaps (Agrawal et al., 2019), COCO dataset에서 Image Captioning에 대해 평가한다.

위 Table에서 BLIP는 유사한 양의 pretraining data를 사용하는 방법들에 비해 우수한 성능을 보인다. 또한, 1.29억 개의 이미지를 사용한 BLIP는 2억 개의 이미지를 사용한 LEMON에 필적하는 성능을 보인다. 반면 LEMON은 pretrained object detector와 더 높은 해상도의 입력 이미지(800×1333)를 필요로 하기 때문에, detector-free에 더 낮은 해상도(384×384)를 사용하는 BLIP보다 추론 시간이 상당히 느리다.

Visual Question Answering (VQA)

VQA(Antol et al., 2015)는 입력 이미지와 질문이 주어졌을 때, 모델이 이에 대한 답을 예측하는 task이다. 본 논문에서는 Li et al. (2021a)를 따라 VQA를 답변 생성 task로 간주하여, 개방형 VQA를 가능하게 한다.

위 Figure (a)에 나타난 바와 같이, finetuning동안에 pretrained model을 재구성하여 image-question을 먼저 multimodel embedding으로 encoding한 후, 이에 대한 답변을 decoder에 전달한다.

VQA 모델은 ground truth answers를 target으로 하여 LM loss로 finetuning된다.

위 Table을 보면, BLIP는 14M 이미지를 사용한 test set에서 ALBEF를 +1.64%만큼 능가한다. 또한 BLIP는 1.29억개의 이미지를 사용하여, 13배 더 많은 이미지를 사용하고 additional convolution stage와 larger vision backbone을 갖는 SimVLM보다 좋은 성능을 발휘한다.

Natural Language Visual Reasoning (NLVR)

NLVR2^2(Suhr et al., 2019)은 모델에 주어진 문장이 이미지 쌍을 설명하는지 예측하는 task이다.

pretrained model을 약간 수정하여 두 개의 이미지를 대상으로 추론 할 때, 이전 접근 방식(Li et al., 2021a; Wang et al., 2021)들 보다 더 계산 효율적인 architecture를 만든다.

위 Figure(b)와 같이 image-grounded text encoder의 각 transformer block에는 2개의 cross-attention layer가 2개의 입력 이미지를 처리할 수 있도록 하고, 이들의 출력은 병합되어 FFN에 전달된다. 이 2개의 CA layer는 동일한 pretrained weights로 initialize되고, merge layer는 encoder의 첫 6개의 layer에서 단순한 average pooling을 수행한 다음, 6~12번째 layer에서 concatenation한 후 linear projection을 수행하게 된다. MLP classifier는 [Encode] token의 output embedding에 적용된다.

위 Table에서 BLIP는 ALBEF를 제외한 모든 기존 방법들의 성능을 능가한다. 흥미로운 점은 추가적인 웹 이미지가 NLVR2^2의 성능에 큰 이점을 주지 못한다는 것인데, 이는 web data와 downsteam data의 도메인 차이 때문일 수 있다.

Visual Dialog (VisDial)

VisDial (Das et al., 2017)은 natural conversational setting에서 VQA의 확장형으로, 모델이 image-question pair 뿐만 아니라, 대화 기록과 image caption을 함께 고려하여 답변을 예측하는 task이다.

본 논문에서는 모델이 답변 후보 풀을 rank하는 discriminative setting을 따른다 (Gan et al., 2019; Wang et al., 2020; Murahari et al., 2020).

위 Figure (c)와 같이, image와 caption embedding을 연결하고, cross-attention을 통해 dialog encoder에 전달한다. dialog encoder는 ITM loss를 사용하여 전체 대화 기록과 image-caption embedding을 고려하여 질문에 대한 답변이 참인지 거짓인지 구별하도록 훈련된다.

위 Table의 결과와 같이, VisDial v1.0 validation set에서 BLIP가 SOTA 성능을 달성한다.

Zero-shot Transfer to Video-Language Tasks

아래 2개의 Table에서는 text-to-video retrieval과 video question answering에 대한 zero-shot transfer를 수행한다. video input을 처리하기 위해서, 각 video에 nn개의 frame을 균일하게 샘플링(retrieval은 n=8n=8, QA는 n=16n=16)하고 frame features를 단일 sequence로 concatenate 했다. (이러한 방식은 모든 시간 정보를 무시하게 됨)

domain difference와 temporal modeling이 부족함에도 불구하고, BLIP 는 2개의 video-language task에서 SOTA 성능을 달성한다. text-video retreival의 경우 video dataset에서 finetuning된 모델보다 +12.4% 더 높은 R@1 성능을 보인다.

BLIP를 temporal modeling과 함께 video-language model로 initialize하고 video data에 finetuning하면 추가적인 성능 향상이 가능하게 된다.


6. Additional Ablation Study

CapFilt의 성능 향상이 longer training에서 기인한것이 아님을 증명하는 ablation study와, new model은 bootstrapped dataset에서 훈련되어야 함을 증명하는 ablation study를 추가로 수행한다.

section 6 또한 본 포스팅에서는 자세히 다루지 않는다.


7. Conclusion

본 논문은 understanding-based/generation-based task를 포함한 다양한 downstream vision-language task에 대한 SOTA 성능을 달성하는 새로운 VLP framework, BLIP를 제시한다. BLIP는 다양한 synthetic captions을 주입한 대규모의 noisy image-text pairs에서 부트스트랩된 데이터셋을 사용하여 MED(multimodal mixture of encoder-decoder model)를 사전학습한다.

이러한 부트스트랩 데이터셋을 향후 vision-language 연구를 위해 공개한다. BLIP 의 추가적인 성능 향상을 위한 몇 가지 방법은 다음과 같다.

(1) dataset bootstrapping을 여러 번 수행

(2) synthetic caption을 여러개 생성하여 pretrainng corpus를 더욱 확장

(3) 여러 개의 서로 다른 Captioner, Filter를 훈련하고 CapFilt에서 이들을 결합하는 model ensemble

profile
춘식이랑 함께하는 개발일지.. 그런데 이제 먼작귀를 곁들인

0개의 댓글