새소식

ML | AI/논문 리뷰 - 2022.03.18

[논문 리뷰] Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

  • -

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

 

 

1. 등장 배경


STS Task에서 높은 성능을 얻은 BERT는 문장 사이 유사도를 비교하기 위해서 문장들을 [SEP] 토큰으로 분리해 한번에 입력으로 받아 처리

 

이 방식의 경우 두 입력 문장 사이 유사도를 높은 정확도로 얻을 수 있지만 한 문장가장 유사한 문장을 찾는 것은 매우 비효율적(massive computational overhead)

  • 모든 경우의 수를 모두 차례로 대입해봐야지만 알 수 있음

한 문장과 유사한 다른 문장들을 찾는 것은 semantic-search, clustering 와 같은 분야에서 다양하게 활용되기 때문에 매우 중요. 이를 효율적으로 해결하기 위해선 정확한 sentence-embeddings를 얻는 것이 관건

 

sentence-embedding를 얻기 위해서 기존 BERT에서 하나의 문장만을 입력해서 얻을 수 있지만 활용하기에 적절한 embedding이 아님(bad sentence embedding)

 

 

2. 제안


good sentence embedding을 얻기 위해서 weights를 공유하는 Siamese/Triplet 구조를 활용한 

SBERT 제안

 

  • pre-trained BERT 활용
  • 문장 각각 BERT를 통과시킨 후 pooling(MEAN, MAX, [CLS])을 통해서 sentence embedding을 추출
  • 추출된 embedidng들을 데이터(Task) 유형에 따라 concat(NLI : classification)하거나 cosine-similarity(STS : regression)를 구하기 위해 활용

 

SBERT에서 얻은 sentence embedding의 적절성(성능)을 확인하기 위해서 다양한 bench mark 진행

이때 STS에서의 성능 보다는 good embedding인지 보여주는 것을 중점으로 진행 

 

  • sentence-embedding 사이 cosine similarityLabel 간 상관 계수(Spearman) 측정
  • STS benchmark
  • Argument Facet Similarity(AFS) 스코어
  • SentEval 스코어
  • Wikipedia Sections Distinction 스코어

 

3. 모델 구조


Classification Objective

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

\[Classification objective = softmax(W_t(u, v, |u − v|))\]

$$W_t ∈ R^{3n×k}, n = dim,  k = label$$

 

good embedding을 얻을 수 있다고 알려진 NLI 데이터셋을 입력받아 SBERT fine-tuning

 

각 문장의 embedidng을 pooling(MEAN, MAX, [CLS])을 통해서 얻음

  • MEAN pooling일 때 가장 좋은 결과

embedding을 다양한 조합으로 concat후 Classification 진행

  • $u, v, |u-v|$의 조합일 때가 가장 좋은 결과

NLI 데이터셋에 맞게 3 - way Softmax classifier 사용

Regression Objective

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks 이미지 활용

STS 데이터셋으로 fine-tuning하거나 inference할 때 사용

 

fine-tuning 때 cosine-similarityLabel(0~1 scaling 필요) 사이의 MSE를 loss function으로 활용

 

각 문장의 embedidng을 pooling(MEAN, MAX, [CLS])을 통해서 얻음

  • MEAN pooling일 때 가장 좋은 결과

 

Triplet Objective 

 

https://towardsdatascience.com/a-complete-guide-to-transfer-learning-from-english-to-other-languages-using-sentence-embeddings-8c427f8804a9
FaceNet: A Unified Embedding for Face Recognition and Clustering

embedding을 얻기 위해서 Wikipedia section triplets dataset (Dor et al., 2018) 활용

  • 동일 section이면 Positive, 다른 section이면 Negative로 가정 후 생성된 데이터셋
  • $\epsilon$(margin) = 1로 설정

 

4. 성능 평가


(1) sentence-embedding 사이 cosine similarity와 Label 간 상관 계수(Spearman) 측정

 

sentence embedding 추출에 적합하다고 알려진 NLI 데이터셋으로 fine-tuning

  • 모델이 잘 학습됐다면 아직 보지 못한 다른 문장에 대해서도 good embedding을 얻을 수 있음

 

good embedding인지를 검증하기 위해서 STS 데이터셋를 활용

  • STS 데이터셋의 입력 문장 사이 embedding cosine similarity와 Label간 상관 계수 측정
  • good embedidng이라면 similarityLabel 사이 높은 상관 관계를 가질 것

 

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

 

 

기존 BERT의 경우 매우 낮은 상관 계수 기록했기 때문에 bad embedding을 생성함을 확인

 

SICK-R의 경우 여러 주제를 다루고 있기 때문에 다양한 데이터셋으로 학습한 Universal Sentence Encoder보다 낮은 점수 기록

 

평균적으로 SBERT(SRoBERTa)가 가장 높은 점수 기록했기 때문에 좋은 sentence embedding을 얻을 수 있음을 확인

(2) STS benchmark

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

NLI fine-tuning(good embedding) 후 STS fine-tuning 시 가장 높은 성능 기록

 

두 입력 문장을 한번에 받아 self-attention하는 BERT보단 성능이 낮지만 sentence-embedding 추출만으로도 좋은 성능 달성

 

 

(3) Argument Facet Similarity(AFS) 스코어

 

AFS ? 

 

총기 규제, 동성 결혼, 사형 제도에 대한 찬반 대화를 담은 데이터셋

Topic 마다 다른 어휘가 나오고 주장 및 근거를 모두 고려해야지만 유사도를 판별할 수 있기 때문에   

단순 서술 위주의 문장을 가진 STS 데이터셋보다 난이도가 높은 데이터셋  

 

AFS에서의 성능은 10 - fold cross validationCross-Topic으로 확인

  • Cross-Topic : 2가지 Topic으로 훈련 후 나머지 Topic으로 테스트
  • AFS 데이터의 특성상 새로운 Topic에서 성능을 확인하는 Cross-Topic 방법이 더 난이도가 높음

데이터 예시

Predicted similarities (sorted by similarity):
Sentence A: Eating meat is not cruel or unethical; it is a natural part of the cycle of life.
Sentence B: It is cruel and unethical to kill animals for food when vegetarian options are available
Similarity: 0.99436545

Sentence A: Zoos are detrimental to animals' physical health.
Sentence B: Zoo confinement is psychologically damaging to animals.
Similarity: 0.99386144

[...]

Sentence A: It is cruel and unethical to kill animals for food when vegetarian options are available
Sentence B: Rising levels of human-produced gases released into the atmosphere create a greenhouse effect that traps heat and causes global warming.
Similarity: 0.0057242378

https://github.com/UKPLab/acl2019-BERT-argument-classification-and-clustering/blob/master/argument-similarity/README.md

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

 

10 - fold에선 SBERT와 BERT 사이 성능이 크지 않지만 Cross-Topic에선 성능 차가 커짐

AFS에선 Topic 마다 sentence 특성이 매우 다르기 때문에 발생

good embedding을 얻기 위해선 sentence 특성이 비슷해야 함을 시사

 

 

(4) SentEval 스코어

 

SentEval?

 

sentence-embeddings의 적절성을 확인하는 benchmark

embeddings을 이용해 여러 분야의 Classification 문제를 잘 푸는지를 accuracy로 평가

 

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

 

SBERT가 대부분 가장 높은 성능 달성

 

BERT는 cosine-similarity와 Label 사이의 상관 관계는 매우 낮게 나왔지만 SentEval에선 높은 성능

이를 통해 다음과 같은 추론 가능

  • BERT가 추출한 embedding은 dimension 영향고려하지 않는 cosine-similarity로는 특성 확인 불가
  • Classifer의 경우 특정 dimension이 높고 낮은 영향 가지기 때문에 높은 Accuracy 달성 가능
  • BERT의 embedding을 sentence-embedding으로 그대로 사용하기엔 무리
    • 기존 BERT의 hidden dimensions은 embedding이라기 보다는 MSE를 최소할 수 있도록 설정 됐다고 할 수 있음
(5) Wikipedia Sections Distinction 스코어

 

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

 

Triplet Objectivesentence-embedding을 얻을 수 있음을 확인

기존 Triplet Objective를 사용한 Bi-LSTM(Dor et al.)보다 높은 Accuracy 기록

 

(6) Computational Speed

Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks

InferSent와 Universal Sentence Encoder보다 좋은 성능을 가졌지만

더 빠른 연산 속도를 가짐


참고

https://arxiv.org/pdf/1908.10084.pdf

https://towardsdatascience.com/a-complete-guide-to-transfer-learning-from-english-to-other-languages-using-sentence-embeddings-8c427f8804a9

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.