¿Cómo se usa exactamente el aprendizaje automático en los motores de recomendación?

Antes de sumergirme en los detalles, me gustaría decir que los algoritmos de filtrado colaborativo se basan inherentemente en métricas de similitud, ya sea en el espacio de usuario / elemento (como en los modelos de vecindad) o en el espacio latente (como en los modelos de factor).

Para responder a la pregunta principal “¿dónde se utilizan las técnicas de ML en los motores de recomendación”, me gustaría responder a varios modelos de sistemas de recomendación con algunos ejemplos

Recomendación basada en contenido (CBR):
CBR proporciona recomendaciones personalizadas al hacer coincidir los intereses del usuario con la descripción y los atributos de los artículos. Para CBR, podemos usar técnicas estándar de ML como Regresión logística, SVM, árbol de decisión, etc., basadas en las características del usuario y del elemento para hacer predicciones, por ejemplo, sobre la extensión de me gusta o no. Luego, podemos convertir fácilmente el resultado a recomendación clasificada

Filtrado colaborativo (CF)
Los modelos de vecindad son modelos basados ​​en heurística que utilizan métricas de similitud, por ejemplo: similitud de Pearson, similitud de coseno, para encontrar usuarios y artículos similares. Se basa en una heurística muy razonable de que a una persona le gustarán los artículos que son similares a los artículos que le gustaron anteriormente. La predicción de la calificación en los modelos de vecindario basados ​​en artículos se da por el promedio ponderado de las calificaciones en artículos similares como se muestra a continuación
[matemáticas] \ begin {align} \ hat {r} _ {u, i} = b_ {u, i} + \ frac {\ sum_ {j \ in N (i, k, u)} {s_ {i, j} (r_ {u, j} – b_ {u, j})}} {\ sum_ {j \ in N (i, k, u)} s_ {i, j}} \ end {align} [/ math ]
donde, N (i, k, u) es un conjunto de k elementos que son similares a i y calificados por el usuario u; [math] s_ {i, j} [/ math] es una función de similitud (correlación coseno o pearson).

Como no hay aprendizaje involucrado en la ecuación anterior, cualquier chico de ML dirá que esto es una mierda (aunque funciona bastante bien en la práctica). Entonces, en una búsqueda de 1 millón de dólares (desafío de Netflix), algunas personas inteligentes (Yehuda Koren et al.) Lo pensaron y lo reformularon como

[matemáticas] \ begin {align} \ hat {r} _ {u, i} = b_ {u, i} + \ sum_ {j \ in N (i, k, u)} {\ theta_ {i, j} ^ {u} (r_ {u, j} – b_ {u, j})} \ end {align} [/ math]
Ahora cualquier chico de ML dirá ” Ohhh, espera, parece una regresión lineal con [math] \ theta_ {i, j} ^ {u} [/ math] como parámetros “. Ahora el chico ML está feliz :).
Entonces, en lugar de utilizar heurística ad-hoc [matemática] s_ {i, j} [/ matemática] para ponderar las calificaciones, ahora los pesos, [matemática] \ theta_ {i, j} ^ {u} [/ matemática] , se aprenden. Tenga en cuenta que fue crucial para ganar el premio de Netflix. Esta es solo una instancia, de muchas, de ML en recomendación.
La factorización matricial aprende los factores latentes del usuario y del elemento (U y V) al minimizar el error de reconstrucción en las clasificaciones observadas. Formalmente, en un marco de optimización se da como
[matemáticas] \ begin {align} & \ underset {U, V} {\ text {min}} & \ sum_ {u, i} (r_ {ui} – U_ {u} ^ {T} V_ {i}) ^ {2} + \ lambda (\ left \ | U \ right \ | _ {2} ^ {2} + \ left \ | V \ right \ | _ {2} ^ {2}) \ end {align} [ /mates]
En primer lugar, cuando hay una técnica de optimización involucrada, definitivamente es algo de ML.
Hagamos esto más claro al convertirlo en nuestro propio problema de regresión lineal favorito. Entonces, si arregla cualquiera de los factores latentes, digamos U, entonces se convierte en una regresión lineal en V. Esta forma de optimización es bien conocida en la literatura como ALS (mínimos cuadrados alternos). Nuevamente, el chico de ML que conoce la regresión lineal está muy feliz :).

Las personas de ML bayesianas, que no solo quieren estimaciones puntuales sino también incertidumbre de las estimaciones, reformularán el mismo problema en un entorno probabilístico y aprenderán a su manera bayesiana. Para más detalles, consulte la página en Ucl, la página en Cs

Del mismo modo, los chicos de la red neuronal han utilizado la máquina de Boltzmann restringida para la predicción de la calificación (esto también fue crucial para ganar el desafío de Netflix). Para más detalles, consulte la página sobre Toronto

Aprendizaje automático y arranque en frío.
El arranque en frío es una situación en la que un sistema de recomendación no tiene información histórica sobre el usuario o elemento y no puede hacer recomendaciones personalizadas. El arranque en frío es la peor pesadilla de cualquier investigador de sistemas de recomendación.

Entonces, una forma de lidiar con el arranque en frío es obtener las preferencias de los nuevos usuarios a través de la entrevista inicial. Sin embargo, la obtención basada en entrevistas no es útil ya que los usuarios a menudo se aburren cuando se les hace una serie de preguntas. Ahora, el chico de ML puede usar su conocimiento del árbol de decisión para aprender un modelo que elige inteligentemente un conjunto mínimo de preguntas mientras aprende las preferencias del usuario.

Además, existe una vasta literatura sobre Aprender a clasificar por recomendación. Aunque, Aprender a clasificar comparte ADN con la recuperación de información, es más una técnica de ML.

Sean Owen lo dijo bien, todo el libro se puede escribir en el tema, pero no quiero aburrirlos a todos.

En pocas palabras, el aprendizaje automático es muy común en los algoritmos de recomendación. Por lo tanto, el uso de ML en la recomendación depende únicamente de su objetivo y de reformular el problema en su algoritmo de ML favorito (¡las personas inteligentes, a veces, inventan nuevos y revolucionarios algoritmos de aprendizaje!).

Estoy seguro de que se podría escribir un libro completo sobre exactamente cómo funcionan los diferentes enfoques de recomendación. Aquí esbozaré una respuesta.

La técnica que nombró primero son técnicas de clasificación / regresión: aprendizaje supervisado. Los recomendadores tienen más similitudes con las técnicas no supervisadas como la agrupación y, sí, la recuperación de información.

El enfoque de recomendación “clásico” se basa en una noción de similitud usuario-usuario o elemento-elemento, y una vecindad de elementos similares. Las cosas adjuntas a usuarios similares, o elementos similares a lo que estás conectado, son buenas recomendaciones. Es una idea simple, casi se siente como algo menos que el aprendizaje automático.

Sin embargo, esta no es la única forma de hacerlo, y creo que la moda en estos días son los modelos de factor latente. Explica las interacciones entre usuarios y elementos en términos de algunas características latentes. Este modelo es como un caso especial de una red bayesiana o un modelo oculto de Markov. Esto a menudo se logra con un algoritmo de factorización de matriz de bajo rango como SVD o ALS, y en ese sentido tiene mucha similitud con otras técnicas basadas en un modelo similar, como PCA.

De esta manera, creo que se acerca a otros conceptos reconocibles de aprendizaje automático.

Los sistemas de recomendación son una de las aplicaciones de big data más comunes y fácilmente comprensibles. La aplicación más conocida es probablemente el motor de recomendaciones de Amazon, que proporciona a los usuarios una página web personalizada cuando visitan amazon.com

Sin embargo, las empresas de comercio electrónico no son las únicas que utilizan motores de recomendación para persuadir a los clientes a comprar productos adicionales. Los sistemas de recomendación también se pueden usar en otras industrias y tienen diferentes aplicaciones, desde recomendar música y eventos hasta productos y perfiles de citas.

Ciencia detrás de recomendaciones

Hay dos formas principales en que funcionan la mayoría de los motores de recomendación. Pueden confiar en las propiedades de los elementos que le gustan a cada usuario, descubriendo qué más le puede gustar al usuario ( método de filtrado basado en contenido );

filtrado basado en contenido

o bien, los motores de recomendación pueden confiar en los gustos y deseos de otros usuarios para calcular un índice de similitud entre los usuarios y recomendarles elementos en consecuencia ( método de filtrado colaborativo ).

filtración colaborativa

También es posible combinar ambos motores para construir un motor de recomendación más próspero.

Tipos de datos utilizados por los motores de recomendación:

Datos de comportamiento del usuario

  • iniciar sesión en la actividad del sitio (clics, búsquedas, páginas y vistas de elementos);
  • actividades fuera del sitio (seguimiento de clics en correos electrónicos, en aplicaciones móviles y en sus notificaciones push).

Detalles particulares del artículo

  • título
  • categoría
  • precio
  • descripción
  • etc.

Información contextual

  • dispositivo utilizado
  • ubicación actual
  • URL de referencia.

Las tres fuentes de datos son igualmente importantes para una operación consistente de ambos tipos de algoritmos. Para obtener una imagen completa de su cliente, debe tener en cuenta no solo lo que él o ella está viendo en su sitio web y el de su competidor, sino también con qué frecuencia, desde qué ubicación y en qué dispositivos. Tener esta información lo acerca al aumento del 29% en las ventas, que Amazon experimentó de primera mano después de que los motores de recomendación se implementaron en su sitio web

Ejemplos de motores de recomendación puestos a trabajar:

Recomendaciones personalizadas de productos
Dichos motores ayudan a comprender las preferencias y la intención de cada visitante y muestran el tipo de recomendación y los productos más relevantes en tiempo real. Las recomendaciones mejoran a medida que el motor aprende más sobre cada visitante.

Personalización del sitio web
Permita aumentar las ventas y las conversiones segmentando y apuntando a los visitantes con mensajes y ofertas personalizados en tiempo real.

Notificaciones en tiempo real
Dichos motores ayudan a las marcas a generar confianza con sus clientes y a crear un sentido de presencia y urgencia al tiempo que muestran notificaciones en tiempo real de las actividades de los compradores en el sitio web.

Programas y ofertas de fidelización personalizados.
Varios estudios muestran que las personas están más interesadas en ofertas personalizadas que en soluciones para cortar galletas, lo cual es especialmente cierto para los programas de lealtad. Dichos motores pueden personalizar recomendaciones basadas en interacciones en tiempo real con cada cliente. Los algoritmos de análisis de datos se centran en diferentes categorías de productos con diferentes comportamientos de compra y la integración de información contextual, lo que mejora la calidad de las recomendaciones.

Lea más en Big Data Behind Recomender Systems – InData Labs

Mi equipo ha preparado una descripción general de los principales enfoques de LD utilizados en los sistemas de recomendación . Compartiré aquí uno de ellos solo para dar la idea de si nuestra publicación podría ser útil.

Uno de los motores de recomendación más utilizados es el filtrado colaborativo (CF) y sus modificaciones.

Filtración colaborativa

Cuando queremos recomendar algo a un usuario, lo más lógico es encontrar personas con intereses similares, analizar su comportamiento y recomendar a nuestro usuario los mismos elementos. O podemos ver los artículos similares a los que el usuario compró anteriormente y recomendar productos similares.

Estos son dos enfoques básicos en la FQ: el filtrado colaborativo basado en el usuario y el filtrado colaborativo basado en elementos, respectivamente.

En ambos casos, este motor de recomendación tiene dos pasos:

  1. Descubra cuántos usuarios / elementos en la base de datos son similares al usuario / elemento dado.
  2. Evalúe a otros usuarios / artículos para predecir qué calificación le daría al usuario de este producto, dado el peso total de los usuarios / artículos que son más similares a este.

¿Qué significa “más similar” en este algoritmo?

Todo lo que tenemos es un vector de preferencias para cada usuario (fila de la matriz R) y el vector de clasificaciones de usuarios para cada producto (columnas de la matriz R).

En primer lugar, dejemos solo los elementos para los que conocemos los valores en ambos vectores.

Por ejemplo, si queremos comparar a Bill y Jane, podemos mencionar que Bill no ha visto Titanic y Jane no ha visto a Batman hasta este momento, por lo que podemos medir su similitud solo con Star Wars. ¿Cómo podría alguien no ver Star Wars, verdad? 🙂

Las técnicas más populares para medir la similitud son la similitud de coseno o las correlaciones entre vectores de usuarios / elementos. El último paso es tomar la media aritmética ponderada de acuerdo con el grado de similitud para llenar celdas vacías en la tabla.

La publicación original del blog: Algoritmos del sistema de recomendación: estadísticas y bots

Actualmente estoy trabajando en un motor de recomendaciones, que permitiría interfaces de usuario adaptativas, que también utilizan aprendizaje automático.

Mis textos sobre el tema aún no están maduros, pero podría ser una lectura interesante: OBHave !: Especificaciones – ¡Proyecto OBHave!

Mi tesis básica es que el front end podría ser un juego de recomendación bayesiano.

Se jugaría con “estereotipos”, que se construyen mediante análisis de similitud basados ​​en técnicas, que se asemejan a los Modelos de Vecindad y la Factorización Matricial como se menciona por Suvash Sedhain.

OBHave! ve el mundo a través de reglas comerciales, que forman vectores y escalares. He robado muchas ideas de Quantum Mechanics, porque esas reglas comerciales pueden formar compuestos que poseen ciertas características.

Por ejemplo, una recomendación de ventas cruzadas tendría un “producto líder” y dos productos complementarios (martillo y clavos). Si el tamaño del inventario o la tracción de ventas de un producto pasara un umbral de filtro, el núcleo de recomendación se volvería “radiactivo” y emitiría el producto débil al “espacio de recomendación” e intentaría atraer un producto más fuerte de regreso a su núcleo.

Luego, estas recomendaciones centrales formarían compuestos establecidos por recomendaciones, que los jugadores del Juego de Recomendaciones Bayesianas (“estereotipos”) utilizarían para crear una “baraja de cartas”, de la cual sacarían recomendaciones, con las cuales competirían en el Front-End.

Esto me permite construir un mecanismo de recompensa, que podría controlar la escalabilidad y la velocidad de iteración de las recomendaciones a través de Von Neuman Entropy. OBHave! podría trabajar en un subconjunto de recomendaciones para mejorar el cumplimiento de los objetivos comerciales de un subconjunto específico de productos, por ejemplo.

Sinceramente, creo que las aplicaciones web y móviles necesitarán un motor de recomendación de aprendizaje automático descentralizado, que puede ser subconjunto optimizado para cumplir objetivos empresariales específicos mediante la adaptación a las recomendaciones de la interfaz de usuario. Perdón por la complejidad, volveré a esto cuando la idea sea más madura. ¡Puedes ayudarme! 🙂 Lea y comente la idea aquí: OBHave !: Especificaciones – Proyecto OBHave!

Un motor de aprendizaje automático y de inteligencia artificial como Boomtrain funciona así cuando se utiliza como motor de recomendación.

Filtración colaborativa
Boomtrain utiliza el filtrado colaborativo para comprender qué les puede gustar a los usuarios en función de los artículos y la información que a dos usuarios les gusta en común. Esto proporciona una base para conexiones más fuertes con cada contenido que comparta con el usuario y aumenta las posibilidades de interacción. En el mundo del comercio electrónico, el filtrado colaborativo se puede utilizar para hacer las siguientes recomendaciones.
También te puede interesarLas personas que compraron esto también compraron ¿Te gustaría agregar ____ a tu carrito? Las personas que vieron este producto también vieron A menudo compraron juntos
Y mucho más.

Análisis semántico
El análisis semántico se basa en el consumo de texto y los patrones de intercambio, nuestro núcleo de inteligencia artificial lo ayuda a identificar qué temas puede interesarle más a un usuario en función de sus interacciones, me gusta, compartir y comentar una información.

Obtenga más información sobre el análisis semántico aquí.

Análisis de popularidad
El motor de Boomtrain realiza un seguimiento del contenido más popular en su campo y ayuda a incorporarlo en las recomendaciones basadas en los intereses de su audiencia.

Personalización con IA
El motor de inteligencia artificial y aprendizaje automático de Boomtrain comprende las actividades y comportamientos de sus usuarios como individuos y puede hacerles las sugerencias correctas en términos de contenido o productos. Digamos que tiene un sitio web con una gran base de suscripción a boletines por correo electrónico. Puede recomendar contenido dinámico que cambie para adaptarse a cada usuario en función de su historial con su marca. Del mismo modo, en una empresa de comercio electrónico, puede hacer recomendaciones para productos en correos electrónicos y en su sitio web que se adaptan personalmente a cada usuario.

Así es como ayudamos a Distractificar con la personalización – Estudio de caso

Sean Owen escribió:
“Estoy seguro de que podría escribirse un libro completo sobre exactamente cómo funcionan los diferentes enfoques de recomendación”.

Uno de mis favoritos es “Programming Collective Intelligence” de Toby Segaran y O’Reilly Media. Le guía a través de algunos ejemplos y en realidad hace un trabajo mucho mejor al enseñarle las técnicas de aprendizaje automático de lo que uno esperaría si ese es un objetivo secundario del libro. NO cubre todos los diversos enfoques de recomendación, solo un par, pero los cubre bien.

(No tengo ninguna conexión con el autor / editor / otros y no me beneficio personalmente promocionando el libro).

Consulte también ¿Cuál es el mejor marco para implementar el motor de recomendaciones? y ¿Cómo funcionan los motores de recomendación?

Las respuestas anteriores son correctas en algún sentido que buscamos reformular el problema de recomendación como un problema de regresión.

Aquí hay una presentación sobre el uso del aprendizaje automático para recomendaciones personalizadas

Aprendizaje automático aplicado para la relevancia del motor de búsqueda

, donde esto se hace utilizando un formalismo muy general llamado Formalismo de operador efectivo

Reducción dimensional a través de un operador efectivo

Aquí, combinamos la regresión lineal y la factorización matricial en 1 método formal

En términos más generales, queremos problemas de optimización convexa, no solo regressoons lineales. Por ejemplo, con la factorización matricial (es decir, NMF), queremos evitar el uso de ALS solo porque no es convexo y tiene problemas de convergencia. La solución tradicional es usar la semilla Kmeans ++ o NNDSVD (como en Scikit Lear), pero también podemos reformular el problema como una optimización convexa

Avances en NMF convexo: programación lineal

Sin embargo, todavía hay personas que intentan usar métodos estadísticos más tradicionales (realmente métodos de física estadística)

Por ejemplo, este es un ejemplo del uso del aprendizaje automático para recomendaciones de música

Recomendaciones musicales y la integración métrica logística

Utilizamos esta herramienta de Microsoft para crear nuestro motor de recomendación de productos de comercio electrónico: creación de un sistema de recomendaciones en Azure Machine Learning Studio. Así es como funciona exactamente: ofertas personalizadas.

Lo que es genial es que con herramientas como Azure todo va muy rápido. Entregamos nuestro motor de recomendación en solo 1 mes. La nueva función de recomendación de productos ya está disponible: el blog de comercio electrónico B2B de código abierto Virto Commerce Enterprise.

Hay un par de algoritmos utilizados para motores de recomendación a diferencia de los que ha mencionado. Se llaman minería de reglas de asociación: Apriori, Eclat, FP-crecimiento. Por lo general, se usan para ventas cruzadas (cuando se recomienda comprar papas fritas con hamburguesa) en Amazon, por ejemplo. Echa un vistazo a rkmndr.tech. Es una API gratuita para generar tales reglas.

Tengo una pregunta con respecto a esta discusión. Específicamente en el uso de enfoques basados ​​en modelos para sistemas de recomendación.

Por lo tanto, el objetivo es crear un modelo que prediga la reacción del usuario a un elemento específico. Ya sea una escala de calificación o una expectativa de “me gusta / no me gusta”. El problema que no puedo entender es que, para hacerlo, necesitaría un modelo específico para cada usuario. ¿Cómo se puede hacer eso en la práctica?

Tomemos, por ejemplo, un recomendador basado en contenido que utiliza un clasificador o modelo de regresión para predecir el interés del usuario en los elementos en función de sus características. Por ejemplo: califique películas basadas en director, reparto, género, etc. Dado que cada usuario tiene gustos individuales distintos, necesitaría aprender un parámetro específico para cada función del usuario.

¿Entonces necesita ajustar un modelo para cada usuario? ¿Cómo puede funcionar eso dado el hecho de que el número de observaciones por usuario suele ser muy pequeño en comparación con el número de características? Habrá más variables explicativas que observaciones. Además, el modelo resultante sería propenso al sobreajuste dada la falta de datos, ¿no es así?

Él es mi publicación explicando los algoritmos detrás de los sistemas de recomendación.