Tag: Word2Vec

Década de los 50

Se considera 1950 como el año del nacimiento del PLN, cuando Alan Turing publica un artículo denominado “Machine and Intelligence”. Poniendo de relieve que una forma de medir la inteligencia seria a través de la capacidad de una máquina de responder preguntas de forma que un operador humano no distinguiera sus respuestas de las de un humano (Test de Turing).

Un énfasis inicial en la década de los 50s fue la traducción automática, en particular entre inglés y ruso, con objetivos militares. Una época de fuerte optimismo en las posibilidades del PLN.

En esa época uno de los sistemas desarrollados, al traducir un versículo del testamento (Mateos, 26:41) que dice: ‘the spirit is willing, but the flesh is weak’ (el espíritu es voluntarioso, pero la carne es débil) lo tradujo por ‘the vodka is agreeable, but the meat is spoiled’ (el vodka es agradable pero la carne esta podrida), estos tipos de errores fueron los que hicieron

Década de los 60 y 70

A principio de los 60s los sistemas desarrollados de Traducción Automática son evaluados con resultados muy limitados lo que paralizó su desarrollo futuro y en general supuso un baño de realidad para el sector del PLN.

Durante esta década Noam Chomsky (lingüista estadounidense) introduce la teoría formal del lenguaje y la sintaxis generativa. Esto dio un nuevo impulso al PLN, con la creación de nuevas aproximaciones basadas principalmente en reglas cuyo objetivo era generar lenguaje o parsear textos.

Desgraciadamente estos sistemas basados en reglas, se vieron pronto superados por la complejidad del lenguaje natural, así los sistemas requerían más y más reglas llegando a convertirse en inmanejables.

Se comenta que en esa época Fred Jelinek de IBM que trabajaba en los sistemas de PLN decía: “cada vez que un lingüista abandona el equipo el sistema mejora”, en referencia a las limitaciones de los modelos basados en reglas lingüísticas frente a los modelos basados en probabilidad y aprendizaje automático.

Década de los 80 y 90

Las limitaciones de los sistemas basados en reglas hacen que en esta década comiencen a tener cada vez más protagonismo los sistemas basados en probabilidad y aprendizaje automático (machine learning). Estos sistemas van reduciendo su dependencia de modelos lingüísticos y se basan cada vez más en datos (ej. conjuntos de textos denominados “corpus”).

Durante los 90s la aparición de internet, introduce la disponibilidad de un gran número de textos (html, pdfs,…) y audios, además de la necesidad de nuevas herramientas que sean capaces de poner en valor estos grandes repositorios de datos. Durante esta década se desarrollan los sistemas de búsqueda (ej. AltaVista y Yahoo) y a finales de los 90s aparece Google que supone un cambio de paradigma en los sistemas de búsqueda.

yahoo

Década de los 2000

Las técnicas de Aprendizaje Automático (Machine Learning) van tomando cada vez más protagonismo. El éxito de empresas como Google, hacen que la Inteligencia Artificial y el PLN comiencen a popularizarse.

Durante la década del 2000s IBM desarrolla Watson, que en el 2011 derrota al juego del Jeopardy a dos expertos en dicho juego. Watson es un sistema diseñado para una tarea de PLN denominada Q&A (preguntas y respuestas), adaptado a las particularidades de Jeopardy y con capacidad de interactuar por voz con el presentador.

Década de los 2010

Las nuevas técnicas de Deep Learning (redes neuronales profundas) que a principios de la década están revolucionando el procesamiento de imágenes llegan al PLN. Apareciendo en el 2012 Word2Vec una técnica de “Word embedding” que permite representar las palabras de un texto como vectores, con unas propiedades muy interesantes. Word2vec representó la introducción de un nuevo paradigma en el PLN, que comienza a abordar con éxito tareas hasta entonces consideradas extremadamente complicadas.

En el 2018 Google presenta BERT, que es un modelo de Word embedding, que presenta mejoras sobre Word2vec, entre otras, su capacidad de representar mediante diferentes vectores palabras polisémicas.

«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