«Estamos dejando la era de la información y entrando en la era de la recomendación»
Al igual que muchas técnicas de aprendizaje automático, un sistema de recomendación hace predicciones basadas en los comportamientos históricos de los usuarios. En concreto, se trata de predecir la preferencia del usuario por un conjunto de artículos basándose en la experiencia pasada. Para construir un sistema de recomendación, los dos enfoques más populares son el basado en el contenido y el filtrado colaborativo.
El enfoque basado en el contenido requiere una buena cantidad de información de las características propias de los artículos, en lugar de utilizar las interacciones y los comentarios de los usuarios. Por ejemplo, pueden ser atributos de las películas como el género, el año, el director, el actor, etc., o el contenido textual de los artículos que puede extraerse aplicando el Procesamiento del Lenguaje Natural. El filtrado colaborativo, en cambio, no necesita nada más que la preferencia histórica de los usuarios sobre un conjunto de artículos. Dado que se basa en datos históricos, la suposición principal es que los usuarios que han estado de acuerdo en el pasado tienden a estarlo también en el futuro. En cuanto a la preferencia de los usuarios, suele expresarse mediante dos categorías. Calificación explícita, es la puntuación que da un usuario a un artículo en una escala móvil, como 5 estrellas para Titanic. Es la respuesta más directa de los usuarios para mostrar cuánto les gusta un artículo. La Calificación Implícita, sugiere la preferencia de los usuarios de forma indirecta, como las visitas a la página, los clics, los registros de compra, la escucha o no de una pista musical, etc. En este artículo, echaré un vistazo al filtrado colaborativo que es una herramienta tradicional y poderosa para los sistemas de recomendación.
El método estándar de filtrado colaborativo se conoce como algoritmo de vecindad más cercana. Hay CF basado en el usuario y CF basado en el ítem. Veamos primero el CF basado en el usuario. Tenemos una matriz n × m de valoraciones, con el usuario uᵢ, i = 1, …n y el elemento pⱼ, j=1, …m. Ahora queremos predecir la calificación rᵢⱼ si el usuario objetivo i no vio/calificó un artículo j. El proceso consiste en calcular las similitudes entre el usuario objetivo i y todos los demás usuarios, seleccionar los X usuarios más similares y tomar la media ponderada de las calificaciones de estos X usuarios con similitudes como pesos.
Mientras que diferentes personas pueden tener diferentes líneas de base a la hora de dar valoraciones, algunas personas tienden a dar puntuaciones altas en general, otras son bastante estrictas aunque estén satisfechas con los artículos. Para evitar este sesgo, podemos restar la valoración media de cada usuario de todos los artículos al calcular la media ponderada, y volver a sumarla para el usuario objetivo, como se muestra a continuación.
Dos formas de calcular la similitud son la correlación de Pearson y la similitud del coseno.