언어 전공자의 NLP 로그
BLEURT: Learning Robust Metrics for Text Generation 본문
논문 출처 : https://arxiv.org/abs/2004.04696
BLEURT: Learning Robust Metrics for Text Generation
Text generation has made significant advances in the last few years. Yet, evaluation metrics have lagged behind, as the most popular choices (e.g., BLEU and ROUGE) may correlate poorly with human judgments. We propose BLEURT, a learned evaluation metric ba
arxiv.org
문제 의식
- 기존의 BLEU와 ROUGE는 사람이 내린 판단을 잘 반영하지 못한다.
- 사람의 평가가 시스템의 퀄리티를 판단하는 좋은 기준이지만, 평가자를 찾는 것은 시간과 돈이 많이 들어 모델 개발 파이프라인에 끼워넣기 어렵다. 따라서 자동화된 평가 지표가 필요하다.
- 평가지표로 많이 사용된 BLEU와 ROUGE는 N-gram 기반으로 겹치는 부분을 판단한다. 그러나 이는 어휘적 다양성에 취약하고, 참조문과 동일한 의미론적/구문적 변형문을 포착하지 못한다.
- 지난 2년간 (2019, 2020) 번역 지표를 찾는 공동 과제인 WMT Metrics Shared Task에서 지배적인 신경망 기반 접근 방식은 두 가지였다.
- 완전 학습 메트릭 -> BEER, RUSE, ESIM. 사람이 평가한 데이터를 학습할 경우 그 평가 분포에 아주 밀접하게 맞아떨어지는 메트릭. fluency, faithfulness, grammar, style 등 다른 특징에 맞게끔 수정이 가능. (expressivity)
- 하이브리드 메트릭 -> YiSi, BERTscore. 학습 데이터가 없을 때 더 나은 결과를 냄. 학습 데이터와 시험 데이터가 동일한 분포에 있다고 가정하지 않음. (robustness)
- domain drift와 quality drift : 2015년 기준 학습한 시스템으로 2019년 성능 좋은 모델을 가려내기 어렵다. 따라서 학습의 이점도 누리면서, 분포의 변화에 강건한, 즉 extrapolate하는 metric이 필요.
- 위 두 주류 방식의 장점 (expressivity + robustness)을 합쳐보자 : 다량의 데이터을 완전히 사전학습하고, 이후 사람의 평가에 파인튜닝하자.
해결 방안
- BLEURT는 문장 단위의, 참조문 기반이며, 참조 문장과 후보 문장간의 연관성을 설명하는 메트릭. 이때 유사도라 함은 실제 스트링이 겹치는 것부터 논리적 함의까지 포함한다.
- 새로운 사전 학습 스킴 : 위키피디아 문장을 여러 어휘적/의미적 단위의 supervision signal 조합으로 증강함.
- 참조 문장 $x$와 생성 문장 $x~$, 사람이 매긴 점수 $y$ 사이에서 $f:(x,x~)→y$를 학습.
- 사람이 점수를 매긴 데이터를 찾기 어렵기 때문에 비지도 학습법을 활용, BERT를 베이스모델로 채택. BERT는 학습 과정에서 텍스트 시퀀스의 맥락 표상을 학습하기 때문에 [CLS] 토큰을 활용, $y~=f(x,x~)=Wv~[CLS]+b$로 점수를 예측하는 선형 레이어를 [CLS] 벡터 위에 추가해준다. 몇 천 개의 예시로 파인튜닝하듯 모델과 선형 레이어의 파라미터를 모두 학습시킨다. 회귀 손실 함수는 MSE.
- 이 접근법의 핵심은 BERT를 파인 튜닝하기 전에 warm-up으로 사전학습 (이는 BERT의 초기 사전학습과 다른 의미)을 해준다는 것이다. 이때 임의의 참조문-후보문 쌍 $(z,z~)$으로 BERT에게 어휘적/의미적 supervision signal을 학습시킨다. 이후 일반화 능력이 상당히 향상된다.
- 사전학습의 문장은 그 분포가 최종 NLG 평가 태스크와 유사해야 하고, 사람이 매긴 점수와 연관성을 찾을 수 있어야 한다. 물론 미래에 평가할 NLG 모델을 알면 좋겠지만, 그렇지 못하기 때문에 다음 3가지 제약을 줌으로써 일반화 능력을 최적화했다.
- 참조 문장은 다양한 NLG 도메인과 태스크를 다룰 수 있도록 다양하고 많아야 한다.
- 문장쌍에는 다양한 어위적, 구문적, 의미적 차이점이 포함되어야 한다. (paraphrase, 노이즈, 대체 표현, 삭제 등)
- 사전학습 목표는 위 현상들을 효율적으로 포착할 수 있어야 한다.
- 자동화된 데이터 생성 방식 : 위키피디아에서 1.8M의 z로부터 문장 세그먼트를 임의로 변경하여 인공 문장쌍을 생성함. 이때 BERT의 mask-filling과 역번역, 임의 드롭아웃 기법을 적용하여 총 6.5M의 변경된 $z~$를 생성.
- 사전학습 시그널 : 사전학습 태스크 k의 타겟 벡터 $Tk$로 각 문장쌍 $(z,z~)$를 증강한다. 여기서 등장하는 시그널 $Tk$는 다음과 같다.
- $TBLEU,TROUGE,TBERTScore$ : 자동으로 만들어지는 메트릭
- 역번역 확률 : $Ten−fr,z|z~,Ten−fr,z~|z,Ten−de,z|z~,Ten−de,z~|z$
- 문장 함축 : $Tentail$. 함축, 반대, 중립 3개의 라벨로 확률 계산
- 역번역 플래그 : $Tbacktran−flag$ ->: 변형된 문장이 역번역으로 만들어졌는지, mask-filling으로 만들어졌는지를 알려주는 Boolean 값.
- 이때 태스크 유형에 따라 회귀와 분류 과제에 대한 목적 함수를 각각 적용하고, 가중합으로 태스크 단위 손실값을 계산한다.
- 이 시그널이라는 것은 각 태스크에 맞는 타겟 벡터, 즉 다중 분류의 경우 확률을, ROUGE의 경우 precion/recall/F-score를, 회귀 문제의 경우 $l2$ 손실값을, 분류 문제의 경우 클래스 예측을 위한 별도의 선형 레이어를 사용, 다중 분류 크로스 엔트로피를 사용. 이렇게 종합한 사전 학습 로스를 모두 모은다.
- $lpre−training=1M∑m=1M∑k=1Kγklk(Tkm,T^km)$
평가
- WMT Metrics Shared task (2017~2019 X영 언어쌍)에서 모두 SOTA 기록.
- 모델은 BERT-large와 BERT-base 기준 사전학습+파인튜닝한 모델 2개와 사전학습을 건너뛴 모델 2개를 기준으로 삼는다.
- WMT shared task를 해결함에 있어 그 전년도의 시험 셋을 학습과 검증용으로 사용한다. (Drift 문제를 해소하기 위함인듯?)
- 모델 크기가 클수록, 사전학습을 해줬을 때 각각 성능 향상이 발생한다.
- Quality drift에 강건한가?
- 사전학습에서 extrapolate를 강요하는 태스크를 구축함으로써 quality drift에 강건해졌다고 평가함.
- 가장 신뢰도가 높은 2017년도 WMT Metrics Shared Task를 기반으로 이를 실험해봄.
- 점수가 낮은 번역문을 학습에, 높은 번역문을 시험에 사용하여 난이도가 상승하는 구조의 데이터셋을 생성.
- 주요 파라미터는 skew factor인 $α$로, 학습 데이터의 좌편향도와 시험 데이터의 우편향도를 측정한다.
- Figure 1 : $α$가 클수록 그래프의 첨도가 높아진다. 가장 높은 3의 경우, 전체 학습 데이터 중 11.9%만 사용하게 된다.
- Figure 2 : 사전학습 여부와 무관하게 test skew가 작을수록 사람이 평가한 점수와의 Kendall Tau가 높게 나온다. 이는 2019 WMT Metrics report에서 이미 언급된 현상으로, 좋은 점수와 나쁜 점수 데이터의 분포가 겹칠수록 (첨도가 낮을수록) 좋고 나쁨을 판단하기가 어렵기 때문. 그런데 이 차이는 사전학습이 안된 모델에서 극명히 드러난다. 사전학습 모델의 경우 $α$가 3인 경우를 제외하곤 항상 베이스라인 모델보다 성능이 좋게 나왔다.
- WebNLG 실험
- WebNLG Challenge 2017의 data-to-text 데이터셋으로 3개 태스크 성능을 측정, 제한된 학습 데이터로 새로운 과제에 얼마나 잘 적응하는지를 평가한다.
- 이 벤치마크는 엔티티에 대한 설명을 1~5개의 RDF로 생성, 총 9개 시스템에 대한 223개 인풋을 사람이 평가한 자료로, 각각의 인풋은 1~3개의 참조 설명이 함께 제공된다. 평가 요소는 의미, 문법, 유창성이고, 각기 별개의 모델링 태스크로 취급한다.
- 훈련 및 시험 데이터의 구분이 없기 때문에 학습을 0%에서 50% 구간을 네 부분으로 나누어 진행한다.
- Figure 3 : 여기서 실험한 BLEURT -pre -wmt 모델은 BERTScore와 비교했을 때 위 데이터셋을 최소 1/3을 학습해야 그 성능을 넘어설 수 있었고, 의미 카테고리에서는 여전히 뒤떨어지는 모습을 보였다. 반면 BLEURT -wmt, BLEURT로 갈수록 파인튜닝 없이도 BERTScore에 근접한 성능을 보였다.
- 사전학습 덕분에 BLEURT는 새로운 태스크에 빠르게 적응한다.
- Ablation 실험
- WMT 2017을 대상으로 ablation 실험을 진행한다.
- Figure 4 : 좌측은 단일 태스크 기준 사전학습 전후 BLEURT 모델을 비교하고, 우측은 n-1 태스크 기준 사전학습 전후 BLEURT 모델을 비교한다.
- BERTScore, entailment, backtranslation은 성능 향상을 보인 반면, BLEU와 ROUGE는 오히려 성능이 감소했다.
- 결론 : BLEURT는 IID 실험 환경에서 SOTA를 기록하고, 부족하거나 OOD인 학습 데이터에도 강건함을 보인다.
- 잘한 점 : 사람의 평가가 들어간 예시는 수천 개만 이용하고, 수백만 개의 합성 데이터로 일반화 능력을 강화한 점.
한계점
- 영어에만 적용할 수 있는 메트릭이다. (multilingual에 적용할 수 있는 모델이 필요함) -> 2021년 10월 8일 BLEURT-20으로 더 정확하고 다국어를 지원하는 모델이 나왔다고 한다. (베이스라인인 RemBERT가 C4를 기반으로 학습했기 때문이라고 함.)
- BLEURT-20 : 32겹 사전학습 트랜스포머 모델인 RemBERT를 베이스로, 2015~2019 WMT의 43만 문장쌍과 WMT 코퍼스에서 비롯된 16만 합성 문장쌍에 파인튜닝함.
- Currently, [`BLEURT-20`](https://storage.googleapis.com/bleurt-oss-21/BLEURT-20.zip) was tested on 13 languages: Chinese, Czech, English, French, German, Japanese, Korean, Polish, Portugese, Russian, Spanish, Tamil, Vietnamese (these are languages for which we have held-out ratings data).
- 해당 내용은 [Learning Compact Metrics for MT]에 게재되어 있다.
- skew test에서, 단순히 같은 데이터셋에서 분포만 조절하는 것만으로는 정말 추후에 어떤 모델이 나올지, 예컨대 다른 모델이 사용됐을 때도 그 구조나 의미가 동일한 식으로 구성될지를 장담할 수 없다. 해당 논문에서 사전학습에 사용한 모든 시그널은 모두 BERT류이고, 동일한 bias를 가지고 있을 것이다. (systematic limitations)
궁금증
- IID setting? IID assumption?
Independent and Identically Distributed. 독립 동일 분포.
- 사전학습 된 BERT 모델을 베이스로 사전학습을 또 하고 파인튜닝을 했다고 하는데, 그럼 그냥 파인튜닝을 두 번 한 거 아닌가?
GPT 답변에 따르면, 일종의 다단계 절차로 보아야 한다. 파인튜닝은 말 그대로 최종 태스크 - 번역, 요약 등을 평가하기 위해 해당 데이터셋으로 최종 조율을 해주는 느낌이라면, 사전학습은 전반적인 평가 태스크 관련 일반화된 능력 (paraphrase나 유사도 점수 예측 태스크)을 향상시키고 최적화하는 과정이라고 볼 수 있음. 목적이 다르기 때문에 둘다 파인튜닝이라고 하는 것은 적절하지 않다. (GPT specifies initial pre-training, task-specific pre-training, and fine-tuning for the end task)
- WMT Metrics Shared Task?
- BLEU and ROUGE?
BLEU : 번역 모델의 생성물 평가 지표. 참조문과 비교했을 때 생성문이 얼마나 잘 된 번역인가를 평가함. N-gram 기반으로 생성문과 참조문의 일치도를 판단함.
- 특정 토큰을 반복해서 내뱉으면 점수가 만점이 나온다? -> clip function을 적용함.
- 어순이 뒤죽박죽으로 나와도 점수가 좋게 나온다? -> uni-gram뿐 아니라 여러 n-gram을 측정하고 이를 평균낸다.
- 빠르고 간단하여 널리 사용된다.
- 그러나 의미를 고려하지 않고, 문장 구조를 포괄하지 못하며, 비영어권 언어에 취약하고, 다양한 토크나이저의 결과를 비교하기가 어렵다.
ROUGE : 요약 모델의 생성물 평가 지표. 참조문과 비교했을 때 생성문이 얼마나 잘 요약했는지를 평가함. N-gram 기반으로 생성문과 참조문의 일치도를 판단함.
- recall과 precision을 함께 계산함. 즉, F1 스코어를 낼 수 있음.
- 마찬가지로 uni-gram을 확장한 여러 n gram을 적용할 수 있음.
- ROUGE-L : 전체 시퀀스에서 가장 길게 일치하는 subsequence를 찾아 점수를 냄. 문장 구조를 조금 더 잘 잡아낸다.'논문 읽기' 카테고리의 다른 글
| GPTScore: Evaluate as You Desire (0) | 2024.03.01 |
|---|---|
| COMET: A Neural Framework for MT Evaluation (4) | 2024.02.29 |
| BARTScore: Evaluating Generated Text as Text Generation (2) | 2024.02.29 |
| Multiloop Incremental Bootstrapping for Low-Resource Machine Translation (2) | 2024.02.29 |
| Language models can explain neurons in language models (0) | 2024.02.23 |