SimCSE: Simple Contrastive Learning of Sentence Embeddings

SimCSE 논문 리뷰
김호진's avatar
Sep 19, 2024
SimCSE: Simple Contrastive Learning of Sentence Embeddings
Abstract
문장 단위의 텍스트를 임베딩하는 논문이다.
우선 1) unsupervised 방법을 제시하는데 문장을 받은 다음 standard dropout한 값과 constrastive learning 적용 2) supervised 방식으로, entailment pair를 positive로, contradiction pair를 하드 negative로 사용해서 똑같이 CL wjrdyd
평가는 비슷한 문장끼리 embedding similarity를 계산하는 방식으로 했다.
그리고 이론 + 실험적으로, contrastive learning objective를 썼을 때 pre-trained 임베딩의 anisotropic 공간을 더 균일하게 정규화한다는걸 알아냈다 → positive supervised set으로 학습했을 때, 더 잘 align 시킨다.
 
Introduction
어디든 사용가능한 sentence embedding을 학습하는건 매우 중요한 태스크다. 여기서는 pre-trained LM BERT와 RoBERTa를 사용하는 방법을 제시한다. 그리고 학습은 contrastive learning으로
 
학습은 크게 두 단계로 나뉜다. Unsupervised와 Supervised.
notion image
Unsupervised SimCSE
아이디어는 매우 간단하다. contrastive learning은 positive pair의 임베딩 끼리는 거리가 가깝게, negative pair의 임베딩끼리는 거리가 멀게 임베딩되도록 embedding model을 학습한다. 그러므로 여기서 필요한건 어떤 방식으로 unsupervised 하게 positive, negative pair를 정의하는가 이다.
여기서는 문장 s가 있다고 했을 때,
  1. 여기에 masking을 통해서 dropout을 적용한다. 여기서 dropout은 transformers의 기본적은 dropout(임베딩 과정에서 일부 뉴런 dropout)
    1. 한 문장을 각기 다른 마스크로 dropout을 적용해서, 두개의 noised 쌍을 만든다. 그리고 이걸 positive pair로 사용
  1. negative pair는 in-batch sampling으로 얻는다.
이 두개를 사용해서 contrastive learning을 적용한다. 새로운 모듈을 학습할 필요도 없으며, 가진 LM(BERT)에 dropout만 적용하면 되는 방법이기 때문에 매우 간단하다.
기존에는 unsupervised로 다음 문장을 예측하거나 임의의 discrete data aug를 적용하는 방법 등을 썼었다. 얘네보다 훨씬 나음.
notion image
다른 방법들과 비교한 결과. 훨씬 나은걸 알 수 있다.
 
→ 이게 왜 좋을까?
notion image
실험결과 dropout 비율이 디폴트값(0.1)일 때 가장 성능이 좋았다.
그런데 여기 두가지 재밌는 결과는
  1. dropout을 적용하지 않은 것과, 두 문장에 모두 같은 dropout을 적용한 결과가 크게 달랐다. 후자가 크게 안좋았다.
    1. notion image
      학습 중간중간에 값을 뽑아서 alignment와 uniformity를 체크해서 시각화한 결과(위)
      alignment는 postivie pair의 임베딩끼리 얼마나 가까운지를 나타내고(작을 수록 좋음),
      uniformity는 임베딩들이 얼마나 잘 분산되어있는지를 의미한다.
       
      다시말해, 위의 결과를 보면 모두 다 uniformity는 잘 감소하는데, 나쁜 2가지는 alignment가 안좋아져서 결과가 안좋다는걸 알 수 있다.
  1. delete one word도 좋은 방향으로 학습한다. 단지 상대적으로 성능이 simcse보다 안좋을 뿐
 
Supervised
supervised set은 서로 비슷한지, 반대인지, 상관없는지를 나타내는데 여기서 positive pair만 고른 다음 위와 같은 objective로 학습한다.
그리고 반대의 pair를 negative 쌍으로 사용한다. 활용하면 좋으니까! → 이런 데이터는 현실에는 많지 않을듯
notion image
ablation study 했을 때는 이정도로 차이났다.
 
 
Evaluation
notion image
 
다른 모델들과 비교하면 이렇다.
notion image
 
좋은 unsupervised 방법을 고안해내는건 분명히 매우 중요한 작업임과 동시에, 직관과 embedding space와 objective의 상관관계에 대한 아주 깊은 이해를 필요로 하는 듯 하다.
unsupervised는 유니크하고 창의적인 솔루션을 고안해내는 능력이 빛을 발하는 영역인듯 + 실험 자체의 능력도(ablatioin, evaluation 등)
 
얀 르쿤씨의 JEPA가 텍스트에도 적용가능한 방법인가? 관련 논문이 있는지 궁금해졌다.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Share article
Subscribe to our newsletter
RSSPowered by inblog