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
- Démystifier l'analyse du panier de consommation
- Analyse du panier de consommation
- Analyse d'affinité
Lecture suggérée:
Réponses:
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 ...
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:
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.
la source
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.
la source
Je suis tombé sur ce papier aujourd'hui:
Peut-être que cela fournit des informations supplémentaires.
la source
(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 .])
la source
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.
la source
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.
la source
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 .
la source
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é
la source