SlideShare a Scribd company logo
1 of 62
Download to read offline
GraphAware
TM
Michal Bachman
graphaware.com
@graph_aware
Recommendations
with Neo4j
Building a high-performance recommendation engine
GraphAware
TM
Quick Intro
Why Graphs?
Business and Technical Challenges
GraphAware Recommendation Engine
About This Talk
GraphAware
TM
News you should read
Books you should buy
People you may know
People you should date
People you should market a product to
…
Recommendation Engines
GraphAware
TM
Content-based (features)
Collaborative filtering (user <-> item relationships)
Recommendation Engines
GraphAware
TM
Features as well as relationships can be naturally
represented as a graph.
Good News
GraphAware
TM
Example
IS_OF_GENRE
title:
“Love Actually”
Movie
name: “Bob”
User
name:
“Comedy”
Genre
RATED
rating: 5
name: “Alice”
User
name:
“Romance”
Genre
title:
“American Pie”
Movie
IS_OF_GENRE
IS_OF_GENRE
RATEDrating: 5
INTERESTED_IN
rating: 5
RATED
GraphAware
TM
Easy to understand
Natural to model
Flexible (schema-free)
Fast to query
Graphs (Neo4j)
GraphAware
TM
Great for a quick PoC
Great for smaller data sets
Great for relatively simple logic
Cypher
GraphAware
TM
Cypher
MATCH
(u:User)-[:LIKED]->(m:Movie),
(m)<-[:LIKED]-(another:User),
(another)-[:LIKED]->(reco:Movie)
WHERE NOT
(u)-[:LIKED|DISLIKED]->(reco)
RETURN reco;
GraphAware
TM
Requirements of real-world recommendation
engines are often much more complex.
The Reality
GraphAware
TM
Imagine you’re building the ”people you may
know” feature on LinkedIn.
Example
GraphAware
TM
After a brainstorming session, your team came up
with the following ways of finding people one may
know:
Example
GraphAware
TM
Common contacts
Facebook friends in common
Email / mobile contacts in common
Each others email / mobile contact
Worked for the same company
Studied at the same school
Share the same interest
Live in the same city
People You May Know
GraphAware
TM
But that’s just the beginning! Let’s go back and
re-visit.
Example
GraphAware
TM
More contacts in common = better chance?
Same city / school / company = does size matter?
What about emails that don’t represent a person?
What about people already connected?
And pending…
And rejected…
And repeatedly ignored…
People You May Know
GraphAware
TM
Finding things to recommend
Serving the most relevant recommendations
Measuring the quality of recommendations
Time to market / cost of development
Business Challenges
GraphAware
TM
Performance (real-time!)
Simplicity
Flexibility
Technical Challenges
GraphAware
TM
So we came up with an open-source
recommendation engine skeleton that will help you
solve all the challenges.
We’ve done it before
GraphAware
TM
plugin to Neo4j (uses GraphAware Framework)
you have to use a JVM-language
opinionated architecture
very fast
very flexible
handles all the plumbing
Recommendation Engine
GraphAware
TM
Engine per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled into higher-level engines
Design Decisions
GraphAware
TM
Example
IS_OF_GENRE
title:
“Love Actually”
Movie
name: “Bob”
User
name:
“Comedy”
Genre
RATED
rating: 5
name: “Alice”
User
name:
“Romance”
Genre
title:
“American Pie”
Movie
IS_OF_GENRE
IS_OF_GENRE
RATEDrating: 5
INTERESTED_IN
rating: 5
RATED
GraphAware
TM
Engine per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled to higher-level engines
Items discovered multiple times are more relevant
Relevance depends on how was item discovered
Design Decision
GraphAware
TM
Example
IS_OF_GENRE
title:
“Love Actually”
Movie
name: “Bob”
User
name:
“Comedy”
Genre
RATED
rating: 5
name: “Alice”
User
name:
“Romance”
Genre
title:
“American Pie”
Movie
IS_OF_GENRE
IS_OF_GENRE
RATEDrating: 5
INTERESTED_IN
rating: 5
RATED
GraphAware
TM
Engine per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled to higher-level engines
Items discovered multiple times are more relevant
Relevance depends on how was item discovered
Items not to be recommended: “cross-cutting”
concern
Design Decisions
GraphAware
TM
Example
IS_OF_GENRE
title:
“Love Actually”
Movie
name: “Bob”
User
name:
“Comedy”
Genre
RATED
rating: 5
name: “Alice”
User
name:
“Romance”
Genre
title:
“American Pie”
Movie
IS_OF_GENRE
IS_OF_GENRE
RATEDrating: 5
INTERESTED_IN
rating: 5
RATED
GraphAware
TM
Input -> Engine -> Recommendations
Scores and Score Transformers
Blacklists
Filters
Post-processors
Context (how many, how fast,…?)
Loggers
Architecture
GraphAware
TM
In 5 minutes, we’ll build a simple engine that
recommends who you should be friends with.
Let’s Build Something
GraphAware
TM
0) Model
GraphAware
TM
1) Discover
GraphAware
TM
public class FriendsInCommon extends SomethingInCommon {



@Override

public String name() {

return "friendsInCommon";

}



@Override

protected RelationshipType getType() {

return FRIEND_OF;

}



@Override

protected Direction getDirection() {

return BOTH;

}

}
GraphAware
TM
2) Score
GraphAware
TM
public class FriendsInCommon extends SomethingInCommon {

@Override

protected ScoreTransformer scoreTransformer() {

return new ParetoScoreTransformer(100, 10);

}



@Override

public String name() {

return "friendsInCommon";

}



@Override

protected RelationshipType getType() {

return FRIEND_OF;

}



@Override

protected Direction getDirection() {

return BOTH;

}

}
GraphAware
TM
3) Post-Process
GraphAware
TM
public class RewardSameLocation extends RewardSomethingShared {



@Override

protected RelationshipType type() {

return LIVES_IN;

}



@Override

protected Direction direction() {

return OUTGOING;

}



@Override

protected float scoreValue(Node reco, Node in, Node shared) {

return 10;

}



@Override

protected String scoreName() {

return "sameLocation";

}

}
GraphAware
TM
public class RewardSameLabels implements PostProcessor<Node, Node> {



@Override

public void postProcess(Recommendations<Node> out, Node in) {

Label[] inLabels = toArray(in.getLabels());



for (Recommendation<Node> reco : out.get()) {

if (Arrays.equals(inLabels, toArray(reco.getItem().getLabels()))) {

reco.add("sameGender", 10);

}

}

}

}
GraphAware
TM
4) Filter
GraphAware
TM
public final class FriendsContextFactory extends Neo4jContextFactory {



@Override

protected List<BlacklistBuilder<Node, Node>> blacklistBuilders() {

return asList(

new ExcludeSelf(),

new ExistingRelationshipBlacklistBuilder(FRIEND_OF, BOTH)

);

}



@Override

protected List<Filter<Node, Node>> filters() {

return asList(

new ExcludeSelf()

);

}

}
GraphAware
TM
5) Assemble
GraphAware
TM
public final class FriendsComputingEngine extends Neo4jTopLevelDelegatingEngine {



public FriendsComputingEngine() {

super(new FriendsContextFactory());

}



@Override

protected List<RecommendationEngine<Node, Node>> engines() {

return asList(

new FriendsInCommon(),

new RandomPeople()

);

}



@Override

protected List<PostProcessor<Node, Node>> postProcessors() {

return asList(

new RewardSameLabels(),

new RewardSameLocation(),

new PenalizeAgeDifference()

);

}

}
GraphAware
TM
?) Precompute
GraphAware
TM
public final class FriendsComputingEngine extends Neo4jTopLevelDelegatingEngine {



public FriendsComputingEngine() {

super(new FriendsContextFactory());

}



@Override

protected List<RecommendationEngine<Node, Node>> engines() {

return asList(

new FriendsInCommon(),

new RandomPeople()

);

}



@Override

protected List<PostProcessor<Node, Node>> postProcessors() {

return asList(

new RewardSameLabels(),

new RewardSameLocation(),

new PenalizeAgeDifference()

);

}



@Override

public ParticipationPolicy<Node, Node> participationPolicy(Context<Node, Node> context) {

return ParticipationPolicy.IF_MORE_RESULTS_NEEDED;

}

}
GraphAware
TM
public final class FriendsRecoEngine extends Neo4jTopLevelDelegatingEngine {



public FriendsRecommendationEngine() {

super(new FriendsContextFactory());

}



@Override

protected List<RecommendationEngine<Node, Node>> engines() {

return asList(

new Neo4jPrecomputedEngine(),

new FriendsComputingEngine()

);

}

}
GraphAware
TM
6) Log
GraphAware
TM
public final class FriendsRecoEngine extends Neo4jTopLevelDelegatingEngine {



public FriendsRecommendationEngine() {

super(new FriendsContextFactory());

}



@Override

protected List<RecommendationEngine<Node, Node>> engines() {

return asList(

new Neo4jPrecomputedEngine(),

new FriendsComputingEngine()

);

}



@Override

protected List<Logger<Node, Node>> loggers() {

return asList( 

new Slf4jRecommendationLogger<Node, Node>(),

new Slf4jStatisticsLogger<Node, Node>()

);

}

}
GraphAware
TM
7) Test
GraphAware
TM
List<Recommendation<Node>> reco =

recommendationEngine.recommend(getPersonByName("Adam"), Mode.REAL_TIME, 2);



String expected = 

"(Vince {total:19.338144," +

"ageDifference:-5.527864," +

"friendsInCommon:14.866008," +

"sameGender:10.0})," +



"(Luanne {total:11.553411," +

"ageDifference:-3.312597," +

"friendsInCommon:14.866008})";



assertEquals(expected, toString(reco));
GraphAware
TM
List<Recommendation<Node>> reco =
recommendationEngine.recommend(getPersonByName("Luanne"), REAL_TIME, 4);



assertEquals("Daniela", reco.get(0).getItem().getProperty("name"));

assertEquals(22, reco.get(0).getScore().getTotalScore(), 0.5);



assertEquals("Adam", reco.get(1).getItem().getProperty("name"));

assertEquals(12, reco.get(1).getScore().getTotalScore(), 0.5);



assertEquals("Vince", reco.get(2).getItem().getProperty("name"));

assertEquals(8, reco.get(2).getScore().getTotalScore(), 0.5);



assertEquals("Bob", reco.get(3).getItem().getProperty("name"));

assertEquals(-9, reco.get(3).getScore().getTotalScore(), 0.5);
GraphAware
TM
Finding things to recommend
Serving the most relevant recommendations
Measuring the quality of recommendations
Time to market / cost of development
Business Challenges
GraphAware
TM
Performance (real-time!)
Simplicity
Flexibility
Technical Challenges
GraphAware
TM
Getting Started
<dependencies>
...
<dependency>

<groupId>com.graphaware.neo4j</groupId>

<artifactId>recommendation-engine</artifactId>
<version>2.1.6.27.2</version>

</dependency>
...
<dependencies>
GraphAware
TM
Built-in ability to pre-compute recommendations
Other built-in base-classes
But we need your help!
https://github.com/graphaware/neo4j-reco
There’s More!
GraphAware
TM
Built-in algorithms
Time-based ParticipationPolicy
Integration with compute engines
Machine learning
Future
GraphAware
TM
GraphAware Framework makes it easy to build,
test, and deploy generic as well as domain-
specific functionality for Neo4j.
GraphAware Framework
GraphAware
TM
GraphUnit

& RestTest
RelCount WarmUp Schema (wip)
Recommendation
Engine
GraphAware Framework
ChangeFeed UUID TimeTree Algorithms NodeRank
GraphAware
TM
Open Source (GPL)
Active
Production Ready
Github: github.com/graphaware
Our Web: graphaware.com
Maven Central
GraphAware Framework
GraphAware
TM
Try it
Give us feedback
Contribute
Build your own modules
Get in touch for support / consultancy
GraphAware Framework
GraphAware
TM
GraphAware Events
31

Jan
Recommendation
Engines in Brussels
(FOSDEM)
31

Jan
GraphGen in Brussels
(FOSDEM)
5

Feb
Recommendation
Engines Webinar
5

Feb
Meetup at GraphAware
(build your own
Recommendation Engine)
10

Feb
Neo4j Fundamentals in
Manchester
10

Feb
Neo4j Meetup in
Manchester
17

Feb
Neo4j Fundamentals in
Edinburgh
17

Feb
Neo4j Meetup in
Edinburgh
GraphAware
TM
GraphConnect Europe 2015
When:
Where:
Tickets:
Call for Papers:
Sponsors:
Thursday, 7th May, 2015 - main Conference Day
Wednesday, 6th May 2015 - Training Day
Etc venues, 155 Bishopsgate, London
(next to Liverpool Street Station)
now available on www.graphconnect.com
199$ early bird plus 100$ for training
499$ full price plus 100$ for training
open now till 29th January
all Neo4j community members, customers or
general graph enthusiasts are invited to submit their talk
open now till 29th January, email:
gceurope@neotechnology.com
graphaware.com
@graph_aware
Thank You!
GraphAware
TM

More Related Content

Similar to Recommendations with Neo4j (FOSDEM 2015)

GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)Rob Crowley
 
Groovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovGroovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovVuqar Suleymanov
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGuillaume Laforge
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...Neo4j
 
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac..."Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...Fwdays
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Andres Almiray
 
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4alexsaves
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDmitry Vinnik
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Guillaume Laforge
 
Agile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansAgile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansCarol McDonald
 
Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)jaxLondonConference
 
Word embeddings as a service - PyData NYC 2015
Word embeddings as a service -  PyData NYC 2015Word embeddings as a service -  PyData NYC 2015
Word embeddings as a service - PyData NYC 2015François Scharffe
 

Similar to Recommendations with Neo4j (FOSDEM 2015) (20)

Play á la Rails
Play á la RailsPlay á la Rails
Play á la Rails
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
 
Grails
GrailsGrails
Grails
 
Grails
GrailsGrails
Grails
 
Groovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovGroovy on Grails by Ziya Askerov
Groovy on Grails by Ziya Askerov
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...
GraphConnect Europe 2016 - Building Spring Data Neo4j 4.1 Applications Like A...
 
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac..."Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010
 
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
Agile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansAgile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with Netbeans
 
Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)
 
Word embeddings as a service - PyData NYC 2015
Word embeddings as a service -  PyData NYC 2015Word embeddings as a service -  PyData NYC 2015
Word embeddings as a service - PyData NYC 2015
 

More from GraphAware

Unparalleled Graph Database Scalability Delivered by Neo4j 4.0
Unparalleled Graph Database Scalability Delivered by Neo4j 4.0Unparalleled Graph Database Scalability Delivered by Neo4j 4.0
Unparalleled Graph Database Scalability Delivered by Neo4j 4.0GraphAware
 
Challenges in knowledge graph visualization
Challenges in knowledge graph visualizationChallenges in knowledge graph visualization
Challenges in knowledge graph visualizationGraphAware
 
Social media monitoring with ML-powered Knowledge Graph
Social media monitoring with ML-powered Knowledge GraphSocial media monitoring with ML-powered Knowledge Graph
Social media monitoring with ML-powered Knowledge GraphGraphAware
 
To be or not to be.
To be or not to be. To be or not to be.
To be or not to be. GraphAware
 
It Depends (and why it's the most frequent answer to modelling questions)
It Depends (and why it's the most frequent answer to modelling questions)It Depends (and why it's the most frequent answer to modelling questions)
It Depends (and why it's the most frequent answer to modelling questions)GraphAware
 
How Boston Scientific Improves Manufacturing Quality Using Graph Analytics
How Boston Scientific Improves Manufacturing Quality Using Graph AnalyticsHow Boston Scientific Improves Manufacturing Quality Using Graph Analytics
How Boston Scientific Improves Manufacturing Quality Using Graph AnalyticsGraphAware
 
When privacy matters! Chatbots in data-sensitive businesses
When privacy matters! Chatbots in data-sensitive businessesWhen privacy matters! Chatbots in data-sensitive businesses
When privacy matters! Chatbots in data-sensitive businessesGraphAware
 
Graph-Powered Machine Learning
Graph-Powered Machine LearningGraph-Powered Machine Learning
Graph-Powered Machine LearningGraphAware
 
Signals from outer space
Signals from outer spaceSignals from outer space
Signals from outer spaceGraphAware
 
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jGraphAware
 
Graph-Powered Machine Learning
Graph-Powered Machine Learning Graph-Powered Machine Learning
Graph-Powered Machine Learning GraphAware
 
(Big) Data Science
 (Big) Data Science (Big) Data Science
(Big) Data ScienceGraphAware
 
Modelling Data in Neo4j (plus a few tips)
Modelling Data in Neo4j (plus a few tips)Modelling Data in Neo4j (plus a few tips)
Modelling Data in Neo4j (plus a few tips)GraphAware
 
Intro to Neo4j (CZ)
Intro to Neo4j (CZ)Intro to Neo4j (CZ)
Intro to Neo4j (CZ)GraphAware
 
Modelling Data as Graphs (Neo4j)
Modelling Data as Graphs (Neo4j)Modelling Data as Graphs (Neo4j)
Modelling Data as Graphs (Neo4j)GraphAware
 
GraphAware Framework Intro
GraphAware Framework IntroGraphAware Framework Intro
GraphAware Framework IntroGraphAware
 
Advanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkAdvanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkGraphAware
 
Machine Learning Powered by Graphs - Alessandro Negro
Machine Learning Powered by Graphs - Alessandro NegroMachine Learning Powered by Graphs - Alessandro Negro
Machine Learning Powered by Graphs - Alessandro NegroGraphAware
 
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe Willemsen
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe WillemsenKnowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe Willemsen
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe WillemsenGraphAware
 
The power of polyglot searching
The power of polyglot searchingThe power of polyglot searching
The power of polyglot searchingGraphAware
 

More from GraphAware (20)

Unparalleled Graph Database Scalability Delivered by Neo4j 4.0
Unparalleled Graph Database Scalability Delivered by Neo4j 4.0Unparalleled Graph Database Scalability Delivered by Neo4j 4.0
Unparalleled Graph Database Scalability Delivered by Neo4j 4.0
 
Challenges in knowledge graph visualization
Challenges in knowledge graph visualizationChallenges in knowledge graph visualization
Challenges in knowledge graph visualization
 
Social media monitoring with ML-powered Knowledge Graph
Social media monitoring with ML-powered Knowledge GraphSocial media monitoring with ML-powered Knowledge Graph
Social media monitoring with ML-powered Knowledge Graph
 
To be or not to be.
To be or not to be. To be or not to be.
To be or not to be.
 
It Depends (and why it's the most frequent answer to modelling questions)
It Depends (and why it's the most frequent answer to modelling questions)It Depends (and why it's the most frequent answer to modelling questions)
It Depends (and why it's the most frequent answer to modelling questions)
 
How Boston Scientific Improves Manufacturing Quality Using Graph Analytics
How Boston Scientific Improves Manufacturing Quality Using Graph AnalyticsHow Boston Scientific Improves Manufacturing Quality Using Graph Analytics
How Boston Scientific Improves Manufacturing Quality Using Graph Analytics
 
When privacy matters! Chatbots in data-sensitive businesses
When privacy matters! Chatbots in data-sensitive businessesWhen privacy matters! Chatbots in data-sensitive businesses
When privacy matters! Chatbots in data-sensitive businesses
 
Graph-Powered Machine Learning
Graph-Powered Machine LearningGraph-Powered Machine Learning
Graph-Powered Machine Learning
 
Signals from outer space
Signals from outer spaceSignals from outer space
Signals from outer space
 
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
 
Graph-Powered Machine Learning
Graph-Powered Machine Learning Graph-Powered Machine Learning
Graph-Powered Machine Learning
 
(Big) Data Science
 (Big) Data Science (Big) Data Science
(Big) Data Science
 
Modelling Data in Neo4j (plus a few tips)
Modelling Data in Neo4j (plus a few tips)Modelling Data in Neo4j (plus a few tips)
Modelling Data in Neo4j (plus a few tips)
 
Intro to Neo4j (CZ)
Intro to Neo4j (CZ)Intro to Neo4j (CZ)
Intro to Neo4j (CZ)
 
Modelling Data as Graphs (Neo4j)
Modelling Data as Graphs (Neo4j)Modelling Data as Graphs (Neo4j)
Modelling Data as Graphs (Neo4j)
 
GraphAware Framework Intro
GraphAware Framework IntroGraphAware Framework Intro
GraphAware Framework Intro
 
Advanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkAdvanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware Framework
 
Machine Learning Powered by Graphs - Alessandro Negro
Machine Learning Powered by Graphs - Alessandro NegroMachine Learning Powered by Graphs - Alessandro Negro
Machine Learning Powered by Graphs - Alessandro Negro
 
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe Willemsen
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe WillemsenKnowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe Willemsen
Knowledge Graphs and Chatbots with Neo4j and IBM Watson - Christophe Willemsen
 
The power of polyglot searching
The power of polyglot searchingThe power of polyglot searching
The power of polyglot searching
 

Recently uploaded

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Recommendations with Neo4j (FOSDEM 2015)