[AI] 1. 대조학습(Contrastive Learning)은 왜 하는가?

대조학습(Contrastive Learning)은 한 문장으로 말하면
“비슷한 것은 가깝게, 다른 것은 멀게 배치하는 임베딩 공간을 학습하기 위해” 한다.

그런데 실제로는 꽤 중요한 이유들이 있습니다.


1. 왜 굳이 대조학습을 쓰는가?

(1) 라벨 없이도 의미를 학습하기 위해

일반적인 지도학습은 이런 구조:

  • (입력, 라벨) 쌍으로 모델 학습

하지만 현실에서는 대부분 라벨을 얻기 어렵다.

  • 고객 행동 데이터 → 행동의 의미에 대한 라벨 없음
  • 텍스트 → 정답 없음
  • 이미지 → 분류 기준 애매

이때 대조학습은 라벨 대신 입력데이터에 대한 “쌍(pair)”을 만든다

  • Positive pair: 비슷한 것
  • Negative pair: 다른 것

이후 같은 pair끼리 유사해지도록 학습한다.


(2) 좋은 임베딩 공간을 만들기 위해

대조학습의 본질은 사실 모델이 아니라 공간을 만드는 것.

좋은 임베딩 공간이란:

  • 같은 의미 → cosine similarity ↑
  • 다른 의미 → cosine similarity ↓

예:

  • "세탁기 구매 vs. 건조기 구매"
    → 서로 가까워짐
  • "세탁기 구매 vs. 자동차 구매"
    → 서로 멀어짐

이게 바로 추천/타겟팅의 핵심 구조로 동작할 수 있다


(3) 다운스트림 task를 쉽게 만들기 위해

대조학습을 하면:

  • 분류 모델 필요 없음
  • 복잡한 head 필요 없음

그냥 유저와 아이템간의 유사도만으로 추천가능.

즉, 모든 문제를 “유사도 계산 문제”로 바꿔버림


(4) 일반화(Generalization)가 강해짐

대조학습은 특정 태스크를 맞추는 게 아니라 구조 자체를 학습하게 됨.

그래서:

  • 새로운 상품 등장
  • 새로운 행동 패턴 등장

→ 잘 대응됨

이게 LLM / embedding 모델이 강한 이유


2. 현업에서의 예시

가령 고객이 다음과 같은 행동을 했고 이 고객의 특성을 알아내려고 하는 경우를 생각해 보자:

세탁기 구매 → 수리 → 건조기 상담 → 에어컨 구매 ...

이때 LLM을 사용하여 위와 같은 고객별 행동을 입력으로하고 출력을 LLM의 hidden state를 활용하여 embedding을 추출할 수 있을 것이다.

그리고, 이렇게 각기 다른 행동을 하는 고객별로 도출된 embedding을 대조학습을 한다고 하면 positive와 negative embedding pair는 다음과 같은 경우일 것이다:

(1) Positive 정의

  • 같은 고객의 연속 행동
  • 비슷한 라이프스타일 고객
  • 같은 구매 funnel

(2) Negative 정의

  • 완전히 다른 구매 패턴
  • 다른 lifecycle

이 경우 대조학습을 완료하게 되면 고객별 embedding은 특별한 특성을 갖는 형태로 공간상에 분포하게 된다.

  • “1인가구” 방향
  • “가전 헤비유저” 방향
  • “수리 중심 고객” 방향

즉:

embedding 자체가 고객 속성(feature)이 됨


3. 핵심 요약

대조학습을 하는 이유는 4가지로 정리됨:

1. 라벨 없이 학습하기 위해

→ 현실 데이터는 라벨이 없다

2. 의미 있는 임베딩 공간을 만들기 위해

→ 추천/검색의 기반

3. 모든 문제를 유사도로 풀기 위해

→ 모델 단순화

4. 일반화 성능을 얻기 위해

→ unseen 데이터 대응


사실 대조학습의 본질은 이것:

“의미를 직접 학습하는 것이 아니라, 관계를 학습한다”

  • supervised: 정답 맞추기
  • contrastive: 구조 맞추기

그래서 결과적으로:

embedding space 자체가 knowledge가 됨