Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Word2vec
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Wikificar|t=20220123214927}} '''Word0vec''' es una técnica para el [[procesamiento de lenguaje natural]] publicada en 2013. El algoritmo Word2vec utiliza un modelo de [[Red neuronal artificial|red neuronal]] para aprender asociaciones de palabras a partir de un gran [[Corpus lingüístico|corpus de texto]]. Una vez entrenado, dicho modelo puede detectar palabras [[Sinónimo|sinónimas]] o sugerir palabras adicionales para una frase sin terminar. Como su nombre indica, Word2vec representa cada palabra distinta con una lista particular de números llamada [[vector]]. Los vectores están escogidos cuidadosamente de forma que una función matemática sencilla (la [[similitud coseno]] entre los vectores) indica el nivel de la [[similitud semántica]] entre las palabras representada por dichos vectores. == Aproximación == Word2vec es un grupo de modelos relacionados que se utilizan para producir [[Word embedding|word embeddings]]. Estos modelos son poco profundos, se entrenan [[Red neuronal artificial|redes neuronales]] de dos capas para reconstruir contextos lingüísticos de palabras. Word2vec toma como entrada un gran [[Corpus lingüístico|corpus de texto]] y produce un [[espacio vectorial]], típicamente de varios cientos de [[Dimensión|dimensiones]], asignando cada palabra única en el [[Lingüística de corpus|corpus]] a un vector correspondiente en el espacio. Los [[Word embedding|word embeddings]] están colocados en el espacio vectorial de forma que las palabras que comparten contextos comunes en el corpus están localizadas cerca unas de otras en el espacio.<ref name="mikolov0">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> == Historia == Un equipo de investigadores dirigido por [[Tomáš Mikolov|Tomas Mikolov]] en [[Google]] creó, patentó y publicó Word2vec en 2013 en dos artículos.<ref>{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref><ref>{{cite journal|title=Distributed representations of words and phrases and their compositionality.|last1=Mikolov|first1=Tomas|date=2013|journal=Advances in Neural Information Processing Systems|arxiv=1310.4546}}</ref> Otros investigadores ayudaron a analizar y explicar el algoritmo.<ref name="explain2">{{cite arXiv|first1=Yoav|last1=Goldberg|first2=Omer|last2=Levy|title=word0vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method|eprint=1402.3722|class=cs.CL|year=2014}}</ref> Los vectores embedding creados usando el algoritmo Word2vec tienen algunas ventajas comparados con algoritmos anteriores<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> como el [[análisis semántico latente]]. == CBOW y skip-gram == Word2vec puede utilizar cualquiera de las dos arquitecturas de modelo para producir una [[Red neuronal artificial|representación distribuida]] de palabras: [[modelo bolsa de palabras]] continuo (CBOW) o ''[[N-grama|skip-gram]]'' continuo, donde continuo hace referencia al espacio de los vectores de representación. El término skip-gram procede de la forma en que el modelo aprende a predecir palabras contextuales a partir de una palabra objetivo. En el modelo de skip-gram, dada una palabra objetivo, se «salta» a través de las palabras de contexto en la ventana circundante para predecir cada palabra de contexto de forma independiente. Por ejemplo, si la palabra objetivo es «gato» y el tamaño de la ventana de contexto es 2, el modelo de saltograma no predice las palabras de contexto en orden secuencial (como «el» seguido de «tierno» seguido de "y"). En su lugar, predice cada palabra contextual de forma independiente, de ahí el «salto» el término salto.<ref>{{Cita web|url=https://towardsdatascience.com/skip-gram-nlp-context-words-prediction-algorithm-5bbf34f84e0c|título=Skip-Gram: NLP context words prediction algorithm|fechaacceso=2024-04-16|apellido=Unohi|nombre=Sanket|fecha=2019-03-17|sitioweb=Medium|idioma=en}}</ref> En la arquitectura de la bolsa continua de palabras, el modelo predice la palabra actual de una ventana de palabras de contexto circundante. El orden de palabras de contexto no influye predicción (bolsa-de-suposición de palabras). En la arquitectura saltograma (N-gramas con saltos) continuo, el modelo utiliza la palabra actual para pronosticar la ventana de palabras de contexto que la rodean. La arquitectura saltograma hace que las palabras de contexto cercano pesen más que las palabras del contexto más lejano.<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref><ref name="mikolov-nips2">{{cite conference|first1=Tomas|last1=Mikolov|first2=Ilya|last2=Sutskever|first3=Kai|last3=Chen|first4=Greg S.|last4=Corrado|first5=Jeff|last5=Dean|title=Distributed representations of words and phrases and their compositionality|conference=[[Advances in Neural Information Processing Systems]]|year=2013|arxiv=1310.4546|bibcode=2013arXiv1310.4546M}}</ref> Según la nota de los autores,<ref name=":14">{{Cite web|url=https://code.google.com/archive/p/word2vec/|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com|access-date=2016-06-13}}</ref> CBOW es más rápido, mientras que saltograma trabaja mejor para palabras poco frecuentes. == Parametrización == Los resultados del entrenamiento de Word2vec pueden ser sensibles a la [[Parámetro|parametrización]]. Los siguientes son algunos parámetros importantes en el entrenamiento de Word2vec. === Algoritmo de entrenamiento === Un modelo Word2vec puede ser entrenado con [[Función SoftMax|softmax]] jerárquico y/o muestreo negativo. Para aproximar la verosimilitud logarítmica condicional, un modelo busca maximizar, el método jerárquico softmax utiliza un [[Codificación Huffman|á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 [[Función de verosimilitud|probabilidad logarítmica]] de las instancias negativas muestreadas. Según los autores, el softmax jerárquico trabaja mejor para palabras infrecuentes, mientras que el muestreo negativo funciona mejor para palabras frecuentes y mejor con vectores de pocas dimensionales.<ref name=":14"/> Cuando el número de épocas aumenta, el softmax jerárquico deja de ser útil.<ref>{{Cite web|url=https://groups.google.com/forum/#!msg/word2vec-toolkit/WUWad9fL0jU/LdbWy1jQjUIJ|title=Parameter (hs & negative)|website=Google Groups|access-date=2016-06-13}}</ref> === Sub-Muestreo === Las palabras de alta frecuencia a menudo proporcionan poca información. Las palabras con una frecuencia por encima de un cierto umbral se pueden submuestrear para acelerar el entrenamiento.<ref>{{Cita web|url=https://jmlr.csail.mit.edu/papers/volume9/vandermaaten08a/vandermaaten08a.pdf|título=Visualizing Data using t-SNE|fechaacceso=2017-03-18|sitioweb=Journal of Machine Learning Research, 2008. Vol. 9, pg. 2595}}</ref> === Dimensionalidad === La calidad de word embedding aumenta con dimensionalidades altas. Pero después de alcanzar algún punto, la ganancia marginal disminuye.<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> Típicamente, la dimensionalidad de los vectores se establece entre 100 y 1.000. === Ventana de contexto === El tamaño de la ventana de contexto determina cuántas palabras antes y después de una palabra se incluyen como palabras de contexto de la palabra dada. Según la nota de los autores, el valor recomendado es 10 para saltograma y 5 para CBOW.<ref name=":14"/> == Extensiones == Se ha propuesto una extensión de Word2vec para construir embeddings de documentos enteros (en lugar de palabras individuales).<ref name="doc2vec2">{{cite arXiv|first=Quoc|last=Le|title=Distributed Representations of Sentences and Documents.|eprint=1405.4053|display-authors=etal|class=cs.CL|year=2014}}</ref> Esta extensión se llama paragraph2vec o doc2vec y ha sido implementado en C, Python<ref name="doc2vec_python2">{{cite web|url=https://medium.com/@klintcho/doc2vec-tutorial-using-gensim-ab3ac03d3a1|title=Doc2Vec tutorial using Gensim|access-date=2015-08-02|display-authors=etal}}</ref><ref name="doc2vec_imdb2">{{cite web|url=https://github.com/piskvorky/gensim/blob/develop/docs/notebooks/doc2vec-IMDB.ipynb|title=Doc2vec for IMDB sentiment analysis|website=[[GitHub]]|access-date=2016-02-18|display-authors=etal}}</ref> y Java/Scala<ref name="doc2vec_java2">{{cite web|url=http://deeplearning4j.org/doc2vec.html|title=Doc2Vec and Paragraph Vectors for Classification|access-date=2016-01-13|display-authors=etal|fechaarchivo=31 de diciembre de 2015|urlarchivo=https://web.archive.org/web/20151231073758/http://deeplearning4j.org/doc2vec.html|deadurl=yes}}</ref> (ver abajo), las versiones de Java y Python también soportan la inferencia de embeddings de documentos en documentos nuevos, no vistos. == Vectores de palabras para Bioinformática: BioVectores == Asgari y Mofrad<ref name=":03">{{cite journal|title=Continuous Distributed Representation of Biological Sequences for Deep Proteomics and Genomics|last1=Asgari|first1=Ehsaneddin|last2=Mofrad|first2=Mohammad R.K.|date=2015|journal=PLOS ONE|volume=10|issue=11|page=e0141287|bibcode=2015PLoSO..1041287A|doi=10.1371/journal.pone.0141287|pmc=4640716|pmid=26555596|arxiv=1503.05140}}</ref> han propuesto una extensión de los vectores de palabra para n-gramas en secuencias [[Biología|biológicas]] (por ejemplo, [[Ácido desoxirribonucleico|ADN]], [[Ácido ribonucleico|ARN]], y [[Proteína|Proteínas]]) para aplicaciones de [[bioinformática]]. Se llaman bio-vectores (BioVec) para referirse a secuencias biológicas en general con vectores de proteínas (ProtVec) para proteínas (secuencias de aminoácidos) y vectores de genes (GeneVec) para secuencias de genes, esta representación puede ser ampliamente utilizada en aplicaciones de aprendizaje automático en proteómica y genómica. Los resultados sugieren que los BioVectors pueden caracterizar secuencias biológicas en términos de interpretaciones bioquímicas y biofísicas de los patrones subyacentes.<ref name=":03" /> Una variante similar, dna2vec, ha mostrado que hay correlación entre la puntuación de similitud de [[Algoritmo Needleman-Wunsch|Needleman-Wunsch]] y la [[Similitud coseno|similitud del coseno]] de los vectores de palabras dna2vec.<ref>{{cite arXiv|eprint=1701.06279|first=Patrick|last=Ng|title=dna2vec: Consistent vector representations of variable-length k-mers|date=2017|class=q-bio.QM}}</ref> == Vectores de palabra para Radiología: Embedding Inteligente de Palabras (IWE) == Banerjee et al.<ref>{{Cita publicación|título=Radiology report annotation using intelligent word embeddings: Applied to multi-institutional chest CT cohort|apellidos=Banerjee|nombre=Imon|apellidos2=Chen|nombre2=Matthew C.|publicación=Journal of Biomedical Informatics|volumen=77|páginas=11–20|doi=10.1016/j.jbi.2017.11.012|pmc=5771955|pmid=29175548|apellidos3=Lungren|nombre3=Matthew P.|apellidos4=Rubin|nombre4=Daniel L.|año=2018}}</ref> han propuesto una extensión de los vectores de palabra para crear una representación vectorial densa de informes de radiología no estructurados. Uno de los retos más grandes de Word2Vec es cómo manejar palabras desconocidas o que están fuera del vocabulario (OOV) y palabras morfológicamente similares. Si el modelo Word2vec no ha encontrado una palabra particular antes, será forzado a utilizar un vector aleatorio, el cual está generalmente lejos de su representación ideal. Esto particularmente puede ser un problema en ámbitos como la medicina, donde los sinónimos y palabras relacionadas pueden ser utilizadas dependiendo del estilo preferido del radiólogo, y las palabras pueden haber sido utilizadas de manera poco frecuente en un gran corpus. IWE combina Word2vec con una técnica de mapeo de diccionario semántica para emprender los retos importantes de [[Extracción de la información|extracción de información]] de textos clínicos, los cuales incluyen ambigüedad de texto libre de estilo narrativo, variaciones léxicas, uso de fases agramaticales y telegráficas, ordenación arbitraria de palabras, y aparición frecuente de abreviaturas y acrónimos. De interés particular, el modelo IWE (entrenado con un conjunto de datos institucional) tradujo con éxito un conjunto de datos institucional diferente, lo que demuestra una buena generalización del enfoque entre instituciones. == Análisis == Las razones para el aprendizaje exitoso del [[word embedding]] en el marco Word2vec son poco conocidas. Goldberg y Levy señalan que la función objetivo word2vec hace que palabras que aparecen en contextos similares tengan embeddings similares (medidos por la [[Similitud coseno|similitud del coseno]]) y señalan que esto está en la línea de la [[Semántica distribucional|hipótesis distribucional]] de J. R. Firth. Sin embargo, señalan que esta explicación es "muy poco precisa" y argumentan que sería preferible una explicación más formal.<ref name="explain2">{{cite arXiv|first1=Yoav|last1=Goldberg|first2=Omer|last2=Levy|title=word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method|eprint=1402.3722|class=cs.CL|year=2014}}</ref> Levy et al. (2015)<ref>{{cite journal|url=http://www.aclweb.org/anthology/Q15-1016|title=Improving Distributional Similarity with Lessons Learned from Word Embeddings|last1=Levy|first1=Omer|last2=Goldberg|first2=Yoav|date=2015|journal=Transactions of the Association for Computational Linguistics|volume=3|pages=211–225|location=Transactions of the Association for Computational Linguistics|doi=10.1162/tacl_a_00134|last3=Dagan|first3=Ido}}</ref> muestran que gran parte del rendimiento superior de Word2vec o embeddings similares en tareas posteriores no es el resultado de los modelos per se, sino de la elección de hiperparámetros específicos. La transferencia de estos hiperparámetros a enfoques más 'tradicionales' produce rendimientos similares en tareas posteriores. Arora et al. (2016)<ref>{{Cite journal|url=https://aclweb.org/anthology/Q16-1028|title=A Latent Variable Model Approach to PMI-based Word Embeddings|date=Summer 2016|journal=Transactions of the Association for Computational Linguistics|volume=4|pages=385–399|doi=10.1162/tacl_a_00106|display-authors=et al|last=Arora|first=S|via=ACLWEB}}</ref> explican que Word2vec y los algoritmos relacionados realizan inferencias para un [[modelo generador]] simple de texto, que implica un proceso de generación de recorrido aleatorio basado en un modelo de tema loglineal. Utilizan esto para explicar algunas propiedades de los word embeddings, incluido su uso para resolver analogías. == Preservación de las relaciones semánticas y sintácticas == El enfoque de word embedding es capaz de capturar múltiples grados diferentes de similitud entre palabras. Mikolov et al. (2013)<ref>{{Cite journal|title=Linguistic Regularities in Continuous Space Word Representations.|last1=Mikolov|first1=Tomas|last2=Yih|first2=Wen-tau|date=2013|journal=HLT-Naacl|pages=746–751|last3=Zweig|first3=Geoffrey}}</ref> encontraron que los patrones semánticos y sintácticos se pueden reproducir utilizando aritmética vectorial. Los patrones como "Hombre es a Mujer como Hermano es a Hermana" puede ser generada mediante operaciones algebraicas en las representaciones vectoriales de estas palabras, de manera que la representación vectorial de "Hermano" - "Hombre" + "Mujer" produce un resultado que es más cercano a la representación vectorial de "Hermana" en el modelo. Tales 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). == Evaluando la calidad de un modelo == Mikolov et al. (2013)<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> desarrollaron un enfoque para evaluar la calidad de un modelo 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 [[Benchmark (informática)|benchmark]] para probar la precisión de un modelo. Cuando se evalúa la calidad de un modelo vectorial, un usuario puede recurrir a esta prueba de precisión que está implementada en Word2vec,<ref>{{Cite web|url=https://radimrehurek.com/gensim/models/word2vec.html|title=Gensim - Deep learning with word2vec|access-date=2016-06-10}}</ref> 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.<ref name="mikolov4" /> === Parámetros y calidad de modelo === El uso de diferentes parámetros de modelo y diferentes tamaños de corpus puede afectar en gran medida a la calidad de un modelo Word2vec. La precisión se puede mejorar de varias maneras, incluida la elección de la arquitectura del modelo (CBOW o saltograma), aumentando el conjunto de datos de entrenamiento, aumentando la cantidad de dimensiones vectoriales y aumentando el tamaño de la ventana de las palabras consideradas por el algoritmo. Cada una de estas mejoras conlleva el coste de una mayor complejidad computacional y, por lo tanto, un mayor tiempo en la generación de los modelos.<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> En los modelos que utilizan grandes corpus y una gran cantidad de dimensiones, el modelo saltograma produce la precisión general más alta y produce consistentemente la precisión más alta en las relaciones semánticas, además de producir la precisión sintáctica más alta en la mayoría de los casos. Sin embargo, el CBOW es menos costoso computacionalmente y produce resultados de precisión similares.<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> En general, la precisión aumenta con el número de palabras utilizadas y el número de dimensiones. Mikolov et al.<ref name="mikolov4">{{cite arXiv|first=Tomas|last=Mikolov|title=Efficient Estimation of Word Representations in Vector Space|eprint=1301.3781|display-authors=etal|class=cs.CL|year=2013}}</ref> 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.<ref name="Altszyler2">{{Cite journal|title=The interpretation of dream meaning: Resolving ambiguity using Latent Semantic Analysis in a small corpus of text|date=2017|journal=Consciousness and Cognition|volume=56|pages=178–187|doi=10.1016/j.concog.2017.09.004|pmid=28943127|author3=Sigman, M.|author4=Fernández Slezak, D.|author1=Altszyler, E.|author2=Ribeiro, S.|arxiv=1610.01520|s2cid=195347873}}</ref> Encontraron que Word2vec tiene una curva de aprendizaje empinada, superando a otra técnica de word embedding ([[Análisis semántico latente|LSA]]) cuando se entrena con un tamaño de corpus mediano a grande (más de 10 millones de palabras). Sin embargo, con un corpus pequeño de entrenamiento, [[Análisis semántico latente|LSA]] mostró un mejor rendimiento. Además, muestran que la mejor configuración de parámetros depende de la tarea y del corpus de entrenamiento. Sin embargo, para modelos saltograma formados con corpus de tamaño medio, con 50 dimensiones, un tamaño de ventana de 15 y 10 muestras negativas parece para ser un buen ajuste de parámetros. == Véase también == * [[Aprendizaje de características]] * [[Modelación del lenguaje#Red neuronal|Modelos de lenguaje de redes neuronales]] * [[Modelo de espacio vectorial]] * [[Incrustación de vecinos estocásticos distribuidos en t (t-SNE)]] == Referencias == {{Reflist}} == Enlaces externos == * [https://wikipedia2vec.github.io/demo/ Wikipedia2Vec] ([https://wikipedia2vec.github.io/wikipedia2vec/ Introducción]) === Implementaciones === * [https://github.com/tmikolov/word2vec C] * [https://github.com/eabdullin/Word2Vec.Net C#] * [https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.ml.feature.Word2Vec.html Python (Spark)] * [https://github.com/tensorflow/tensorflow/blob/r1.1/tensorflow/examples/tutorials/word2vec/word2vec_basic.py Python (TensorFlow)] * [https://radimrehurek.com/gensim/models/word2vec.html Python (Gensim)] * [https://github.com/deeplearning4j/deeplearning4j Java/Scala] * [https://github.com/bnosac/word2vec R] {{Control de autoridades}} [[Categoría:Aprendizaje automático]] [[Categoría:Software científico libre]] [[Categoría:Procesamiento de lenguaje natural]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Word2vec
»
Añadir idiomas
Añadir tema