SlideShare a Scribd company logo
Graph Based Machine
Learning on Relational Data
Problems and Methods
Machine Learning using Graphs
Machine Learning using Graphs
- Machine Learning is iterative but iteration
can also be seen as traversal.
Machine Learning using Graphs
- Machine Learning is iterative but iteration
can also be seen as traversal.
- Many domains have structures already
modeled as graphs (health records, finance)
Machine Learning using Graphs
- Machine Learning is iterative but iteration
can also be seen as traversal.
- Many domains have structures already
modeled as graphs (health records, finance)
- Important analyses are graph algorithms:
clusters, influence propagation, centrality.
Machine Learning using Graphs
- Machine Learning is iterative but iteration
can also be seen as traversal.
- Many domains have structures already
modeled as graphs (health records, finance)
- Important analyses are graph algorithms:
clusters, influence propagation, centrality.
- Performance benefits on sparse data
Machine Learning using Graphs
- Machine Learning is iterative but iteration
can also be seen as traversal.
- Many domains have structures already
modeled as graphs (health records, finance)
- Important analyses are graph algorithms:
clusters, influence propagation, centrality.
- Performance benefits on sparse data
- More understandable implementation
Iterative PageRank in Python
def pageRank(G, s = .85, maxerr = .001):
n = G.shape[0]
# transform G into markov matrix M
M = csc_matrix(G,dtype=np.float)
rsums = np.array(M.sum(1))[:,0]
ri, ci = M.nonzero()
M.data /= rsums[ri]
sink = rsums==0 # bool array of sink states
# Compute pagerank r until we converge
ro, r = np.zeros(n), np.ones(n)
while np.sum(np.abs(r-ro)) > maxerr:
ro = r.copy()
for i in xrange(0,n):
Ii = np.array(M[:,i].todense())[:,0] # inlinks of state i
Si = sink / float(n) # account for sink states
Ti = np.ones(n) / float(n) # account for teleportation
r[i] = ro.dot( Ii*s + Si*s + Ti*(1-s) )
return r/sum(r) # return normalized pagerank
Graph-Based PageRank in Gremlin
pagerank = [:].withDefault{0}
size = uris.size();
uris.each{
count = it.outE.count();
if(count == 0 || rand.nextDouble() > 0.85) {
rank = pagerank[it]
uris.each {
pagerank[it] = pagerank[it] / uris.size()
}
}
rank = pagerank[it] / it.outE.count();
it.out.each{
pagerank[it] = pagerank[it] + rank;
}
}
Learning by Example
- Machine Learning requires many instances with
which to fit a model to make predictions.
Learning by Example
- Machine Learning requires many instances with
which to fit a model to make predictions.
- Current large scale analytical methods (Pregel,
Giraph, GraphLab) are in-memory without data
storage components.
Learning by Example
- Machine Learning requires many instances with
which to fit a model to make predictions.
- Current large scale analytical methods (Pregel,
Giraph, GraphLab) are in-memory with data
storage components
- And while Neo4j, OrientDB, and Titan are ok...
Learning by Example
- Machine Learning requires many instances with
which to fit a model to make predictions.
- Current large scale analytical methods (Pregel,
Giraph, GraphLab) are in-memory with data
storage components
- And while Neo4j, OrientDB, and Titan are ok...
- Most (active) data sits in relational databases
where users interact with it in real time via
transactions in web applications.
Is it because relational data is a legacy system we must support?
Is it purely because of inertia?
NO! It’s because Relational Data is awesome!
Awesome sauce relational data of the future.
- Ability to express queries/algorithms using a
declarative, graph-domain specific language
like SQL, or at the very least via UDFs.
Requirements
Requirements
- Ability to express queries/algorithms using a
declarative, graph-domain specific language
like SQL, or at the very least via UDFs.
- Ability to explore and identify hidden or
implicit graphs in the database.
Requirements
- Ability to express queries/algorithms using a
declarative, graph-domain specific language
like SQL, or at the very least via UDFs.
- Ability to explore and identify hidden or
implicit graphs in the database.
- Combine in-memory analytics with some
disk storage facility that is transactional.
Approach 1: ETL Methods
t = 0 t > 0
extract
transform
load
synchronize
analyze
Approach 1: ETL Methods
The Good
- Processing is not physical layer dependent
- Relational data storage with real time interaction
- Analytics can scale in size to Hadoop or in speed to in-
memory computation frameworks.
The Bad
- Must know structure of graph in relational database
ahead of time, no exploration.
- Synchronization can cause inconsistency.
- OLAP processes incur resource penalty (I/O or CPU
depending on location).
Approach 1: ETL Methods
The Good
- Processing is not physical layer dependent
- Relational data storage with real time interaction
- Analytics can scale in size to Hadoop or in speed to in-
memory computation frameworks.
The Bad
- Must know structure of graph in relational database
ahead of time, no exploration.
- Synchronization can cause inconsistency.
- OLAP processes incur resource penalty (I/O or CPU
depending on location).
Approach 2: Store Graph in RDBMS
Approach 2: Store Graph in RDBMS
The Good
- Can utilize relational devices like indices and parallel
joins for graph-specific queries on existing data.
- Simply use SQL for the data access mechanism.
- Transactional storage of the data.
The Bad
- Constrained to graph-specific schema.
- Many joins required for traversal.
- Depending on storage mechanisms there may be too
few or too many tables in the database for applications.
- Must convert existing database to this structure.
Approach 2: Store Graph in RDBMS
The Good
- Can utilize relational devices like indices and parallel
joins for graph-specific queries on existing data.
- Simply use SQL for the data access mechanism.
- Transactional storage of the data.
The Bad
- Constrained to graph-specific schema.
- Many joins required for traversal.
- Depending on storage mechanisms there may be too
few or too many tables in the database for applications.
- Must convert existing database to this structure.
Approach 3: Use Graph Query Language
API
Optimizer
Query Result
Query Translator
SQL Queries
Final SQL
Queries
Graph DSL Query
Approach 3: Use Graph Query Language
The Good
- DSL in the graph domain that easily expresses graph
analytics but also relational semantics.
- Can use existing relational schemas; allows for
exploration and identification of graphs.
- Computation is offloaded into in-memory processing
The Bad
- Many graphs or big graphs can cause too many joins
without optimal query translation.
- User is required to facilitate definition of relational
structure into a graph representation.
- May not leverage relational resources.
Approach 3: Use Graph Query Language
The Good
- DSL in the graph domain that easily expresses graph
analytics but also relational semantics.
- Can use existing relational schemas; allows for
exploration and identification of graphs.
- Computation is offloaded into in-memory processing
The Bad
- Many graphs or big graphs can cause too many joins
without optimal query translation.
- User is required to facilitate definition of relational
structure into a graph representation.
- May not leverage relational resources.
Any Questions?
Thank you!
Presented By:
Konstantinos Xirogiannopoulos <kostasx@cs.umd.edu>
Benjamin Bengfort <bengfort@cs.umd.edu>
May 7, 2015

More Related Content

What's hot (20)

PPTX
Machine Learning and Apache Mahout : An Introduction
Varad Meru
 
PDF
Introduction to Machine Learning with Spark
datamantra
 
PDF
Better {ML} Together: GraphLab Create + Spark
Turi, Inc.
 
PDF
SDEC2011 Mahout - the what, the how and the why
Korea Sdec
 
PDF
Large-Scale Machine Learning with Apache Spark
DB Tsai
 
PDF
Distributed machine learning 101 using apache spark from a browser devoxx.b...
Andy Petrella
 
PPTX
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
Jose Quesada (hiring)
 
PPTX
Ferruzza g automl deck
Eric Dill
 
PDF
Pivotal Data Labs - Technology and Tools in our Data Scientist's Arsenal
Srivatsan Ramanujam
 
PDF
Recent Developments in Spark MLlib and Beyond
DataWorks Summit
 
PPTX
Machine Learning With Spark
Shivaji Dutta
 
PPTX
Recommendation Engine Powered by Hadoop
Pranab Ghosh
 
PPTX
A Beginner's Guide to Machine Learning with Scikit-Learn
Sarah Guido
 
PPTX
From keyword-based search to language-agnostic semantic search
CareerBuilder.com
 
PDF
Deep learning and Apache Spark
QuantUniversity
 
PPTX
Large Scale Machine learning with Spark
Md. Mahedi Kaysar
 
PPTX
Hundreds of queries in the time of one - Gianmario Spacagna
Spark Summit
 
PPTX
Towards a Comprehensive Machine Learning Benchmark
Turi, Inc.
 
PPT
Download It
butest
 
PDF
Mahout
Edureka!
 
Machine Learning and Apache Mahout : An Introduction
Varad Meru
 
Introduction to Machine Learning with Spark
datamantra
 
Better {ML} Together: GraphLab Create + Spark
Turi, Inc.
 
SDEC2011 Mahout - the what, the how and the why
Korea Sdec
 
Large-Scale Machine Learning with Apache Spark
DB Tsai
 
Distributed machine learning 101 using apache spark from a browser devoxx.b...
Andy Petrella
 
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
Jose Quesada (hiring)
 
Ferruzza g automl deck
Eric Dill
 
Pivotal Data Labs - Technology and Tools in our Data Scientist's Arsenal
Srivatsan Ramanujam
 
Recent Developments in Spark MLlib and Beyond
DataWorks Summit
 
Machine Learning With Spark
Shivaji Dutta
 
Recommendation Engine Powered by Hadoop
Pranab Ghosh
 
A Beginner's Guide to Machine Learning with Scikit-Learn
Sarah Guido
 
From keyword-based search to language-agnostic semantic search
CareerBuilder.com
 
Deep learning and Apache Spark
QuantUniversity
 
Large Scale Machine learning with Spark
Md. Mahedi Kaysar
 
Hundreds of queries in the time of one - Gianmario Spacagna
Spark Summit
 
Towards a Comprehensive Machine Learning Benchmark
Turi, Inc.
 
Download It
butest
 
Mahout
Edureka!
 

Similar to Graph Based Machine Learning on Relational Data (20)

PPTX
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
 
PPTX
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
 
PPTX
Follow the money with graphs
Stanka Dalekova
 
PDF
Graphing Grifters: Identify & Display Patterns of Corruption With Oracle Graph
Jim Czuprynski
 
PDF
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
MLconf
 
PDF
Big dataintegration rahm-part3Scalable and privacy-preserving data integratio...
ErhardRahm
 
PDF
Graph Analytics in Spark
Paco Nathan
 
PDF
GraphX: Graph analytics for insights about developer communities
Paco Nathan
 
PDF
Advanced Analytics: Graph Database Use Cases
DATAVERSITY
 
PPTX
Large Graph Mining
Sabri Skhiri
 
PDF
Graph analytic and machine learning
Stanley Wang
 
PDF
A Survey on Graph Database Management Techniques for Huge Unstructured Data
IJECEIAES
 
PDF
How Graph Databases used in Police Department?
Samet KILICTAS
 
PDF
Keynote: Anything is Possible: Apply Graphs to Your Most Complex Data Problem...
Neo4j
 
PDF
IRJET- Recommendation System based on Graph Database Techniques
IRJET Journal
 
PDF
Fraud Detection in Financial Services using Graph Analysis and Machine Learning
Thomas Teske
 
PDF
Data Modeling with Neo4j
Neo4j
 
PDF
What Makes Graph Queries Difficult?
Gábor Szárnyas
 
PDF
Graph Analysis over Relational Database. Roberto Franchini - Arcade Analytics
Data Driven Innovation
 
PPTX
Graph Database Query Languages
Jay Coskey
 
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
 
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
 
Follow the money with graphs
Stanka Dalekova
 
Graphing Grifters: Identify & Display Patterns of Corruption With Oracle Graph
Jim Czuprynski
 
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
MLconf
 
Big dataintegration rahm-part3Scalable and privacy-preserving data integratio...
ErhardRahm
 
Graph Analytics in Spark
Paco Nathan
 
GraphX: Graph analytics for insights about developer communities
Paco Nathan
 
Advanced Analytics: Graph Database Use Cases
DATAVERSITY
 
Large Graph Mining
Sabri Skhiri
 
Graph analytic and machine learning
Stanley Wang
 
A Survey on Graph Database Management Techniques for Huge Unstructured Data
IJECEIAES
 
How Graph Databases used in Police Department?
Samet KILICTAS
 
Keynote: Anything is Possible: Apply Graphs to Your Most Complex Data Problem...
Neo4j
 
IRJET- Recommendation System based on Graph Database Techniques
IRJET Journal
 
Fraud Detection in Financial Services using Graph Analysis and Machine Learning
Thomas Teske
 
Data Modeling with Neo4j
Neo4j
 
What Makes Graph Queries Difficult?
Gábor Szárnyas
 
Graph Analysis over Relational Database. Roberto Franchini - Arcade Analytics
Data Driven Innovation
 
Graph Database Query Languages
Jay Coskey
 
Ad

More from Benjamin Bengfort (20)

PDF
Privacy and Security in the Age of Generative AI - C4AI.pdf
Benjamin Bengfort
 
PDF
Implementing Function Calling LLMs without Fear.pdf
Benjamin Bengfort
 
PDF
Privacy and Security in the Age of Generative AI
Benjamin Bengfort
 
PDF
Digitocracy without Borders: the unifying and destabilizing effects of softwa...
Benjamin Bengfort
 
PDF
Getting Started with TRISA
Benjamin Bengfort
 
PDF
Dynamics in graph analysis (PyData Carolinas 2016)
Benjamin Bengfort
 
PDF
Visualizing the Model Selection Process
Benjamin Bengfort
 
PDF
Data Product Architectures
Benjamin Bengfort
 
PDF
A Primer on Entity Resolution
Benjamin Bengfort
 
PDF
An Interactive Visual Analytics Dashboard for the Employment Situation Report
Benjamin Bengfort
 
PDF
Introduction to Machine Learning with SciKit-Learn
Benjamin Bengfort
 
PDF
Fast Data Analytics with Spark and Python
Benjamin Bengfort
 
PDF
Evolutionary Design of Swarms (SSCI 2014)
Benjamin Bengfort
 
PDF
An Overview of Spanner: Google's Globally Distributed Database
Benjamin Bengfort
 
PDF
Graph Analyses with Python and NetworkX
Benjamin Bengfort
 
PDF
Natural Language Processing with Python
Benjamin Bengfort
 
PDF
Beginners Guide to Non-Negative Matrix Factorization
Benjamin Bengfort
 
PDF
Annotation with Redfox
Benjamin Bengfort
 
PDF
Rasta processing of speech
Benjamin Bengfort
 
PDF
Building Data Apps with Python
Benjamin Bengfort
 
Privacy and Security in the Age of Generative AI - C4AI.pdf
Benjamin Bengfort
 
Implementing Function Calling LLMs without Fear.pdf
Benjamin Bengfort
 
Privacy and Security in the Age of Generative AI
Benjamin Bengfort
 
Digitocracy without Borders: the unifying and destabilizing effects of softwa...
Benjamin Bengfort
 
Getting Started with TRISA
Benjamin Bengfort
 
Dynamics in graph analysis (PyData Carolinas 2016)
Benjamin Bengfort
 
Visualizing the Model Selection Process
Benjamin Bengfort
 
Data Product Architectures
Benjamin Bengfort
 
A Primer on Entity Resolution
Benjamin Bengfort
 
An Interactive Visual Analytics Dashboard for the Employment Situation Report
Benjamin Bengfort
 
Introduction to Machine Learning with SciKit-Learn
Benjamin Bengfort
 
Fast Data Analytics with Spark and Python
Benjamin Bengfort
 
Evolutionary Design of Swarms (SSCI 2014)
Benjamin Bengfort
 
An Overview of Spanner: Google's Globally Distributed Database
Benjamin Bengfort
 
Graph Analyses with Python and NetworkX
Benjamin Bengfort
 
Natural Language Processing with Python
Benjamin Bengfort
 
Beginners Guide to Non-Negative Matrix Factorization
Benjamin Bengfort
 
Annotation with Redfox
Benjamin Bengfort
 
Rasta processing of speech
Benjamin Bengfort
 
Building Data Apps with Python
Benjamin Bengfort
 
Ad

Recently uploaded (20)

PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PDF
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Top Managed Service Providers in Los Angeles
Captain IT
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Français Patch Tuesday - Juillet
Ivanti
 
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 

Graph Based Machine Learning on Relational Data

  • 1. Graph Based Machine Learning on Relational Data Problems and Methods
  • 3. Machine Learning using Graphs - Machine Learning is iterative but iteration can also be seen as traversal.
  • 4. Machine Learning using Graphs - Machine Learning is iterative but iteration can also be seen as traversal. - Many domains have structures already modeled as graphs (health records, finance)
  • 5. Machine Learning using Graphs - Machine Learning is iterative but iteration can also be seen as traversal. - Many domains have structures already modeled as graphs (health records, finance) - Important analyses are graph algorithms: clusters, influence propagation, centrality.
  • 6. Machine Learning using Graphs - Machine Learning is iterative but iteration can also be seen as traversal. - Many domains have structures already modeled as graphs (health records, finance) - Important analyses are graph algorithms: clusters, influence propagation, centrality. - Performance benefits on sparse data
  • 7. Machine Learning using Graphs - Machine Learning is iterative but iteration can also be seen as traversal. - Many domains have structures already modeled as graphs (health records, finance) - Important analyses are graph algorithms: clusters, influence propagation, centrality. - Performance benefits on sparse data - More understandable implementation
  • 8. Iterative PageRank in Python def pageRank(G, s = .85, maxerr = .001): n = G.shape[0] # transform G into markov matrix M M = csc_matrix(G,dtype=np.float) rsums = np.array(M.sum(1))[:,0] ri, ci = M.nonzero() M.data /= rsums[ri] sink = rsums==0 # bool array of sink states # Compute pagerank r until we converge ro, r = np.zeros(n), np.ones(n) while np.sum(np.abs(r-ro)) > maxerr: ro = r.copy() for i in xrange(0,n): Ii = np.array(M[:,i].todense())[:,0] # inlinks of state i Si = sink / float(n) # account for sink states Ti = np.ones(n) / float(n) # account for teleportation r[i] = ro.dot( Ii*s + Si*s + Ti*(1-s) ) return r/sum(r) # return normalized pagerank
  • 9. Graph-Based PageRank in Gremlin pagerank = [:].withDefault{0} size = uris.size(); uris.each{ count = it.outE.count(); if(count == 0 || rand.nextDouble() > 0.85) { rank = pagerank[it] uris.each { pagerank[it] = pagerank[it] / uris.size() } } rank = pagerank[it] / it.outE.count(); it.out.each{ pagerank[it] = pagerank[it] + rank; } }
  • 10. Learning by Example - Machine Learning requires many instances with which to fit a model to make predictions.
  • 11. Learning by Example - Machine Learning requires many instances with which to fit a model to make predictions. - Current large scale analytical methods (Pregel, Giraph, GraphLab) are in-memory without data storage components.
  • 12. Learning by Example - Machine Learning requires many instances with which to fit a model to make predictions. - Current large scale analytical methods (Pregel, Giraph, GraphLab) are in-memory with data storage components - And while Neo4j, OrientDB, and Titan are ok...
  • 13. Learning by Example - Machine Learning requires many instances with which to fit a model to make predictions. - Current large scale analytical methods (Pregel, Giraph, GraphLab) are in-memory with data storage components - And while Neo4j, OrientDB, and Titan are ok... - Most (active) data sits in relational databases where users interact with it in real time via transactions in web applications.
  • 14. Is it because relational data is a legacy system we must support? Is it purely because of inertia?
  • 15. NO! It’s because Relational Data is awesome! Awesome sauce relational data of the future.
  • 16. - Ability to express queries/algorithms using a declarative, graph-domain specific language like SQL, or at the very least via UDFs. Requirements
  • 17. Requirements - Ability to express queries/algorithms using a declarative, graph-domain specific language like SQL, or at the very least via UDFs. - Ability to explore and identify hidden or implicit graphs in the database.
  • 18. Requirements - Ability to express queries/algorithms using a declarative, graph-domain specific language like SQL, or at the very least via UDFs. - Ability to explore and identify hidden or implicit graphs in the database. - Combine in-memory analytics with some disk storage facility that is transactional.
  • 19. Approach 1: ETL Methods t = 0 t > 0 extract transform load synchronize analyze
  • 20. Approach 1: ETL Methods The Good - Processing is not physical layer dependent - Relational data storage with real time interaction - Analytics can scale in size to Hadoop or in speed to in- memory computation frameworks. The Bad - Must know structure of graph in relational database ahead of time, no exploration. - Synchronization can cause inconsistency. - OLAP processes incur resource penalty (I/O or CPU depending on location).
  • 21. Approach 1: ETL Methods The Good - Processing is not physical layer dependent - Relational data storage with real time interaction - Analytics can scale in size to Hadoop or in speed to in- memory computation frameworks. The Bad - Must know structure of graph in relational database ahead of time, no exploration. - Synchronization can cause inconsistency. - OLAP processes incur resource penalty (I/O or CPU depending on location).
  • 22. Approach 2: Store Graph in RDBMS
  • 23. Approach 2: Store Graph in RDBMS The Good - Can utilize relational devices like indices and parallel joins for graph-specific queries on existing data. - Simply use SQL for the data access mechanism. - Transactional storage of the data. The Bad - Constrained to graph-specific schema. - Many joins required for traversal. - Depending on storage mechanisms there may be too few or too many tables in the database for applications. - Must convert existing database to this structure.
  • 24. Approach 2: Store Graph in RDBMS The Good - Can utilize relational devices like indices and parallel joins for graph-specific queries on existing data. - Simply use SQL for the data access mechanism. - Transactional storage of the data. The Bad - Constrained to graph-specific schema. - Many joins required for traversal. - Depending on storage mechanisms there may be too few or too many tables in the database for applications. - Must convert existing database to this structure.
  • 25. Approach 3: Use Graph Query Language API Optimizer Query Result Query Translator SQL Queries Final SQL Queries Graph DSL Query
  • 26. Approach 3: Use Graph Query Language The Good - DSL in the graph domain that easily expresses graph analytics but also relational semantics. - Can use existing relational schemas; allows for exploration and identification of graphs. - Computation is offloaded into in-memory processing The Bad - Many graphs or big graphs can cause too many joins without optimal query translation. - User is required to facilitate definition of relational structure into a graph representation. - May not leverage relational resources.
  • 27. Approach 3: Use Graph Query Language The Good - DSL in the graph domain that easily expresses graph analytics but also relational semantics. - Can use existing relational schemas; allows for exploration and identification of graphs. - Computation is offloaded into in-memory processing The Bad - Many graphs or big graphs can cause too many joins without optimal query translation. - User is required to facilitate definition of relational structure into a graph representation. - May not leverage relational resources.
  • 29. Thank you! Presented By: Konstantinos Xirogiannopoulos <[email protected]> Benjamin Bengfort <[email protected]> May 7, 2015

Editor's Notes

  • #2: Hi, my name is Kostas and this is Ben. Today we’re going to present the research challenges and existing methods of using graph analyses on relational data stores. [SLIDE CHANGE] Today I’d like to talk a little bit about conducting Graph Based Machine Learning on Relational Data
  • #3: As we’ve read and discussed in class - graphs are a valuable data structure, well suited for a range of non-trivial analyses and machine learning tasks. [SLIDE CHANGE] So as we’ve recently read about and talked about in class, graphs are an interesting data structure that is actually well suited not only for trivial graph analyses as well as complex machine learning tasks.
  • #4: To motivate the usage of graphs and graph oriented frameworks even further
  • #6: Analyses like finding clusters, influence propagation by means of Pagerank for example, or centrality, are in essence graph algorithms.
  • #8: But more importantly, graph, and graph specific languages and frameworks provide a substantially more comprehensible way of implementing algorithms
  • #9: https://gist.github.com/diogojc/1338222 G = np.array([[0,0,1,0,0,0,0], [0,1,1,0,0,0,0], [1,0,1,1,0,0,0], [0,0,0,1,1,0,0], [0,0,0,0,0,0,1], [0,0,0,0,0,1,1], [0,0,0,1,1,0,1]])
  • #10: https://groups.google.com/forum/#!topic/gremlin-users/LAm4mzzg8NY Expressing graph algorithms through this framework is a lot more intuitive!
  • #11: So hopefully I’ve convinced you about why we’d want to use Graphs for these types of analyses. Now we also know that Machine learning...
  • #14: Most actuve data actually sits inside relational databases , where users interact with it in real time via transactions in the web applications that we use every day
  • #15: Now why is it that we don’t move on? A rusting old jalopy in Hackberry, a small Arizona town just outside the middle of nowhere. https://flic.kr/p/dqG9Ad
  • #16: 1996 McLaren F1 GTR https://flic.kr/p/oc8gUh Awesome because : Strong semantics (durability, fault tolerance, integrity constraints) They support truly ACID Transactions They provide assurance because mature