¿Cómo representa doc2vec el vector de características de un documento? ¿Alguien puede explicar matemáticamente cómo se realiza el proceso?

Doc2vec fue presentado por Le & Mikolov en su documento ICML’14 – “Representaciones distribuidas de oraciones y documentos”. Como mencionó, es un conjunto de enfoques para representar documentos como vectores de baja dimensión y longitud fija (también conocidos como incrustaciones de documentos). Tenga en cuenta que doc2vec no es el único enfoque para crear representaciones de baja dimensión. Sin embargo, ha habido afirmaciones recientes de que doc2vec supera a otros esquemas de integración. Ver: incrustación de documentos con vectores de párrafo.

Para comprender doc2vec, es recomendable comprender el enfoque popular de word2vec, ya que el primero es una extensión directa del segundo. Los métodos basados ​​en Word2vec tienen como objetivo calcular representaciones vectoriales de palabras (también conocidas como incrustaciones de palabras). Resumiré brevemente uno de los algoritmos de word2vec aquí y luego extenderé esa comprensión a doc2vec.

Word2vec es una red neuronal de tres capas con una entrada, una oculta y una capa de salida. La idea de la arquitectura CBOW (bolsa continua de palabras), uno de los algoritmos basados ​​en word2vec, es aprender representaciones de palabras que puedan predecir una palabra dadas las palabras que la rodean. La capa de entrada corresponde a señales de contexto (palabras circundantes) y la capa de salida corresponden a señales para la palabra objetivo pronosticada. A continuación se muestra un ejemplo con una figura para ilustrar la red neuronal. Supongamos que tiene una oración de entrada: “El gato se sentó en el tapete”. El objetivo es aprender la representación de las palabras “the”, “cat”, “sat”, etc. Con este fin, la red neuronal trata de aprender características (pesos [math] W [/ math] y [math] W ‘[/ matemáticas]) que miran las palabras en una ventana, dicen “El gato se sentó” e intentan predecir la siguiente palabra, “encendido”. Por lo tanto, con la entrada como “the”, “cat”, “sat”, el proceso de entrenamiento ajusta el peso de la red, de modo que la probabilidad de salida “on” se maximiza, en comparación con otras palabras en el vocabulario. A medida que el procedimiento de entrenamiento repite este proceso en un gran número de oraciones (o frases), los pesos se “estabilizan”. Estos pesos se usan luego como representaciones vectorizadas de palabras.

Antes de pasar a doc2vec, me gustaría enfatizar un poco el concepto de “contexto”. El proceso de capacitación de word2vec puede verse como una tarea de aprendizaje supervisada para predecir la clase de palabras objetivo dado el contexto de entrada. Por ejemplo, en nuestra oración de ejemplo, el corpus de entrenamiento de pares (contexto, objetivo) tiene datos de entrenamiento como [math] D = \ {[/ math] (“el gato se sentó”, “encendido”), (“gato se sentó” , “The”), (“se sentó en”, “mat”) [math] \} [/ math]. En este ejemplo, el contexto constituye tres palabras que aparecen antes de las palabras objetivo. Es importante comprender que el contexto es más genérico que solo las palabras. Podría ser cualquier señal útil para predecir la palabra objetivo. Por ejemplo, parte de las etiquetas de voz de palabras anteriores pueden constituir contexto. Si tenemos varios documentos de los cuales provienen pares (contexto, destino), el documento en sí mismo puede servir como contexto. Piénselo, si sabe que una oración de ejemplo “¡sí, !” Proviene de una página de wikipedia sobre “Elecciones presidenciales estadounidenses de 2008”, es mucho más fácil predecir ese objetivo como la palabra “puede”.

Doc2Vec explora la observación anterior agregando nodos de entrada adicionales que representan documentos como contexto adicional. Cada nodo adicional se puede considerar como una identificación para cada documento de entrada.

[matemática] D [/ matemática] representa las características que representan el contexto del documento y [matemática] W [/ matemática] representa el contexto de la palabra en una ventana que rodea la palabra objetivo. La capacitación es similar a word2vec, con contexto de documento adicional. El objetivo del aprendizaje doc2vec es

[math] \ max \ sum _ {\ forall (tar, con, doc)} \ log P [/ math] (palabra objetivo | palabras de contexto, contexto del documento)

Al final del proceso de capacitación, tendrá incrustaciones de palabras, [matemática] W [/ matemática] e incrustación de documentos [matemática] D [/ matemática] para documentos en el corpus de capacitación.

¡Excelente! Tenemos incrustaciones de documentos para el corpus de entrada, pero ¿qué pasa con los nuevos documentos invisibles que aparecen en el conjunto de prueba? La idea es aprender su representación en el momento de la prueba resolviendo un problema de optimización para la inferencia.

El problema de optimización no es diferente del problema de capacitación. [math] \ max \ sum _ {\ forall (tar, con)} \ log P [/ math] (palabra objetivo | palabras de contexto, documento = documento de prueba). Sin embargo, se puede elegir mantener [matemática] W [/ matemática] y [matemática] W ‘[/ matemática] fija y aprender la variable [matemática] D [/ matemática] como incrustación de documentos.

Al llegar a la segunda parte de la pregunta sobre las matemáticas involucradas, señalaré dos recursos. Uno es particularmente en word2vec: “aprendizaje de parámetros de Word2Vec explicado” por Xin Rong. Esto tiene derivaciones de las ecuaciones de actualización de word2vec con todos los detalles sangrientos de muestreo negativo o softmax jerárquico (no se preocupe demasiado si no sabe lo que eso significa). El otro recurso son mis notas (sin terminar y sin editar) sobre derivaciones de W2V y P2V: “Comprensión de Word2Vec y Paragraph2Vec”.

More Interesting

Visión por computadora: ¿Cuáles son los problemas abiertos para la recuperación de imágenes?

Cómo manejar múltiples funciones usando SVM en visión artificial

¿Tenemos que aprender matemáticas detrás de cada algoritmo de aprendizaje automático?

¿Cuál es el ejemplo de código más simple para redes neuronales recurrentes (RNN) en TensorFlow?

¿De qué manera las competencias de minería de datos y aprendizaje automático ayudan / restan valor a estos campos académicos y sus aplicaciones comerciales?

¿Existe alguna implementación de aprendizaje profundo de respuesta basada en la recuperación de preguntas?

¿Puedo usar el aprendizaje profundo o ANN para un problema de agrupación como KNN?

¿Cuál es la mejor manera de manejar un modelo multitarea si las etiquetas de datos de capacitación tienen NA, es decir, no se analizaron todas las muestras para todas las tareas?

¿Qué es el mecanismo de atención en redes neuronales?

¿Puedo usar el aprendizaje por refuerzo para ayudar a las personas a elegir la ruta más barata cuando viajan en avión?

¿Cuál es la diferencia entre machine learning y IOT?

¿Cuál es la explicación de la fórmula de compensación de Bias Variance?

¿Cuáles son algunos proyectos de investigación interesantes relacionados con el aprendizaje automático?

Quiero cambiar mi flujo de .NET a Big Data o Machine Learning. ¿Como empiezo?

¿Con qué facilidad pueden los actuarios cambiar a carreras relacionadas con TI como la ciencia de datos, el aprendizaje automático y el desarrollo de software?