Je suis le développement de l'e-boutique où je vais vendre de la nourriture. Je veux avoir une boîte à idées où je pourrais suggérer quoi d'autre mon utilisateur peut en fonction de ce qu'il est déjà dans le panier. Si il a de la bière, je veux lui suggérer des puces et d'autres choses par ordre décroissant d'pourcentage de la probabilité qu'il achète trop. Mais je veux que mon algorithme apprendre à suggérer des produits d'épicerie de base sur l'ensemble des utilisateurs précédents achats. Où dois-je commencer? J'ai l'épicerie tableau user_id
, item_id
, date
et similaires. Comment puis-je faire une suggestion box sans le brute-force qui est impossible.
Réponses
Trop de publicités?La chose que vous décrivez est un moteur de recommandation; plus précisément de filtrage collaboratif. C'est le coeur d'Amazon, "les gens qui ont acheté x ont aussi acheté y" fonctionnalité, et Netflix du moteur de recommandation.
C'est un non-trivial entreprise. Comme dans, pour obtenir quelque chose qui, même à distance utile pourrait facilement prendre plus de la construction de l'e-commerce du site en premier lieu.
Par exemple:
- vous ne voulez pas de recommander les articles qui sont déjà dans le panier.
- vous ne voulez pas de vous recommander des versions moins coûteuses de choses qui sont déjà dans le panier.
- vous ne voulez pas de recommander les articles qui sont en rupture de stock.
- vous ne voulez pas vous recommander des éléments qui sont statistiquement valide, mais n'ont pas de sens ("hey, vous avez acheté des couches, pourquoi ne pas acheter de la bière?" - il y a une histoire que dans les supermarchés, il est une corrélation statistique parce que les papas de sortir la nuit pour acheter des couches et ramasser un pack de six en même temps).
- vous ne voulez recommander des éléments qui sont dans une promotion dès maintenant
- vous n'avez pas envie de recommander des articles qui sont similaires aux éléments dans une promotion dès maintenant
Quand j'ai essayé un projet similaire, il est très difficile d'expliquer à des personnes non-techniques que l'ordinateur n'a tout simplement pas comprendre que recommander la bière aux côtés des couches n'était pas approprié. Une fois que nous avons obtenu la solution de base de travail, la construction de l'exclusion et de bord de case logic a pris au moins aussi longtemps.
De façon réaliste, je pense que ce sont vos options:
- maintenir manuellement les produits connexes. Beaucoup de temps, mais peu de chance de conduire à la folie.
- utiliser un hors-the-shelf solution - SaaS ou inclure une bibliothèque de type R qui prend en charge cette.
- recommander (semi -) aléatoire des produits. Disposer d'un ensemble de produits que vous souhaitez recommander, et en choisir un au hasard - par exemple, les produits en promotion, les produits qui sont dans le "best-seller" de la liste, les produits qui coûtent moins de x. Exclure des catégories qui pourraient être problématiques.
Toutes ces options sont réalisables dans un délai raisonnable; le problème avec la construction d'une solution appropriée à partir de zéro, c'est que tout le monde va la mesurer par rapport à Amazon, et ils ont un peu d'avance sur vous...
Humm... vous êtes à la recherche d'un produit moteur de recommandation ensuite... et Bien, ils viennent, pour l'essentiel, en trois saveurs:
- Le filtrage collaboratif
- Contenu de filtrage en fonction de
- Hybride prescripteur systèmes
Le premier rassemble et stocke les données sur vos activités, les préférences, les comportements, etc... ces données sont ensuite envoyées dans un moteur qui le sépare dans les chaînes d'utilisateur. Chaque canal dispose de certaines caractéristiques goûts et dégoûts. Alors, quand vous avez un nouveau visiteur, il ou elle sera classée et être assiged un spécifique de profil utilisateur. Ensuite, les articles seront affichées en fonction de ce profil aime/je n'aime pas.
Maintenant, le contenu de filtrage en fonction utilise une approche différente, moins sociale - en tenant compte UNIQUEMENT de l'utilisateur de votre historique de navigation précédente, de ses préférences et de ses activités. Essentiellement, cela va créer des recommandations basées sur ce que cet utilisateur a déjà aimé, acheté.
Mais pourquoi choisir l'un d'entre eux, non? Hybride prescripteur utilise un peu des deux pour fournir un personnalisé encore de recommandation sociale. Ces sont généralement plus précis quand il s'agit de fournir des recommandations.
Je pense que le filtrage collaboratif est une excellente option lorsque vous avez un grand afflux d'utilisateurs - c'est un peu dur pour construire de bons canaux avec seulement 42 utilisateurs/mois accédant à votre site web. La deuxième option, basée sur le contenu, c'est mieux pour un petit site avec beaucoup de produits, cependant, à mon humble avis, la troisième est la pour vous - construire quelque chose qui va permettre aux utilisateurs d'aller dès le début et de recueillir toutes les données qu'ils génèrent, dans l'avenir, être en mesure d'offrir un amazon, tels que la recommandation de l'expérience!
La construction de l'un de ces n'est pas une tâche facile, comme je suis sûr que vous le savez déjà... mais je recommande vivement ce livre (à l'aide d'un-histoire de filtrage!) qui a vraiment venu à travers pour moi dans le passé: http://www.amazon.com/Algorithms-Intelligent-Web-Haralambos-Marmanis/dp/1933988665
Bonne chance et bon apprentissage!
Je pense que la meilleure approche est de classer vos éléments et utiliser cette information pour faire le choix.
Je l'ai fait sur une épicerie site web et les résultats plutôt bien fonctionné. L'idée est de traverser les éléments de groupe dans un certain nombre de catégories.
Par exemple, permet de prendre une banane. C'est un fruit, mais il est aussi couramment utilisé avec des flocons de maïs ou de céréales pour le petit déjeuner. Les céréales sont également un petit-déjeuner de la nourriture, mais certains d'entre eux pourraient être considérés comme des aliments de santé, tandis que d'autres sont des friandises sucrées.
Avec ce genre d'approche, vous pouvez rapidement commencer à faire un tableau comme ceci:
Item | Category
-------------+------------
Banana | Breakfast
Banana | Quick
Banana | Fruit
Banana | Healthy
Museli | Breakfast
Museli | Healthy
Sugar Puffs | Breakfast
Sugar Puffs | Treat
Kiwi Fruit | Fruit
Kiwi Fruit | Healtyh
Kiwi Fruit | Dessert
Milk | Breakfast
Avec une recherche simple comme cela, vous pouvez facilement trouver les bons éléments pour suggérer sur la base de ces groupements.
Disons que quelqu'un panier contient une Banane, Museli et le Sucre Bouffées.
C'est trois éléments de petit déjeuner, deux en bonne santé, on ne pas tellement.
Suggérer, le Lait, il correspond à tous les trois. Pas d'achat impulsif? Essayez de nouveau, de les jeter dans un Kiwi. et ainsi de suite et ainsi de suite.
L'idée ici est de faire correspondre des éléments à travers de nombreuses catégories différentes (en particulier ceux qui ne peuvent pas être directement apparent) et l'utilisation de ces comptages afin de proposer les meilleurs articles pour votre client.
Faire un crossell basé sur le shopping, les habitudes d'achat des autres clients qui alse acheté cet élément. Disons que vous avez l'historique des achats dans votre base de données (table de commandes):
- De la bière, des frites, de la soude
- Bière, soda
- De soude, gâteau
- Des frites, de la bière
- Gâteau, des frites, de la bière
Ensuite, si votre client a de la Bière sur son panier, basé sur vos achats du client habbits vous pouvez facilement faire une requête et de voir que la bière-les éléments associés sont:
- Jetons (3 fois)
- De soude (2 fois)
- Gâteau (1 fois)
Ensuite, vous pouvez suggérer des chips et de soda sans doute... Le plus grand de votre achat histoire la plus précise des suggestions, le système fera.