ElemedexEnciclopedia de bolsillo de arquitecturas de IA
N.º 019

word2vec

Skip-gram · CBOW (word to vector)

Buena compañía

Nunca leyó una definición: aprendió cada palabra mirando con quién se junta. Hace cuentas con reyes y reinas, pero el truco tiene letra chica: no lo dejan contestar con las palabras de la pregunta. Y tiene una sola cara para «banco», sea de plaza o de dinero.

Altura
1 proyección lineal, sin capa oculta
Peso
≈ 3,6 GB (fp32, vectores de Google News)
Parámetros
2 matrices V × d · 3 M × 300 = 900 M (vectores publicados)
Contexto
±4 (CBOW) a ±10 (skip-gram) palabras
Datos de entrenamiento
Google News: ≈ 6.000 M tokens (artículo); > 100.000 M palabras (vectores publicados)
Año
2013
Generación
3 · Aprendizaje profundo
Creadores
Mikolov, Chen, Corrado & Dean (Google)
Clase
Modelo

Estadísticas base

Total
230

Escalas ordinales y aproximadas, pensadas para comparar especies entre sí; los números duros están en la ficha.

Debilidades

  • Un solo vector por palabra: no distingue los sentidos de «banco» ni de «vela».
  • Ignora el orden de las palabras y no compone significados de frases.
  • No tiene vector para palabras que no vio en el entrenamiento.
  • Absorbe los estereotipos del corpus con el que se entrenó.

Hábitat

Creció leyendo noticias: un corpus interno de Google News. Entre 2013 y 2018, sus vectores (o los de su primo GloVe) fueron la puerta de entrada habitual de las redes neuronales de lenguaje. Hoy sobrevive en sistemas de recomendación (canciones tratadas como palabras, playlists como oraciones), en las humanidades digitales, donde se lo usa para rastrear cambios de significado entre décadas, y en los cursos introductorios.

Movimientos

Habilidades

Poca profundidad
Sin capa oculta no lineal: un modelo log-lineal, menos expresivo que sus antecesores pero capaz de entrenarse con miles de millones de palabras.
Aprendizaje por contraste
En lugar de elegir entre todo el vocabulario, distingue vecinos reales de palabras sorteadas al azar.
Regularidades lineales
Algunas relaciones (país–capital, adjetivo–superlativo) aparecen como desplazamientos aproximadamente constantes en el espacio.

Anatomía

se guarda Wse guarda Ww(t−2)w(t−1)w(t+1)w(t+2)Buscar vectores (matriz W)Promedio:bolsadepalabrasPredice w(t)w(t): «rey»Vector de w(t) (matriz W)Vecino real:«corona»k palabras alazarProducto punto con W′¿Vecino o azar? (sí/no)Tabla V × d de vectoresrey − hombre + mujer ≈ ?CBOWSkip-gram (muestreo negativo)Lo que queda

Las dos arquitecturas de word2vec. CBOW promedia los vecinos y predice la palabra central; skip-gram parte de la palabra central y, en la versión con muestreo negativo, aprende a distinguir vecinos reales de palabras al azar. Terminado el entrenamiento, la tarea se descarta y se conserva la matriz W: una fila por palabra.

Cadena evolutiva

019 word2vec
  • contexto: un vector por ocurrencia, calculado por una LSTM bidireccional026 ELMo

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

Fuentes

  • Alammar, J., & Grootendorst, M. (2024). Hands-on large language models: Language understanding and generation. O’Reilly Media. §
  • Bender, E. M., & Koller, A. (2020). Climbing towards NLU: On meaning, form, and understanding in the age of data. In D. Jurafsky, J. Chai, N. Schluter, & J. Tetreault (Eds.), Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics (pp. 5185–5198). Association for Computational Linguistics. https://doi.org/10.18653/v1/2020.acl-main.463 §
  • Bengio, Y., Ducharme, R., Vincent, P., & Jauvin, C. (2003). A neural probabilistic language model. Journal of Machine Learning Research, 3, 1137–1155. https://www.jmlr.org/papers/v3/bengio03a.html §
  • Brandom, R. B. (2000). Articulating reasons: An introduction to inferentialism. Harvard University Press. §
  • Brunila, M., & LaViolette, J. (2022). What company do words keep? Revisiting the distributional semantics of J.R. Firth & Zellig Harris. In M. Carpuat, M.-C. de Marneffe, & I. V. Meza Ruiz (Eds.), Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (pp. 4403–4417). Association for Computational Linguistics. https://doi.org/10.18653/v1/2022.naacl-main.327 §
  • Buckner, C. J. (2024). From deep learning to rational machines: What the history of philosophy can teach us about the future of artificial intelligence. Oxford University Press. https://doi.org/10.1093/oso/9780197653302.001.0001 §
  • Firth, J. R. (1957). A synopsis of linguistic theory, 1930–1955. In Studies in linguistic analysis (pp. 1–32). Blackwell. §
  • Harris, Z. S. (1954). Distributional structure. Word, 10(2–3), 146–162. https://doi.org/10.1080/00437956.1954.11659520 §
  • Levy, O., & Goldberg, Y. (2014). Neural word embedding as implicit matrix factorization. In Advances in Neural Information Processing Systems (Vol. 27). Curran Associates. https://proceedings.neurips.cc/paper_files/paper/2014/hash/b78666971ceae55a8e87efb7cbfd9ad4-Abstract.html §
  • Linzen, T. (2016). Issues in evaluating semantic spaces using word analogies. In Proceedings of the 1st Workshop on Evaluating Vector-Space Representations for NLP (pp. 13–18). Association for Computational Linguistics. https://doi.org/10.18653/v1/W16-2503 §
  • Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space (arXiv:1301.3781). arXiv. https://doi.org/10.48550/arXiv.1301.3781 §
  • Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., & Dean, J. (2013). Distributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems (Vol. 26). Curran Associates. https://proceedings.neurips.cc/paper_files/paper/2013/hash/9aa42b31882ec039965f3c4923ce901b-Abstract.html §
  • Mitchell, M. (2019). Artificial intelligence: A guide for thinking humans. Pelican Books. §
  • Nissim, M., van Noord, R., & van der Goot, R. (2020). Fair is better than sensational: Man is to doctor as woman is to doctor. Computational Linguistics, 46(2), 487–497. https://doi.org/10.1162/coli_a_00379 §
  • Wittgenstein, L. (2009). Philosophical investigations (G. E. M. Anscombe, P. M. S. Hacker, & J. Schulte, Trans.; P. M. S. Hacker & J. Schulte, Eds.; Rev. 4th ed.). Wiley-Blackwell. (Original work published 1953) §