Embeddings de palabras: word2vec y después
De word2vec a fastText y a los vectores contextuales de CamemBERT: cómo representar el significado de las palabras, sus logros, sus sesgos y sus límites reales.
Para un modelo TF-IDF, «voiture» y «automobile» son dos columnas independientes. Su similitud vale cero, exactamente igual que la de «voiture» y «betterave» (remolacha). Un clasificador entrenado con textos que dicen «automobile» no sabrá qué hacer con un texto que dice «voiture». La bolsa de palabras no representa el significado, representa la ortografía.
La idea que desbloquea el problema es antigua y se formula en una frase, atribuida al lingüista John Rupert Firth en 1957: una palabra se conoce por la compañía que frecuenta. Si dos palabras aparecen con regularidad en los mismos contextos («conduzco mi ___», «el taller repara mi ___»), es que probablemente tienen un significado cercano. Esta hipótesis, llamada distribucional, tiene una consecuencia práctica decisiva: el significado de una palabra se puede aprender a partir de texto sin procesar, sin anotación humana, únicamente a partir de las coocurrencias.
Un embedding de palabras (plongement lexical) es el resultado de ese aprendizaje: un vector de unos cientos de números reales por palabra, colocado de tal modo que las palabras empleadas en contextos similares queden próximas. Se pasa de un espacio disperso de cincuenta mil dimensiones a un espacio denso de trescientas, donde la distancia tiene sentido.