일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- image processing
- opencv
- two-stage detector
- 강화학습
- dynamic programming
- 딥러닝
- Mask Processing
- 그래프 이론
- MySQL
- ubuntu
- machine learning
- AlexNet
- YoLO
- dfs
- real-time object detection
- DP
- deep learning
- eecs 498
- 머신러닝
- MinHeap
- C++
- BFS
- CNN
- r-cnn
- One-Stage Detector
- NLP
- Reinforcement Learning
- 백준
- Python
- LSTM
- Today
- Total
JINWOOJUNG
[ NLP ] BLEU Score: 기계번역 평가지표 본문
NLP에서 기계 번역의 성능이 얼마나 뛰어난가를 측정하기 위해 사용되는 평가지표 중 하나가 BLEU(Bilingual Evaluation Understudy)이다. 오늘은 BLEU를 계산하는 방법에 대해 알아보자.
BLEU
BLEU는 기계 번역 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여 번역 성능을 측정하는 방법이다. BLEU 점수는 아래 3가지 주요 요소를 기반으로 계산된다.
- n-gram Precision : 예측 문장에서 참조 문장과 겹치는 n-gram의 비율(1~4 gram)
- Clipping : 같은 n-gram이 중복으로 등장할 경우, 참조 문장에서 등장한 최대 횟수까지만 Precision 계산에 반영
- Brevity Penalty(BP) : 예측 문장이 너무 짧아 Precision만으로 높은 점수를 얻는 것을 방지하기 위해 도입된 길이 보정 계수
BLEU는 아래 식을 기반으로 계산되며, 이때 output length는 예측한 문장, reference length는 실제 문장을 의미한다. 즉, BLEU score = BP × geometric mean of n-gram precision이라는 기본 구조를 바탕으로 계산된다.
$$BLEU = min\left (1, \frac{output \ length}{reference \ length} \right )\left ( \prod_{i=1}^{4} precision_i \right )^{\frac{1}{4}}$$
Translation Task
Translation Task는 특정 언어의 Sentence를 Input으로 Model에 넣으면, 다른 언어의 Sentence로 번역하는 Task이다. 해당 언어로 번역이 잘 되었는지 판단하기 위해서는 Reference Sentence(True Sentence)와 비교하면 된다.
n-gram Precision
n-gram이란 문장에서 연속된 n개의 단어를 묶은 단위를 의미한다. 예를 들어, "나는 밥을 먹었다"라는 문장에서 1-gram은 "나는","밥을","먹었다", 2-gram은 "나는 밥을","밥을 먹었다", 3-gram은 "나는 밥을 먹었다"를 의미한다. 즉, 1-gram만 사용하게 되면 단어 빈도수만 확인할 수 있어 문맥을 고려하지 못하기 때문에, 2-gram 이상 사용해서 단어들의 연속적인 등장 패턴을 반영해 문장 구조와 유창성을 평가할 수 있다.
n-gram Precision은 1~4-gram에 대해서 Precision을 계산하게 된다.
- 예측 문장 : 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
- 정답 문장 : 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다
위 문장에 대해서 n-gram Precision은 다음과 같이 계산할 수 있다.
$$ 1-gram \; Precision = \frac{The \; number \; of \; Matched \; 1-gram \; in \; Output \; Sequence}{The \; number \; of \; Every \; 1-gram \; in \; Reference \; Sequence}$$
Reference Sequence 에서의 1-gram 수는 단어의 총 개수와 동일한 14이고, Output Sequence에서 Reference Sequence와 Matching되는 1-gram의 수는 파란색으로 표현되는 단어의 갯수인 10이 된다. 따라서 $1-gram \; Precesion = \frac{10}{14}$이 된다.
나머지도 단순하게 Count해서 살펴보면, $2-gram \; Precision = \frac{5}{13}, \; 3-gram \; Precision = \frac{2}{12}, \; 4-gram \; Precision = \frac{1}{11}$이 된다. 따라서 최종적으로 BLEU 계산식에서 n-gram Precision에 해당되는 부분의 값은 다음과 같다.
$$\left ( \prod_{i=1}^{4} precision_i \right )^{\frac{1}{4}} = (\frac{10}{14} \times \frac{5}{13} \times \frac{2}{12} \times \frac{1}{11})^{\frac{1}{4}}$$
Clipping
앞선 예시에서는 상관 없지만, 영어의 한 예제에서 1-gram Precision을 계산하게 되면, 예측된 문장에 중복된 단어들이 있다. 따라서 이를 보정하기 위해 Reference Sentence에 있는 중복된 단어의 Max Count를 고려하는 것이 Clipping이다.
만약 Cliiping을 하지 않는 경우 예측 문장의 "the"는 3번, "more"는 2번 Count가 된다. 따라서 이러한 중복된 단어의 경우 Reference Sentence의 Max Count인 2번, 1번으로 계산하게 된다.
- 예측 문장 : The more decomposition the more flavor the food has
- 정답 문장 : The more the merrier I always say
따라서, 1-gram Precision은 $\frac{5}{9} \to \frac{3}{9}$로 보정되게 된다.
Brevity Penalty
만약 Output Sequence가 Reference Sequence에 비해 너무 짧은 경우, BLEU Score가 높아지는 현상이 발생한다. 이는 BLEU가 n-gram Precision을 기반으로 계산되기에, 예측 문장이 아주 짧더라도 정답 문장에 있는 단어만 잘 추출하면 높은 Score로 계산되기 때문이다.
만약 아래와 같은 경우 1-gram Precision은 매우 높게 측정되지만, Translation Task 측면에서는 잘못된 결과이기 때문에 길이 보정이 요구된다.
- 예측 문장 : The cat
- 정답 문장 : The cat is sitting on the mat
따라서 BLEU 수식에서 앞쪽에 $min(1, \frac{output \; length}{reference \; length})$를 붙임으로써 길이를 보정하게 된다.
Reference
14-03 BLEU Score(Bilingual Evaluation Understudy Score)
앞서 언어 모델(Language Model)의 성능 측정을 위한 평가 방법으로 펄플렉서티(perplexity, PPL)를 소개한 바 있습니다. 기계 번역기에도 PPL을 평가에 사…
wikidocs.net
BLEU Score
BLEU BLEU(Bilingual Evaluation Understudy)score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에
donghwa-kim.github.io
'NLP, LLM, Multi-modal' 카테고리의 다른 글
[ Transformer to LLaMA ] Transformer..02 (0) | 2025.04.25 |
---|---|
[ Transformer to LLaMA ] Transformer..01 (0) | 2025.04.25 |
[ VLM ] VLM Tasks와 Benchmarks..(1) (0) | 2025.04.15 |
[ NLP ] 어간 추출(Stemming) & 표제어 추출(Lemmatization) (0) | 2025.04.14 |
[ NLP ] Cleaning & Normalization (0) | 2025.04.14 |