Inspiration

I am passionate about traveling, knowledge graphs and and AI. When I found the Gowalla dataset I had an idea to combine all my interests.

What it does

  • Allows graph exploration
  • Finds popular users/places
  • Finds commonalities between users in terms of common friends or locations visited
  • Finds other places of interest (e.g. universities/restaurants/etc.) in the same area
  • Finds common clientele between places of interest
  • Provides friend recommendations
  • Provides places to visit recommendations in terms of areas/neighborhoods and points of interest

How we built it

  • Loaded and enriched Gowalla data with Nominatim and Google Search
  • Built networkx graph and persisted it into ArangoDB
  • Implemented and executed Graph Neural Network over graph
    • generated embeddings for amenity node snippets using OpenAIEmbeddings
    • for all other nodes used a vector of zeros
    • ran Message Passing algorithm for 5 timesteps (5 iterations)
    • saved learned embeddings
  • Implemented below tools
    • ArangoDB AQL tool
    • Networkx code tool
    • Amenities vector search using text query and optionally id filters
    • Similar node search using input node id, learned embeddings, and optionally include/exclude ids and node_type filter
  • Instantiated react agent with above tools
  • Created visualization agent which takes user query, agent answer and generates networkx and matplotlib code to visualize result

Challenges we ran into

  • Getting the LLM to adhere to the structure of the graph when generating AQL or networkx code.
  • Challenges with storing and processing learned embeddings - it was necessary to use sparse matrices to avoid out of memory error

Accomplishments that we're proud of

  • Effective use of other APIs to augment data
  • Implementation of the Graph Neural Networks from scratch
  • Implementation of vector search and embedding search tools
  • Prompt engineering to get the LLM to produce correct queries/execution code.

What we learned

  • About NetworkX and cuGraph
  • About ArangoDB, AQL and ArangoGraphQAChain
  • How to implement message passing GNN
  • How to describe a graph and provide relevant examples so that LLM produces correct queries/code

What's next for Gowalla Network: Location and Social Intelligence

  • Recommendations for new users
    • Allow users to add themselves to graph, who they are friends with and the locations they have visited
    • Re run GNN on new user's subgraph
    • Provide insights and recommendations for new users
  • Get user-location ratings to enhance GNN
  • Fine tune LLM to produce better AQL and networkX code
  • Fine tune LLM to produce more accurate queries/code/tool use for our specific use case/graph

Built With

  • apis
  • aql
  • arangodb
  • cugraph
  • faiss
  • gcn
  • gnn
  • langchain
  • langgraph
  • matplotlib
  • networkx
  • nominatim
  • plotly
  • rag
  • scipy
  • search
+ 4 more
Share this project:

Updates