[Lectura intensiva del artículo oración por oración] DeepWalk, caminata aleatoria para realizar la incrustación de gráficos vectoriales, la primera integración de procesamiento de lenguaje natural y gráficos

Enlace original: DeepWalk: Aprendizaje en línea de representaciones sociales

手动防爬虫,作者CSDN:总是重复名字我很烦啊,联系邮箱daledeng123@163.com

Consejos antes de leer

Tener una cierta comprensión de Word2Vec y el proceso de incrustación de palabras de procesamiento de lenguaje natural.Si no lo sabe antes, simplemente lea mi serie de artículos de PNL desde cero hasta el final de la parte de codificación.

conocimiento de fondo

Los antecedentes del nacimiento de DeepWalk y los problemas que quiere resolver

Antes del nacimiento de DeepWalk, la ingeniería de características creada por la intervención humana se usaba a menudo para el aprendizaje automático de gráficos. En este caso, se enfrentaban dos problemas: (1) La calidad de la ingeniería de características
determina la calidad del modelo. Además, no existe un estándar unificado para la ingeniería de características. La ingeniería de características requerida para diferentes conjuntos de datos es diferente. Por lo tanto, la estabilidad del modelo de minería de datos de gráficos no es buena.
(2) La ingeniería de características artificiales no es más que centrarse en la información de los nodos, la información de los bordes y la información de los gráficos, e independientemente de si están todos involucrados, se supone que toda la información se puede considerar (de hecho, es imposible) tal ingeniería de características casi perfecta, pero no se puede prestar atención a la información de atributos de estado multimodo de los nodos. Esto significa que, incluso con una ingeniería de características perfecta, solo se puede considerar información limitada y la profundidad de la extracción de datos es muy limitada.

DeepWalk quiere usar un algoritmo de este tipo para codificar cada nodo en el gráfico en un vector D-dimensional (proceso de incrustación), que es un aprendizaje no supervisado. Al mismo tiempo, la información de incrustación incluye toda la información, como nodos, conexiones y estructuras gráficas en el gráfico, que se utilizan para tareas de aprendizaje supervisado posteriores.

¿Por qué podemos aprender de los métodos de la PNL?

Los datos gráficos son un tipo de datos secuenciales con estructura topológica. Dado que se trata de datos de secuencia, puede utilizar el método de procesamiento de datos de secuencia. Los llamados datos de secuencia aquí significan que la red gráfica siempre tiene una cierta direccionalidad y relevancia. Por ejemplo, desde Moziqiao hasta la estación de tren del sur, puede tomar la línea 3, cambiar a la línea 1 en el gimnasio provincial y luego ir a la Estación Sur de Ferrocarril, o puede tomar la Línea 8 en la Puerta Oeste de la Universidad de Sichuan. Todas estas son relaciones de apuntamiento. Entonces, considero "Puente Mozi - Gimnasio Provincial - Puente Nijia - Tongzilin - Estación Ferroviaria del Sur" como una secuencia. Por supuesto, esta secuencia no es única, podemos "Sichuan University Wangjiang Campus-Nijiaqiao-Tongzilin-South Railway Station". También puedes tomar un círculo más grande y tomar la Línea 7. En resumen, bajo la premisa de no restringir el camino más corto, tenemos innumerables posibilidades de un punto a otro.La red de apuntamiento formada por estas posibilidades es equivalente a una secuencia en NLP, y en esta secuencia de gráficos, los nodos adyacentes también tienen una similar correlación con la información del texto.

¿Qué tipo de características debe tener el código de incrustación?

Ha habido una oración similar en el artículo anterior.La información incrustada incluye toda la información, como nodos, conexiones y estructuras gráficas en el gráfico, y se usa para tareas de aprendizaje supervisado posteriores. De hecho, esto es más una idea, concretamente en el campo de la PNL esperamos que en la codificación de la información del texto e incluso de las palabras, además de retener la información de otras palabras, también debamos retener su información de posición y gramatical. información en el texto original tanto como sea posible Información de contexto, información de contexto, etc. Debido a que solo este vector base es lo suficientemente fuerte, el modelo entrenado con este vector puede decodificarse lo suficientemente poderoso. Por ejemplo, estas dos frases:
Oración 1: Hace muy buen tiempo hoy, fui a jugar baloncesto y accidentalmente rompí el Fruit 14 recién comprado, pero no importa, compré un seguro y puedo reparar el teléfono gratis. .
Oración 2: Voy a reparar mi teléfono hoy.
Obviamente, la primera oración contiene más información y podemos entender los entresijos de este incidente con mayor claridad. Lo mismo es cierto para las computadoras, solo cuando la información de entrada es lo suficientemente completa puede haber una mejor confiabilidad de salida.
En la red de gráficos, suponiendo que hay dos nodos u y v, su información en el espacio del gráfico debe ser consistente con la información en el espacio vectorial. Esta es la característica central de la incrustación (suponiendo que u y v son puntos adyacentes en el espacio gráfico, luego, en el espacio vectorial, también deberían estar cerca en distancia; si no hay relación entre los ocho polos, entonces no debería haber mucha conexión en el espacio vectorial). Colocar el vector mapeado en un espacio bidimensional o un espacio de mayor dimensión para el diseño de tareas posteriores será más intuitivo que el propio gráfico y transformará el problema del gráfico en un problema tradicional de aprendizaje automático o aprendizaje profundo que no requiere ingeniería de funciones.

¿Qué es la caminata aleatoria?

Primero seleccione un punto, luego seleccione aleatoriamente sus nodos adyacentes, después de mover un paso, seleccione los nodos adyacentes del nodo movido nuevamente para mover y repita este proceso. El registro de los nodos que pasan constituye una secuencia de caminata aleatoria.
Pregunta: ¿Por qué necesitamos un paseo aleatorio?
Respuesta: Un gráfico de red en realidad puede ser muy grande. A través de recorridos aleatorios de muestreo infinito (de hecho, es imposible infinitos veces), puede "ver el leopardo en el tubo, y puede verlo". Desde un sinnúmero de información local para capturar la información de la imagen completa.
La suposición de Random Walk es coherente con la suposición de Word2Vec, es decir, el nodo actual debe estar conectado a los nodos circundantes. Entonces puede construir un problema de salto de gramo de Word2Vec.
inserte la descripción de la imagen aquí
Pensando:
1. De hecho, este Totally Random Walk no es una solución óptima, porque los pesos entre nodos son diferentes. De hecho, se pueden agregar algunas reglas al proceso de caminar para que la secuencia obtenida al caminar parezca más razonable. Pero DeepWalk es una caminata aleatoria completamente uniforme, y Node2Vec ha realizado mejoras en esta área, que se verán más adelante.
2. Debido a la limitación de la cantidad de cálculo, la longitud de esta caminata aleatoria no es infinita, por lo que para una red enorme, aunque se puede ver de un vistazo, también está condenada a que la posición actual y la posición muy lejos away no puede formar ninguna información de contacto en absoluto. Sí, esto es consistente con las limitaciones de Word2Vec. En la red neuronal gráfica GCN, el límite de distancia se eleva, al igual que Transformer eliminó el límite de distancia de RNN, lo que libera en gran medida el potencial del modelo, que se mencionará más adelante.
3. DeepWalk es un experimento mental muy exitoso, pero no puede resolver la expresión de información multimodal, por lo que realmente no ha entrado en el océano azul del aprendizaje profundo y sigue siendo un gran paso adelante en la optimización del aprendizaje automático tradicional.

El proceso general de DeepWalk

Paso 1: Ingrese un gráfico
Paso 2: Muestree una secuencia de caminata aleatoria
Paso 3: Entrene el modelo Node2Vec (construya una tarea de skip-gram)
Paso 4: Codificación de Huffman (un método softmax para resolver el problema de demasiadas clasificaciones, un truco de ingeniería y Sin contar el teórico núcleo de DeepWalk)
Paso 5: obtenga el vector de incrustación del gráfico final de cada nodo

Por lo tanto, DeepWalk tiene un total de 2 modelos. Uno es el modelo de incrustación de palabras de skip-gram, que necesita entrenar una tabla de incrustación de palabras (función de pérdida de skip-gram); el otro es el parámetro de peso de cada árbol binario involucrado en la codificación de Huffman (función de pérdida de entropía cruzada).

Lectura intensiva en papel

Título y autores

inserte la descripción de la imagen aquí
El título del artículo es DeepWalk: Aprendizaje en línea de representaciones sociales, un algoritmo de aprendizaje de representación en línea para la incrustación de nodos gráficos. Luego, en realidad hay dos piezas de información, una es el aprendizaje en línea y la otra son las representaciones sociales.
Para comprender el aprendizaje en línea, personalmente creo que ya debería haber entrenado un modelo de incrustación.Si hay nuevos nodos, solo necesita importar los nuevos nodos y volver a entrenarlos, y no necesita volver a aprender todo el gráfico.
Para las representaciones sociales, el llamado aprendizaje de representación es en realidad representar los nodos gráficos como vectores y alimentarlos con el modelo de aprendizaje subsiguiente, es decir, el aprendizaje de la incrustación de nodos gráficos, que también es un tipo de aprendizaje automático (consulte incrustaciones similares). modelos, que pertenecen a un tipo de estudio no supervisado).

El segundo autor es uno de los autores del marco de aprendizaje profundo temprano Theano, por lo que no es sorprendente que este artículo pueda basarse en algunas ideas de aprendizaje profundo.

Abstracto

inserte la descripción de la imagen aquí

En primer lugar, el artículo dice que este algoritmo DeepWalk es una extensión de los modelos estadísticos comunes. El llamado modelo estadístico es en realidad aprendizaje automático, que cuenta la distribución y las conexiones internas de una gran cantidad de datos y construye una relación de mapeo espacial. Por lo tanto, el autor también cree que DeepWalk también es una extensión del aprendizaje automático.
El tercer párrafo del segundo párrafo mencionó que DeepWalk es un método de caminata aleatoria para aprender, lo que significa que el proceso de incrustación del gráfico se obtiene mediante el aprendizaje automático, en lugar de configurar funciones manualmente, y funciona mejor que otros métodos convencionales en el caso de matrices dispersas El modelo es mucho mejor (y el modelo estadístico es en realidad lo más molesto es la matriz dispersa, lo que equivale a enfrentar dificultades), y también tiene las características de paralelización.
Entonces, en general, lo que DeepWalk quiere hacer es un problema de aprendizaje de representación.Cree que los datos multimodales no se pueden importar directamente al aprendizaje automático estadístico para la clasificación u otras tareas posteriores, y deben representarse en forma de vectores. Y el vector codificado por este método es un vector muy poderoso, que puede lograr el efecto del modelo anterior con menos datos, y tiene ventajas en algunos escenarios que no son fáciles de manejar con modelos convencionales.

inserte la descripción de la imagen aquí
La figura 1 es la imagen más clásica de este trabajo, que pertenece al crit de apertura. En primer lugar, selecciona el conjunto de datos del club de karate. Cada nodo de este conjunto de datos en realidad tiene mucha información. Utiliza un método de agrupación para clasificar cada nodo del club de karate y expresarlos en diferentes colores. Luego utiliza el método de incrustación para representar estos nodos como vectores y los dibuja en un gráfico bidimensional.Se puede encontrar que la distribución del espacio vectorial obtenida por incrustación es en realidad similar a la distribución de datos reales. Pero el aprendizaje automático estadístico puede aprender datos vectoriales, como si rompiera la pared dimensional, estos nodos se pueden clasificar cortando el espacio del vector, realizando la transferencia confiable de operaciones de nivel de nodo gráfico a operaciones de nivel de cantidad.

1. Introducción

La introducción aún presentará algunos antecedentes, y una buena lectura nos ayudará a comprender dónde radica la innovación de este artículo.

inserte la descripción de la imagen aquí
En primer lugar, el autor dijo que las redes de grafos son generalmente relativamente escasas. Esta característica escasa tiene ventajas y desventajas. La ventaja es que es muy conveniente si desea realizar el cálculo de la ruta más corta (usando una matriz de adyacencia); la desventaja es que si desea usar el aprendizaje automático para aprender y extraer información gráfica encontrará una resistencia considerable, porque las matrices dispersas son lo que más le teme al aprendizaje automático. El artículo cree que en las tareas de clasificación de redes de grafos, incluyendo recomendación, detección de anomalías, predicción de conexiones, etc., se debe resolver el problema de la escasez de matrices.

[Expansión] Cuando estamos haciendo aprendizaje automático, es más probable que nos encontremos con un sobreajuste, por lo que cuando optimizamos el modelo, generalmente le agregamos una regularización. La regularización generalmente tiene regularización L1 y regularización L2. En pocas palabras, agregar un término de regularización puede castigar al modelo cuando comete errores, obligándolo a desarrollarse en la dirección correcta. De hecho, la adición de regularización a nivel de datos hace que la matriz de aprendizaje sea escasa, lo que ayuda al modelo a realizar una mejor selección de características. Por ejemplo, en el procesamiento de texto, si se usa una frase como función, la cantidad de funciones llegará a decenas de miles. Al predecir o clasificar, obviamente es difícil seleccionar tantas características, pero si el modelo obtenido al sustituir estas características es un modelo disperso, significa que solo unas pocas características contribuyen a este modelo, y la mayoría de las características no contribuyen. o la contribución es pequeña (porque los coeficientes delante de ellos son 0 o un valor muy pequeño, incluso si se eliminan, no tendrá ningún efecto en el modelo), en este momento solo podemos centrarnos en las características de los coeficientes que son valores distintos de cero. Esta es la relación entre los modelos dispersos y la selección de características. Sin embargo, si el modelo en sí es todo 0, obviamente no se ajusta bien en este momento, lo que significa que gastamos una gran cantidad de recursos informáticos para calcular muchas cosas irrelevantes. Por lo tanto, en principio, el aprendizaje automático solo nos permite hacer que las matrices densas sean dispersas, pero no nos permite usar matrices dispersas directamente.

Luego, el artículo dice que podemos aprender del ya exitoso método word2vec en NLP, usar un método de recorrido aleatorio para encontrar la secuencia de nodos y considerar esta secuencia como una secuencia de texto en NLP, de modo que los nodos puedan mapearse en una secuencia continua. denso de baja dimensión el espacio vectorial de . De hecho, la dimensión baja aquí se compara con la cantidad de nodos que son cientos de miles o cientos de miles. Cuando se usa, generalmente se asigna a 128 256 512 dimensiones.
inserte la descripción de la imagen aquí
El autor utiliza la tarea de clasificación de gráficos heterogéneos para probar el potencial de este método. Gráfico heterogéneo significa que hay muchos tipos de nodos y bordes en este gráfico. El nivel de datos de los clubes de boxeo es así, o datos de comercio electrónico, usuario vendedores de productos básicos estos nodos También diferentes categorías. Específicamente, el autor incrusta algunos nodos en el gráfico y luego usa estos datos etiquetados para predecir los nodos no etiquetados.
Los autores también presentan aquí un beneficio clave de hacerlo. El aprendizaje automático tradicional generalmente requiere datos para satisfacer el supuesto de distribución independiente e idéntica. La llamada distribución independiente e idéntica significa que no hay relación entre datos y datos, y existen de forma independiente. Por ejemplo, los precios de la vivienda, esta casa tiene este precio, y la casa de al lado tiene otro precio, no hay interacción entre estos dos precios. Pero para la red de grafos, la interconexión entre nodos no satisface el supuesto de independencia y no se puede demostrar la misma distribución. Por lo tanto, el aprendizaje automático de los nodos de aprendizaje directo tiene fundamentalmente grandes fallas teóricas. El autor resumió que antes de DeepWalk, la gente generalmente usaba una técnica de razonamiento similar para hacer tal cosa (lo que implica que cuando llegue mi DeepWalk, dejarás de cocinar), y luego el autor usó una expresión extremadamente loca: Nos distanciamos, es decir, "Sentimos que sus métodos se utilizan en un extraño círculo de pensamiento. No ha encontrado el avance más fundamental. No participamos en sus discusiones en absoluto. Usamos directamente el aprendizaje de representación para hacerlo". autor dijo DeepWalk Es un aprendizaje no supervisado, que no tiene nada que ver con la etiqueta del nodo, sino solo con la estructura del gráfico y la información de conexión de los nodos. Esencialmente, esto se debe a que todos sus cálculos se basan en secuencias de recorridos aleatorios, por lo que la topología del gráfico estará muy representada.
Al final de la sección Introducción, el artículo dice que un clasificador lineal simple después de la incrustación puede completar la tarea de clasificación, similar a la Fig. 1, y propone tres contribuciones de este artículo. Principalmente el primer punto, el artículo se basa en el método de aprendizaje de representación de aprendizaje profundo y utiliza secuencias de recorrido aleatorio para realizar el cálculo del vector de incrustación de palabras. El segundo punto es la autopromoción. El tercer punto significa que se han realizado algunas mejoras. Para DeepWalk, no es necesario conocer la imagen completa de la imagen. Es la interpretación más grande de este modelo para ver el leopardo en el tubo.

2. Definición del problema

A partir de aquí, además de aprender la idea del algoritmo de papel, también necesitas aprender la expresión matemática abstracta de problemas prácticos.
inserte la descripción de la imagen aquí
En primer lugar, un grafo se puede expresar básicamente como la relación entre nodos y conexiones, y una matriz de adyacencia se puede escribir de acuerdo con la relación entre las conexiones de los nodos. Dado que cada nodo tiene sus propias características y categorías, el grafo se puede abstraer en el siguiente expresión de función: G
= ( V , E , X , Y ) G=(V,E,X,Y)GRAMO=( V ,mi ,x ,Y )
Aquí hay dos Y mayúsculas Para distinguir, el autor usaYYY , use Y \mathcal Yen la etiqueta específica correspondiente a cada nodoY _
A continuación, el autor introdujo que el aprendizaje automático tradicional consiste en construir unH ( X ) → YH(X) \rightarrow \mathcal YH ( X )La relación de mapeo de Y , en el aprendizaje automático de gráficos, es en realidad aprender completamente las dependencias de los nodos.
inserte la descripción de la imagen aquí

Luego, el autor introduce métodos de clasificación de relaciones comunes o de clasificación colectiva en redes de grafos. La llamada clasificación de relaciones o clasificación colectiva es en realidad una tarea de clasificación de etiquetas múltiples o etiquetas dobles para grupos. Se entrena un modelo de predicción de etiquetas a través del conjunto de entrenamiento, y luego se genera la categoría de etiqueta de datos sin etiquetar. Como se mencionó anteriormente, el aprendizaje de grafos no puede usar directamente los métodos tradicionales de aprendizaje automático, por lo tanto, en el modelado de relaciones de nodos de grafos, el método tradicional usa una cadena de Markov no dirigida, un razonamiento aproximado iterativo y un método de muestreo de Gibbs. Si está interesado, puede obtener información sobre el muestreo de Gibbs , que es una técnica de muestreo dedicada a las cadenas de Markov. Pero obviamente el artículo cree que el método basado en la cadena de Markov no dirigida es problemático. El autor cree que el mayor problema es que si la cadena de Markov está mal en un paso, estará llena de errores en cada paso, y hay un gran riesgo de acumulación de errores. En respuesta a tales problemas, el autor afirmó que no es necesario mezclar etiquetas y características de conexión, y solo usar información incrustada para representar información de topología y ubicación espacial. Esto es equivalente a dividir el cálculo de un paso en dos pasos, lo que puede aumentar cierta tolerancia a fallos.
En el último párrafo, el autor complementó dicha declaración. El proceso completo de la tarea debe ser: obtener el vector de incrustación para representar las características estructurales, luego fusionar las características de información de los nodos y, finalmente, ingresar un modelo simple para completar la tarea de clasificación.

3. Aprendizaje de representaciones sociales

Toda la tercera sección es en realidad un resumen de algunas cosas, para que podamos entender mejor algunos de los conceptos que propuso.
inserte la descripción de la imagen aquí
Esta parte es una breve introducción a qué tipo de funciones debe tener esta integración. En otras palabras, qué tipo de incrustación es una buena incrustación. Luego, el autor da 4 palabras clave.
1. Adaptabilidad flexible y cambiable, fuerte. Esto se debe a que la red de gráficos suele ir acompañada de cambios dinámicos. Si el modelo de incrustación de palabras que hemos entrenado para el momento actual solo es válido para el momento actual, entonces la red que se actualiza todo el tiempo no puede realizar la codificación de incrustación de palabras. Por lo tanto, en primer lugar, el proceso de codificación debe ser un modelo entrenado, y luego se actualiza uno nuevo sobre la base del modelo anterior sin volver a aprender la imagen completa.
2. Información de la comunidad, que refleja la relación de agrupamiento. Este punto en realidad corresponde a la Fig. 1, es decir, cuando el vector de nodo de incrustación se asigna a la parte del espacio, debe mantener la información espacial similar a la red original.
3. Baja dimensión. Ya que lo que entrena es una matriz densa, es decir, cada valor tiene un significado objetivo determinado, por lo que si la dimensión es demasiado alta, la información de los nodos del grafo se extrae en exceso, y la dimensión baja es para evitar el sobreajuste.
4. Continuo. Este punto muestra que la distribución de los vectores de nodos desde la incrustación en el espacio debe tener un límite de decisión suave. Vayamos más allá, debe ser un límite de decisión suave, no convexo y de baja dimensión. Con respecto a la concavidad, el proceso de prueba matemática es muy engorroso, y esta parte de la inferencia se complementará en la parte de inferencia matemática. Aquí, la conclusión se establece directamente. Siempre que la función convexa llegue al final a lo largo de la dirección del gradiente. , debe ser la solución óptima. La mayoría del aprendizaje automático tradicional Los problemas son funciones convexas; no convexas está más en línea con la situación real, lo que significa que ir hasta el final a lo largo de la dirección del gradiente solo puede mostrar que es una función local. óptimo, no necesariamente un óptimo global La mayoría del aprendizaje profundo no es convexo. Aquí quiero enfatizar que la no convexidad es principalmente para establecer un presagio para la charla de seguimiento sobre el aprendizaje profundo de gráficos.

3.1 Paseos aleatorios

inserte la descripción de la imagen aquí
El primer párrafo trata sobre el proceso de paseo aleatorio. Cuando camina hacia el nodo Vn y quiere ir al siguiente, selecciona aleatoriamente uno de los nodos adyacentes del nodo Vn como próximo destino, y la secuencia de nodos V1, V2,..., Vn... se guarda ser utilizado como entrada para el aprendizaje posterior. El autor no es la primera persona en proponer un proceso aleatorio, por lo que también habló sobre algunas aplicaciones del algoritmo de proceso aleatorio, incluidos los precedentes en la recomendación de contenido y la detección de comunidades. Y el autor mencionó que hay dos formas de caminar aleatoriamente, una es atravesar todo el gráfico y la otra es no atravesar todo el gráfico. DeepWalk es uno que no necesita recorrer todo el gráfico.
En el segundo párrafo, el autor propone que el proceso de caminata aleatoria tiene dos beneficios. Una es que se puede procesar en paralelo. Explicado en el lenguaje del artículo, este proceso aleatorio se puede llevar a cabo de forma sincrónica, tú sigues tu camino, yo voy el mío, no nos afectamos entre nosotros, todos registramos las distintas secuencias de nodos transversales. El segundo es para dar una explicación más detallada del aprendizaje incremental en línea mencionado anteriormente. Es un proceso sublineal. El llamado sublineal significa que cuando aparece un nuevo nodo, solo el niño que está cerca del nuevo nodo necesita hacerlo. es suficiente hacer un nuevo estudio de la imagen, y no hay necesidad de volver a aprender la imagen completa.

3.2 Conexión: leyes de potencia

inserte la descripción de la imagen aquí
En la sección 3.2, el artículo vuelve a comparar gráficos con PNL. El artículo decía que el material del texto está en línea con la distribución de la ley de potencia. Aquí combinado con Fig2 para ver.
inserte la descripción de la imagen aquí
A la izquierda hay un mapa de frecuencia de conexión de la red de gráficos, y a la derecha hay un mapa de frecuencia de palabras de la información de texto de Wikipedia. Estos dos son consistentes en la ley de distribución. Descubrimos que todos sus ejes de coordenadas son notación científica, por lo que lo reescribimos en un eje de coordenadas logarítmicas, el número de palabras es y, y la frecuencia de las palabras es x, entonces dicha relación lineal se puede escribir como: lny = − klnx + lna lny=
-klnx +lnal n y=- k l norte X+l na
se reduce a la representación ordinaria:
y = ax − ky = ax^{-k}y=una xk
Así es como se expresa la función de potencia, por lo que se llama distribución de ley de potencia.
Esta distribución significa que una pequeña cantidad de nodos tienen la mayoría de las conexiones. Esto también es fácil de entender. Para dar un ejemplo específico, si se trata de una imagen del sitio web de un portal, entonces Google, Baidu, etc. tienen la gran mayoría de las visitas, mientras que algunos sitios web pequeños rara vez visitan. Lo mismo ocurre en el texto, por ejemplo, palabras como a the y aparecen con más frecuencia que palabras como power-law. Es la similitud entre los nodos y el texto, por lo que es factible aplicar las ideas de codificación de NLP a la codificación de gráficos.

3.3 Modelado del lenguaje

De hecho, esta parte presenta principalmente el modelo Word2Vec y pone la estimación de probabilidad de Word2Vec en la figura.
inserte la descripción de la imagen aquí
Al comienzo de esta sección, el autor dijo que el objetivo del modelo de lenguaje inicial es construir una función de verosimilitud para estimar la probabilidad de máxima verosimilitud de una oración, es decir, usar las primeras n palabras para predecir la n+1 palabra, que es natural La parte de procesamiento del lenguaje se llama modelo N-Gram, donde N es el número de palabras al frente. En la serie de artículos de NLP sobre segmentación mecánica de palabras y cadena de Markov oculta (HMM), hay reglas de cálculo específicas sobre este N-Gram. Si está interesado, puede hacer clic en el hipervínculo para verlo.
Algunos trabajos de aprendizaje de representaciones en los últimos años (principalmente Word2Vec y Glove) han cambiado el objetivo de este modelo de lenguaje. Y DeepWalk cree que los nodos i-1 delante de la secuencia de nodos obtenida mediante el recorrido aleatorio se pueden usar para predecir el nodo i-ésimo, que corresponde al modelo de lenguaje. Pero al igual que el lenguaje natural, no podemos usar el nodo en sí mismo para predecir, necesitamos usar un modelo de entrada incrustado en un vector.
El último párrafo es cómo llevar a cabo dicho proceso. Primero, DeepWalk propone un Φ \PhiΦ , esta función es en realidad una tabla de consulta de vectores, que contiene el vector d correspondiente a cada nodo V. Cuando ingresamos el modelo, podemos consultar la tabla de vectores para encontrar el vector d-dimensional del nodo y luego expresarlo con un vector, de modo que el problema de predecir el nodo se convierta en un modelo de probabilidad conjunta basado en vectores.
inserte la descripción de la imagen aquí
En este caso (usar i-1 nodos para predecir i nodos, ¿llamémoslo modelo i-Node?), la función objetivo a optimizar se convierte en: F = P ( v 2 ∣ Φ ( v 1 ) ) ∗ P (
v 3 ∣ ( Φ ( v 1 ) , Φ ( v 2 ) ) ) ∗ ⋯ ∗ PAGS ( vi − 1 ∣ ( Φ ( v 1 ) , Φ ( v 2 ) , … , Φ ( vi − 2 ) ) ) F= P(v_2|\Phi(v1)) * P(v3|(\Phi(v1), \Phi(v2))) * \dots * P(v_{i-1}|(\Phi(v1), \ Phi(v2), \puntos,\Phi(v_{i-2})))F=pag _ _2∣Φ ( v 1 ))PAGS ( v 3∣ ( Φ ( v 1 ) ,Φ ( v 2 )))pag _ _yo 1( Φ ( v 1 ) ,Φ ( v 2 ) ,,F ( vyo 2)))
Hay dos problemas significativos con esta función: (1) Debido a que cada elemento de la probabilidad conjunta es un número menor que 1, cuando i es lo suficientemente grande, F=0; (2) Cuando i es mayor, el valor calculado mayor el costo. Entonces, tal función objetiva obviamente no es la elección óptima.
En respuesta a este problema, el autor vuelve a mencionar modelos de lenguaje como Word2Vec. Utiliza sus propias etiquetas para el aprendizaje autosupervisado, y también puede prestar atención a la relación semántica entre las palabras superiores e inferiores y ahorrar gastos de cálculo. Y word2vec tiene dos modos de entrenamiento:
(1) CBOW, que usa el contexto de los lados izquierdo y derecho para predecir la palabra del medio. Supongamos que hay una oración Hope can set you free, windows=3, por lo que la primera muestra entrenada del el modelo proviene de Hope can set, en modo CBOW, Hope set se usa como entrada y can es salida.Durante el entrenamiento del modelo, Hope can set usa codificación one-hot, Hope:[1,0,0,0,0], can :[ 0,1,0,0,0], conjunto:[0,0,1,0,0]. Multiplique con la matriz de transformación 35 para obtener 31 [matriz de representación]. Aquí 3 es la dimensión del vector de palabra final. [Matriz de representación] se multiplica con la forma de [Matriz de transformación] (5, 3) para obtener una matriz objetivo de 5x1, aquí esperamos que sea [0,1,0,0,0]. Luego, la ventana se mueve hacia atrás para volver a actualizar los parámetros hasta que se recorre todo el corpus y se obtiene la [matriz de transformación] final.
(2) Skip-Gram: use las palabras en el medio para predecir el contexto en ambos lados. Supongamos que hay una oración Hope can set you free, windows=3, por lo que la primera muestra entrenada por el modelo proviene de Hope can set. En el modo skipgram, can se usa como entrada y Hope set se usa como salida. La entrada can[0,1,0,0,0]reshape(5,1) se multiplica por la matriz de transformación 3x5 para obtener una matriz de representación de 3x1, que se multiplica por muchas matrices de transformación de 5x3 diferentes para obtener una matriz objetivo de 5x1.
DeepWalk utiliza el modo Skip-Gram. En este caso, su estimación de máxima verosimilitud se puede expresar en forma de fórmula 2:
min − log PAGS ( vi − w , … , vi − 1 , vi + 1 , … , vi + w ∣ Φ ( vi ) ) min -logP({v_{iw}, \dots ,v_{i-1}, v_{i+1}, \puntos, v_{i+w}}|\Phi (v_i))minlogaritmo P ( v _ _yo w,,vyo 1,vyo + 1,,vyo + w∣Φ ( vyo))
El significado de esta fórmula es que cuando el nodo del medio es 3, las probabilidades de los nodos de los pasos w izquierdo y derecho son 12 y 45 respectivamente.
El autor cree que usar el modo Skip-Gram para el aprendizaje de representaciones tiene dos ventajas: (1) El gráfico generado por el paseo aleatorio en sí no tiene sentido, pero puede capturar algunas estructuras topológicas cerca de este nodo; (2) porque solo el nodo actual se centra en Está cerca de w nodos, por lo que la sobrecarga de cálculo del modelo no es grande.
Por lo tanto, después de skip-gram, el proceso de incrustación se convierte en el proceso de optimización de la función objetivo.Dado que la caminata aleatoria puede capturar la información de la estructura topológica en un rango pequeño, el vector después del aprendizaje puede mantener las características espaciales de los nodos reales en un cierto extensión similitud
inserte la descripción de la imagen aquí
Y este vector de entrenamiento también tiene dos características: (1) de baja dimensión, continuo, denso (no convexo); (2) nuevo entrenamiento, los nuevos datos se alimentan al entrenamiento incremental cuando hay nuevos datos y no hay necesidad para repetir el entrenamiento en toda la imagen.

4. Método

4.1 Descripción general y 4.2 Algoritmo: DeepWalk y 4.2.1 SkipGram

De hecho, el núcleo de esta parte es comprender el pseudocódigo de DeepWalk y conocer su proceso.Afortunadamente, este algoritmo es muy simple.
inserte la descripción de la imagen aquí
En Overview, el autor propone que DeepWalk también necesita construir su propio corpus y diccionario de sinónimos al igual que los algoritmos de procesamiento de lenguaje natural. El corpus aquí es la secuencia generada por el paseo aleatorio, y el léxico es cada nodo en sí. Desde este punto de vista, de hecho, el Skip-Gram de la imagen será un poco más simple, porque las palabras implicarán segmentación de palabras y segmentación de palabras, como "Xiao Ming come todos los días", ¿es Xiao Ming o mañana? si el léxico no es bueno, el corte no es bueno, afectará mucho el rendimiento del modelo; si es una palabra en inglés, una mejor manera será segmentar la palabra segmentación como #-ed -#ing, pero los nodos están todos separados, y no hay tal problema.
La Sección 4.2 en realidad presenta su Algoritmo 1 y Algoritmo 2, veamos directamente el pseudocódigo.
inserte la descripción de la imagen aquí

Algoritmo 1, la lógica de operación general:
gráfico de entrada y parámetros relacionados:
1. Es necesario establecer el tamaño de paso de salto de gramo w, es decir, necesitamos usar el nodo actual para predecir los nodos w izquierdo y w derecho del nodo actual.
2. Establecer la dimensión d de la incrustación de palabras, es decir, cuántas dimensiones queremos que tenga el vector de incrustación, según la experiencia generalmente es 128, 256 y 512.
3. Establecer el número de veces que cada nodo se usa como un nodo de recorrido aleatorio γ \gammaγ
4. Establezca la longitud máxima t de cada secuencia de caminata aleatoria
para generar la matriz de incrustación:
el primer paso, inicialice una matriz aleatoria con el mismo tamaño que la matriz de incrustación, el tamaño es (V, d), que representa V nodos, cada uno nodo d dimension.
El segundo paso es construir una capa Softmax inicializada (por el momento)
el tercer paso es hacer un buclede γ \gammaγ veces
En cada ciclo:
el primer paso es alterar aleatoriamente el orden de los nodos, lo cual es para evitar la inercia en el aprendizaje y mejorar el rendimiento del modelo; el segundo paso
es recorrer cada nodo en el Gráfico:
primero generar un nodo para el recorrido actual nodo Secuencia de recorrido aleatorio y, a continuación, ejecute el método SkipGram, use el vector de incrustación en la matriz de incrustación del nodo para predecir los nodos circundantes y actualice la incrustación.

Algoritmo 2, método SkipGram:
primero recorra cada nodo de la secuencia de caminata aleatoria actual, luego recorra los w nodos a la izquierda y a la derecha del nodo, y luego importe los vectores de incrustación de los 2w izquierdo y derecho más el nodo actual a un total de 2w +1 nodos en la matriz de inclusión en la función de pérdida y calcular la derivada parcial para calcular el gradiente del nodo actual ∇ \nabla
∇ = ∂ − Iniciar sesión PAGS ( vi − w , ... , vi − 1 , vi + 1 , ... , vi + w ∣ Φ ( vi ) ) ∂ Φ ( vi ) \nabla = \frac{\parcial -logP( {v_{iw}, \puntos, v_{i-1}, v_{i+1}, \puntos, v_{i+w}}|\Phi (v_i))}{\parcial\Phi (v_i)}=Φ ( vyo)logaritmo P ( v _ _yo w,,vyo 1,vyo + 1,,vyo + w∣Φ ( vyo) )
Luego, el algoritmo de retropropagación actualiza esta matriz de incrustación:
Φ ( vi ) = Φ ( vi ) − α ∇ \Phi (v_i) = \Phi (v_i) - \alpha\nablaF ( vyo)=F ( vyo)α
aquíα \alphaα es la tasa de aprendizaje, que es un hiperparámetro. El proceso de derivación matemática de la función de pérdida de actualización de gradiente inverso se puede buscar en línea. Hay muchos maestros que lo han escrito, por lo que no lo demostraré cuidadosamente aquí.
El cálculo de SkipGram no finaliza hasta que se recorren todos los nodos de esta secuencia y se actualizan todas las matrices de incrustación de este nodo, y luego se vuelve a realizar el cálculo de SkipGram en la siguiente secuencia de recorrido aleatorio.
inserte la descripción de la imagen aquí

Bueno, todavía hay un punto que no he explicado claramente, y también es el núcleo, que es este ∇ \nabla¿Cuál es el cálculo de la lista larga en los corchetes P de ∇ . De hecho, es muy simple, es decir, sumar la incrustación del nodo actual y la incrustación de otros nodos.
− Iniciar sesión PAGS ( vi − w , … , vi − 1 , vi + 1 , … , vi + w ∣ Φ ( vi ) ) = − [ Iniciar sesión PAGS ( vi − w ∣ Φ vi ) + Iniciar sesión PAGS ( vi − w + 1 ∣ Φ vi ) + ⋯ + Iniciar sesión PAGS ( vi + w ∣ Φ vi ) ] = − ∑ un = 0 ≠ w 2 wlog PAGS ( vi − w + un ∣ Φ vi ) = − Iniciar sesión ∏ un = 0 ≠ w 2 w Φ ( yo − w + a ) ⋅ Φ ( yo ) -logP({v_{iw}, \dots ,v_{i-1}, v_{i+1}, \dots , v_{i+w}} |\Phi (v_i))\\ =-[logP(v_{iw}|\Phi v_i)+logP(v_{i-w+1}|\Phi v_i)+\dots +logP(v_{i+w }|\Phi v_i)]\\ =-\sum_{a=0 \neq w}^{2w} logP(v_{i-w+a}|\Phi v_i) \\ = -log\prod_{a= 0 \neq w}^{2w} \Phi(i-w+a) \cdot \Phi(i)- l o gramo PAGS ( vyo w,,vyo 1,vyo + 1,,vyo + w∣Φ ( vyo))=- [ l o gramo PAGS ( vyo w∣Φ vyo)+logaritmo P ( v _ _yo w + 1∣Φ vyo)++logaritmo P ( v _ _yo + w∣Φ vyo)]=un = 0= w2w _logaritmo P ( v _ _yo - w + un∣Φ vyo)=- l o gun = 0= w2w _F ( yow+un )Φ ( i )
Aunque entiendo el proceso de cálculo, que es un producto punto de matriz muy simple y luego la suma, todavía hay un problema importante, es decir, cuando el número de nodos es muy grande, aunque el poder de cálculo consumido por nuestro aleatorio walk no es grande, pero al realizar tareas de clasificación, si cada nodo es de un tipo, la sobrecarga de cálculo puede ser muy grande. Por ejemplo, si queremos analizar portales de Internet, puede haber decenas de millones de portales, y cada clasificación debe dividirse en decenas de millones de categorías, lo que no es aceptable. Word2vec también enfrenta este problema, por lo que el autor tomó prestada la idea de word2vec nuevamente y usó un diseño llamado softmax en capas.

4.2.2 Jerárquica Softmax y 4.2.3 Optimización

En primer lugar, debe quedar claro que el softmax jerárquico aquí no pertenece a la categoría de algoritmos de incrustación de gráficos.. Este es un truco diseñado completamente para tareas de clasificación. Pero dado que está incluido en el documento, permítanme decirlo de paso.
inserte la descripción de la imagen aquí
Para el proceso general de tareas de clasificación múltiple, el vector de entrada se usa generalmente para realizar la regresión logística, y se genera un vector de salida con la misma dimensión que el vector de entrada. La normalización Softmax se realiza en esta salida para representar la probabilidad de categoría, y el que tiene la probabilidad más alta se selecciona como la salida predicha. El autor cree que el cálculo del denominador de la normalización softmax es muy complicado cuando hay varios nodos. Suponiendo que hay n categorías, el resultado de predicción generado por la regresión logística es un vector dimensional N. Para su k-ésima categoría, su softmax se calcula como: Softmax ( xk ) = exk ∑ i = 1 nexi Softmax(x_k ) = \
frac {e^{x_k}}{\sum_{i=1}^{n}e^{x_i}}S o f t máx ( x _k)=yo = 1nmiXyomiXk
[Expansión] Si el nodo tiene tres categorías, el vector de salida [1,1,2], por supuesto, sabemos que 2 es el más grande, por lo que la alta probabilidad pertenece a la tercera categoría, pero esa descripción no es científica, porque no lo describió probabilidad. Por lo tanto, el resultado de salida después de usar Softmax es [0,212, 0,212, 0,576], por lo que la probabilidad de ser la tercera categoría es del 57,6 %. Si es [10,10,20], la tercera probabilidad después del cálculo softmax es 0,999.

Pero se puede encontrar que si hay decenas de millones de nodos, es algo muy extravagante realizar una operación exponencial en cada nodo. Por lo tanto, el autor propone que el método del árbol binario se puede utilizar para reducir la sobrecarga computacional de las tareas de clasificación.
inserte la descripción de la imagen aquí
El proceso de diseño es el siguiente: Primero, una caminata aleatoria genera una secuencia de nodos de 4315..., y el tamaño de la ventana se establece en 1, luego se debe usar 1 para predecir los nodos 3 y 5, en Φ \ PhiEncuentre el vector del nodo 1 en la tabla Φ e introdúzcalo en el clasificador binario. Para el 3, pasará por 3 clasificaciones para encontrar el nodo v3, y para el 5, pasará por 3 clasificaciones y finalmente llegará al nodo v5. Estos dos caminos calculan y actualizan la función de pérdida de forma independiente. Supongamos aquí que D tiene 512 dimensiones (forma ( Φ ) = ( V , 512 ) forma(\Phi)=(V,512)forma ( F ) _ _ _=( V ,512 ) ), entonces cada regresión logística es también un peso de 512 dimensiones, y el vector de incrustación de palabras y el vector de salida de la regresión logística se someten a un cálculo sigmoide, y su probabilidad posterior se puede generar para realizar la tarea de clasificación binaria e ingresar la siguiente capa:
S igmoide ( x ) = 1 1 + e − x PAGS ( bl ∣ Φ ( vj ) ) = 1 1 + e − Φ ( vj ) ⋅ Ψ ( bl ) Sigmoide(x) = \frac{1} {1+e ^{-x}} \\P(b_l|\Phi(v_j))=\frac{1}{1+e^{-\Phi(v_j)\cdot\Psi(b_l)}}S i g m o i d ( x )=1+mix1PAG ( segundoyo∣Φ ( vj))=1+miΦ ( vj) Ψ ( segundoyo)1
bl b_l aquíbyo是regresión logística binaria,Ψ ( bl ) \Psi(b_l)Ψ ( segundoyo) es el vector de salida de la regresión logística. El cálculo sigmoide puede comprimir el intervalo de la función a (0,1); en términos generales, 0,5 se usa como condición límite para una clasificación binaria.
inserte la descripción de la imagen aquí
La parte de entrenamiento es en realidad un conjunto de clichés estándar, si escribes una tesis, puedes cambiarla de acuerdo con este cliché. A través de la optimización del gradiente estocástico (de hecho, Adam se usa generalmente para el aprendizaje profundo ahora), el gradiente se calcula a través de la retropropagación y luego se usa el descenso del gradiente para actualizar los parámetros, y la tasa de aprendizaje se establece en 0.025.
El contenido central de 0 es que DeepWalk tiene dos conjuntos de pesos para entrenar:Φ \Phi
de incrustación D-dimensionalmesa Φ .
(2) D vectores para cada uno de los clasificadores binarios de regresión logística N-1.
En cuanto a la optimización de codificación de Huffman mencionada en el artículo, personalmente creo que es menos importante que el diseño completo del algoritmo. Es una consideración de ingeniería, por lo que no hice más recopilación de datos. Si está interesado, puede buscar información relevante para ver.

4.3 Paralelización

inserte la descripción de la imagen aquí
Esta parte también es un contenido de ingeniería. Dado que realmente no sé mucho sobre el entrenamiento de clústeres distribuidos, no puedo dar una introducción muy detallada. Desde el significado literal, este párrafo significa principalmente que el entrenamiento adopta un método de descenso de gradiente estocástico asíncrono, es decir, múltiples grupos de máquinas entrenan al mismo tiempo, y luego resumen la información de gradiente a la máquina central, y luego usan datos experimentales para probar la aceleración de este entrenamiento asincrónico Efecto.

4.4 Variantes de algoritmos y 4.4.1 Streaming

Aquí hablamos principalmente de las variantes del algoritmo.
inserte la descripción de la imagen aquí
La transmisión se mencionó anteriormente. Para un gráfico grande, no es necesario conocer la imagen completa del gráfico completo, y la información de topología local se puede obtener directamente utilizando la información de recorrido aleatorio. Para este caso, la tasa de aprendizaje α \alphaα debe ser una constante muy pequeña.Cuando llega un nuevo nodo, se construye adicionalmente un nuevo nodo hoja (consulte el proceso softmax).

4.4.2 Paseos no aleatorios

El pensamiento propuesto aquí se basa principalmente en la inercia del comportamiento, es decir, los pesos de conexión entre diferentes nodos adyacentes no son consistentes. Por ejemplo, si hay 100 personas, 99 de ellas abrirán CNKI después de abrir la web de la ciencia, y una persona abrirá el minijuego 4399 después de abrir la web de la ciencia. Obviamente, esta situación es muy rara. Entonces, la caminata aleatoria no es necesariamente completamente aleatoria, sino una caminata con un propósito. Al construir dicha información, además de reflejar la topología, también puede reflejar la relación de peso.
inserte la descripción de la imagen aquí
Al final, el autor dijo que es posible combinar Streaming, un modelo ciego de sentir al elefante, con caminatas no aleatorias para realizar minería de información en gráficos de gran escala como Internet.

5. Diseño experimental y 6. Experimentos y otros contenidos

Esta parte es el diseño experimental, una introducción de una oración del modelo comparativo, indicadores de evaluación y visualización de datos, y no hay necesidad de leer estas cosas palabra por palabra. La razón principal es que ahora hay modelos más potentes para la minería de datos de gráficos, y la idea de integración de este artículo es la más importante. Su integración de gráficos es la base para todo el aprendizaje automático de gráficos y el aprendizaje profundo de gráficos posteriores. Entonces, una comprensión profunda de lo que hizo este artículo, por qué se hizo y cómo se hizo (qué, por qué, cómo).

Supongo que te gusta

Origin blog.csdn.net/D_Ddd0701/article/details/131083865
Recomendado
Clasificación