대조 학습 (Contrastive Learning)
쉽게 풀면
사람이 사진을 분류할 때 "이건 고양이", "이건 강아지"라고 일일이 이름표를 붙여주지 않아도, 비슷하게 생긴 사진들을 서로 가까이 모아두고 다르게 생긴 사진들은 멀리 떨어뜨려 놓기만 해도 어느 정도 종류를 구분할 수 있습니다. 대조 학습은 이 원리를 그대로 사용합니다. 같은 이미지를 살짝 다르게 변형한 두 버전(자르기, 색상 변화 등)은 "같은 종류"로 보고 임베딩 공간에서 서로 가깝게 만들고, 전혀 다른 이미지는 "다른 종류"로 보고 멀게 만드는 방향으로 모델을 학습시킵니다. 사람이 일일이 정답 라벨을 붙이지 않아도 되기 때문에, 라벨이 없는 대량의 데이터로 유용한 특징 표현을 배울 수 있다는 장점이 있습니다.
왜 중요한가
딥러닝 모델은 대체로 대량의 라벨 데이터가 있어야 좋은 성능을 내지만, 실제로는 라벨링 비용이 크고 라벨이 없는 데이터가 훨씬 많은 경우가 대부분입니다. 대조 학습은 이런 라벨 부족 문제를 우회해 라벨 없는 데이터만으로도 쓸모 있는 표현(representation)을 학습할 수 있게 해주기 때문에, 자기지도학습(self-supervised learning) 계열 연구에서 핵심적인 축으로 다뤄집니다. 이렇게 학습된 표현은 이미지 분류뿐 아니라 텍스트-이미지 정렬, 추천 시스템, 음성 표현 학습 등 다양한 분야의 사전학습 단계에서 널리 재사용되며, 소량의 라벨만으로 미세조정해도 좋은 성능을 낼 수 있다는 점에서 실무적 가치도 큽니다.
논문에서는 이렇게 쓰입니다
이 문장은 정답 라벨이 붙지 않은 대량의 데이터로 먼저 데이터의 유사성과 차이를 구분하는 능력을 학습시키고, 이후 적은 양의 라벨 데이터만으로도 원하는 작업(분류 등)에 맞게 모델을 조정했다는 뜻입니다.
서로 다른 종류의 데이터(텍스트와 이미지)를 같은 임베딩 공간에서 비교 가능하게 만드는 데도 대조 학습이 쓰인다는 뜻입니다. 짝이 맞는 텍스트-이미지 쌍은 가깝게, 짝이 맞지 않는 쌍은 멀게 배치하도록 학습시켜, 이후 검색이나 매칭 같은 작업에 그대로 활용할 수 있습니다.
이미지나 텍스트뿐 아니라 사용자 행동 로그 같은 시퀀스 데이터에도 대조 학습의 원리가 적용될 수 있음을 보여줍니다. 비슷한 패턴을 가진 데이터끼리 가깝게 모으는 방식은 신규 사용자처럼 데이터가 적은 상황에서도 어느 정도 일반화된 표현을 활용할 수 있게 해줍니다.
조금 더 깊게 보면
대조 학습 논문을 읽다 보면 InfoNCE 손실 함수라는 용어를 자주 마주치게 되는데, 이는 양성 쌍(같은 종류로 취급되는 쌍)의 유사도는 높이고 다수의 부정 쌍과의 유사도는 낮추는 방향으로 학습을 유도하는 손실 함수입니다. 이때 온도(temperature) 파라미터가 유사도 값의 분포를 얼마나 뾰족하게 만드는지를 조절하며, 이 값의 설정이 학습 결과에 영향을 줄 수 있습니다. 또한 부정 샘플을 얼마나 많이, 어떻게 확보하느냐가 성능에 큰 영향을 미치기 때문에, 메모리 뱅크나 모멘텀 인코더 같은 구조로 부정 샘플 풀을 확장하는 방법들도 함께 등장합니다. 학습된 표현의 품질은 대체로 선형 평가(linear evaluation, 학습된 표현 위에 단순한 분류기만 얹어 성능을 재는 방식)나 다운스트림 작업으로의 전이 성능을 통해 간접적으로 확인합니다.
주의할 점
대조 학습의 성능은 "비슷한 쌍"과 "다른 쌍"을 어떻게 구성하느냐(데이터 증강 방식, 부정 샘플 선택 방법 등)에 크게 좌우됩니다. 부정 샘플을 잘못 구성하면 오히려 학습이 왜곡될 수 있으며, 일반적으로 많은 수의 부정 샘플과 큰 배치 크기가 필요해 계산 자원 소모가 크다는 점도 고려해야 합니다.