Empecemos por lo básico ¿Qué son los embeddings o vectores semánticos?
En el mundo del procesamiento del lenguaje natural (PNL), los embeddings son representaciones matemáticas de palabras, frases o documentos. Es decir, es la transformación de textos poco analizables en números que representan esas ideas y que al ser números si se pueden operar con matemáticas.
Un embedding es la forma matemática de capturar el significado semántico de las cosas. Así, transformar las cosas en números se permite a las máquinas «entender» el lenguaje humano de una forma más profunda, yendo más allá de la simple interpretación de las palabras individuales.
Imagina que quieres que una máquina comprenda la diferencia entre «banco» (donde guardas tu dinero) y «banco» (un asiento del parque). Mientras que un análisis tradicional matemático que tu mismo podrías hacer con python o Javascript (o incluso con Excel) se basaría en la coincidencia de palabras clave y no podrías diferenciarlos, los embeddings permiten representar estas dos palabras con «vectores» diferentes, capturando sus distintos significados y matices incluso cuando se escriben igual.
Los embeddings se generan mediante algoritmos de aprendizaje automático. Estos algoritmos analizan grandes cantidades de texto, como libros, artículos o las páginas web de todo Internet para entender las relaciones y matices del lenguaje. Durante este proceso, el algoritmo aprende a predecir el contexto de las palabras y a representarlas en un espacio vectorial multidimensional (que suena a ciencia ficción pero que ahora explicamos). En este espacio, las palabras con significados similares se ubican cerca unas de otras, mientras que las palabras con significados diferentes se ubican más lejos, reflejando así las relaciones semánticas entre ellas.