![Page 1: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/1.jpg)
YourownRecommendation
EnginewithNeo4j andReco4PHP
![Page 2: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/2.jpg)
Aboutme
• ChristopheWillemsen
• Neo4j&Elasticsearch Consultant@GraphAware
• Belgium
@ikwattro
![Page 3: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/3.jpg)
Whatwe’lltalkabout
• Challengesofarecommendationengine
• Quickintrotographdatabases(Neo4j)
• Reco4PHP
• Buildyourown(demo)
![Page 4: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/4.jpg)
Challengesofa
RecommendationEngine
![Page 5: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/5.jpg)
Recommendations:Overview
• Newsyoushouldread(blogs)• Booksyoushouldbuy(e-commerce)• Personsyoumayknow(social)• Whichtalktoattend(knowledge)• Whichserviceisbestsuitedtohandleagivenfailure(impactanalysis)• Findingtherightcandidatesformedicalproofs(healthcare)• …
![Page 6: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/6.jpg)
Maintypesofrecommendations
• Contentbased(features)• Collaborativefiltering(relationsuser<->item,knn,matrixfactorization)• Knowledgebased
![Page 7: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/7.jpg)
Combinationofthosebycompletelycrazyscientists+secretsauce
![Page 8: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/8.jpg)
BusinessChallenges
• Findingthingstorecommend
• Servethemostrelevantrecommendations
•Measuringthequalityofrecommendations
• Timetomarket/costofdevelopment
![Page 9: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/9.jpg)
Businesschallenges
Imaginethatyoushouldimplementthefeature
“Peopleyoumayknow”onLinkedIn
![Page 10: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/10.jpg)
Businesschallenges:Findingcandidates• Commoncontacts• Facebookfriendsincommon•Mobile/emailcontactsincommon• Allcontactsofyourcontacts•Workedforsamecompany• Studiedatsameschool• Sharesameinterests• Livesinsamecity
![Page 11: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/11.jpg)
Businesschallenges
It’sjustthebeginning!
Let’srevisit…
![Page 12: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/12.jpg)
Businesschallenges:mostrelevant
Morecontactsincommon:
Morerelevant?
![Page 13: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/13.jpg)
Businesschallenges:mostrelevant
Samecity,workedforsamecompany,studiedatsameschool
![Page 14: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/14.jpg)
![Page 15: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/15.jpg)
Businesschallenges:mostrelevant
Whattodowithemailsthatactuallydon’trepresentaperson?
Shouldwerecommend [email protected]?
![Page 16: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/16.jpg)
Businesschallenges:mostrelevant
Whatshouldwedowithcontacts
pending?rejected?
alwaysignored?
![Page 17: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/17.jpg)
TechnicalChallenges
• Simplicity
• Performance(Real-timeornearreal-time)
• Flexibility
![Page 18: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/18.jpg)
IntrotoGraphDatabases
(Neo4j)
![Page 19: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/19.jpg)
![Page 20: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/20.jpg)
isagraphdatabase.
![Page 21: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/21.jpg)
Nodes
![Page 22: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/22.jpg)
Anodecanhaveoneormultiplelabels
Person, Male
![Page 23: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/23.jpg)
Anodecanoneormoreproperties
Person, Male
name : Mark
![Page 24: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/24.jpg)
Nodesareconnectedbyrelationships
![Page 25: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/25.jpg)
Relationshipshaveatype
![Page 26: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/26.jpg)
Relationshipshaveadirection
![Page 27: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/27.jpg)
Relationshipscanhaveproperties
![Page 28: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/28.jpg)
![Page 29: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/29.jpg)
Cypher:thequerylanguageforgraphs
![Page 30: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/30.jpg)
Declarativepatternmatchinglanguage
Describewhatyouwant
toretrievefromthedatabase,not
howtogetit.
![Page 31: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/31.jpg)
Declarativepatternmatchinglanguage
MATCH(you:Person {name:”You”})-[:ATTENDED]->(talk),
(talk)<-[:ATTENDED]-(other)
WHERE(you)-[:LIVES_IN]->(city)<-[:LIVES_IN]-(other)
ANDyou <>other
RETURNother ASmaybeFriend
![Page 32: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/32.jpg)
Whygraphs?
![Page 33: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/33.jpg)
TechnicalChallenges
• Simplicity
• Performance(Real-timeornearreal-time)
• Flexibility
![Page 34: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/34.jpg)
![Page 35: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/35.jpg)
Simplicity
Features aswellasrelationships arenaturallyrepresentedin
agraph database.
![Page 36: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/36.jpg)
Simplicity
Therecommendation logiccanberepresentedinagraphtraversal.
![Page 37: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/37.jpg)
![Page 38: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/38.jpg)
![Page 39: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/39.jpg)
TechnicalChallenges
• Simplicity
• Performance(Real-time)
• Flexibility
![Page 40: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/40.jpg)
Performance
• Relationshipsarefirstclasscitizens(nojoins!)• TraversingrelationshipsinNeo4jischeap(4millionstraversalspersecondpercore)
![Page 41: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/41.jpg)
Reco4PHP
OpenSourceRecommendationEngine
SkeletonatopNeo4j
![Page 42: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/42.jpg)
Reco4PHP
• StandalonePHPlibrary• Opinionatedarchitecture• Flexible• Handlealltheglue
![Page 43: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/43.jpg)
Architecture
• Input->DiscoveryEngines->Recommendations• ScoresandScorebuilders• BlacklistsandFilters• PostProcessors• Context(howmany,meteo,allk/vexternalfactors..)
![Page 44: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/44.jpg)
Designdecisions
• DiscoveryEngine perrecommendation“reason”(corelogic)• DiscoveryEngine executesagraphtraversal(Cypherquery)• Itemsdiscoveredmultipletimesaremorerelevant
![Page 45: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/45.jpg)
TechnicalChallenges
• Simplicity
• Performance(Real-timeornearreal-time)
• Flexibility
![Page 46: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/46.jpg)
Let’sbuildone
In5minutes,we’llbuildasimpleenginethatrecommendsrepositoriesyoumightbeinterestedinonGithub.
![Page 47: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/47.jpg)
composerrequiregraphaware/reco4php
![Page 48: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/48.jpg)
0.TheModel
:STARS
:CONTRIBUTED_TO:OWNS
:FOLLO
WS:FOLLOWS
:WRITTEN_IN
![Page 49: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/49.jpg)
1.Discover
Findrepositoriesstarredbythepeopleyoufolloworfollowingyou.
![Page 50: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/50.jpg)
![Page 51: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/51.jpg)
2.Serveonlyrelevantrecommendations
We’llcreateablacklistthatwillexcludetherepositoriesIamtheownerof.
![Page 52: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/52.jpg)
![Page 53: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/53.jpg)
3.Postprocess
We’llrewardtherecommendedrepositoriesbylet’ssay5pointsiftheyarewritteninPHP.
![Page 54: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/54.jpg)
![Page 55: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/55.jpg)
4.Assemble
![Page 56: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/56.jpg)
![Page 57: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/57.jpg)
5.Tadaaaaaam
![Page 58: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/58.jpg)
![Page 59: Your own recommendation engine with neo4j and reco4php - DPC16](https://reader033.vdocuments.net/reader033/viewer/2022051520/589b94721a28abc0098b6c51/html5/thumbnails/59.jpg)
Thankyou!
Questions?
graphaware.comgithub.com/graphaware
@ikwattro