Filtrado colaborativo

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.

Imagen que muestra varias películas y usuarios organizados en un espacio de incorporaciones unidimensionales. La posición de cada película a lo largo de este eje describe si se trata de una película para niños (izquierda) o una película para adultos (derecha). La posición de un usuario describe el interés en películas infantiles o para adultos.

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.

Imagen de una matriz de comentarios, en la que una fila corresponde a un usuario y una columna, a una película. Cada usuario y cada película se asignan a una incorporación unidimensional (como se describe en la figura anterior), de modo que el producto de las dos incorporaciones se aproxima al valor de verdad fundamental de la matriz de comentarios.

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:

Imagen que muestra varias películas y usuarios organizados en un espacio bidimensional de incorporación. La posición de cada película a lo largo del eje horizontal describe si se trata de una película para niños (izquierda) o una película para adultos (derecha); su posición en el eje vertical indica si es una película taquillera (arriba) o una de autoría (abajo). La posición de los usuarios refleja sus intereses en cada categoría.

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.

Imagen de la misma matriz de comentarios. Esta vez, cada usuario y cada película se asignan a una incorporación bidimensional (como se describe en la figura anterior), de modo que el producto escalar de las dos incorporaciones se aproxima al valor de verdad fundamental de la matriz de comentarios.

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.

Comprueba tu comprensión

El modelo recomienda una app de compras a un usuario porque recientemente instaló una app similar. ¿De qué tipo de filtro es un ejemplo?
Filtrado basado en el contenido
¡Bien hecho! El filtrado basado en el contenido no tiene en cuenta a otros usuarios.
Filtrado colaborativo
El filtrado colaborativo tiene en cuenta a otros usuarios. En este caso, solo nos interesa un usuario.