HDBScan clustering and BERT for Topic Modeling

NaturalTech
9 min readMar 30, 2021

La gestión de reclamos de una empresa no es simplemente un proceso donde se deben proporcionar respuestas a las quejas del cliente, sino que también puede ayudar a avanzar hacia mejoras que conducen a la reducción de costos, optimización de otros procesos internos y mayor satisfacción o confianza del cliente. A continuación, se describen técnicas de procesamiento del lenguaje natural (NLP) y de aprendizaje automático (ML) aplicadas a la generación de tópicos para extraer insights que permitan entender y encontrar información valiosa de la dinámica de los reclamos realizados por clientes en una empresa de turismo a través del tiempo. Específicamente, se seleccionan reclamos en dos períodos diferentes, se pre-procesan sus textos para transformarlos en embeddings de documentos los cuales, luego de reducir sus dimensiones, se utilizan para formar clústeres de reclamos semánticamente similares y extraer de cada uno ellos el contexto de los mensajes que los componen. La idea es contrastar ambas ventanas de tiempo para evaluar si aparecen desvíos o nuevos patrones en los tipos de reclamos. Al aplicar este procedimiento, algunos tópicos obtenidos de los clústeres representaron zonas geográficas (Brasil, México, Nueva York, etc.), mientras que el resto se relacionó con problemas más específicos vinculados a la cancelación o demora de un viaje (por ejemplo, concernientes a la reserva de hotel, alquiler de auto, pandemia, etc.). Al comparar ambos intervalos de tiempo se observó una disminución de determinadas quejas de un período a otro o viceversa.

1. Introducción

El acelerado avance de los servicios tecnológicos impulsados por Internet otorga a los clientes más poder que nunca. Cuando tienen una experiencia positiva como consumidores la compartirán con amigos, familiares y diferentes contactos lo cual supone un beneficio para cualquier empresa ya que obtienen publicidad a su favor sin ningún costo. En cambio, cuando hay un problema con un producto o servicio prestado, los clientes se quejan. En este punto, escuchar estos problemas directamente de los clientes y gestionarlos a tiempo permite, por un lado, sostener la fidelidad con los clientes perjudicados y, por otro, evitar inconvenientes mayores que pueden incluso derivar en acciones legales. Además, el entendimiento de estos problemas permite a cualquier empresa anticipar futuros percances y ajustar procedimientos de trabajo internos.

Una empresa pequeña puede atender los reclamos que ingresan directamente con uno o varios operadores que se encarguen de clasificarlos y derivarlos a las áreas de la empresa competentes para brindar una respuesta adecuada. Pero cuando el nivel de reclamos crece, la disposición de mayores recursos humanos puede resultar un proceso muy costoso; tal vez, a este nivel es conveniente implementar sistemas automatizados más complejos.

Pensemos en una empresa grande de turismo, las cancelaciones o postergaciones de los viajes, o reservas de hoteles, durante el comienzo de la pandemia activaron una importante cantidad de reclamos concentrados en estas acciones. Ahora bien, meses después a medida que los vuelos se fueron habilitando surgen preguntas como:

· ¿Los reclamos mantienen el mismo patrón (muchas quejas por cancelación de viajes o reservas de hotel, etc.)?

· ¿Hay algún tipo de reclamo que este aumentando sobre otros?

· ¿Con qué frecuencia surgen las quejas que tienen un contexto similar?

· ¿La “normalización” de algunos servicios (por ejemplo, la habilitación de vuelos) anticipa el incremento de algún otro tipo de reclamo?

Responder esas preguntas puede ayudar a tomar acciones preventivas para mejorar el servicio al cliente y ahorrar tiempo o recursos destinados a solucionar los reclamos. Por ejemplo, si la empresa comienza a detectar una tendencia en ciertas quejas, mientras se pone a trabajar en las medidas correctivas necesarias puede advertir a otros clientes que todavía no fueron afectados con un email que explique, en detalle, cómo lo va a resolver si también es afectado.

El modelado de temas es una técnica no supervisada utilizada en procesamiento del lenguaje natural (NLP) orientada al descubrimiento de estructuras semánticas ocultas en un cuerpo de textos. Es decir, busca temas frecuentes en un conjunto de documentos.

Existen Métodos clásicos para el análisis de tópicos como “Latent Dirichlet allocation” (LDA) y “Non-negative Matrix Factorization“ (NMF) que han demostrado ser una buena base de trabajo. Actualmente, avances en el campo de Deep Learning (DL) brindan nuevas opciones de modelado, se pueden destacar los proyectos Top2Vec [https://github.com/ddangelov/Top2Vec] y Bertopic [https://maartengr.github.io/BERTopic/]. Ambos utilizan incrustaciones de documentos para agrupar textos semánticamente similares; luego, en los clústeres formados intentan extraer el contexto de los integrantes para definir tópicos. Por ejemplo, Bertopic junta todos los documentos de un grupo y captura de ellos las frases más relevantes empleando la medida TF-IDF (Frecuencia de término — frecuencia inversa). Dichas frases se consideran temas subyacentes en los clústeres.

En línea con los métodos modernos de modelado de tópicos Natural Tech https://natural.do desarrolló una herramienta que aprovecha la potencia de los modelos Transformers y el enfoque de “term frequency-inverse document frequency” (TF-IDF) para crear grupos densos de textos de reclamos de una empresa turística donde se extraen temas latentes. El dashboard está construido para comparar distintos rangos de fechas con el objetivo de detectar desvíos en el comportamiento de los clientes en el tiempo. Por ejemplo, se podría usar para evaluar si los tipos reclamos en el último periodo de 2020 son los mismos a los realizados por los clientes en el primer trimestre de 2021 o, contrariamente, se observa un cambio de tendencia en el argumento de éstos.

2. Embeddings

2.1. Words Embeddings

Word embedding (traducido a “incrustación de palabra”) es el nombre de un conjunto de lenguajes de modelado y técnicas de aprendizaje en procesamiento del lenguaje natural (NLP) en dónde las palabras o frases son representadas como vectores de números reales [https://es.wikipedia.org/wiki/Word_embedding]. Los vectores obtenidos tienen una longitud fija predefinida y son representaciones distribuidas, o sea, se componen de valores continuos; por ejemplo, las incrustaciones de tamaño 3 para las siguientes palabras podrían quedar como:

· “Argentina”: [0.1, 0.2, 0.02],

· “Brasil”: [0.1, 0.15, 0.78]

Tradicionalmente se utilizaba codificación en caliente para convertir palabras a valores numéricos:

· “Argentina”: [1, 0, 0],

· “Brasil”: [0, 1, 0]

El problema de la codificación en caliente es el tamaño del vector cuando se trabaja con un gran vocabulario de palabras. Por otro lado, las representaciones distribuidas tienen la capacidad de aprender relaciones semánticas entre palabras lo que permite contextualizar su significado.

Word Embedding: Basics

[https://medium.com/@hari4om/word-embedding-d816f643140]

Algunas técnicas populares de incrustación de palabras son Word2Vec [https://arxiv.org/abs/1301.3781], GloVe [https://nlp.stanford.edu/projects/glove/], ELMo [https://allennlp.org/elmo], FastText [https://fasttext.cc/], etc.

2.2. Documents embeddings

Cuando se tratan documentos extensos, usar un embedding por palabra no es muy práctico ya que no se establece una interrelación entre las palabras más allá de su similitud semántica y, por lo tanto, se pierde contexto a nivel del mensaje. Entonces, como resulta difícil comparar dos textos completos considerando únicamente las palabras individuales que los componen aparecen los métodos conocidos como “Document or Sentence Embedding” (traducido a “incrustaciones de documentos u oraciones”); entre ellos se pueden destacar Doc2Vec [https://cs.stanford.edu/~quocle/paragraph_vector.pdf], SentenceBERT [https://arxiv.org/abs/1908.10084], InferSent [https://github.com/facebookresearch/InferSent] y Universal Sentence Encoder [https://arxiv.org/abs/1803.11175]. Estas técnicas consiguen, a diferencia de Word Embedding, representar en vectores numéricos oraciones completas (no solo palabras) a partir de los cuales se pueden extraer el contexto de las frases, su intención y otros matices que ayudan a los modelos de procesamiento del lenguaje natural a comprender nuestro idioma.

Particularmente SentenceBERT ha adquirido gran reputación en la actualidad (2021) por su performance en pruebas de similitud semántica de textos. De manera general, toma modelos transformers pre-entrenados (por ejemplo, BERT y RoBERTa) e incorpora una operación de agrupamiento (“pooling”) a la salida de estos modelos que devuelve una incrustación de oraciones o documentos de tamaño fijo; por defecto dicha agrupación se realiza promediando los vectores de salida, no obstante, existen otros criterios. Adicionalmente, para ajustar BERT o RoBERTa (“fine-tuning”) utiliza una arquitectura de red siamesa para actualizar los pesos (calculados durante el pre-entrenamiento) de tal manera que las incrustaciones de oraciones producidas sean semánticamente significativas y puedan compararse con la similitud coseno [https://arxiv.org/abs/1908.10084].

3. Agrupamiento de representaciones vectoriales de documentos

Las incrustaciones de oraciones permiten a cualquier método de clustering agrupar documentos que presentan un argumento similar. Por ejemplo, si se utiliza SentenceBERT cada texto (conjunto de oraciones que componen un documento) se representa con un vector de largo 512. Ahora bien, los algoritmos de agrupamiento pueden sentirse más cómodos si se los alimenta con vectores de menor longitud, incluso el proceso es más rápido especialmente cuando se trabaja con un corpus de gran tamaño. Por supuesto, al reducir la dimensión de las representaciones se debe tener cuenta que se pierde algo de información.

Las técnicas más reconocidas de reducción de dimensionalidad son PCA, TSNE y UMAP. Cada una tiene sus ventajas y desventajas, pero UMAP se destaca por su rendimiento y escalabilidad [https://umap-learn.readthedocs.io/en/latest/performance.html].

3.1. Algoritmo HDBSCAN

Algoritmos de agrupamiento populares como K-means requieren establecer previamente el número de clústeres en los cuales se van a ubicar todos los datos del corpus analizado. Esto se vuelve un condicionante en la búsqueda de temas latentes porque se podrían perder tópicos de interés. Asimismo, no admite ruido en los datos, es decir, asume que todos los datos pertenecen obligatoriamente a un clúster lo cual puede derivar en grupos bastantes heterogéneos de documentos desde el punto de vista del contexto de ellos. Por estos motivos y otras características en el modelado de temas se prefiere utilizar algoritmos como DBSCAN o HDBSCAN.

DBSCAN vs. K-means

[https://github.com/NSHipster/DBSCAN]

HDBSCAN o “Hierarchical Density-Based Spatial Clustering of Applications with Noise” (traducido “Agrupación Espacial Jerárquica Basada en Densidad de Aplicaciones con Ruido”) es un algoritmo de agrupamiento desarrollado por Campello, Moulavi y Sander [https://link.springer.com/chapter/10.1007%2F978-3-642-37456-2_14]. Utiliza un enfoque basado en la densidad que hace pocas suposiciones implícitas sobre los clústeres. Es un método no paramétrico que busca una jerarquía de conglomerados formada por los modos multivariados de la distribución subyacente. En lugar de buscar grupos con una forma particular, busca regiones de datos que sean más densas que el espacio circundante [https://towardsdatascience.com/understanding-hdbscan-and-density-based-clustering-121dbee1320e].

A diferencia de K-means, HDBSCAN no obliga a los puntos de datos a pertenecer a un clúster y puede considerarlos como valores atípicos o ruido. Esto favorece la extracción de temas subyacentes porque los argumentos de los mensajes que pertenecen a un grupo son más homogéneos y más fácil de identificar.

[https://hdbscan.readthedocs.io/en/latest/comparing_clustering_algorithms.html#k-means]

4. Extracción de tópicos

Representando los documentos de un corpus con embeddings, mediante técnicas de clustering se pueden juntar los que tienen un contenido semánticamente similar. El desafío en este caso es conocer cuáles son los temas ocultos que definen la conformación de cada grupo. Por ejemplo, el proyecto Bertopic utiliza una estrategia de extracción de temas denominada c-TF-IDF o “TF-IDF basada en clases” que permite identificar que hace a cada grupo único respecto del resto. En esencia, se crea un nuevo y único documento por clase (se juntan todos los datos de cada grupo en un solo texto), luego se aplica TF-IDF como se hace tradicionalmente con cualquier conjunto de documentos, y se obtienen las palabras más relevantes en cada uno de ellos (clústeres).

TF-IDF basado en clases uniendo documentos dentro de una clase. [https://towardsdatascience.com/topic-modeling-with-bert-779f7db187e6]

La frecuencia de cada palabra t para cada clase (clúster) i se divide por el número total de palabras w; esta acción se puede ver como una forma de regularización de palabras frecuentes en la clase. A continuación, el número total de documentos (clústeres) m se divide por la frecuencia total de la palabra t en todas las clases n. De esta forma, se calcula un valor de importancia para las palabras de cada clúster. así, se podrían tomar las 10 palabras más relevantes de cada categoría para etiquetarla, en otras palabras, para definir un tópico.

--

--

NaturalTech

NaturalTech is a technology company with a specific goal: make computers understand natural language the way native speakers do.