주어진 이미지를 효과적으로 카테고리화 하는 전통적인 방법론들은 사전에 잘 정제된 (이미지,텍스트) 쌍들을 활용한 지도학습 모델을 활용한다. 하지만 이러한 데이터셋을 만드는데는 자원이 많이 필요할 뿐만 아니라 해당 데이터셋을 위주로 활용한 모델들은 보통 task-specific하기 때문에 확장성이 많이 떨어진다.
CLIP은 이러한 문제를 해결하기 위해 온라인에서 취합한 단순 raw 텍스트와 이에 대응하는 이미지쌍들을 활용한 자연어 기반의 contrastive learning 방법을 사용한다. 이는 zero-shot 예측에도 높은 정확도를 보이게 만들고 사전 학습 모델을 활용한 downstream task에도 활용할 수 있게 만든다.
해당 논문에서는 여러 논문들을 열거하지만 가장 중요한 연구는 ConVIRT (Zhang et al., 2020)이다. 트랜스포머 기반의 language-modeling과 contrastive learning 방법을 처음 제시했다.
4억개의 (이미지, 텍스트) 쌍들을 활용. 최대한 다양한 시각적 개념을 포함시키지 위해 텍스트는 영문 버전의 위키피디아 사이트에서 적어도 100번 이상 사용된 500,000개의 텍스트 세트 쿼리에서 뽑았다고 한다. 그리고 class balancing을 위해 쿼리 당 20,000개의 (이미지, 텍스트) 쌍을 얻었다. 이 이미지 세트를 WIT(WebImageText)라고 부른다.
처음에는 VirTex 논문과 유사하게 이미지 CNN과 텍스트 트랜스포머를 같이 학습시켰지만 ImageNet 카테고리 인식에 대해 BOW 인코딩을 활용한 방법보다 3배 느린 성능을 보여줬다고 한다. 원인은 트랜스포머가 텍스트에 대해 단어 단위로 정확히 일치하는 예측을 해야하는 목표가 설정되어 있기 때문이었다. 그래서 정확한 텍스트 대신 텍스트 전체에 대한 예측 목표를 설정하고 predictive objective 대신 contrastive objective를 이용해 문제를 해결한다.
CLIP은 사전 학습된 모델을 훈련에 사용하지 않았다. Contrastive 임베딩 공간에 대한 non-linear projection을 사용하지 않고 인코더 출력에 multi-modal 임베딩 공간에 대한 linear projection을 사용했다.
ResNet-50D 개선 버전과 antialiased rect-2 blur pooling, 그리고 global average pooling 대신 attention pooling을 사용한다. 이는 ViT하고 비슷한 듯 하다. 실제 ViT로도 실험을 했다고 한다.
텍스트 인코더는 트랜스포머의 개선 버전 사용.