BLUE
BLEU(Bilingual Evaluation Understudy) score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에 주로 사용됩니다. 3가지 요소를 살펴보겠습니다.
- n-gram을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)
- 문장길이에 대한 과적합 보정 (Brevity Penalty)
- 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)
$$\text{BP} = \begin{cases} 1 &\text{if } c > r\\ e^{(1-r/c)}& \text{if } c \le r \end{cases}\\BLEU = \text{BP}\cdot\exp\Big(\sum^N_{n=1}w_n\log p_n\Big)$$
- $p_n$: 각 n-gram에 대한 precision
- $w_n$: 각 n-gram에 대한 weight, 다 더하면 1
- BP : Brevity penalty
1. n-gram을 통한 precision
candidate에서의 n-gram와 reference에서의 n-gram을 가지고 얼마나 일치하는 지를 확인합니다. 수시적으로 표현하면 아래와 같습니다.
$$\cfrac{\text{candidate의 n-gram의 개수}}{\text{n-gram쌍의 개수}}$$
분모에는 candidate sentence의 n-gram의 수, 분자에는 candidate sentence와 reference sentence에서 서로 일치하는 n-gram의 수가 들어갑니다.
Example
- candidate sentence: 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
- reference sentence: 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다
- $\text{1-gram precision} = \cfrac{10}{14}$
- $\text{2-gram precision} = \cfrac{5}{13}$
- $\text{3-gram precision} = \cfrac{2}{12}$
- $\text{4-gram precision} = \cfrac{1}{11}$
$$(\prod^4_{i=1}\text{precision}_i)^{\frac{1}{4}} = (\cfrac{10}{14}\times\cfrac{5}{13}\times\cfrac{2}{12}\times\cfrac{1}{11})^\frac{1}{4}$$
2. 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping)
1-gram으로 precision을 구할 때 candidate sentence에서 중복된 단어가 나오면 precision이 높게나올 수 있습니다. 예를 들어 아래와 같은 상황에서 1이라는 값을 가지게 됩니다.
- Candidate : the the the the the the the
- Reference1 : the cat is on the mat
이와 같은 상황을 막기 위해서 단순히 candidate에서의 일치하는 n-gram단어를 찾는 것이 아닌 reference에서의 n-gram 개수와 비교해서 찾습니다. 이전에는 아래와 같은 수식이었다면,
$$\cfrac{\text{candidate의 n-gram의 개수}}{\text{n-gram쌍의 개수}}$$
$Count_{clip} = \min(Count, \text{Max Ref Count})$이라는 수식을 통해서 아래와 같은 방식으로 구합니다.
$$\cfrac{Count_{clip} = \min(Count, \text{Max Ref Count})}{\text{n-gram쌍의 개수}}$$
Example
- candidate sentence : the the the the the the the
- reference sentence : the cat is on the mat
- 기존의 값 1-gram 값: $\cfrac{7}{7}$
- 수정 후 값 1-gram 값: $\cfrac{2}{7}$
3. 문장길이에 대한 과적합 보정 (Brevity Penalty)
만약에 refence가 10단어가 넘는 문장인데 아래와 같은 candidate가 높은 점수를 받으면 이상할 것입니다.
- Candidate : it is
이런 경우에 대해 패널티를 주기 위한 값입니다.
$$\text{BP} = \begin{cases} 1 &\text{if } c > r\\ e^{(1-r/c)}& \text{if } c \le r \end{cases}$$
Reference
'AI' 카테고리의 다른 글
CutMix (0) | 2022.01.27 |
---|---|
Cross Entropy를 사용하는 이유 (0) | 2021.11.12 |
Backpropagation (0) | 2021.11.03 |
[Metric] Recall과 Precision (0) | 2021.10.03 |
[Metric] ROUGE (Recall-Oriented Understudy for Gisting Evaluation) (0) | 2021.10.02 |