Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

Expansão de consulta baseada em LLM

Você já se viu em uma situação em que digitou uma palavra-chave em um mecanismo de busca e os resultados foram diferentes do que você queria? Ou, você quer pesquisar algo, mas não sabe quais palavras usar para expressar isso com mais precisão? Não se preocupe, a tecnologia de "expansão de consultas" pode ajudá-lo a resolver esses problemas.

Recentemente, a técnica de expansão de consultas voltou a se destacar. Ela costumava ser uma parte padrão dos mecanismos de pesquisa e depois ficou em silêncio por um tempo por vários motivos. Mas agora, com o surgimento de uma nova técnica chamada "Agentic Search" (Pesquisa agêntica), a expansão de consultas está de volta ao centro das atenções.


 

Por que preciso de extensões de consulta?

Quando normalmente usamos mecanismos de pesquisa, os termos de pesquisa que inserimos tendem a ser curtos e coloquiais. Isso pode levar a dois problemas:

  • Os termos de pesquisa são muito geraisPor exemplo, se você quiser conhecer os últimos avanços da "inteligência artificial", mas digitar apenas "inteligência artificial", será difícil para o mecanismo de busca determinar qual aspecto você deseja conhecer.
  • Termos de pesquisa muito específicosPor exemplo, você deseja pesquisar informações sobre uma determinada doença, mas não sabe qual é a terminologia mais precisa.

Todos esses problemas afetam a qualidade dos resultados da pesquisa. Até mesmo técnicas de pesquisa mais avançadas, como a Agentic Search, enfrentam os mesmos desafios.

O que é Agentic Search?

A pesquisa fundamentada é uma maneira mais inteligente de pesquisar. Você pode pensar nela como um assistente inteligente que não apenas entende as palavras-chave que você digita, mas também o ajuda a encontrar informações mais precisas e abrangentes com base no contexto e na sua intenção.

Por exemplo, se você pesquisar "como fazer um bolo", um mecanismo de pesquisa tradicional poderá retornar apenas páginas que contenham as palavras "fazer" e "bolo". Mas a pesquisa inferencial entende que sua intenção é aprender a fazer um bolo e, portanto, pode retornar tutoriais mais detalhados, vídeos ou até mesmo receitas de diferentes tipos de bolos.

Embora a pesquisa inferencial seja mais inteligente, ela ainda tem dificuldades para capturar com precisão nossa intenção se os termos de pesquisa forem muito curtos ou vagos. Para resolver esse problema, precisamos de uma técnica para "expandir" ou "reescrever" nossos termos de pesquisa para que eles expressem de forma mais precisa e abrangente nossa intenção de pesquisa. Isso é chamado de "expansão de consulta".

 

O que é expansão de consulta?

A expansão de consulta é uma técnica para otimizar os resultados de pesquisa. Sua ideia central é simples: adicione algumas palavras relacionadas aos termos de pesquisa originais para facilitar que os mecanismos de pesquisa encontrem os resultados desejados.

Por exemplo, se você quiser pesquisar "Como fazer carne de porco refogada", a extensão da consulta pode adicionar automaticamente "receitas","prática","a vida cotidiana de uma família","carne de porco entremeada" Essas palavras. Dessa forma, os resultados da pesquisa não conterão apenas conteúdo com "braised pork" no título ou no corpo, mas também receitas que ensinam a fazer braised pork, remédios caseiros e até mesmo tutoriais sobre como fazer braised pork com pancetta, tornando os resultados da pesquisa mais abrangentes e adaptados às suas necessidades.

texto alternativo

Figura 1: Fluxograma da expansão da consulta usando o dicionário de sinônimos

A expansão de consultas pode ser usada em todos os tipos de mecanismos de pesquisa, incluindo os tradicionais mecanismos de pesquisa por palavra-chave e os mecanismos de pesquisa inferencial mais avançados. Para a pesquisa inferencial, a expansão de consultas pode ajudar a entender melhor a intenção de pesquisa do usuário e, assim, fornecer resultados mais relevantes.

Nos mecanismos de pesquisa tradicionais, a expansão de consultas é usada principalmente para resolver os dois problemas a seguir:

  • morfologia (linguística)Palavras diferentes da mesma palavra (por exemplo, "run" e "running") são consideradas palavras diferentes, o que leva a resultados de pesquisa incompletos.
  • Sinônimos e palavras relacionadasSe você pesquisar por "perder peso", um mecanismo de pesquisa tradicional pode não encontrar um mecanismo de pesquisa que contenha "fazer uma dieta","perda de gordura"ou"Controle de peso", mas na realidade essas palavras são altamente relevantes.

Muitas coisas foram pensadas para alcançar a expansão da consulta, tais como:

  • Desenvolvimento manual de um dicionário de sinônimosÉ como um dicionário que lhe diz quais palavras têm significados semelhantes.
  • Encontre automaticamente palavras relevantes em um grande número de artigosDeterminar se elas estão relacionadas analisando quais palavras aparecem juntas com frequência.
  • Análise de registros de pesquisaPalavras-chave: Veja quais outras palavras-chave as pessoas usam ao pesquisar conteúdo semelhante.
  • Com base no feedback do usuárioPermita que o usuário informe ao mecanismo de pesquisa quais palavras são relevantes.

 

Modelos de vetores semânticos e extensões de consulta

Nos últimos anos, com o desenvolvimento da Inteligência Artificial, surgiu uma nova tecnologia chamada "Modelagem Semântica de Vetores". Pense nela como um "tradutor de palavras" que traduz cada palavra em uma sequência de números (nós os chamamos de "vetores"). Esses números representam o significado da palavra e, quanto mais próximo for o significado da palavra, mais próxima será a cadeia de números correspondente (vetor).

Com os modelos de vetores semânticos, os mecanismos de pesquisa devem ser teoricamente mais inteligentes, e a expansão da consulta parece desnecessária. Por exemplo, se você pesquisar "Como fazer carne de porco refogada", o modelo de vetor semântico deve saber "receitas","prática"Essas palavras estão suficientemente próximas do significado de "braised pork" (carne de porco refogada) para que um mecanismo de busca consiga encontrar uma receita, mesmo que você não as digite.

No entanto, a realidade é que o modelo de vetor semântico não é perfeito. As "cadeias de números" (vetores) que ele produz podem conter informações ambíguas, o que leva a resultados de pesquisa menos precisos.

Por exemplo, se você pesquisar "romã", o mecanismo de pesquisa pode retornar algo sobre "Telefone da Apple" e também pode retornar algumas informações sobre os resultados do "frutas"O resultado também pode retornar "Apple Inc." para obter informações sobre ações. Mas se o que você realmente está procurando são informações sobre "Tecnologia de cultivo de maçãs", mas pode ser inundado com outros resultados. Se adicionarmos o termo de pesquisa "plantação", ele ajudará os mecanismos de pesquisa a entender nossa intenção com mais precisão e a encontrar resultados que estejam mais alinhados com nossas necessidades.

 

Expansão de consultas com modelos grandes de IA (LLM)

Agora, temos uma ferramenta mais avançada para fazer a expansão de consultas, que é o AI Large Model (LLM).

O que é um modelo grande de IA (LLM)? Você pode pensar nisso como um "linguista" superconhecedor que foi treinado em grandes quantidades de dados de texto e adquiriu uma riqueza de conhecimentos e habilidades linguísticas.

Há várias vantagens significativas em realizar a expansão de consultas com o LLM em relação aos métodos tradicionais de expansão de consultas:

  • vasto vocabulárioLLM Veja muitas palavras e não se preocupe em encontrar os sinônimos corretos ou palavras relacionadas.
  • Tenha bom sensoO LLM pode determinar inicialmente quais palavras são relevantes para o tópico de sua pesquisa, o que os métodos tradicionais não conseguem fazer. Ele ajuda você a filtrar as extensões que não são relevantes.
  • Flexível e personalizávelVocê pode informar ao LLM quais extensões você deseja com base em uma tarefa de pesquisa específica. É como se você estivesse dando ao LLM um "comando" para dizer a ele quais resultados você deseja.

Depois de gerar extensões usando o LLM, o processo é semelhante à expansão de consulta tradicional: adicione essas palavras aos termos de pesquisa originais, use o modelo de vetor semântico para gerar um "vetor de consulta" e use esse vetor para pesquisar.

texto alternativo

Figura 2: Extensão de consulta de vetor usando LLM

 

Experiência: veja o efeito da expansão da consulta

Para verificar se a expansão de consulta assistida por LLM funciona ou não, realizamos alguns experimentos.

ambiente experimental

  • LLM: Usamos a ferramenta Gêmeos 2.0 Modelo de flash.
  • modelo vetorial: Usamos dois modelos de vetores: jina-embeddings-v3 e all-MiniLM-L6-v2.
  • conjunto de dadosUsamos alguns conjuntos de dados de teste de pesquisa disponíveis publicamente.

Métodos experimentais

Dois tipos de Prompts foram criados para orientar o LLM na geração de uma extensão. Os prompts são como instruções que você dá ao LLM para informar o tipo de resultado que você deseja.

  • Pistas comunsAplica-se a uma variedade de tarefas de pesquisa.
  • Prompts específicos da tarefaPalavras-chave projetadas para tarefas de pesquisa específicas (por exemplo, pesquisas médicas).

Também testamos diferentes números de extensões: 100, 150 e 250.

O efeito das dicas genéricas

Descobrimos que a seguinte palavra-chave genérica funcionou bem:

Please provide additional search keywords and phrases for
each of the key aspects of the following queries that make
it easier to find the relevant documents (about {size} words
per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

Esse prompt pode processar vários termos de pesquisa de uma só vez e gerar uma lista de termos expandidos para cada termo de pesquisa.

Primeiro, testamos com o modelo jina-embeddings-v3 com os seguintes resultados:

conjunto de teste palavra não expandida 100 palavras expandidas 150 palavras expandidas 250 palavras expandidas
SciFact(Mandato de verificação de fatos) 72.74 73.39 74.16 74.33
TRECCOVID(Tarefas de recuperação médica) 77.55 76.74 77.12 79.28
FiQA(Pesquisa de opções financeiras) 47.34 47.76 46.03 47.34
NFCorpus(Recuperação de informações médicas) 36.46 40.62 39.63 39.20
Touche2020(Tarefa de recuperação de argumentos) 26.24 26.91 27.15 27.54

Como você pode ver nos resultados, a expansão da consulta melhora a pesquisa na maioria dos casos.

Para verificar a eficácia da expansão da consulta em modelos diferentes, repetimos o mesmo teste com o modelo all-MiniLM-L6-v2 com os seguintes resultados:

conjunto de teste palavra não expandida 100 palavras expandidas 150 palavras expandidas 250 palavras expandidas
SciFact(Mandato de verificação de fatos) 64.51 68.72 66.27 68.50
TRECCOVID(Tarefas de recuperação médica) 47.25 67.90 70.18 69.60
FiQA(Pesquisa de opções financeiras) 36.87 33.96 32.60 31.84
NFCorpus(Recuperação de informações médicas) 31.59 33.76 33.76 33.35
Touche2020(Tarefa de recuperação de argumentos) 16.90 25.31 23.52 23.23

A partir dos resultados, é possível observar que a expansão da consulta tem uma melhoria significativa nos resultados da pesquisa, especialmente para modelos menores, como o all-MiniLM-L6-v2.

A tabela abaixo resume a elevação média para cada modelo em todas as tarefas:

modelagem 100 palavras de expansão 150 palavras de expansão 250 palavras de expansão
jina-embeddings-v3 +1.02 +0.75 +1.48
todos-MiniLM-L6-v2 +6.51 +5.84 +5.88

todos-MiniLM-L6-v2 O elevador é mais do que jina-embeddings-v3 Muito maior, provavelmente porque todos-MiniLM-L6-v2 O desempenho inicial do modelo é baixo.jina-embeddings-v3 O próprio modelo é mais capaz de entender o significado dos termos de pesquisa, portanto, a ajuda adicional que a expansão da consulta pode oferecer é mais limitada.

No entanto, esse resultado também mostra que a expansão da consulta pode melhorar significativamente os resultados de pesquisa de alguns modelos com desempenho médio, permitindo que eles tenham um bom desempenho em algumas situações.

Prompts específicos da tarefa

Descobrimos que as palavras-chave genéricas, embora geralmente eficazes, podem introduzir palavras irrelevantes que, em vez disso, reduzem a eficácia da pesquisa. Portanto, criamos palavras-chave mais específicas para duas tarefas de pesquisa específicas (verificação de fatos e recuperação de opções financeiras):

Please provide additional search keywords and phrases for
each of the key aspects of the following queries that make
it easier to find the relevant documents scientific document
that supports or rejects the scientific fact in the query
field (about {size} words per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

Os resultados experimentais mostram que essa palavra-chave mais específica melhora os resultados da pesquisa em quase todos os casos:

conjunto de teste modelagem palavra não expandida 100 palavras de expansão 150 palavras de expansão 250 palavras de expansão
SciFact jina-embeddings-v3 72.74 75.85 (+2.46) 75.07 (+0.91) 75.13 (+0.80)
SciFact todos-MiniLM-L6-v2 64.51 69.12 (+0.40) 68.10 (+1.83) 67.83 (-0.67)
FiQA jina-embeddings-v3 47.34 47.77 (+0.01) 48.20 (+1.99) 47.75 (+0.41)
FiQA todos-MiniLM-L6-v2 36.87 34.71 (+0.75) 34.68 (+2.08) 34.50 (+2.66)

Como pode ser visto na tabela acima, os resultados da pesquisa melhoraram em todas as configurações, exceto no caso de usar o modelo all-MiniLM-L6-v2 no SciFact e adicionar 250 extensões.

com relação a jina-embeddings-v3 No modelo de pesquisa, descobrimos que adicionar 100 ou 150 extensões fornece os melhores resultados; adicionar 250 extensões reduz os resultados. Isso sugere que mais extensões não são melhores e que adicionar muitos termos pode piorar os resultados da pesquisa.

 

Benefícios e desafios da expansão da consulta

vantagem

  • Pode melhorar os resultados da pesquisaExtensões de consulta permitem que os mecanismos de pesquisa entendam melhor sua intenção e encontrem informações mais relevantes e abrangentes.
  • Mais eficaz para modelos com desempenho médioA extensão de consulta pode ajudar alguns modelos com desempenho médio a tornar seus resultados de pesquisa decentes.

desafio

  • Problemas de custoO uso do LLM aumenta o tempo e o custo computacional da pesquisa. Custos adicionais são incorridos se alguns serviços LLM pagos forem usados.
  • Design de dicasO design de boas palavras-chave não é fácil e exige muita experimentação e ajuste. Além disso, diferentes LLMs, diferentes modelos de vetores e diferentes tarefas de pesquisa podem exigir diferentes palavras-chave.
  • Outros métodos de otimizaçãoSe o seu modelo vetorial tiver um desempenho ruim, provavelmente será mais econômico simplesmente mudar para um modelo melhor do que gastar tempo fazendo o dimensionamento da consulta.

 

direção futura

Embora a expansão de consultas ainda tenha alguns desafios, acreditamos que ela desempenhará um papel importante no futuro da tecnologia de pesquisa. Estamos explorando as seguintes direções:

  • Veja se a expansão da consulta pode ser usada para melhorar a representação vetorial dos documentos.
  • Explore o uso da expansão de consultas em outras técnicas de pesquisa de IA, como a reordenação.
  • Comparação entre as extensões geradas pelo LLM e os métodos tradicionais (por exemplo, dicionários de sinônimos) para gerar
  • Treinar o LLM especificamente para a tarefa de expansão da consulta.
  • Otimize o número de extensões e evite adicionar muitas palavras de uma só vez.
  • Pesquise como reconhecer boas extensões e extensões ruins.

 

 

Todo o código e os resultados experimentais são de código aberto e podem ser cercados e reproduzidos:

llm-query-expansion: https://github.com/jina-ai/llm-query-expansion/

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Expansão de consulta baseada em LLM
pt_BRPortuguês do Brasil