0

Je me sers de similarité article Spark par cornac en suivant les étapes décrites dans cet article:Spark Point Similitude Interprétation (Cross-similarité et similarité)

https://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html

j'ai pu nettoyer mes données, la configuration un nœud spark/hadoop local seulement et tout ça. Maintenant, ma question repose plus sur l'interprétation des matrices. J'ai essayé quelques requêtes Google avec un succès limité.

Je crée un recommandeur multimodal - et un de mes jeux de données est très similaire à l'exemple de Mahout. Exemple: Customer ActionName Product 11064612 view 241505 11086047 purchase 110915 11121878 view CERT_DL 11149030 purchase CERT_FS 11104130 view 111401 La sortie de mahout est 2 ensembles de matrices. Une matrice de similarité et une matrice de cooccurrence.

Ceci est ma matrice de similarité (je suppose que cornac utilise mes achats de « filtre1 »)

**791207-WP** 791520-WP:11.350536461453885 791520:9.547158147208393 76130142:7.938639976084232 711215:7.0641921646893024 751309:6.805891904514283 

Alors, comment pourrais-je interpréter cela? Si quelqu'un a acheté 791207-WP ils pourraient être intéressés par 791520-WP? (donc j'utiliserais la partie gauche contre les achats d'un client et classerais les produits dans la bonne partie?).

La ligne pour 791520-WP ressemble à ceci:

791520-WP 76151220:18.954662238247693 791604-WP:13.951210170984268 

Donc, en théorie, je vous recommande de 76.151.220 à quelqu'un qui a acheté 791520-WP, correct?

La partie 2 de la question est l'interprétation de la matrice de similarité croisée. Souvenez-vous que mon filtre2 est "vues".

Comment puis-je interpréter ceci:

**790907** 76120956:14.2824428207241 791500-LXQ2:13.864741460885853 190907:10.735807818360627 

Je prends cette matrice comme "quelqu'un qui a visité la page web 76120956 a fini par acheter 790907". Donc, je devrais promouvoir 790907 aux clients qui ont acheté 76120956 et peut-être même ajouter un lien entre ces 2 produits sur notre site, par exemple.

Ou est-ce "personnes ayant visité la page de 790907 ont acheté jusqu'à 76120956"?

Mon plan est de ne pas les utiliser tels quels. J'utiliserai encore RowSimilarity et différentes sources pour classer les produits - mais l'interprétation de base des résultats de mahout me manque.

Si vous connaissez une documentation qui clarifie cela, ce serait un atout formidable.

Merci.

Répondre

3

Dans les deux cas, la matrice vous indique que la clé ID d'élément est similaire aux éléments répertoriés par la valeur LLR attachée à chaque élément similaire. Similaire dans le sens où des utilisateurs similaires ont acheté les articles. Dans le second cas, il est dit que des personnes similaires ont vu les articles et cette vue semble également avoir conduit à un achat du même article.La cooccurrence fonctionne uniquement pour les achats, l'occurrence croisée ajoute la vérification pour s'assurer que la vue est également corrélée à un achat. Cela vous permet d'utiliser les deux pour les recommandations. La sortie est destinée à être utilisée avec un moteur de recherche en général et vous utiliseriez l'historique des achats et des vues d'un utilisateur comme une requête de 2 champs contre les matrices, une dans chaque champ.

Il existe des méthodes analogues pour trouver des recommandations basées sur des articles.

Mieux encore, utilisez quelque chose comme le recommandeur universel ici: actionml.com/docs/ur avec PredictionIO pour un système de bout en bout.