10
votes

Recommander: Log Actions d'utilisateur et Datamine IT - Bonne solution

Je prévois de connecter toutes les actions utilisateur telles que la page visualisée, la balise, etc.

Quelle serait une bonne solution maigre à mine de données ces données pour obtenir recommandations ?
Dire comme:

  • Figure tous les intérêts de l'URL vue (en supposant que je connais le Tags associés)
  • trouver des personnes qui ont des intérêts similaires. Par exemple. John & Jane Les URL visualisées liées aux voitures etc

    edit:
    C'est vraiment mon manque de connaissances dans ce domaine qui est un facteur limitant pour commencer.

    laissez-moi reformuler.
    Disons un site comme Stackoverflow ou quora . Toutes mes antécédents de navigation passant par différentes questions sont enregistrées et Quora effectue une tâche d'extraction de données de la recherche de l'ensemble et de remplir mon flux avec des questions connexes. Je passe par des questions relatives à parentales et la prochaine fois que je me connecte, je vois des flux de questions sur parentales . Idem avec Amazon Shopping. Je parcourt des montres et des mélangeurs et deux jours plus tard, ils m'ont envoyé un mail d'articles de shopping associés que je suis intéressé.

    Ma question est, comment stockez-t-on efficacement ces données, puis des données à la mine pour indiquer le prochain ensemble de données pertinentes.


5 commentaires

Question plutôt ambiguë. Comment l'enregistrez-vous?


Je n'y ai pas vraiment pensé. J'aurai également besoin d'un mécanisme efficace pour la stocker.


C'est trop ambigu pour répondre. Peut-être devriez-vous commencer à la mettre en œuvre, puis demandez à nouveau lorsque vous proposez des questions plus concrètes.


@Snowball d'accord. Ceci est trop large pour obtenir vos réponses raisonnables.


@Qutintinpar: Après avoir lu votre édition, je pense que le terme que vous recherchez est un Système recommandé . Quelques algorithmes pour il sont énumérés dans la section algorithmes de l'article Wikipedia. Si vous souhaitez en savoir plus sur le sujet, j'ai fortement recommandé le Coursera Machine Learning Class . Il a commencé il y a quelques jours, vous pouvez donc sauter maintenant et suivez toujours.


3 Réponses :


3
votes

Datamining est une méthode qui nécessite des quantités très énormes d'espace pour le stockage et des quantités énormes de puissance informatique.

Je vous donne un exemple:

Imaginez, vous êtes le patron d'une grande chaîne de supermarchés comme Wal-Mart, et vous voulez savoir comment placer vos produits sur votre marché afin que les consommateurs dépensent beaucoup d'argent lorsqu'ils entrent dans vos magasins.

Tout d'abord, vous avez besoin d'une idée. Votre idée est de trouver des produits de différents groupes de produits qui sont souvent achetés ensemble. Si vous avez une telle paire de produits, vous devez placer ces produits aussi loin que possible. Si un client veut acheter les deux, il / elle doit parcourir tout votre magasin et de cette façon de placer d'autres produits qui pourraient bien s'adapter à une de ces paires, mais ne sont pas vendus aussi souvent. Certains des clients verront ce produit et l'acheter, et les revenus de ce produit supplémentaire sont les revenus de votre processus de données.

Vous avez donc besoin de beaucoup de données. Vous devez stocker toutes les données que vous bénéficiez de tous vos clients dans tous vos magasins. Lorsqu'une personne achète une bouteille de lait, une saucisse et un peu de pain, alors vous devez stocker les marchandises vendues, quelle quantité et le prix. Chaque achat a besoin de son identifiant si vous souhaitez vous faire remarquer que le lait et la saucisse ont été achetés ensemble.

Vous avez donc une énorme quantité de données d'achat. Et vous avez beaucoup de produits différents. Disons que vous vendez 10 000 produits différents dans vos magasins. Chaque produit peut être associé à tous les autres. Cela fait 10 000 * 10 000/2 = 50 000 000 (50 millions de personnes). Et pour chacune de ces paires possibles, vous devez savoir si elle est contenue dans un achat. Mais vous pensez peut-être que vous avez des clients différents lors d'un samedi après-midi qu'à un mercredi matin. Vous devez donc stocker le temps d'acheter aussi. Maybee Vous définissez 20 tranches de temps sur une semaine. Cela fait 50m * 20 = 1 milliard d'enregistrements. Et parce que les gens de Memphis pourraient acheter différentes choses que les personnes de Beverly Hills, vous avez besoin de l'endroit aussi dans vos données. Disons que vous définissez 50 régions, vous obtenez donc 50 milliards d'enregistrements dans votre base de données.

Et puis vous traitez toutes vos données. Si un client a acheté 20 produits dans un achat, vous avez 20 * 19/2 = 190 paires. Pour chacune de ces paires, vous augmentez le compteur pour l'heure et le lieu de cet achat dans votre base de données. Mais de quoi devriez-vous augmenter le comptoir? Juste par 1? Ou par la quantité des produits achetés? Mais vous avez une paire de deux produits. Si vous prenez la somme des deux? Ou le maximum? Mieux que vous utilisez plus d'un compteur pour pouvoir compter de toutes les manières que vous pouvez penser.

Et vous devez faire autre chose: les clients achètent beaucoup plus de lait et de pain puis champagne et caviar. Donc, s'ils choisissent des produits arbitraires, bien sûr, le pain de lait de paire a un nombre plus élevé que le caviar de Champagne. Ainsi, lorsque vous analysez vos données, vous devez également m'occuper de certains de ces effets.

Ensuite, lorsque vous avez fait tout cela, vous faites votre requête de données. Vous sélectionnez la paire avec le ratio le plus élevé de compte factuel contre le nombre estimé. Vous le sélectionnez à partir d'une table de base de données avec de nombreux milliards d'enregistrements. Cela pourrait avoir besoin de quelques heures à traiter. Alors, réfléchissez bien si votre requête est vraiment ce que vous voulez savoir avant de soumettre votre requête!

Vous pourriez découvrir que dans l'environnement rural, les gens le samedi après-midi, achetez beaucoup plus de bière avec les couches que vous ne l'attendiez. Donc, il vous suffit de placer de la bière à une extrémité de la boutique et des couches à l'autre bout, ce qui fait beaucoup de gens qui parcourent tout votre magasin où ils voient (et espérons acheter) de nombreuses autres choses qu'ils n'auraient pas vu (et acheté) Si la bière et les couches ont été placées à proximité.

et rappelez-vous: les coûts de votre processus de données ne sont couverts que par les bonnes affaires de vos clients!

conclusion:

  • Vous devez stocker des paires, triplé des tunples encore plus importants d'objets qui auront besoin de beaucoup d'espace. Parce que vous ne savez pas ce que vous trouverez à la fin, vous devez stocker toutes les combinaisons possibles!
  • Vous devez compter ces tuples
  • Vous devez comparer les valeurs comptées avec des valeurs estimées

0 commentaires

0
votes

Je devrais dire que la recommandation est la question de l'apprentissage de la machine. Comment stocker les données dépend de l'algorithme que vous avez choisi.


0 commentaires

2
votes

stocker chaque transaction comme vecteur des balises (c'est-à-dire des pages visitées contenant ces balises). Ensuite, utilisez l'analyse de l'association (je peux vous recommander Weka) sur ces données pour trouver des associations à l'aide des algorithmes "associés" disponibles. L'efficacité dépend de beaucoup de choses différentes bien sûr.

Une chose qu'un gars à mon uni m'a dit que cela me disait souvent que vous pouvez simplement créer un vecteur de tous les produits que une personne a acheté et comparer cela avec les vecteurs d'autres peuples et obtenez des recommandations décentes. Cela représente des utilisateurs comme les produits qu'ils achètent ou les pages qu'ils visitent et font par exemple. JACAcard Calculs de similarité. Si les "personnes" sont similaires, regardez les produits qu'ils ont acheté que cette personne ne l'a pas fait. (Probablement ceux qui sont les plus courants dans la population de personnes similaires)

STOCKAGE est un ballon différent. Il existe de nombreux bons indices pour des données vectorielles telles que des arbres KD implémentés dans différents SGBDM.

PRENEZ UN COURS DANS LE DATAMINING :) Vous devez simplement lire l'un des excellents manuels disponibles (j'ai lu l'introduction à l'exploitation des données par PANG-Ning Tan et al et son bien.)

et en ce qui concerne le stockage de toutes les paires de produits, etc., cela n'est bien sûr pas effectué et des algorithmes plus efficaces basés sur le support et la confiance sont utilisés pour élaguer l'espace de recherche.


0 commentaires