Moteurs de recommendation avec Neo4j et GraphAwareReco

1 110 vues

Publié le

Réalisez un moteur de recommandation avec Neo4j et GraphawareReco

Publié dans : Logiciels
0 commentaire
6 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 110
Sur SlideShare
0
Issues des intégrations
0
Intégrations
26
Actions
Partages
0
Téléchargements
29
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Moteurs de recommendation avec Neo4j et GraphAwareReco

  1. 1. Moteurs de   recommandation avec   Neo4j
  2. 2. Qui  moi être  ? • Christophe  Willemsen • Software  Engineer  |  Certified  Neo4j  Expert  @GraphAware • Bruges  (Belgique)
  3. 3. Recommandations :  Vue globale • Des  nouvelles que vous pourriez lire • Des  livres  que vous pourriez acheter • Des  personnesque vous pourriez connaître • Des  personnes  que  vous  pourriez  inviter • Personnes  à  qui  vous  pourriez  présenter  votre  produit • …
  4. 4. Types  principaux de  recommandation • Basé sur le  contenu (features) • Filtrage collaboratif (relations  utilisateur -­‐>  élément)
  5. 5. La  bonne  nouvelle Les  features tout  comme les  relations peuvent être  représentées  naturellement   dans  un  graphe.  
  6. 6. La  bonne  nouvelle La  logique  de  recommendation peut  être   représentée  en  traversée dans  le  graphe.
  7. 7. Exemple
  8. 8. Recommandation :  Business  Side Identification  des   règles  métier  afin  de  fournir   de  la  recommandation
  9. 9. Exemple
  10. 10. Recommandation :  Business  Side Recommander à  Alice  les  films vus  par  les   personnes  qui  ont  noté  les  mêmes  films   qu’elle  ET qu’elle  n’a  pas encore  noté.
  11. 11. Votre première  requête  de  reco
  12. 12. Recommandation :  Business  Side Si  le  film fait  partie  d’un  Genre qui  intéresse Alice,  augmenter  le  score  de  1
  13. 13. Votre deuxième première  requête  de  reco (la  deuxième  quoi)
  14. 14. La  vraie vie  c’est compliqué… Les  spécificités de  moteur  de   recommandations  dans  le  monde  réel  sont   beaucoup  plus  complexes.
  15. 15. La  vraie vie  c’est compliqué… Imaginez  que  vous  devez  implémenter  la   fonctionnalité   “Personnes  que  vous  pourriez  connaître”   sur  LinkedIn
  16. 16. La  vraie vie  c’est compliqué… Après  une  session  de  brainstorming,  votre   équipe  a  défini  les  différentes  possibilités   pour  trouver des  personnes  que  quelqu’un   pourrait  connaître.
  17. 17. La  vraie vie  c’est compliqué… • Contacts  en  commun • Amis  Facebook  en  commun • Contacts  email/mobile  en  commun • Les  contacts  de  tous  vos  contacts • A  travaillé  pour  la  même  entreprise • A  étudié  à  la  même  école • Partagent  le  même  intérêt • Vivent  dans  la  même  ville
  18. 18. La  vraie vie  c’est compliqué… Mais  c’est  seulement  le  début !   Revenons  en  arrière  et  regardons   cela  de  plus  près!
  19. 19. La  vraie vie  c’est compliqué… Plus  de  contacts  en  commun  :   plus  rélévant?
  20. 20. La  vraie vie  c’est compliqué… Même  ville  ou  école  :   Est-­‐ce  que  la  taille  compte ?
  21. 21. La  vraie vie  c’est compliqué… Qu’est-­‐ce  qu’on  fait  avec  les  é-­‐mails  qui ne  représentent  pas  une  personne  ? On  recommande  info@zenika.it ?
  22. 22. La  vraie vie  c’est compliqué… Et  on  fait  quoi  avec  les  contacts   qui  sont  en  attente  ? qui  sont  rejetés  ? qui  sont  ignorés  tout  le  temps  ?
  23. 23. La  vraie vie  c’est compliqué… Etapes  de  base  d’un  moteur  de  reco • Trouver   • Qualifier • Supprimer  les  non  rélévants • Mesurer  la  qualité
  24. 24. #GraphAwareReco The  Open-­‐Source Recommendation  Engine  Skeleton
  25. 25. GraphAwareReco • Plugin  pour  Neo4j  (utilise  GraphAware  Framework) • Vous  pouvez  utiliser  Cypher  ou  n’importe  quel  langage  JVM • Architecture  opnionated • Ultra  rapide • Ultra  flexible • Se  charge  de  toute  la  glue
  26. 26. GraphAwareReco
  27. 27. Votre premier  moteur de  reco..  yeahhh
  28. 28. Votre premier  moteur de  reco Imaginons  qu’on  a  un  graphe de  personnes.
  29. 29. Votre premier  moteur de  reco Notre  intention  est  de  recommander  des  personnes  que  vous  pourriez   être  ami  avec  : • Plus  d’amis  en  commun  =>  meilleur  score • Vivent  dans  la  meme  ville  =>  plus  de  rélévance • Même  sexe  =>  meilleure  chance • Pénaliser  la  différence  d’âge • Ceux  qui  sont  déjà  amis  ne  doivent  pas  être  recommandés
  30. 30. Votre premier  moteur de  reco Notre  intention  est  de  recommander  des  personnes  que  vous  pourriez   être  ami  avec  : • Plus  d’amis  en  commun  =>  meilleur  score • Vivent  dans  la  meme  ville  =>  plus  de  rélévance • Même  sexe  =>  meilleure  chance • Pénaliser  la  différence  d’âge • Ceux  qui  sont  déjà  amis  ne  doivent  pas  être  recommandés
  31. 31. Découverte!
  32. 32. Qualification  (score)  :  même  ville
  33. 33. Qualification  (score)  :  même  sexe
  34. 34. Qualification  (score)  :  pénaliser  différence  âge
  35. 35. Blacklists  et  filtres On  pourrait  créer  une  blacklist pour  ne  pas   retourner  les  Personnes  déjà  connectées  de   la  même  manière  que  les  PostProcessors,   mais  on  va  utiliser  une  fonctionalité toute   prête.
  36. 36. Et  on  colle  tout  ensemble
  37. 37. La  suite  ?
  38. 38. #GraphAidedSearch ElasticSearch  and  Graphs. The  best  of  both  worlds
  39. 39. #GraphAidedSearch Processus  qui  permet  de  trouver  les  résultats  les  plus   rélévants  d’une  requête  de  recherche  en  combinant les   scores  de  rélévance  fournis  par  un  moteur  de  recherche   avec  ceux  produits  par  un  moteur  de  recommandation.
  40. 40. GraphAidedSearch
  41. 41. GraphAidedSearch
  42. 42. Questions  ?
  43. 43. #Merci Twitter  :  @ikwattro  -­‐ @graph_aware http://graphaware.com https://github.com/graphaware

×