word2vec es un método para convertir cada palabra de un vocabulario en un vector de unos cientos de números, de modo que las palabras que aparecen en contextos parecidos queden cerca unas de otras. No escribe ni clasifica: su producto es una tabla de embeddings, una fila por palabra, pensada como materia prima para otros sistemas. El nombre agrupa dos arquitecturas que Mikolov y colegas presentaron en Google en 2013, CBOW y skip-gram (Mikolov, Chen et al., 2013).
Cómo funciona
Una ventana se desliza por el texto. En CBOW (continuous bag of words) se promedian los vectores de las palabras vecinas y el modelo intenta adivinar la del centro; como se promedian, el orden no importa: de ahí la «bolsa de palabras». En skip-gram se hace lo inverso: desde la palabra central se predicen las vecinas (Mikolov, Chen et al., 2013, secs. 3.1–3.2). Nadie etiqueta nada: el propio texto provee las respuestas (aprendizaje autosupervisado).
La jugada decisiva fue quitar cosas. El modelo de lenguaje neuronal de Bengio et al. (2003) aprendía vectores junto con una capa oculta no lineal, donde se iba casi todo el cómputo. Mikolov y colegas la eliminaron: un modelo menos expresivo, pero entrenable con muchísimos más datos (2013, sec. 3). Meses después, el mismo equipo reemplazó además la costosa softmax sobre todo el vocabulario por una pregunta binaria: ¿esta palabra es un vecino real o una sorteada al azar? Ese muestreo negativo es una forma temprana de aprendizaje contrastivo (Alammar y Grootendorst, 2024, pp. 64–65, 293). Al final, la tarea de predicción se descarta y se conserva la matriz de pesos de entrada: cada fila es el vector de una palabra (M. Mitchell, 2019, ch. 11).
El corpus fue Google News, unos 6.000 millones de tokens, con un vocabulario de un millón de palabras (Mikolov, Chen et al., 2013, sec. 4.2); el mejor skip-gram (vectores de 1.000 dimensiones) se entrenó en unos dos días y medio sobre ≈ 125 núcleos de CPU (2013, sec. 4.4). Luego el equipo publicó el código y vectores entrenados con más de 100.000 millones de palabras (2013, sec. 7).
Qué cambió
En la codificación one-hot, cada palabra es un índice arbitrario: nada indica que odiar y aborrecer se parecen. Con word2vec la semejanza es un ángulo entre vectores (similitud coseno), y los vecinos de France resultan ser otros países europeos sin que nadie le haya enseñado qué es un país (M. Mitchell, 2019, ch. 11). Un espacio así puede explorarse en el laboratorio de embeddings.
Lo que más llamó la atención fueron las regularidades lineales: vector(biggest) − vector(big) + vector(small) cae cerca de smallest, y algo parecido ocurre con países y capitales (Mikolov, Chen et al., 2013, sec. 4). Para medirlo, los autores armaron un benchmark de 8.869 preguntas semánticas y 10.675 sintácticas (2013, sec. 4.1). (El célebre king − man + woman ≈ queen venía de un trabajo previo con vectores de una red recurrente (2013, secs. 1.1, 4.3).)
Hasta 2018, vectores como estos fueron la entrada habitual de casi todo sistema de lenguaje (M. Mitchell, 2019, ch. 11); los codificadores de Seq2seq podían recibirlos (Alammar y Grootendorst, 2024, p. 12), y la receta se exportó a otros dominios, como recomendar canciones tratándolas como palabras (2024, p. 67). Levy y Goldberg (2014) mostraron que skip-gram con muestreo negativo factoriza implícitamente una matriz de coocurrencias ponderada por información mutua: la vieja semántica distribucional de conteo, con ropa nueva.
Límites
- Un vector por palabra. «Banco» es el mismo en la plaza y en el sistema financiero (Alammar y Grootendorst, 2024, p. 11); resolverlo fue tarea de los embeddings contextuales de ELMo.
- Sin orden ni composicionalidad. El segundo artículo del equipo reconoce que Air Canada no se obtiene combinando Air y Canada (Mikolov, Sutskever et al., 2013).
- La letra chica de las analogías. La búsqueda descarta las palabras de la pregunta y solo cuenta la coincidencia exacta (Mikolov, Chen et al., 2013, secs. 4–4.1). Sin esa exclusión, la respuesta casi siempre es una palabra de la consulta, a menudo king mismo; y parte de los aciertos se obtiene igual devolviendo el vecino más cercano de la tercera palabra (Linzen, 2016; Nissim et al., 2020). Hay errores como Japan: sushi → France: tapas (2013, sec. 5) o fish es a water como bird es a hydrant (M. Mitchell, 2019, ch. 11).
- Sesgos. Man es a computer programmer como woman es a homemaker (M. Mitchell, 2019, ch. 11). Pero como la regla de exclusión impide responder programmer, parte del efecto es un artefacto del método (Nissim et al., 2020): el sesgo existe, pero la analogía no es el mejor instrumento para medirlo.