본문 바로가기

NLP/논문이해

[논문이해] RA-CLIP: Retrieval Augmented Contrastive Language-Image Pre-Training

논문명: RA-CLIP: Retrieval Augmented Contrastive Language-Image Pre-Training

논문 링크: https://paperswithcode.com/paper/ra-clip-retrieval-augmented-contrastive

 

Papers with Code - RA-CLIP: Retrieval Augmented Contrastive Language-Image Pre-Training

No code available yet.

paperswithcode.com

 

핵심만 정리합니다


문제점

  • CLIP은 대성공한 방법론인데, 데이터를 많이 필요로 하고 모든 데이터를 파라미터로 기억하기엔 방대함
  • online retrieval 을 통해서 지식을 보강하면 되는 방법론 'RA-CLIP'을 제시함
  • 비유하자면 오픈북 시험과 같다. 오픈북 시험은 다 기억할 필요 없다. 책에 적힌 지식을 활용하는 방법만 배우면 된다

(자세한 방법론은 아래를 참고)

 

해결책

  • 이미지가 주어지면, reference set 에서 K개의 유사한 데이터를 검색해서 반환한다
  • RAM 이라는 모듈을 통해서 증강한 이미지 임베딩을 추출해서 사용한다
  • 그렇다면, RAM 이 어떻게 작용하는지 보면 된다

 

검색은 어떻게 해?

  • DINO와 같은 사전학습 인코더로 임베딩 추출해서 임베딩 유사도 높은 K개 뽑는 것 같다

 

모델 구조는 뭔데?

  • 이미지 인코더: ViT
  • 텍스트 인코더: Transformer
  • 검색할 때 쓰는 임베딩 모델은 학습하지 않는다고 한다

 

데이터셋 구성 어떻게 하는데?

  • 전체 훈련 데이터에서 10%는 reference set 에 넣고, 나머지 90%는 훈련할 때 사용한다고 함

 

RAM 구조를 자세히 보자

  • attention mechanism 으로 기존 이미지와 K개의 (텍스트, 이미지) 쌍을 합친다고 보면 된다

 

증강된 텍스트 임베딩 구하는 법

  • query: 기존 이미지 임베딩
  • key: K개 이미지 임베딩
  • value: K개 텍스트 임베딩

 

증강된 이미지 임베딩 구하는 법

  • query: 기존 이미지 임베딩
  • key: K개 텍스트 임베딩
  • value: K개 이미지 임베딩

 

그리고 위에서 구한

최종 임베딩 = '증강된 텍스트 임베딩' + '증강된 이미지 임베딩' + 기존 이미지 임베딩 이다.

 

학습은 CLIP과 동일하게 이뤄진다고 한다.

 

성능은 대충 이러하다

  • 1번과 5번을 비교해보면, 같은 데이터셋을 활용했을 때 성능 차이가 극명하게 난다는걸 확인할 수 있다