Red de conocimiento informático - Aprendizaje de código fuente - Interpretación de documentos sobre sistemas de recomendación (10): algoritmo de recomendación de secuencia basado en una red neuronal gráfica

Interpretación de documentos sobre sistemas 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, elementos dentro de una sesión de clic. Además de la secuencia de tiempo, también hay relaciones complejas de apuntamiento de nodos en el gráfico dirigido, por lo que los métodos anteriores no son suficientes para modelar la secuencia de clics.

Los métodos de recomendación basados ​​en sesiones existentes se centran principalmente en las neuronas recurrentes. redes y 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, es difícil para estos métodos obtener información precisa 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. que el patrón de transferencia entre 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. 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 una 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 cuál será el el usuario hará 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 lo obtenemos. es correspondiente. Las matrices de grado de salida y de entrada.

Suponiendo que la secuencia de clic es v1-gt; v2-gt; parte roja en la figura:

Para otro ejemplo, si la secuencia de clic es v1-gt; v2-gt; v3-gt; /p>

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 externos e internos para cada subgrafo de grados y matrices de grados internos, y normalizaremos cada fila de las matrices de grados externos e internos g. La matriz correspondiente para nuestra secuencia. v1-gt; v2-gt; v3-gt; v2-gt; v4 es el siguiente:

¿Cómo calcular el valor dentro de esta matriz? > Mire la matriz de grados de salida a la izquierda, la primera fila 0 1 0 0 representa v1-gt; porque v1 Solo hay un borde que apunta a este elemento, por lo que 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, i incorpora 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. En otras palabras, en el proceso de cálculo de GRU, cambia constantemente. Es más fácil de entender mirando el código fuente:

oculto está el contenido de la fórmula, que se actualizará en cada paso de GRU. Cálculo, aquí tengo una pregunta. Si se actualiza el elemento oculto de todos los elementos, todos los elementos de la secuencia completa ingresarán al GRU para el cálculo en paralelo. Cada paso obtendrá su propio vector Cuando se actualice el vector de cada elemento. el siguiente paso

El proceso de cálculo es más o menos así:

Hay cuatro GRU de computación paralela. 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 necesita 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. dibujado 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 gran impacto en los resultados, por lo que realizamos una suma ponderada. Al mismo tiempo, el artículo cree que el último vector de elementos s1 = vn de 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. a partir de la fórmula, 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 oculto que está 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:

Desde el punto de vista de los datos, SR -GNN supera al GRU4REC clásico, lo que también muestra que la incorporació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.