xDeepFM for Recommender Systems - 推荐系统

Author: pseudoyu | 268 words, 1 minutes | comments | 2020-11-11 | Category: Develop

comp7404, hku, machine learning

Translations: ZH

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


  1. 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:

  1. Download a suitable version (Windows/MacOS/Linux) for your OS and install it (check for latest version from Anaconda)
    1. On Windows or MacOS, you can just use the .exe or .pkg installer and follow the instructions
    2. 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
  2. Create a dedicated Conda environment for this project (strongly recommended)
    1. Run conda create -n xdeepfm python=3.6 and enter y to create the conda environment
    2. Run conda activate xdeepfm to activate the project environment
  3. Run pip install -r requirements.txt to install the package dependencies
  4. 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


  • 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



Related Posts

COMP7404 Topic 3 Adversarial Search
COMP7404 Topic 2 Beyond Classical Search
COMP7404 Topic 1 Solving Problems by Searching



Backend & Smart Contract Developer, MSc Graduate in ECIC(Electronic Commerce and Internet Computing) @ The University of Hong Kong (HKU). Love to learn and build things. Follow me on GitHub