The aim of this repository is to host the code for research in exploring user dynamics within recommender systems conducted by the Traffic Flow Dynamics and Computations Lab @ New York University Abu Dhabi (NYUAD).
The project helps explore a few questions about the behavior of users as they interact with recommender systems.
- What is the connection with causal inference and modeling user behaviour with recommendation systems?
- How does algorithmic confounding in recommendation systems increases homogeneity and decreases utility?
In order to tackle these questions and explore user dynamics, this project conducts time-stepped simulations where each step updates:
- A user-interaction matrix
- A recommender system with 3 collaborative filtering algorithms to select from
- A post-processing pipeline to analyze user clusters
Check out the notebooks
directory to view some prototyping of clustering algorithms and recommender system models. Please note that the work in the notebooks directory may be incomplete.
To replicate the results in our paper:
- Clone this repository
git clone https://github.com/niniack/rec-sys-dynamics.git
- Within the repository, use a tool like virtualenv to set up a virtual environment with python version 3.8
virtualenv [env-name]
- Activate the virtual environment
source [env-name]/bin/activate
- Install all dependencies found in
requirements.txt
pip install -r requirements.txt
- Change directory to the
examples
directory and view available scripts to execute
cd examples && ls
- Execute the desired script
python [script-file-name].py
- To deactivate the virtual environment
deactivate
All python packages needed to run the code can be found within requirements.txt
Research conducted for the Traffic Flow Dynamics and Computations Lab @ New York University Abu Dhabi (NYUAD)
- Abdur Rehman (@ar4366)
- Prajna Soni (@soniprajna)
- Nishant Aswani (@niniack)
- Chuhan Yang (@ChuhanYang)
This project is licensed under the MIT License - see the LICENSE.md file for details