Como BM25 e RAG Recuperam Informações de Forma Diferente?
Quando você digita uma consulta em um mecanismo de busca, algo precisa decidir quais documentos são realmente relevantes — e como classificá-los. BM25 (Best Matching 25), o algoritmo que impulsiona mecanismos de busca como Elasticsearch e Lucene, tem sido a resposta dominante para essa pergunta por décadas. Ele pontua documentos analisando três coisas: [...] A publicação Como BM25 e RAG Recuperam Informações Diferentemente
Quando você digita uma consulta em um mecanismo de busca, algo precisa decidir quais documentos são realmente relevantes — e como classificá-los. BM25 (Best Matching 25), o algoritmo que impulsiona mecanismos de busca como Elasticsearch e Lucene, tem sido a resposta dominante para essa pergunta por décadas. Ele pontua documentos analisando três coisas: a frequência com que os termos da sua consulta aparecem em um documento, a raridade desses termos em toda a coleção e se um documento é excepcionalmente longo. A parte inteligente é que o BM25 não recompensa o 'keyword stuffing' (recheio de palavras-chave) — uma palavra aparecendo 20 vezes não torna um documento 20 vezes mais relevante, graças à saturação da frequência de termos. Mas o BM25 tem um ponto cego fundamental: ele só corresponde às palavras que você digitou, não ao que você quis dizer. Pesquise por 'encontrar conteúdo semelhante sem sobreposição exata de palavras' e o BM25 retorna um olhar vazio. Este é exatamente o vazio que a Geração Aumentada por Recuperação (RAG) com embeddings de vetores foi construída para preencher — combinando significado, não apenas palavras-chave. Neste artigo, detalharemos como cada abordagem funciona, onde cada uma delas se destaca e por que os sistemas de produção estão cada vez mais usando ambas juntas. Como o BM25 Funciona Em sua essência, o BM25 atribui uma pontuação de relevância a cada documento na coleção para uma determinada consulta, então classifica os documentos por essa pontuação. Para cada termo em sua consulta, o BM25 faz três perguntas: Com que frequência este termo aparece no documento? Quão raro este termo é em todos os documentos? E este documento é excepcionalmente longo? A pontuação final é a soma de respostas ponderadas a essas perguntas em todos os termos da consulta. O componente de frequência de termos é onde o BM25 se torna inteligente. Em vez de contar ocorrências brutas, ele aplica saturação — a pontuação cresce rapidamente no início, mas se estabiliza à medida que a frequência aumenta. Um termo aparecendo 5 vezes contribui muito mais do que um termo aparecendo uma vez, mas um termo aparecendo 50 vezes contribui mal e mal mais do que um que aparece 20 vezes. Isso é controlado pelo parâmetro k₁ (tipicamente definido entre 1.2 e 2.0). Defina-o baixo e a saturação entra em ação rapidamente; defina-o alto e a frequência bruta importa mais. Essa única escolha de design é o que torna o BM25 resistente ao 'keyword stuffing' — repetir uma palavra cem vezes em um documento não enganará a pontuação. Normalização de Comprimento e IDF O segundo parâmetro de ajuste, b (tipicamente 0.75), controla o quanto o comprimento de um documento é penalizado. Um documento longo naturalmente contém mais palavras, então ele tem mais chances de incluir o termo da sua consulta.
