Título de la tesis: Filtrado colaborativo de grafos neuronales.
Dirección: https://arxiv.org/pdf/1905.08108.pdf.
Este artículo trata sobre el algoritmo de filtrado colaborativo de la estructura de gráficos. En los métodos originales basados en la factorización matricial y el aprendizaje profundo, los usuarios (o elementos) generalmente se integran mediante el mapeo de características existentes (como ID y atributos). Por lo tanto, las incrustaciones de usuarios y elementos se utilizan para la recuperación colaborativa. Sin embargo, los autores creen que la desventaja inherente de este enfoque es que las señales de colaboración ocultas en los datos de interacción usuario-elemento no se codifican durante el proceso de integración. De esta manera, las incorporaciones resultantes pueden no ser suficientes para capturar el efecto de filtrado colaborativo.
Echemos un vistazo a cómo este artículo explota las posibles señales de cooperación en los datos.
Los algoritmos de recomendación se utilizan ampliamente en diversos campos y desempeñan un papel vital en el comercio electrónico, las redes sociales, la publicidad y otros campos. El contenido principal del sistema de recomendación es evaluar el gusto del usuario por un artículo en función de su compra anterior y su comportamiento de clic, haciendo así recomendaciones personalizadas para cada usuario. El algoritmo de filtrado colaborativo cree que los usuarios con comportamientos históricos similares tienen los mismos intereses, por lo que recomienda los intereses y pasatiempos de usuarios del mismo tipo, es decir, UserCF, mientras que ItemCF recomienda elementos con comportamientos históricos similares a los usuarios.
Los métodos tradicionales de filtrado colaborativo se basan en la descomposición matricial o en el aprendizaje profundo. Ambos métodos ignoran una información muy crítica: la señal colaborativa de la interacción entre el usuario y el elemento, que está oculta en la interacción entre el usuario y el elemento. usuario y el elemento en la interacción. Los métodos de filtrado colaborativo originales ignoran esta información, por lo que no basta con incorporar representaciones de usuarios y elementos.
Este artículo desarrolla un nuevo marco de recomendación, el filtrado colaborativo de redes neuronales (NGCF), mediante la integración de interacciones usuario-elemento (más específicamente, estructuras de gráficos bipartitos) en el proceso de incrustación. Ampliar la incrustación en el gráfico del proyecto del usuario. estructura para aprovechar esta estructura. Este enfoque modela la expresión de la conectividad de orden superior en el gráfico de elementos de usuario, inyectando así de manera efectiva señales de cooperación en el proceso de integración de manera explícita.
Antes de presentar el modelo, primero expliquemos qué es un elemento de usuario. Interacciones y ¿qué son los elementos de usuario avanzados? Interactivo.
Mira primero la imagen de la izquierda. Esta imagen es la interacción del elemento del usuario. u1 es el usuario que queremos recomendar, representado por un doble círculo. Los elementos con los que ha interactuado son i1, i2 e i3. Mire el diagrama de estructura de árbol de la derecha. Este diagrama es el diagrama de interacción de orden superior de u1. Tenga en cuenta que sólo L > 1 es una conexión de orden superior de u1. La observación de tal camino, u1 ← i2 ← u2, representa la similitud de comportamiento entre u1 y u2, ya que ambos usuarios han interactuado con i2. Por otro lado, la ruta más larga u1←i2←u2←i4 implica que u1 puede hacer clic en i4 porque su usuario similar u2 también compró i4 antes. Por otro lado, en el nivel l = 3, el usuario u1 preferirá i4 a i5 ya que hay dos caminos de i4 a u1 y solo un camino de i5.
Por supuesto, es imposible expresar esta estructura de árbol construyendo nodos de árbol reales, porque el modelo de árbol es complejo y la estructura es muy grande. Es imposible construir un árbol para cada usuario. la carga de trabajo es demasiado grande. Entonces, ¿cómo diseñar la estructura del modelo para lograr este efecto de conectividad de alto orden? Esto se aplicará a las redes neuronales. La capa de propagación de incrustación está diseñada para representar la transmisión de la incrustación entre cada capa.
Tome la imagen de arriba como ejemplo. Apilar dos capas puede capturar la similitud de comportamiento de u1←i2←u2, apilar tres capas puede capturar la recomendación potencial y la intensidad del flujo de información de u1←i2←u2←i4 (evaluado mediante pesos entrenables entre capas), determinar las recomendaciones de i4 e i5 .
Esto es lo mismo que la incrustación tradicional, que incrusta el ID de usuario y el ID de elemento originales. La diferencia con la incrustación tradicional es que en nuestro marco NGCF, optimizamos la incrustación desplegándola en el gráfico de interacción usuario-elemento. Debido a que el paso de optimización de la incorporación inyecta explícitamente señales de cooperación en las incorporaciones, puede proporcionar incorporaciones más efectivas para las recomendaciones.
Esta capa es el contenido principal de este artículo. Te lo explicamos detalladamente a continuación.
Intuitivamente, los elementos con los que el usuario ha interactuado proporcionarán la base más directa para las preferencias del usuario. De manera similar, los usuarios que han interactuado con un elemento pueden considerarse características del elemento y pueden usarse para medir la similitud colaborativa de dos elementos. Sobre esta base, implementamos la comunicación integrada entre usuarios y proyectos conectados, y lo logramos a través de dos operaciones principales: construcción de mensajes y agregación de mensajes.
Construcción del mensaje (Construcción del mensaje)
Para un par de elemento-usuario conectado (u, I), definimos el mensaje de I a u como:
Donde ei es la incrustación de I, eu es la incrustación de U, pui es el factor de atenuación que controla cada propagación, la función f es el constructor del mensaje y f se define como:
Entre ellos, W1 y W2 se utilizan para la extracción. Con información de incrustación útil, podemos ver la interacción directa entre I y U controlada por W2, lo que hace que los mensajes dependan de la afinidad entre ei y eu, por ejemplo, entregando más mensajes de elementos similares.
Otro punto importante es Nu y Ni, pui = 1/. Nu y Ni representan los vecinos de primer salto del usuario u y del elemento i, y pui refleja la contribución de los elementos históricos a las preferencias del usuario desde la perspectiva del aprendizaje de representación. Desde la perspectiva del paso de mensajes, pui puede interpretarse como un factor de descuento, considerando que el mensaje que se propaga debe decaer con la longitud del camino.
Agregación de mensajes
El método de agregación es el siguiente:
que representa la representación del usuario u obtenida después de la primera capa de propagación incrustada. La función de activación utiliza Leakyrelu, que es adecuado para codificar señales pos y neg.
Otra información importante es que se define de la siguiente manera:
La función principal de esta información es conservar la información de la característica original.
Tenemos el mismo método hasta ahora y también podemos conseguirlo. Toda esta es información sobre la conectividad de primer orden.
Según el método de cálculo anterior, si apilamos varias capas de propagación incrustadas, podemos obtener información de conexión de alto orden:
El método de cálculo es el siguiente:
Mira aquí, tengo una gran duda en mente. Cuando calculamos eu y ei de la capa L, necesitamos la información de la capa L -1, entonces, ¿cómo sabemos si ei y eu existen en la capa L? En otras palabras, cuando el número total de capas L en el lado U es mayor que el número total de capas en el lado I, ¿cómo calcular la E de la capa L en función de la e I de la capa l-1? Después de pensarlo, siento que la muestra de entrenamiento debería ser una ruta, es decir, este ejemplo es la ruta u1 ← i2 ← u2 ← i4, por lo que se puede garantizar que el número de capas L de u1 y el número de capas de i4 son iguales, por lo que no hay problema de discrepancia en el número de capas superiores.
Ps: Sólo después de ver los resultados experimentales supe que L es fijo, por lo que no faltará ninguna capa.
Otra cosa es que W es diferente entre diferentes capas, y cada capa tiene sus propios parámetros. Esto se puede ver en la fórmula porque necesitamos diferentes W para extraer información de diferentes capas.
Otra pregunta es si pui es el mismo para cada capa L. La fórmula aquí parece referirse a los resultados del cálculo de Nu y Ni para el primer salto.
Esta parte del contenido es el proceso matemático derivado de operaciones matriciales durante el entrenamiento por lotes. De hecho, el cálculo matemático del proceso del que hablamos antes es exactamente el mismo. Imagínese cómo realizar operaciones interactivas tan complejas durante el entrenamiento sin operaciones matriciales.
Después de incrustar la propagación en la capa L, tenemos L eu y Lei ei, que concatenamos:
Esto no solo enriquece la incrustación inicial al incrustar la capa de propagación, sino que también Controle el rango de dispersión ajustando l.
Finalmente, calculamos el producto interno para evaluar la preferencia del usuario por el producto objetivo:
Pérdida de Bpr utilizando un enfoque por pares: