Revelando padrões únicos: um guia para agregação de termos relevantes no Elasticsearch.

Aprenda a usar o importante termo "agregação" para descobrir insights em seus dados.

Novo no Elasticsearch? Participe do nosso webinar Introdução ao Elasticsearch. Você também pode iniciar um teste gratuito na nuvem do Elastic ou experimentar o Elastic em sua máquina agora.

No Elasticsearch, a agregação de termos significativos vai além dos termos mais comuns para encontrar valores estatisticamente incomuns em um conjunto de dados. Isso nos permite descobrir informações valiosas e padrões não óbvios. Uma agregação de termos significativos fornece uma resposta com dois parâmetros úteis:

  • bg_count (contagem de fundo): Número de documentos encontrados no conjunto de dados original
  • doc_count: Número de documentos encontrados no conjunto de dados resultante.

Por exemplo, em um conjunto de dados de vendas de telefones celulares, podemos procurar termos significativos nas vendas do iPhone 16, como este:

Então, a resposta nos dá:

Houston não está entre as 10 principais cidades em todo o conjunto de dados, nem é a principal cidade para o iPhone 16. No entanto, a análise de agregação de termos relevantes mostrou que o iPhone 16 está sendo comprado de forma desproporcional nesta cidade em comparação com o restante dos dados. Vamos analisar os números mais detalhadamente:

  • No nível mais alto:
    • doc_count: 122 — A consulta encontrou um total de 122 documentos.
    • bg_count: 424 — O conjunto de fundo (todos os documentos de vendas) contém 424 documentos.
  • Na cesta de Houston:
    • doc_count: 12 — Houston aparece em 12 dos 122 resultados da consulta
    • contagem_de_fundo: 14 — Houston aparece em 14 dos 424 documentos totais no conjunto de dados de fundo.

Isso nos indica que, de um total de 424 compras, apenas 14 ocorreram em Houston; ou seja, 3,3% do total de compras. No entanto, se analisarmos apenas as vendas do iPhone 16, veremos que 12 das 122 unidades foram vendidas em Houston, o que representa 9,8%, três vezes mais do que em todo o conjunto de dados; isso é significativo!

Veja como isso se apresenta em uma visualização: Total de vendas por cidade/região.

Podemos ver que houve 14 vendas em Houston, o que a torna a 14ª cidade com maior número de vendas no conjunto de dados.

Agora, se aplicarmos um filtro para analisar apenas as vendas do iPhone 16, temos 12 vendas em Houston, tornando-a a segunda cidade com o maior número de vendas desse modelo específico:

Compreendendo os termos significativos de agregação

De acordo com a documentação da Elastic, os termos significativos de agregação são:

"(Encontra) termos que sofreram uma mudança significativa na popularidade, medida entre um conjunto de primeiro plano e um conjunto de segundo plano."

Isso significa que utiliza métricas estatísticas para comparar a frequência de um termo em um subconjunto de dados (o conjunto de primeiro plano) com a frequência do mesmo termo no conjunto de dados principal (o conjunto de fundo). Dessa forma, a pontuação reflete a significância estatística em vez da frequência com que um termo aparece nos dados.

As principais diferenças entre uma agregação de termos significativos e uma agregação de termos normais são:

  • A comparação de termos significativos analisa um subconjunto dos dados, enquanto a agregação de termos funciona apenas com o conjunto de dados resultante da consulta.
  • Os resultados da agregação de termos mostram os termos mais comuns no conjunto de dados, enquanto os resultados da análise de termos significativos ignoram os termos comuns para encontrar o que torna o conjunto de dados único.
  • Termos significativos podem ter um impacto maior no desempenho, visto que precisam obter dados do disco em vez da memória, como faz a agregação de termos.

Aplicação prática (análise do comportamento do consumidor)

Preparando os dados para a análise.

Para esta análise, geramos um conjunto de dados sintéticos de vendas de telefones celulares, incluindo preço, especificações do aparelho, dados demográficos do comprador e avaliações. Também geramos embeddings a partir do feedback do usuário para podermos executar uma consulta semântica posteriormente. Utilizamos o modelo multilíngue e5 small, disponível imediatamente no Elasticsearch.

Para usar este conjunto de dados no Elasticsearch:

  1. Faça o upload do arquivo CSV (disponível para download aqui) usando o recurso "Carregar arquivos de dados" do Kibana.
  2. Configure um campo semântico, como mostrado neste blog, chamado "embedding", que utiliza o multilingual-e5-small model
  3. Finalize a importação com os valores padrão do tipo de campo (palavra-chave para todos os campos, exceto purchase_date e user_feedback). Certifique-se de adicionar o nome do índice phone_sales_analysis para poder executar as consultas apresentadas aqui como estão.

O principal objetivo desta análise é descobrir "O que diferencia os compradores do iPhone 16 de outros segmentos da população? " e obter uma segmentação desses compradores para fins de marketing. 

Este é um documento de exemplo do conjunto de dados:

Compreendendo os padrões demográficos

Aqui, vamos realizar uma análise na população em geral e compará-la com descobertas interessantes das agregações de termos significativos para usuários do iPhone 16.

Padrões normais

Para entender os padrões normais de compra, podemos agregar dados de todos os documentos em diferentes áreas. Para simplificar, vamos nos concentrar em explorar as ocupações das pessoas que compraram um telefone. Podemos fazer isso com uma solicitação ao Elasticsearch.

Isso nos indica que as principais ocupações no conjunto de dados (por número de registros) são:

Padrões de usuários do iPhone 16

Para entender o que diferencia as pessoas que compraram um iPhone 16, vamos executar uma agregação de termos no mesmo campo com um filtro para encontrar essas pessoas na consulta, assim:

Assim, para os usuários do iPhone 16, as principais funções são:

Podemos observar que os usuários do iPhone 16 apresentam padrões de ocupação diferentes em comparação com os usuários de outros modelos de telefone. Vamos usar o Kibana para visualizar os resultados com facilidade:

Neste gráfico, podemos ver que a tendência do iPhone 16 é diferente da tendência da população em geral.

Podemos pular toda essa análise e ver o que diferencia os usuários do iPhone 16 da população em geral, executando uma agregação de termos significativos:

Resumindo, obtemos esta resposta:

Valores das ocupações para o iPhone 16contagem de documentoscontagem de fundo
distribuição_de_ocupações (nível superior)122424
Categoria Médica e de Saúde4557

A resposta sugere claramente que os usuários do iPhone 16 têm uma característica incomum (leia-se significativa!). Número de pessoas na área médica e de saúde em comparação com a população em geral. Vamos analisar o que os números na resposta significam:

  • No nível mais alto:
    • doc_count: 122 — A consulta encontrou um total de 122 documentos.
    • bg_count: 424 — O conjunto de fundo (todos os documentos de vendas) contém 424 documentos.
  • Na categoria Medicina e Saúde:
    • doc_count: 45 — "Medicina e Saúde" aparece em 45 dos 122 resultados da consulta
    • bg_count: 57 — "Medical & Healthcare" aparece em 57 dos 424 documentos totais no conjunto de dados de fundo.

Dos 424 compradores, 57 trabalham na área médica e de saúde — ou seja, 13,44%. Mas quando analisamos os compradores do iPhone 16, 45 de 122 trabalham na área médica e de saúde — ou seja, 36,88%. Isso significa que temos o dobro de probabilidade de encontrar alguém que trabalhe na área médica e de saúde entre os usuários do iPhone 16!

Podemos aplicar essa mesma análise a outros campos (idade, localização, faixa de renda, etc.) para encontrar mais informações sobre o que torna os usuários do iPhone 16 únicos. 

Segmentação de consumidores

Podemos usar o conceito de agregação para extrair informações sobre as relações entre produtos, categorias e segmentos de clientes. Para isso, construímos uma agregação principal para a categoria que temos interesse em explorar. Também utilizamos uma subagregação de termos significativos e uma subagregação de termos normais para encontrar informações interessantes sobre essa categoria e compará-las com o que a maioria das pessoas nessa profissão utiliza.

Por exemplo, vejamos o que as pessoas em algumas áreas de trabalho preferem:

  1. Para tornar a análise mais clara, vamos limitar nossa busca a 3 áreas de atuação: ["Administrativo e Suporte", "Tecnologia e Dados", "Médico e Saúde"]
  2. No que diz respeito às agregações, começamos com uma agregação de termos por ocupação.
  3. Adicione uma subagregação: termos por modelo de telefone — para descobrir quais modelos os usuários que trabalham em cada área estão comprando.
  4. Adicione uma segunda subagregação: termos significativos por modelos telefônicos — para descobrir quais modelos são específicos em cada área de atuação.

Vamos analisar os resultados da agregação:

Ocupação: Administrativo e de Apoio

Agregação de termos

Agregação de termos significativos

A partir desta tabela, podemos inferir que não existem diferenças significativas entre a tendência para esta ocupação e a tendência para toda a população.

Área de atuação: Tecnologia e Dados

Agregação de termos

Agregação de termos significativos

Total de documentos: 424

Documentos nesta ocupação: 71

modelo de telefonecontagem de documentos (este modelo nesta ocupação)contagem de fundo (este modelo em todos os documentos)% em todos os documentos% nesta ocupação
Google Pixel 812225,19%16,90%
OnePlus 119143,30%12,68%
OnePlus 12 Pro330,71%4,23%
Google Pixel 8 Pro9214,95%12,68%
Nada Telefone 2581,89%7,04%
Samsung Galaxy Z Fold5461,42%5,63%
OnePlus 128204,72%11,27%

Área de atuação: Medicina e Saúde

Agregação de termos

Agregação de termos significativos

Total de documentos: 424

Documentos nesta ocupação: 57

modelo de telefonecontagem de documentos (este modelo nesta ocupação)contagem de fundo (este modelo em todos os documentos)% em todos os documentos% nesta ocupação
iPhone 164512228,77%78,95%
iPhone 15 Pro Max3133,07%5,26%
iPhone 157409,43%12,28%

Vejamos o que esses dados nos contam:

  • Profissionais da área médica e de saúde preferem o iPhone 16 e, de modo geral, são muito inclinados a usar telefones da Apple.
  • Profissionais de tecnologia e dados preferem celulares Android de última geração, mas não necessariamente usam a marca Samsung. Existe também uma tendência considerável para iPhones nesta categoria.
  • Profissionais administrativos e de suporte preferem celulares Samsung e Google, mas não há uma tendência forte e única entre eles.

A busca híbrida combina a busca por texto com resultados semânticos para proporcionar uma experiência de busca aprimorada. Nesse contexto, uma agregação de termos significativa pode fornecer insights sobre os resultados de uma busca contextualizada, respondendo à pergunta: O que torna este conjunto de dados especial em comparação com todos os outros documentos?Para demonstrar essa funcionalidade, vejamos quais modelos são mais frequentes quando os usuários mencionam um bom desempenho:

  • Vamos construir uma consulta semântica onde encontramos o feedback de usuário mais relevante para a entrada "bom desempenho" no campo de incorporação.
  • Também utilizaremos uma pesquisa de texto com os mesmos termos no campo de texto user_feedback.
  • Também adicionaremos uma consulta de termos relevantes para encontrar modelos de telefone que sejam mais frequentes nesses resultados do que no conjunto de dados completo.

Vejamos um exemplo dos documentos correspondentes:

Esta é a resposta que recebemos:

Isso nos mostra que, embora o iPhone 15 seja encontrado 40 vezes em um total de 424 documentos (9,4% dos documentos), ele aparece 5 vezes nos 20 documentos que corresponderam à busca semântica "bom desempenho" (25% dos documentos). Assim, podemos concluir que: a probabilidade de um iPhone 15 ser mencionado como tendo um bom desempenho é 2,7 vezes maior do que por acaso.

Conclusão

A agregação de termos relevantes pode revelar detalhes únicos de um conjunto de dados, comparando-o com o universo de documentos. Isso pode revelar relações inesperadas em nossos dados, indo além da contagem de ocorrências. Podemos aplicar termos significativos em diversos casos de uso que possibilitam funcionalidades muito interessantes, por exemplo:

  • Ao trabalhar na detecção de fraudes, procure padrões — identifique transações comuns em cartões de crédito roubados.
  • Análises da qualidade da marca a partir de avaliações de usuários — identifique uma marca com um número desproporcional de avaliações negativas.
  • Identificar documentos classificados incorretamente — identificar documentos que pertencem a uma categoria (filtro de termos) e que usam palavras incomuns para essa categoria em sua descrição (agregação de termos relevantes).

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)