8. Sobre los sistemas de recomendación

 


El rápido crecimiento de la recopilación de datos ha dado lugar a una nueva era de la información. Los datos se utilizan para crear sistemas más eficientes y aquí es donde entran en juego los sistemas de recomendación. Los sistemas de recomendación son un tipo de sistemas de filtrado, mejoran la calidad de los resultados de búsqueda y proporcionan información más relevantes dentro de un sistema de búsqueda o están relacionados con el historial de búsqueda del usuario.

Se utilizan para predecir las preferencias que un usuario le daría a un producto, lugar, o servicio. Las principales empresas de tecnología utilizan estas técnicas y son quienes han implementados diferentes métodos. Por ejemplo, Amazon lo usa para sugerir productos a los clientes, YouTube lo usa para decidir los videos en la la lista de reproducción automática y Facebook lo usa para recomendar páginas y personas a seguir. Además, empresas como Netflix y Spotify dependen en gran medida de la eficacia de sus motores de recomendación para el éxito de su negocio.

Básicamente, encontramos cuatro tipos de filtrado:

  1. Filtrado demográfico: Ofrecen recomendaciones generalizadas para cada usuario basado en la popularidad de un producto en la región. La idea detrás de este filtrado es asumir que la alta popularidad y aclamación de un producto también tenga un buen recibimiento por parte de los consumidores promedio de la región.
  2. Filtrado basado en contenido: Son capaces de sugerir contenido similar basado en la popularidad de un producto. Si a una persona le gusta cierto producto, es muy probable que le gusta también productos altamente similares.
  3. Filtrado colaborativo: Este método busca relacionar personas con intereses similares y provee recomendaciones basado en esta relación. Proyecta una tendencia significativa de cada persona para ubicarlo en un espacio o grupo de personas de similar tendencia. A diferencia del filtrado basado en contenido, este no hace uso de las características del producto (metadata)
  4. Filtrado híbrido: Hace uso de los métodos anteriores para mejorar significativamente las recomendaciones. A medida de que más técnicas son utilizadas, mayor complejidad requiere.


Tarea 1. Recomendación de contenido digital

Como ejemplo didáctico de sistemas de recomendación por contenido utilizando metadatos, se emplea una base de datos que consiste alrededor de 5000 películas enumeradas de acuerdo con MovieLens y disponible en Kaggle. Los metadatos de este conjunto incluyen alrededor de 24 características como son:

 

El proceso de recomendación basado en contenido, hace uso de la característica Overview, que brinda una pequeña descripción de la trama por cada película. Dicho texto es posteriormente convertido a un arreglo numérico siguiendo lo pasos descritos a continuación:

  1. Limpieza del texto:
    1. Remover stopwords
    2. Identificar contenido vacío
  2. Conversión a vectores mediante la técnica TF-IDF de sklearn.feature_extraction.tex
  3. Cálculo de la similitud de coseno. Se realiza todos contra todos para obtener un parámetro de semejanza entre todo el contenido.
  4. Construcción de un mapa reversible para obtener los mejores 10 resultados de una búsqueda

Resultados: Top-15 de contenido similar a la película 'The Godfather'. Se muestra similitud de Coseno y la calificación promedio de IMDB.


Tarea 2. Recomendación de contenido digital en Spotify

Spotipy es una biblioteca ligera de Python para la API web de Spotify. Con Spotipy es posible obtener acceso completo a todos los datos musicales proporcionados por la plataforma de Spotify. Actualmente, Spotify se ubica en el Top-5 de las mejores plataformas de audio y gran parte de su éxito se encuentra estrechamente relacionado con su gran colección de contenido multimedia (audio, podcast, radioprogramas) y a su vez, por sus eficientes técnicas de recomendación. as cuales hacen uso de las preferencias de cada usuario para generar recomendaciones con amplias posibilidades de agrado.

Esta tarea se centra en utilizar los recursos proporcionados por Spotify en sus bases de datos, donde podemos encontrar 23 características numéricas o de tipo texto asociadas a cada pista de audio. Estas son:


El proceso de recomendación se puede resumir en los siguientes pasos:

  1. Obtener mediante Spotipy API, el contenido más escuchado de un usuario en un tiempo determinado. Las 50 canciones mas reproducidas del ultimo mes.
  2. Dicho contenido incluye los 23 atributos anteriormente mencionados, de los cuales 13 de ellos son utilizados para correlacionar dichos valores obteniendo una tendencia del usuario relacionada al nivel de actividad musical de sus pistas más escuchadas.
  3. Dado que la base de datos se considera extremadamente grande. Se realiza un primer filtrado de acuerdo a los artistas con mayor semejanza a los escuchados. Alrededor de 200 elementos.
  4. De los artistas similares, se extrae un conjunto de canciones más populares y lanzamientos recientes, con lo que se forma un conjunto selectivo de canciones candidatas. Alrededor de 1000 elementos.
  5. De las canciones candidatas, se realiza un proceso de normalización de sus atributos (media: cero, varianza: uno).
  6. De las canciones candidatas con sus atributos normalizados, M~(1000,11), se procede a realizar una comparación con los atributos normalizados del Top-50 del usuario, T~(50,11). Aquí, hacemos uso de alguna métrica de similitud (Coseno, correlación de Pearson, etc.), S~(50,1000).
  7. Se establece un umbral (t=0.9) con el que los valores de similitud mas elevados son considerados dentro de una lista de recomendación.
  8. La lista de recomendación que puede incluir alrededor de 50 canciones, es compartida al usuario mediante un link o en la plataforma.


Comentarios

Entradas más populares de este blog

4. Sobre la arquitectura de un asistente de aprendizaje y su cerebro

2. Sobre la arquitectura y las características de los chatbots

7. Sobre las habilidades de adquisición de información