Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1399 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Système de recommandation sur hébergeur mutualisé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Système de recommandation sur hébergeur mutualisé

n°2309915
petite fra​ise
Posté le 14-01-2018 à 16:17:57  profilanswer
 

Bonjour,
 
J'ai une base de données mySQL classiques avec :
- une table Utilisateurs
- une table Articles
- une table Utilisateurs_Articles qui montre les articles que chaque utilisateur possède
 
J'aimerais offrir un système de recommandation basé sur ce que les autres utilisateurs possèdent.
Par exemple, si un utilisateur possède les articles A, B et C, et que je possède les articles A et B, j'aimerais me voir proposer l'article C.
 
Selon cet article, il s'agit donc de User-User Collaborative filtering.
 
J'ai vu au cours de mes premières recherches des articles sur Spark et sur LightFM.
J'ai toutefois comme contrainte d'être sur un hébergement mutualisé infomaniak qui n'a que ces librairies python installées : http://imu330.infomaniak.ch/pythonmodules.py
 
Connaissez-vous des systèmes de recommandation légers pouvant être utilisés chez des hébergeurs mutualisés ?
Je n'étais pas sûr de la catégorie où poster, ce n'a pas forcément à être en Python  :)  
 
Merci


Message édité par petite fraise le 14-01-2018 à 16:39:25
mood
Publicité
Posté le 14-01-2018 à 16:17:57  profilanswer
 

n°2309916
rufo
Pas me confondre avec Lycos!
Posté le 14-01-2018 à 16:44:56  profilanswer
 

Sur du mutualisé, tu vas assez vite être confronté au pb de ressources/perfs (Mo en RAM, temps d'exécution du script, % utilisation CPU et surtout nb de requêtes faites dans la BD).
 
Spark n'est pas fait pour du mutualisé et en plus, largement surdimensionné dans ton cas de figure.
 
Une simple SVD en t'arrêtant au besoin à l'étape de calcul de la matrice des covariances suffira (en gros, tu zappes l'étape de calcul des valeurs et vecteurs propres). Ca te donnera le % de corrélation entre tes utilisateurs. Bien entendu, dans ta matrice de départ, en ligne, tu mets tes articles et en colonnes, tes utilisateurs. Je te recommande de faire une pondération par le TF-iDF ans l'étape où tu comptes le nb d'instances de chaque article.
Tu mets un seuil à 40% ou plus à partir duquel tu estimes que 2 utilisateurs sont suffisamment proches.
 
Pour avoir implémenté cet algo dans mon outil de help-desk ASTRES (dans un plugin, non dispo en GPL) pour détecter les tickets identiques, similaires ou corrélés, ça marche pas mal du tout ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2309921
petite fra​ise
Posté le 14-01-2018 à 21:11:35  profilanswer
 

Merci beaucoup de ta réponse !
C'est vrai que la logique de base est assez simple à appréhender.
 
Développant assez peu en Python, et l'implémentation semblant assez importante pour éviter des ralentissements inutiles, j'essaye de trouver la meilleure base avec "numpy" mais sans "pandas". J'adapterai ensuite cette base à ma situation.
 
J'ai trouvé deux liens assez intéressants:  


N'hésitez pas si vous avez d'autres recommandations !

n°2309924
rufo
Pas me confondre avec Lycos!
Posté le 14-01-2018 à 22:39:04  profilanswer
 

Pour coder l'algo que je t'ai proposé (basé sur LSA / SVD), t'as pas besoin de  lib. Moi, je l'ai fait avec les fonctions de base de PHP :o
A lire :  
LSA : https://fr.wikipedia.org/wiki/Analy [...] ue_latente
ACP : https://fr.wikipedia.org/wiki/Analy [...] %A9lations
SVD : https://fr.wikipedia.org/wiki/D%C3% [...] naturelles
 
Je t'ai mis les ancres pour les parties les plus utiles, mais lis les articles en entier. Y'a quand même quelques concepts mathématiques à saisir. Mais si tu laisses de côté la SVD (calcul des valeurs propres / vecteurs propres), t'as qu'une bête matrice (en lignes, tes articles, en colonne, tes utilisateurs) qui compte pour chaque utilisateur le nb de chaque article qu'il possède (a priori, 0 ou 1 pour chaque article), puis tu va recentrer la matrice sur son centre de gravité, puis tu vas faire le tf-idf de cette matrice et enfin, calculer la matrice des covariances. En gros, t'as que les 4 opérations (+-/*) un peu de log10 pour le tf-idf, un calcul de transposée de matrice et un produit matriciel. Ca va, ça reste accessible, non ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Système de recommandation sur hébergeur mutualisé

 

Sujets relatifs
Projet de système à développerSysteme de session
système référentiel / masse vitesse et position relative.[DM Code]en fait un système permettant de définir des nombres premiers
Modéliser notre système de fonctionnnement ou pas.lisp systeme expert
[Ada][cybernetic] intégrer le système : approche neurale du problème.Création d'hébergeur de serveurs de jeux gratuit.
Système de commentaire sur liste en PHP/AJAXsimulation d'un systeme d'exploitation en java
Plus de sujets relatifs à : Système de recommandation sur hébergeur mutualisé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR