[2102.03334] ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision
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에 입력하여 학습을 진행하였다.
2021년 ViT가 등장하기 전에는 VLP 대부분의 작업이 Object Detector에 의존하였다고 저자는 말한다.
그러나 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에서 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를 사용하는 모델에 뒤치지 않았다.
저자는 VLP 모델을 2가지 기준으로 분류하였다.
1. 이미지와 텍스트의 표현력이 균형 잡혀있는가? (각 모델에서 어떤 특징을 추출하고 전처리하는 방법)
2. 두 모델을 통합하는 방법
이를 바탕으로 저자는 VLP 모델을 4가지 범주로 나누고, 이를 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
2. Dual-Stream Architecture
Dual-Stream Architecture가 일부 task에서 더 좋은 성능을 보이지만 더 많은 파라미터를 필요로 하기 때문에 논문에서는 Single-Stream Architecture를 채택하였다.
이전에 말한 Region Feature와 Grid Feature의 단점들 때문에 저자는 Patch Projection Layer를 한 층 사용하여 이미지 feature를 직접 추출할 것이다. 이는 이전에 CNN 백본과 object detector을 사용했던 것보다 훨씬 빠르면서도 효과는 비슷하다.

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가 된다.
ViLT는 2가지 주요 Loss 함수를 사용하여 모델을 학습한다.
1. Image Text Matching Loss
2. Masked Language Modeling Loss

한 단어 전체를 Masking 하는 기법이다.
예) giraffe -> ["gi", "##raf", "##fe"]
giraffe를 실제로 BERT와 같은 tokenizer를 이용하여 위와 같이 subword로 나눈다.
여기서 만약 "##raf"를 MASK한다고 가정해보자.
["gi", [MASK], "##fe"]
gi로 시작하고 fe로 끝나는 단어는 많지 않을 것이다. 그럼 모델은 이미지에 대한 정보를 전혀 참고하지 않고 텍스트 문맥만으로 "##raf"임을 쉽게 예측할 수 있다. 한 단어 전체를 Masking 하여 이미지 정보가 활용되지 않는 문제를 방지한다.
Object Detector로 이미지를 처리하던 VLP 모델들은 훈련을 시작할 때 모든 특성을 미리 추출하여 캐시에 저장해두고 data augmentation을 하기 위해서는 다시 특성을 추출하는 작업을 해야 했기에 비용과 시간적인 측면에서 augmentation이 제한적이었다.
ViLT는 RandAugment를 사용하여 이미지 증강을 더 적극적으로 도입했다. 다만, 이미지-텍스트 일치성을 유지하기 위해 color inversion과 cutout 같은 특정 증강 기법은 제외되었다.
ViLT는 이런 방식으로 텍스트와 이미지의 관계를 학습하는데 최적화된 data augmentation 전략을 사용한다.

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

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

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

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

25K에서 100K까지 Training Steps를 높였을 때 성능 향상이 있었지만, 그 차이는 크지 않았다.
whole word masking(원 안에 w)를 사용했을 때 성능 향상이 있었다.
그리고 Loss에서 언급하였던 이미지를 일부 Masking 하는 시도(MPP, 원 안에 m)를 실제로 시도했었다. 하지만 그 당시에는 이는 효과가 없었다.
그다음 Image Agumentation(원 안에 a)를 시도했을 때 텍스트 측면의 whole word masking보다도 더 효과적이었다.
ViLT는 최소화된 VLP 모델을 보여주었다. 기존 Object Detector를 사용한 비싼 연산 없이, patch embedding layer를 사용해 이미지의 Feature를 추출함으로써 문제를 해결하였다.
저자는 ViLT의 성능이 가장 좋지는 않지만, Convolution 또는 Region supervision 없이도 Vision-Language Task를 잘 수행할 수 있음을 개념 증명에 한 것에 가깝다고 말한다.
그리고 3가지 유망한 확장 방향을 소개하였다.
논문을 보면서 생각한 다음으로 읽어보면 좋을 거 같은 논문들이다.
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