Actualmente son muchas situaciones en nuestro día a día en las que encontramos sistemas de recomendación. Por ejemplo, al terminar una película en una plataforma de vídeo bajo demanda nos sugiere otras películas que pueden ser de nuestro interés. También podemos encontrar esta situación al hacer una compra en internet: al seleccionar un producto nos recomendará otros que pueden ser de interés. ¿Cómo se hace esta sugerencia? Esta sugerencia se realiza agracias a una técnica utilizada desde hace muchos años llamada sistemas de recomendación, empleada en numerosos sectores: retail, banca, seguros, etc. Los sistemas de recomendación más conocidos por la población son los utilizados por Netflix, Amazon, etc.
Un sistema de recomendación es una herramienta que establece un conjunto de criterios y valoraciones a partir de los datos de los usuarios. El objetivo es realizar predicciones sobre recomendaciones de elementos que puedan ser de utilizad o valor para el usuario. El funcionamiento de los sistemas de recomendación ha evolucionado gracias al desarrollo y la implementación de Machine Learning en nuestra sociedad.
Existen distintos tipos de sistemas de recomendación, dependiendo de las variables principales que condicionan su funcionamiento. Veamos los casos más habituales que se utilizan.
Para este tipo de sistemas de recomendación se necesitan dos cosas: disponer de un perfil de valoraciones del usuario y una cuantificación de las características de los productos disponibles. A partir de los ítems valorados positivamente se pueden recomendar otros de características similares. Sin embargo, estos tipos sistemas de recomendación tienen limitaciones:
El filtrado colaborativo se basa en la idea de esperar que usuarios con un perfil similar tiendan a hacer valoraciones similares. Para que estos sistemas funcionen, se necesita disponer de valoraciones de los usuarios, información sobre sus perfiles y otros datos de calidad sobre su comportamiento en la plataforma, que permita agruparlos por similitud. La limitación de estos sistemas aparece en el momento en que se une un nuevo usuario, ya que no se dispone de información suficiente sobre su comportamiento, por lo que no se pueden hacer recomendaciones. Dentro del filtrado colaborativo existen algunas diferencias:
Para poder comparar los ítems y saber cuánto de parecidos son necesitamos definir una medida de similitud a usar. Podemos elegir diferentes medidas de similitud:
Diferencia cuadrática media. Consiste en calcular la diferencia euclidiana entre dos vectores haciendo uso de la siguiente fórmula:
Donde Bx,y es el conjunto no vacío de ítems valorados en común por los usuarios x e y.
Similitud basada en coseno. Se calcula haciendo uso del coseno del ángulo formado por la intersección de los vectores que representa cada ítem.
Similitud basada en correlación. Los elementos i y j se comparan haciendo uso de la correlación de Pearson.
Donde Ru,i denota la calificación del usuario u en el artículo i, Ri es la calificación promedio del i-ésimo elemento.
Coeficiente de Jaccard. El coeficiente de Tanimoto (Jaccard) se define como la cantidad de elementos por la que dos usuarios expresan cierta preferencia, dividida entre la cantidad de elementos por los cuales el usuario expresa cierta preferencia.Similitud basada en máxima verosimilitud. Se basa en el número de elementos en común entre dos usuarios, siendo su valor una expresión de lo poco probable que sea que dos usuarios tengan tanta superposición dado el número de elementos que hay y el número de elementos que cada usuario tiene como preferencia.
(Nota: hay más posibles medidas de similitud, se han considerado las más usadas o frecuentes.)
Observemos los distintos tipos de sistemas de recomendación en un ejemplo concreto. Se quiere recomendar un hotel a un cliente. Disponemos de las valoraciones que este cliente ha realizado de varios hoteles así como las de otros clientes.
Cliente | Hotel 1 | Hotel 2 | Hotel 3 | Hotel 4 | Hotel 5 | Hotel 6 | Hotel 7 | Hotel 8 | Hotel 9 | Hotel 10 |
---|---|---|---|---|---|---|---|---|---|---|
Cliente x | 5 | 4 | 3 | 5 | ||||||
Cliente 1 | 4 | 3 | 4 | 4 | 5 | 5 | 4 | 4 | 2 | |
Cliente 2 | 5 | 5 | 1 | 2 | 5 | 4 | 2 | |||
Cliente 3 | 3 | 4 | 3 | 5 | 1 | 5 | 4 | 3 | ||
Cliente 4 | 4 | 4 | 2 | 1 | 3 | 3 | 5 | 1 | 2 |
Además, disponemos de atributos asociados al hotel en función de las características que este presenta.
Cliente | Hotel 1 | Hotel 2 | Hotel 3 | Hotel 4 | Hotel 5 | Hotel 6 | Hotel 7 | Hotel 8 | Hotel 9 | Hotel 10 |
Piscina | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
Parking | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
Cerca del centro | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
Utilicemos a continuación el sistema de recomendación basado en contenido para recomendar 3 hoteles a un usuario. Para ello se seguirán los siguientes pasos:
Para el usuario activo, Cliente x, los hoteles que no ha valorado son: hotel 1, hotel 4, hotel 6, hotel 7. Mientras que, los que sí ha valorado son: hotel 2, hotel 3, hotel 5, hotel 8, hotel 9, hotel 10.
Como en este caso, nos encontramos en sistema de recomendación basado en contenido, se utilizará la información de los hoteles que sí han sido valorados para estimar las puntuaciones de aquellos que aún no lo están. Al utilizar las características de los hoteles que son variables binarias (1 en caso que el hotel tenga dicha característica, 0 en caso contrario), como medida de similitud se utilizará el índice de Jaccard.
Utilizando el mismo ejemplo, obervemos qué hoteles se recomiendan haciendo uso del sistema de recomendación de filtrado colaborativo basado en usuarios.
Como en el caso anterior, se utilizan como hoteles valorados los hoteles 2, 3, 5, 8, 9 y 10. Como no valorados los hoteles 1, 4, 6 y 7. Los tres hoteles recomendados para el cliente x, haciendo uso del filtrado colaborativo basado en usuarios es:
Apliquemos ahora el sistema de recomendación de filtrado colaborativo basado en ítems al mismo ejemplo.
Haciendo uso de este tipo de sistema de recomendación, los tres hoteles sugeridos son los siguientes:
Como se observa, utilizando cualquiera de los tres tipos de sistemas de recomendación, el hotel 8 forma parte del conjunto de hoteles sugeridos para el cliente seleccionado. Sin embargo, el valor de la predicción es distinto, ya que cada uno de los tipos de sistemas de recomendación hace uso de características distintas para hacer la recomendación, como se ha explicado a lo largo de esta publicación.