ChangHyeon Nam's Blog notes and thoughts

Simple Contrastive Learning of Sentence Embeddings(SimCSE, EMNLP 2021)

Comments

SimCLR에서 사용한 Contrastive learning을 통해 sentence embedding을 표현하고자 연구 되었다. SimCSE에서의 핵심은 다음과 같다. Unsupervised SimCSE에서는 input sentence itself를 예측하는 과정을 통해 학습하였다. Dropout mask를 minimal augmentation으로써 사용하였는데, 단순히 dropout만으로 기존의 모델들의 성능을 능가했다. Supervised SimCSE에서는 NLI dataset을 이용하여 supervised signal을 제공하였다. SimCSE는 sentence embedding의 alignment, uniformity를 향상시키며, 이 과정에서 embedding space의 anisotropic(비등방성)을 완화시켰다. [Paper Link]


Prior Knowledge

논문을 이해하기 전에 알아야할 것들을 간단하게 적어보았다.

  1. SimCLR(ICML 2020)

    SimCLR은 Vision에서 Contrastive learning으로 representation을 연구한 논문이다. Self-supervised, Semi-supervised learning에서 좋은 성능을 기록하였다. [Paper Link]

    Contrastive Learning은 semantically close neighbors를 당기고(pull), apart non-neighbors를 밀어내는 것(push) 을 통해 effective representation을 학습한다. [paper Link]

  2. How Contextual are Contextualized Word Representations? : Isotropic vs Anisotropic

    Untitled Isotropic, Anisotropic은 How Contextual are Contextualized Word Representations? 에서 설명한 개념들이다. [paper Link] 이전에는 Isotropic, anisotropic은 NLP에서 생소한 개념들이었다.

    Isotropic은 벡터가 주어진 공간에서 모든 방향으로 존재하는 상황을 의미한다. 반대로 Anisotropic은 벡터가 주어진 공간에서 특정한 방향으로만 향해 있어서, 일종의 cone 형태를 이루고 있는 것을 의미한다.

    • Embedding vector가 Isotropic하다면 각 임베딩이 나타내는 단어의 의미가 구분되고, 유사한 단어는 가까이, 상관없는 단어는 멀리 분포하게된다.
    • Embedding vector가 Anisotropic하다면 각 임베딩이 의미와 무관하게 가깝게 분포하게되어 임베딩 벡터들이 구분되지 않을 것이다.

    위 논문에서는 PLM을 학습할 수록 상위 layer에서 anisotropic하다는 특징을 가진다는 결과를 도출하였다. 이 두 개념은 SimCSE의 성능 evaluation에서 사용된 Uniformity를 이해하기 위해서 알아야 한다.

  3. NLI(Natural Language Inference)

    Untitled 1

    Natural language inference is the task of determining whether a “hypothesis” is true (entailment), false (contradiction), or undetermined (neutral) given a “premise”. [reference link]

Abstract

SimCSE논문은 Contrastive learning framework을 통해 sentence embedding에 대해 SOTA를 달성하였다. Unsupervised setting, Supervised setting으로 나누어 실험을 설계하였다.

  1. Unsupervised SimCSE
    1. input sentence를 입력으로 넣고, standard dropout만을 noise로 사용하여 Contrastive objective에서 그 input sentence 자신을 예측하게 했다.
    2. Drop out을 minimal data augmentation으로써 사용했다. Input은 동일하지만 dropout으로 상이한 hidden representation을 생성하여 positive pair를 구성하였다.
  2. Supervised SimCSE
    1. NLI Dataset을 이용하여 Contrastive learning을 진행하였다.
    2. “entailment” pair를 positive로, “contradiction” pair를 hard negative로 분류하여 사용하였다.

Standard semantic textual similarity(STS) task를 이용하여 SimCSE를 평가하였다. $BERT_{base}$를 이용하여 unsupervised, supervised 모델은 각각 76.3%, 81.6% Spearman’s correlation의 성능을 달성하였고, 이전의 SOTA보다 각각 4.2%, 2.2% 향상되었다.

해당 연구에서는 이론적/경험적으로 Contrastive learning objective가 pretrained embeddings’ anisotropic space를 더 uniform하게 만들어주고, supervised signal이 가능할때 positive pair들을 더 잘 align해준다. (it better aligns positive pairs when supervised signals are available라는 설명이 와닿지 않는다. 뒷 부분에 나오겠지만, NLI dataset을 이용해 premise, entailment(true), contradiction(hard negative) 으로 이루어진 triplet으로 supervised SimCSE를 학습했다. 여기서 true, hard negative가 supervised signal을 의미한다.)

1. Introduction

Learning universal sentence embeddings는 NLP에서 fundamental한 문제이고, 많이 연구되는 분야이다. SimCSE는 sentence embedding에서 SOTA한 성능을 보였고, BERT, RoBERTa와 같은 PLM을 Contrastive objective와 같이 사용한다면 매우 효율적이고, 좋은 성능을 보인다는 것을 입증했다.

  1. unsupervised simCSE

    Untitled 2

    • Pretrained encoder를 통과한 하나의 input sentence의 embedding에 대해 hidden dropout mask로 data augmentation을 하여 2개의 문장으로 이루어진 positive pair를 만든다.
    • 다른 문장들을 이용하여 같은 mini-batch에 negative pair를 만든다.
    • 이렇게 만든 mini-batch에서 positive pair를 예측하면서 학습하게 된다.

    이 방법은 매우 간단하지만, 이전 supervised 방식에서 사용되었던 NSP(Next-Sentence-Prediction)와 같은 training objective, discrete data augmentation by a large margin보다 더 좋은 성능을 보였다. Dropout으로 data augmentation을 하면 representation이 collapse하는 것 또한 방지할 수 있다.

  2. Supervised SimCSE

    supervised SimCSE는 NLI(Natural Language Inference) dataset에서의 annotated sentence pairs를 contrastive objective으로 sentence embedding을 학습하였다.

    Untitled 3

    • NLI에서는 3가지 분류 (entailment, neutral, contradiction) task를 진행했지만, SimCSE는 entailment, contradiction만을 사용하였다.
    • Entailment pairs를 positive instances로 사용 하였고, contradiction pairs를 hard negatives로 사용하였다.
    • 같은 NLI 데이터셋에 대해 이러한 간단한 방법은 상당한 성능 향상을 보였다.
    • 다른 labeled sentence-pair dataset과 NLI dataset의 성능을 비교하였고, 후자가 훨씬 더 좋은 성능을 보였다.
  3. SimCSE Evaluation

    SimCSE의 좋은 성능에 대해 더 이해하고자, Wang and Isola(2020)의 analysis tool를 사용하였다. 이 tool은 semantically-related positive pairs사이의 Alignment 와 학습된 embedding quality를 측정하기 위해 전체 representation의 Uniformity 를 다룬다.

    • Empirical analysis를 통해, SimCSE가 dropout noise를 통해 degenerated
    • 같은 방식으로 Supervised SimCSE 에서 NLI training signal은 positive pairs사이의 alignment를 향상시키고, 더 좋은 sentence embedding을 만든다고 하였다.

    최근 연구 중 How Contextual are Contextualized Word Representations? 논문에서 pretrained-word embeddings은 anisotropy하다는 것에 주목하였다. Contrastive Learning objective를 통해 sentence embedding space 의 singular value distribution을 flatten 하였고, 이는 uniformity를 향상시켰다.

    7가지 STS(semantic textual similarity) task와 7가지 transfer task에서 SimCSE의 성능을 evaluate하였다.

    • STS task에서 unsupervised, supervised model은 $BERT_{base}$를 이용하여 각각 76.3%, 81.6% average Spearman’s correlation을 달성하였고, 이전 best result보다 4.2%, 2.2% 성능 향상을 보였다.
    • Transfer task에서도 좋은 결과를 얻었다.

2. Background : Contrastive Learning

Contrastive Learning은 semantically close neighbors를 당기고(pull), apart non-neighbors를 밀어내는 것 (push) 을 통해 effective representation을 학습한다. SimCSE는 SimCLR에서의 Contrastive learning framework를 따른고, in-batch negative에서 cross-entropy objective를 이용한다.

다음은 related pair, set, loss function 등의 수식에 대한 설명이다.

Screen Shot 2022-05-26 at 12.52.38 AM

BERT, RoBERTa와 같은 PLM model로 input sentence를 encode하고, Contrastive-learning으로 finetune하였다.

Positive instances

Contrastive Learning에 있어서 critical question 중 하나는 “어떻게 $(x_i,x_i{^+})$ pair를 구축할 것인가” 이다.

Untitled 4 SimCLR에서는 같은 이미지에 대해 two random transformation을 적용하여 만든다. (transformation : cropping, flipping, distortion, rotation)

비슷한 방법(Word deletion, reordering, substitution)이 NLP에서도 적용되었다. 하지만 NLP에서의 data-augmentation은 discrete한 특성 때문에 어렵다. 앞서 설명 했듯이, Standard dropout을 intermediate-representation (PLM을 통과한 encoded embeddings)에 적용한 것은 이전의 방법들에 대해 outperform 하였다.

유사한 Contrastive Learning이 NLP의 different context에서도 사용된적이 있다. 이 경우, $(x_i,x_i{^+})$는 question-passage pairs와 같은 supervised datasets에서 수집되었다. $(x_i,x_i{^+})$의 discrete한 특성 때문에, 각각에 대해 encoder를 사용했다. (이 구조는 dual-encoder framework이라 불린다.)

Sentence Embedding에 대해서도 Contrastive Learning이 dual-encoder와 함께 사용된 적이 있다. $(x_i,x_i{^+})$의 각각은 current sentence, next sentence를 의미한다.

Alignment and Uniformity

Wang and Isola(2020) 의 논문에서 Contrastive learning과 관련된 두가지 key-point를 소개했다.

Untitled 5 Alignment와 Uniformity를 통해 representation의 quality를 측정할 수 있다.

Alignment

주어진 positive pairs $p_{pos}$의 distribution에 대해, alignment는 paired instances의 embeddings 사이의 expected distance를 계산한다. (representation은 정규되어 있다고 가정한다.) Distance가 짧을 수록 좋다.

Uniformity

Embeddings이 얼마나 uniformly distribute되어 있는지 측정한다.

Positive instance들은 가깝게 위치해야하고, random instances에 대한 embedding은 hypersphere에 scatter되어 있어야 한다. 위의 두가지 metric을 이용하여 우리의 접근법을 justify할 것이다.

3. Unsupervised SimCSE

Unsupervised SimCSE에서 핵심은 $(x_i,x_i)$에 대해 sampled dropout masks를 사용한 identical positive pairs를 이용한 것이다. Transformer의 기존 논문에서는 dropout masks는 attention probability 로써, fully-connected layers에 사용 되었다.(default p = 0.1)

$h_i^z=f_\theta(x_i,z)$ 에서 z는 dropout에 대한 random mask를 의미한다. Encoder에 같은 input을 두번 넣고, 두개의 embedding을 각각 다른 dropout masks $z,z’$를 통해 얻는다.

그리고 다음 objective로 SimCSE를 학습시킨다.

Screen Shot 2022-05-26 at 12.53.59 AM

Dropout noise as data augmentation

Dropout noise은 minimal form of data augmentation 이라고도 할 수 있다. Dropout masks만으로 같은 문장에 대한 embedding이 달라진다. 이 방법을 STS-B 데이터셋에 대해 다른 training objective와 비교했다.

Untitled 6 또한 self-prediction training objective를 next-sentence objective와 비교했다.

Untitled 7

Why does it work?

Unsupervised SimCSE에서 dropout noise의 역할을 이해하기 위해, Table3에서 dropout rates에 대해 다른 값들을 실험했고, 다른 rate값이 Transformer에서의 default dropout probability p=0.1보다 성능이 저조했음을 확인했다.

Untitled 8 Table3에서 2가지 extreme case가 흥미로웠다. : (1) “no dropout(p=0)” (2) “fixed 0.1” (using default dropout. pair에 대해 같은 dropout masks를 사용함.) 그리고 이것들은 매우 큰 성능 저하로 이어졌다.

fixed 0.1과 p=0.1의 차이점이 헷갈렸다. 이해한 바로는, fixed p=0.1로 만든 dropout mask를 pair에 모두 사용했다는 것은 결국 동일한 embedding으로 이뤄진 pair를 넣었다는 것이다.

10steps마다 training checkpoint를 만들어 alignment와 uniformity를 Figure 2.로 시각화 하였다. (delete one word로 augmentation model 또한 같이 시각화 하였다.)

Untitled 9

($l_{uniform}, l_{align}$은 낮을 수록 좋은 것이다.)

위의 그림에서 볼 수 있듯이, Pretrained check point에서 시작하여 모든 모델의 uniformity가 향상 되었다. 하지만 Fixed 0.1, No dropout의 모델은 Alignment가 매우 크게 안좋아졌다. 또한 initial alignment 값을 제공하기 때문에 PLM의 checkpoint한 중요한다는 것을 증명했다. “delete one word”는 alignment는 향상 되었지만, uniformity는 smaller gain을 얻었다. 즉, unsupervised SimCSE보다 under perform하였다.

4. Supervised SimCSE

앞서 Dropout noise를 추가하는 것이 Positive pairs $(x,x{^+})$에 대해서 좋은 alignment를 유지시킨다는 것을 증명했다. 이번 섹션에서는 supervised datasets를 이용하여 alignment를 향상을 위한 더 좋은 training signals를 제공할 수 있다는 것을 연구했다. 이전 연구(Conneau et al. 2017)에서 supervised NLI datasets이 sentence embeddings를 학습하는데 효과적이라는 것을 증명했다. (두개의 문장간의 관계를 예측함으로써, Entailment/neutral/contradiction) 우리의 Contrastive learning framework에서는 supervised datasets에서 $(x_i,x_i)$ pair를 가져와서 이전에 설명한 objective function을 optimize할것이다.

Choices of labeled data

먼저, positive pairs $(x_i,x_i{^+})$를 어떤 supervised datasets로 구축해야하 suitable한지 찾아보았다. 다음 dataset들을 이용하였다.

  • QQP : Quora question pairs
  • Flickr30k : each image is annotated with 5 human-written captions and we consider any two captions of the same image as a positive pair
  • ParaNMT : a large-scale back-translation paraphrase dataset
  • NLI datasets : SNLI, MNLI

각 dataset에 대해 Contrastive learning model을 학습을 하였고, Table 4에 결과를 비교하였다.

Untitled 10 SNLI+MNLI가 가장 좋은 성능을 보였고, 이것이 reasonable하다고 생각했다. 왜냐하면 NLI datasets이 높은 퀄리티로 이루어져 있고, human annotators가 premises에 기저하여 hypotheses를 작성하였고, 두 문장은 lexical overlap 측면에서 less overlap되는 경향을 보여 주었다. Lexical overlap ( F1 measured between two bags of words)를 데이터셋에 대해 다음과 같이 측정하였다.

  • SNLI+MNLI for entailment pairs : 39%
  • QQP : 60%
  • ParaNMT : 55%

Contradiction as hard negatives

Contradiction pairs를 hard negatives로 사용하여 NLI dataset의 이점을 사용하였다.

Untitled 11 (image link : SNLI)

위와 같이 NLI dataset은 annotator가 주어진 premise에 대해 true(entailment), might be true(neutral), false(contradiction)에 대한 각 문장을 작성한다.

$(x_i,x_i{^+})$을 $(x_i,x_i{^+},x_i^-)$으로 확장하였다. 이때, triplet은 (premise, entailment, contradiction)과 대응된다. Triplet에 대한 Training Objective $l_i$는 다음과 같이 정의된다.

Untitled 12 위의 Table4에서 볼 수 있듯이, hard negative를 추가하는 것은 84.9 → 86.2의 성능향상을 보여준다. ANLI dataset과 결합하거나, Unsupervised SimCSE와 결합하는 방법 또한 시도했으나 의미있는 향상을 발견하지 못했다. 또한 dual encoder를 사용하면 성능이 손상되었다. (86.2 → 84.2)

5. Connection to Anisotropy

최근 연구들에서 language representation에서의 anisotropy problem을 인지했다. anisotropy problem은 Learned embedding이 vector space에서 좁은 원뿔 모양을 보이는 것이고, 이는 expressiveness를 심각하게 제한 시킨다.

Untitled 13 (위의 그림에서 Anisotropy의 원뿔 모양을 확인할 수 있다.)

Gao et al(2019)에서는 tied input/output으로 학습된 LM은 anisotropic word embeddings을 야기할 수 있다고 밝혔다. 또한 Ethayarajh(2019)에서 PLM 또한 이 문제가 야기된 것을 관찰했다. Wang et al(2020)에서는 LM에서의 word embedding matrix의 singular value가 급격하게 감소된 것을 보여주었다. (few dominant singular value를 제외한 대부분의 singular value는 거의 0으로 감소하였다.)

Gao et al(2019)/Ethayataih(2019)로부터 Contrastive Learning으로 모델을 만든다면, tied input/output으로 학습하는 것이 아니기 때문에 Anisotropy할 가능성을 낮출 수 있다는 유추할 수 있다. 그런데 궁금한 것은 Singular value가 word embedding matrix와 어떤 관계가 있는 지 이다. 행렬의 Singular value는 행렬로 표현되는 선형변환의 스케일 변환 값이다. 이를 참고하면, 대부분의 singular value가 0이 되었다는 것은 대부분의 차원에 대한 선형변환의 스케일 0이라는 것이고, 이는 원뿔모양을 야기할 수 있다. 즉 singular value가 few dominant value를 제외하고는 0에 가까워 졌다는 것은 Anisotropy하다고 할 수 있다.

Anisotropy problem을 완화시킬 수 있는 방법 중 간단한 방법들은 다음과 같다.

  1. post processing
  2. eliminate dominant principal components
  3. map embeddings to an isotropic distribution.
  4. add regularization during training.

본 연구에서는 Contrastive Learning 또한 anisotropy problem을 완화시킬 수 있는 방법 중 하나라고 주장한다. Anisotropy problem은 본질적으로 uniformity와 연관 되어있다. Uniformity는 embeddings가 벡터 공간에서 균등하게 분포되어야 하는 것을 의미한다. Contrastive learning objective를 optimize하는 것이 uniformity를 향상 시키는 것과 동시에 negative instance를 멀어지게 한다. Word embedding을 분석할 때, common하게 사용하는 singular spectrum perspective를 사용하였다. Contrastive Objective가 sentence embeddings의 singular value distribution을 flatten하게 해주고, representation을 좀더 isotropic하게 만들어 준다.

다음 수식 (Eq6.) 을 통해 Contrastive Learning objective의 Asymptotics를 표현할 수 있다. (해당 수식은 negative instance의 개수가 무한에 가까울때를 가정한 수식이다.)

Untitled 14 첫번째 term은 positive instances를 비슷하게 유지해주고, 두번째 term은 negative pair를 멀리 push한다. 만약 $p_{uniform}$이 finite sample에 대해 unifrom하면 두번째 Term을 Jensen’s equality를 이용하여 다음과 같이 변환할 수 있다.

Untitled 15 $W$를 ${x_i}^m_{j=1}$ 에 대한 sentence embedding matrix이라 정의하고, $h_i$는 $W$의 i-th row이다. Eq6.의 두번째 항을 최적화 하는 것은 모든 $WW^T$에서의 모든 element 합의 upper bound를 최소한다. $Sum(WW^T)=\sum_{i=1}^m\sum_{j=1}^m = h_i,hj$

$h_i$를 정규화 하면 $WW^T$의 모든 diagonal 값은 1이 되고, tr($WW^T)$(sum of all eigen value) 는 상수가 된다. Merikoski(1984) 에서 $WW^T$의 모든 값이 약수라면, sum$(WW^T)$는 largest eigenvalue of $WW^T$의 upper bound라는 하였다. Eq. 6에서 두번째 term을 minimizing할때, $WW^T$의 top eigenvalue를 감소 시켰고, 본질적으로 embedding space에서 singular spectrum을 flatten 시켰다. 결론은 Contrastive Learning이 representation degradation problem을 완화하고 sentence embedding의 uniformity를 향상시켰다는 것이다.

6. Experiment

6.1 Evaluation Setup

7가지 STS(Semantic Textual similarity) task로 실험을 하였다. STS dataset은 학습에 사용되지 않았음을 주의해달라!. 또한 7가지 transfer learning task를 실험했다. (7 STS tasks : STS 2012-2016, STS Benchmark, SICK-Relatedness.)

  1. STS task는 각 Sentence의 output representation의 cosine similarity를 도출 하였다.
  2. 사람들이 5점 척도로 평가한 Score와 유사도 점수로 Spearman’s/Pearson’s correlation을 계산하였다.

6.2 Main Result

Untitled 16

6.3 Ablation Experiments

SBERT 논문에 따르면 pretrained-model의 average embeddings(especially from both the first and last layers) 를 이용하면 [CLS] token보다 더 좋은 성능을 보인다고 하였다.

Untitled 17 Table 6는 Unsupervised/Supervised SimCSE에서 pooling method에 따른 성능을 보여준다. SimCSE는 pooling method를 변경해도 성능변화가 크지 않았다.

7. Anaylsis

Uniformity and Alignment

Figure 3은 에 각기 다른 모델의 sentence embedding의 평균 STS Results를 보여준다.

Untitled 18 Wang and Isola(2020)에서 확인할 수 있듯이, Alignment와 Uniformity가 좋은 모델들이 더 좋은 성능을 보여준다는 것을 확인할 수 있다. 그외에도 우리는 다음과 같은 것을 관찰했다.

  1. Though pretrained embeddings have good alignment, their uniformity is poor.
  2. Post-processing methods like BERT-flow and BERT-whitening greatly improve uniformity but also suffer a degeneration in alignment
  3. Unsupervised SimCSE effectively improves uniformity of pre-trained embeddings whereas keeping a good alignment
  4. Incorporating Supervised data in SimCSE further amends alignment
  5. In Appendix F, we further show that SimCSE can effectively flat- ten singular value distribution of pre-trained em- beddings.

Untitled 19

  1. In Appendix G, we demonstrate that SimCSE provides more distinguishable cosine similarities between different sentence pairs.

Untitled 20

Sentence embeddings의 초기 연구들은 주어진 문장에 대해 둘러싸고 있는 문장들을 예측하는 distributional hypothesis에 기저하여 진행되었다. Pagliardini et al(2018)에서는 n-gram embeddings으로 word2vec을 단순하게 augment 시키는 것은 좋은 결과로 이어 진다고 보여주었다. 여러가지 최근 연구들은 다른 관점에서 contrastive objectives를 적용한다. (data augmentation, different copies of models, etc) SimCSE는 가장 간단한 아이디어를 사용해서(dropout mask를 통해 같은 문장으로 부터 augmentation하는 방법) STS에서 가장 좋은 성능을 보였다.

9. Conclusion

  1. SimCSE는 간단한 Contrastive Learning Framework으로써, STS에 대해 SOTA sentence embeddings으로 향상시켰다.
  2. Unsupervised, Supervised Approach
    1. Unsupervised SimCSE : Dropout 만으로 기존 연구들 성능을 뛰어넘음
    2. Supervised SimCSE : NLI dataset을 활용하여 더 좋은 supervised signal을 제공함.
  3. 성능 향상 원인을 Alignment, Uniformity 관점에서 분석함
  4. Downstream task에서도 좋은 성능을 기록함

reference

  1. http://dsba.korea.ac.kr/seminar/?mod=document&uid=1875
  2. How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings
  3. SimCSE