Busca híbrida revisitada: apresentando o recuperador linear no Elasticsearch!

Descubra como o recuperador linear aprimora a busca híbrida, aproveitando pontuações ponderadas e normalização MinMax para classificações mais precisas e consistentes, e aprenda a usá-lo.

O Elasticsearch está repleto de novos recursos para ajudar você a criar as melhores soluções de pesquisa para o seu caso de uso. Aprenda a como colocá-los em prática em nosso webinar prático sobre como criar uma experiência moderna de IA de busca. Você também pode iniciar um teste gratuito na nuvem ou experimentar o Elastic em sua máquina local agora mesmo.

Em nossa postagem anterior, apresentamos a estrutura de recuperadores redesenhada do zero, que permite a criação de pipelines de classificação complexos. Também exploramos como o recuperador Reciprocal Rank Fusion (RRF) permite a pesquisa híbrida ao mesclar resultados de diferentes consultas. Embora o RRF seja fácil de implementar, ele tem uma limitação notável: ele se concentra apenas em classificações relativas, ignorando pontuações reais. Isso torna o ajuste fino e a otimização um desafio.

Conheça o retriever linear!

Nesta postagem, apresentamos o recuperador linear , nossa mais recente adição para oferecer suporte à pesquisa híbrida! Ao contrário de rrf, o recuperador linear calcula uma soma ponderada em todas as consultas que correspondem a um documento. Essa abordagem preserva a importância relativa de cada documento dentro de um conjunto de resultados, ao mesmo tempo que permite controle preciso sobre a influência de cada consulta na pontuação final. Como resultado, ele fornece uma maneira mais intuitiva e flexível de ajustar a pesquisa híbrida.

Definindo um recuperador linear onde a pontuação final será calculada como:

score=5knn+1.5bm25score = 5 * knn + 1.5 * bm25

É tão simples quanto:

Percebeu como é simples e intuitivo? (e muito parecido com rrf!) Essa configuração permite que você controle precisamente quanto cada tipo de consulta contribui para a classificação final, ao contrário de rrf, que depende apenas de classificações relativas.

Uma ressalva permanece: as pontuações knn podem ser estritamente limitadas, dependendo da métrica de similaridade usada. Por exemplo, com similaridade de cosseno ou produto escalar de vetores normalizados por unidade, as pontuações sempre estarão dentro do intervalo [0, 1] . Em contraste, as pontuações bm25 são menos previsíveis e não têm limites claramente definidos.

Escalando as pontuações: kNN vs BM25

Um desafio da busca híbrida é que diferentes recuperadores produzem pontuações em escalas diferentes. Considere, por exemplo, o seguinte cenário:

Pontuações da consulta A:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm251001,510,5

Pontuações da consulta B:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm250,630,010,30,4

Você pode ver a disparidade acima: as pontuações kNN variam entre 0 e 1, enquanto as pontuações bm25 podem variar muito. Essa diferença dificulta a definição de pesos estáticos ideais para combinar os resultados.

Normalização para o resgate: o normalizador MinMax

Para resolver isso, introduzimos um normalizador minmax opcional que dimensiona as pontuações, independentemente para cada consulta, para o intervalo [0, 1] usando a seguinte fórmula:

normalizedscore=(scoremin)/(maxmin)normalized_score = (score - min) / (max - min)

Isso preserva a importância relativa de cada documento dentro do conjunto de resultados de uma consulta, facilitando a combinação de pontuações de diferentes recuperadores. Com a normalização, as pontuações se tornam:

Pontuações da consulta A:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm251,000,010,0050,000

Pontuações da consulta B:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm251,000,0000,4650,645

Todas as pontuações agora estão no intervalo [0, 1] e otimizar a soma ponderada é muito mais simples, pois agora capturamos a importância (em relação à consulta) de um resultado em vez de sua pontuação absoluta e mantemos a consistência entre as consultas.

Exemplo de recuperador linear

Vamos ver um exemplo agora para mostrar a aparência do exemplo acima e como o recuperador linear aborda algumas das deficiências do rrf. O RRF depende somente de classificações relativas e não considera diferenças reais de pontuação. Por exemplo, dadas estas pontuações:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm251001,510,5
pontuação rrf0,032260,032520,032000,03125

rrf classificaria os documentos como:

doc2>doc1>doc3>doc4doc2 > doc1 > doc3 > doc4

No entanto, doc1 tem uma pontuação bm25 significativamente maior que as outras, o que rrf não consegue capturar porque só analisa classificações relativas. O recuperador linear , combinado com a normalização, contabiliza corretamente as pontuações e suas diferenças, produzindo uma classificação mais significativa:

doc1doc2doc3doc4
knn0,3470,350,3480,346
bm2510,010,0050

Como podemos ver acima, a ótima classificação do doc1 e score para bm25 são devidamente contabilizadas e refletidas nas pontuações finais. Além disso, todas as pontuações agora estão no intervalo [0, 1] para que possamos compará-las e combiná-las de uma forma muito mais intuitiva (e até mesmo criar processos de otimização offline).

Juntando tudo

Para aproveitar ao máximo o recuperador linear com normalização, a solicitação de pesquisa ficaria assim:

Essa abordagem combina o melhor dos dois mundos: ela mantém a flexibilidade e a pontuação intuitiva do recuperador linear , ao mesmo tempo em que garante uma escala de pontuação consistente com a normalização MinMax.

Assim como todos os nossos recuperadores, o recuperador linear pode ser integrado a qualquer nível de uma árvore hierárquica de recuperadores, com suporte para explicabilidade, destaque de correspondência, recolhimento de campo e muito mais.

Quando escolher o retriever linear e por que isso faz a diferença

O recuperador linear :

  • Preserva a importância relativa aproveitando pontuações reais, não apenas classificações.
  • Permite ajustes finos com contribuições ponderadas de diferentes consultas.
  • Melhora a consistência usando a normalização, tornando a pesquisa híbrida mais robusta e previsível.

Conclusão

O recuperador linear já está disponível no Elasticsearch Serverless e nas versões 8.18 e 9.0! Mais exemplos e parâmetros de configuração também podem ser encontrados em nossa documentação. Experimente e veja como ele pode melhorar sua experiência de pesquisa híbrida — aguardamos seu feedback. Boa busca!

Perguntas frequentes

Como o recuperador linear melhora a busca híbrida em comparação à abordagem anterior de Fusão de Classificação Recíproca (RRF)?

O recuperador linear oferece diversas vantagens sobre o RRF na busca híbrida. Enquanto o RRF se concentra apenas em classificações relativas e ignora pontuações reais, o recuperador linear calcula uma soma ponderada entre consultas, preservando a importância relativa de cada documento. Essa abordagem permite um controle mais preciso sobre como diferentes tipos de consulta contribuem para a classificação final. Além disso, o recuperador linear suporta técnicas de normalização como MinMax, facilitando a combinação de pontuações de diferentes recuperadores e otimizando o resultado final da pesquisa. Essa flexibilidade e controle proporcionam uma experiência de pesquisa híbrida mais intuitiva e refinada.

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)