Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Ubiquitous Graph

The Ubiquitous Graph

Big Data eXchange 2014

Tareq Abedrabbo

November 26, 2014
Tweet

More Decks by Tareq Abedrabbo

Other Decks in Technology

Transcript

  1. About me • CTO at OpenCredo • Working on graph

    applications for 4 years on a number of different projects • Co-author of Neo4j in Action (Manning)
  2. Possible evolution: - Multiple starting points - Impact on quality

    of service - Abstraction of repeatable patterns
  3. 1. Start from an initial population of candidate solutions 2.

    Assess each solution using a fitness function 3. Apply genetic operators to derive a new and potentially fitter generation 4. Rinse and repeat!
  4. 1. Start from an initial population of candidate solutions (individuals

    or phenotypes) ideally random, diverse and large 2. Attribute a score to each solution using a fitness function (the only place with specific business knowledge) 3. Apply genetic operators to create a new generation - Cross-breeding to retain best characteristics from each parent - Mutation to maintain diversity and to avoid converging to a local optima too quickly
  5. There are other genetic operators - Copy n fittest solutions

    unchanged - Carry over n unfit candidates - Carry over n randomly chosen candidates
  6. Pros: - All domain knowledge is in one place -

    Explore interesting solutions including counterintuitive ones - Tweak parameters to generate different solutions - Stop when you want
  7. Cons: - Fitness function can become really complex and slow

    - Resulting solutions are not guaranteed to be practical or pretty - Solutions can get worse as the fitness function improves - There is almost always a better solution
  8. Graph Domain-centric Data-centric Data model Well-defined Complex Data structure Flexible

    but predictable Potentially unpredictable Data sources Mostly the application Multiple external sources Design approach Top-down Bottom-up
  9. Things to do with a graph: - Traversal and pattern

    matching: Cypher - Graph algorithms: shortest path, disconnected components, graph saliency, etc... - Optimisation algorithms - Graph analytics