Moteurs de recommendation avec Neo4j et GraphAwareReco

download Moteurs de recommendation avec Neo4j et GraphAwareReco

of 45

  • date post

    12-Apr-2017
  • Category

    Software

  • view

    1.056
  • download

    0

Embed Size (px)

Transcript of Moteurs de recommendation avec Neo4j et GraphAwareReco

  • Moteurs de recommandation

    avec Neo4j

  • Qui moi tre ?

    Christophe Willemsen Software Engineer | Certified Neo4j Expert @GraphAware Bruges (Belgique)

  • Recommandations : Vue globale

    Des nouvelles que vous pourriez lire Des livres que vous pourriez acheter Des personnes que vous pourriez connatre Des personnes que vous pourriez inviter Personnes qui vous pourriez prsenter votre produit

  • Types principaux de recommandation

    Bas sur le contenu (features) Filtrage collaboratif (relations utilisateur -> lment)

  • La bonne nouvelle

    Les features tout comme les relationspeuvent tre reprsentes naturellement

    dans un graphe.

  • La bonne nouvelle

    La logique de recommendation peut tre reprsente en traverse dans le graphe.

  • Exemple

  • Recommandation : Business Side

    Identification des rgles mtier afin de fournir

    de la recommandation

  • Exemple

  • Recommandation : Business Side

    Recommander Alice les films vus par les personnes qui ont not les mmes films quelle ET quelle na pas encore not.

  • Votre premire requte de reco

  • Recommandation : Business Side

    Si le film fait partie dun Genre qui intresseAlice, augmenter le score de 1

  • Votre deuxime premire requte de reco(la deuxime quoi)

  • La vraie vie cest compliqu

    Les spcificits de moteur de recommandations dans le monde rel sont

    beaucoup plus complexes.

  • La vraie vie cest compliqu

    Imaginez que vous devez implmenter la fonctionnalit

    Personnes que vous pourriez connatre sur LinkedIn

  • La vraie vie cest compliqu

    Aprs une session de brainstorming, votre quipe a dfini les diffrentes possibilits pour trouver des personnes que quelquun

    pourrait connatre.

  • La vraie vie cest compliqu Contacts en commun Amis Facebook en commun Contacts email/mobile en commun Les contacts de tous vos contacts A travaill pour la mme entreprise A tudi la mme cole Partagent le mme intrt Vivent dans la mme ville

  • La vraie vie cest compliqu

    Mais cest seulement le dbut ! Revenons en arrire et regardons

    cela de plus prs!

  • La vraie vie cest compliqu

    Plus de contacts en commun :

    plus rlvant?

  • La vraie vie cest compliqu

    Mme ville ou cole :

    Est-ce que la taille compte ?

  • La vraie vie cest compliqu

    Quest-ce quon fait avec les -mails quine reprsentent pas une personne ?

    On recommande info@zenika.it ?

  • La vraie vie cest compliqu

    Et on fait quoi avec les contacts

    qui sont en attente ?qui sont rejets ?

    qui sont ignors tout le temps ?

  • La vraie vie cest compliqu

    Etapes de base dun moteur de reco

    Trouver Qualifier Supprimer les non rlvants Mesurer la qualit

  • #GraphAwareRecoThe Open-Source Recommendation Engine Skeleton

  • GraphAwareReco

    Plugin pour Neo4j (utilise GraphAware Framework) Vous pouvez utiliser Cypher ou nimporte quel langage JVM Architecture opnionated Ultra rapide Ultra flexible Se charge de toute la glue

  • GraphAwareReco

  • Votre premier moteur de reco.. yeahhh

  • Votre premier moteur de reco

    Imaginons quon a un graphe de personnes.

  • Votre premier moteur de reco

    Notre intention est de recommander des personnes que vous pourriez tre ami avec :

    Plus damis en commun => meilleur score Vivent dans la meme ville => plus de rlvance Mme sexe => meilleure chance Pnaliser la diffrence dge Ceux qui sont dj amis ne doivent pas tre recommands

  • Votre premier moteur de reco

    Notre intention est de recommander des personnes que vous pourriez tre ami avec :

    Plus damis en commun => meilleur score Vivent dans la meme ville => plus de rlvance Mme sexe => meilleure chance Pnaliser la diffrence dge Ceux qui sont dj amis ne doivent pas tre recommands

  • Dcouverte!

  • Qualification (score) : mme ville

  • Qualification (score) : mme sexe

  • Qualification (score) : pnaliser diffrence ge

  • Blacklists et filtres

    On pourrait crer une blacklist pour ne pas retourner les Personnes dj connectes de la mme manire que les PostProcessors, mais on va utiliser une fonctionalit toute

    prte.

  • Et on colle tout ensemble

  • La suite ?

  • #GraphAidedSearchElasticSearch and Graphs.The best of both worlds

  • #GraphAidedSearchProcessus qui permet de trouver les rsultats les plus rlvants dune requte de recherche en combinant les scores de rlvance fournis par un moteur de recherche avec ceux produits par un moteur de recommandation.

  • GraphAidedSearch

  • GraphAidedSearch

  • Questions ?

  • #MerciTwitter : @ikwattro - @graph_aware

    http://graphaware.comhttps://github.com/graphaware