[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가 됨