언어와 시각 정보 두 가지 modality 사이의 관계를 학습, 이해하고 이를 바탕으로 문제를 해결하는 것을 말한다
VilBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks (NeurIPS 2019)
👉 Multimodal joint representation: BERT 기반으로 시각 정보와 언어 정보, 그리고 그 사이의 관계를 학습하고 VQA 등의 multi-modal downstream task에서 적용할 수 있도록 했다
👉 각 modality 별 stream을 구분하여 처리 과정을 다르게 할 수 있도록 하고, co-attention transformer layer를 사용해 각 모달에서 추출한 표현들 사이의 관계를 학습할 수 있도록 했다. 서로의 modality에서 영향을 받은 vision representation, language representation이 최종 아웃풋이 된다
Object detection (객체 검출)
: 이미지가 주어졌을 때, 그 안에서 물체들의 위치를 찾아내고 각 물체가 어떤 물체인지 판별하는, 이미지 분야의 과제이다모델은 vision을 위한 것과 language를 위한 것, 두 개의 stream으로 각각 modality를 독립적으로 이해한다.
→ 이를 통해 통일된 BERT에 이미지 토큰과 언어 토큰을 모두 입력하는 것에 비해 각각의 modality에서 필요한 처리 단계를 조정하고, 언어로 사전학습된 BERT의 파라미터가 이미지에 적응하는 과정에서 망가지는 것을 방지할 수 있다
그 뒤 co-TRM 블록에서 서로가 서로의 representation에 attention 하는 방식으로 language와 vision 사이의 관계를 반영했다
모델의 아웃풋으로는 vision에 대한 representation과 language에 대한 representation 두 가지를 얻게 된다
Co-Attentional Transformer Layers (Co-TRM)
중간 단계의 visual, linguistic representation들이 주어졌을 때, 트랜스포머 block의 multi-head attention에서 query, key, value 중 key와 value로 다른 modality의 representation을 사용한다
How to get visual token?
객체 검출 태스크로 사전 학습 된 Faster R-CNN 모델을 사용해 10 ~ 36개 사이의 높은 클래스 탐지 확률을 가진 region box들을 선택했다. 각 선택된 영역에 대한 convolutional feature들의 mean-pool 된 값을 visual token으로 사용했다
Pre-trained parameters
BERT의 MLM처럼 입력값을 마스킹하며, 언어에 대해서는 동일하고 image의 경우 15%의 영역을 선택, 그 중 90%의 영역을 지웠다.
이미지에서는 masking된 feature의 값을 예측하기 보다는, 해당 영역의 semantic class에 대한 분포를 예측했다
→ 왜냐하면, 이미지에 대한 설명은 각 이미지 영역 자체의 feature를 설명하는 게 아니고, 높은 레벨의 맥락을 다루기 때문이다
이미지-텍스트 쌍이 입력으로 주어졌을 때, 텍스트가 이미지를 설명하는 것이 맞는지(aligned) 아닌지(not aligned)를 판별한다
$h_\text{IMG}, h_\text{CLS}$ 토큰을 BERT의 CLS 토큰 처럼 사용하며, 이 두 개의 토큰들의 element wise product를 두 모달리티를 거친 입력값의 전체적인 표현으로 사용해 판별 과제를 수행했다
Dataset
Conceptual captions 데이터셋을 사용해 이미지와 이미지에 대한 caption이 함께 있는 데이터를 학습했다
LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP 2019)
LXMERT: Learning Cross-Modality Encoder Representation from Transformers
👉 3개의 트랜스포머 기반 인코더: vision 인코더, language 인코더, cross-modality 인코더를 사용하였고 각 modality 별, 그리고 modality 사이의 관계를 사전학습 하여 vision-language 사이의 연결이 필요한 태스크에 적용 가능한 사전학습 모델과 그 방법을 제시하였다
👉 자연어, 이미지의 임베딩 정보를 합쳐 cross modality output을 내고, 이를 BERT의 CLS 토큰 처럼 이용했을 때 가장 좋은 성과가 나왔다고 한다. 이미지에 대한 질문에서 질문 내 자연어 사이의 관계, 이미지의 정보, 그리고 그 관계가 이미지에 어떻게 매핑되는지가 하나의 모델에 담겨 있다
👉 5가지의 사전학습 태스크를 아래와 같이 수행했다
1️⃣ Language encoder: masked cross-modality language modeling
2️⃣~3️⃣ Vision encoder: masked object prediction (feature regression + label classification)
4️⃣~5️⃣ Cross-modailty: cross-modality matching, image question answering
👉 모델을 VQA, GQA 등의 visual question answering 태스크에 적용해, SOTA 결과를 얻었다
👉 vs. ViLBERT:
1️⃣ 추가적인 사전학습 태스크: RoI feature regression, image question answering
2️⃣ 더 정교하고 여러 개의 컴포넌트를 가진 모델 구조 (object-relationship encoder, cross-modality layer 등)
3️⃣ 모든 파라미터를 scratch 부터 학습시켰다 (사전학습 파라미터를 사용할 때보다 더 성능이 잘 나왔다고 함)
VQA, NLVR 등의 태스크에서 성능 개선!
ViLBERT처럼, self-attention과 cross-attention 레이어로 모델을 구성했다
Input embeddings
객체 단위 이미지 임베딩: 사전학습된 Faster R-CNN 모델로 객체를 검출하고, 각 검출된 객체 별 위치 정보(bounding box 좌표)와 RoI feature를 합쳐 사용한다
Encoders
Language encoder + Object-relationship encoder + Cross-modality encoder 학습
Output representations
아웃풋으로 총 세 가지, vision, cross-modality, language output을 얻게 된다
BERT처럼, language output의 첫 번째 CLS 토큰에 해당하는 정보가 전체적인 정보를 담고 있는 것으로 사용해 이를 cross-modality output으로 사용한다
Language: Masked Cross-modality LM
BERT와 거의 동일한데, [MASK]로 치환된 토큰의 원본을 맞추는 문제를 풀 때 vision feature로부터도 단서를 얻어 예측한다
Vision: Masked Object Prediction
Vision feature에서 일부를 0으로 마스킹하고, 그 부분에 대해
Cross-Modality:
Pre-training Dataset
COCO=Cap, VG-Cap, VQA, GQA, VG-QA 다섯 가지의 데이터셋을 이용해 사전 학습을 진행했다. 또한, train set과 dev set만을 사전 학습에 이용했다