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

The Ubiquitous Graph

The Ubiquitous Graph

Big Data eXchange 2014

Avatar for Tareq Abedrabbo

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