Revelando patrones únicos: Guía para la agregación de términos significativos en Elasticsearch

Aprende a emplear la agregación de términos significativos para descubrir información en tus datos.

¿Todavía no conoces Elasticsearch? Únete a nuestro webinar de los Primeros pasos con Elasticsearch. También puedes iniciar una prueba gratuita en el cloud o prueba Elastic en tu máquina ahora mismo.

En Elasticsearch, una agregación significativa de términos va más allá de los términos más comunes para encontrar valores estadísticamente inusuales en un conjunto de datos. Esto nos permite descubrir ideas valiosas y patrones no evidentes. Una agregación significativa de términos proporciona una respuesta con dos parámetros útiles:

  • bg_count (recuento de fondo): Número de documentos encontrados en el conjunto de datos principal
  • doc_count: Número de documentos encontrados en el conjunto de datos resultante

Por ejemplo, en un conjunto de datos de ventas de teléfonos, podemos buscar términos significativos en las ventas del iPhone 16 como este:

Luego, la respuesta nos da:

Houston no está entre las 10 principales ciudades de todo el conjunto de datos ni la ciudad principal para el iPhone 16. Sin embargo, la agregación significativa de términos mostró que el iPhone 16 se está comprando de forma desproporcionada en esta ciudad en comparación con el resto de datos. Vamos a profundizar en los números:

  • En el nivel superior:
    • doc_count: 122 — La consulta coincidió con un total de 122 documentos
    • bg_count: 424 — El conjunto de antecedentes (todos los documentos de ventas) contiene 424 documentos
  • En el grupo de Houston:
    • doc_count: 12 — Houston aparece en 12 de los 122 resultados de consulta
    • bg_count: 14 — Houston aparece en 14 de los 424 documentos totales del conjunto de datos de fondo

Esto nos indica que, de un total de 424 compras, solo 14 ocurrieron en Houston; Eso supone el 3,3% de todas las compras. Sin embargo, si solo miramos las ventas del iPhone 16, vemos que 12 de 122 ocurrieron en Houston, lo que supone un 9,8%, tres veces más que en todo el conjunto de datos; ¡Eso es significativo!

Así es como se ve eso en una visualización: ventas totales por city_region.

Podemos ver que hay 14 ventas en Houston, lo que la convierte en la 14ª ciudad con más ventas en el conjunto de datos.

Ahora, si aplicamos un filtro para mirar solo las ventas del iPhone 16, tenemos 12 ventas en Houston, lo que la convierte en la segunda ciudad con más ventas para este modelo específico:

Comprensión de la agregación de términos significativos

Según la documentación de Elastic, los términos significativos agregación:

"(Encuentra) términos que experimentaron un cambio significativo de popularidad medido entre un conjunto de primer plano y un de fondo."

Esto significa que emplea métricas estadísticas para comparar la frecuencia de un término en un subconjunto de datos (el conjunto de primer plano) con la frecuencia del mismo término en el conjunto padre de datos (el conjunto de fondo). De este modo, el puntaje refleja la significación estadística en lugar de la frecuencia con la que aparece un término en los datos.

Las principales diferencias entre una agregación de términos significativos y una agregación de términos normales son:

  • Los términos significativos comparan un subconjunto de los datos, mientras que la agregación de términos solo funciona sobre el conjunto de datos resultante de la consulta.
  • Los resultados de una agregación de términos son los más comunes en el conjunto de datos, mientras que los resultados de términos significativos ignoran los términos comunes para encontrar qué hace único el conjunto de datos.
  • Los términos significativos pueden tener un mayor impacto en el rendimiento, dado que necesitan obtener datos del disco en lugar de de la memoria, como ocurre con los términos agregación.

Aplicación práctica (análisis del comportamiento del consumidor)

Preparación de datos para el análisis

Para este análisis, generamos un conjunto de datos de ventas de teléfonos sintéticos que incluye precio, especificaciones del teléfono, demografía del comprador y opiniones. También generamos incrustaciones a partir de la retroalimentación del usuario para poder ejecutar una consulta semántica más adelante. Usamos el modelo pequeño multilingüe e5, disponible de fábrica en Elasticsearch.

Para usar este conjunto de datos en Elasticsearch:

  1. Sube el archivo CSV (descargable desde aquí) usando la función de Upload de archivos de datos de Kibana.
  2. Configura un campo semántico, como se muestra en este blog, llamado "embedding", que emplea el multilingual-e5-small model
  3. Termina la importación con los valores predeterminados del tipo de campo (palabra clave para todos los campos excepto purchase_date y user_feedback). Cerciórate de agregar el nombre del índice phone_sales_analysis para poder ejecutar las consultas que se presentan aquí tal cual.

El objetivo principal de este análisis es descubrir "¿Qué diferencia a los compradores del iPhone 16 frente a otros segmentos de la población?" y segmentar a los compradores con fines de marketing. 

Este es un documento de ejemplo del conjunto de datos:

Comprensión de los patrones demográficos

Aquí, vamos a hacer un análisis sobre la población general y compararlo con hallazgos interesantes de las agregaciones significativas de términos para usuarios de iPhone 16.

Patrones normales

Para entender los patrones normales de compra, podemos agregar datos de todos los documentos de diferentes campos. Para simplificar, nos centraremos en explorar las ocupaciones de las personas que compraron un teléfono. Podemos hacer esto con una solicitud a Elasticsearch.

Esto nos indica que las principales ocupaciones en el conjunto de datos (por número de registros) son:

Patrones de los usuarios del iPhone 16

Para entender qué diferencia la gente que compró un iPhone 16, hagamos una agregación de términos en el mismo campo con un filtro para encontrar a las personas de la consulta, así:

Así que, para los usuarios del iPhone 16, las principales ocupaciones son:

Podemos ver que los usuarios del iPhone 16 tienen patrones de ocupación diferentes en comparación con los de otros modelos de teléfono. Usemos Kibana para visualizar fácilmente los resultados:

En este gráfico, podemos ver que la tendencia del iPhone 16 es diferente a la de toda la población.

Podemos saltarnos todo este análisis para ver qué diferencia a los usuarios del iPhone 16 de la población general mediante una agregación significativa de términos:

En resumen, obtenemos esta respuesta:

Valores de las ocupaciones para el iPhone 16doc_countbg_count
occupation_distribution (nivel superior)122424
Sector Médico y Sanitario4557

La respuesta sugiere claramente que los usuarios del iPhone 16 tienen un caso poco común (¡leer, significativo!) número de personas en el ámbito médico y sanitario en comparación con la población general. Veamos qué significan los números de la respuesta:

  • En el nivel superior:
    • doc_count: 122 — La consulta coincidió con un total de 122 documentos
    • bg_count: 424 — El conjunto de antecedentes (todos los documentos de ventas) contiene 424 documentos
  • En el ámbito Médico y Sanitario:
    • doc_count: 45 — "Medical & Healthcare" aparece en 45 de los 122 resultados de consulta
    • bg_count: 57 — "Médico y Salud" aparece en 57 de los 424 documentos totales del conjunto de datos de antecedentes

De 424 compradores, 57 trabajan en el ámbito médico y sanitario — o el 13,44%. Pero cuando miramos a los compradores del iPhone 16, 45 de 122 trabajan en el ámbito médico y sanitario — eso supone el 36,88%. ¡Esto significa que tenemos el doble de probabilidades de encontrar a alguien trabajando en el ámbito médico y sanitario entre los usuarios del iPhone 16!

Podemos aplicar este mismo análisis a otros campos (edad, ubicación, rango de ingresos, etc.) para encontrar más información sobre qué hace único a los usuarios del iPhone 16. 

Segmentación del consumidor

Podemos emplear los términos agregación significativa para extraer información sobre las relaciones entre productos, categorías y segmentos de clientes. Para ello, construimos una agregación madre para la categoría que nos interesa explorar. También usamos términos significativos y una subagregación de términos normales para encontrar ideas interesantes sobre esa categoría y compararlas con lo que la mayoría de las personas en esa ocupación usan.

Por ejemplo, veamos qué prefieren las personas en algunos campos laborales:

  1. Para aclarar el análisis, limitemos nuestra búsqueda a 3 campos de trabajo: ["Administrativo y Soporte", "Tecnología y Datos", "Médico y Sanidad"]
  2. En el lado de las agregaciones, comenzamos con una agregación por ocupación
  3. Agrega una subagregación: términos por modelo de teléfono—para descubrir qué modelos están comprando los usuarios que trabajan en cada campo
  4. Agregar una segunda subagregación: términos significativos por modelos de teléfono, para encontrar qué modelos son especiales en cada campo de trabajo

Desglosemos los resultados de la agregación:

Ocupación: Administrativa y de Apoyo

Agregación de términos

Agregación de términos significativa

De esta tabla, podemos inferir que no hay diferencias significativas entre la tendencia de esta ocupación y la tendencia de toda la población

Ocupación: Tecnología y Datos

Agregación de términos

Agregación de términos significativa

Total de documentos: 424

Documentos de esta ocupación: 71

Modelo de teléfonodoc_count (este modelo en esta ocupación)bg_count (este modelo en todos los documentos)% en todos los documentos% en esta ocupación
Google Pixel 812225.19%16.90%
OnePlus 119143.30 %12.68%
OnePlus 12 Pro330.71 %4.23%
Google Pixel 8 Pro9214.95%12.68%
Nothing Phone 2581.89%7.04%
Samsung Galaxy Z Fold5461.42%5.63%
OnePlus 128204.72%11.27 %

Ocupación: Medicina y Sanidad

Agregación de términos

Agregación de términos significativa

Total de documentos: 424

Documentos en esta ocupación: 57

Modelo de teléfonodoc_count (este modelo en esta ocupación)bg_count (este modelo en todos los documentos)% en todos los documentos% en esta ocupación
iPhone 164512228.77%78.95%
iPhone 15 Pro Max3133.07 %5.26%
iPhone 157409.43%12.28%

Veamos qué historia nos cuentan estos datos:

  • Los profesionales sanitarios prefieren el iPhone 16 y suelen estar muy inclinados a usar teléfonos Apple en general.
  • Los profesionales de tecnología y datos prefieren teléfonos Android de gama alta, pero no necesariamente usan la marca Samsung. También hay una tendencia considerable para los iPhones en esta categoría.
  • Los profesionales administrativos y de soporte prefieren los teléfonos Samsung y Google, pero no tienen una tendencia fuerte y única.

La búsqueda híbrida combina la búsqueda por texto y resultados semánticos para ofrecer una experiencia de búsqueda mejorada. En este contexto, una agregación significativa de términos puede aportar información sobre los resultados de una búsqueda consciente del contexto al responder a la pregunta: ¿Qué tiene de especial este conjunto de datos en comparación con todos los documentos?Para demostrar esta característica, veamos qué modelos están sobrerrepresentados cuando los usuarios hablan de buen rendimiento:

  • Vamos a construir una consulta semántica donde encontramos la mejor retroalimentación de los usuarios más cerca de la entrada de "buen rendimiento" en comparación con la incrustación de campos
  • También usaremos una búsqueda de texto con los mismos términos sobre el campo de texto user_feedback
  • También agregaremos una consulta significativa de términos para encontrar modelos telefónicos que se encuentren con más frecuencia entre estos resultados que en el conjunto de datos completo

Veamos un ejemplo de los documentos que coinciden:

Esta es la respuesta que recibimos:

Esto nos indica que, aunque un iPhone 15 se encuentra 40 veces de un total de 424 documentos (el 9,4% de los documentos), puede encontrar 5 veces en los 20 documentos que coinciden con la búsqueda semántica de "buen rendimiento" (el 25% de los documentos). Por tanto, podemos sacar una conclusión: un iPhone 15 tiene 2,7 veces más probabilidades de encontrar cuando se habla de buen rendimiento que por casualidad.

Conclusión

Los términos significativos agregación pueden descubrir detalles únicos de un conjunto de datos comparándolo con el universo de documentos. Esto puede revelar relaciones inesperadas en nuestros datos, que van más allá del conteo de ocurrencias. Podemos aplicar términos significativos en diversos casos de uso que permiten características muy interesantes, por ejemplo:

  • Encuentra patrones al trabajar en la detección de fraude — identifica transacciones comunes de tarjetas de crédito robadas.
  • Información sobre la calidad de la marca a partir de opiniones de usuarios — detecta una marca con un número desproporcionado de malas valoraciones.
  • Documentos mal clasificados — documentos puntuales que pertenecen a una categoría (filtro de términos) que usan palabras poco comunes para la categoría en una descripción (agregación significativa de términos).

Contenido relacionado

¿Estás listo para crear experiencias de búsqueda de última generación?

No se logra una búsqueda suficientemente avanzada con los esfuerzos de uno. Elasticsearch está impulsado por científicos de datos, operaciones de ML, ingenieros y muchos más que son tan apasionados por la búsqueda como tú. Conectemos y trabajemos juntos para crear la experiencia mágica de búsqueda que te dará los resultados que deseas.

Pruébalo tú mismo