[2102.03334] ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

1. Introduction

Vision-Language Model 순서

Vision-and-Language Pre-training(VLP)은 다양한 Vision-Language downstream task에서 성능을 향상시켰다. NLP 분야에서는 2017년 이후Transformer가 표준으로 자리 잡았지만, 이미지 처리에서는 상황이 많이 달랐다. 저자는 이미지의 픽셀을 의미 있고 분산된 feature으로 변환하는 것이 VLP의 핵심이라고 강조한다. 이미지의 픽셀을 그대로 Transformer에 입력하면 시퀀스가 너무 길어져 모델이 이를 처리할 수 없을 것이다.

이를 해결하기 위해 등장한 것이 ViT(Vision Transformer)이다. ViT는 이미지를 16 x 16 크기의 patch로 나누어 특징을 추출하고, 이를 Transformer에 입력하여 학습을 진행하였다.

ViT 이전의 접근 방식

2021년 ViT가 등장하기 전에는 VLP 대부분의 작업이 Object Detector에 의존하였다고 저자는 말한다.

왜 object detector를 선택해야 했을까?

  1. 의미 있는 분산 feature를 추출하기 위해
  2. 당시 Vision-Language 작업(VQA, Visual Captioning, Image Text Retrieval)이 Object와 밀접하게 연관되어 있었기 때문
    예를 들어, VQA 작업에서는 이미지에서 특정 객체의 존재 여부를 묻는 질문이 자주 등장한다.

그러나 Object Detector을 이용한 이미지 feature extraction은 비용이 매우 많이 들었고, 이를 줄이기 위한 다양한 시도가 있었다. 그중 하나가 Pixel-BERT다. Pixel-BERT는 신경망을 사용하여 이미지 feature를 추출하고, 이를 시퀀스 토큰으로 취급하여 Transformer에 입력함으로써 Object Detector 없이도 학습을 진행한다. 하지만 여전히 계산량이 텍스트보다는 컸고 성능은 기존보다 떨어졌다.

ViLT 이전 대부분의 VLP 연구는 최종 성능 향상을 위해 visual embedder를 개선하는 데 초점을 맞추고 있었다. 훈련 중에 Region Features를 캐시에 저장하여 추출 부담을 줄였지만, 실제 응용 프로그램에서는 실시간 데이터 처리가 요구되기 때문에 이는 현실적인 문제가 있었다.

그래서 저자의 초점이 이미지 feature을 추출하는 더 가볍고 간단한 방법을 설계하는 데 있다고 말한다. 이를 위해 patch를 임베딩으로 변환하는 간단한 linear projection을 사용한다.

연구 질문

결론적으로 이 논문은 "Convolution과 Region Supervision 없이도 Vision-Language Task에서 경쟁력 있는 성능 달성할 수 있는 Vision-Language Transformer Model이 가능한가?"라는 질문에 답하고자 한다.

Figure 1 분석

Figure 1에서 Objct Detector가 얼마나 비용이 비싼지 명확하게 확인할 수 있다. Backbone은 75ms, Object Detection은 810ms가 소요된다. 이에 대한 해결책으로 Pixel-BERT는 Object Detector를 제거하고 CNN를 이용하여 마지막 층의 feature map을 추출한 후 이를 시퀀스로 변환하여 45ms로 연산 시간을 단축하였다.
하지만 ViLT 저자들은 ViT의 패치 임베딩이 매우 효율적이었기에 Pixel-BERT의 CNN Backbone을 Linear Embedding Layer로 대체하였다. 그 결과 연산 시간이 0.4ms로 줄어들었으며, 성능 테스트에서도 Object Detector를 사용하는 모델에 뒤치지 않았다.

ViLT의 3가지 기여

  1. ViLT는 Vision-and-Language에서 가장 단순한 모델을 구현하였다. 모델 간의 통합을 위해 transformer를 사용하는 것 외에는 별도의 모델이 필요 없으며, 이를 통해 실행 시간과 파라미터 수를 크게 줄였다.
  2. 계산의 복잡성이 줄이면서도 성능이 유지할 수 있었다.
  3. 훈련 중에 더 많은 data augmentation 방법을 도입하였다. 멀티모달 학습에서는 이미지와 텍스트 간의 일치를 중요시하기 때문에 과도한 증강이 제한적이었지만, ViLT는 whole word maskingimage augmentations를 처음 시도한 논문이였다.

2. Background

VLP 모델 분류

저자는 VLP 모델을 2가지 기준으로 분류하였다.
1. 이미지와 텍스트의 표현력이 균형 잡혀있는가? (각 모델에서 어떤 특징을 추출하고 전처리하는 방법)

  • 이미지와 텍스트 모두에서 얼마나 많은 파라미터와 연산 자원을 사용하는지를 기준으로 판단한다.
  • 논리적으로는 이미지와 텍스트 모두 매우 중요한 모델이기에 비슷해야 한다.

2. 두 모델을 통합하는 방법

이를 바탕으로 저자는 VLP 모델을 4가지 범주로 나누고, 이를 Figure 2에 나타냈다.

Figure 2 분석


VE: Visual Embedding
TE: Textual Embedding
MI: Modality Interaction

(a) Visual Semantic Embedding(VSE): Visual Embedding이 텍스트에 비해 훨씬 많은 자원을 사용하며, 얕은 신경망을 이용해 통합한다.
(b) CLIP: 이미지와 텍스트에 동일한 계산 자원을 사용하지만, 간단한 통합 방식으로 특정 작업에는 적합하지만 VQA나 Visual Reasoning 같은 복잡한 작업에는 성능이 떨어진다.
(c) ViLBERT, UNITER: Object Detector를 사용해 많은 자원을 소모하지만, 대부분의 멀티모달 작업에서 좋은 성능을 보인다.
(d) ViLT: Patch Embedding을 도입하여 자원 소모는 적으면서도 효율성을 극대화한 모델이다.

모달리티 상호작용 스키마


(Chen et al., 2023)

모델의 통합 방식을 크게 두 가지로 나눌 수 있다.
1. Single-Stream Architecture

  • 하나의 모델만 사용한다.
  • 이미지와 텍스트를 연결(concat)하여 사용한다.

2. Dual-Stream Architecture

  • 두 개의 모델을 사용한다.
  • 두 모델은 각자의 입력을 처리하고, 단일 모델에 포함된 정보를 깊이 파고든 다음, 특정 시점에서 통합한다.

Dual-Stream Architecture가 일부 task에서 더 좋은 성능을 보이지만 더 많은 파라미터를 필요로 하기 때문에 논문에서는 Single-Stream Architecture를 채택하였다.

Visual Embedding Schema

이전에 말한 Region Feature와 Grid Feature의 단점들 때문에 저자는 Patch Projection Layer를 한 층 사용하여 이미지 feature를 직접 추출할 것이다. 이는 이전에 CNN 백본과 object detector을 사용했던 것보다 훨씬 빠르면서도 효과는 비슷하다.

3. Vision-and-Language Transformer

Figure 3 분석


L: 텍스트 시퀀스 길이
N: 이미지 시퀀스 길이
H: 토큰 임베딩의 차원

ViLT는 Single-Stream Architecture**를 사용하며, 텍스트와 이미지가 결합된 입력이 Transformer Encoder에 전달된다. 텍스트는 BERT Tokenizer를 통해 word embedding으로 변환되어 텍스트 시퀀스가 생성되고, 이미지는 patch embedding으로 처리되어 이미지 시퀀스가 만들어진다.

첫 토큰인 Extra learnable [class] embedding은 텍스트와 이미지의 CLS 토큰이다.
회색 부분(Model-type embedding)토큰이 어떤 모델인지를 나타낸다. Single-Stream에서는 텍스트와 이미지가 연결되어 입력되기 때문에 모델에게 어떤 것이 텍스트이고 이미지인지 알려주지 않으면, 모델은 스스로 알지 못한다. 그래서 텍스트는 0 이미지는 1로 표현해 주게 된다.
초록 부분(Token position embedding)은 각 토큰의 순서를 나타내어 입력이 순서에 따라 처리되도록 돕는다.

그림상 세 가지 embedding이 함께 놓여 있어서 마치 이들이 연결되는 것처럼 보일 수 있지만 실제로는 그렇지 않다. 원래 텍스트 또는 이미지의 임베딩에 Model-type embedding과 Token position embedding이 서로 더해져 하나로 결합되어 전체 시퀀스로 반환된다.
결과적으로, Transformer Encoder의 입력은 (N + L + 2) x H가 된다.

Loss

ViLT는 2가지 주요 Loss 함수를 사용하여 모델을 학습한다.
1. Image Text Matching Loss

  • 이미지와 텍스트가 올바르게 매칭되는지 평가하는 손실 함수이다. 2가지 유형으로 적용된다.
    1. 이미지-텍스트 방향 Loss: 주어진 이미지에 대해 관련된 텍스트가 다른 텍스트보다 더 가깝게 위치하도록 학습한다.
    2. 텍스트-이미지 방향 Loss: 반대로, 주어진 텍스트에 대해 관련된 이미지가 다른 이미지보다 더 가깝게 위치하도록 학습한다.
  • 출력의 첫 번째 토큰만([CLS])을 이용한다.
  • 다시 말해 여기서 feature는 1xH, Pooler는 H x H 형태의 가중치 행렬이다. 따라서 1 x H의 출력을 얻는다. FC 레이어를 거쳐 2가지 유형의 작업이 수행된다.
  • 추가적으로 Word Patch Alignment라는 작은 Loss도 추가로 사용하였다.
    - 텍스트와 이미지 특징 간의 유사성을 계산한다.
    - 텍스트와 이미지 출력의 확률 분포로 사용하고 optimal transport(IPOT) 방법을 활용하여 두 분포 간의 거리(alignment score)를 계산한다.

2. Masked Language Modeling Loss

  • 단어의 일부분을 MASK하여 예측하는 작업이다.
    이미지에는 적용하지 않았는데 그 이유는 아직 BEiT와 MAE 논문이 발표되기 전이었기 때문이다.
    - 현재는 이를 활용한 논문이 있다. [2206.01127] VL-BEiT: Generative Vision-Language Pretraining
  • 이미지 토큰을 텍스트로 본다면 BERT
  • 이미지 토큰만을 본다면 ViT

Data Augmentation

1. Whole Word Masking

한 단어 전체를 Masking 하는 기법이다.

그럼 왜 이렇게 할까?

예) giraffe -> ["gi", "##raf", "##fe"]
giraffe를 실제로 BERT와 같은 tokenizer를 이용하여 위와 같이 subword로 나눈다.
여기서 만약 "##raf"를 MASK한다고 가정해보자.
["gi", [MASK], "##fe"]
gi로 시작하고 fe로 끝나는 단어는 많지 않을 것이다. 그럼 모델은 이미지에 대한 정보를 전혀 참고하지 않고 텍스트 문맥만으로 "##raf"임을 쉽게 예측할 수 있다. 한 단어 전체를 Masking 하여 이미지 정보가 활용되지 않는 문제를 방지한다.

2. Image Augmentation

Object Detector로 이미지를 처리하던 VLP 모델들은 훈련을 시작할 때 모든 특성을 미리 추출하여 캐시에 저장해두고 data augmentation을 하기 위해서는 다시 특성을 추출하는 작업을 해야 했기에 비용과 시간적인 측면에서 augmentation이 제한적이었다.

ViLT는 RandAugment를 사용하여 이미지 증강을 더 적극적으로 도입했다. 다만, 이미지-텍스트 일치성을 유지하기 위해 color inversion과 cutout 같은 특정 증강 기법은 제외되었다.

ViLT는 이런 방식으로 텍스트와 이미지의 관계를 학습하는데 최적화된 data augmentation 전략을 사용한다.

4. Experiments

Dataset


ViLT는 MSCOCO, VG, GCC, SBU 총 4가지의 데이터 세트를 사용하였다. MSCOCO는 Image당 5개의 Caption을 사용했기에 Captions 수가 Images 수보다 5배 많다. GCC는 1 이미지 1 캡션이기에 1대1 비율을 갖게된다.

Classification Tasks


VQAv2NLVR2 두 작업에서의 성능을 기준으로 평가해 보면
OSCAR나 VinVL보다는 성능 면에서 열세지만 UNITER나 Pixel-BERT 속도와 정확도면에서 이전 방법들보다 우수하다.

Retrieval Tasks

Flickr30kMSCOCO 두 작업을 통해 성능을 평가하였다.

Table3는 Zero-Shot을 기준으로 평가한다.

Table4는 Fine-tuning을 기준으로 평가한다.

여기서도 마찬가지로 성능 면에서 열세인 부분이 존재하지만, 속도와 성능에 더해서 모델의 단순성을 봤을 때 경쟁력이 있다는 것을 알 수 있다.

Ablation Study


25K에서 100K까지 Training Steps를 높였을 때 성능 향상이 있었지만, 그 차이는 크지 않았다.
whole word masking(원 안에 w)를 사용했을 때 성능 향상이 있었다.
그리고 Loss에서 언급하였던 이미지를 일부 Masking 하는 시도(MPP, 원 안에 m)를 실제로 시도했었다. 하지만 그 당시에는 이는 효과가 없었다.
그다음 Image Agumentation(원 안에 a)를 시도했을 때 텍스트 측면의 whole word masking보다도 더 효과적이었다.

5. 결론

ViLT는 최소화된 VLP 모델을 보여주었다. 기존 Object Detector를 사용한 비싼 연산 없이, patch embedding layer를 사용해 이미지의 Feature를 추출함으로써 문제를 해결하였다.
저자는 ViLT의 성능이 가장 좋지는 않지만, Convolution 또는 Region supervision 없이도 Vision-Language Task를 잘 수행할 수 있음을 개념 증명에 한 것에 가깝다고 말한다.

그리고 3가지 유망한 확장 방향을 소개하였다.

확장 방향

  1. Scalability
    • Transformer가 scale를 키울수록 성능이 좋았던 것처럼 ViLT도 더 많은 데이터셋을 가지고 모델을 확장하여 ViLT-Large 또는 ViLT-Huge로 만들면 성능이 더 좋아질 것이다.
  2. Masked Modeling for Visual Inputs
    • 이미지 영역에서 이미지 재구성을 어떻게 할 수 있을까?
    • NLP에서 Masked Modeling은 매우 유용하였고 이는 이미지 측면에서도 유용할 가능성이 매우 높다는 것을 의미한다.
    • 실제로 이는 옳았다. 이후 BEiTMAE 등장하였고 VL-BEiT 등 이에 대한 후속 작업들이 굉장히 많다.
  3. Augmentation Strategies
    • 실험 결과에서 나타난 듯이 Data Augmentation의 효과가 Masked Language Modeling보다도 크다는 것을 알 수 있었다.
    • 이러한 augmentation strategies를 사용하면 많은 데이터를 필요하지 않을 수도 있다.

다음으로 읽어보면 좋을 논문

논문을 보면서 생각한 다음으로 읽어보면 좋을 거 같은 논문들이다.
1. Masked Modeling for Visual Inputs

2. 효율성

3. Augmentation Strategies

출처

Kim, W., Son, B., & Kim, I. (2021). ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision (arXiv:2102.03334). arXiv. https://doi.org/10.48550/arXiv.2102.03334
Chen, F., Zhang, D., Han, M., Chen, X., Shi, J., Xu, S., & Xu, B. (2023). VLP: A Survey on Vision-Language Pre-training. Machine Intelligence Research, 20(1), 38–56. https://doi.org/10.1007/s11633-022-1369-5

0개의 댓글