한줄 요약: setence embedding하기 위해서 contrastive objective 적용
Paper: https://aclanthology.org/2021.emnlp-main.552/
Code: https://github.com/princeton-nlp/SimCSE
Reference: https://velog.io/@zvezda/SimCSE-Simple-Contrastive-Learning-of-Sentence-Embeddings-EMNLP-2021
Introduction
# Background
- Sentence Embedding
- Contrastive objective
# Challenge
# SimCSE (a simple contrastive sentence embedding framework)
- Unsepervised SimCSE:
- positive: dropout을 noise로 사용해서 같은 sentence를 넣어서 두개의 서로 다른 두개 임베딩을 뽑아서 너네 둘은 같아~
- negative: 미니배치안에서 negative를 뽑는다.
- Supervised SimCSE:
- NLI (natural language inference) 데이터셋 이용해서 실험.
- positive: entailment pairs
- negative: contradiction pairs
# Experiments & Results
- Ex: seven standard semantic textual similarity (STS) tasks
- Analysis: analysis tool from Wang and Isola (2020)??
# Contribution
- dropout을 사용해서 data augmentation 적용해버림!!!
Background
# Contrastive learning
원래 이미지 쪽에서 나왔었는데, 거기는 crop하고 등등 사용을 할 수 있어서 NLP에 적용하기엔 어려움이 있었음. 그래서 SBERT에서도 supervised를 사용했었음.
Method
모델이 두가지임. 둘이 합치려다가 성능이 안나와서 실패한 것 같다고 함!
# Unsupervised SimCSE
왜 dropout이 이렇게 효과적인가???
# Supervised SimCSE
- 문장의 Overlap이 적어야하는데~
- anstropy : 고깔로 되어있을 때 구분하기는 쉬운데, 학습이 커지면서 다 똑같다고 해버리는 한계가 발생 (ex. cat이랑 dog이 다 같은 분포, 다 같은말이야~ 해버림) . 그래서 모여있는걸 다 잘 펴보자! => isotropy
Result
- MLM을 포함하니까, catastropy forgetting 방지
- hard negative: 명백한 negative pair 구축이 가능하다. 그래서 triple로 확장?
Code
- multiplenegativeranking loss
# 질문
- anisotropy? 원뿔을 구로 만들자
- dropout nosie:
(우리도 이용해볼 수 있을까? data augmentation으로도 괜찮을거같을라나? howto?)
오오오 bert 사용할때도 이렇게 하면 좋겠다.
미리 pretrain을 하고 finetuning해야하는 건가?
주호님 멀티모달 발표 (모달마다 성능에 미치는 영향 다름, 최적의 Layer를 가져온다?) + contrastive + knowledge distillation
cross lingual을 할때 사용되는 방식들 - domain, knowledge distil 등등