Skip to content

LT-OCF: Learnable-Time ODE-based Collaborative Filtering, CIKM'21

License

Notifications You must be signed in to change notification settings

jeongwhanchoi/LT-OCF

Repository files navigation

LT-OCF: Learnable-Time ODE-based Collaborative Filtering

GitHub Repo stars Twitter Follow arXiv Hits

PWCPWCPWC PWC PWC PWC

For a more detailed explanation of our model, we recommend reading our Medium blog post: Recent Article 0

Introduction

This is the official implementation of our CIKM 2021 paper "LT-OCF: Learnable-Time ODE-based Collaborative Filtering". LT-OCF is a novel approach to collaborative filtering that uses neural ordinary differential equations (NODEs) with learnable time points.

LT-OCF vs LightGCN

LT-OCF LightGCN

Our proposed LT-OCF model offers several advantages over LightGCN:

  • Continuous-time modeling: LT-OCF uses ODEs to model embedding evolution in continuous time, while LightGCN uses discrete layers.
  • Co-evolving embeddings: User and item embeddings evolve simultaneously through coupled ODEs in LT-OCF, enabling richer interactions.
  • Learnable time points: LT-OCF allows flexible layer combinations with learnable time points, enhancing model adaptability.
  • Smooth evolution: Embeddings in LT-OCF evolve smoothly from initial to final states, potentially capturing more nuanced patterns.

While LightGCN offers simplicity and computational efficiency, LT-OCF provides greater flexibility and expressive power in modeling collaborative filtering dynamics.

Citation

If you find this work useful in your research, please consider citing:

@inproceedings{choi2021ltocf,
  title={LT-OCF: Learnable-Time ODE-based Collaborative Filtering},
  author={Choi, Jeongwhan and Jeon, Jinsung and Park, Noseong},
  booktitle={Proceedings of the 30th ACM International Conference on Information and Knowledge Management},
  year={2021}
}

Setup

Install python environment

conda env create -f environment.yml   

Activate environment

conda activate lt-ocf

Reproducibility

Usage

In terminal

  • Run the shell file (at the root of the project)
# run lt-ocf (gowalla dataset, rk4 solver, learnable time)
sh ltocf_gowalla_rk4.sh
# run lt-ocf (gowalla dataset, rk4 solver, fixed time)
sh ltocf_gowalla_rk4_fixed.sh

Key Arguments

  • --gpuid
    • GPU ID (default: 0)
  • --dataset
    • Chose from gowalla, yelp2018, amazon-book
  • --model
    • Use ltocf
  • --solver
    • Chose from euler, rk4, dopri5
  • --adjoint
    • False (default), True
  • --K
    • Number of layers (1, 2, 3, 4)
  • --learnable_time
    • True (learnable) , False (fixed)
  • --dual_res
    • False (default), True

For a full list of arguments, please refer to parse.py.

Star History

Star History Chart