Skip to content

Latest commit

 

History

History
71 lines (54 loc) · 3.01 KB

README.md

File metadata and controls

71 lines (54 loc) · 3.01 KB

YelpRecommendation

Introduction

This project focuses on matching benchmark performance in recommendation systems using the Yelp 2018 dataset. The dataset includes detailed reviews, user profiles, and business metadata, which are crucial for personalized recommendation systems.

Data Overview

  • Reviews: Text reviews and ratings from users for various businesses.
  • Users: Demographic and preference information of users.
  • Businesses: Attributes of businesses including location, category, and operational hours.

Models Implemented

  • Collaborative Filtering: Predicts user preferences based on user-item interactions.
    • Collaborative Denoising Auto-Encoders (2016) applies Denoising Auto-Encoders (DAE) to top-N recommendation systems, generalizing various collaborative filtering (CF) models. Unlike AutoRec from 2015, CDAE incorporates a user node and uses corrupted input preferences.
  • Matrix Factorization: Reduces the dimensionality of the interaction matrix to uncover latent features.
  • Deep Neural Networks: Leverages deep learning to enhance prediction accuracy using complex feature interactions.
  • Hybrid Models: Integrates several models to capitalize on their individual strengths for superior performance.

Our goal is to provide a robust analysis of these models and evaluate their performance comprehensively.

Project Structure

.

Development Environment

To run this project, you will need:

  • Python 3.8+: Ensure Python version is up to date for compatibility.
  • Jupyter Notebook: For interactive data analysis and visualizations.
  • Required Libraries: pandas, numpy, scikit-learn, tensorflow/pytorch (depending on model choice).
  • Operating System: Compatible with Windows, macOS, and Linux.

Technology Stack

스택 나열

Model Performance Comparison

The following table shows the performance of different models used in the project. Each model was evaluated based on multiple metrics:

Model MAP@10 Precision@10 Recall@10 NDCG@10
CDAE 82.5% 80.3% 84.1% 82.1%
DCN 85.0% 83.7% 86.4% 85.0%
NGCF 87.5% 85.8% 89.2% 87.4%
S3Rec 90.2% 88.9% 91.5% 90.2%
Multi-armed bandit 90.2% 88.9% 91.5% 90.2%

These results were obtained from the Yelp 2018 dataset under controlled test conditions.

How to Run

Prerequisites

  • Python >= 3.11
  • Poetry >= 1.8.2
  • Pytorch
# set environments
$ poetry install
$ poetry shell

# generate input data
# download data from [yelp official website](https://www.yelp.com/dataset/download) and set data directory in config
$ vi configs/data_preprocess.yaml
$ python data/data_preprocess.py

# train model
$ vi configs/train_config.yaml
$ python train.py

Contributors