CLIPLoss and Norm-Based Data Selection Methods for Multimodal Contrastive Learning

강민석·2025년 9월 10일

논문

목록 보기
21/26

Abstract

CLIP 같은 비전-언어 모델 학습에서 웹 데이터는 잡음이 많아, 좋은 데이터만 골라내는 데이터 선택(data selection) 이 매우 중요하다.

  • 기존 연구
  1. CLIP 외부 모델을 활용하는 방법

  2. 새로운 CLIP 스타일 모델을 학습하는 방법

  3. 특정 모델 특성에 의존하지 않고, 모든 CLIP 임베딩에 적용 가능한 더 나은 지표 개발

    하지만 (3)은 아직 충분히 연구되지 않음.

  • 제안 기법
  1. s-CLIPLoss: CLIPScore를 개선한 품질 측정 지표 (대조 샘플까지 고려)

  2. NormSim: 다운스트림 과제 데이터와의 유사성을 측정하는 노름 기반 지표.

1. Introduction

웹에서 수집한 data로부터 대규모 Vision-Language dataset을 구성하는 것은 VLM의 pre-training에서 일반적인 방식이다.

하지만, 웹 기반 data의 품질이 아직까지도 중요한 문제점으로 남아 있다.

연구 결과, 어떤 모델이나 학습 기법을 사용하더라도, dataset의 선택이 성능에 상당한 영향을 미친다는 것이 밝혀졌다.


기존의 data selection 방법들은 크게 세 가지 접근 방법으로 나뉜다.

  1. CLIPScore 같은 기존의 CLIP 모델을 활용

    Image와 Text embedding 간 cosine similarity를 계산하여 맞지 않는 데이터를 제거

  2. 외부 모델을 활용

    OCR모델로 텍스트만 있는 이미지를 제거하거나, 영어가 아닌 data를 제거

  3. 새로운 CLIP 스타일 모델 학습

    높은 품질의 data로 새로운 CLIP모델을 학습하여, 원래 CLIP보다 data filtering을 더 잘하게 만들었지만, 모델 자체의 성능은 낮다.


이러한 이전의 연구들은 CLIPScore같은 전통적인 지표만 사용하여 embedding을 비효율적으로 사용해왔다.

본 논문에서는 주어진 기존의 CLIP embedding을 더 효과적으로 활용하는 filtering 방법을 제안한다.

CLIP뿐만 아니라 다른 외부 모델에서도 결합이 가능한 방법 제안

Contribution
CLIPScore의 대안으로 surrogate-CLIPLoss(s-CLIPLoss)제안
또한 task에 대한 사전 지식이 있을 경우 활용할 수 있는 p-norm Similarity score 제안

1. s-CLIPLoss
기존 방법은 multimodal data의 품질을 image와 text간 cosine similarity로만 평가하였지만, text 속에 "image"라는 단어가 포함되면 어떠한 image와도 높은 similarity를 갖게되는 등의 문제점이 있다.

CLIP의 학습 방식에서 착안하여 s-CLIPLoss는 해당 image와 짝지어진 text와의 similarty만 보는 것이 아니라 다른 샘플들과의 유사도도 고려하여 normalize한다.

  • "image" 같은 흔한 단어는 모든 이미지와 높은 점수를 주지만, 대조 샘플들과도 다 높게 나오기 때문에 정규화하면 실제 점수는 낮아진다.
  • 한 이미지-텍스트 쌍이 진짜로 잘 맞으려면,정답 쌍과는 높은 유사도를 가져야 하고, 다른 대조 샘플들과는 낮은 유사도를 가져야 한다.

2. NormSim
만약 목표 task와 동일한 분포에서 뽑은 data에 접근할 수 있다면, 이 지식을 data filtering에 활용하는 NormSim지표를 제안

2. Problem Setup

Data Filtering on Multimodal Dataset

Training data Dtrain={xv,xl}D_{train}=\{x^v,x^l\}이 주어져 있을 때, 우리의 목표는 DtrainD_{train}에서 부분집합 SS를 찾아내어 CLIP모델을 학습했을 때, 특정 task에서 zero-shot accuracy를 최대화하는 것이다.

CLIP score and embedding

최근 연구들은 OpenAI의 CLIP모델을 교사 모델로 사용하여 data의 품질 점수를 얻는다.

이 기본 CLIP 모델을 fˉvl\bar{f}^{vl}로 나타낼 때, 임의의 data xvlx^{vl}에 대해, 이 모델은 정규화된 단위 벡터 fˉvl(xvl)\bar{f}^{vl}(x^{vl})을 출력한다.

널리 사용되는 filtering 지표인 CLIPScore는 <fˉv(xv),fˉl(xl)>[1,1]<\bar{f}^{v}(x^v),\bar{f}^{l}(x^l)>\in[-1,1]로 정의된다.

3. Data Filtering Strategy

3.1 s-CLIPLoss: A Better Metric than CLIPScore

기존 CLIPScore의 문제는 단순히 image-text embedding간의 cosine similarity만 계산하여 편향된 단어가 포함된 경우에 취약하다.

텍스트에 “image”라는 단어만 있어도, 거의 모든 이미지와 높은 점수를 얻게 됨 → 잘못된 고득점

  • 즉, 데이터가 진짜 잘 맞는 쌍인지, 아니면 그냥 흔한 단어 때문에 점수가 높아진 건지 구분을 못 한다.

s-CLIPLoss는 CLIP의 학습 방식에서 착안한다.

CLIP loss(CLIP의 학습 방식)

B(xivl)=12[logexp(fˉv(xiv)fˉl(xil)/τ)j=1Nexp(fˉv(xiv)fˉl(xjl)/τ)+logexp(fˉv(xiv)fˉl(xil)/τ)j=1Nexp(fˉv(xjv)fˉl(xil)/τ)]\ell_{B^*}(x_i^{vl}) = -\frac{1}{2} \left[ \log \frac{\exp\left(\bar f_v(x_i^v)^\top \bar f_l(x_i^l) / \tau\right)}{\sum_{j=1}^N \exp\left(\bar f_v(x_i^v)^\top \bar f_l(x_j^l) / \tau\right)}+\log \frac{\exp\left(\bar f_v(x_i^v)^\top \bar f_l(x_i^l) / \tau\right)}{\sum_{j=1}^N \exp\left(\bar f_v(x_j^v)^\top \bar f_l(x_i^l) / \tau\right)} \right]

  • BB^* : 무작위로 뽑힌 batch
  • fv(xiv)f_v(x_i^v) : Image encoder 출력
  • fl(xil)f_l(x_i^l) : Text encoder 출력
  • 첫 번째 log 항 : Image to text 매칭
  • 두 번째 log 항 : Text to image 매칭

CLIP을 학습할 때는 positive pair뿐만 아니라, negative pair도 고려하여 positive pair와는 높은 similarity를 가져야 하고, negative pair와는 낮은 similarity를 가져야 한다.

s-CLIPLoss는 CLIPScore를 그대로 쓰지 않고, negative sample들과 비교했을 때, 상대적으로 얼마나 높은 점수를 얻었는지를 반영한다.

수식적으로는 CLIPScore에 정규화 항을 추가한 형태이다.

  • CLIPScore = “이 쌍이 얼마나 비슷한가?”
  • s-CLIPLoss = “이 쌍이 다른 후보들과 비교했을 때 특별히 얼마나 비슷한가?”

s-CLIPLoss
CLIPScore에 정규화 항을 더한 형태로 사용한다.

τB(xivl)=CLIPScore(xivl)+R\tau \cdot \ell_{B^*}(x_i^{vl}) = -CLIPScore(x_i^{vl}) + R^*

  • RR^* : Negative sample들과의 비교를 포함하는 정규화 항

τB(xivl)=CLIPScore(xivl)+τ2[log(jBexp(fˉv(xiv)fˉl(xjl)τ))+log(jBexp(fˉv(xjv)fˉl(xil)τ))]\tau \cdot \ell_{B^*}(x_i^{vl}) = -CLIPScore(x_i^{vl}) + \frac{\tau}{2} \left[ \log \left( \sum_{j \in B^*} \exp \left( \frac{\bar f_v(x_i^v)^\top \bar f_l(x_j^l)}{\tau} \right) \right) +\log \left( \sum_{j \in B^*} \exp \left( \frac{\bar f_v(x_j^v)^\top \bar f_l(x_i^l)}{\tau} \right) \right) \right]

  • 첫 번째 항은 단순 Cosine similarity(CLIPScore)
  • 두 번째 항은 같은 batch 안에 있는 다른 sample들과 비교하는 정규화 항

하지만, 실제로는 OpenAI의 CLIP 모델의 training dataset과 실제 batch를 어떻게 분할하였는지는 접근할 수 없기 때문에, 우리가 학습시킬 모델의 training data에서 무작위로 K개의 batch를 선택하여 CLIP Loss(B(xivl)\ell_{B^*}(x_i^{vl}))를 계산한 후 평균을 내어 정규화 항을 근사한다.

s-CLIPLoss(xivl):=1Kk=1KBk(xivl)τB(xivl)=CLIPScore(xivl)+Rs\text{-}CLIPLoss(x_i^{vl}) := \frac{1}{K} \sum_{k=1}^K \ell_{B_k}(x_i^{vl}) \approx \tau \cdot \ell_{B^*}(x_i^{vl}) =-CLIPScore(x_i^{vl}) + R^*


Motivation behind s-CLIPLoss

오른쪽 image에서 “Image”나 “Photo”라는 단어를 포함한 텍스트는 거의 모든 시각적 콘텐츠와 쉽게 매칭될 수 있다.
마찬가지로 “verloopring” 이미지는 매우 단순한 특징만을 가지고 있어서 “white”, “empty”, “circle”과 같은 많은 단어들과 매칭될 수 있다.

  • 따라서 CLIPScore가 높게 나오더라도(높은 절대값), 상대적인 s-CLIPLoss는 낮게 나온다.

정규화 항 값이 높다는 것은 이미지 임베딩, 텍스트 임베딩, 혹은 둘 다가 대응되는 정답 쌍 외에도 여러 대조 쌍과 쉽게 매칭될 수 있다는 것을 의미

3.2 NormSim: A New Training-Target Similarity Metric

s-CLIPLoss는 data의 품질만 고려한다.("이 image-text 쌍이 진짜 잘 맞는가?")

하지만, 실제 task에서는 이 data가 내 task에 도움이 되는가?가 더 중요하다.

그래서 등장한 기법이 NormSim이다.

단순히 품질만 보는 것이 아닌, training data와 target data가 얼마나 유사한지 측정한다.

  • Training data : CLIP과 같은 멀티 모달을 학습할 때 사용하는 대규모 dataset
  • Target data : 실제로 성능을 내고 싶은 task의 data 분포를 대표하는 작은 subset

NormSim
각 training 샘플 xvlx^{vl}과 target dataset XtargetX_{target}사이의 similarity를 p-norm으로 계산한다.

  1. Training 샘플 xvx^v와 target dataset 안 모든 샘플 xtx_t의 cosine similarity를 계산
  2. 각 similarity를 제곱한 뒤 모두 합산
  3. 1/p 거듭제곱으로 p-norm 값으로 정규화
  • Training 샘플이 target dataset 전체오 얼마나 비슷한지 측정하는 지표

NormSimp(Xtarget,x):=fˉv(Xtarget)fˉv(xv)p=(xtXtargetfˉv(xtv),fˉv(xv)p)1/pNormSim_p(X_{\text{target}}, x) := \left\| \bar f_v(X_{\text{target}})^\top \bar f_v(x^v) \right\|_p = \left( \sum_{x_t \in X_{\text{target}}} \left| \left\langle \bar f_v(x_t^v), \bar f_v(x^v) \right\rangle \right|^p \right)^{1/p}

  • xvx^v : Training data에서 선택된 image 샘플
  • fˉv(xv)\bar f_v(x^v) : Image 샘플 xvx^v의 임베딩 벡터
  • fˉv(xtv)\bar f_v(x_t^v) : Target dataset 안의 image xtx_t의 임베딩
  • pp : p-norm의 종류 (2 or \infin)

<p-norm의 2가지 경우>

1. p=2p=2 : 평균적 similarity

NormSim2(xt,xi)=(xtXtargetfˉv(xtv),fˉv(xv)2)1/2NormSim_2(x_t, x_i)=\left( \sum_{x_t \in X_{\text{target}}} \left\langle \bar f_v(x_t^v), \bar f_v(x^v) \right\rangle^2 \right)^{1/2}

  • 전체 target data의 분포와 전체적으로 얼마나 aligned 되어 있는지 측정
  • 목적 : Data가 target 분포의 주성분과 잘 맞는지를 본다

2. p=p=\infin : 최고 similarity

NormSim(xt,xi)=maxxtXtargetfˉv(xtv),fˉv(xv))NormSim_{\infin}(x_t, x_i)=max_{x_t \in X_{\text{target}}} \bar f_v(x_t^v), \bar f_v(x^v) )

  • Target data 중 하나라도 매우 비슷하면 선택
  • 목적 : 이 샘플은 적어도 하나의 target data와 잘 맞으면 다

Necessity of using vision-only information
이 방법에서는 text embedding 대신 image embedding(xv)x^v)만 사용한다.

그 이유는 크롤링을 통해 얻는 text는 너무 짧고 모호하기 때문에 data의 분포를 잘 설명하지 못한다.

하지만 image 임베딩은 target 분포를 더 잘 반영한다.

Generality of NormSim in choosing teacher model
NormSim 방법에서는 image embedding만 사용하기 때문에 굳이 CLIP만을 사용할 필요가 없다.

다른 pre-trained된 모델의 embedding을 사용할 수 있다.

Theoretical justification
기존의 방법들은 다양성을 강제로 확보하기 위해 target 주변의 sample들을 고르지만 NormSim은 다양성을 강제로 고려하지 않고도 p=2인 경우 최족의 similarity를 보여주며 noise가 많은 data에서도 효과적이다.

profile
많이 배우고 싶습니다

0개의 댓글