논문요약 및 정리

SimCSE: Simple Contrastive Learning of Sentence Embeddings

빛날희- 2022. 11. 30. 13:09
  1. EMNLP.

Introduction

  • universal sentence embedding을 학습하는 것은 NLP에서 다루는 근본적인 문제임
    • Contrastive learning
      • 미니배치 별로 구성된 문장에서, 문장 pair를 구성하고 pair들 중 positive pair가 무엇인지 찾는 학습이다.
      • 두가지 문장의 의미에 따라 positive pair인지 negative pair인지를 찾는다.

SimCSE

  • Pretrained embedding + contrastive learning → SoTA sentence embedding
  • Contrastive learning을 통해 sentence 학습함
  • unsupervised와 supervised setting으로 나눠 실험 설계함

Background

Contrastive learning main Idea

가까운 애들을 더 가깝게 만들고 먼 애들은 더 멀게 만들자!

  • sim(h1,h2)sim(h_1, h_2) : cosine similarity
  • 분자: 두가지 positive pair sentence embedding이 얼마나 유사한지
  • 분모: 미니배치 내 구성되는 negative pair가 얼마나 유사한지
  • BERT or RoBERTa로 학습된 모델로 input sentence encode → contrastive learning objective로 all parameters finetuning

Positive instances

positive pair를 어떻게 구축할 것인가?

vision에서는 원본 이미지에 augmentation을 진행한 후 원본과 augmented image를 positive pair로 구성함

NLP의 경우 reordering, word deletion 등과 같은 augmentation기법이 존재하긴하지만, 내재적으로 이러한 방법을 적용하기엔 어려움 (문장에서 중요한 의미를 전달하는 단어가 지워지면 의미적인 변질이 생길 수 있음)

  • 라벨이 없는 상황(어떤 문장이 어떤 문장과 유사한 의미를 가지는 지 알 수 없는 상황)에서는 positive pair를 어떻게 구축할 것인지가 중요
  • 동일한 loss를 사용해도 구성되는 pair에 따라 성능이 달라짐
    • 기존에는 question passage pairs 데이터셋에서 pair 구성
    • 본 논문에선 dropout을 적용해서 pair를 구성했을 때 가장 성능이 좋았음
    • 기존 성능보다 높아질 수 있었던 이유는 pair를 잘 구성했기 때문이라고 볼 수 있음

Alignment and Uniformity

SimCSE의 성능을 분석하기 위한 툴로 사용

Understading Contrastive Representation Learning Through Alignment and Uniformity on the Hypersphere”, 2020, Wang and Isola
  • 평가하기 애매했던 representation을 평가할 수 있는 척도를 제시
    • Alignment: positive paired instance 사이의 거리를 의미하는 척도로, 거리가 가까울수록 두 문장이 의미적으로 유사한 것임
    • Uniformity: 임베딩이 얼마나 균일하게 분포하는지 의미하는 척도로, 임베딩이 균일하게 분포할 수록, 각 단어가 다른 문맥에서의 고유한 의미를 보존할 수 있기 때문에 균일한 것이 좋음
  • Contrastive learning에선 representation이 alignment 와 uniformity를 잘 만족시킬 수 있음
    • Contrastive learning으로 학습 진행 → negative pair와 positive pair가 멀어지도록 강제 → embedding space를 균일하게 분포하도록 함 → Alignment와 Uniformity를 모두 만족하는 representation 생성

Unsupervised vs Supervised SimCSE

  • Unsupervised SimCSE
    • Input
      • Positive pair: 동일한 문장을 positive pair로 활용 → 기학습된 인코더에 하나의 문장을 두번 입력하여 다른representation 도출
      • Negative pair: 같은 배치 내 다른 문장을 negative pair로 활용
    • input에 들어가는 문장은 동일할지라도, 인코더에서 들어가는 dropout이 달라지기 때문에 상이한 hidden representation을 생성
    • dropout은 hidden representation의 minimal data augmentation으로서 기능함. → representation collapse 제거
    • 모델은 negative들 중 positive pair를 찾도록 학습됨
  • Supervised SimCSE

    Natural Language Inference 데이터셋 사용

    SNLI dataset 예시
    • Input
      • Positive pair: entailment 관계인 문장을 positive pair로 활용
      • Negative pair: 샘플 배치 내 다른 문장들 + contradiction 관계인 문장 활용
    • NLI데이터셋을 활용한 것과 contradiction관계인 문장들을 추가한 방법이 이전 방법들보다 성능이 좋았던 이유 중 하나라고 언급

Unsupervised SimCSE

본 논문에선 dropout을 적용하는 것으로 pair를 구성했지만, 그 외 기법들 역시 실험해 보았다.

  • Dropout만 수행했을 때의 성능이 가장 높음.

self prediction training objective와 인코더에 따라 성능이 어떻게 달라지는지도 실험했다.

  • Next Sentence Prediction에선 듀얼 인코더 적용 시 성능이 향상되어 자주 사용되던 방법이었음
  • 하나의 인코더만 사용해도 성능이 좋음

왜 이것이 잘 되었을까?

  • dropout rate를 변경하며 실험한 결과 p=0.1일 때 성능이 가장 좋았음
  • fixed 0.1: 가장 잘 나왔던 0.1을 고정해두고 같은 dropout mask 적용, 해당 경우엔 uniformity는 좋아지지만 alignment는 안좋아지는 양상을 보임 (alignment collapse)
  • p= 0.0, fixed 0.1 → 두 문장의 representation이 완전히 동일한 경우임
  • SimCSE의 경우, 다른 기법들에 비해 alignment는 유지하면서도 uniformity가 좋아지는 양상을 보이기에 비교적으로 좋은 성능을 가지게 되었을 것이라고 추정

Supervised SimCSE

어떤 데이터 셋으로 가져오는게 pair를 구성하는게 가장 좋을까?

positive pair를 구성할 때 NLI 데이터를 활용 ← 4가지 데이터셋을 실험해보았지만 가장 성능이 좋았음

  • positive pair: entailment pairs
  • negative pair: contradiction pairs + 완전히 다른 의미를 가지는 hard negative pair
  • negative pair로 완전히 다른 의미를 가지는 문장과 원래 문장과 관련없는 다른 문장들을 사용

  • SNLI, MNLI를 사용한 경우 + entailment와 함께 contradiction을 negative pair로 활용한 경우의 성능이 가장 좋았음
    • 두 데이터의 annotation quality가 높음
    • entailment와 contradiction label이 타 데이터 셋에 비해 좋음

Connection to Anisotropy

  • anisotropy 문제: learned embedding이 심각하게 expressiveness를 제한함 → 문맥에서 의미가 서로 상이한 단어일지라도 의미가 과도하게 유사해질 수 있음
  • embedding space의 uniformity에 악영향을 줌
  • 이를 완화하기 위한 후처리 방법에 대한 연구가 이뤄져왔음
    • 임베딩을 isotropic distribution에 매핑
    • regularization을 학습 중 추가

다른 후처리 방법들은 uniformity를 향상시키는데에만 집중했지만 contrastive objective는 alignment는 유지시키면서 uniformity를 향상시킴.

Experiment

  • 평가 방법
    • STS task는 각 sentence의 output representation의 cosine similarity를 도출
    • 사람으로부터 5점 척도로 평가된 score와 Spearman’s, Pearson’s correlation 계산
  • 학습 데이터
    • unsupervised: randomly sampled wikipedia sentence
    • supervised: mnli + snli
  • 기존 방법론들 보다 월등히 성능이 좋음
    • contrastive learning을 한 IS-BERT, CT-BERT, DeCLUTR 보다도 성능이 좋음
    • BERT에 후처리를 거친 flow, whitening model보다 성능이 좋음
    • RoBERTa에 SimCSE를 적용했을 때도 성능이 좋음

Ablation study

  • pooler로 CLS-vector를 사용할 것인지, Avg embedding을 사용할 것인지에 따라 성능차이가 발생한다는 결과들이 존재
  • SimCSE에선 pooling method를 변경해도 성능변화가 크지 않음
    • unsupervised에선 CLS with MLP (train)
    • supervisesd에선 CLS with MLP

Analysis on uniformity and alignment

  • pretrained embedding은 alignment는 좋으나 uniformity가 좋지않음
  • SBERT와 BERT whitening 모델은 post process를 거친 모델임 → uniformity는 좋지만 alignment는 좋지않음
    • reperesentation의 anisotropy한 성질을 완화하기 위해 후처리 진행
    • 위 네가지 기법은 Avg.BERT에서 후보정을 거친 성능임 → 학습이 진행될 수록 alignment collapse 현상이 나타남
  • unsupervised SimCSE는 BERT에 비해 uniformity를 줄여주며 alignment는 유지시킴
  • supervised SimCSE는 unsupervised보다 uniformity를 더 향상시킬 수 있었음

Conclusion

  • contrastive learning 수행 시 positive pair를 잘 구성하여 high quality sentence representation을 생성
  • unsupervised, supervised setting 모두 제안
  • downstream task에서도 좋은 성능 기록 (sentiment classification, opinion classification .. )

Reference

Yuxin Liang et al., 2021, Towards Isotropic Pre-trained BERT Embedding

Yung-Sung Chuang et al., 2022, DiffCSE: Difference-based Contrastive Learning for SentenceEmbeddings

https://velog.io/@kimkj38/논문-리뷰-Understanding-Contrastive-Representation-Learning-through-Alignment-and-Uniformity-on-the-Hypersphere

https://aclanthology.org/D19-1006/

https://ws-choi.github.io/blog-kor/nlp/deeplearning/paperreview/Contextualized-Word-Embedding/


Uploaded by N2T