Red de conocimiento informático - Aprendizaje de código fuente - Lectura de documentos del sistema de recomendación (veintitrés): filtrado colaborativo de gráficos neuronales NGCF

Lectura de documentos del sistema de recomendación (veintitrés): filtrado colaborativo de gráficos neuronales NGCF

Tesis:

Título de la tesis: "Filtrado colaborativo de gráficos neuronales"

Dirección de la tesis: https://arxiv.org/pdf/1905.08108.pdf

Principal El contenido de este artículo presenta el algoritmo de filtrado colaborativo de estructura gráfica basado en la factorización matricial original y métodos de aprendizaje profundo, que generalmente obtiene la incrustación de usuarios (o elementos) mediante el mapeo de características existentes (como ID y atributos) que describen a los usuarios (o elementos). . Sobre esta base, las incrustaciones de usuarios y elementos se aprovechan para la recuperación colaborativa. Sin embargo, los autores creen que un inconveniente inherente de este enfoque es que las señales colaborativas subyacentes en los datos de interacción usuario-elemento no están codificadas en el proceso de incorporación. Por lo tanto, las incorporaciones resultantes pueden no ser suficientes para capturar el efecto de filtrado colaborativo.

Echemos un vistazo a cómo este artículo explota posibles señales de colaboració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, etc. El elemento central del sistema de recomendación es evaluar el gusto del usuario por el producto en función de sus compras y clics anteriores, proporcionando así a cada usuario recomendaciones personalizadas. El algoritmo de filtrado colaborativo cree que los intereses de los usuarios con comportamientos históricos similares son los mismos, por lo que recomendará a los usuarios los pasatiempos de los usuarios del mismo tipo, que es UserCF, mientras que ItemCF recomendará elementos con comportamientos históricos similares a los usuarios.

Los métodos de filtrado colaborativo tradicionales se basan en la descomposición matricial o en el aprendizaje profundo, y ambos métodos ignoran una información muy crítica, es decir, la interacción usuario-elemento oculta en el proceso de interacción usuario-elemento.

En este artículo, desarrollamos un nuevo marco de recomendación, Neural Graph Collaborative Filtering (NGCF), que integra las interacciones usuario-elemento (más específicamente, una estructura de gráfico bidireccional) durante el proceso de incrustación. (NGCF) explota la estructura del gráfico de elementos de usuario propagando incrustaciones en la estructura del gráfico de elementos de usuario. Este enfoque modela representaciones de conectividad de alto orden en gráficos de elementos de usuario, inyectando así efectivamente señales de colaboración en el proceso de integración de manera explícita.

Antes de presentar el modelo, primero expliquemos qué es la interacción usuario-elemento y qué es la interacción usuario-elemento de alto orden.

Echemos un vistazo al diagrama de la izquierda, que es la interacción usuario-elemento. El lado derecho es la estructura de árbol de este gráfico. Este gráfico es el gráfico de interacción de orden superior de u1. Tenga en cuenta que solo l > 1 es la conexión de orden superior de u1. Tenga en cuenta que una ruta como u1 ← i2 ← u2 representa una similitud de comportamiento entre u1 y u2, ya que ambos usuarios han interactuado con i2. Y otra ruta más larga u1 ← i2 ← u2 ← i4 significa que u1 puede hacer clic en i4 porque su usuario similar u2 ha comprado i4 antes. Por otro lado, en el nivel l = 3, el usuario u1 preferirá i4 a i5, debido a que hay dos caminos de i4 a u1, mientras que i5 solo tiene uno.

Por supuesto, esta estructura de árbol no se puede representar mediante la construcción de nodos de árbol reales, porque el modelo de árbol es muy complejo y la estructura es muy grande. Es imposible construir un árbol para cada usuario. demasiado. Entonces, ¿cómo lograr el efecto de conectividad de alto orden al diseñar la estructura del modelo? Esto requiere el uso de redes neuronales. Esta transferencia de incrustación entre cada capa se representa diseñando una capa de propagación de incrustación.

O tome la figura anterior como ejemplo, apile dos capas para capturar la similitud de comportamiento de u1←i2←u2, apile tres capas para capturar las recomendaciones potenciales de u1←i2←u2←i4 y la fuerza del flujo de información (mediante evaluación de peso entrenable entre capas) y priorizar recomendaciones para i4 e i5.

Esto es lo mismo que la incrustación tradicional en el ID de usuario original y el ID del proyecto. A diferencia de las incrustaciones tradicionales, en nuestro marco NGCF, optimizamos las incrustaciones propagándolas sobre el gráfico de interacción usuario-elemento. Dado que el paso de optimización de la incorporación inyecta explícitamente señales de colaboración en la incorporación, puede proporcionar incorporaciones más efectivas para las recomendaciones.

Esta capa es el núcleo de este artículo y la cubriremos en detalle a continuación.

Intuitivamente, los elementos con los que los usuarios han interactuado proporcionan la base más directa para las preferencias del usuario. Asimismo, los usuarios que han interactuado con un elemento pueden considerarse una de sus características y pueden usarse para medir la similitud sinérgica de dos elementos. Nos basamos en esto con difusió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

Para el usuario conectado y el par de elementos (u,i), definimos el mensaje de i a u como:

donde, ei es la incorporación de i, eu es la incorporación de u y pui es el factor de atenuación utilizado para controlar cada propagación. La función f es un constructor de mensajes y f se define como:

Entre ellos, W1 y W2 se utilizan para extraer información incrustada útil. Se puede ver que la interactividad directa de i y u controlada por W2. El mensaje depende de La afinidad entre la IE y la UE, por ejemplo, transmite más mensajes de proyectos similares.

Otro punto importante es Nu y Ni, es decir, pui = 1/. Nu y Ni representan los vecinos del primer salto del usuario u y del elemento i. Desde una perspectiva de aprendizaje de representación, pui refleja hasta qué punto los elementos históricos contribuyen a las preferencias del usuario. Desde la perspectiva del paso de mensajes, πi puede interpretarse como un factor de descuento considerando que el mensaje propagado debería decaer con la longitud del camino.

Agregación de mensajes

El método de agregación es el siguiente:

donde representa la representación del usuario u obtenida después de la primera capa de propagación incrustada. La función de activación utilizada es Leakyrelu, que es adecuada para codificar señales positivas y negativas.

Otra información importante es que se define de la siguiente manera:

La función principal de esta información es preservar la información de la característica original.

Hasta ahora, tenemos , y de manera similar, también podemos obtener , que son información de conexión de primer orden.

Según el cálculo anterior, si apilamos varias capas de propagación integradas, podemos obtener información de conectividad de alto orden:

El proceso de cálculo es el siguiente:

Ver Aquí, surge una gran confusión en mi mente Cuando calculamos eu y ei en la capa l-ésima al mismo tiempo, necesitamos la información de la capa l-1, entonces, ¿cómo sabemos si hay ei y? ei en la l-ésima capa? ¿Qué pasa con la UE? Es decir, cuando el número total de capas en la l-ésima capa en el lado u es mayor que el número total de capas en la l-ésima capa en el lado i, ¿cómo podemos calcular eu en el l-ésimo? ¿Capa basada en ei en la capa l-1? Después de pensarlo, creo que debería ser así. La muestra de entrenamiento debería ser una ruta, que es la ruta u1 ← i2 ← u2 ← i4 en este ejemplo. Esto garantiza que el número de capa l de u1 e i4 sea el mismo. Por lo tanto, el problema de discrepancia de capas anterior no existe.

PD: Al ver los resultados experimentales más tarde, me di cuenta de que L es fijo, por lo que no faltará cada capa.

Otro punto es que W es diferente entre diferentes capas. Cada capa tiene sus propios parámetros. Puedes saber esto mirando la fórmula. La razón es que estamos extrayendo información de diferentes capas. se requiere.

Otra confusión es: ¿el pui de cada capa es el mismo? La fórmula aquí parece referirse al primer salto de Nu y Ni en el cálculo.

Esta parte del proceso matemático se deriva de las operaciones matriciales en el entrenamiento por lotes y es matemáticamente idéntica al proceso del que hablamos antes. Imagínese, si no usa matrices, ¿cómo puede realizar interacciones tan complejas durante el entrenamiento?

Después de realizar la capa L de propagación de incrustación, obtenemos L eu y Lei ei y los conectamos en serie:

De esta manera, no solo podemos incrustar la capa de propagación Enriquecimiento la incrustación inicial, también puede controlar el alcance de la propagación ajustando L.

Finalmente, realizaremos un cálculo interno del producto para evaluar la preferencia del usuario por el artículo objetivo:

Usando la pérdida de bpr en el método de pares: