# BLEU

O Assistente de Avaliação Bilíngue, do inglês Bilingual Evaluation Understudy mais conhecido pela sigla BLEU, é um algoritmo que avalia a qualidade do texto que foi traduzido automaticamente de um idioma natural para outro. A qualidade considera a correspondência entre o resultado de uma máquina e o de um ser humano: "quanto mais próxima uma tradução automática estiver de uma tradução humana profissional, melhor ela é" - essa é a ideia central por trás do BLEU. Inventado na IBM em 2001, o BLEU foi uma das primeiras métricas a reivindicar uma alta correlação com julgamentos humanos de qualidade, e continua sendo uma das métricas automatizadas e econômicas mais populares.
As pontuações são calculadas para segmentos individuais traduzidos - geralmente frases - comparando-os com um conjunto de traduções de referência de boa qualidade. Em seguida, calcula-se a média dessas pontuações em todo o corpus para obter uma estimativa da qualidade geral da tradução. A inteligibilidade ou a correção gramatical não são levadas em conta.
O resultado do BLEU é sempre um número entre 0 e 1. Esse valor indica o grau de semelhança entre o texto candidato e os textos de referência, com valores mais próximos de 1 representando textos mais semelhantes. Poucas traduções humanas atingirão uma pontuação de 1, pois isso indicaria que o candidato é idêntico a uma das traduções de referência. Por esse motivo, não é necessário atingir uma pontuação de 1. Como há mais oportunidades de correspondência, a adição de traduções de referência adicionais aumentará a pontuação BLEU.

## Definição matemática
### Configuração básica

Uma primeira tentativa básica de definir a pontuação BLEU receberia dois argumentos: uma string candidata ${\hat {y}}$ e uma lista de strings de referência $(y^{(1)},...,y^{(N)})$. A ideia é que $BLEU({\hat {y}};y^{(1)},...,y^{(N)})$ deve estar próximo de 1 quando ${\hat {y}}$ é semelhante a $(y^{(1)},...,y^{(N)})$, e próximo de 0 caso contrário.
Como analogia, a pontuação BLEU é como um professor de idiomas tentando avaliar a qualidade da tradução de um aluno ${\hat {y}}$ verificando o quanto ela segue as respostas de referência $y^{(1)},...,y^{(N)}$.
Como no processamento de linguagem natural é necessário avaliar um grande conjunto de strings candidatas, é preciso generalizar a pontuação BLEU para o caso em que se tem uma lista de M strings candidatas (chamada de "corpus") $({\hat {y}}^{(1)},\cdots ,{\hat {y}}^{(M)})$, e para cada string candidata ${\hat {y}}$, há uma lista de strings candidatas de referência $S_{i}:=(y^{(i,1)},...,y^{(i,N_{i})})$.
Dada qualquer string $y=y_{1}y_{2}\cdots y_{K}$, e qualquer integral $n\geq 1$, pode-se definir o conjunto de seus n-gramas como sendo:$G_{n}(y)=\{y_{1}\cdots y_{n},y_{2}\cdots y_{n+1},\cdots ,y_{K-n+1}\cdots y_{K}\}$Observe que se trata de um conjunto de elementos exclusivos, e não de um multiconjunto que permite elementos redundantes, de modo que, por exemplo, $G_{2}(abab)=\{ab,ba\}$.
Dadas duas strings $s,y$, defina a contagem de substrings $C(s,y)$ como sendo o número de aparições de $s$ como uma substring de $y$. Por exemplo, $C(ab,abcbab)=2$.
Agora, fixa-se um corpus candidato ${\hat {S}}:=({\hat {y}}^{(1)},\cdots ,{\hat {y}}^{(M)})$, e referencia-se o corpus candidato $S=(S_{1},\cdots ,S_{M})$, onde cada S$S_{i}:=(y^{(i,1)},...,y^{(i,N_{i})})$.

### Precisão de n-grama modificada

Defina a função de precisão do n-grama modificada como:$p_{n}({\hat {S}};S):={\frac {\sum _{i=1}^{M}\sum _{s\in G_{n}({\hat {y}}^{(i)})}\min(C(s,{\hat {y}}^{(i)}),\max _{y\in S_{i}}C(s,y))}{\sum _{i=1}^{M}\sum _{s\in G_{n}({\hat {y}}^{(i)})}C(s,{\hat {y}}^{(i)})}}$O n-grama modificado, que parece complicado, é apenas uma generalização direta do caso prototípico: uma frase candidata e uma frase de referência. Nesse caso, é:$p_{n}(\{{\hat {y}}\};\{y\})={\frac {\sum _{s\in G_{n}({\hat {y}})}\min(C(s,{\hat {y}}),C(s,y))}{\sum _{s\in G_{n}({\hat {y}})}C(s,{\hat {y}})}}$Para chegar a essa expressão, começamos com a soma mais óbvia da contagem de n-gramas:$\sum _{s\in G_{n}({\hat {y}})}C(s,y)={\text{número de n-substrings em }}{\hat {y}}{\text{ que aparecem em }}y$Essa quantidade mede quantos n-gramas na frase de referência são reproduzidos pela frase candidata. Observe que contamos as n-substrings, não os n-gramas. Por exemplo, quando ${\hat {y}}=aba,y=abababa,n=2$, todas as 2-substrings em ${\hat {y}}$ (ab e ba) aparecem em $y$ 3 vezes cada, portanto a contagem é 6, não 2.
Na situação acima, entretanto, a string de candidatos é muito curta. Em vez de 3 aparições de $ab$ ela contém apenas uma, portanto, adiciona-se uma função mínima para corrigir isso:${\sum _{s\in G_{n}({\hat {y}})}\min(C(s,{\hat {y}}),C(s,y))}$Essa soma de contagem não pode ser usada para comparar frases, pois não é normalizada. Se tanto a frase de referência quanto a frase candidata forem longas, a contagem poderá ser grande, mesmo que a candidata seja de qualidade muito ruim. Portanto, normalisa-se:${\frac {\sum _{s\in G_{n}({\hat {y}})}\min(C(s,{\hat {y}}),C(s,y))}{\sum _{s\in G_{n}({\hat {y}})}C(s,{\hat {y}})}}$A normalização é tal que é sempre um número em $[0,1]$ permitindo comparações significativas entre os corpus. É zero se nenhuma das n-substrings do candidato estiver na referência. É um se cada n-grama no candidato aparecer na referência, pelo menos tantas vezes quanto no candidato. Em particular, se o candidato for uma substring da referência, então é um.

### Penalidade de brevidade

A precisão modificada do n-grama atribui indevidamente uma pontuação alta para strings candidatas que são "telegráficas", ou seja, que contêm todos os n-gramas das cadeias de caracteres de referência, mas pelo menor número de vezes possível.
Para punir as cadeias de strings que são muito curtas, define-se a penalidade de brevidade como:$BP({\hat {S}};S):=e^{-(r/c-1)^{+}}$onde $(r/c-1)^{+}=\max(0,r/c-1)$ é a parte positiva de $r/c-1$.
* Quando $r\leq c$, a penalidade de brevidade $BP=1$, o que significa que não se pune candidatos longos mas apenas candidatos curtos.
* Quando $r\leq c$, a penalidade de brevidade $BP=e^{(1-r)/c}$
$c$ é o comprimento do corpus candidato, ou seja, o tamanho do corpus,$c:=\sum _{i=1}^{M}|{\hat {y}}^{(i)}|$onde $|y|$ é o comprimento de $y$. $r$ é o comprimento efetivo do corpus de referência, ou seja,$r:=\sum _{i=1}^{M}|y^{(i,j)}|$onde $y^{(i,j)}=\arg \min _{y\in S_{i}}||y|-|{\hat {y}}^{(i)}||$, ou seja, a frase de $S_{i}$ cujo comprimento é mais o próximo possível de $|{\hat {y}}^{(i)}|$.

### Definição final de BLEU

Não há uma única definição de BLEU, mas uma família inteira delas, parametrizada pelo vetor de ponderação $w:=(w_{1},w_{2},\cdots )$. É uma distribuição de probabilidade em $\{1,2,3,\cdots \}$, ou seja, $\sum _{i=1}^{\infty }w_{i}=1$, e $\forall i\in \{1,2,3,\cdots \},w_{i}\in [0,1]$.
Com a escolha de $w$, a pontuação BLEU é$BLEU_{w}({\hat {S}};S):=BP({\hat {S}};S)\cdot \exp \left(\sum _{n=1}^{\infty }w_{n}\ln p_{n}({\hat {S}};S)\right)$Em outras palavras, é uma média geométrica ponderada de todas as precisões de n-gramas modificados, multiplicada pela penalidade de brevidade. Usa-se a média geométrica ponderada, em vez da média aritmética ponderada, para favorecer fortemente os corpus candidatos que são simultaneamente bons de acordo com várias precisões de n-gramas.
A opção mais comum, a recomendada no documento original, é $w_{1}=\cdots =w_{4}={\frac {1}{4}}$.

## Algoritmo

Isso é ilustrado no seguinte exemplo de Papineni et al. (2002):
Exemplo de um resultado de tradução automática ruim com alta precisão :
| Candidato | the | the | the | the | the | the | the |
| Referência 1 | the | cat | is | on | the | mat | |
| Referência 2 | there | is | a | cat | on | the | mat |
Das sete palavras na tradução candidata, todas elas aparecem nas traduções de referência. Assim, o texto candidato recebe uma precisão de unigrama de,
$P={\frac {m}{w_{t}}}={\frac {7}{7}}=1$
onde $m$ é o número de palavras do candidato que são encontradas na referência, e $w_{t}$ é o número total de palavras no candidato. Essa é uma pontuação perfeita, apesar do fato de que a tradução do candidato acima retém pouco do conteúdo de qualquer uma das referências.
A modificação que o BLEU faz é bastante simples. Para cada palavra na tradução candidata, o algoritmo obtém sua contagem total máxima, $m_{max}$ em qualquer uma das traduções de referência. No exemplo acima, a palavra "the" aparece duas vezes na referência 1 e uma vez na referência 2. Portanto $~m_{max}=2$.
Para a tradução candidata, a contagem $~m_{max}$ de cada palavra é cortada até um máximo de $m_{max}$ para essa palavra. Nesse caso, "the" tem $m_{w}=7$ e $~m_{max}=2$, portanto $m_{w}$ é cortado em 2. Essas contagens cortadas $m_{w}$ são somadas a todas as palavras distintas do candidato. Essa soma é então dividida pelo número total de unigramas na tradução candidata. No exemplo acima, a pontuação de precisão do unigrama modificado seria:
$P={\frac {2}{7}}$
Na prática, porém, usar palavras individuais como unidade de comparação não é o ideal. Em vez disso, o BLEU calcula a mesma métrica de precisão modificada usando n-gramas. O comprimento que tem a "maior correlação com julgamentos humanos monolíngues" foi considerado quatro. As pontuações dos unigramas são responsáveis pela adequação da tradução, pela quantidade de informações retidas. As pontuações mais longas dos n-gramas representam a fluência da tradução, ou até que ponto ela se parece com um "bom inglês".
Comparação de métricas para o candidato "the the cat" :
| Modelo | Conjunto de gramas | Pontuação |
| Unigrama | "the", "the", "cat" | ${\frac {1+1+1}{3}}=1$ |
| Unigrama agrupado | "the"*2, "cat"*1 | ${\frac {1+1}{2+1}}={\frac {2}{3}}$ |
| Bigrama | "the the", "the cat" | ${\frac {0+1}{2}}={\frac {1}{2}}$ |
Um exemplo de uma tradução candidata para as mesmas referências acima pode ser:
   the cat
Nesse exemplo, a precisão do unigrama modificado seria,
$P={\frac {1}{2}}+{\frac {1}{2}}={\frac {2}{2}}$
pois a palavra "the" e a palavra "cat" aparecem uma vez cada no candidato, e o número total de palavras é dois. A precisão do bigrama modificado seria $1/1$ já que o bigrama "the cat" aparece uma vez no candidato. Foi observado que a precisão geralmente é combinada com a recuperação para superar esse problema, já que a recuperação de um unigrama desse exemplo seria $3/6$ ou $2/7$. O problema é que, como há várias traduções de referência, uma tradução ruim poderia facilmente ter um recall inflado, como uma tradução que consistisse em todas as palavras de cada uma das referências.
Para produzir uma pontuação para todo o corpus, as pontuações de precisão modificadas para os segmentos são combinadas usando a média geométrica multiplicada por uma penalidade de brevidade para evitar que candidatos muito curtos recebam uma pontuação muito alta. Seja r o tamanho total do corpus de referência e c o tamanho total do corpus de tradução. Se $c\leq r$, aplica-se a penalidade de brevidade, definida como $e^{(1-r/c)}$.No caso de várias frases de referência, r é considerado a soma dos comprimentos das frases cujos comprimentos são mais próximos dos comprimentos das frases candidatas. No entanto, na versão da métrica usada pelas avaliações do NIST antes de 2009, era usada a sentença de referência mais curta.
O iBLEU é uma versão interativa do BLEU que permite que o usuário examine visualmente as pontuações do BLEU obtidas pelas traduções candidatas. Ele também permite a comparação de dois sistemas diferentes de forma visual e interativa, o que é útil para o desenvolvimento de sistemas.

## Desempenho

O BLEU tem sido frequentemente relatado como tendo boa correlação com o julgamento humano, e continua sendo uma referência para a avaliação de qualquer nova métrica de avaliação. No entanto, há uma série de críticas que foram feitas. Observou-se que, embora em princípio seja capaz de avaliar traduções de qualquer idioma, o BLEU não pode, em sua forma atual, lidar com idiomas sem limites de palavras. Projetado para ser usado em várias traduções de referência, na prática ele é usado apenas com uma única. O BLEU é infamemente dependente da técnica de tokenização, e as pontuações obtidas com diferentes técnicas são incomparáveis (o que é frequentemente ignorado); para melhorar a reprodutibilidade e a comparabilidade, foi criada a variante SacreBLEU.
Argumentou-se que, embora o BLEU tenha vantagens significativas, não há garantia de que um aumento na pontuação do BLEU seja um indicador de melhor qualidade de tradução.

## Veja também

* String (Cadeia de caracteres)
* N-grama
* IBM
* Tradução automática
* Tradução
* Algoritmo