교수님이 추천해주신 논문 중 첫번째인 SimCSE: Simple Contrastive Learning of Sentence Embeddings 를 살펴보려고 한다.
논문은 역시나 SimCSE 에 대해 다루고 있는데, 논문의 첫 줄에서 소개한 SimCSE는 다음과 같다.
결국은 문장 임베딩에서 더 적절한 임베딩 방법을 찾는 것이 SimCSE 라는 것.
지도학습과 비지도학습 모두에 적용했고, 두 학습 다 성능의 향상을 가져왔다고 한다.
성능적 부분은 다음과 같다.
"Two dogs are running" 의 학습 과정에서, 이 문장을 두 번 넣고 / 다른 문장도 두 번 넣고 / Two dogs are running 임베딩 2개는 positive pairs 로. / "A man~", 'A kid~" 임베딩들은 negatives 로.
기존 연구들에서 표현공간 상에서의 anistropy 문제 => CSE 의 경우
목표: Learn effective representation by pulling semantically close neighbors together and pushing apart non-neighbors.
방법은 사전훈련된 모델에 인풋 문장을 넣고 encode 하는 것. 이후 contrastive learning ojbective 를 통해 fine-tuning!
✅ Positive instances
그렇다면 하나의 문제는 를 어떻게 추출(또는 구성)할 것인가 하는 문제가 있다. 그 방법으로 여러 가지를 제시하는데
✅ Alignment and uniformity
두가지는 행렬 표현의 퀄리티를 평가해주는 중요한 요소로 사용되었다.
Alignment: calculated expected distance between embeddings of the paired instances. >> ${(x_i, x_i^+)} 사이의 기대 거리를 말한다.
거리가 클수록 alignment 가 늘어나고, 거리가 가까울수록 alignment 가 줄어들 것이다. (거리가 가까울수록 좋다.)
Uniformity: expected how well the embeddings are uniformly distributed. >> x, y 사이 거리가 얼마나 일정하게 떨어져있는지를 말한다.
e함수를 사용했으므로 생각해보면 그 문장과 다른 문장 사이 거리가 멀수록 uniform 값은 작을 것이고, 거리가 가까울수록 uniform 값은 클 것이다. (거리가 멀수록 좋다.)
트랜스포머 문서 >> dropout mask 를 이해할 때 쓰자.
Unsupervised 에서 SimCSE 를 만드는 방법은 use of independently sampled dropout masks for and . (Transformer 내부에서 사용하는 것이며 추가 dropout을 말하는 것이 아님)
Dropout noise as data augmentation
따라서 이러한 Dropout 을 적용하는 것을 결국 augmentation 을 적용한다고 여겼고, 관련해 다른 기술은 적용하지 않았다.
또한 objective 를 무엇으로 두느냐에 따라 다른 성능을 비교한 테이블도 있었다.
Why does it work?
어느정도의 dropout noise 가 가장 좋냐를 따졌을 때, Transformers default dropout probability 인 p = 0.1 이 가장 좋았다.
표 하나를 더 보면
<Skip 가능>
"I walk the dog": 한 단어를 삭제하면 pair 가 서로 각각 다른 임베딩을 갖고 있겠지만 단어가 삭제된 부분에 대해선 한 임베딩은 그 단어를 나타내고 있고, 다른 하나의 임베딩은 아예 나타내지 않기 때문에 accuracy 가 높지 않을까? 가깝게 표현될 것이다.
"I walk the cat": 문제는 한 단어를 삭제해서 "I walk the dog", "I walk the cat" 에서 "I walk the", "I walk the" 라는 문장을 학습하게 된다면 의미가 완전히 다른 문장임에도 같은 임베딩을 도출할 것이다. extreme 한 예시를 들었지만 이 부분 때문에 다른 문장이 멀리 떨어지지 않은 곳에 위치했을 것.
페어를 어떻게 정할 것이냐하는 문제가 Supervised 에선 매우 중요한데, 과거에 NLI로 특정 문장이 주어지면 entailment, neutral, contradiction 으로 '예측'하는데 쓰인 데이터들을 '데이터셋'으로 활용했다는 점이 특이하다.
Choices of labeled data
아래의 표에 등장한 데이터셋 모두 시도했고, SNLI + MNLI 인 NLI datasets 이 가장 좋았다고 한다.
Contradiction as hard negatives
이제 논문이 사용한 최종 모델을 확인할 수 있다.
NLI datasets 에서 가장 큰 장점은 기존 페어를 로 확장시킬 수 있다는 것이고, 각각 x는 premise, x+는 entailment, x-는 contradiction 으로 간주하면 된다. 따라서 아래와 같은 loss 식을 정의할 수 있다.
하나의 premise 에 해당 entailment는 x+로 간주하고, 나머지 모든 조합은 모두 negatives 로 간주하면 된다. 따라서 단순히 premise + entailment 만 사용했을 때보다 + contradiction(hard negatives) 를 추가했을 때 가장 성능이 좋았으며(84.9 => 86.2), 이를 final supervised SimCSE 로 사용했다 한다.
anisotropy 와 관련된 설명은 다음 블로그를 참조하자. Anisotropy 간략히 설명
단어 벡터가 비슷한 방향으로 향하는 문제인 anisotopy 문제를 contrastive learning 으로 해결할 수 있다고 논문은 설명하고 있다.
직관적으로 생각해봐도 anisotropy 문제는 uniformity 와 연관되어 있다. 왜? 다른 문장의 다른 벡터는 멀리 떨어져있어야 하는데 그렇지 못한 것이 anisotropy 이기 때문이다. 즉, uniformity 가 좋을수록 anisotropy 문제는 없을 것이다. 따라서 Contrastive learning 을 성능을 향상시키는 것 자체가 anistropy 문제의 해결과 강하게 연결되어 있다.
SO, "contrastive learning objective can "flatten" the sigular value distribution of sentence embeddings and make the representations more isotropic!"
우리가 정의했던 alignment 와 uniformity 를 기대값으로 한 번에 표현하면 위와 같이 표현할 수 있다. 앞부분은 positive instance similar, 뒷부분은 pushes negative pairs apart 를 의미한다.
라 하면 다음과 같은 식으로 바꿀 수 있다.
여기서 추가로, W를 1부터 m까지의 문장에 대한 임베딩이라 하면
이 식을 로 간단히 표현할 수 있게 된다. 따라서 이를 Optimizing 한다는 것은 minimize an upper bound of the summation of all elements in 를 뜻한다.
다시, 만약 의 모든 요소가 positive라면, 는 의 largest eigenvalue 의 상한선일 것이다. 따라서 우리가 의 상한선을 줄이고 inherently "flatten" the singular spectrum of the embedding space 하는 게 가능해진다.
실험은 7 semantic textaul similarity tasks에 대해 진행되었다.
결과적으로 SimCSE는 7 STS tasks 에 관해 기존의 어떤 모델의 성능을 모두 뛰어넘었다. (별로 표시된 성능이 결론!)
다른 pooling methods 와 hard negatives 의 영향도 측정했다.
Uniformity and alignment
inner workings 를 알아보자.
1. pre-trained 의 alignment 가 좋더라도, uniformity 는 별로였다. (anisotropic 문제)
2. post-processing 방법은 uniformity 를 향상시킬 수 있었으나 alignment 는 별로였다. (BERT-flow, BERT-whiltening)
3. unsup SimCSSE 는 좋은 alignment 를 유지하면서도 uniformity 에서 좋았다.
4. sup data 를 사용한 SimCSE 는 alignment 를 더 향상.
Contrastive objective 기반의 모델은