De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Word2vec es una técnica para el procesamiento del lenguaje natural . El algoritmo word2vec utiliza un modelo de red neuronal para aprender asociaciones de palabras de un gran corpus de texto . Una vez entrenado, dicho modelo puede detectar palabras sinónimas o sugerir palabras adicionales para una oración parcial. Como su nombre lo indica, word2vec representa cada palabra distinta con una lista particular de números llamada vector . Los vectores se eligen cuidadosamente de manera que una función matemática simple (la similitud del coseno entre los vectores) indique el nivel de similitud semántica entre las palabras representadas por esos vectores.

Acercamiento [ editar ]

Word2vec es un grupo de modelos relacionados que se utilizan para producir incrustaciones de palabras . Estos modelos son redes neuronales superficiales de dos capas que están capacitadas para reconstruir contextos lingüísticos de palabras. Word2vec toma como entrada un gran corpus de texto y produce un espacio vectorial , típicamente de varios cientos de dimensiones , y a cada palabra única en el corpus se le asigna un vector correspondiente en el espacio. Los vectores de palabras se colocan en el espacio vectorial de manera que las palabras que comparten contextos comunes en el corpus se ubican cerca unas de otras en el espacio. [1]

Historia [ editar ]

Word2vec fue creado, patentado [2] y publicado en 2013 por un equipo de investigadores dirigido por Tomas Mikolov en Google en dos artículos. [3] [4] Otros investigadores analizaron y explicaron el algoritmo de manera útil. [5] Los vectores de incrustación creados con el algoritmo Word2vec tienen algunas ventajas en comparación con los algoritmos anteriores [1] , como el análisis semántico latente .

CBOW y salta gramos [ editar ]

Word2vec puede utilizar cualquiera de las dos arquitecturas modelo para producir una representación distribuida de palabras: bolsa de palabras continua (CBOW) o salto de gramática continua . En la arquitectura de bolsa de palabras continua, el modelo predice la palabra actual a partir de una ventana de palabras de contexto circundantes. El orden de las palabras de contexto no influye en la predicción ( suposición de bolsa de palabras ). En la arquitectura de omisión continua, el modelo utiliza la palabra actual para predecir la ventana circundante de palabras de contexto. La arquitectura skip-gram pesa más las palabras de contexto cercanas que las palabras de contexto más distantes. [1] [6] Según la nota de los autores, [7] CBOW es más rápido, mientras que skip-gram funciona mejor con palabras poco frecuentes.

Parametrización [ editar ]

Los resultados del entrenamiento de word2vec pueden ser sensibles a la parametrización . Los siguientes son algunos parámetros importantes en el entrenamiento de word2vec.

Algoritmo de entrenamiento [ editar ]

Un modelo de Word2vec se puede entrenar con softmax jerárquico y / o muestreo negativo . Para aproximar la probabilidad logarítmica condicional que un modelo busca maximizar, el método jerárquico softmax utiliza un árbol de Huffman para reducir el cálculo. El método de muestreo negativo, por otro lado, aborda el problema de maximización minimizando la probabilidad logarítmica de las instancias negativas muestreadas. Según los autores, softmax jerárquico funciona mejor para palabras poco frecuentes, mientras que el muestreo negativo funciona mejor para palabras frecuentes y mejor con vectores de baja dimensión. [7] A medida que aumentan las épocas de entrenamiento, el softmax jerárquico deja de ser útil. [8]

Submuestreo [ editar ]

Las palabras de uso frecuente suelen proporcionar poca información. Las palabras con una frecuencia por encima de un cierto umbral se pueden submuestrear para acelerar el entrenamiento. [9]

Dimensionalidad [ editar ]

La calidad de la inserción de palabras aumenta con una mayor dimensionalidad. Pero después de llegar a algún punto, la ganancia marginal disminuye. [1] Normalmente, la dimensionalidad de los vectores se establece entre 100 y 1000.

Ventana de contexto [ editar ]

El tamaño de la ventana de contexto determina cuántas palabras antes y después de una palabra dada se incluirían como palabras de contexto de la palabra dada. Según la nota de los autores, el valor recomendado es 10 para saltarse gramo y 5 para CBOW. [7]

Extensiones [ editar ]

Se ha propuesto una extensión de word2vec para construir incrustaciones de documentos completos (en lugar de palabras individuales). [10] Esta extensión se llama paragraph2vec o doc2vec y se ha implementado en las herramientas C, Python [11] [12] y Java / Scala [13] (ver más abajo), y las versiones de Java y Python también admiten la inferencia de incrustaciones de documentos. en documentos nuevos e invisibles.

Vectores de palabras para bioinformática: BioVectores [ editar ]

Asgari y Mofrad han propuesto una extensión de vectores de palabras para n-gramas en secuencias biológicas (por ejemplo , ADN , ARN y proteínas ) para aplicaciones bioinformáticas . [14] Biovectores denominados (BioVec) para referirse a secuencias biológicas en general con proteínas-vectores (ProtVec) para proteínas (secuencias de aminoácidos) y genes-vectores (GeneVec) para secuencias de genes, esta representación puede ser ampliamente utilizada en Aplicaciones del aprendizaje automático en proteómica y genómica. Los resultados sugieren que BioVectors puede caracterizar secuencias biológicas en términos de interpretaciones bioquímicas y biofísicas de los patrones subyacentes. [14]Una variante similar, dna2vec, ha demostrado que existe una correlación entre la puntuación de similitud de Needleman-Wunsch y la similitud de coseno de los vectores de palabras dna2vec. [15]

Vectores de palabras para radiología: incrustación inteligente de palabras (IWE) [ editar ]

Banerjee et al. Han propuesto una extensión de los vectores de palabras para crear una representación de vector denso de informes de radiología no estructurados. [16] Uno de los mayores desafíos con Word2Vec es cómo manejar palabras desconocidas o fuera del vocabulario (OOV) y palabras morfológicamente similares. Esto puede ser un problema particularmente en dominios como la medicina, donde se pueden usar sinónimos y palabras relacionadas según el estilo preferido del radiólogo, y es posible que las palabras se hayan usado con poca frecuencia en un corpus grande. Si el modelo word2vec no ha encontrado una palabra en particular antes, se verá obligado a usar un vector aleatorio, que generalmente está lejos de su representación ideal.

IWE combina Word2vec con una técnica de mapeo de diccionario semántico para abordar los principales desafíos de la extracción de información de textos clínicos, que incluyen la ambigüedad del estilo narrativo de texto libre, variaciones léxicas, uso de fases telegráficas y no gramaticales, orden arbitrario de palabras y aparición frecuente de abreviaturas. y siglas. De particular interés, el modelo IWE (capacitado en un conjunto de datos institucionales) se tradujo con éxito a un conjunto de datos institucionales diferente que demuestra una buena generalización del enfoque entre instituciones.

Análisis [ editar ]

Las razones para el aprendizaje exitoso de la integración de palabras en el marco de word2vec son poco conocidas. Goldberg y Levy señalan que la función objetiva word2vec hace que las palabras que ocurren en contextos similares tengan incrustaciones similares (medidas por la similitud del coseno ) y señalan que esto está en línea con la hipótesis distributiva de JR Firth . Sin embargo, señalan que esta explicación es "muy ondulada a mano" y argumentan que sería preferible una explicación más formal. [5]

Levy y col. (2015) [17] muestran que gran parte del rendimiento superior de word2vec o incrustaciones similares en tareas posteriores no es el resultado de los modelos en sí, sino de la elección de hiperparámetros específicos. La transferencia de estos hiperparámetros a enfoques más "tradicionales" produce desempeños similares en las tareas posteriores. Arora y col. (2016) [18] explican que word2vec y algoritmos relacionados realizan inferencias para un modelo generativo simple para texto, que implica un proceso de generación de recorridos aleatorios basado en un modelo de tema loglineal. Usan esto para explicar algunas propiedades de las incrustaciones de palabras, incluido su uso para resolver analogías.

Preservación de relaciones semánticas y sintácticas [ editar ]

El enfoque de inserción de palabras puede capturar múltiples grados diferentes de similitud entre palabras. Mikolov y col. (2013) [19] encontraron que los patrones semánticos y sintácticos se pueden reproducir usando aritmética vectorial. Patrones como "El hombre es para la mujer como el hermano es para la hermana" se pueden generar mediante operaciones algebraicas en las representaciones vectoriales de estas palabras, de modo que la representación vectorial de "Hermano" - "Hombre" + "Mujer" produzca un resultado que sea más cercano a la representación vectorial de "Hermana" en el modelo. Estas relaciones se pueden generar para una variedad de relaciones semánticas (como País-Capital) así como relaciones sintácticas (por ejemplo, tiempo presente-tiempo pasado).

Evaluación de la calidad de un modelo [ editar ]

Mikolov y col. (2013) [1] desarrollan un enfoque para evaluar la calidad de un modelo de word2vec que se basa en los patrones semánticos y sintácticos discutidos anteriormente. Desarrollaron un conjunto de 8.869 relaciones semánticas y 10.675 relaciones sintácticas que utilizan como punto de referencia para probar la precisión de un modelo. Al evaluar la calidad de un modelo vectorial, un usuario puede basarse en esta prueba de precisión que se implementa en word2vec, [20] o desarrollar su propio conjunto de pruebas que sea significativo para los corpus que componen el modelo. Este enfoque ofrece una prueba más desafiante que simplemente argumentar que las palabras más similares a una palabra de prueba dada son intuitivamente plausibles. [1]

Parámetros y calidad del modelo [ editar ]

El uso de diferentes parámetros de modelo y diferentes tamaños de corpus puede afectar en gran medida la calidad de un modelo de word2vec. La precisión se puede mejorar de varias maneras, incluida la elección de la arquitectura del modelo (CBOW o Skip-Gram), aumentando el conjunto de datos de entrenamiento, aumentando el número de dimensiones vectoriales y aumentando el tamaño de la ventana de palabras consideradas por el algoritmo. Cada una de estas mejoras tiene el costo de una mayor complejidad computacional y, por lo tanto, un mayor tiempo de generación del modelo. [1]

En los modelos que utilizan grandes corpus y un gran número de dimensiones, el modelo de omisión de gramo produce la mayor precisión general y de forma consistente produce la mayor precisión en las relaciones semánticas, además de producir la mayor precisión sintáctica en la mayoría de los casos. Sin embargo, el CBOW es menos costoso computacionalmente y produce resultados de precisión similares. [1]

En general, la precisión aumenta con el número de palabras utilizadas y el número de dimensiones. Mikolov y col. [1] informan que duplicar la cantidad de datos de entrenamiento da como resultado un aumento en la complejidad computacional equivalente a duplicar el número de dimensiones vectoriales.

Altszyler y coautores (2017) estudiaron el rendimiento de Word2vec en dos pruebas semánticas para diferentes tamaños de corpus. [21] Descubrieron que Word2vec tiene una curva de aprendizaje pronunciada , superando a otra técnica de incrustación de palabras ( LSA ) cuando se entrena con un tamaño de corpus de mediano a grande (más de 10 millones de palabras). Sin embargo, con un pequeño cuerpo de entrenamiento, LSA mostró un mejor rendimiento. Además, muestran que la mejor configuración de parámetros depende de la tarea y el corpus de entrenamiento. Sin embargo, para los modelos skip-gram entrenados en corpora de tamaño mediano, con 50 dimensiones, un tamaño de ventana de 15 y 10 muestras negativas parece ser un buen ajuste de parámetros.

Ver también [ editar ]

  • Autoencoder
  • Matriz documento-plazo
  • Extracción de características
  • Aprendizaje de funciones
  • Modelos de lenguaje de redes neuronales
  • Modelo de espacio vectorial
  • Vector de pensamiento
  • fastText
  • Guante
  • Distancia de compresión normalizada

Referencias [ editar ]

  1. ^ a b c d e f g h i Mikolov, Tomas; et al. (2013). "Estimación eficiente de representaciones de palabras en el espacio vectorial". arXiv : 1301.3781 [ cs.CL ].
  2. ^ [1] , "Calcular representaciones numéricas de palabras en un espacio de alta dimensión" 
  3. Mikolov, Tomas; et al. (2013). "Estimación eficiente de representaciones de palabras en el espacio vectorial". arXiv : 1301.3781 [ cs.CL ].
  4. Mikolov, Tomas (2013). "Representaciones distribuidas de palabras y frases y su composicionalidad". Avances en sistemas de procesamiento de información neuronal . arXiv : 1310.4546 .
  5. ^ a b Goldberg, Yoav; Levy, Omer (2014). "Word2vec explicado: derivación del método de inserción de palabras de muestreo negativo de Mikolov et al.". arXiv : 1402,3722 [ cs.CL ].
  6. Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado, Greg S .; Dean, Jeff (2013). Representaciones distribuidas de palabras y frases y su composicionalidad . Avances en sistemas de procesamiento de información neuronal . arXiv : 1310.4546 . Código bibliográfico : 2013arXiv1310.4546M .
  7. ^ a b c "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google" . code.google.com . Consultado el 13 de junio de 2016 .
  8. ^ "Parámetro (hs y negativo)" . Grupos de Google . Consultado el 13 de junio de 2016 .
  9. ^ "Visualización de datos usando t-SNE" (PDF) . Journal of Machine Learning Research, 2008. Vol. 9, pág. 2595 . Consultado el 18 de marzo de 2017 .
  10. ^ Le, Quoc; et al. (2014). "Representaciones distribuidas de sentencias y documentos". arXiv : 1405.4053 [ cs.CL ].
  11. ^ "Tutorial de Doc2Vec usando Gensim" . Consultado el 2 de agosto de 2015 .
  12. ^ "Doc2vec para análisis de sentimiento de IMDB" . Consultado el 18 de febrero de 2016 .
  13. ^ "Doc2Vec y vectores de párrafo para clasificación" . Consultado el 13 de enero de 2016 .
  14. ^ a b Asgari, Ehsaneddin; Mofrad, Mohammad RK (2015). "Representación continua distribuida de secuencias biológicas para proteómica profunda y genómica" . PLOS ONE . 10 (11): e0141287. arXiv : 1503.05140 . Código bibliográfico : 2015PLoSO..1041287A . doi : 10.1371 / journal.pone.0141287 . PMC 4640716 . PMID 26555596 .  
  15. Ng, Patrick (2017). "dna2vec: representaciones vectoriales consistentes de k-mers de longitud variable". arXiv : 1701.06279 [ q-bio.QM ].
  16. ^ Banerjee, Imon; Chen, Matthew C .; Lungren, Matthew P .; Rubin, Daniel L. (2018). "Anotación de informe de radiología mediante incrustaciones de palabras inteligentes: aplicada a cohorte de TC de tórax multiinstitucional" . Revista de Informática Biomédica . 77 : 11-20. doi : 10.1016 / j.jbi.2017.11.012 . PMC 5771955 . PMID 29175548 .  
  17. ^ Levy, Omer; Goldberg, Yoav; Dagan, Ido (2015). "Mejorar la similitud de distribución con las lecciones aprendidas de las incrustaciones de Word" . Transacciones de la Asociación de Lingüística Computacional . Transacciones de la Asociación de Lingüística Computacional. 3 : 211-225. doi : 10.1162 / tacl_a_00134 .
  18. ^ Arora, S; et al. (Verano de 2016). "Un enfoque de modelo de variable latente para incrustaciones de palabras basadas en PMI" . Transacciones de Assoc. De Comp. Lingüística . 4 : 385–399. doi : 10.1162 / tacl_a_00106 - a través de ACLWEB.
  19. Mikolov, Tomas; Yih, Wen-tau; Zweig, Geoffrey (2013). "Regularidades lingüísticas en representaciones de palabras de espacio continuo". HLT-Naacl : 746–751.
  20. ^ "Gensim - Aprendizaje profundo con word2vec" . Consultado el 10 de junio de 2016 .
  21. ^ Altszyler, E .; Ribeiro, S .; Sigman, M .; Fernández Slezak, D. (2017). "La interpretación del significado de los sueños: resolución de ambigüedad mediante análisis semántico latente en un pequeño corpus de texto". Conciencia y cognición . 56 : 178-187. arXiv : 1610.01520 . doi : 10.1016 / j.concog.2017.09.004 . PMID 28943127 . S2CID 195347873 .  

Enlaces externos [ editar ]

  • Wikipedia2Vec [2] ( introducción )

Implementaciones [ editar ]

  • C
  • C#
  • Python (TensorFlow)
  • Python (Gensim)
  • Java / Scala