Text Generation Evaluation 01 - BLEU

NLG 에서 generation 되는 text는 대체 어떻게 평가할까?
일반적으로 NLG는 LM모델이기 때문에 LM모델을 평가하는 방식으로도 볼 수 있겠다.
그러나 LM모델은 꼭 text generation(TG)만을 하는 것은 아니기 때문에 TG에 해당하는 evaluation을 정리해보려고 한다.
방법은 논문을 읽다 나오는 비교 방법들을 하나씩 정리해 보려고 한다.
-----------------------------------------------------------------------------------------
첫 번째로 상당이 유명한 대표적인 BLEU(Bilingual Evaluation Understudy) 방법이다.
BLEU는 워낙 유명하고 정리된 자료도 많기에 밑은 잘 정리된 블로그를 퍼왔다.

<펌 내용>

BLEU
BLEU(Bilingual Evaluation Understudy)score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에 주로 사용된다. 3가지 요소를 살펴보자.
  • n-gram을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)
  • 문장길이에 대한 과적합 보정 (Brevity Penalty)
  • 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)

예제
Translation task를 생각해보자. 영어 sentence을 모델에 넣으면, 그 모델은 한글 sentence을 출력한다. 그럼 그 한글 sentence이 얼마나 잘 예측된 것인지 알려면 사람이 정확히 번역한 문장(true sentence)과 비교해 보면 된다.
1. n-gram(1~4)을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)
  • 예측된 sentence빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
  • true sentence빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다

  • 1-gram precision: 1gram ( sentence)1gram ( sentence)=1014
  • 2-gram precision: 2gram ( sentence)2gram ( sentence)=513
  • 3-gram precision: 3gram ( sentence)3gram ( sentence)=212
  • 4-gram precision: 4gram ( sentence)4gram ( sentence)=111
(i=14precisioni)14=(1014×513×212×111)14

2. 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)
위 예제에서 단어 단위로 n-gram을 할 경우 보정할 것이 없지만, 영어의 한 예제에서 1-gram precision를 구하면, 예측된 문장에 중복된 단어들(the:3, more:2)이 있다. 이를 보정하기 위해 true sentence에 있는 중복되는 단어의 max count(the:2, more:1)를 고려하게 된다.(Clipping). 다른 n-gram도 같은 방식으로 처리하면 된다.
  • 예측된 sentenceThe more decomposition the more flavor the food has
  • true sentenceThe more the merrier I always say

  • 1-gram precision: 1gram ( sentence)1gram ( sentence)=59
  • (보정 후) 1-gram precision: 1gram ( sentence)1gram ( sentence)=39

3. 문장길이에 대한 과적합 보정 (Brevity Penalty)
같은 예제에 문장길이에 대한 보정계수를 구하면 다음과 같다.
  • 예측된 sentence빛이 쐬는 노인은 완벽한 어두운곳에서 잠듬
  • true sentence빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다
min(1, sentence ( )true sentence ( ))=min(1,614)=37
BLEU score
  • 아래 예시의 BLEU score를 계산하면 다음과 같다.
  • 예측된 sentence빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
  • true sentence빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다



Reference

댓글