[NLP] SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP, 2021)

누렁이·2023년 3월 15일
0

NLP

목록 보기
3/13

한줄 요약: 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

  • 효과적인 sentence embedding!

# 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이 이렇게 효과적인가???

  • 0.1이 제일 효과적이었음.

# 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 등등
profile
왈왈

0개의 댓글