본문 바로가기
논문 리뷰

FILIP: FINE-GRAINED INTERACTIVE LANGUAGEIMAGE PRE-TRAINING(FILIP) (2021) Review

by rltjq09 2024. 5. 7.
728x90
 

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

zero-shot top-1 accuracy

 

zero-shot image-text retrieval

 

fine-tuned image-text retrieval

 

4. Contribution

FILIP이라는 간단하지만 범용적인 비전-언어 사전 훈련 프레임워크를 소개

FILIP은 토큰별 최대 유사성을 사용하여 이미지의 패치와 문장의 단어에 대한 미세한 표현을 학습

+ Comment

CLIP을 보며 매우 단순한 아이디어지만 강력한 힘을 가졌다고 생각했는데, fine한 feature를 위해 patch 별로 text 와 연결짓는다는 아이디어가 매우 획기적이라고 생각한다

728x90