BLEU Score

March 8, 2018    Text Mining

BLEU

BLEU(Bilingual Evaluation Understudy)score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에 주로 사용된다. 3가지 요소를 살펴보자.

  • n-gram을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)
  • 문장길이에 대한 과적합 보정 (Brevity Penalty)
  • 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)
\[BLEU = min(1, \frac{output \ length(예측 \ 문장)}{reference \ length(실제 \ 문장)})(\prod^{4}_{i=1} precision_i)^{\frac{1}{4}}\]


예제

Translation task를 생각해보자. 영어 sentence을 모델에 넣으면, 그 모델은 한글 sentence을 출력한다. 그럼 그 한글 sentence이 얼마나 잘 예측된 것인지 알려면 사람이 정확히 번역한 문장(true sentence)과 비교해 보면 된다.

1. n-gram(1~4)을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)

  • 예측된 sentence: 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다

  • true sentence: 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다


  • 1-gram precision: $\frac{일치하는 1-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 1-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{10}{14}$

  • 2-gram precision: $\frac{일치하는 2-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 2-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{5}{13}$

  • 3-gram precision: $\frac{일치하는 3-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 3-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{2}{12}$

  • 4-gram precision: $\frac{일치하는 4-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 4-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{1}{11}$

\[(\prod^{4}_{i=1} precision_i)^{\frac{1}{4}} = (\frac{10}{14} \times \frac{5}{13} \times \frac{2}{12} \times \frac{1}{11})^{\frac{1}{4}}\]


2. 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)

위 예제에서 단어 단위로 n-gram을 할 경우 보정할 것이 없지만, 영어의 한 예제에서 1-gram precision를 구하면, 예측된 문장에 중복된 단어들(the:3, more:2)이 있다. 이를 보정하기 위해 true sentence에 있는 중복되는 단어의 max count(the:2, more:1)를 고려하게 된다.(Clipping). 다른 n-gram도 같은 방식으로 처리하면 된다.

  • 예측된 sentence: The more decomposition the more flavor the food has
  • true sentence: The more the merrier I always say


  • 1-gram precision: $\frac{일치하는 1-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 1-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{5}{9}$

  • (보정 후) 1-gram precision: $\frac{일치하는 1-gram의 \ 수 (예측된 \ sentence 중에서) }{모든 1-gram 쌍 \ (예측된 \ sentence 중에서)} = \frac{3}{9}$


3. 문장길이에 대한 과적합 보정 (Brevity Penalty)

같은 예제에 문장길이에 대한 보정계수를 구하면 다음과 같다.

  • 예측된 sentence: 빛이 쐬는 노인은 완벽한 어두운곳에서 잠듬

  • true sentence: 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다

\[min(1, \frac{예측된 \ sentence의 \ 길이(단어의 \ 갯수)}{true \ sentence의 \ 길이(단어의 \ 갯수)}) = min(1, \frac{6}{14}) = \frac{3}{7}\]

BLEU score

  • 아래 예시의 BLEU score를 계산하면 다음과 같다.

  • 예측된 sentence: 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다

  • true sentence: 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다

\[BLEU = min(1, \frac{output \ length(예측 \ 문장)}{reference \ length(실제 \ 문장)})(\prod^{4}_{i=1} precision_i)^{\frac{1}{4}}\] \[= min(1, \frac{14}{14}) \times (\frac{10}{14} \times \frac{5}{13} \times \frac{2}{12} \times \frac{1}{11})^{\frac{1}{4}}\]
DSBA