This project aims to realize a Recommender System that leverages the power of Graph Neural Networks (GNNs) to provide personalized recommendations for Points of Interest (POIs). By analyzing user preferences and historical data, the system can predict and suggest locations that a user is likely to be interested in. The core functionality revolves around a GNN architecture that captures the complex relationships and interactions between users and POIs.
During inference, users can input a query, and the system will process it alongside the user's historical data to generate tailored recommendations. This approach enhances the user experience by delivering highly relevant and personalized suggestions, making it easier for users to discover new and interesting places that align with their tastes and interests.
The project is designed to be flexible and scalable, accommodating various datasets and user inputs to provide robust and accurate recommendations.
To set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/Mahnz/poi_recommender.git cd poi_recommender
- Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install the required dependencies by executing the
env_setup.py
script:python ./lib/env_setup.py
To retrieve venue images from Google Street View:
- Set up your API credentials in the environment variables
STREET_VIEW_KEY
andSTREET_VIEW_SECRET
. - Run the image retrieval script:
python preprocessing/retrieve_venue_images.py
To generate descriptions for venue images:
- Place the images in the
images/
directory. - Run the description generation script:
python preprocessing/descriptions_generator.py
To encode the generated descriptions:
- Ensure the descriptions are stored in
additional_data/venues_desc.csv
. - Run the encoding script:
python preprocessing/description_encoder.py