aquaservicelabs
Published in

aquaservicelabs

NLP EN ESPAÑOL: CAMINO A BERT
PARTE 1: De diccionarios a vectores.

En Aquaservice, por el servicio de entrega a domicilio de agua con dispensador o café, suelen generarse miles de gestiones diarias. Hoy contamos el paso lógico de la evolución del Procesado de Lenguaje Natural, o NLP (por sus siglas en inglés), trasladado a nuestra casuística.

CONTEXTO

Hasta hace muy poco, cada gestión podía ser leída varias veces por múltiples agentes hasta resolverse. En un intento por ayudar a aliviar la carga del departamento de atención al cliente, desde Innovación nos propusimos crear un flujo de trabajo que, mediante la detección automática de algunas gestiones, se consiguió bajar la carga de trabajo entre un 10% y un 15% de los mensajes vía APP.

En este sentido, vimos un caso práctico cuya implementación de modelos NLP podían tener cabida. Los clientes de Aquaservice pueden comunicarse con la compañía a través de varios canales, pero la vía APP nos permitía hacer un rastreo del mensaje, así como asociar el texto escrito por el cliente a una etiqueta marcada desde Atención al Cliente de forma sencilla.

Normalmente los clientes quieren hacer alguna consulta, cambiar de plan u otras gestiones que requiere del trato con una persona, pero en otras ocasiones, son mensajes dirigidos al repartidor donde les indican instrucciones de su próximo reparto:

“1 botella y una caja de minis. Reparto por la tarde”. Esta tipología de mensajes no necesitan una gestión manual, sin embargo, hasta hace un año, estaba siendo procesado desde Atención al Cliente para simplemente reenviarlo al repartidor asignado y, horas antes de realizar la entrega, tal mensaje se mostraba en la APP del repartidor.

Viendo la problemática, nos aventuramos a desarrollar un modelo de clasificación de texto que detectase a quién iba dirigido un mensaje de entrada. Atención al Cliente o al repartidor.

En este proyecto, estamos especialmente contentos porque hemos podido comprobar la evolución del campo del NLP por nosotros mismos. Cada mejora, cada hito sustancial del NLP, lo hemos podido constatar en cada iteración donde el modelo más reciente mejoraba a sus predecesores.

ESTADO DEL ARTE

NLP es el campo de la inteligencia artificial que estudia el lenguaje natural y lo codifica, para poder ser procesado y analizado por los ordenadores. Su cometido principal suele ser clasificar datos de texto.

Existen diferentes técnicas para extraer información de datos de texto sin procesar y usarla para entrenar un modelo de clasificación. En este artículo comparamos el enfoque de la vieja escuela de Bag-of-Words, TF-IDF o el popular modelo Word2Vec, junto con el uso de modelos clásicos y LSTM; hasta alcanzar los mejores resultados mediante el uso de los modelos de lenguaje de última generación. Los conocidos como modelos basados en Atención, los transformers que han revolucionado por completo el panorama de la NLP.

BOLSA DE PALABRAS

El modelo Bag-of-Words es simple y de los primeros con lo que se procesó datos no estructurados. Este modelo construye un vocabulario a partir de un conjunto de documentos y cuenta cuántas veces aparecen las palabras en cada documento.

Por ejemplo, imaginemos 3 oraciones y representémoslas con este enfoque:

“2 bidones y 4 cajas botellines. Por favor, entregar por la mañana”

“14–17 horas estaré, si no me la dejas en la puerta del piso.”

“Uno de los bidones tiene una grieta, por favor, recoger esta mañana”

Para este conjunto de tres gestiones, la codificación de “bidones”, al igual que “grieta” sería 101 pero como era de esperar, este enfoque causa un problema de dimensionalidad significativo: cuantos más documentos tenga, mayor será el vocabulario, por lo que la matriz de características será una enorme matriz dispersa. Por lo tanto, el modelo Bag-of-Words suele ir precedido de un preprocesamiento importante (eliminación de palabras vacías, limpieza de acentos, etc), destinado a reducir el problema de dimensionalidad.

La aplicación de este modelo sobre nuestro conjunto de datos nos sirvió como modelo base para saber de dónde partimos y hasta dónde queríamos llegar.

Un inconveniente de este modelo es que las palabras más comunes son las que mayor peso tienen en el corpus. Sin embargo, pueden no ser determinantes para que posteriormente un modelo prediga si un mensaje debe ir a ATC o al repartidor. Palabras como “hoy”, “quizás” o “agua” eran muy comunes pero se encontraban en ambas clases. Otras palabras como “Puerta”, “Telefonillo” o “Rellano” son menos frecuentes pero más determinantes para detectar una instrucción al repartidor.

Para abordar este problema, existe una variante avanzada de la bolsa de palabras que, en lugar de un simple conteo, tiene en cuenta la frecuencia relativa de la palabra en el texto y en el corpus.

TF-IDF

El TF-IDF es un modelo de transformación del texto a una matriz donde el valor de una palabra aumenta proporcionalmente al documento, pero es inversamente proporcional a la frecuencia de la palabra en el corpus.

De ese modo, palabras poco frecuentes pero con alto valor predictivo tienen un alto peso en esta nueva representación del vocabulario disponible.

Word2Vec

Word Embedding es el nombre colectivo de las técnicas de aprendizaje de características en las que las palabras del vocabulario se asignan a vectores de números reales. En nuestro caso, empleamos Word2Vec de Google (2013). Estos vectores se calculan a partir de la distribución de probabilidad de cada palabra que aparece antes o después de otra. Para decirlo de otra manera, las palabras del mismo contexto suelen aparecer juntas en el corpus, por lo que también estarán cerca en el espacio vectorial.

Al aplicar esta técnica, palabras como “repartidor” y “comercial” eran más próximas que “repartidor” y “servicio”. Esto nos sirvió para contextualizar nuestro vocabulario. La representación de las palabras y, por tanto, su significado/codificación depende exclusivamente de nuestro propio corpus.

Word2Vec, además de contextualizar, produce un espacio vectorial más reducido que Bag of words, pero como principal desventaja se requiere de cientos de miles de gestiones para que la codificación de cada palabra sea robusta.

LSTM Y MODELOS CLÁSICOS

Hasta el momento hemos descrito tres técnicas para transformar los textos en matrices comprensibles para los ordenadores. Una vez transformados los datos, quedaba entrenar algún modelo de clasificación para predecir si un mensaje iba dirigido al repartidor o a Atención al Cliente.

En concreto, empezamos por un SVM, seguido de un LGBM y, por último, de un LSTM. Para los dos primeros establecimos una rejilla de hiperparámetros, para determinar la estructura más óptima para entrenar. En cuanto al LSTM, decir que a diferencia de los dos anteriores, se trata de una red neuronal que tiene en cuenta la secuencia de aparición de las palabras en el mensaje. Viendo los resultados, parece que era más determinante la forma de transformar los datos que el modelo empleado:

Y cuando ya teníamos unos resultados aceptables para poner en producción bajo unos criterios que ya comentaremos en otro artículo, llegó Transformers para revolucionar las precisiones notablemente.

TRANSFORMERS

Los modelos de atención se presentaron como una solución al problema de los modelos de secuencia para comprender qué partes de un texto extenso son realmente relevantes.

Las técnicas de transfer learning aplicadas al NLP se iniciaron en 2017 con el artículo de Google Attention is All You Need y desde entonces han revolucionado el campo del NLP. La idea reside en descargarse el word embedding facilitado por grandes compañías como Google o Facebook, cuyo contexto de palabras es muy robusto, y tratar de adaptar estos modelos a tu problema particular.

El modelo que empleamos fue Multilingual BERT de Google, que combina la incorporación de contexto de distintos idiomas y varios Transformers, además de su bidireccionalidad.

Los resultados fueron bastante buenos. No solo en la precisión. También en otra métrica llamada F1, que nos preocupa cada vez que ponemos un modelo en Producción. No tiene el mismo impacto enviar un mensaje erróneamente al repartidor que a Atención al Cliente y, por ese mismo motivo, debemos evaluar cada modelo por medio de varias métricas. De todas formas, la matriz de confusión ya nos dio pistas de los posibles modelos BERT y de cuál debíamos lanzar.

Más pronto que tarde, contaremos en otro artículo cómo pusimos en producción estos modelos, así como las iteraciones de mejora y su seguimiento en un panel de monitorización de gestiones.

--

--

--

El equipo de innovación para la forma más cómoda y sostenible de beber en casa y en la oficina.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rubén Rodríguez Casañ

Rubén Rodríguez Casañ

Físico y científico de datos. Trabajo en Aquaservice como analista de datos.

More from Medium

Extracting Information from Historical Genealogical Documents

How to create a domain-specific NLP corpus from the Wikipedia using Julia

Catch Me If You Can — Getting the True Meaning out of Big Cloud of Texts

Generating handwritten text with an AI model

text generator training