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.
- Cómo hacer una carrera desde el nivel más básico hasta el nivel profesional en ciencia de datos, aprendizaje automático y aprendizaje profundo
- ¿Qué papel juegan las redes neuronales y el aprendizaje automático en la atención médica?
- ¿Es posible crear un filtro adaptativo usando una red neuronal para que después del entrenamiento pueda filtrar la señal ruidosa y dar la salida deseada?
- ¿Es Siraj Raval el Neil De Grasse Tyson del aprendizaje profundo?
- ¿Cómo debo comenzar si quiero ser parte de un proyecto de inteligencia artificial?
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”.