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
Log in or sign up for Devpost to join the conversation.