lunes, 25 de abril de 2022

La IA funciona con números, pero ¿qué pasa con las palabras?


La mayoría de las técnicas modernas de 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 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 los word embeddings?

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 grupos 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”.

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 administrador 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 habla sobre 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 enfoque es particularmente útil para comprender lo que un usuario está buscando cuando realiza una búsqueda para encontrar resultados que tengan en cuenta dicha jerga.

Word embeddings 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 cada palabra del corpus en un vector. Word2vec, funcionó bien en la mayoría de los casos que utilizamos durante la construcción del motor de búsqueda Findit. 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 se mencionaban explícitamente en nuestro corpus de entrenamiento original. 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 nuestro caso de uso. Por ejemplo, cuando un usuario buscaba “electromovilidad”, palabra que no estaba en el modelo original, 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!

Fuente: BID

No hay comentarios.:

Publicar un comentario