Métricas de avaliação em processamento de linguagem natural — BLEU
Nesta série de postagens, discutiremos métricas de avaliação específicas para casos de uso na área de Processamento de Linguagem Natural. As tarefas mais comuns em PNL são resumo automático, resposta a perguntas e tradução automática. O objetivo dessas métricas é identificar a qualidade do texto previsto dado o texto de entrada. O texto previsto é chamado de Candidato e os possíveis textos corretos ou de destino são chamados de Referências.
Essas métricas são baseadas em algumas das métricas básicas, como Recall, Precision e F1-Score. Se você não conhece essas métricas, confira este artigo que as aborda: Recall, Precision, F1-Score . O conceito de n-gramas também é essencial para o cálculo e compreensão dessas métricas.
As métricas abaixo são geralmente usadas para tradução automática ou resumo automático, mas podem ser aplicadas a qualquer outra tarefa que envolva entrada e pares de texto de destino. Juntamente com a avaliação dos modelos, essas métricas também podem ser usadas para ajuste de hiperparâmetros de modelos de aprendizado de máquina. No primeiro post, discutiremos a métrica BLEU que costuma ser usada para avaliar a Tradução Automática.
Estudante de Avaliação Bilíngue (BLEU)
A pontuação BLEU mede a qualidade do texto previsto, referido como o candidato, em comparação com um conjunto de referências. Pode haver mais de um correto/referência para um candidato em tarefas de Sequência a Sequência. Portanto, é importante que as referências sejam escolhidas com cuidado e todas as referências possíveis sejam incluídas. A pontuação BLEU é uma medida baseada em precisão e varia de 0 a 1. Quanto mais próximo o valor estiver de 1, melhor será a previsão. Não é possível atingir um valor de 1 e normalmente um valor superior a 0,3 é considerado uma boa pontuação.
Na próxima seção, vemos o cálculo de BLEU em uma única sentença prevista para ilustração, seguido do cálculo para um corpus.
Precisão
Se nos lembrarmos (trocadilho não intencional) da definição de precisão de nosso post anterior, é Verdadeiros Positivos/(Verdadeiros Positivos + Falsos Positivos). Neste contexto, os Verdadeiros Positivos são todos os n-gramas correspondentes entre o candidato e a referência. Os Falsos Positivos aqui podem ser vistos como os n-gramas que aparecem no candidato, mas não estão presentes na referência. Isso significa que a precisão pode ser obtida dividindo o número de n-gramas correspondentes pelo número total de n-gramas no candidato.
Reference: "Transformers make everything quick and efficient"
Candidate: "Transformers Transformers Transformers Transformers"
Precisão Modificada (MP)
Para calcular a Precisão Modificada, a contagem de um n-gram é cortada com base no número máximo de vezes que aparece nas referências. É indicado pelo Max_Ref_Count na fórmula mostrada abaixo.
Em nosso exemplo da seção anterior, Transformers aparece apenas uma vez nas referências e 4 vezes no candidato. min (4, 1) é considerado e a precisão modificada agora é 1/4 = 0,25. Esse valor é menor e, portanto, nos dá uma melhor estimativa da qualidade da previsão.
Para generalizar, a fórmula para MP é dada abaixo. Para todos os candidatos no corpus, o número de n-gramas correspondentes com as referências é contado e somado. Isso é dividido pela soma das contagens de todos os n-gramas nas referências.
Penalidade de brevidade (BP)
Às vezes, para sentenças mais longas, os candidatos podem ser muito pequenos e faltar informações importantes relativas à referência. Considere o exemplo abaixo:
Reference: "Transformers make everything quick and efficient through
parallel computation of self-attention heads"
Candidate: "Transformers make everything quick and efficient"
Digite, Penalidade de Brevidade (BP). Este termo é usado para penalizar as previsões que são muito curtas quando comparadas com as referências. Este é 1 se o comprimento do candidato for maior que o comprimento de referência. Se o comprimento do candidato for menor que a referência implica r/c > 1, (1 — (r/c)) é menor e há um decaimento exponencial.
A média geométrica de todas as precisões modificadas até N é calculada e multiplicada por BP para obter a pontuação BLEU final. Aqui N é a ordem n-gram que deve ser usada para cálculo. Em geral, é 4 ou seja, uni, bi, tri e tetra gramas são todos considerados para o cálculo. Eles são ponderados pelos pesos indicados por w_1, w_2,… que somam 1 com base em N. Para N = 4, eles são w_1 = w_2 = w_3 = w_4 = 1/4.
Para a frase de exemplo acima, podemos ver que o BP é calculado como exp(1 — (reference_length/translation_length)) = exp(1 — (6/12)) = 0,37. Esse valor multiplicado pelo MP (1, já que estamos usando apenas unigramas) fornece uma pontuação BLEU muito menor de 0,37 em vez de 1, que representa os n-gramas ausentes.
Neste post, usamos unigramas para facilitar o cálculo. No entanto, eles geralmente não são suficientes para avaliar os candidatos, pois a ordem das palavras é ignorada aqui. Por exemplo, o candidato “Transformadores eficientes fazem previsões rápidas” muda o significado da frase, mas dá uma pontuação MP alta (0,6), pois há palavras correspondentes na referência. Para evitar isso, é melhor avaliar as pontuações com 2 a 4 gramas.
Corpus BLEU
Para facilitar a compreensão, usamos um único par de texto até agora, mas a pontuação BLEU geralmente é calculada para todo o corpus com uma ou mais referências para cada candidato.
Vamos agora calcular a pontuação BLEU para o corpus abaixo. Assuma que os candidatos são os resultados de um sistema de tradução.
import evaluate
bleu = evaluate.load('bleu')
predictions = ["Transformers Transformers are fast plus efficient",
"Good Morning", "I am waiting for new Transformers"]
references = [
["HuggingFace Transformers are quick, efficient and awesome",
"Transformers are awesome because they are fast to execute"],
["Good Morning Transformers", "Morning Transformers"],
["People are eagerly waiting for new Transformer models",
"People are very excited about new Transformers"]
]
results = bleu.compute(predictions=predictions, references=references,
max_order = 2)
print(results)
{'bleu': 0.5037930378757725,
'precisions': [0.7142857142857143, 0.5454545454545454],
'brevity_penalty': 0.8071177470053892, 'length_ratio': 0.8235294117647058,
'translation_length': 14, 'reference_length': 17}
Da mesma forma, calcule a precisão modificada com bigramas, que é o segundo valor na matriz de precisão na saída.
Os pesos aqui são w_1, w_2 são 1/2, pois a ordem máxima é apenas 2. A média geométrica dos valores de precisão é então multiplicada pelo BP para obter a pontuação final. Para calcular BP, o comprimento total do candidato é 14(c) e o comprimento de referência efetivo é 17(r). O comprimento de referência efetivo é calculado somando os n-gramas nas referências mais próximas do candidato. Aqui, para Referência — 1 primeira sentença é selecionada com 8 tokens, Referência-2 e 3 têm 2 e 7 tokens em suas segundas sentenças.
Cálculo BLEU final,
Total MP = (0.7142857142857143)^0.5 * (0.5454545454545454)^0.5
Total MP = 0.6241878
Since c < r,
BP = exp(1 - (17/14)) = 0.8071177
BLEU = BP * Total MP = 0.8071177 * 0.6241878 = 0.503793
Rounded BLEU score = 0.5
- A pontuação BLEU é fácil de calcular e é amplamente utilizada.
- A pontuação BLEU tem uma alta correlação com o julgamento humano da qualidade da previsão.
- Os sinônimos dos n-grams não são considerados até e a menos que estejam presentes como uma das referências. Isso ocorre porque o significado dos n-gramas não está sendo levado em consideração. Por exemplo, “Transformers são rápidos e eficientes” e “Transformers têm um tempo de execução rápido” têm um significado semelhante, mas a pontuação BLEU-1 é de apenas 0,2.
- O problema da ordem das palavras não pode ser resolvido usando apenas n-gramas de ordem superior. Por exemplo, o candidato “transformadores rápidos e eficientes são” com referência “transformadores são rápidos e eficientes” dá uma pontuação BLEU-2 alta (0,87), mas a tradução não pode ser considerada correta.
- A pontuação BLEU varia muito com base em fatores como número de referências, técnicas de normalização e tokenização etc. Por esse motivo, é difícil usá-los para comparação entre conjuntos de dados que usam técnicas diferentes.
Referências
Sou aluno de Mestrado em Data Science @ TU Dortmund. Sinta-se à vontade para se conectar comigo no LinkedIn para qualquer feedback sobre minhas postagens ou qualquer comunicação profissional.