Una guía completa sobre motores de recomendación en 2022

Nodo de origen: 1883089

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

El mercado global para el uso del motor de recomendación se valoró en 2.69 millones de USD en 2021. Se prevé que supere los 15.10 millones de USD en 2026, con una CAGR del 37.79 % durante 2022-2026.

Las recomendaciones que te dan las empresas a veces utilizan técnicas de análisis de datos para identificar artículos que coincidan con tus gustos y preferencias. Con el rápido crecimiento de los datos en Internet, no sorprende decir que Netflix sabe qué película querrá ver a continuación o cuál es el artículo de noticias más importante que le gustaría leer en su Twitter.

Con los avances recientes en Inteligencia Artificial y la creciente competencia entre múltiples empresas, es esencial buscar, mapear y proporcionar a los usuarios la parte relevante de los datos para mejorar la experiencia del consumidor y aumentar la tendencia de la digitalización.

Dicho esto, en la guía de hoy, analizaremos los motores de recomendación, su importancia, los desafíos que enfrentan, los principios de funcionamiento, las diferentes técnicas, las aplicaciones y las principales empresas que los utilizan y, por último, cómo crear su propio motor de recomendación en Python.

Tabla de contenido

  • ¿Qué son los motores de recomendación?
  • ¿Por qué son importantes los motores de recomendación en el aprendizaje automático?
  • Diferentes técnicas de motores de recomendación
  • Funcionamiento de los motores de recomendación
  • Desafíos de los motores de recomendación
  • Cómo construir un motor de recomendación
  • Aplicaciones y principales empresas que utilizan motores de recomendación
  • Conclusión

¿Qué es un motor de recomendación?

Un motor de recomendación es un sistema de filtrado de datos que funciona con diferentes algoritmos de aprendizaje automático para recomendar productos, servicios e información a los usuarios en función del análisis de datos. Funciona según el principio de encontrar patrones en los datos de comportamiento del cliente empleando una variedad de factores, como las preferencias del cliente, el historial de transacciones pasadas, los atributos o el contexto situacional.

Los datos utilizados para encontrar información se pueden recopilar implícita o explícitamente. Las empresas suelen utilizar petabytes de datos para sus motores de recomendación para presentar sus puntos de vista con sus experiencias, comportamientos, preferencias e intereses.

En este mercado en constante evolución de densidad de información y sobrecarga de productos, cada empresa utiliza motores de recomendaciones para propósitos ligeramente diferentes. Aún así, todos tienen el mismo objetivo de impulsar más ventas, aumentar la participación y retención de clientes y brindarles a los consumidores una pieza de conocimiento y soluciones personalizadas.

¿Por qué son importantes los motores de recomendación en ML?

No hay duda de que los motores de recomendación son una forma extraordinaria de mejorar la experiencia del usuario, estimular la demanda, aumentar los ingresos, aumentar las tasas de clics (CTR), involucrar activamente a los usuarios y otras métricas cruciales. Como potentes herramientas de filtrado de datos, los motores de recomendación funcionan en tiempo real. Pueden ser beneficiosos cuando existe la demanda de dar a los usuarios sugerencias y consejos personalizados.

Tomemos Netflix como ejemplo.

Hay miles de películas y múltiples categorías de programas para ver. Aún así, Netflix le ofrece una selección mucho más obstinada de programas de anuncios de películas que es más probable que disfrute. Con esta estrategia, Netflix logra tasas de cancelación más bajas, ahorra mil millones de dólares al año, ahorra tiempo y ofrece una mejor experiencia de usuario.

Esta es la razón por la cual los motores de recomendaciones son esenciales y exactamente cuántas empresas están impulsando las oportunidades de compromiso con sus productos al ofrecer una afluencia más significativa de oportunidades de venta cruzada.

Diferentes técnicas de motores de recomendación

Hay tres tipos diferentes de motores de recomendación conocidos en el aprendizaje automático, y son:

1. Filtrado colaborativo

El método de filtrado colaborativo recopila y analiza datos sobre el comportamiento del usuario, las actividades en línea y las preferencias para predecir lo que les gustará en función de la similitud con otros usuarios. Utiliza una fórmula de estilo matricial para trazar y calcular estas similitudes.

Advantage

Una ventaja significativa del filtrado colaborativo es que no necesita analizar o comprender el objeto (productos, películas, libros) para recomendar artículos complejos con precisión. No depende del contenido de la máquina analizable, lo que significa que elige recomendaciones en función de lo que sabe sobre el usuario.

Ejemplo

Si al usuario X le gusta el Libro A, el Libro B y el Libro C, mientras que al usuario Y le gusta el Libro A, el Libro B y el Libro D, ambos tienen intereses similares. Por lo tanto, es favorablemente posible que el usuario X seleccione el Libro D y el usuario Y disfrute leyendo el Libro C. Así es como ocurre el filtrado colaborativo.

2. Filtrado basado en contenido

El filtrado basado en contenido funciona según el principio de describir un producto y un perfil de las opciones deseadas por el usuario. Se supone que también te gustará este otro artículo si te gusta un artículo en particular. Los productos se definen utilizando palabras clave (género, tipo de producto, color, longitud de palabra) para hacer recomendaciones. Se crea un perfil de usuario para describir el tipo de elemento que disfruta este usuario. Luego, el algoritmo evalúa la similitud de los elementos usando distancias coseno y euclidianas.

Advantage

Una ventaja significativa de esta técnica de motor de recomendación es que no necesita ningún dato adicional sobre otros usuarios, ya que las recomendaciones son específicas para este usuario. Además, este modelo puede capturar los intereses particulares de un usuario y sugerir objetos de nicho en los que muy pocos usuarios están interesados.

Ejemplo

Supongamos que a un usuario X le gusta ver películas de acción como Spider-man. En ese caso, esta técnica de motor de recomendación solo recomienda películas del género de acción o películas que describen a Tom Holland.

3. Modelo Híbrido

En los sistemas de recomendación híbridos, tanto los metadatos (colaborativos) como los datos transaccionales (basados ​​en el contenido) se utilizan simultáneamente para sugerir una gama más amplia de elementos a los usuarios. En esta técnica, se pueden asignar etiquetas de procesamiento de lenguaje natural para cada objeto (película, canción) y las ecuaciones vectoriales calculan la similitud. Luego, una matriz de filtrado colaborativo puede sugerir cosas a los usuarios, según sus comportamientos, acciones e intenciones.

Ventajas

Este sistema de recomendación es prometedor y se dice que supera a los dos métodos anteriores en términos de precisión.

Ejemplo

Netflix utiliza un motor de recomendación híbrido. Hace recomendaciones analizando los intereses del usuario (colaborativo) y recomendando programas/películas que comparten atributos similares con los que el usuario califica como altos (basado en el contenido).

Funcionamiento de los motores de recomendación

Los datos son el elemento más vital en la construcción de un motor de recomendación. Es el bloque de construcción a partir del cual los algoritmos derivan los patrones. Cuantos más detalles tenga, con mayor precisión y práctica brindará las recomendaciones apropiadas para generar ingresos. Básicamente, un motor de recomendación funciona utilizando una combinación de datos y algoritmos de aprendizaje automático en cuatro fases. Vamos a entenderlos en detalle ahora:

1. Recopilación de datos

El primer paso y el más crucial para crear un motor de recomendaciones es recopilar los datos apropiados para cada usuario. Hay dos tipos de datos, es decir, Explícito datos que contienen información recopilada de entradas del usuario, como calificaciones, reseñas, me gusta, no me gusta o comentarios sobre productos.

En cambio, tenemos Implícito datos que contienen información recopilada de las actividades del usuario, como historial de búsqueda web, clics, acciones del carrito, registro de búsqueda e historial de pedidos.

El perfil de datos de cada usuario se volverá más distintivo con el tiempo; por lo tanto, también es crucial recopilar datos de atributos del cliente, como:

  • datos demográficos (edad, género)
  • Psicografía (intereses, valores) para identificar clientes similares
  • datos de características (género, tipo de objeto) para determinar la similitud de productos similares.

2. Almacenamiento de datos

Una vez que haya recopilado los datos, el siguiente paso es almacenar los datos de manera eficiente. A medida que recopila más datos, debe estar disponible un almacenamiento amplio y escalable. Hay varias opciones de almacenamiento disponibles según el tipo de datos que recopile, como NoSQL, una base de datos SQL estándar, MongoDB y AWS.

Al elegir las mejores opciones de almacenamiento, se deben considerar algunos factores: facilidad de implementación, tamaño de almacenamiento de datos, integración y portabilidad.

3. Analizar los datos

Después de recopilar los datos, debe analizarlos. Luego, los datos deben perforarse y analizarse para ofrecer recomendaciones inmediatas. Los métodos más frecuentes en los que puede analizar datos son:

  • Análisis en tiempo real, en el que el sistema utiliza herramientas que evalúan y analizan eventos a medida que se crean. Esta técnica se implementa principalmente cuando queremos brindar recomendaciones instantáneas.
  • Análisis de lotes, en el que el procesamiento y análisis de datos se realizan periódicamente. Esta técnica se implementa principalmente cuando queremos enviar correos electrónicos con recomendaciones.
  • Análisis casi en tiempo real, en el que analiza y procesa datos en minutos en lugar de segundos, ya que no los necesita de inmediato. Esta técnica se implementa principalmente cuando brindamos recomendaciones mientras el usuario aún está en el sitio.

4. Filtrado de los datos

Una vez que analiza los datos, el paso final es filtrar con precisión los datos para proporcionar recomendaciones valiosas. Se aplican diferentes matrices, reglas matemáticas y fórmulas a los datos para proporcionar la sugerencia correcta. Debe elegir el algoritmo adecuado, y el resultado de este filtrado son las recomendaciones.

Desafíos de los motores de recomendación

La perfección simplemente no existe. Un físico teórico inglés, "Stephen Hawking", dijo una vez:

“Una de las reglas básicas del universo es que nada es perfecto.”

Del mismo modo, existen algunos desafíos que las empresas deben superar para construir un sistema de recomendación efectivo. Éstos son algunos de ellos:

1. El problema del ARRANQUE EN FRÍO

Este problema surge cuando un nuevo usuario ingresa al sistema o agrega nuevos elementos al registro. El sistema de recomendación no puede sugerir inicialmente este nuevo artículo o usuario porque no tiene ninguna calificación o reseña. Por lo tanto, al motor le resulta difícil predecir la preferencia o las prioridades del nuevo usuario, o la calificación de los nuevos elementos, lo que lleva a recomendaciones menos precisas.

Por ejemplo, no se puede recomendar una nueva película en Netflix hasta que obtenga algunas vistas y calificaciones.

Sin embargo, un modelo basado en el aprendizaje profundo puede resolver el problema del arranque en frío porque estos modelos no dependen en gran medida del comportamiento del usuario para hacer predicciones. Puede optimizar las correlaciones entre el usuario y el artículo al examinar el contexto del producto y los detalles del usuario, como descripciones de productos, imágenes y comportamientos de los usuarios.

2. Problema de escasez de datos

Como todos sabemos, los motores de recomendación dependen en gran medida de los datos. En algunas situaciones, algunos usuarios no califican ni reseñan los artículos que compraron. Si no tenemos datos de alta calidad, el modelo de calificación se vuelve muy escaso, lo que genera problemas de escasez de datos.

Este problema dificulta que el algoritmo encuentre usuarios con calificaciones o intereses similares.

Para asegurar la mejor calidad de los datos y poder sacarle el máximo partido al motor de recomendaciones, plantéate cuatro preguntas:

  • ¿Qué tan recientes son los datos?
  • ¿Qué tan ruidosa es la información?
  • ¿Qué tan diversa es la información?
  • ¿Qué tan rápido puede alimentar nuevos datos a su modelo de sistema de recomendación?

Las preguntas anteriores garantizarán que su negocio cumpla con los complejos requisitos de análisis de datos.

3. Cambiar el problema de las preferencias del usuario

Las interacciones usuario-elemento en la calificación y las reseñas pueden generar datos cambiantes masivos.

Por ejemplo, podría estar en Netflix hoy para ver una película romántica con mi novia. Pero mañana, podría tener un estado de ánimo diferente, y lo que me gustaría ver es un thriller psicológico clásico.

En cuanto a las preferencias de los usuarios, los motores de recomendación pueden etiquetar incorrectamente a los usuarios, lo que interpretará los resultados de grandes conjuntos de datos de manera ineficiente. Por lo tanto, la escalabilidad es un gran desafío para estos conjuntos de datos y se necesitan algunos métodos avanzados a gran escala para abordar este problema.

¿Cómo construir un motor de recomendación en Python?

Esta sección de la guía lo ayudará a crear sistemas de recomendación básicos en Python. Nos centraremos en crear un sistema de recomendación básico al recomendar artículos que sean más comparables a un artículo específico, en nuestro caso, películas. Tenga en cuenta que este no es un motor de recomendaciones robusto y exacto. Simplemente sugiere qué películas/elementos son más similares a su preferencia de película.

Puede encontrar el código y los archivos de datos al final de esta sección. Entonces empecemos:

Nota: Se recomienda encarecidamente operar en Google Collab o Jupyter Notebook para ejecutar este código.

#1. Importe las bibliotecas necesarias.

Importe bibliotecas de aprendizaje automático numpy y pandas, ya que las usaremos para marcos de datos y evaluación de correlaciones.

Código

importar numpy como np importar pandas como pd

#2. Obtener los datos

Defina los nombres de las columnas, lea el archivo csv para el conjunto de datos de películas y reseñas e imprima las primeras 5 filas.

Código

column_names = ['user_id', 'item_id', 'rating', 'timestamp'] df = pd.read_csv('u.datos', sep='t', nombres=nombres_columnas) df.head ()

Salida

Motores de recomendación 2022

Como puede ver arriba, tenemos cuatro columnas: identificación de usuario, que es única para cada usuario. La identificación del elemento es única para cada película, las calificaciones de la película y su marca de tiempo.

Ahora veamos los títulos de las películas:

Código

movie_titles = pd.read_csv("Movie_Id_Titles") movie_titles.head()

Salida

Salida | Motores de recomendación 2022

Lea los datos usando la biblioteca de pandas e imprima las 5 filas superiores del conjunto de datos. Tenemos el id y el título de cada película.

Ahora podemos unir las dos columnas:

Código

df = pd.merge(df,movie_titles,on='item_id') df.head ()

Salida

Código | Motores de recomendación 2022

Ahora tenemos el marco de datos combinado, que usaremos a continuación para el análisis de datos exploratorios (EDA).

#3. Análisis exploratorio de datos

Examinemos un poco los datos y echemos un vistazo a algunas de las películas mejor calificadas.

Las importaciones de visualización serán nuestro primer paso en EDA.

Código

importar matplotlib.pyplot como plt importar seaborn como sns sns.set_style('blanco') % matplotlib en línea

A continuación, crearemos un marco de datos de calificación con calificación promedio y número de calificaciones como nuestras dos columnas:

Código

df.groupby('título')['calificación'].mean().sort_values(ascending=False).head()

Salida

Análisis exploratorio de datos

Código

df.groupby('título')['puntuación'].count().sort_values(ascending=False).head()

Salida

Salida 3 | Motores de recomendación 2022

Código

calificaciones = pd.DataFrame(df.groupby('título')['calificación'].mean()) calificaciones.head()

Salida

Salida 4 | Motores de recomendación 2022

A continuación, establezca el número de columnas de calificación justo al lado de las calificaciones medias:

Código

ratings['numero de ratings'] = pd.DataFrame(df.groupby('title')['rating'].count()) calificaciones.head()

Salida

Motores de recomendación 2022

Trace algunos histogramas para verificar varias clasificaciones visualmente:

Código

plt.figure (figsize = (10,4)) calificaciones['numero de calificaciones'].hist(bins=70)

Salida

Motores de recomendación 2022 | producción

Código

plt.figure (figsize = (10,4)) calificaciones['calificación'].hist(contenedores=70)

Salida

Salida | Motores de recomendación 2022

Código

sns.jointplot(x='puntuación',y='número de puntuaciones',data=puntuaciones,alfa=0.5)

Salida

Motores de recomendación 2022

¡Okey! Ahora que tenemos una vista completa de cómo se ven los datos, pasemos a construir un sistema de recomendación simple en Python:

#4. Recomendar películas similares

Ahora construyamos una matriz con los ID de usuario y el título de la película. Cada celda consistirá entonces en la calificación del usuario de esa película.

Nota: habrá muchos Yaya valores porque la mayoría de la gente no ha visto la mayor parte de la película.

Código

moviemat = df.pivot_table(index='user_id',columns='title',values='rating') moviemat.cabeza()

Salida

Recomendar películas similares

Imprime las películas más valoradas:

Código

ratings.sort_values('numero de ratings',ascending=False).head(10)

Salida

salida | Recomendar películas similares

Escojamos dos películas: Star Wars, una película de ciencia ficción. Y la otra es Liar Liar, que es una comedia. El siguiente paso es obtener las calificaciones de los usuarios para esas dos películas:

Código

starwars_user_ratings = película['Star Wars (1977)'] liarliar_user_ratings = moviemat['Mentiroso mentiroso (1997)'] starwars_user_ratings.head()

Salida

Recomendar películas similares | producción

Luego podemos usar el método corrwith() para obtener correlaciones entre dos series de pandas:

Código

similar_a_starwars = moviemat.corrwith(starwars_user_ratings) similar_a_mentiroso = moviemat.corrwith(liarliar_user_ratings)

Salida

Salida | Recomendar películas similares

Todavía hay muchos valores nulos que se pueden limpiar eliminando los valores de NaN. Entonces usamos un DataFrame en lugar de una serie:

Código

corr_starwars = pd.DataFrame(similar_a_starwars,columnas=['Correlación']) corr_starwars.dropna(inplace=Verdadero) corr_starwars.cabeza()

Salida

Salida de código

Ahora, supongamos que ordenamos el marco de datos por correlación. En ese caso, deberíamos obtener las películas más comparables, sin embargo, tenga en cuenta que obtenemos algunas películas que realmente no tienen sentido.

Esto se debe a que hay muchas películas que solo vieron una vez los usuarios que también vieron Star Wars.

Código

corr_starwars.sort_values('Correlación',ascending=False).head(10)

Salida

Salida | Motores recomendados 2022

Podemos solucionar este problema filtrando las películas con menos de 100 reseñas. Podemos determinar este valor según el histograma que trazamos en la sección EDA anterior.

Código

corr_starwars = corr_starwars.join(calificaciones['numero de calificaciones']) corr_starwars.cabeza()

Salida

Salida | Motores Recomendados 2022

Ahora ordene los valores y observe cómo los títulos hacen mucho más comprensivos:

Código

corr_starwars[corr_starwars['número de valoraciones']>100].sort_values('Correlación',ascending=False).head()

Salida

Salida de código | Motores Recomendados 2022

Ahora lo mismo procede para la película de comedia Liar Liar:

Código

corr_liarliar = pd.DataFrame(similar_to_liarliar,columns=['Correlación']) corr_liarliar.dropna(inplace=Verdadero) corr_liarliar = corr_liarliar.join(ratings['num of ratings']) corr_liarliar[corr_liarliar['num of ratings']>100].sort_values('Correlation',ascending=False).head()

Salida

Motores Recomendados 2022

Gran trabajo, has creado tu propio motor de recomendación de películas.

Nota: Acceda al cuaderno de Google aquí.

Aplicaciones y principales empresas que utilizan motores de recomendación

Muchas industrias emplean motores de recomendación para impulsar la interacción del usuario y mejorar las perspectivas de compra. Como todos vimos, los motores de recomendación pueden cambiar la forma en que las empresas se comunican con los usuarios y maximizar su retorno de la inversión (ROI) en función de la información que pueden recopilar.

Veremos cómo casi todas las empresas utilizan un motor de recomendación para tener la oportunidad de obtener ganancias.

1. Comercio electrónico

El comercio electrónico es una industria en la que los motores de recomendación se emplearon ampliamente por primera vez. Las empresas de comercio electrónico son las más adecuadas para proporcionar recomendaciones precisas con millones de clientes y datos en su base de datos en línea.

2. Al por menor

Los datos de compras son la información más valiosa para un algoritmo de aprendizaje automático. Es el punto de datos más preciso sobre la intención de un usuario. Los minoristas con gran cantidad de datos de compras están a la vanguardia de las empresas que generan recomendaciones concretas para sus clientes.

3. Medios de Comunicación

Al igual que el comercio electrónico, las empresas de medios son las primeras en incorporarse a las técnicas de los motores de recomendaciones. Es difícil notar un sitio de noticias sin un motor de recomendaciones en juego.

4. Bancario

La banca es una industria del mercado masivo utilizada digitalmente por millones de personas y es primordial para las recomendaciones. Comprender la situación financiera exacta de un cliente y sus elecciones anteriores, en correlación con los datos de miles de usuarios comparables, es bastante decisivo.

5. Telecomunicaciones

Esta industria comparte dinámicas similares con la industria bancaria. Las empresas de telecomunicaciones cuentan con las credenciales de millones de clientes cuyas acciones están documentadas. Su gama de productos también es moderadamente estrecha en comparación con otros sectores, lo que hace que las recomendaciones en telecomunicaciones sean una solución más manejable.

6. Utilidades

Dinámica similar con las telecomunicaciones, pero las empresas de servicios públicos tienen un alcance de productos aún más limitado, lo que hace que las recomendaciones sean relativamente fáciles de usar.

Las principales empresas que utilizan motores de recomendación incluyen

  • Amazon                    
  • Netflix
  • Spotify
  • Etiqueta LinkedIn
  • YouTube
  • TikTok    
  • Instagram
  • Facebook
  • yesca
  • Quora
  • Google
  • yahoo        

Consideraciones Finales:

Los motores de recomendación son una poderosa herramienta de marketing que lo ayudará a mejorar las ventas, las ventas cruzadas y a impulsar su negocio. Están sucediendo muchas cosas en el campo de los motores de recomendación. Cada empresa debe mantenerse al día con la tecnología para brindar el mejor conjunto de recomendaciones de satisfacción a todos sus usuarios.

Aquí llegamos al final de esta guía. Espero que todos los temas y las explicaciones sean lo suficientemente útiles para ayudarlo a comenzar su viaje en los motores de recomendación en el aprendizaje automático.

Lee más artículos en nuestro blog sobre Motores de recomendación

Si aún tienes alguna duda, comunícate conmigo en mis perfiles de redes sociales y estaré encantado de ayudarte. Puedes leer más sobre mí a continuación:

Soy un científico de datos con una licenciatura en informática especializada en aprendizaje automático, inteligencia artificial y visión artificial. Mrinal también es bloguero independiente, autor y geek con cinco años de experiencia en su trabajo. Con experiencia trabajando en la mayoría de las áreas de la informática, actualmente estoy cursando una Maestría en Computación Aplicada con una especialización en IA de la Universidad de Windsor, y soy escritora y analista de contenido independiente.

Lea más sobre los motores de recomendación de Mrinal Walia:

1. Los 5 principales proyectos de sistemas de recomendación de aprendizaje automático de código abierto con recursos

2. Proyectos de aprendizaje profundo de código abierto imprescindibles para estudiantes de informática

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor. 

Fuente: https://www.analyticsvidhya.com/blog/2022/01/a-comprehensive-guide-on-recommendation-engines-in-2022/

Sello de tiempo:

Mas de Analítica Vidhya