효과적인 Sentence embedding을 얻기 위한 SimCSE 논문 내용을 정리하고자 한다.
1. Introduction
BERT와 같은 transformer 계열 인코더들은 context를 반영한 문장 임베딩을 잘 뽑는다. SimCSE는 contrastive learning + dropout을 사용하여 인코더를 추가학습해 성능을 향상시켰다. 논문에서는 unsupervised, supervised 내용을 담고 있지만 unsupervised 내용이 더 핵심적이다.
2. Background
1) Contrastive Learning
Contrastive Learning은 self-supervised learning의 방법 중 하나로 unlabled data를 활용하되 이를 positive, negative example로 구성하여 positive example은 가깝게, negative example은 멀게 되도록 학습한다. 때문에 positive pair, negative pair를 어떻게 구성하느냐가 성능에 많은 영향을 미치게 된다. Loss function은 다음과 같다.
$$l_{i} = - \text{log}\frac{e^{\text{sim}(h_{i}, h^{+}_{i})/\gamma}}{\sum_{j=1}^{N}e^{\text{sim}(h_{i}, h^{+}_{j})/\gamma}}$$
- $h_{i}, h^{+}_{i}$: $x_{i}, x^{+}_{i}$의 embedding(representation)
- $N$: mini-batch 크기
- $\gamma$: hyper-parameter
- $\text{sim}$: cosine-similarity
*참고 Triplet loss도 Contrastive self-supervised learning의 대표적인 방법이다.
2) Alignment and uniformity
기존 연구에서 contrastive learning의 효과를 평가하기 위해 alignment와 uniformity를 제안했었는데, 본 연구에서는 이를 활용하여 representaion의 품질을 평가하였으며 두 값 모두 작아질수록 좋은 품질이라고 평가할 수 있다.
- Alignment calculates expected distance between embeddings of the paried instances
$$l_{align} \implies \underset{(x,x^{+}\sim p_{pos}) }{\mathbb{E}} \left\| f(x) - f(x^{+}) \right\|^{2}$$
- Uniformity measures how well the embeddings are uniformly distributed
$$l_{uniform} \implies \underset{(x,y \overset{i.i.d}{\sim} p_{data}) }{\mathbb{E}} e^{-2 \left\| f(x) - f(y) \right\|^{2}}$$
3. Unsupervised SimCSE
SimCSE 학습 방법은 매우 간단하다. 학습에 사용할 positive pair를 어떤 입력 $x_{i}$ 에 대한 represention과 동일 입력에 dropout mask를 사용하여 만든 representation으로 구성한다(그림 참고). 즉 같은 입력을 가지고 인코더을 두번 통과시킨다. random mask를 $z$라고 할 때 SimCSE의 training objective는 다음과 같다.
$$l_{i} = - \text{log}\frac{e^{\text{sim}(h^{z_{i}}_{i}, h^{\acute{z_{i}}}_{i})/\gamma}}{\sum_{j=1}^{N}e^{\text{sim}(h^{z_{i}}_{i}, h^{\acute{z_{i}}}_{j})/\gamma}}$$
- $h^{z_{i}}_{i} = f_{\theta}(x_{i}, z)$: random mask를 적용한 $x_{i}$의 representation
Dropout 확률 $p$는 아래 표에서 처럼 0.1이 제일 높은 성능을 보였다.
Dropout을 적용하여 representaion을 얻는 방법은 일종의 data augmentation으로 볼 수 있다. 비슷한 방법으로 word deletion, MLM 등이 있는데 아래 표 처럼 dropout을 적용한 방법이 제일 효과가 좋았다고 한다.
4. Experiment
논문에서는 여러 BERT 모델에 대해서 SimCSE 방법을 적용하였으며 아래 표와 같이 대부분의 모델에서 큰 성능 향상이 있음을 확인할 수 있다.
또한 Alignment, Uniformity 모두 아래 그래프에서 처럼 SimCSE 방법이 모두 값이 작아지는 것을 확인할 수 있다.