본문 바로가기

NLP/논문이해

[논문이해] RETRIEVAL-ENHANCED CONTRASTIVE VISION-TEXT MODELS

논문명: RETRIEVAL-ENHANCED CONTRASTIVE VISION-TEXT MODELS

논문 링크: https://arxiv.org/abs/2306.07196

 

Retrieval-Enhanced Contrastive Vision-Text Models

Contrastive image-text models such as CLIP form the building blocks of many state-of-the-art systems. While they excel at recognizing common generic concepts, they still struggle on fine-grained entities which are rare, or even absent from the pre-training

arxiv.org

 


멀티모달? 섬세하게 '비전' 과 '텍스트'를 연결하지 못해..

  • 'car', 'road' 등의 일반적으로 자주 쓰이는 단어들과 이미지를 연결하는 것은 쉽다
  • 하지만 세부적인 표현은 이해하지 못한다. 가령 자동차 브랜드, 생산 연도 등과 이미지/동영상을 연결하는 건 어렵다
  • 이런 문제는 세부적인 차 분류할 때, zero-shot classification 성능이 떨어질 수 밖에 없다

 

서로 다른 모달리티를 호환시키는 건 난이도가 높아

  • 하나의 모달리티, 가령 정보 검색처럼 쿼리와 문서가 모두 텍스트라서 단일 모달리티라면 호환하기 쉽다
  • 이미지도 이미지끼리 하는 건 쉽다
  • 하지만 서로 다른 모달리티인 멀티모달을 호환하는 것은 매우 어렵다

 

이미지는 은유적으로 풍부하게 표현하지만 텍스트는 아니야

While every image is metaphorically valued at a thousand words, it is often paired with a short, sometimes noisy, text that neither exclusively nor comprehensively describes it.

 

 

 

해결책: 모달리티의 약점을 역이용하자

: 같은 모달리티끼리는 비슷한 걸 찾기 쉽지만, 다른 모달리티끼리 어렵다는 점을 역이용하자

 

 

비슷한 텍스트 찾는 법

  • 검색할 땐, 같은 모달리티: '비슷한 텍스트를 찾고 싶은 텍스트와 연결된 이미지'와 비슷한 이미지 K개를 찾는다.
  • 가져올 땐, 다른 모달리티: 그때 그 이미지들과 연결된 텍스트의 임베딩 K개를 가져온다.
  • 즉, 모달리티를 교차해서 검색하는 것이 아이디어의 핵심

 

모든 경우에 대해서도 실험한다

  • 가장 왼쪽에 있는 그림이 본 논문에서 제시한 방법이다. 검색할 땐, 같은 모달리티끼리 검색한다. 그리고 결과를 가져올 땐, 다른 모달리티를 가져온다.
  • 나머지 그림들은 검색과 반환시의 경우의 수를 모두 표현한 것이다. 2 X 2 = 4가지 맞다.

 

잠깐, 비슷한 데이터를 검색한 건 알겠어. 어떻게 학습하는데?

  • 이건 워낙 유명한 contrastive loss 라서 따로 설명은 안하겠다.
  • 이 손실 함수를 사용한다.

 

  • 이 손실함수를 3번 사용한다는 점을 알면 좋다.
  • 그렇다면, V와 T가 자세히 뭔지만 알면 된다.

 

  • 일단 외부 메모리는 원래 데이터셋 말고 비슷한 데이터를 검색할 수 있는 외부 지식을 의미한다.

 

Cross-Modal Search

  • v(이미지)를 넣으면, 이미지와 연결된 텍스트를 통해서 외부 메모리 M에서 K개의 텍스트 임베딩을 반환해준다.
  • 이건 본 논문에서 사용하는 방식이 아님

 

Uni-Modal Search

  • 이미지를 입력하면, 비슷한 이미지 K개를 찾는다. 그 후, 그 이미지들과 연관된 K개의 텍스트 임베딩을 반환한다.
  • 이게 본 논문에서 사용하는 방식이다.

 

 

  • 왜 갑자기 수식을 쭈욱 설명했냐면, 이 기호를 설명하기 위해서다.
  • 기존 이미지와 검색 결과로 반환한 K개의 임베딩을 단순히 평균내서 사용하지 않는다. 평균내서 실험했더니 성능이 좋지 않았다고 한다. 직관적으로 볼 때, 모델이 임베딩 평균에 대해 공부한 적이 없기 때문이라고 한다.
  • 그래서 fusion model 을 사용한다. one-layer multi-head self-attention transformer encoders 이다.
  • CLIP-32 기준, 2%의 파라미터만 추가되니 부담이 없다고 한다. 파라미터개수가 3.14M 라고 한다. 단, 공유해서 쓰지 않고 이미지용, 텍스트용 따로 있다.

 

학습 세부 사항

  • CLIP과 같은 pretrained model 은 학습하지 않는다. 오직 Fusion Model 만 학습한다고 한다.
  • 학습 데이터셋: Conceptual Captions (CC 12M)
  • 외부 지식 데이터셋: subset of WebLI (Chen et al., 2023) containing 1B image-text pairs 을 사용한다. 여기서 subset, 즉 일부만 사용한다는 건 일부 제거해서 쓴다는 것이다. 테스트 이미지랑 비슷한 데이터는 제거했다는데, 어떻게 제거했고 얼마나 제거했는지에 대해 나와있지 않다.

 

평가데이터셋

  • Cars: 세세하게 자동차를 구분해야 하는 데이터셋
  • CUB: 세세하게 새를 분류해야 하는 데이터셋

 

실험 결과는?

  • Zero-shot transfer to image classification 성능이다
  • fusion model 을 추가한 결과, 성능이 오르는 걸 볼 수 있다
  • 특히 LiT-L 16L은 검색 대상인 WebLI로 사전학습되었는데도 불구하고 성능이 올랐다는 점이 인상 깊다

 

  • Open-domain visual entity recognition (OVEN) benchmark (Hu et al., 2023), containing 729K test images possibly belonging to 6M entity candidates 로 평가하였음

 

  • 다양한 방식으로 했더니 성능이 다 하락한다
  • 평균 임베딩은 성능이 박살났다

 

  • fusion model 을 하나씩 빼본 성능이다
  • 혹은 fusion model 은 학습하되, 추론할 때만 빼보았다
  • 그 결과, 일단 둘 다 학습하는 것은 좋았다.
  • 그러나 둘 다 추론할 때 사용하는 것이 가장 좋을 수도 있고 아닐 수도 있다.

 

  • 그냥 CLIP-style 로 학습하니까 오히려 성능이 떨어진다. 그 이유로는 CLIP이 이미 광범화하게 잘 학습되었는데, 그 구조를 건들여서인 것 같다.
  • 하지만 RECO, 여기서 제안한 방법을 사용하니 성능이 눈에 띄게 오른다

 

  • 제대로 표를 이해는 못했는데, 학습할 때 그렇게 많은 메모리를 안 쓴다고 한다

 

  • uni-modal search 가 cross-modal search 보다 낫다고 하네요 허허

 

한계점

  • 추론할 때마다 이렇게 거대한 외부 메모리에서 검색 결과를 가져오는 게 쉽지 않다
  • KNN 알고리즘에 의존한다