Moteurs de	
  
recommandation
avec	
  
Neo4j
Qui	
  moi être	
  ?
• Christophe	
  Willemsen
• Software	
  Engineer	
  |	
  Certified	
  Neo4j	
  Expert	
  @GraphAware
...
Recommandations :	
  Vue globale
• Des	
  nouvelles que vous pourriez lire
• Des	
  livres	
  que vous pourriez acheter
• ...
Types	
  principaux de	
  recommandation
• Basé sur le	
  contenu (features)
• Filtrage collaboratif (relations	
  utilisa...
La	
  bonne	
  nouvelle
Les	
  features tout	
  comme les	
  relations
peuvent être	
  représentées	
  naturellement	
  
d...
La	
  bonne	
  nouvelle
La	
  logique	
  de	
  recommendation peut	
  être	
  
représentée	
  en	
  traversée dans	
  le	
...
Exemple
Recommandation :	
  Business	
  Side
Identification	
  des	
  
règles	
  métier	
  afin	
  de	
  fournir	
  
de	
  la	
  r...
Exemple
Recommandation :	
  Business	
  Side
Recommander à	
  Alice	
  les	
  films vus	
  par	
  les	
  
personnes	
  qui	
  ont	...
Votre première	
  requête	
  de	
  reco
Recommandation :	
  Business	
  Side
Si	
  le	
  film fait	
  partie	
  d’un	
  Genre qui	
  intéresse
Alice,	
  augmenter...
Votre deuxième première	
  requête	
  de	
  reco
(la	
  deuxième	
  quoi)
La	
  vraie vie	
  c’est compliqué…
Les	
  spécificités de	
  moteur	
  de	
  
recommandations	
  dans	
  le	
  monde	
  r...
La	
  vraie vie	
  c’est compliqué…
Imaginez	
  que	
  vous	
  devez	
  implémenter	
  la	
  
fonctionnalité	
  
“Personne...
La	
  vraie vie	
  c’est compliqué…
Après	
  une	
  session	
  de	
  brainstorming,	
  votre	
  
équipe	
  a	
  défini	
  ...
La	
  vraie vie	
  c’est compliqué…
• Contacts	
  en	
  commun
• Amis	
  Facebook	
  en	
  commun
• Contacts	
  email/mobi...
La	
  vraie vie	
  c’est compliqué…
Mais	
  c’est	
  seulement	
  le	
  début !	
  
Revenons	
  en	
  arrière	
  et	
  reg...
La	
  vraie vie	
  c’est compliqué…
Plus	
  de	
  contacts	
  en	
  commun	
  :	
  
plus	
  rélévant?
La	
  vraie vie	
  c’est compliqué…
Même	
  ville	
  ou	
  école	
  :	
  
Est-­‐ce	
  que	
  la	
  taille	
  compte ?
La	
  vraie vie	
  c’est compliqué…
Qu’est-­‐ce	
  qu’on	
  fait	
  avec	
  les	
  é-­‐mails	
  qui
ne	
  représentent	
  ...
La	
  vraie vie	
  c’est compliqué…
Et	
  on	
  fait	
  quoi	
  avec	
  les	
  contacts	
  
qui	
  sont	
  en	
  attente	
...
La	
  vraie vie	
  c’est compliqué…
Etapes	
  de	
  base	
  d’un	
  moteur	
  de	
  reco
• Trouver	
  
• Qualifier
• Suppr...
#GraphAwareReco
The	
  Open-­‐Source Recommendation	
  Engine	
  Skeleton
GraphAwareReco
• Plugin	
  pour	
  Neo4j	
  (utilise	
  GraphAware	
  Framework)
• Vous	
  pouvez	
  utiliser	
  Cypher	
 ...
GraphAwareReco
Votre premier	
  moteur de	
  reco..	
  yeahhh
Votre premier	
  moteur de	
  reco
Imaginons	
  qu’on	
  a	
  un	
  graphe de	
  personnes.
Votre premier	
  moteur de	
  reco
Notre	
  intention	
  est	
  de	
  recommander	
  des	
  personnes	
  que	
  vous	
  po...
Votre premier	
  moteur de	
  reco
Notre	
  intention	
  est	
  de	
  recommander	
  des	
  personnes	
  que	
  vous	
  po...
Découverte!
Qualification	
  (score)	
  :	
  même	
  ville
Qualification	
  (score)	
  :	
  même	
  sexe
Qualification	
  (score)	
  :	
  pénaliser	
  différence	
  âge
Blacklists	
  et	
  filtres
On	
  pourrait	
  créer	
  une	
  blacklist pour	
  ne	
  pas	
  
retourner	
  les	
  Personne...
Et	
  on	
  colle	
  tout	
  ensemble
La	
  suite	
  ?
#GraphAidedSearch
ElasticSearch	
  and	
  Graphs.
The	
  best	
  of	
  both	
  worlds
#GraphAidedSearch
Processus	
  qui	
  permet	
  de	
  trouver	
  les	
  résultats	
  les	
  plus	
  
rélévants	
  d’une	
 ...
GraphAidedSearch
GraphAidedSearch
Questions	
  ?
#Merci
Twitter	
  :	
  @ikwattro	
  -­‐ @graph_aware
http://graphaware.com
https://github.com/graphaware
Moteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareReco
Prochain SlideShare
Chargement dans…5
×

Moteurs de recommendation avec Neo4j et GraphAwareReco

1 151 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 151
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

×