Comment fonctionne la fonctionnalité de recommandation Amazon?

144

Quelle technologie se cache derrière les écrans de la technologie de recommandation d'Amazon? Je pense que la recommandation d'Amazon est actuellement la meilleure du marché, mais comment nous fournissent-elles des recommandations aussi pertinentes?

Récemment, nous avons été impliqués dans un type de projet de recommandation similaire, mais nous aimerions sûrement en savoir plus sur les avantages et les inconvénients de la technologie de recommandation Amazon d'un point de vue technique.

Toutes les contributions seraient très appréciées.

Mettre à jour:

Ce brevet explique comment les recommandations personnalisées sont faites mais ce n'est pas très technique, et ce serait donc vraiment bien si des informations pouvaient être fournies.

D'après les commentaires de Dave, l' analyse d'affinité constitue la base de ce type de moteurs de recommandation. Voici également quelques bonnes lectures sur le sujet

  1. Démystifier l'analyse du panier de consommation
  2. Analyse du panier de consommation
  3. Analyse d'affinité

Lecture suggérée:

  1. Exploration de données: concepts et technique
Rachel
la source
3
Avez-vous essayé de passer au crible leur pile de brevets? google.com/patents
Dolph
Oui, j'ai parcouru le brevet mais ce n'est pas très technique et j'apprécierais donc quelques aperçus sur l'aspect technique du mécanisme
Rachel
1
@Dave: Cette question est ouverte maintenant et j'apprécierais vraiment si vous pouviez donner plus d'informations sur la technologie derrière l'architecture du moteur de recommandation et les fonctionnalités qu'Amazon utilise pour fournir des recommandations.
Rachel
1
Je n'appellerais pas le système de recommandation Amazon "le meilleur" ou même utile. Vous commandez une souris, cela suggère d'en acheter une autre également. Pourquoi un utilisateur normal aurait-il besoin de deux souris à la fois ???
1
@Rachel: Étant donné que vous savez que le système d'Amazon est breveté et que vous souhaitez développer quelque chose de similaire, je ne voudrais même pas jeter un coup d'œil à leurs brevets - et bien sûr, ne pas les regarder ne vous protège pas non plus, mais c'est un début.

Réponses:

105

C'est à la fois un art et une science. Les domaines d'étude typiques tournent autour de l'analyse du panier de marché (également appelée analyse d'affinité) qui est un sous-ensemble du domaine de l'exploration de données. Les composants typiques d'un tel système comprennent l'identification des éléments principaux du pilote et l'identification des éléments d'affinité (vente incitative d'accessoires, vente croisée).

Gardez à l'esprit les sources de données qu'ils doivent exploiter ...

  1. Caddies achetés = argent réel de personnes réelles dépensé sur de vrais articles = données puissantes et beaucoup.
  2. Articles ajoutés aux paniers mais abandonnés.
  3. Expériences de tarification en ligne (tests A / B, etc.) où ils proposent les mêmes produits à des prix différents et voient les résultats
  4. Expériences d'emballage (tests A / B, etc.) où ils proposent différents produits dans différents «lots» ou remettent diverses paires d'articles
  5. Listes de souhaits - ce qui y est spécifiquement pour vous - et dans l'ensemble, elles peuvent être traitées de la même manière qu'un autre flux de données d'analyse de panier
  6. Sites de référence (l'identification de l'endroit d'où vous êtes venu peut suggérer d'autres éléments d'intérêt)
  7. Temps d'attente (combien de temps avant de cliquer et de choisir un autre élément)
  8. Évaluations par vous ou par ceux de votre réseau social / cercles d'achat - si vous évaluez des choses que vous aimez, vous obtenez plus de ce que vous aimez et si vous confirmez avec le bouton "Je le possède déjà", ils créent un profil très complet de vous
  9. Informations démographiques (votre adresse de livraison, etc.) - ils savent ce qui est populaire dans votre région en général pour vos enfants, vous-même, votre conjoint, etc.
  10. segmentation des utilisateurs = avez-vous acheté 3 livres en plusieurs mois pour un enfant en bas âge? probablement avoir un enfant ou plus .. etc.
  11. Marketing direct cliquez sur les données - avez-vous reçu un e-mail de leur part et avez-vous cliqué dessus? Ils savent de quel e-mail il s'agissait, sur quoi vous avez cliqué et si vous l'avez acheté en conséquence.
  12. Cliquez sur les chemins dans la session - qu'avez-vous vu, qu'il soit ou non dans votre panier
  13. Nombre de vues d'un article avant l'achat final
  14. Si vous faites affaire avec un magasin physique, ils peuvent également avoir votre historique d'achat physique (par exemple, jouets r us ou quelque chose qui est en ligne et aussi un magasin physique)
  15. etc. etc. etc.

Heureusement, les gens se comportent de la même manière dans l'ensemble, donc plus ils en savent sur la population acheteuse dans son ensemble, mieux ils savent ce qui se vendra et ce qui ne se vendra pas et à chaque transaction et chaque note / liste de souhaits ajouter / parcourir, ils savent comment personnaliser plus personnellement les recommandations. Gardez à l'esprit qu'il ne s'agit probablement que d'un petit échantillon de l'ensemble complet des influences de ce qui aboutit à des recommandations, etc.

Maintenant, je n'ai aucune connaissance approfondie de la façon dont Amazon fait des affaires (jamais travaillé là-bas) et tout ce que je fais est de parler d'approches classiques du problème du commerce en ligne - j'étais le PM qui travaillait sur l'exploration de données et l'analyse pour Microsoft. produit appelé Commerce Server. Nous avons fourni dans Commerce Server les outils qui permettaient aux gens de créer des sites avec des capacités similaires ... mais plus le volume des ventes est important, meilleures sont les données, meilleur est le modèle - et Amazon est GRAND. Je ne peux qu'imaginer à quel point il est amusant de jouer avec des modèles avec autant de données dans un site axé sur le commerce. Maintenant, beaucoup de ces algorithmes (comme le prédicteur qui a commencé dans le serveur de commerce) ont évolué pour vivre directement dans Microsoft SQL .

Les quatre grands conseils que vous devriez avoir sont:

  1. Amazon (ou n'importe quel détaillant) recherche des données agrégées pour des tonnes de transactions et des tonnes de personnes ... cela leur permet même de recommander assez bien pour les utilisateurs anonymes sur leur site.
  2. Amazon (ou tout autre détaillant sophistiqué) suit le comportement et les achats de toute personne connectée et l'utilise pour affiner davantage les données agrégées de masse.
  3. Il existe souvent un moyen de surpasser les données accumulées et de prendre le contrôle "éditorial" des suggestions pour les chefs de produit de lignes spécifiques (comme une personne qui possède le vertical "appareils photo numériques" ou le vertical "romans d'amour" ou similaire) là où ils sont vraiment sont des experts
  4. Il y a souvent des offres promotionnelles (par exemple, Sony ou Panasonic ou Nikon ou Canon ou Sprint ou Verizon verse de l'argent supplémentaire au détaillant, ou offre une meilleure remise pour des quantités plus importantes ou d'autres choses dans ces lignes) qui entraîneront certaines "suggestions" haut plus souvent que d'autres - il y a toujours une logique commerciale raisonnable et une raison commerciale derrière cela visant à faire plus sur chaque transaction ou à réduire les coûts de gros, etc.

En termes de mise en œuvre réelle? Presque tous les grands systèmes en ligne se résument à un ensemble de pipelines (ou une implémentation de modèle de filtre ou un flux de travail, etc. vous l'appelez comme vous voulez) qui permettent à un contexte d'être évalué par une série de modules qui appliquent une certaine forme de logique métier.

En règle générale, un pipeline différent serait associé à chaque tâche distincte sur la page - vous pourriez en avoir un qui fait des "packages / ventes incitatives" recommandés (c.-à-d. Achetez-le avec l'article que vous regardez) et un qui fait des "alternatives" (c.-à-d. Acheter ceci au lieu de ce que vous regardez) et un autre qui extrait les articles les plus étroitement liés de votre liste de souhaits (par catégorie de produit ou similaire).

Les résultats de ces pipelines peuvent être placés sur différentes parties de la page (au-dessus de la barre de défilement, sous le défilement, à gauche, à droite, différentes polices, images de tailles différentes, etc.) et testés pour voir lesquels fonctionnent meilleur. Étant donné que vous utilisez de jolis modules faciles à brancher et jouer qui définissent la logique métier de ces pipelines, vous vous retrouvez avec l'équivalent moral des blocs lego qui facilitent la sélection et le choix de la logique métier que vous souhaitez appliquer lorsque vous créez un autre pipeline. ce qui permet une innovation plus rapide, plus d'expérimentation et, au final, des profits plus élevés.

Cela vous a-t-il aidé du tout? J'espère que cela vous donnera un petit aperçu de la façon dont cela fonctionne en général pour à peu près n'importe quel site de commerce électronique - pas seulement Amazon. Amazon (en parlant à des amis qui y ont travaillé) est très axé sur les données et mesure en permanence l'efficacité de son expérience utilisateur et la tarification, la promotion, l'emballage, etc. - ils sont un détaillant en ligne très sophistiqué et sont probablement à la pointe de la technologie. beaucoup d'algorithmes qu'ils utilisent pour optimiser les profits - et ce sont probablement des secrets de propriété (vous savez comme la formule des épices secrètes de KFC) et gardés comme tels.

Dave rapide
la source
1
Oui. Cela m'a beaucoup aidé et j'apprécie vraiment vos contributions sur le sujet.
Rachel
amazing insights
Shobi
28

Cela n'est pas directement lié au système de recommandation d'Amazon, mais il pourrait être utile d'étudier les méthodes utilisées par les personnes qui ont participé au prix Netflix , un concours pour développer un meilleur système de recommandation en utilisant les données des utilisateurs de Netflix. Il existe beaucoup de bonnes informations dans leur communauté sur les techniques d'exploration de données en général.

L'équipe qui a gagné a utilisé un mélange de recommandations générées par de nombreux modèles / techniques différents. Je sais que certaines des principales méthodes utilisées étaient l'analyse des composants principaux, les méthodes du plus proche voisin et les réseaux de neurones. Voici quelques articles de l'équipe gagnante:

R. Bell, Y. Koren, C. Volinsky, " La solution BellKor 2008 au prix Netflix ", (2008).

A. Töscher, M. Jahrer, « La solution BigChaos au prix Netflix 2008 », (2008).

A. Töscher, M. Jahrer, R. Legenstein, « Algorithmes de voisinage améliorés pour les systèmes de recommandation à grande échelle », SIGKDD Workshop on Large-Scale Recommender Systems and the Netflix Prize Competition (KDD'08), ACM Press (2008) .

Y. Koren, " La solution BellKor au grand prix Netflix ", (2009).

A. Töscher, M. Jahrer, R. Bell, « La solution BigChaos au grand prix Netflix », (2009).

M. Piotte, M. Chabbert, " La solution de la théorie pragmatique au grand prix Netflix ", (2009).

Les articles de 2008 sont issus du Prix Progress de la première année. Je recommande de lire les premiers en premier car les derniers s'appuient sur les travaux précédents.

Justin Peel
la source
2
Ce que j'aime dans cette réponse, c'est qu'elle souligne le fait qu'il n'y a pas de réponse «parfaite» et que les gens continuent d'innover dans ce domaine - il y a toujours place à l'amélioration et à mesure que les temps changent et que de nouvelles méthodes sont appliquées aux problèmes continuera à être résolu différemment. Et si vous lisez les liens détaillés, vous pouvez voir comment il existe un «mélange» de plusieurs approches de prédiction au sein de chacun des grands prétendants au prix. Excellentes références.
Dave Quick
20

(Disclamer: j'avais l'habitude de travailler chez Amazon, même si je n'ai pas travaillé dans l'équipe des recommandations.)

La réponse d'ewernli devrait être la bonne - le papier est lié au système de recommandation original d'Amazon, et d'après ce que je peux dire (à la fois de l'expérience personnelle en tant qu'acheteur d'Amazon et d'avoir travaillé sur des systèmes similaires dans d'autres entreprises), très peu de choses ont changé: à son noyau, la fonction de recommandation d'Amazon est toujours très fortement basée sur le filtrage collaboratif article à article.

Il suffit de regarder la forme que prennent les recommandations: sur ma première page, elles sont toutes soit sous la forme "Vous avez consulté X ... Les clients qui ont également consulté ceci ont également consulté ...", ou bien un mélange d'éléments similaires à des choses J'ai déjà acheté ou vu. Si je vais spécifiquement à ma page "Recommandé pour vous", chaque article explique pourquoi il est recommandé pour moi: "Recommandé parce que vous avez acheté ...", "Recommandé parce que vous avez ajouté X à votre liste de souhaits ...", etc. un signe classique du filtrage collaboratif article à article.

Alors, comment fonctionne le filtrage collaboratif élément à élément? Fondamentalement, pour chaque article, vous créez un «quartier» d'articles connexes (par exemple, en regardant quels articles les gens ont vus ensemble ou quels articles les gens ont achetés ensemble - pour déterminer la similitude, vous pouvez utiliser des métriques comme l' indice Jaccard ; corrélation est une autre possibilité, même si je soupçonne qu'Amazon n'utilise pas beaucoup les données d'évaluation). Ensuite, chaque fois que je regarde un article X ou que je fais un achat Y, Amazon me propose des choses dans le même quartier que X ou Y.

Certaines autres approches qu'Amazon pourrait potentiellement utiliser, mais probablement pas, sont décrites ici: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -avec-système-de-recommandation-amazones /

Une grande partie de ce que Dave décrit ne se fait presque certainement pas chez Amazon. (Notes par les membres de mon réseau social? Non, Amazon ne dispose d'aucune de mes données sociales. Ce serait un énorme problème de confidentialité dans tous les cas, donc ce serait difficile pour Amazon de le faire même s'ils avaient ces données: les gens ne veulent pas que leurs amis sachent quels livres ou films ils achètent. Des informations démographiques? Non, rien dans les recommandations ne suggère qu'ils regardent cela. [Contrairement à Netflix, qui découvre ce que les autres personnes de ma région regardent .])

Jason R
la source
Amazon a exposé pendant des années des cercles d'achat - qui étaient des tendances d'achat anonymisées basées sur le nom de domaine et le code postal de l'entreprise. Il devait y avoir au moins 50 acheteurs distincts dans un cercle d'achat avant que vous puissiez obtenir des informations à ce sujet - amazon a donc certainement gardé, suivi et utilisé ces informations pour s'aider (et aider les autres) à comprendre ce qui était populaire. Vous pouvez consulter les CD, l'électronique et les achats de livres dans votre région ou dans votre entreprise. Ils ont été exposés de 1999 à 2002. forum.dvdtalk.com/archive/t-122436.html a même un copier-coller du texte d'Amazon les décrivant.
Dave Quick
3

Je n'ai aucune connaissance de l'algorithme d'Amazon en particulier, mais un composant d'un tel algorithme impliquerait probablement le suivi de groupes d'articles fréquemment commandés ensemble, puis l'utilisation de ces données pour recommander d'autres articles du groupe lorsqu'un client achète un sous-ensemble du groupe.

Une autre possibilité serait de suivre la fréquence de commande de l'article B dans les N jours suivant la commande de l'article A, ce qui pourrait suggérer une corrélation.

nouveau jour
la source
2

Pour autant que je sache, il utilise le raisonnement basé sur des cas comme moteur.

Vous pouvez voir dans ces sources: ici , ici et ici .

Il existe de nombreuses sources dans Google qui recherchent des raisonnements amazoniens et basés sur des cas.

coelhudo
la source
0

Quelqu'un a fait une présentation à notre université sur quelque chose de similaire la semaine dernière et a fait référence au système de recommandation d'Amazon. Je crois qu'il utilise une forme de clustering K-Means pour regrouper les gens dans leurs différentes habitudes d'achat. J'espère que cela t'aides :)

Vérifiez également ceci: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps et en HTML .

Chris Dennett
la source
0

Si vous voulez un tutoriel pratique (en utilisant R open-source), vous pourriez faire pire que de passer par ceci: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

C'est une version optimisée pour l'exécution d'un autre travail: http://www.salemmarafi.com/code/collaborative-filtering-r/

Cependant, la variation du code sur le premier lien s'exécute BEAUCOUP plus vite, je recommande donc de l'utiliser (j'ai trouvé que la seule partie lente du code de yoshiki146 est la routine finale qui génère la recommandation au niveau de l'utilisateur - cela a pris environ une heure avec mes données sur ma machine).

J'ai adapté ce code pour qu'il fonctionne comme un moteur de recommandation pour le détaillant pour lequel je travaille.

L'algorithme utilisé est - comme d'autres l'ont dit plus haut - le filtrage collaboratif. Cette méthode de CF calcule une matrice de similarité cosinus, puis trie par cette similitude pour trouver le «voisin le plus proche» pour chaque élément (groupe de musique dans l'exemple donné, produit au détail dans mon application).

Le tableau résultant peut recommander un groupe / produit basé sur un autre groupe / produit choisi.

La section suivante du code va encore plus loin avec le filtrage collaboratif basé sur USER (ou client).

Le résultat est un grand tableau avec les 100 meilleurs bandes / produits recommandés pour un utilisateur / client donné

ChrisD
la source
1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses aux liens uniquement peuvent devenir invalides si la page liée change. - De l'avis
Kos
Vrai ... L'algorithme utilisé est - comme d'autres l'ont dit plus haut - le filtrage collaboratif. Cette méthode de CF calcule une matrice de similarité cosinus, puis trie par cette similitude pour trouver le «plus proche voisin» pour chaque élément (groupe de musique dans l'exemple donné, produit au détail dans mon application). Le tableau résultant peut recommander un groupe / produit basé sur un autre groupe / produit choisi. La section suivante du code va encore plus loin avec le filtrage collaboratif basé sur USER (ou client). Le résultat de ceci est un grand tableau avec les 100 meilleurs groupes / produits recommandés pour un utilisateur / client donné
ChrisD
veuillez modifier votre réponse et ajouter ces informations là-bas, pas dans la section des commentaires, merci
Kos