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


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

Recientemente, hemos estado involucrados con un tipo de proyecto de recomendación similar, pero seguramente nos gustaría saber sobre las entradas y salidas de la tecnología de recomendación de Amazon desde un punto de vista técnico.

Cualquier aportación sería muy apreciada.

Actualización:

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

De los comentarios de Dave, El Análisis de Afinidad forma la base para este tipo de Motores de Recomendación. También aquí hay algunas buenas lecturas sobre el tema

  1. Análisis Desmitificador de la Cesta de Mercado
  2. Cesta de Mercado Análisis
  3. Análisis de afinidad

Lectura Sugerida:

  1. Minería de Datos: Conceptos y Técnica
Author: Aditya, 2010-02-24

8 answers

Es tanto un arte como una ciencia. Los campos de estudio típicos giran en torno al análisis de la cesta 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 de un sistema de este tipo incluyen la identificación de los elementos principales del controlador y la identificación de los elementos de afinidad (venta adicional de accesorios, venta cruzada).

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

  1. Carritos de compras comprados = dinero real de personas reales gastado en artículos reales = datos poderosos y mucho de ellos.
  2. Objetos añadidos a los carritos pero abandonados.
  3. Experimentos de precios en línea (pruebas A/B, etc.) donde ofrecen los mismos productos a precios diferentes y ver los resultados
  4. Experimentos de embalaje (pruebas A / B, etc.) donde ofrecen diferentes productos en diferentes" paquetes " o descuento varios emparejamientos de artículos
  5. Listas de deseos-lo que hay en ellas específicamente para usted-y en conjunto se puede tratar de manera similar a otro flujo de datos de análisis de cesta
  6. Sitios de referencia (la identificación de dónde vino puede sugerir otros elementos de interés)
  7. Tiempos de permanencia (cuánto tiempo antes de hacer clic atrás y elegir un elemento diferente)
  8. Calificaciones por ti o por aquellos en tu red social/círculos de compra - si calificas cosas que te gustan obtienes más de lo que te gusta y si confirmas con el botón "ya lo poseo" crean un perfil muy completo de ti
  9. Información demográfica (su dirección de envío, sucesivamente.)- saben lo que es popular en su área general para sus hijos, usted mismo,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.. sucesivamente.
  11. Marketing directo haga clic en los datos: ¿recibió un correo electrónico de ellos y hizo clic? Saben en qué correo electrónico fue y en qué hizo clic y si lo compró como resultado.
  12. Rutas de clic en la sesión : ¿ qué vio independientemente de si fue en su carrito
  13. Número de veces que se ha visto un artículo antes de la compra final
  14. Si se trata de una tienda física, es posible que también tengan su historial de compras físico (es decir, toys r us o algo que esté en línea y también una tienda física)
  15. etc. sucesivamente. sucesivamente.

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 lo que venderá y no venderá y con cada transacción y cada calificación/lista de deseos agregar / navegar saben cómo personalizar más personalmente las recomendaciones. Tenga en cuenta que esto es probablemente solo 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 para el problema del comercio en línea: solía ser el primer ministro que trabajó en minería de datos y análisis para el producto de Microsoft llamado Servidor de Comercio. Enviamos en Commerce Server las herramientas que permitían a las personas construir sitios con capacidades similares.... pero cuanto mayor es el volumen de ventas, mejores son los datos, mejor es el modelo , y Amazon es GRANDE. Solo puedo imaginar lo divertido que es jugar con modelos con tantos datos en un sitio impulsado por el comercio. Ahora muchos de esos algoritmos (como el predictor que comenzó en commerce server) han pasado a vivir directamente dentro de Microsoft SQL.

Los cuatro grandes maneras de tomar que usted 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 el acumulado datos 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 similares) 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 da un mejor descuento en cantidades más grandes u otras cosas en esas líneas) que harán que ciertas" sugerencias " aumenten a la parte superior más a menudo que otros-siempre hay alguna lógica de negocio razonable y razón de negocio detrás de esto dirigido a hacer más en cada transacción o reducir los costos al por mayor,etc.

In terms of actual implementation? Casi todos los grandes sistemas en línea se reducen a un conjunto de tuberías (o una implementación de patrón de filtro o un flujo de trabajo, etc.). que permiten que un contexto sea evaluado por una serie de módulos que aplican alguna forma de lógica de negocios.

Normalmente se asociaría una canalización diferente con cada tarea separada 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á mirando) y otra que extraiga los artículos más estrechamente relacionados de su lista de deseos (por categoría de producto o similar).

Los resultados de estas tuberías se pueden colocar en varios 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 probado para ver cuál funciona mejor. Dado que está utilizando módulos fáciles de conectar y usar que definen la lógica de negocio para estas tuberías, termina con el equivalente moral de los bloques de lego que facilitan la selección y elección de la lógica de negocio que desea aplicar cuando construye otra tubería que permite una innovación más rápida, más experimentación y en al final mayores ganancias.

¿Eso ayudó en algo? Espero que te dé un poco de información sobre cómo funciona esto en general para casi cualquier sitio de comercio electrónico , no solo Amazon. Amazon (de hablar con amigos que han trabajado allí) está muy impulsado por los datos y mide continuamente la efectividad de su experiencia de usuario y los precios, la promoción, el embalaje, etc. - son un minorista muy sofisticado en línea y es probable que estén a la vanguardia de muchos de los algoritmos que utilizan para optimizar el beneficio-y esos son probablemente secretos de propiedad (ya sabes, como la fórmula de las especias secretas de KFC) y guaarded como tal.

 101
Author: Dave Quick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-24 09:30:50

Esto no está directamente relacionado con el sistema de recomendaciones de Amazon, pero podría ser útil estudiar los métodos utilizados por las personas que compitieron en el Netflix Prize, un concurso para desarrollar un mejor sistema de recomendaciones utilizando datos de usuarios 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 mezcla de las recomendaciones generadas por una gran cantidad de diferentes modelos/técnicas. Sé que algunos de los los principales métodos utilizados fueron el análisis de componentes principales, los métodos del vecino más cercano y las redes neuronales. Aquí hay algunos documentos del equipo ganador:

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

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

A. Töscher, M. Jahrer, R. Legenstein, "Algoritmos Mejorados Basados en Vecindarios para Sistemas de Recomendación a Gran Escala", SIGKDD Workshop on Large-Scale Recommender Systems and the Netflix Prize Competition (KDD ' 08), ACM Press (2008).

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

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

M. Piotte, M. Chabbert, " La solución de Teoría Pragmática para el Gran Premio de Netflix", (2009).

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

 28
Author: Justin Peel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-24 17:34:35

Me topé con este documento hoy:

Tal vez proporciona información adicional.

 21
Author: ewernli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-13 16:01:52

(Disclamer: Solía trabajar en Amazon, aunque no trabajaba en el equipo de recomendaciones.)

La respuesta de Ewernli debería ser la correcta the el documento enlaza con el sistema de recomendación original de Amazon, y por lo que puedo decir (tanto por experiencia personal como comprador de Amazon y haber trabajado en sistemas similares en otras empresas), muy poco ha cambiado: en su núcleo, la función de recomendación de Amazon todavía se basa en gran medida en la colaboración filtrado.

Basta con mirar qué forma toman las recomendaciones: en mi portada, todas son cualquiera de las formas "Has visto X...Los clientes que también vieron esto también vieron...", o bien una mezcla de artículos similares a las cosas que he comprado o visto antes. Si voy específicamente a mi página "Recomendado para ti", cada artículo describe por qué se recomienda para mí: "Recomendado porque compraste...", "Recomendado porque has añadido X a tu lista de deseos...", sucesivamente. Este es un signo clásico de filtrado colaborativo de elemento a elemento.

Entonces, ¿cómo funciona el filtrado colaborativo elemento a elemento? Básicamente, para cada elemento, se construye un "vecindario" de elementos relacionados (por ejemplo, mirando qué elementos la gente ha visto juntos o qué elementos la gente ha comprado juntos to para determinar la similitud, puede usar métricas como el índice Jaccard; la correlación es otra posibilidad, aunque sospecho que Amazon no usa los datos de las calificaciones en gran medida). Entonces, cada vez que veo un elemento X o make una compra Y, Amazon me sugiere cosas en el mismo vecindario que X o Y.

Algunos otros enfoques que Amazon podría utilizar potencialmente, pero probablemente no lo hace, se describen aquí: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering-with-amazons-recommendation-system/

Mucho de lo que Dave describe es casi seguro que 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 para Amazon hacerlo incluso si tuvieran 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 viendo esto. [A diferencia de Netflix, que hace la superficie lo que otras personas en mi área están viendo.])

 20
Author: Jason R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-12 23:17:18

No tengo ningún conocimiento específico del algoritmo de Amazon, pero uno de los componentes de dicho algoritmo probablemente involucraría el seguimiento de grupos de elementos ordenados con frecuencia juntos, y luego usar esos datos para recomendar otros elementos del grupo cuando un cliente compre algún subconjunto del grupo.

Otra posibilidad sería realizar un seguimiento de la frecuencia de 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.

 3
Author: newdayrising,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-24 16:38:55

Hasta donde yo sé, es usar Razonamiento Basado en Casos como un motor para ello.

Se puede ver en esta fuentes: aquí, aquí y aquí.

Hay muchas fuentes en Google que buscan Amazon y el razonamiento basado en casos.

 2
Author: coelhudo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-24 18:29:34

Alguien hizo una presentación en nuestra Universidad sobre algo similar la semana pasada, y hizo referencia al sistema de recomendaciones de Amazon. Creo que utiliza una forma de K-Significa Agrupar para agrupar a las personas en sus diferentes hábitos de compra. Espero que esto ayude:)

Comprobar esto también: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps y como HTML.

 0
Author: Chris Dennett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-24 18:34:13

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 otra pieza de 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, así que recomiendo usar eso (encontré que la única parte lenta del código de yoshiki146 es la final rutina que genera la recomendación a nivel de usuario-tomó alrededor de una hora con mis datos en mi máquina).

Adapté este código para funcionar como un 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 basada en otra banda/producto elegido.

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

La salida de esta es una tabla grande con las 100 mejores bandas/productos recomendados para un usuario/cliente dado

 0
Author: ChrisD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-19 16:23:15