Existen principalmente los siguientes métodos para mapear nodos en vectores D-dimensionales:
①Ingeniería de características artificiales : importancia del nodo, coeficiente de clúster, Graphlet, etc.
②Aprendizaje de representación gráfica : realice un aprendizaje autosupervisado a través de la construcción de recorridos aleatorios, como DeepWalk, Node2Vec , etc.
③Descomposición de matriz
④ Aprendizaje profundo : red neuronal gráfica
1. Incrustación de gráficos
El aprendizaje automático de gráficos tradicional requiere ingeniería de características artificiales para convertir gráficos en vectores D-dimensionales. Por otro lado, el aprendizaje de representación gráfica es una característica de aprendizaje automático de la computadora que convierte cada entrada modal en un vector , y este proceso no requiere intervención humana.
Un vector d-dimensional tiene las siguientes características:
Dimensión baja : la dimensión del vector es mucho menor que el número de nodos
Continuo : cada elemento es un número real
Dense : cada elemento no es 0 (diferente de la codificación one-hot)
Los vectores de incrustación contienen información de conectividad de la red y se pueden usar para tareas posteriores.
2. Marco básico
1. Codificador
Ingrese un nodo y genere su vector d-dimensional correspondiente después del procesamiento .
2. Decodificador
Producto escalar el vector obtenido por el codificador para obtener la similitud del coseno (escalar, que puede reflejar la similitud de los nodos)
! ! ! Cabe señalar que la estructura del codificador y el decodificador se puede reemplazar, no necesariamente un producto de punto, y no necesariamente una similitud de coseno.
La dirección de la optimización iterativa del marco es hacer que el producto de vectores de nodos similares en el gráfico sea grande y el producto de vectores de nodos diferentes pequeño .
3. Codificadores comunes
1. Codificador poco profundo
En esencia, los vectores d-dimensionales de todos los nodos se escriben artificialmente en una matriz , y el vector de incrustación se puede obtener multiplicando esta matriz con un vector caliente , denotado como: donde los parámetros de la matriz son parámetros de aprendizaje.
2. Paseo aleatorio
A partir del nodo, genere una secuencia de caminata aleatoria y encuentre la probabilidad de pasar por el nodo, denotada como: .
Se puede calcular mediante la función de activación softmax : o cálculo sigmoide :
① Paso profundo
1. Muestreo para obtener un número de secuencias de recorridos aleatorios y calcular la probabilidad condicional
2. Optimizar iterativamente el vector d-dimensional de cada nodo, de modo que el producto del número de vectores de nodos coincidentes en la secuencia sea grande y el producto de los vectores de nodos no coincidentes sea pequeño.
Función objetivo de verosimilitud : , donde es la secuencia de caminata aleatoria a partir del nodo, y la estrategia de caminata es .
Función de pérdida : , donde la probabilidad es calculada por softmax
Muestreo negativo : se puede aproximar como , k en esta fórmula es el número de muestras negativas. k generalmente toma de 5 a 20, y los nodos en la misma secuencia de caminata no deben muestrearse como "muestras negativas".
Nodo2vec
Los pasos restantes son los mismos que los de Deepwalk, pero el sesgo de la caminata aleatoria se puede especificar configurando hiperparámetros: BFS: amplitud primero: exploración local; DFS: profundidad primero: exploración global