moteurs de recommendation avec neo4j et graphawarereco
TRANSCRIPT
![Page 1: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/1.jpg)
Moteurs de recommandation
avec Neo4j
![Page 2: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/2.jpg)
Qui moi être ?
• Christophe Willemsen• Software Engineer | Certified Neo4j Expert @GraphAware• Bruges (Belgique)
![Page 3: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/3.jpg)
Recommandations : Vue globale
• Des nouvelles que vous pourriez lire• Des livres que vous pourriez acheter• Des personnes que vous pourriez connaître• Des personnes que vous pourriez inviter• Personnes à qui vous pourriez présenter votre produit• …
![Page 4: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/4.jpg)
Types principaux de recommandation
• Basé sur le contenu (features)• Filtrage collaboratif (relations utilisateur -‐> élément)
![Page 5: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/5.jpg)
La bonne nouvelle
Les features tout comme les relationspeuvent être représentées naturellement
dans un graphe.
![Page 6: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/6.jpg)
La bonne nouvelle
La logique de recommendation peut être représentée en traversée dans le graphe.
![Page 7: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/7.jpg)
Exemple
![Page 8: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/8.jpg)
Recommandation : Business Side
Identification des règles métier afin de fournir
de la recommandation
![Page 9: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/9.jpg)
Exemple
![Page 10: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/10.jpg)
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é.
![Page 11: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/11.jpg)
Votre première requête de reco
![Page 12: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/12.jpg)
Recommandation : Business Side
Si le film fait partie d’un Genre qui intéresseAlice, augmenter le score de 1
![Page 13: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/13.jpg)
Votre deuxième première requête de reco(la deuxième quoi)
![Page 14: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/14.jpg)
La vraie vie c’est compliqué…
Les spécificités de moteur de recommandations dans le monde réel sont
beaucoup plus complexes.
![Page 15: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/15.jpg)
La vraie vie c’est compliqué…
Imaginez que vous devez implémenter la fonctionnalité
“Personnes que vous pourriez connaître” sur LinkedIn
![Page 16: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/16.jpg)
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.
![Page 17: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/17.jpg)
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
![Page 18: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/18.jpg)
La vraie vie c’est compliqué…
Mais c’est seulement le début ! Revenons en arrière et regardons
cela de plus près!
![Page 19: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/19.jpg)
La vraie vie c’est compliqué…
Plus de contacts en commun :
plus rélévant?
![Page 20: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/20.jpg)
La vraie vie c’est compliqué…
Même ville ou école :
Est-‐ce que la taille compte ?
![Page 21: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/21.jpg)
La vraie vie c’est compliqué…
Qu’est-‐ce qu’on fait avec les é-‐mails quine représentent pas une personne ?
On recommande [email protected] ?
![Page 22: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/22.jpg)
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 ?
![Page 23: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/23.jpg)
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é
![Page 24: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/24.jpg)
#GraphAwareRecoThe Open-‐Source Recommendation Engine Skeleton
![Page 25: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/25.jpg)
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
![Page 26: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/26.jpg)
GraphAwareReco
![Page 27: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/27.jpg)
Votre premier moteur de reco.. yeahhh
![Page 28: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/28.jpg)
Votre premier moteur de reco
Imaginons qu’on a un graphe de personnes.
![Page 29: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/29.jpg)
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
![Page 30: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/30.jpg)
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
![Page 31: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/31.jpg)
Découverte!
![Page 32: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/32.jpg)
![Page 33: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/33.jpg)
Qualification (score) : même ville
![Page 34: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/34.jpg)
Qualification (score) : même sexe
![Page 35: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/35.jpg)
Qualification (score) : pénaliser différence âge
![Page 36: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/36.jpg)
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.
![Page 37: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/37.jpg)
Et on colle tout ensemble
![Page 38: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/38.jpg)
La suite ?
![Page 39: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/39.jpg)
#GraphAidedSearchElasticSearch and Graphs.The best of both worlds
![Page 40: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/40.jpg)
#GraphAidedSearchProcessus 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.
![Page 41: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/41.jpg)
![Page 42: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/42.jpg)
GraphAidedSearch
![Page 43: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/43.jpg)
GraphAidedSearch
![Page 44: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/44.jpg)
Questions ?
![Page 45: Moteurs de recommendation avec Neo4j et GraphAwareReco](https://reader031.vdocuments.site/reader031/viewer/2022021500/58ee4b121a28ab737b8b46e7/html5/thumbnails/45.jpg)
#MerciTwitter : @ikwattro -‐ @graph_aware
http://graphaware.comhttps://github.com/graphaware