FILIP: Fine-grained Interactive Language-Image Pre-Training
Unsupervised large-scale vision-language pre-training has shown promising advances on various downstream tasks. Existing methods often model the cross-modal interaction either via the similarity of the global feature of each modality which misses sufficien
arxiv.org
0. 핵심 요약
Cross-model late interaction mechanism을 통해 finer-level alignment 도달
contrastive loss 만으로 학습 → inference 시에 offline으로 표현 적용 가능
1. Background
기존 VLP 모델들
CLIP, ALIGN과 같은 모델들이 존재
이들은 대용량 데이터 셋으로 zero-shot 성능을 보여줌
기존의 VLP 모델들의 핵심 기술은 contrastive alignment
이는 image와 text를 pre-compute 하여 inference-efficient 하도록 해줌
기존의 VLP 모델의 접근 방법에는 크게 2가지가 존재
1. image-text contrastive learning task
CLIP, ALIGN, UNIMO가 대표적인 예시
text와 image를 동일 공간에 mapping 하는 것이 목적
2. Language Modeling based task
VisualBERT, UNITER, M6, DALL-E 등이 대표적인 예시
기존 finer-grained cross-modal interaction 접근
1. RoI 추출 후, 이를 text와 연결
이는 계산량과 저장해야 하는 정보량이 크다는 단점이 존재
또한, zero-shot 성능이 제한적이며, detector의 성능에 따라 성능이 크게 변한다는 단점이 있음
2. token-wise or patch-wise 표현 강화
training과 inference에서 비효율적
cross / self attention 연산량이 크다는 단점
추가적으로, inference 시에 offline으로 하는 것이 불가능
Multi-Modality Interaction Mechanism
1. Single-stream models
VisualBERT, ViLT 가 예시
이는 visual feature와 text embedding을 직접 concat 한 후, transformer에 입력하는 방법
2. Dual-stream models
ViLBERT, CLIP 이 대표적인 예시
각 modal에 대해 encoder가 존재
해당 논문에서는 이 방법을 채택
2. 논문 핵심 내용
Fine-Grained Contrastive Learning
위 그림은 FILIP의 전체적인 학습 과정을 표현
이때, $f_\theta$는 image encoder, $g_\phi$는 text encoder를 의미
$x^I \in I$는 이미지들을 의미하며, $x^T \in T$는 텍스트들을 의미
우리의 목표는 $f_\theta(x^I)$와 $g_\phi(x^T)$가 서로 비슷한 것들은 가깝게, 다른 것은 멀리 위치하도록 하는 것
이때, 모델을 학습할 때는 배치 단위로 학습하게 되는데 데이터의 구성은 다음과 같다
$\{x_k^I, \{x^T_j\}\}^b_{j=1}$
위의 배치 단위 데이터를 활용하여 우리가 최종적으로 학습할 loss는 다음과 같다
$L = {1 \over 2} \sum^b_{k=1} (L^I_k + L^T_k)$
이때, $L^I$와 $L^T$는 각각 image-to-text loss와 text-to-image loss를 의미한다
이에 대한 각각의 loss 식은 아래와 같다
$L^I_k(x^I_k, \{x^T_j\}^b_{j=1}) = -{1 \over b} log {exp(s^I_{k,k}) \over \sum_j exp(s^I_{k,j})}$
$L^T_k(x^T_k, \{x^I_j\}^b_{j=1}) = -{1 \over b} log {exp(s^T_{k,k}) \over \sum_j exp(s^T_{k,j})}$
Cross-modal late Interaction
위 식에서 s를 계산할 때, 기존에는
$s^I_{i,j} = s^T_{i,j} = f_\theta(x^I_i)^\top g_\phi (x_j^T)$
이는 다시 말해 global한 feature에 대해서 계산한다는 것
하지만 FILIP의 목표는 finer-level에서의 feature를 mapping 하는 것이다
이를 위해서 식을 다음과 같이 수정한다
$s^I_{i,j}(x_i^I, x_j^T) = {1 \over n_1} \sum^{n_1}_{k=1} [f_\theta(x_i^I)]_k^\top [g_\phi (x_j^T)]_{m^I_k}$
이때, $m^I_k$는 다음과 같은 의미를 가진다
image의 patch 별로 모든 text와 similarity를 구한 뒤, 가장 값이 큰 text의 인덱스 값을 가져오는 것
즉, 변형된 식을 풀어서 설명하면 visual token 별 max similarity를 mean 하여 이를 s값으로 사용하겠다는 것
이는 하나의 이미지를 볼 때 전체로 보는 것이 아니라 각 token 별로 봄으로써 더욱 fine한 feature를 확인할 수 있다
Prompt Ensemble and Templates
시각화를 위해서는 "a photo of a {label} "이라는 하나의 프롬프트 템플릿만 사용
평균 텍스트 표현으로 다른 프롬프트 템플릿을 앙상블하는 대신, 평균 토큰별 유사성으로 앙상블
각 템플릿은 네 부분으로 구성
[prefix] {label}, [category description]. [suffix].
이 때 "[prefix]"는 "a photo of a"와 같은 상황에 맞는 설명
"label"은 데이터셋의 클래스 레이블
"[category description]"은 데이터셋의 범주
Image and Text Augmentation
모델의 일반화 및 데이터 효율성을 향상시키기 위해, 사전 훈련 단계에서 이미지와 텍스트에 데이터 증강을 수행 AutoAugment를 적용
text augmentation을 위해서 원래의 텍스트를 동일한 의미를 유지하면서 재작성하기 위해 back-translation을 사용
이는 텍스트를 먼저 목표 언어로 번역하고 다시 원래 언어로 번역하는 것
독일어와 러시아어를 목표 언어로 선택하고 각 이미지-텍스트 쌍에 대해 추가적으로 두 개의 텍스트를 생성
사전 훈련 중 이미지-텍스트 쌍의 배치를 구성할 때, 각 이미지-텍스트 쌍의 텍스트는 세 가지 후보 텍스트(원래 텍스트와 두 개의 역번역 텍스트) 중에서 무작위로 샘플링
Pre-training Dataset
vision-language 사전 훈련을 위해 'FILIP300M'이라는 대규모 데이터셋을 구축
이 데이터셋은 300M개의 이미지-텍스트 쌍을 포함
Conceptual Captions 3M (CC3M), Conceptual 12M (CC12M), Yahoo Flickr Creative Commons 100M (YFCC100M)과 같은 3개의 공개 데이터셋을 사용
YFCC100M에 동일한 필터링 규칙을 적용
최종적으로, 약 340M개의 이미지-텍스트 쌍을 사전 훈련에 사용
CLIP과 ALIGN보다 작은 훈련 데이터셋을 사용함에도 불구하고, 우리의 모델은 대부분의 하류 작업에서 이들을 능가
3. Experiment
4. Contribution
FILIP이라는 간단하지만 범용적인 비전-언어 사전 훈련 프레임워크를 소개
FILIP은 토큰별 최대 유사성을 사용하여 이미지의 패치와 문장의 단어에 대한 미세한 표현을 학습
+ Comment
CLIP을 보며 매우 단순한 아이디어지만 강력한 힘을 가졌다고 생각했는데, fine한 feature를 위해 patch 별로 text 와 연결짓는다는 아이디어가 매우 획기적이라고 생각한다