Filtrado colaborativo

Este concepto se ve a menudo en artículos sobre aprendizaje automático, pero debido a que solo he estado expuesto a él por un corto tiempo, siempre lo entendí un poco y no lo entendí completamente.

En primer lugar, para entenderlo literalmente, "colaboración" requiere un "colectivo", y "filtrado" debería significar selección. Por lo tanto, el filtrado colaborativo generalmente significa "cribado" a través de un "colectivo". sistema de recomendación como ejemplo. Mi comprensión personal de "colaboración" aquí es recopilar "evaluaciones de muchas personas", y la "evaluación" aquí es "calificar las cosas a las que el colectivo ha estado expuesto", para que probablemente pueda aprobarse. algunos* **Las mismas cosas reflejan los diferentes "valores" de los usuarios, y luego las personas con valores muy similares son "seleccionadas" a través de esos valores, y luego se recomiendan mutuamente cosas que les gustan a las mismas personas. Entonces es probable que todos necesiten estas recomendaciones.

Después de pasar por el bautismo de datos, aprendí que CF actualmente tiene dos direcciones principales, una se basa en la memoria (Memory-base) y la otra se basa en modelos (Filtrado colaborativo basado en modelos). .

El primero, que es más popular, se basa en el objetivo de atención y se divide en filtrado colaborativo basado en usuarios y filtrado colaborativo basado en proyectos. El ejemplo de un sistema de recomendación de calificación simple dado anteriormente puede ser. se dice que el filtrado colaborativo basado en usuarios filtra a usuarios similares en función del "valor subjetivo" de los mismos artículos y luego complementa los productos con calificaciones altas para lograr el propósito de recomendar productos y luego se basa en proyectos a través de este colectivo de usuarios; Para evaluar el conjunto de productos, busque elementos con alta similitud desde la perspectiva de los elementos para lograr el efecto de recomendar productos. Aunque los objetivos son diferentes, desde mi punto de vista personal, generalmente se basan en los "valores" creados por este conjunto de usuarios. La única diferencia es que la CF basada en el usuario "se preocupa" por las "diferencias" en el "valor subjetivo" de cada uno. user ", y CF basado en proyectos es identificar las diferencias en "elementos" en función de los "valores universales" de todo el conjunto de usuarios hacia el conjunto de proyectos. No sé si esta metáfora es apropiada. Mi comprensión aquí de “universal” es “mayoritaria”, lo que significa una tendencia general. Si los valores son más "abstractos", haga clic aquí directamente y los "valores" equivalen al "sistema de referencia" en física.

Sin embargo, los dos métodos anteriores son impotentes ante el hecho de que no todos los usuarios han evaluado la mayoría de los productos (los datos son escasos), por lo que, en base a este problema, se utilizó el método basado en modelos (Model-Based En CF, lo que encontré en un artículo reciente es un filtrado colaborativo de "descomposición matricial", que puede obtener un modelo basado en datos existentes y luego usar este modelo para hacer recomendaciones. Entonces, ¿cómo se hace? A continuación veamos la factorización matricial.

Supongamos que primero tengo una matriz sobre las calificaciones musicales de los usuarios como se muestra a continuación:

Con solo los datos anteriores, es difícil para los usuarios recomendar música entre sí, porque puede Se ve que los propios usuarios no han escuchado suficientes canciones, entonces, ¿cómo hacer que los datos sean más “completos”? Aquí es cuando se necesita la descomposición matricial. La base teórica matemática del algoritmo de descomposición matricial es la transformación fila-columna de la matriz. Existen las siguientes reglas en la transformación fila-columna. Sabemos que la transformación fila de la matriz A es equivalente a multiplicar A por una matriz de la izquierda, y la transformación de columna de la matriz A es equivalente a multiplicar la matriz A de la derecha por una matriz. Por lo tanto, la matriz A se puede expresar como A=PEQ=PQ (E es la matriz estándar).

La representación visual es la siguiente:

El propósito de la descomposición matricial es descomponer una matriz dispersa de calificación de usuarios en la forma de multiplicar la matriz de factores de usuario y la matriz de factores de elementos R= U (transformado (conjunto) * I, nuestro propósito es finalmente multiplicar inversamente las dos matrices de factores para obtener una matriz de calificación de usuario completa. Entonces, ¿cuál es este factor de usuario y artículo? Continuaremos con el formulario de puntuación musical anterior y digamos que una canción puede contener múltiples estilos musicales. Podemos cuantificar los estilos y reflejar la proporción de varios estilos en una canción. Entonces podemos considerar los "factores latentes" aquí como "estilo musical". , K factores pueden considerarse como K estilos.

Por ejemplo, como se muestra a continuación:

Se puede decir que estos factores son parámetros importantes en nuestro modelo. Desde mi punto de vista personal, se puede decir que las dos matrices de factores descompuestas están en el CF según el modelo. , y en el "modelo" En realidad, creo que se puede comparar con los parámetros de un modelo lineal. Lo último importante de nuestro modelo de regresión son los parámetros en la fórmula. Estas dos matrices de factores son en realidad parámetros importantes en nuestro modelo. Una vez conocidos los parámetros, el modelo también lo solicitará. Si no comprende los modelos lineales, puede consultar el curso de aprendizaje automático de Andrew Ng, que los presenta en detalle, a diferencia de mí, que solo sabe un poco al respecto.

Entonces, ¿cómo se derivan estos valores? El proceso también es muy similar a la regresión lineal. Lo siguiente es una simple inversión de la correlación. Primero, asumimos que la diferencia entre la calificación real del usuario y nuestra calificación prevista sigue una distribución gaussiana.

R es la calificación. ¿Matriz? U es la matriz de factores del usuario, V es la matriz de factores del elemento

El siguiente paso es la estimación de máxima verosimilitud para maximizar la probabilidad según los datos existentes

Puede entenderlo por analogía con modelo lineal Las ideas son muy similares, por lo que también se debe utilizar la idea de estimación de probabilidad para maximizar el valor, tome logaritmos en ambos lados de la fórmula. Se puede ver que si desea maximizar la probabilidad, entonces. El primer término de la fórmula debe ser mínimo, que es algo que no se me ocurrió. Sí, puedes ver la fórmula del método de mínimos cuadrados a continuación.

¿Cómo solemos hacer modelos lineales cuando nos encontramos con esta situación? Sí, es un descenso de gradiente. Primero, encuentre la derivada parcial

Finalmente, la fórmula de actualización del factor matricial del descenso de gradiente:

Luego itere hasta que el umbral que estableció converja para obtener la solución óptima local.

La siguiente es mi práctica de simulación aleatoria basada en la idea de descomposición matricial mencionada anteriormente. Puede sentir la precisión usted mismo, tal vez la escritura sea un poco tosca ~

Nota: muchos. de los materiales ilustrados anteriores provienen de muchas fuentes en línea

.org/pages/viewpage.action?pageId=10030193

.