Geração de filtros e facetas usando aprendizado de máquina.

Explorando as vantagens e desvantagens de automatizar a criação de filtros e facetas em uma experiência de busca usando modelos de aprendizado de máquina versus a abordagem clássica de codificação fixa.

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.

Filtros e facetas são mecanismos usados para refinar os resultados da pesquisa, ajudando os usuários a encontrar conteúdo ou produtos relevantes mais rapidamente. Na abordagem clássica, as regras são definidas manualmente. Por exemplo, em um catálogo de filmes, atributos como gênero são predefinidos para uso em filtros e facetas. Por outro lado, com modelos de IA, novos atributos podem ser extraídos automaticamente das características dos filmes, tornando o processo mais dinâmico e personalizado. Neste blog, exploramos as vantagens e desvantagens de cada método, destacando suas aplicações e desafios.

Filtros e facetas

Antes de começarmos, vamos definir o que são filtros e facetas. Os filtros são atributos predefinidos usados para restringir um conjunto de resultados. Em um mercado online, por exemplo, os filtros estão disponíveis mesmo antes de uma busca ser realizada. O usuário pode selecionar uma categoria, como "Videogames", antes de pesquisar por "PS5", refinando a busca para um subconjunto mais específico em vez de toda a base de dados. Isso aumenta significativamente as chances de se obter resultados mais relevantes.

Os facets funcionam de forma semelhante aos filtros, mas só ficam disponíveis após a realização da pesquisa. Em outras palavras, a pesquisa retorna resultados e, com base neles, é gerada uma nova lista de opções de refinamento. Por exemplo, ao pesquisar um console PS5, características como capacidade de armazenamento, custo de envio e cor podem ser exibidas para ajudar os usuários a escolher o produto ideal.

Agora que definimos filtros e facetas, vamos discutir o impacto das abordagens clássicas e baseadas em Aprendizado de Máquina (ML) em sua implementação e uso. Cada método possui vantagens e desafios que influenciam a eficiência da busca.

abordagem clássica

Nessa abordagem, os filtros e as facetas são definidos manualmente com base em regras predefinidas. Isso significa que os atributos disponíveis para refinar a busca são fixos e planejados antecipadamente, levando em consideração a estrutura do catálogo e as necessidades do usuário.

Por exemplo, em um marketplace, categorias como "Eletrônicos" ou "Moda" podem ter filtros específicos como marca, formato e faixa de preço. Essas regras são criadas estaticamente, garantindo consistência na experiência de busca, mas exigindo ajustes manuais sempre que novos produtos ou categorias surgirem.

Embora essa abordagem proporcione previsibilidade e controle sobre os filtros e facetas exibidos, ela pode ser limitada quando surgem novas tendências que exigem refinamento dinâmico.

Prós:

  • Previsibilidade e controle: Como os filtros e as facetas são definidos manualmente, o gerenciamento torna-se mais fácil.
  • Baixa complexidade: Não há necessidade de treinar modelos.
  • Facilidade de manutenção: Como as regras são predefinidas, ajustes e correções podem ser feitos rapidamente.

Contras:

  • Reindexação necessária para novos filtros: Sempre que um novo atributo precisar ser usado como filtro, todo o conjunto de dados deverá ser reindexado para garantir que os documentos contenham essa informação.
  • Falta de adaptação dinâmica: os filtros são estáticos e não se ajustam automaticamente às mudanças no comportamento do usuário.

Implementação de filtros/facetas – Abordagem clássica

Nas Ferramentas de Desenvolvimento, Kibana, criaremos uma demonstração de filtros/facetas usando a abordagem clássica.

Primeiro, definimos o mapeamento para estruturar o índice:

Os campos de marca e armazenamento são definidos como palavras-chave, permitindo que sejam usados diretamente em agregações (facetas). O campo de preço é do tipo float, permitindo a criação de intervalos de preço.

Na próxima etapa, os dados do produto serão indexados:

Agora, vamos recuperar as características clássicas agrupando os resultados por marca, armazenamento e faixa de preço. Na consulta, foi definido o tamanho:0. Nesse cenário, o objetivo é recuperar apenas os resultados da agregação, sem incluir os documentos correspondentes à consulta.

A resposta incluirá contagens para Marca, Armazenamento e Preço, ajudando a criar filtros e segmentações.

Abordagem baseada em aprendizado de máquina/IA

Nessa abordagem, modelos de Aprendizado de Máquina (ML), incluindo técnicas de Inteligência Artificial (IA), analisam atributos de dados para gerar filtros e facetas relevantes. Em vez de depender de regras predefinidas, o aprendizado de máquina/inteligência artificial aproveita as características dos dados indexados. Isso possibilita a descoberta dinâmica de novas facetas e filtros.

Prós:

  • Atualizações automáticas: Novos filtros e facetas são gerados automaticamente, sem a necessidade de ajustes manuais.
  • Descoberta de novos atributos: Pode identificar características de dados anteriormente não consideradas como filtros, enriquecendo a experiência de busca.
  • Redução do esforço manual: a equipe não precisa definir e atualizar constantemente as regras de filtragem, pois a IA aprende com os dados disponíveis.

Contras:

  • Complexidade de manutenção: O uso de modelos pode exigir pré-validação para garantir a consistência dos filtros gerados.
  • Requer experiência em aprendizado de máquina e inteligência artificial: A solução exige profissionais qualificados para ajustar e monitorar o desempenho do modelo.
  • Risco de filtros irrelevantes: Se o modelo não estiver bem calibrado, poderá gerar facetas que não sejam úteis para os usuários.
  • Custo: O uso de aprendizado de máquina e inteligência artificial pode exigir serviços de terceiros, aumentando os custos operacionais.

Vale ressaltar que, mesmo com um modelo bem calibrado e um prompt bem elaborado, as facetas geradas ainda devem passar por uma etapa de revisão. Essa validação pode ser manual ou baseada em regras de moderação, garantindo que o conteúdo seja apropriado e seguro. Embora não seja necessariamente uma desvantagem, é importante considerar a qualidade e a adequação dos recursos antes que sejam disponibilizados aos usuários.

Implementação de filtros/facetas – abordagem de IA

Nesta demonstração, utilizaremos um modelo de IA para analisar automaticamente as características do produto e sugerir atributos relevantes. Com um prompt bem estruturado, extraímos informações do catálogo e as transformamos em filtros e facetas. A seguir, apresentamos cada etapa do processo.

Inicialmente, usaremos a API de Inferência para registrar um endpoint para integração com um serviço de aprendizado de máquina. Abaixo, segue um exemplo de integração com o serviço da OpenAI.

Agora, definimos o pipeline para executar o prompt e obter os novos filtros gerados pelo modelo.

Executando uma simulação desse pipeline para o produto "PlayStation 5", com a seguinte descrição:

Jogabilidade impressionante: Maravilhe-se com gráficos deslumbrantes e experimente os recursos do novo PS5.

Imersão de tirar o fôlego: Descubra uma experiência de jogo mais profunda com suporte para feedback tátil, gatilhos adaptáveis e tecnologia de áudio 3D.

Design fino: Com o PS5 Digital Edition, os jogadores têm acesso a uma poderosa tecnologia de jogos em um design elegante e compacto.

1 TB de armazenamento: Tenha seus jogos favoritos prontos para jogar com 1 TB de armazenamento SSD integrado.

Compatibilidade com versões anteriores e Game Boost: O console PS5 pode rodar mais de 4.000 jogos de PS4. Com o Game Boost, você pode desfrutar de taxas de quadros mais rápidas e suaves até mesmo em alguns dos melhores jogos para PS4.

Vamos observar a saída de comando gerada por esta simulação.

Agora, um novo campo, dynamic_facets, será adicionado ao novo índice para armazenar as facetas geradas pela IA.

Utilizando a API Reindex, vamos reindexar o índice de videogames para videogames_1, aplicando o pipeline generate_filter_ai durante o processo. Este pipeline irá gerar automaticamente facetas dinâmicas durante a indexação.

Agora, vamos executar uma pesquisa e obter os novos filtros:

Resultados:

Para simbolizar a implementação das facetas, segue abaixo um exemplo simples de interface:

O código da interface do usuário apresentado está aqui.

Conclusão

Ambas as abordagens para a criação de filtros e facetas têm seus benefícios e pontos de atenção. A abordagem clássica, baseada em regras manuais, oferece controle e custos mais baixos, mas requer atualizações constantes e não se adapta dinamicamente a novos produtos ou recursos.

Por outro lado, a abordagem baseada em IA e Aprendizado de Máquina automatiza a extração de facetas, tornando a busca mais flexível e permitindo a descoberta de novos atributos sem intervenção manual. No entanto, essa abordagem pode ser mais complexa de implementar e manter, exigindo calibração para garantir resultados consistentes.

A escolha entre as abordagens clássicas e as baseadas em IA depende das necessidades e da complexidade do negócio. Para cenários mais simples, onde os atributos dos dados são estáveis e previsíveis, a abordagem clássica pode ser mais eficiente e fácil de manter, evitando custos desnecessários com infraestrutura e modelos de IA. Por outro lado, o uso de aprendizado de máquina/inteligência artificial para extrair facetas pode agregar valor significativo, melhorando a experiência de busca e tornando a filtragem mais inteligente.

O importante é avaliar se a automação justifica o investimento ou se uma solução mais tradicional já atende às necessidades do negócio de forma eficaz.

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)