Algoritmo de recomendación GNN (4) - LESSR: Manejo de pérdida de información de redes neuronales gráficas para recomendaciones basadas en sesiones

Por favor agregue una descripción de la imagen

1 Presentar poco a poco

El algoritmo LESSR (Lossless Edge-order preserve aggregation and Shortcut graph care for Session-based Recommendation) es diferente de los algoritmos LR-GCN , LightGCN y Multi-GCCF mencionados anteriormente . Los tres últimos algoritmos hacen recomendaciones para los usuarios en función de la estructura del gráfico bipartito usuario-elemento , mientras que LESSR tiene como objetivo predecir el comportamiento del usuario en el momento siguiente mediante la extracción del patrón temporal del comportamiento histórico del usuario.
En otras palabras: De acuerdo con los hábitos de consumo del usuario dentro de un cierto período de tiempo, determinar qué producto comprará el usuario la próxima vez.

Desde el nivel de datos, puede ser más claro. LESSR está orientado a datos de series temporales. Como se muestra en la figura a continuación, los usuarios tocan elementos secuencialmente,
Por favor agregue una descripción de la imagen
mientras que los algoritmos de filtrado colaborativo como LR-GCN , LightGCN y Multi-GCCF están orientados a redes binarias usuario-elemento, no se tiene en cuenta el factor tiempo.
Por favor agregue una descripción de la imagen
Además, la recomendación basada en datos de series temporales se puede subdividir en recomendador basado en sesión , que divide el comportamiento del usuario en varias sesiones inconexas y luego solo utiliza el comportamiento histórico de la sesión activa para hacer predicciones. La sesión mencionada aquí es en realidad una secuencia de elementos que son similares en el tiempo .

La base teórica del recomendador basado en sesiones es: en comparación con la dependencia entre sesiones, la dependencia dentro de la sesión tiene una mayor influencia en el comportamiento en el momento siguiente. En otras palabras, los usuarios generalmente tienen objetivos similares en la misma sesión. Por ejemplo, después de comprar un teléfono móvil, la siguiente compra puede ser para comprar algunos accesorios para el teléfono móvil, y en otra sesión puede ser para comprar ropa y otros productos que no tienen nada que ver con los teléfonos móviles.

La recomendación basada en sesiones se puede resumir esencialmente como un problema de clasificación de gráficos , porque cada sesión se puede convertir en un gráfico, como se muestra a continuación:
Por favor agregue una descripción de la imagen
El objetivo final es generar una incrustación para cada sesión que conserve la preferencia de comportamiento global de la sesión, según el session Embedding hace recomendaciones. Sea I = { v 1 , v 2 , . . . , v ∣ I ∣ } I=\{v_1,v_2,...,v_{|I|}\}I={ v1,v2,. . . ,vyo}为item集合,si = [ si , 1 , si , 2 , . . . , si , li ] s_i=[s_{i,1},s_{i,2},...,s_{i,l_i}]syo=[ syo , 1,syo , 2,. . . ,syo , yoyo] porsegundoi sesiones, dondesi , t s_{i,t}syo , trepresenta el ttt时刻si s_isyoítem, el objetivo del modelo es predecir si , li + 1 s_{i,l_i+1}syo , yoyo+ 1, es decir, en qué elemento puede hacer clic el usuario en el momento siguiente. Por lo general, el modelo generará una distribución de probabilidad p ( si , li + 1 ∣ si ) p(s_{i,l_i+1}|s_i)pag ( syo , yoyo+ 1syo) , seleccione el antiguoKKLos conjuntos de candidatos K con la probabilidad más alta se utilizan como recomendaciones.

Específicamente, después de obtener la incrustación de la sesión, se puede calcular la distribución de probabilidad del siguiente elemento, primero usando IILa incrustación del elemento y la incrustación de la sesión en Calculo un producto interno (creo que puede entenderse como juzgar si el elemento cumple con la preferencia de esta sesión)
zi = sh T vi z_i=s_h^Tv_izyo=shTvyo
Luego use softmax para generar la probabilidad:
y ^ i = exp ( zi ) ∑ j ∈ I exp ( zj ) \hat{y}_i=\frac{exp(z_i)}{\sum_{j\in I}exp( zj) }y^yo=j yoe x p ( zj)e x p ( zyo)
Finalmente, según la probabilidad, se recomienda en orden de mayor a menor.

En el proceso de entrenamiento del modelo, dado que es un problema de clasificación de grafos, la función de pérdida utilizada es la pérdida de entropía cruzada:
L ( y , y ^ ) = − y T logy ^ L(y,\hat{y})=- y^Tlog \hat{y}L ( y ,y^)=yT logy^
¿Estás listo? ¡Veamos cómo lo hace LESSR!

PD Amigos, si han ganado algo después de leerlo, ¿pueden darme un me gusta y motivarme ^_ ^!

2 LESSR de un vistazo

El mecanismo de actualización de incorporación de nodos del modelo de recomendación de temporización basado en GNN es el siguiente:
xi ( l + 1 ) = fupd ( l ) ( xi ( l ) , aggi ( l ) ) x_i^{(l+1)}=f_{ arriba}^{(l)}(x_i^{(l)},agg_i^{(l)})Xi( l + 1 )=Farriba _ _( l )( Xi( l ),un g gi( l ))

aggi ( l ) = fagg ( l ) ( { fmsg ( l ) ( xi ( l ) , xj ( l ) ) : ( j , i ) ∈ E in ( i ) } ) agg_i^{(l)}=f_{ agg}^{(l)}(\{f_{mensaje}^{(l)}(x_i^{(l)},x_j^{(l)}):(j,i)\en E_{en} (i)\})un g gi( l )=Fun g g( l )( { fm s g( l )( Xi( l ),Xj( l )):( j ,yo )miyo n( yo ) } )

Entre ellos, xi ( l ) x_i^{(l)}Xi( l )para el nodo iiyo en elllIncrustación en capas ,E en (i) E_{en}(i)miyo n( i ) es el nodoiiEl conjunto de aristas entrantes de i , fmsg f_{msg}Fm s gSe utiliza para calcular la información que pasan los vecinos al nodo de destino, fagg f_{agg}Fun g ges la función de agregación de información, fupd f_{upd}Farriba _ _Función de actualización para incrustar.

En cada nodo pasar por LLDespués de actualizar la incrustación de la capa L , use una lectura de lecturafunción r e a d o u t para obtener la representación incrustada del gráfico:
h G = fout ( { xi ( L ) : i ∈ V } ) h_{G}=f_{out}(\{x_i^{(L )} :i\en V\})hg=Ffuera de ti( { xi( L ):iV } )
LESSRinnovó principalmente en el método de generación de gráficos basados ​​en sesiones, y propuso dos métodos de composición.Entendamos brevemente:dos problemas principales de pérdida de información
en los métodos de composición ordinarios:

  1. La codificación de sesión con pérdidas perderá información de secuencia al convertir la sesión a la red, como [v 1 , v 2 , v 3 , v 3 , v 2 , v 2 , v 4 ] [v_1,v_2,v_3,v_3,v_2 ,v_2, v_4][ v1,v2,v3,v3,v2,v2,v4][ v 1 , v 2 , v 2 , v 3 , v 3 , v 2 , v 4 ] [v_1,v_2,v_2,v_3,v_3,v_2,v_4][ v1,v2,v2,v3,v3,v2,v4] se puede convertir a la siguiente figura:
    Por favor agregue una descripción de la imagen
    Pero de acuerdo con la figura anterior, no podemos restaurar a la sesión original. Cuando el siguiente elemento señalado por las dos sesiones es diferente, es difícil que un algoritmo basado en este método de composición haga una predicción precisa.

  2. Captura de dependencia de largo alcance ineficaz : una capa GNN puede capturar vecinos de primer orden. Dado que el número de capas de GNN no es tan profundo como sea posible, es difícil para los algoritmos basados ​​en GNN capturar dependencias de secuencias largas.

original:

El segundo problema de pérdida de información se denomina problema de captura de dependencia de largo alcance ineficaz , donde estos métodos basados ​​en GNN no pueden capturar de manera efectiva todas las dependencias de largo alcance. En cada capa de un modelo GNN, la información transportada por los nodos se propaga a lo largo de los bordes durante un paso1, por lo que cada capa puede capturar solo una relación de 1 salto. Al apilar varias capas, el modelo GNN puede capturar hasta una relación de salto donde Les igual al número de capas. Dado que apilar más capas no necesariamente aumenta el rendimiento debido a los problemas de ajuste excesivo y suavizado excesivo, la cantidad óptima de capas para estos modelos GNN generalmente no es mayor a 3. Por lo tanto, los modelos solo pueden capturar una relación de hasta 3 saltos. Sin embargo, en aplicaciones del mundo real, la duración de la sesión puede ser fácilmente mayor que 3. Por lo tanto, es muy probable que haya algunos patrones secuenciales importantes que sean más largos que 3. Sin embargo, debido a la limitación de la estructura de la red, estos GNN- modelo basado no puede capturar dicha información.

Tengo dudas sobre la segunda limitación, si es GCN, aunque la primera capa solo puede agregar la información de los vecinos de primer orden, la GCN de segunda capa ya puede involucrar a los vecinos de tercer orden, es decir, es not Una capa solo puede agregar información de orden superior.

Para resolver los dos problemas anteriores, el autor propone LESSR y la información de atributo utilizada en el modelo es el ID del elemento. El marco general es el siguiente:Por favor agregue una descripción de la imagen

2.1 Red de cambio de sesiones

Para evitar la pérdida de información de tiempo en el proceso de cambiar la sesión a la red, el autor usa **S2MG (Session to EOP Multigraph)** para construir la red, de la siguiente manera:

Asegúrese de que la red se pueda reconstruir de nuevo a la sesión agregando etiquetas secuenciales a los bordes. Con [v 1 , v 2 , v 3 , v 3 , v 2 , v 2 , v 4 ] [v_1,v_2,v_3,v_3,v_2,v_2,v_4][ v1,v2,v3,v3,v2,v2,v4] como ejemplo, se puede transformar en:
Por favor agregue una descripción de la imagen
el proceso de reconstrucción es el siguiente: nodov 4 v_4v4es el último nodo, y su nodo anterior es v 2 v_2v2, por lo que puede obtener ( v 2 , v 4 ) (v_2,v_4)( v2,v4) , en este momentov 2 v_2v2Se convierte en el último nodo, según la etiqueta del borde entrante, puede obtener ( v 2 , v 2 , v 4 ) (v_2,v_2,v_4)( v2,v2,v4) , que se puede refactorizar.

Para resolver el problema de la dependencia de largo alcance ineficaz , el autor utiliza el método de gráfico de sesión a acceso directo para construir la red. La idea básica se refleja en la palabra acceso directo , es decir, agregar bordes directamente entre algunos nodos originalmente desconectados, para que en la transmisión de información en el proceso, la información entre estos nodos se pueda transmitir más rápido a través de atajos . detalles de la siguiente manera:

si , t 1 = tu , si , t 2 = v s_{i,t_1}=u,s_{i,t_2}=vsyo , t1=tu ,syo , t2=vt 1 < t 2 t_1<t_2t1<t2, para cada par de nodos ( u , v ) (u,v)( tu ,v ) Agregue bordes y bucles propios para cada nodo,[ v 1 , v 2 , v 3 , v 3 , v 2 , v 2 , v 4 ] [v_1,v_2,v_3,v_3,v_2,v_2, v_4][ v1,v2,v3,v3,v2,v2,v4] como se muestra a continuación
Por favor agregue una descripción de la imagen

2.2 Agregación que conserva el orden de borde (EOPA)层

Hay muchos métodos basados ​​en GNN que usan la idea de agregación invariable por permutación , ignorando el orden relativo de los bordes. Por lo tanto, el autor propone la capa EOPA , que utiliza GRU para agregar la información de los nodos vecinos. Específicamente, sea OE en ( i ) = [ ( j 1 , i ) , ( j 2 , i ) , . . . , ( jdi , i ) ] OE_{in}(i)=[(j_1,i), ( j_2,i),...,(j_{d_i},i)]OE _yo n( yo )=[ ( j1,yo ) ,( j2,yo ) ,. . . ,( jdyo,i ) ] es un conjunto ordenado de aristas conectadas, dondedi d_idyopara el nodo iiEl valor de grado de i
, la fórmula de agregación es la siguiente: xi ( l + 1 ) = W upd ( l ) ( xi ( l ) ∣ ∣ hdi ( l ) ) x_i^{(l+1)}=W_{upd }^{(l)}(x_i^{(l)}||h_{d_i}^{(l)})Xi( l + 1 )=Warriba _ _( l )( Xi( l )hdyo( l ))

hk ( l ) = GRU ( l ) ( W mensaje ( l ) xjk ( l ) , hk − 1 ( l ) ) h_k^{(l)}=GRU^{(l)}(W_{mensaje}^{( l)}x_{jk}^{(l)},h_{k-1}^{(l)})hk( l )=GR U _( l ) (Wm s g( l )Xjk _( l ),hk 1( l ))

其中,{ hk ( l ) : 0 < = k < = di } \{h_{k}^{(l)}:0 <=k<=d_i\}{ hk( l ):0<=k<=dyo} paraGRU GRUEl estado de la capa oculta de G R U ,ho ( l ) h_o^{(l)}ho( l )es un vector cero, W msg W_{msg}Wm s ges la matriz de pesos. La razón por la que el autor elige GRU es que GRU funciona mejor que LSTM en la recomendación basada en sesiones .

2.3 Atención de gráfico de acceso directo (SGAT) 层

El autor cree que en los sitios web de comercio electrónico, la duración de una sesión suele ser superior a 3, y una vez que GNN se apila demasiado (más de 3 capas), el efecto puede ser peor. Entonces es difícil agregar información durante tanto tiempo utilizando GNN ordinario en este momento. Por lo tanto, el autor propone la capa SGAT , que consiste en aumentar la conexión entre algunos nodos que no están conectados directamente para que la información se transmita más rápido, la fórmula es la siguiente:
xi ( l + 1 ) = ∑ ( j , i ) ∈ E in ( i ) aij ( l ) W val ( l ) xj ( l ) x_i^{(l+1)}=\sum_{(j,i)\in E_{in}(i)}a_{ij } ^{(l)}W_{val}^{(l)}x_j^{(l)}Xi( l + 1 )=( j , yo ) miyo n( yo )ayo j( l )Wv a l( l )Xj( l )

ai ( l ) = softmax ( ei ( l ) ) a_i^{(l)}=softmax(e_i^{(l)})ai( l )=s o f t m a x ( ei( l ))

eij ( l ) = ( pags ( l ) ) T σ ( tecla W ( l ) xi ( l ) + W qry ( l ) xj ( l ) + b ( l ) ) e^{(l)}_{ij} =(p^{(l)})^T\sigma(W_{clave}^{(l)}x_i^{(l)}+W_{qry}^{(l)}x_j^{(l)} +b^{(l)})miyo j( l )=( pag( l ) )T σ(Wclave _ _( l )Xi( l )+Wq r y( l )Xj( l )+b( l ) )

donde p ( l ) p^{(l)}pag( l )b ( l ) ∈ R db^{(l)}\in {\bf R}^db( l )Rre .

2.4 Estructura general

Al diseñar la estructura general del modelo, el autor explicará cómo organizar la capa EOPA y la capa SGAT . El autor utiliza una capa de EOPA y una capa de interacción SGAT por las siguientes razones:

  1. La capa SGAT provocará la pérdida de información.Si varias capas SGAT se apilan continuamente, la pérdida de información será más grave.
  2. Las interacciones de dos a dos pueden usarse entre sí para la incrustación producida por diferentes capas.

Además, el autor canceló la operación de conexión completa y la entrada de cada capa es el empalme de la salida de todas las capas anteriores.

2.5 Incrustación de sesión generada

Después de obtener la representación de cada nodo, use un mecanismo de atención para agregar las representaciones de los nodos para obtener la representación de la red, la fórmula es la siguiente:
h G = ∑ i ∈ V β ixi ( L ) h_G=\sum_{i \en V}\beta_ix_i^{(L)}hg=yo VbyoXi( L )

β = softmax ( ϵ ) \beta=softmax(\epsilon) .b=s o f t m a x ( ϵ )

ϵ yo = q T σ ( W 1 xi ( L ) + W 2 xúltimo ( L ) + r ) \epsilon_i={\bf q}^T\sigma(W_1x_i^{(L)}+W_2x_{último}^{ (L)}+r)ϵyo=qT σ(W1Xi( L )+W2Xúltimo _ _ _( L )+r )

其中,q , r ∈ R dq,r \in {\bf R}^dq ,rRre .

La representación de la red captura una preferencia de toda la sesión Dado que los estudios existentes han demostrado que considerar explícitamente los intereses recientes del usuario tiene un mejor efecto en la recomendación, el autor define un vector de preferencia local sl = xlast ( L ) s_l=x_{ last }^{(B)}syo=Xúltimo _ _ _( L )
sh = W h ( h GRAMO ∣ ∣ sl ) s_h=W_h(h_G||s_l)sh=Wh( hgsyo)

3 ¿Cuál es el efecto

El autor primero lo comparó con el modelo de referencia:
Por favor agregue una descripción de la imagen
como se puede ver en la tabla anterior, con HR@20 y MRR@20 como indicadores promedio, LESSR es óptimo. Luego, el autor comparó la efectividad de la capa EOPA:
Por favor agregue una descripción de la imagen
Se puede ver que agregar EOPA ha mejorado el rendimiento del modelo.

Luego, el autor probó cómo organizar la capa EOPA y la capa SGAT:
Por favor agregue una descripción de la imagen
A partir de esto, podemos ver que ESES es la mejor combinación.

Finalmente, el impacto de diferentes tamaños de incrustación y capas de modelo en el rendimiento del modelo se probó en tres conjuntos de datos:
Por favor agregue una descripción de la imagen
como se puede ver en la figura, el impacto de diferentes tamaños de incrustación de datos y capas en la precisión es bastante obvio.

4 Resumen

Después de leer el artículo 'Manejo de la pérdida de información de las redes neuronales gráficas para la recomendación basada en sesiones', tengo los siguientes recibos:

  1. Para hacer que GNN sea más profundo, uno de los propósitos principales es agregar información sobre vecinos de orden superior. Este artículo proporciona una nueva idea. Al agregar un atajo, se puede lograr el mismo efecto. Sin un suspiro, es maravilloso ~
  2. Una idea básica del recomendador basado en sesiones es mapear cada sesión en un gráfico, luego aprender a incrustar el gráfico, retener la preferencia de toda la sesión y luego comparar la similitud entre cada elemento y cada sesión, y hacer recomendaciones basadas en sobre esta similitud.
  3. Todavía tengo algunas dudas sobre la limitación de que GNN no puede agregar información a largo plazo, personalmente creo que la duración promedio de las sesiones en diferentes escenarios debe ser diferente. Por ejemplo, al comprar productos y escuchar música, generalmente es relativamente raro comprar más de diez o veinte productos al día, pero es normal escuchar más de diez o veinte piezas de música al día, así que continúe usando el texto en la escena donde la sesión es relativamente corta ¿SGAT definitivamente mejorará el efecto?

Referencias

  1. Manejo de pérdida de información de redes neuronales gráficas para recomendaciones basadas en sesiones

Supongo que te gusta

Origin blog.csdn.net/weixin_44027006/article/details/125004991
Recomendado
Clasificación