Saltar para o conteúdo

Recuperação híbrida: vetorial + por palavra-chave + metadados

Engenharia de recuperação híbrida resiliente: combinar sinais vetoriais, lexicais, de metadados e temporais para RAG de sites.

retrieval • hybrid • search • rag

A recuperação de modalidade única falha nos casos extremos: vetores densos perdem tokens raros e IDs; a busca puramente lexical perde a paráfrase e a similaridade semântica. A recuperação híbrida funde sinais complementares — semântico denso, lexical esparso, metadados estruturados, frescor temporal — para produzir conjuntos de candidatos estáveis e de alta precisão. Este artigo detalha a arquitetura, a normalização, a fusão de pontuações, o tratamento de falhas e a avaliação.

Motivação

Cenários de falha:

  • Nomes próprios / códigos SKU perdidos pelo modelo denso.
  • Consultas sobre mudanças de preço que recuperam um instantâneo desatualizado por falta de impulso temporal.
  • Perguntas longas em linguagem natural sobreponderadas em palavras vazias num sistema apenas esparso.
  • Falsos positivos vetoriais em páginas semanticamente amplas (enchimento de marketing) sem ancoragem lexical.

A abordagem híbrida mitiga isso ao capturar dimensões de evidência ortogonais.

Camadas de componentes

Fluxo recomendado:

  1. Incorporação da consulta → busca ANN (k_vec)
  2. Busca lexical (BM25 / SPLADE / Elasticsearch) (k_lex)
  3. União → normalização de pontuações (escalonamento por fonte)
  4. Passo de filtragem por metadados (locale, access_tier, page_type)
  5. Ajustes de diversidade e frescor
  6. Reordenador cruzado/mono opcional
  7. Truncamento final (top K)

Mantenha as pontuações brutas pré-fusão para auditoria.

Normalização da consulta

Passos:

  • Normalização Unicode NFKC
  • Minúsculas (preserve um instantâneo das maiúsculas para a formatação da resposta, se necessário)
  • Tokenizar e preservar palavras vazias (as incorporações semânticas podem aproveitar o contexto)
  • Expansão de sinônimos / aliases: anexe tokens alternativos para o mapeamento de codinomes internos de produto (não inseridos no prompt do modelo; usados apenas para recuperação esparsa).
  • Extração de números e versões: capture padrões X.Y.Z para pontuação lexical direcionada.

Filtros de metadados e atributos

Os filtros aplicados após a união inicial de candidatos minimizam a perda de recuperação. Campos comuns: locale, access_tier, page_type, product_area, updated_bucket. Aplique os filtros de segurança (tenant / tier) ANTES da fusão de pontuações para evitar que vazamentos influenciem o reordenamento. Forneça um modo de depuração que retorne o conjunto filtered_out para inspeção.

Estratégia de reordenamento

Use um cross-encoder leve (modelo destilado) sobre os N principais (10–20). Se a latência > orçamento, degrade: pule o reordenamento OU reduza o número de candidatos aumentando o peso lexical. Acompanhe re_rank_delta = MRR_post - MRR_pre para justificar o custo. Armazene em cache os resultados do reordenamento para conjuntos de união idênticos dentro de um TTL curto.

Frescor e sinais temporais

Calcule freshness_weight = exp(-lambda * age_days) onde lambda é ajustado por tipo de conteúdo (maior para preços, menor para uma API estável). Combine: final_score = w_sem * sem_score + w_lex * lex_score + w_fresh * freshness_weight + w_meta * meta_priors. Normalize primeiro cada componente (z-score ou min-max) para evitar o domínio de um só.

Modos de falha

FalhaCausaMitigação
Viés de popularidadeSobreponderação do tf-idf lexicalLimitar a contribuição da frequência de termos
Resultados desatualizadosPeso de frescor mal ajustadoRecalibrar lambda usando um conjunto de avaliação
Vazamento de localeAplicação tardia do filtroMover os filtros de segurança para antes
Deriva semânticaAtualização do modelo de incorporaçãoIndexação dupla e comparação A/B antes do lançamento
Ruído por excesso de fusãoTamanho de união sem limiteLimitar a união, poda por diversidade

Estrutura de avaliação

Experimentos:

  • Ablação: (apenas vetorial, apenas lexical, híbrida sem reordenamento, completa) mede Recall@k, MRR.
  • Ajuste de pesos de fusão: busca em grade de pesos usando um conjunto dourado de validação.
  • Orçamento de latência: acompanhe a latência de recuperação média + P95 por configuração.
  • Deriva: monitore a variação relativa semanal na recuperação para consultas frequentes versus de cauda longa.

Mantenha um manifesto de avaliação com hashes de configuração.

Ciclo de otimização

Ciclo:

  1. Registre rastreamentos de recuperação (query, candidates, scores, source_tag).
  2. Identifique os acertos falhos (baixa fidelidade a jusante ou baixa contagem de citações) → classifique a causa raiz (candidato lexical ausente, falso positivo semântico, conteúdo desatualizado).
  3. Ajuste pesos / limites; execute a suíte offline.
  4. Faça canário de novos pesos de fusão atrás de um feature flag.
  5. Promova mediante uma melhoria estatisticamente significativa.

Principais conclusões

  • A recuperação híbrida é um sistema de mostradores ajustáveis; instrumente sem descanso.
  • Aplique os filtros de segurança e acesso cedo; evite o vazamento para a pontuação.
  • O reordenamento deve justificar a latência por meio de um ganho mensurável de MRR / Recall.
  • A decadência temporal evita que páginas desatualizadas de alta autoridade dominem.
  • Trate as mudanças de fusão como código: versione, avalie, avance ou retroceda.