4 minutos de lectura.
La mayoría de las técnicas modernas de inteligencia artificial (IA) se han desarrollado para trabajar con números, lo que puede presentar un desafío cuando se trata de trabajar con palabras y texto; para superar esta posible limitación, se ha creado una clase de algoritmos que convierten palabras en números, se conocen como word embeddings (en español referidas como incrustación de palabras o incrustaciones de palabras) y hacen que sea mucho más sencillo aprovechar las técnicas modernas de inteligencia artificial cuando se desea analizar el lenguaje natural.
¿Cómo funcionan las incrustaciones de palabras?
Los word embeddings incorporan un corpus de texto y generan un vector numérico para cada palabra del corpus, lo que crea un modelo de lenguaje que se puede utilizar para guiar una amplia gama de procesos de clasificación y recuperación de información, como los que llevan a cabo los motores de búsqueda como Google, Bing, etc. Los modelos de lenguaje constan de agrupaciones de vectores numéricos que representan similitudes sintácticas (contexto) y semánticas (significado) entre palabras. Si se usa un corpus de capacitación bilingüe, ciertos algoritmos también detectarán similitudes entre idiomas. Como ejemplo, un modelo de lenguaje que desarrollamos en el BID identificó que la palabra “metrics” (en inglés) estaba estrechamente relacionada con el término “indicadores clave de rendimiento” y “key performance indicators”, su equivalente en inglés.
A partir de aquí, hay todo tipo de sorprendentes matemáticas vectoriales que se pueden hacer para explorar e inferir relaciones entre palabras en el corpus, pero para este artículo nos centraremos en un ejemplo específico. Como gestor del conocimiento, descubrí que los word embeddings son inmensamente poderosos para comprender nuestro universo de conocimiento, esto incluye comprender la forma y el lenguaje en que una institución describe su trabajo, es decir, su jerga específica. En este contexto, las incrustaciones se convierten en un espejo que refleja el léxico institucional y este reflejo puede usarse para mejorar la forma en que se gestiona el conocimiento dentro de una institución. Este abordaje es particularmente útil para descifrar lo que un usuario espera encontrar al realizar una búsqueda que incluya resultados que tengan en cuenta dicha jerga.
Incrustación de palabras en la práctica
Existen numerosas formas de generar incrustaciones de palabras, y quizás la más conocida es el algoritmo Word2vec de código abierto que, como su nombre lo indica, convierte palabras en vectores. Word2vec, funcionó bien para la construcción del motor de búsqueda Findit en la mayoría de los casos. Sin embargo, ese algoritmo tenía una limitación crítica para nuestro propósito: no nos permitía inferir términos relacionados con las palabras que no fueron explícitamente mencionadas en nuestro corpus de entrenamiento original, y como tal no fueran ya parte del modelo. A pesar de que nuestro corpus de capacitación era bastante grande, con más de 2 mil millones de palabras, nos encontramos con algunas situaciones en las que este aspecto del modelo hizo que se quedara corto para nuestras necesidades. Por ejemplo, cuando un usuario buscaba “electromovilidad”, palabra que no estaba en el modelo de lenguaje, entonces no se mostraban resultados, ni siquiera relacionados a términos tan amplios como “movilidad”.
Para superar este desafío, experimentamos con otro algoritmo de código abierto: fastText. La principal diferencia con este algoritmo es que también genera vectores a nivel de letras en lugar de sólo a nivel de palabras. Esto implica que incluye en su mapeo a las subcadenas de las palabras que analiza. Como resultado, si el modelo entrenado por fastText encuentra una palabra que no incluyó en su entrenamiento inicial, buscará subcadenas de esa palabra y analizará si aparecen en el modelo. En general, funciona tan bien como word2vec, pero en nuestro contexto demostró tener dos ventajas importantes:
- Nos ayudó a obtener buenos resultados incluso cuando las consultas de los usuarios tuvieron simples errores ortográficos.
- Fue capaz de manejar las consultas de los usuarios con palabras que no forman parte del corpus de entrenamiento, o palabras que aún no están en el modelo de lenguaje, cuando hay suficientes similitudes a nivel de letras. Por ejemplo, fastText sería capaz de identificar una relación entre las palabras “metro” y “milímetro”, incluso si la palabra “metro” no estuviera en el modelo.
La implementación de fastText nos ayudó a llevar nuestra aplicación de búsqueda al siguiente nivel. ¡No podemos esperar a mostrarte lo que desarrollaremos con esta tecnología!
Por Kyle Strand, especialista senior en Gestión del Conocimiento dentro del Sector de Conocimiento, Innovación y Comunicación del BID.
José+Sánchez+Narvaez Dice
Tema muy interesante que debemos conocer un poco más a fondo
Luis+Bernardo+Ríos+Escobar Dice
Muy interesante, sería bueno exponer ejemplos aún más prácticos y fáciles de asimilar por la gente en general.
Gracias.
Cynthia Bendlin Dice
Muy interesante. Gracias
OSMAN+GONZALEZ Dice
Felicitaciones por ayudarnos a comprender aun mas la Inteligencia Artificial y este nuevo servicio sobre incrustaciones de palabra que viene a fortalecer las relaciones comunicacionales en nuestras Sociedades
ANDERSON SOLIS M. Dice
Excelente artículo.
Roig Dice
Felicitaciones Kyle. Comparto su entusiasmo. Éxitos en la jornada por delante.
Jose Dice
La técnica desarrollada con la incrustación de palabras y la
subsiguiente expresión de estas en un modelo vectorial o su traslado a el, abre un nuevo espacio al universo comunicacional y hasta puede permitir conocer otras fronteras del humano saber. Y porque no, una aproximación a la comprensión cabal de otras formas de comunicación que aún no comprendemos del todo, en otras especies que cohabitan con nosotros nuestro planeta.