논문리뷰

Pitfalls in the Evaluation of Sentence Embeddings

본 포스트는 2019년 ACL의 'Pitfalls in the Evaluation of Sentence Embeddings'의 내용을 요약, 정리하였습니다.
 

Pitfalls in the Evaluation of Sentence Embeddings

Deep learning models continuously break new records across different NLP tasks. At the same time, their success exposes weaknesses of model evaluation. Here, we compile several key pitfalls of evaluation of sentence embeddings, a currently very popular NLP

arxiv.org

0. What is Sentence Embedding?

Sentence Embedding(문장 임베딩)은 문장을 특정 크기로 벡터화하는 것을 의미합니다.

현재 많은 모델은 언어 모델의 [CLS] 벡터, [SEP] 벡터와 같은 방법을 문장 임베딩으로 많이 사용합니다.

 

1. Introduction

NLP 분야는 현재도 격동의 시기입니다. 이런 성공의 이유는 많은 NLP task에 대해 계속해서 좋은 성능의 모델이 나오고 있고, 심지어 사람 평가 성능까지 뛰어넘기도 합니다. 하지만 이렇게 리포트되는 성능에 대해 걱정의 목소리가 존재합니다. 한 연구에서는 기본 LSTM 모델이 공평한 평가 조건에서 현재 모델 성능을 웃돌기도 한다는 것이 소개되었습니다.

 

문장 인코더는 딥 러닝의 핫 토픽 중 하나입니다. 다른 인코더 모델들의 임베딩 차원은 다양합니다.

 

본 논문에서는 문장 인코더를 평가하는 데에 있어서 발생할 수 있는 몇 가지 함정을 소개합니다.

1. 임베딩 크기

2. 분류 모델에 넣기 전 임베딩 벡터의 정규화

3. 의미적 유사도의 비지도적 평가

4. 임베딩 벡터가 들어가는 분류 모델의 선택

5. 하위 작업 분기에 대한 모델 성능의 평가

 

본 논문에서는 아래의 9개 문장 인코더와 6개의 하위 작업을 사용하여 실험을 진행합니다.

 

2. Problems

Size matters

문장을 임베딩 할 때 차원의 크기는 현재 표준적으로 정해진 내용은 없기 때문에(Conneau et al. (2017)), 다양한 문장 인코더들은 다양한 차원의 크기로 문장을 임베딩 합니다.

 

이에 대한 다양한 연구 중, 임베딩 차원의 크기가 커질수록 모델의 성능이 좋아진다는 연구 결과가 있습니다(Connearu et al. (2017)). 그 이유로 선형 모델(Linear model, logistic regression)에서 차원이 커질수록 선형 분리(Linear separable)하는 경향이 커지기 때문이라고 설명합니다.

 

또 다른 연구(Ruckle et al. (2018))에서는 저차원의 임베딩 벡터와 비교하는 것은 불공평하며 다른 임베딩 벡터와 결합하거나, 다른 pooling 연산 방식(min, max, average)을 사용한 벡터와 결합하여 임베딩 크기를 늘리면 성능이 향상된다고 주장합니다.

그리고 이를 확장하여 평균 벡터를 구하기 전, 무작위로 초기화된 임베딩 벡터를 활용해 임베딩 크기를 키우도록 하였습니다.

 

이 세 가지 연구는 모델의 성능은 임베딩 벡터의 크기가 증가함에 따라 오목 함수(Concave function) 형태로 증가한다는 것을 보여줍니다.

 

또한 이러한 경향은 단지 고차원의 word2vec을 활용해 단어를 임베딩 하여 벡터를 구하고 그들의 평균을 구함으로 문장 임베딩을 생성하는 방식에서, USE, Sent2Vec 문장 임베딩 방식과 동일한 임베딩 크기를 사용하였을 때와 비교하였을 때 동일 또는 극소수의 우위를 보여주고 있습니다. 그러므로, 저자는 추후 연구에서는 동일한 크기로 임베딩 하여 공평한 평가를 하는 것을 권장하고 있습니다. 

Cosine similarity and Pearson correlation may give misleading results

아래는 문장 또는 단어 간 의미적 유사도(semantic similarity)를 구할 때 수행되는 과정입니다.

각각을 임베딩 하여 벡터로 표현한 후,

1. 두 벡터 간 코사인 유사도(Cosine similarity)를 구하고,

2. 동일한 벡터에 대해 사람의 평가로 Pearson 또는 Spearman 연관성을 구합니다.

 

위 두 과정은 모두 문제점이 존재합니다.

1. 코사인 유사도(Cosine similarity)가 다른 유사도 함수보다 의미적 유사도를 측정하는데 더 잘 맞는지에 대한 문제점이고,

2. Pearson 연관성의 결점(선형 연관성만 측정하고, 이상치(Outlier)에 대해 민감)에 대한 문제점입니다.

 

코사인 유사도나 피어슨 상관계수와 같은 unsupervised evaluation(UCP)을 사용하는 것은 오해의 소지가 있습니다. 한 연구에서 이를 지적했는데(Lu et al. (2015)) 단어 임베딩을 표준화하면 UCP에 의해 측정된 의미적 유사도(WS353)는 20% 증가했습니다. 그 이유는 표준화가 간단한 작업이기 때문에 쉽게 기계 학습 모델에 의해 학습되고, 이는 UCP 점수의 임베딩 평가 지표를 신뢰할 수 없게 하는 결론을 발생시킵니다.

 

아래 표는 STSBenchmark dataset에 대해 9개의 문장 인코더와 UCP를 사용하여 실험을 진행한 내용입니다. 왼쪽은 정규화를 거치지 않은 임베딩에 대한 성능, 오른쪽은 z-norm을 정규화 함수를 거친 임베딩에 대한 성능입니다.

Pearson 상관계수를 사용한 STSBenchmark 데이터 셋 성능 평가 ($\delta$ : difference of pp(percent point)

정규화를 수행하기 이전과 이후에서 몇 가지 특징이 나타났는데,

첫 번째로 정규화 수치의 분포이다. 정규화 이전(29%)에 비해 정규화 이후(9%)에서 인코더에 따른 UCP 유사도 분포의 차가 적게 나타났고, 표준 분포도 정규화 이전(8.6%)에 비해 정규화 이후(2.4%)에서 적게 나타났습니다.

두 번째로 유사도가 낮게 나타나는 인코더에 대해 성능 향상의 폭이 컸다. 가장 유사도가 낮게 나타났던 Glove 문장 인코더에서 가장 성능 향상의 폭이 컸고, 비교적 더 복잡한 인코더 모델에서는 성능 향상의 폭이 적었습니다.

 

Pearson 유사도를 Spearman 유사도로 교체했을 때도 유사한 경향이 나타납니다. 이것을 통해 UCP를 사용한 공정한 비교를 위해서는 입력 임베딩 벡터에 대해 특정 정규화 방법이 필요하다는 것을 보여줍니다.

 

저자는 추후 연구에서는 UCP의 대안으로 learned similarity function과 mean-square error(MSE)를 사용해 문장 임베딩 성능을 측정하는 것을 권장하고 있습니다. 

Normalization

아래 그림은 UCP가 아닌 learned similarity function과 9개의 문장 인코더를 사용해 supervised transfer task에서의 성능을 비교한 것입니다. Learned similarity function에서 사용하는 평균과 표준 분포 값은 학습 데이터에서의 값을 테스트 데이터에 적용했습니다.

그림의 단위 : $\delta$ in pp(percentage point), Transfer tasks : 6개의 성능을 평균, STSBench : 차이를 factor 10을 사용해 scale-down

이 그림을 보면 UCP가 아닌 learned similarity function을 사용했음에도 거의 대부분의 인코더 모델이 정규화로 인해 성능의 향상이 발생한 것을 확인할 수 있습니다.

 

저자는 normalization을 각각 문장 임베딩 모델과 각각 task에서 튜닝되는 binary hyperparameter로 사용하는 것을 추천합니다.

Different classifiers for evaluation

아래에서 서술할 내용은 임베딩 벡터 그 자체로 평가하기 위해서는 최상단에 위치한 분류 모델이 가능한 간단해야 한다는 것입니다. 여기에서 저자는 단어와 문장 임베딩의 평가 방법 비대칭에 주목합니다. 단어 임베딩은 전통적으로 다른 강력한 아키텍처(biLSTM)에 넣어서 비교되어 왔습니다. 반면에 문장 임베딩은 가능한 간편한 아키텍처(Logistic regression)에 넣어서 비교되어 왔습니다. 이것이 더 비용이 저렴하고 임베딩 그 자체에 초점을 맞출 수 있지만, 실제로 연관도가 떨어지고 큰 크기의 임베딩 크기의 선호와 같은 부작용도 존재합니다.

 

주요 문제는 각 임베딩 모델의 순위가 다른 분류 모델에 대해 다르다는 것입니다. 그렇기 때문에, logistic regression에 대해서만 리포트를 하는 것이 아니라, 실제 사용 시나리오(use-case scenarios)에 대해 비교할만한 성능을 제시하는 것이 더 좋습니다.

 

저자는 적어도 logistic regression과 MLP에 대해 성능을 리포트하는 것을 제안합니다.

Correlation on transfer tasks and probing tasks

문장 인코더 평가 단계에서는 Transfer task와 더불어 Probing task에서의 성능 평가를 권장합니다.

Probing task는 문장 임베딩의 언어적 자질을 연구하기 위한 보편적인 방법론으로, 임베딩을 통해 문장이 가지는 간단한 언어적 자질을 분류하는 문제입니다. 실험이 명확하고 간단하므로 결과의 해석이 쉽습니다.
(WC : 문장에서 특정 단어 포함 여부 파악, SentLen : 문장 길이 파악)

 

Transfer task는 문장의 실제 의미 정보보다 피상적인 내용이 포함될 가능성이 높다고 주장합니다. 그 반면에 probing task는 문장이 가지는 간단한 언어적 자질을 분류하는 문제이기 때문에, probing task에서 성능이 높으면 transfer task에서 좋은 성능을 얻을 수 있다고 주장합니다.

Transfer task과 Probing task간 Spearman 상관관계

위 그림은 transfer task와 probing task의 spearman 상관 관계를 나타낸 그림입니다. 전체 평균은 0.64로 서로 상관관계가 있다는 것을 확인할 수 있는데, 가장 높은 probing task는 sentlen 0.83, 가장 낮은 task는 wc 0.04입니다. 왼쪽에서 MRPC task는 전체 probing task와 상관관계가 매우 낮은 것을 확인할 수 있는데 이런 task는 실제 문장의 의미적인 정보가 아니라 아주 피상적인 정보를 사용하기 때문에 문장 임베딩 벡터의 성능을 표현하는 지표로서 적절하지 않다고 보시면 됩니다.

따라서 저자는 미래 연구에서 문장 임베딩을 평가하기 위해서는 더 적합한 데이터셋과 문장 분류 작업이 필요하다고 주장합니다. 하지만 실제로 어떤 probing task가 문장의 의미를 잘 표현하는지 분명하지 않습니다. 연구에 따라서 probing task과 transfer task의 상관관계도 다른 결과를 보입니다. 저자는 이를 open issue라고 남겨놓고, 여전히 downstream task를 정의하는 것은 어려운 문제라고 서술합니다.

 

3. Conclusion

 

정리하면, 본 논문의 저자가 문장 임베딩을 평가하는 방법에서 제시하는 방법은 아래와 같습니다.

 

1. 같은 크기로 임베딩 벡터 크기를 설정하여 비교합니다.

2. 정규화를 추후의 하이퍼 파라미터로 취급합니다.

3. 평가 방법에서 다양한 분류 모델 설정, 최소한 logistic regression과 MLP에 대한 성능을 분석합니다.

4. 비지도적 평가방법이 불가피하다면, 정규화가 더 중요합니다.

5. 문장을 평가할 때 사용되는 Transfer task에 대해서는 더 많은 해결 과제가 존재합니다.

'논문리뷰' 카테고리의 다른 글

Dense Passage Retrieval for Open-Domain Question Answering  (0) 2021.12.05
GPT Understands, Too  (0) 2021.11.21
A Survey of Transformers - 中  (0) 2021.09.12
A Survey of Transformers - 上  (0) 2021.08.29