xDeepFM for Recommender Systems
eXtreme Deep Factorization Machine (xDeepFM)
This paper proposes a novel Compressed Interaction Network (CIN), which aims to generate feature interactions in an explicit fashion and at the vector-wise level.
Github Repository
GitHub: xDeepFM_for_Recommender_Systems
Video Demo
YouTube | Google Drive
Datasets
- Criteo Dataset. It is a famous industry benchmarking dataset for developing models predicting ad click-through rate, and is publicly accessible. Given a user and the page he is visiting, the goal is to predict the probability that he will clik on a given ad
Running Environment
I strongly recommmend that you use Anaconda to implement this project. Here are some simple instructions:
- Download a suitable version (Windows/MacOS/Linux) for your OS and install it (check for latest version from Anaconda)
- On Windows or MacOS, you can just use the .exe or .pkg installer and follow the instructions
- On Linux, you may need to run
bash ./.Anaconda3-2020.07-Linux-x86_64.sh
in the same directory of the downloaded .sh file to allow the installer to initialize Anaconda3 in your .bashrc
- Create a dedicated Conda environment for this project (strongly recommended)
- Run
conda create -n xdeepfm python=3.6
and entery
to create the conda environment - Run
conda activate xdeepfm
to activate the project environment
- Run
- Run
pip install -r requirements.txt
to install the package dependencies - Now you can run the code simply through
python main.py
cd YouPath/xDeepFM_for_Recommender_Systems/exdeepfm
bash ./.Anaconda3-2020.07-Linux-x86_64.sh
conda create -n xdeepfm python=3.6
conda activate xdeepfm
pip install -r requirements.txt
python main.py
Dependencies
- absl-py==0.8.1
- astor==0.8.0
- gast==0.3.2
- google-pasta==0.1.7
- grpcio==1.24.3
- h5py==2.10.0
- joblib==0.14.0
- Keras-Applications==1.0.8
- Keras-Preprocessing==1.1.0
- Markdown==3.1.1
- numpy==1.17.3
- packaging==19.2
- protobuf==3.10.0
- pyparsing==2.4.2
- PyYAML==5.1.2
- scikit-learn==0.21.3
- scipy==1.3.1
- six==1.12.0
- sklearn==0.0
- tensorboard==1.14.0
- tensorflow==1.14.0
- tensorflow-estimator==1.14.0
- termcolor==1.1.0
- Werkzeug==0.16.0
- wrapt==1.11.2
Running Results
…