Red de conocimiento de recetas - Mercado del té - Lectura de artículos del sistema de recomendación (10): algoritmo de recomendación de secuencia basado en una red neuronal gráfica

Lectura de artículos del sistema de recomendación (10): algoritmo de recomendación de secuencia basado en una red neuronal gráfica

Artículo:

Dirección del artículo: Mendation with Graph Neural Networks" SR-GNN

github:/CRIPAC-DIG/SR-GNN

Las recomendaciones basadas en sesiones son Por lo general, las sesiones continuas se modelan codificando toda la sesión en un vector oculto y luego usando este vector oculto para la predicción del siguiente clic. Sin embargo, este enfoque no tiene en cuenta las transiciones complejas entre elementos, es decir, dentro de las sesiones de clic. En el orden temporal, también existen relaciones complejas de apuntamiento de nodos en el gráfico dirigido entre elementos, por lo que los métodos anteriores no son suficientes para modelar secuencias de clics.

Los métodos de recomendación basados ​​en sesiones existentes se centran principalmente en esto. y las cadenas de Markov, este artículo propone dos deficiencias de los métodos existentes:

1) Cuando el número de comportamientos del usuario en una sesión es muy limitado, estos métodos son difíciles de obtener información sobre los comportamientos del usuario. Por ejemplo, cuando se utiliza el modelo RNN, la representación del comportamiento del usuario es el resultado de la última unidad. Este artículo cree que esto por sí solo no es muy preciso.

2) Según trabajos anteriores, descubrimos que. proyecto El patrón de transferencia entre dos elementos es una característica muy importante en la recomendación de sesión, pero los procesos RNN y Markov solo modelan la relación de transferencia unidireccional entre dos elementos adyacentes, mientras ignoran otros elementos en la sesión p>

Para. Para superar las deficiencias anteriores, este artículo propone un método de pares de redes neuronales gráficas para simular pares de usuarios conversacionales:

A continuación se describe cómo realizar la recomendación de secuencia gráfica

V = {v1, v2. ...

V = {v1, v2.vm} representa todos los elementos, S = {} representa los elementos en los que se hizo clic en orden cronológico en la sesión, el objetivo de este artículo es predecir lo que hará el usuario. Al hacer clic en el siguiente elemento vs, n 1, la tarea del modelo es generar las probabilidades previstas de todos los elementos y seleccionar los k elementos principales para la recomendación.

Construimos un subgráfico para cada sesión y obtenemos su resultado correspondiente. matrices de grado y de grado

Suponiendo que la secuencia de clic es v1-gt; v2-gt; v4-gt; se obtiene el siguiente subgráfico, como se muestra en la parte roja de la figura:

Para otro ejemplo, si la secuencia de clic es v1-gt; v2-gt; v3-gt; v2-gt; Además,

Construiremos una matriz de grados externos e internos para cada subgrafo y normalizaremos cada fila de las matrices de grados externos e internos, por ejemplo:

Construiremos una matriz de grados de salida y de entrada para cada subgrafo Matrices de grados de salida y de entrada, y normalizaremos cada fila de las matrices de grados de salida y de entrada g., la matriz correspondiente a nuestra secuencia v1-gt ; v2-gt; v3-gt; v2-gt; v4. Como sigue:

¿Cómo calcular el valor interno de esta matriz? la matriz de grado de salida a la izquierda, la primera fila 0 1 0 0 representa v1-gt v2, debido a que v1 solo tiene un elemento señalador, es 1, mire la segunda línea, 0 0 1/2 1/2; , debido a que v2 tiene un borde que apunta a v3 y v4, cada valor se convierte en 1/2 después de la normalización. La matriz intragrado se calcula de la misma forma. No entraré en detalles.

Este artículo utiliza unidades GRU para el modelado de secuencias e incorpora información gráfica en redes neuronales, de modo que GRU pueda aprender completamente la relación entre elementos, el GRU tradicional solo puede aprender la relación entre dos elementos adyacentes, pero después; Al agregar información del gráfico, puede aprender la información de todo el subgrafo de la conversación.

La fórmula de cálculo es la siguiente:

Para facilitar la comprensión del proceso de cálculo, seguimos utilizando el ejemplo anterior: v1-gt; v2-gt; ; v2-gt; v4 para analizar paso a paso el proceso desde la entrada hasta la salida.

(1) es la entrada correspondiente al i-ésimo clic en el momento t en la sesión s. Es una matriz de n?2n, la matriz de subgrafos conversacionales completa, y es una de las filas, la fila correspondiente al elemento vi, de tamaño 1?2n, donde n representa el número de elementos diferentes en la secuencia.

Si según este ejemplo, si i se toma como 2, entonces es [0 0 1/2 1/2 1/2 1/2 0 1/2 0]

Además, : se puede dividir en [ , ]

(2) Puede entenderse como el vector de incrustación correspondiente al i-ésimo elemento de la secuencia durante el proceso de entrenamiento. Cambia continuamente con el entrenamiento. del modelo y puede entenderse como El estado de la capa oculta, que es un vector d-dimensional.

(3)?H es un vector de peso d*2d, que también puede considerarse como una matriz de segmentación. Puede entenderse como H = [Hin|Hout]. .

Entonces echemos un vistazo al proceso de cálculo:

1) [...,], el resultado es una matriz d*n, y después de la transposición, es una n* matriz d, contada como

2): H es equivalente a [?], es decir, dividido y luego multiplicado y empalmado, por lo que el resultado es un vector 1*2d.

Lo anterior es el proceso de cálculo completo de la entrada del i-ésimo clic. Se puede ver que antes de ingresar al cálculo de GRU, la información del gráfico se incrusta en la red neuronal para tomar el valor multiplicándolo por. la matriz As, i y profundización de la información interactiva entre elementos de aprendizaje de redes neuronales.

Además, existe un proceso de cálculo de GRU. La diferencia con el GRU original es que la entrada cambia de xt a as, incrustando información gráfica.

También hay puertas de actualización y puertas de reinicio, calculadas exactamente igual que el GRU original.

Esto en realidad es equivalente al GRU original, excepto que en SR-GNN, i no cambia durante una ronda de operación, lo que equivale a que cada elemento ingrese a GRU por separado para obtener su propio vector, es decir Es decir, en el proceso de cálculo de GRU, cambia constantemente. Es más fácil de entender mirando el código fuente:

Lo que está oculto es la fórmula interna, que se actualizará en cada paso. GRU. Aquí tengo una pregunta, si se actualiza el elemento oculto de todos los elementos, entonces todos los elementos de la secuencia completa deben ir al GRU en paralelo para el cálculo, cada paso obtendrá su propio vector, cuando se actualice el vector de cada elemento. el siguiente paso

El proceso de cálculo es aproximadamente el siguiente:

Hay cuatro cálculos paralelos de GRU. Sus estados ocultos no se actualizan cada vez. La entrada tiene en cuenta toda la información oculta. información gráfica.

Como se puede ver en la figura anterior, cada elemento debe realizar T pasos para obtener su propio vector de elemento, por lo que después de T pasos, obtenemos los vectores de todos los elementos en la secuencia, es decir, los vectores dibujados. en los cuadros azules de la imagen. Con estos vectores, ¿cómo obtenemos los resultados de la predicción? Esto lleva a la siguiente pregunta.

Al observar la estructura del modelo anterior, vemos ATENCIÓN Sí, creemos que en una sesión, no todos estos vectores de elementos tendrán un impacto en los resultados previstos. Algunos elementos tienen un gran impacto en los resultados. , y algunos tienen un impacto grande en los resultados, por lo que hicimos una suma ponderada. Al mismo tiempo, el artículo cree que el último vector de elemento s1 = vn en la sesión es muy importante, por lo que se elimina por separado:

La fórmula (6) es una operación de ATENCIÓN simple de la fórmula. , en realidad calcula cada vi con el peso del último vector vn y luego realiza una suma ponderada.

En la capa de salida final, use sh y la incrustación de cada elemento para calcular el producto interno, donde vi debe ser el vector que sale de la capa de incrustación del elemento, en lugar del vector oculto que siempre se actualiza. más tarde:

Finalmente, la probabilidad de clic final de cada elemento se obtiene a través de softmax:

La función de pérdida es la función de pérdida de entropía cruzada:

De Desde el punto de vista de los datos, SR-GNN supera al GRU4REC clásico, lo que también muestra que la incrustación de información gráfica puede generar mejores resultados de recomendación.

Este artículo incorpora de manera muy inteligente información gráfica en la red neuronal, lo que requiere que GRU aprenda la relación entre cada elemento y ya no se limite a aprender la relación entre elementos adyacentes. En los últimos años, las ideas y métodos de las redes neuronales gráficas se han utilizado con frecuencia en los sistemas de recomendación. Aprender las redes neuronales gráficas debería ser la próxima moda en los sistemas de recomendación.