Skip to content

kaist-dmlab/ZeroPOIRec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZeroPOIRec : Large Language Models are Zero-shot Point-of-Interest Recommenders

ECML PKDD 2025 Journal Track - Data Mining and Knowledge Discovery

1. Overview

With the increasing emphasis on privacy preservation, there is a shift towards zero-shot recommendation approaches that prioritize individual user preferences inferred from their visit history. Recently, the ability of pre-trained large language models(LLMs) to understand human behavior has emerged as an alternative to zero-shot recommendations. Accordingly, we propose a novel zero-shot recommendation system using LLMs, called ZeroPOIRec, that involves a profiler module that enables LLMs to extract individual user preferences and a recommender module that facilitates the zero-shot POI recommendation performance.

Generating(Extracting) user's profile for POI recommendation faces several challenges due to the unique characteristics of location data and user behavior. Unlike other domains such as movies and news, a visit includes the time of visit and geographical location, which introduce complex and diverse factors affecting subsequent visit locations. Consequently, recommendations for POIs must reflect the temporal patterns of users, varying by time, day, and season. Additionally, capturing geographic mobility related to users' residential or workplace locations and considering proximity in recommendations are necessary. Insights derived from users' visit types and behavioral patterns can often infer individual characteristics, which are closely linked to predicting subsequent visit locations. Therefore, capturing these complex and dynamic preferences is essential for POI recommendation.

2. Prompts

We designed two prompts for each module. A profiler module enables LLMs to extract individual user preferences, and a recommender module facilitates the zero-shot POI recommendation performance.

2-1. Profiler Prompt

The profiler prompt consists of a system message and a user message. The system message typically specifies the persona that the model should adopt in its responses, and we provide descriptions of the input data and guidelines for the model's output through the system message. In the user message, we convey the objective of extracting user preferences that would assist in recommending the next visiting place. Then, we specify the factors that should be considered when extracting user preferences.Additionally, the user message includes a suggestion to explore informative features from a user's visit history provided with the prompt and focus on these features. Last, the user's recent visit history is provided at the end of the user message. By placing the instructions before the visit history data, the LLM can clearly understand the goal and process the data accordingly.

2-2. Recommender Prompt

Similar to the profiler prompt, the recommender prompt includes the system message that describes the formats of the input data and the output, while the user message conveys the directives and data directly relevant to generating recommendation results. The data transmitted to the recommender prompt consists of the user preferences extracted from profiler prompt, the user's recent visit history, and a list of POI candidates. In the user message, the objective is specified in two steps: (i) selecting the top-$R$ places out of $N$ candidates ($R < N$) and (ii) ranking these $R$ places. Furthermore, the directive suggests assigning higher attention to aspects of the multiple preferences that are highly relevant to recently visited places. Last, the directive corresponding to highlighting key features is also incorporated in the recommender prompt.

3. Datasets

We used four extensive real-world datasets, Seoul-Private(proprietary, not provided), Yelp2018, Foursquare New York City(NYC), and Foursquare Tokyo, containing semantic information regarding places. We provide the preprocessed datasets. For detailed information on preprocessing, please read our paper.

4. Performance

ZeroPOIRec outperforms non-LLM baselines and LLM baselines. Comparisons with more baselines under various settings and the ablation study can be found in our paper.

🚀 Quick Start 🚀

  1. Write your own OpenAI API keys into api/api_key.py
  2. Intall OPENAI
    pip install openai==0.28
  3. Evaluate ZeroPOIRec.
    python main.py data
    
    # e.g 
    # python main.py NYC

About

[ECMLPKDD-25 / DMKD] ZeroPOIRec : Large Language Models are Zero-shot Point-of-Interest Recommenders

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages