Nuestro Blog

“Aplicación práctica del Deep Learning al Marketing Digital: análisis y desambiguación de conversaciones digitales”. Por Jaime Martel y Enrique Pérez Montero

El análisis de conversaciones procedentes de la web (tweets, posts en facebook, blogs,etc.) es un recursos primordial para entender a los usuarios y clientes: ¿de qué hablan?, ¿cuál es el sentimiento respecto a la marca?, ¿quiénes son los que más hablan?, ¿qué efecto tiene la conversación que la marca genera?, etcétera.

Deep Learning_Marcas que implican desambiguación en conversaciones_ITELLIGENTUno de los recursos más utilizado para capturar esta conversación es la utilización de términos de búsqueda sobre la web o sobre redes sociales, como por ejemplo: realizar búsquedas del termino “Mapfre” para capturar la conversación en Twitter sobre dicha empresa. Un problema habitual de la conversación captada mediante términos de búsqueda es la captura de conversación no relevante o “ruido” debido a la existencia de términos ambiguos, es decir palabras que se escriben de la misma forma y tienen distinto significado (términos polisémicos). Así, si intentamos capturar conversación sobre la empresa de cosméticos MAC utilizando como búsqueda el termino MAC, capturaremos conversación sobre los MAC de Apple, sobre Big MAC de Mac Donalds, sobre la MAC de los ordenadores, etc. Como es bien sabido, si introducimos “ruido” en los datos solo conseguiremos que los resultados de los análisis resultantes no sean fiables (principio de Garbage In Garbage Out).

A continuación vamos a describir un caso de uso en el que se utilizan técnicas de Deep Learning para resolver un caso real de conversaciones obtenidas a partir de un término polisémico, este problema se suele denominar “desambiguación” de las conversaciones y consiste en eliminar aquellas conversaciones que no sean relevantes de todas las extraídas.

NECESIDAD DEL CLIENTE:

El cliente nos solicitó realizar un estudio que requería la captura de conversación sobre el Banco de Santander, desgraciadamente el termino Santander puede referirse al banco pero también a la ciudad, al equipo de futbol, etc. Para evitar la ambigüedad del término SANTANDER cabía la posibilidad de restringir la búsqueda a aquella conversaciones que contuviesen el término BANCO y SANTANDER, pero tras un análisis de los resultados se comprobó que esta opción sesgaría mucho los resultados ya que una parte considerable (más del 30%) de las conversaciones sobe el Banco de Santander se dejaban fuera, lo que invalidaría realizar comparativa con otras entidades bancarias como BANKIA o BBVA que no sufren de este problema de ambigüedad.

Deep Learning_tweets desambiguación_ITELLIGENT

SOLUCION PROPUESTA:

Habitualmente hemos resuelto este problema utilizando un clasificador supervisado (svm, naive bayes, logit,…) que es un algoritmo que a partir de una serie de ejemplos (ej. un conjunto de conversaciones sobre el Banco de Santander y otro conjunto que conteniendo el término SANTANDER no se refieran al Banco) se entrena y una vez entrenado se le puede pasar un texto y el clasificador decide si habla del Banco de Santader o no. El problema de esta aproximación es que para textos cortos (Ej. tweets) para tener buenos resultados se requieren un gran número de ejemplos revisados a mano que sirvan para entrenar el clasificador, lo que representa una fuerte inversión en tiempo.

Debido a lo anterior, se decidió probar con una técnica más novedosa basada en Word2Vec, que es un algoritmo desarrollado por Google  basado en Deep Learning, que permite hacer una representación vectorial de palabras manteniendo esa representación vectorial el significado (semántico) de la palabra. Esto es, una vez entrenado con un conjunto de textos, word2vec permite dada una palabra presente en los textos de entrenamiento (ej. coche) obtener palabras relacionadas (ej. autobús, chofer, conducción,…), operar con las palabras como si fueran vectores (ej. coche + conductor -> viaje), obtener la similitud entre dos palabras y muchas otras cosas. Conocimos Word2Vec a través de nuestros amigos del grupo de Procesamiento del Lenguaje Natural de la Universidad de Sevilla que nos habían introducido a Word2Vec en un proyecto de turismo inteligente que participamos con ellos.

La aplicación de Word2Vec al problema de la “desambiguación” de la conversación sobre el Banco de Santander, se realizo de la siguiente forma:

  • PASO 1: Se crearon dos listas de palabras una de ella relacionada con el Banco de Santander (ej. banco, entidad, crédito,…) y otra no relacionada con el Banco pero si con el término Santander (ej. ciudad, fútbol, lluvia, …).  Para la creación de estas listas de términos se utilizo una técnica denominada Mutual Information -esta técnica no es objeto de este post-.
  • PASO 2: Dado un texto se definió una métrica para medir la similitud del texto frente a las dos listas, pera ellos se utilizo una técnica basada en programación lineal -esta técnica tampoco es objeto de este post-.
  • PASO 3: El sistema procesa todas las conversaciones comparando el texto de cada conversación (ej. el texto de cada tweet) con las dos lista de palabras y a partir de la similitud con cada lista decide si es una conversación sobre el Banco de Santander o no lo es.

RESULTADOS:

Nuestro objetivo en el proyecto era reducir al máximo el esfuerzo de supervisión y al mismo tiempo obtener unos resultados muy fiables que permitiesen reducir al mínimo el “ruido” que pudiese pasar a la fase de análisis. Para medir la fiabilidad utilizamos dos medidas la Precisión y la Cobertura.

Para explicar cada una de ellas supongamos que tenemos un conjunto de conversaciones (tweets) y hemos comprobado manualmente cada una de ellas para determinar si son del Banco de Santander o no. Supongamos que clasificamos dichas conversaciones utilizando nuestro algoritmo basado en Word2Vec, la Cobertura será del total de conversaciones sobre el Banco de Santander, es decir de las comprobadas manualmente, cuántas de ellas (que proporción) han sido también señaladas como pertenecientes al Banco de Santander por el algoritmo. Mientras que la Precisión será del total de las conversaciones que nuestro algoritmo ha marcado como pertenecientes al Banco de Santander que proporción son realmente del Banco de Santader (es decir que proporción están también en las manualmente señaladas).

Una vez obtenidas la Cobertura y la Precisión obtenemos una combinación de las mismas denominada F1, la idea fue calcular F1 como medida de la bondad de los resultados y el Número de Conversaciones Supervisadas como medida del esfuerzo necesario para obtener dicho resultado. Así, la situación ideal sería obtener un F1 alto con pocas conversaciones supervisadas.

Deep Learning_Desambiguación conversaciones_ITELLIGENT

En esta imagen se comprueba que con un esfuerzo de supervisión de unos  40 minutos (200 ejemplos) se consiguen unos resultados muy buenos, por lo que el Deep Learning es una estupenda alternativa a métodos tradicionales basados en clasificadores que para textos de pequeña longitud (Ej. tweets) requieren un esfuerzo mucho mayor.

Guardar

Guardar

Guardar

Comentarios ( 0 )

    Deja un comentario