Para abordar algunas de las limitaciones del filtrado basado en el contenido, el filtrado colaborativo usa similitudes entre los usuarios y los elementos de forma simultánea a fin de proporcionar recomendaciones. Esto permite recomendaciones fortuitas, es decir, los modelos de filtrado colaborativo pueden recomendar un elemento al usuario A según los intereses de un usuario B similar. Además, las incorporaciones se pueden aprender de forma automática, sin depender de la ingeniería manual de los atributos.
Ejemplo de recomendación de película
Considera un sistema de recomendación de películas en el que los datos de entrenamiento consten de una matriz de comentarios en la que sucede lo siguiente:
- Cada fila representa un usuario.
- Cada columna representa un elemento (una película).
Los comentarios sobre las películas se clasifican en una de estas dos categorías:
- Explícito: Los usuarios especifican una calificación numérica para indicar si les gustó una película en particular.
- Implícito: Si un usuario mira una película, el sistema infiere que le interesa.
Para simplificar, supondremos que la matriz de comentarios es binaria, es decir, un valor de 1 indica interés en la película.
Cuando un usuario visita la página principal, el sistema debería recomendar películas basadas en lo siguiente:
- similitud con las películas que le gustaron al usuario en el pasado
- películas que les gustan a otros usuarios similares
A modo de ilustración, vamos a diseñar algunas funciones para las películas que se describen en la siguiente tabla:
Película | Calificación | Descripción |
---|---|---|
El caballero de la noche asciende | PG-13 | Batman intenta salvar a Gotham City de una destrucción nuclear en esta secuela de El caballero de la noche, basada en el universo de DC Comics. |
Harry Potter y la piedra filosofal | PG | Un niño huérfano descubre que es mago y se inscribe en el Colegio Hogwarts de Magia y Hechicería, donde emprende su primera batalla contra el malvado Lord Voldemort. |
Shrek | PG | Un adorable ogro y su burro se emprenden en la misión de rescatar a la princesa Fiona, que está encarcelada en un castillo por un dragón. |
Las trillizas de Belleville | PG-13 | Cuando secuestran al ciclista profesional Champion durante el Tour de Francia, su abuela y su perro con sobrepeso viajan para rescatarlo, con la ayuda de un trío de cantantes de jazz. |
Memento | R | Un hombre con amnesia busca desesperadamente resolver el asesinato de su esposa; por su parte, se tatúa las pistas en su cuerpo. |
Inserción 1D
Supongamos que asignamos a cada película un escalar en \([-1, 1]\) que describe si la película es para niños (valores negativos) o adultos (valores positivos). Supongamos que también asignamos un escalar a cada usuario en \([-1, 1]\) que describe el interés del usuario en las películas para niños (más cerca de -1) o en las películas para adultos (más cerca de +1). El producto de incorporación de películas y el de incorporación de usuarios debe ser mayor (más cercano a 1) para las películas que esperamos que le gusten al usuario.
En el siguiente diagrama, cada marca de verificación identifica una película que miró un usuario en particular. El tercer y el cuarto usuario tienen preferencias que esta función explica con claridad: el tercer usuario prefiere películas para niños y el cuarto usuario prefiere películas para adultos. Sin embargo, las preferencias del primer y el segundo usuario no se explican bien con esta única función.
Inserción 2D
Una función no era suficiente para explicar las preferencias de todos los usuarios. Para solucionar este problema, agreguemos una segunda característica: el grado en el que cada película es un éxito de taquilla o una de autoría. Con una segunda función, ahora podemos representar cada película con la siguiente incorporación bidimensional:
Una vez más, colocamos a nuestros usuarios en el mismo espacio de incorporación para explicar mejor la matriz de comentarios: para cada par (usuario, elemento) queremos que el producto escalar de la incorporación del usuario y el elemento incorporado esté cerca de 1 cuando el usuario miró la película y de 0 en caso contrario.
En este ejemplo, hicimos un diseño manual de las incorporaciones. En la práctica, las incorporaciones se pueden aprender automáticamente, que es el poder de los modelos de filtrado colaborativo. En las siguientes dos secciones, analizaremos diferentes modelos para aprender estas incorporaciones y cómo entrenarlos.
La naturaleza colaborativa de este enfoque es evidente cuando el modelo aprende las incorporaciones. Supongamos que los vectores de incorporación para las películas son fijos. Luego, el modelo puede aprender un vector de incorporación para que los usuarios expliquen mejor sus preferencias. En consecuencia, las incorporaciones de usuarios con preferencias similares estarán cerca. De manera similar, si se corrigen las incorporaciones de los usuarios, podemos aprender las incorporaciones de películas para explicar mejor la matriz de comentarios. Como resultado, las incorporaciones de películas a las que les gustan usuarios similares estarán cerca en el espacio de incorporaciones.