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 (conocidas en español 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 de capacitación, 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, tal es el caso de la forma en que una institución describe su trabajo, es decir, de 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 “movilidad”.
Para superar este desafío, experimentamos con otro algoritmo de código abierto: fastText. La principal diferencia con este algoritmo es que genera vectores a nivel de letras en lugar de a nivel de palabra. FastText es un algoritmo de incrustación de palabras que va más allá de mapear las palabras en el vocabulario al mapear también las subcadenas de estas palabras. Como resultado, si el modelo entrenado por fastText encuentra una palabra en la que no ha sido entrenado, 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.
Tema muy interesante que debemos conocer un poco más a fondo
Muy interesante, sería bueno exponer ejemplos aún más prácticos y fáciles de asimilar por la gente en general.
Gracias.
Muy interesante. Gracias
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
Excelente artículo.
Felicitaciones Kyle. Comparto su entusiasmo. Éxitos en la jornada por delante.
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.