¿Cómo funciona la función de recomendación de Amazon?

144

¿Qué tecnología va detrás de las pantallas de la tecnología de recomendación de Amazon? Creo que la recomendación de Amazon es actualmente la mejor del mercado, pero ¿cómo nos brindan recomendaciones tan relevantes?

Recientemente, hemos estado involucrados en un tipo de proyecto de recomendación similar, pero seguramente nos gustaría saber acerca de los entresijos de la tecnología de recomendación de Amazon desde un punto de vista técnico.

Cualquier aportación sería muy apreciada.

Actualizar:

Esta patente explica cómo se hacen las recomendaciones personalizadas, pero no es muy técnico, por lo que sería realmente bueno si se pudieran proporcionar algunas ideas.

A partir de los comentarios de Dave, el Análisis de afinidad forma la base de este tipo de motores de recomendación. También aquí hay algunas buenas lecturas sobre el tema

  1. Desmitificando el análisis de la canasta de mercado
  2. Análisis de la canasta de mercado
  3. Análisis de afinidad

Lectura sugerida:

  1. Minería de datos: conceptos y técnica
Rachel
fuente
3
¿Intentaste tamizar su montón de patentes? google.com/patents
Dolph
Sí, revisé la patente, pero no es muy técnica, por lo que agradecería algunas ideas sobre el aspecto técnico del mecanismo
Rachel
1
@Dave: esta pregunta está abierta ahora y realmente agradecería si puede dar más información sobre la tecnología detrás de la arquitectura del motor de recomendaciones y la funcionalidad que Amazon utiliza para proporcionar recomendaciones.
Rachel
1
No llamaría al sistema de recomendaciones de Amazon "el mejor" o incluso útil. Ordena un mouse, sugiere comprar otro también. ¿Por qué un usuario normal necesitaría dos ratones a la vez?
1
@Rachel: Dado que sabes que el sistema de Amazon está patentado y quieres desarrollar algo similar, ni siquiera miraría sus patentes --- y, por supuesto, no mirarlas tampoco te protege, pero es un comienzo.

Respuestas:

105

Es a la vez un arte y una ciencia. Los campos de estudio típicos giran en torno al análisis de la canasta de mercado (también llamado análisis de afinidad), que es un subconjunto del campo de la minería de datos. Los componentes típicos en un sistema de este tipo incluyen la identificación de elementos principales del controlador y la identificación de elementos afines (venta adicional de accesorios, venta cruzada).

Tenga en cuenta las fuentes de datos que tienen para extraer ...

  1. Carritos de compras comprados = dinero real de personas reales gastadas en artículos reales = datos poderosos y mucho.
  2. Artículos agregados a los carros pero abandonados.
  3. Experimentos de precios en línea (pruebas A / B, etc.) donde ofrecen los mismos productos a precios diferentes y ven los resultados
  4. Experimentos de empaque (pruebas A / B, etc.) donde ofrecen diferentes productos en diferentes "paquetes" o descuentan varios pares de artículos
  5. Listas de deseos, lo que contiene específicamente para usted, y en conjunto, puede tratarse de manera similar a otro flujo de datos de análisis de cesta
  6. Los sitios de referencia (la identificación de dónde vino puede indicar otros elementos de interés)
  7. Tiempos de permanencia (cuánto tiempo antes de volver a hacer clic y elegir un elemento diferente)
  8. Calificaciones suyas o de su red social / círculos de compra: si califica las cosas que le gustan, obtiene más de lo que le gusta y si confirma con el botón "ya lo tengo", crean un perfil muy completo de usted
  9. Información demográfica (su dirección de envío, etc.): saben lo que es popular en su área general para sus hijos, usted, su cónyuge, etc.
  10. segmentación de usuarios = ¿compró 3 libros en meses separados para un niño pequeño? probablemente tenga un hijo o más .. etc.
  11. Datos de clic directo de marketing: ¿recibió un correo electrónico de ellos y hizo clic? Saben qué correo electrónico era y en qué hizo clic y si lo compró como resultado.
  12. Trayectos de clics en la sesión: ¿qué vio independientemente de si fue en su carrito?
  13. Número de veces que vio un artículo antes de la compra final
  14. Si está tratando con una tienda física, es posible que también tenga su historial de compras físicas (es decir, juguetes o algo que esté en línea y también una tienda física)
  15. etc. etc. etc.

Afortunadamente, las personas se comportan de manera similar en conjunto, por lo que cuanto más sepan sobre la población compradora en general, mejor sabrán qué venderán y qué no venderán, y con cada transacción y cada calificación / lista de deseos agregar / navegar, saben cómo personalizar más las recomendaciones. Tenga en cuenta que probablemente solo sea una pequeña muestra del conjunto completo de influencias de lo que termina en recomendaciones, etc.

Ahora no tengo conocimiento interno de cómo Amazon hace negocios (nunca trabajó allí) y todo lo que estoy haciendo es hablar de enfoques clásicos sobre el problema del comercio en línea: solía ser el primer ministro que trabajaba en minería de datos y análisis para Microsoft producto llamado Commerce Server. Enviamos en Commerce Server las herramientas que permitieron a las personas crear sitios con capacidades similares ... pero cuanto mayor sea el volumen de ventas, mejores serán los datos, mejor será el modelo, y Amazon es GRANDE. Solo puedo imaginar lo divertido que es jugar con modelos con tanta información en un sitio impulsado por el comercio. Ahora muchos de esos algoritmos (como el predictor que comenzó en el servidor de comercio) han pasado a vivir directamente dentro de Microsoft SQL .

Las cuatro grandes ideas que debe tener son:

  1. Amazon (o cualquier minorista) está buscando datos agregados para toneladas de transacciones y toneladas de personas ... esto les permite incluso recomendar bastante bien para usuarios anónimos en su sitio.
  2. Amazon (o cualquier minorista sofisticado) realiza un seguimiento del comportamiento y las compras de cualquier persona que haya iniciado sesión y lo utiliza para refinar aún más los datos agregados masivos.
  3. A menudo hay un medio de sobrepasar los datos acumulados y tomar el control "editorial" de sugerencias para gerentes de producto de líneas específicas (como alguna persona que posee la vertical de 'cámaras digitales' o la vertical de 'novelas románticas' o similar) donde realmente son expertos
  4. A menudo hay ofertas promocionales (es decir, Sony o Panasonic o Nikon o Canon o Sprint o Verizon paga dinero adicional al minorista, o ofrece un mejor descuento en grandes cantidades u otras cosas en esas líneas) que provocarán ciertas "sugerencias" la parte superior con más frecuencia que otras: siempre hay una lógica comercial razonable y una razón comercial detrás de esto dirigida a hacer más en cada transacción o reducir los costos mayoristas, etc.

En términos de implementación real? Casi todos los grandes sistemas en línea se reducen a un conjunto de canalizaciones (o una implementación de patrón de filtro o un flujo de trabajo, etc., lo que quieran) que permiten que un contexto sea evaluado por una serie de módulos que aplican alguna forma de lógica de negocios.

Por lo general, se asociaría una tubería diferente con cada tarea por separado en la página: es posible que tenga una que recomiende "paquetes / ventas adicionales" (es decir, compre esto con el artículo que está mirando) y una que haga "alternativas" (es decir, compre esto en lugar de lo que está viendo) y otro que extrae los elementos más relacionados de su lista de deseos (por categoría de producto o similar).

Los resultados de estas canalizaciones se pueden colocar en varias partes de la página (encima de la barra de desplazamiento, debajo del desplazamiento, a la izquierda, a la derecha, diferentes fuentes, imágenes de diferentes tamaños, etc.) y se prueban para ver cuál funciona mejor. Dado que está utilizando módulos fáciles de conectar y usar que definen la lógica de negocios para estas canalizaciones, termina con el equivalente moral de los bloques de lego que hacen que sea fácil elegir y elegir entre la lógica de negocios que desea aplicar cuando construye otra tubería lo que permite una innovación más rápida, más experimentación y, al final, mayores ganancias.

¿Eso ayudó en absoluto? Espero que le brinde un poco de información sobre cómo funciona esto en general para casi cualquier sitio de comercio electrónico, no solo Amazon. Amazon (por hablar con amigos que han trabajado allí) depende de los datos y mide continuamente la efectividad de su experiencia de usuario y los precios, promociones, empaques, etc., son un minorista muy sofisticado en línea y probablemente están a la vanguardia de muchos de los algoritmos que utilizan para optimizar las ganancias, y esos son probablemente secretos de propiedad (ya sabes, como la fórmula de las especias secretas de KFC) y están garantizados como tales.

Dave Quick
fuente
1
Si. Me ayudó mucho y realmente aprecio sus aportes sobre el tema.
Rachel
ideas increíbles
Shobi
28

Esto no está directamente relacionado con el sistema de recomendación de Amazon, pero podría ser útil estudiar los métodos utilizados por las personas que compitieron en el Premio Netflix , un concurso para desarrollar un mejor sistema de recomendación utilizando los datos de usuario de Netflix. Existe mucha buena información en su comunidad sobre técnicas de minería de datos en general.

El equipo que ganó utilizó una combinación de las recomendaciones generadas por muchos modelos / técnicas diferentes. Sé que algunos de los principales métodos utilizados fueron el análisis de componentes principales, los métodos vecinos más cercanos y las redes neuronales. Aquí hay algunos documentos del equipo ganador:

R. Bell, Y. Koren, C. Volinsky, " La solución BellKor 2008 al Premio Netflix ", (2008).

A. Töscher, M. Jahrer, " La solución BigChaos al Premio Netflix 2008 ", (2008).

A. Töscher, M. Jahrer, R. Legenstein, " Algoritmos mejorados basados ​​en el vecindario para sistemas de recomendación a gran escala ", Taller SIGKDD sobre sistemas de recomendación a gran escala y el concurso de premios Netflix (KDD'08), ACM Press (2008) .

Y. Koren, " La solución BellKor para el Gran Premio de Netflix ", (2009).

A. Töscher, M. Jahrer, R. Bell, " La solución BigChaos al Gran Premio de Netflix ", (2009).

M. Piotte, M. Chabbert, " La solución de la teoría pragmática al Gran Premio de Netflix ", (2009).

Los trabajos de 2008 son del Premio al Progreso del primer año. Recomiendo leer los primeros primero porque los posteriores se basan en el trabajo anterior.

Justin Peel
fuente
2
Lo que me gusta de esta respuesta es que apunta al hecho de que no hay una respuesta "perfecta" y que la gente sigue innovando en esta área: siempre hay margen de mejora y a medida que cambian los tiempos y se aplican nuevos métodos a los problemas. seguirá resolviéndose de manera diferente. Y si lee los enlaces detallados, puede ver cómo hay una "mezcla" de varios enfoques para la predicción dentro de cada uno de los grandes contendientes para el premio. Grandes referencias
Dave Quick
20

(Descargo de responsabilidad: solía trabajar en Amazon, aunque no trabajé en el equipo de recomendaciones).

La respuesta de ewernli debería ser la correcta: los enlaces en papel al sistema de recomendación original de Amazon, y por lo que puedo decir (tanto por experiencia personal como comprador de Amazon como por haber trabajado en sistemas similares en otras compañías), muy poco ha cambiado: en su núcleo, la función de recomendación de Amazon todavía se basa en gran medida en el filtrado colaborativo de elemento a elemento.

Solo mire qué forma toman las recomendaciones: en mi portada, todas tienen la forma "Usted vio X ... Los clientes que también vieron esto también vieron ...", o bien una mezcla de elementos similares a cosas He comprado o visto antes. Si voy específicamente a mi página "Recomendado para usted", cada artículo describe por qué me lo recomienda: "Recomendado porque compró ...", "Recomendado porque agregó X a su lista de deseos ...", etc. Esto es Un signo clásico de filtrado colaborativo de artículo a artículo.

Entonces, ¿cómo funciona el filtrado colaborativo de elemento a elemento? Básicamente, para cada artículo, usted construye un "vecindario" de artículos relacionados (por ejemplo, al observar qué artículos han visto juntos o qué artículos han comprado juntos, para determinar la similitud, puede usar métricas como el índice Jaccard ; es otra posibilidad, aunque sospecho que Amazon no usa los datos de calificaciones muy fuertemente) Luego, cada vez que veo un artículo X o hago una compra Y, Amazon me sugiere cosas en el mismo vecindario que X o Y.

Aquí se describen algunos otros enfoques que Amazon podría utilizar, pero probablemente no ,: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -con-sistema-de-recomendaciones-amazonas /

Mucho de lo que Dave describe casi seguramente no se hace en Amazon. (¿Calificaciones de aquellos en mi red social? No, Amazon no tiene ninguno de mis datos sociales. Esto sería un problema de privacidad masivo en cualquier caso, por lo que sería difícil que Amazon lo hiciera incluso si tuviera esos datos: la gente no quiere que sus amigos sepan qué libros o películas están comprando. Información demográfica No, nada en las recomendaciones sugiere que estén mirando esto. [A diferencia de Netflix, quién muestra lo que otras personas en mi área están viendo .])

Jason R
fuente
Amazon expuso durante años los círculos de compra, que eran tendencias de compra anónimas basadas en el nombre de dominio y el código postal de la empresa. Debía haber al menos 50 compradores distintos en un círculo de compras antes de poder obtener información al respecto, por lo que Amazon ciertamente mantuvo, rastreó y usó esa información para ayudarse a sí mismos (y a otros) a comprender lo que era popular. Puede mirar CDs, productos electrónicos y compras de libros en su área o en su empresa. Estuvieron expuestos desde 1999 hasta 2002. forum.dvdtalk.com/archive/t-122436.html incluso tiene una copia y pega del texto de Amazon que los describe.
Dave Quick
3

No tengo ningún conocimiento del algoritmo de Amazon específicamente, pero uno de los componentes de dicho algoritmo probablemente implicaría el seguimiento de grupos de artículos ordenados con frecuencia juntos, y luego usar esos datos para recomendar otros artículos en el grupo cuando un cliente compra un subconjunto del grupo.

Otra posibilidad sería rastrear la frecuencia del pedido del artículo B dentro de N días después de ordenar el artículo A, lo que podría sugerir una correlación.

newdayrising
fuente
0

Si desea un tutorial práctico (usando R de código abierto), entonces podría hacer algo peor que pasar por esto: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

Es una versión optimizada en tiempo de ejecución de otro trabajo: http://www.salemmarafi.com/code/collaborative-filtering-r/

Sin embargo, la variación del código en el primer enlace se ejecuta MUCHO más rápido, por lo que recomiendo usar eso (descubrí que la única parte lenta del código de yoshiki146 es la rutina final que genera la recomendación a nivel de usuario: me llevó aproximadamente una hora con mis datos en mi maquina)

Adapte este código para que funcione como motor de recomendación para el minorista para el que trabajo.

El algoritmo utilizado es, como otros han dicho anteriormente, el filtrado colaborativo. Este método de CF calcula una matriz de similitud de coseno y luego ordena por esa similitud para encontrar el 'vecino más cercano' para cada elemento (banda de música en el ejemplo dado, producto minorista en mi aplicación).

La tabla resultante puede recomendar una banda / producto basado en otra banda / producto elegido.

La siguiente sección del código va un paso más allá con el filtrado colaborativo basado en USUARIO (o cliente).

El resultado de esto es una tabla grande con las 100 mejores bandas / productos recomendados para un usuario / cliente determinado

ChrisD
fuente
1
Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
Kos
Es cierto ... El algoritmo utilizado es, como otros han dicho anteriormente, el filtrado colaborativo. Este método de CF calcula una matriz de similitud de coseno y luego ordena por esa similitud para encontrar el 'vecino más cercano' para cada elemento (banda de música en el ejemplo dado, producto minorista en mi aplicación). La tabla resultante puede recomendar una banda / producto basado en otra banda / producto elegido. La siguiente sección del código va un paso más allá con el filtrado colaborativo basado en USUARIO (o cliente). El resultado de esto es una tabla grande con las 100 mejores bandas / productos recomendados para un usuario / cliente determinado
ChrisD
edite su respuesta y agregue esta información allí, no en la sección de comentarios, gracias
Kos