GithubHelp home page GithubHelp logo

daicoolb / phdmf Goto Github PK

View Code? Open in Web Editor NEW
33.0 7.0 12.0 339 KB

This is a new deep learning model for recommender system, which we called PHD

Python 99.27% Shell 0.73%
matrix-factorization deep-learning recommendation-algorithm

phdmf's Introduction

PHDMF

Collaborative Filtering(CF), a well-known approach in producing recommender systems, has achieved wide use and excellent performance not only in research but also in industry. However, problems related to cold start and data sparsity have caused CF to attract an increasing amount of attention in efforts to solve these problems. Traditional approaches adopt side information to extract effective latent factors but still have some room for growth. Due to the strong characteristic of feature extraction in deep learning, many researchers have employed it with CF to extract effective representations and to enhance its performance in rating prediction. Based on this previous work, we propose a probabilistic model that combines a stacked denoising autoencoder and a convolutional neural network together with auxiliary side information (i.e, both from users and items) to extract users and items' latent factors, respectively. Extensive experiments for four datasets demonstrate that our proposed model outperforms other traditional approaches and deep learning models making it state of the art.

Updates for the data format

  • Many people ask about the data format about the model. Our model has two kinds of data, one is user side information and the other is item side information.
  • For user side information, the dataformat is user_id::binary_value, eg. 456::0010010000100000
  • For item side information, the dataformat is user_id::item_id::rating, eg. 456::1::3
  • Just see run_test_preprocess.sh for the process of data. Because the original data is too large, I cannot give a dowonload link.

Updates for the use of the model

    1. run run_test_preprocess.sh for process the data
    1. run run_test_PHDMF.sh for training the data
    1. run python rmse.py for test the performance of the model

Note

If you find this model is useful for your research, please cite this paper:

  • PHD: A Probabilistic Model of Hybrid Deep Collaborative Filtering for Recommender Systems ACML 2017

1 PHD Model

PHD Model

2 CNN Model

CNN model

3 aSDAE Model

aSDAE model

This is a variant of ConvMF and aSDAE. Certainly, it is based on ConvMF and aSDAE.

We use aSDAE and CNN to generate the user latent factor and item latent factor, respectively.

If you want to use it, pleae install keras and tensorflow ,respectively.

Note that this model can deal with three conditions:

  • only user side information (aSDAE model)
  • only item side information (ConvMF model)
  • user and item side information (PHD model)

Tips:Please make sure you have a good deep learning environment to run these codes.

phdmf's People

Contributors

daicoolb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

phdmf's Issues

How to update w&b in aSDAE

Hi, you did a great job. But I am confused that after updating Ui and Vj, how can we learn the weight matrices and biases. It seems conflicted with backpropagation algorithm.

Question: How to build the user side item binary value?

The paper mentions that movielens 10M dataset uses tags as user side items information. How to build the binary value from this tags information? What are the steps involved in building the binary value of user side items information?

Thank you

where is lambda_w and lambda_w+?

It's a great pleasure to read your paper, and it's a great job. But I have some questions to ask you. I notice that there are lambda_w and lambda_w+ parameters in loss function of PHD. but I can not find them in your code. where are they in your code? and how did you set them? why your paper did not show how they affect your model?

how to convert to one host.

For example I have data for side information of ml-1m below.
1::F::1::10::48067
2::M::56::16::70072
3::M::25::15::55117
4::M::45::7::02460
5::M::25::20::55455
6::F::50::9::55117
7::M::35::1::06810

--> could you help me to convert above data to one host?
Thank you!

asking for dataset

I am intrested in your paper but i can not get the datset from the link you given in your paper. Can you share your datasets used in your paper for me? Thank you! ^_^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.