FastText
FastText, la biblioteca de código abierto de Facebook AI Research que representa cada palabra como una bolsa de n-gramas de caracteres. Así compone vectores para palabras nunca vistas y brilla en lenguas de morfología rica y en clasificación de texto rápida.
FastText es una biblioteca de código abierto para crear representaciones vectoriales de palabras y clasificar texto, desarrollada por Facebook AI Research, hoy Meta AI. Su sitio oficial la presenta como gratuita, ligera y capaz de funcionar en hardware genérico. Su aportación no fue inventar los embeddings, sino mirar dentro de la palabra: en lugar de tratar cada término como una unidad indivisible, lo representa mediante fragmentos de caracteres.
Esa decisión, aparentemente menor, resuelve dos problemas que arrastraban los modelos anteriores: las palabras nunca vistas y las lenguas con morfología compleja.
La idea: una palabra es una bolsa de n-gramas de caracteres
En el artículo «Enriching Word Vectors with Subword Information» (TACL, 2017), Piotr Bojanowski, Édouard Grave, Armand Joulin y Tomáš Mikolov proponen representar cada palabra como una bolsa de n-gramas de caracteres: los trozos de letras que la componen. La palabra «donde», por ejemplo, se descompone en fragmentos como «don», «ond», «nde» y la propia palabra completa. A cada uno de esos fragmentos se le asigna un vector, y el vector de la palabra es la suma de los vectores de sus n-gramas. El modelo hereda el esquema skipgram de word2vec, pero opera sobre subpalabras en lugar de palabras enteras.
Por qué maneja palabras que nunca ha visto
De ahí sale la ventaja más característica de FastText. Un modelo que solo conoce palabras completas no tiene vector para un término ausente de su vocabulario de entrenamiento: es el problema de las palabras fuera de vocabulario u OOV. FastText puede componerlo sumando los n-gramas que sí aprendió. El paper de subpalabras destaca el reto de los vocabularios grandes y las palabras raras, y evalúa el método en nueve lenguas. Los fragmentos compartidos explican por qué formas emparentadas como «correr», «corría» y «corredor» pueden quedar próximas sin asignar un vector independiente a cada una. Esa evidencia cubre rareza y OOV; no garantiza robustez ante cualquier errata, neologismo o nombre propio.
Clasificación de texto y dónde encaja
FastText también incluye un clasificador, presentado en «Bag of Tricks for Efficient Text Classification» (Joulin, Grave, Bojanowski y Mikolov, 2016). En los experimentos publicados quedó a menudo a la par de clasificadores profundos en exactitud y fue varios órdenes de magnitud más rápido: entrenó con más de mil millones de palabras en menos de diez minutos sobre una CPU multinúcleo estándar. Para acelerar cuando hay muchas categorías puede usar una softmax jerárquica. Los bancos de prueba incluyen clasificación temática y de sentimiento; son resultados del paper, no una garantía para cualquier corpus o equipo.
El lugar de FastText es concreto: el paper de vectores enriquece representaciones estáticas con subpalabras y permite construir vectores OOV; el paper de clasificación prioriza velocidad y ligereza en experimentos definidos. No produce embeddings contextuales como los modelos posteriores, ni hay evidencia para decir que «allanara su camino». Sigue siendo útil cuando importan el coste de cómputo, el tamaño y un vocabulario abierto.
Este artículo se ha elaborado con inteligencia artificial bajo supervisión editorial humana.