논문명: BLEURT: Learning Robust Metrics for Text Generation
논문 링크: https://arxiv.org/abs/2004.04696
아이디어만 정리합니다
아이디어
- 위에 나온 걸 task 를 다 한꺼번에 학습해버리겠다는 속셈이다
- caption 에 signals 라는 표현이 있고, 논문에서 계속 pretraining signals 라고 하는데 그냥 pretraining 이라고 보면 된다.
괜히 신경쓰다가 혼자 signal 에 의미부여했다. - BLEU, ROUGE: 그냥 계산해서 쓰면 되니까 정답 문장과 예측 문장 쌍만 있으면 된다.
- BERTscore: 모델을 활용해서 측정했고, 그 모델의 점수를 흉내내고자 한다
- Backtrans likelihood & flag: 일단 넘어가자. 뒤에서 이야기하겠다.
- Entailment: 2문장의 관계를 예측한다. 이것도 MNLI finetuned model 의 점수를 흉내내고자 한다
왜 사전학습이야? 따로 또 fine-tuning 하는거야?
- 맞다. fine-tuning 하려는 데이터셋 WMT가 있는데, 그 전에 wikipedia 데이터셋으로 warm up 하고자 한다.
- 그래야 domain 에 영향을 받지 않고, 어떤 데이터셋에도 강건한 학습 능력을 가질 거라고 저자는 주장한다.
그러면 fine-tuning 은 어떻게 해?
- 매년 기계번역 분야에서 진행하는 WMT 라는 대회가 있다. WMT2017 이런 식으로 연도가 붙는데, 가장 번역을 잘 하는 모델이 수상한다.
- 문제는 '가장 번역을 잘 했다'를 어떻게 평가하는가다. 돈만 많다면, 사람이 평가한 지표가 최고다. 그래서 이 대회 역시 사람이 직접 평가하여, 평가한 점수를 다 남겨두고 공개한다.
- 이 대회에서 남긴 (모델 번역 문장, 정답 문장, 사람 점수) 데이터셋을 fine-tuning 할 때 사용한다는 의미다.
- 하지만 대회에서 쓰이는 데이터셋은 번역이라는 domain 에 편향되었을 위험이 있어 그 전에 사전학습을 하려는 것이다.
- 다만, 사전학습은 사람의 손을 거치지 않고 기존에 있던 평가지표들을 모두 모아 학습하겠다는 것이고.
좋아, 그러면 사전학습에 쓰이는 데이터셋인 WIKIPEDIA 는 무슨 말이야?
- 사전 학습을 위해선 (정답 문장, 예측 문장) 만 있으면 된다. 그러면, 점수는 BLEU, ROUGE, BERTscore 등 알아서 계산해서 넣어주면 되니까.
- 그래서 WIKIPEDIA 에서 우선 180만개의 문장을 추출했다. 이건 정답 문장으로 쓸 것이다.
그러면 예측 문장은 어떻게 만들어?
일부러 문장을 훼손시켜야 한다. 그래야 정답 문장과 다르면서도 어느 정도 의미가 유사할 테니까.
예시 - 정답 문장: The capital of South Korea is Seoul.
1. MASK-FILLING with BERT: 문장 일부를 가리고, BERT에게 채우도록 한다.
- 가리기: The capital of South Korea is [MASK]
- BERT로 예측: The capital of South Korea is Busan.
2. Backtranslation: 다른 언어로 번역했다가 다시 원래 언어로 되돌린다
- 한글로 번역: 대한민국의 수도는 서울입니다
- 다시 영어로 번역: The capital city of South Korea is Seoul
3. Dropping words: 일부 단어를 삭제한다
- The capital of South is Seoul.
- The of South Korea is Seoul.
- The capital of South Korea is.
이렇게 650만쌍의 wikipedia 데이터셋을 만들었다. 그 다음, 여러 평가지표로 점수를 만들어서 (예측 문장, 정답 문장, 지표 점수) 데이터셋을 만들어서 사전학습을 진행했다. 그리고 finetuning 할 땐, WMT에서 남겨준 사람이 직접 평가한 점수를 예측하게 했다.
실험을 보면, 사전학습의 효과와 해당 지표가 사람 점수와 Correlation 점수가 높은지 확인할 수 있다. 끝.