Giter VIP home page Giter VIP logo

deeprec's Introduction

DeepRec

Collaborative Deep Learning for Rec. Systems

Environment Dependencies:

Python 2.7
MXNet

Library Dependencies:

getopt
matplotlib
numpy
pickle
sys

Directory Structure:

data - contains all the necessary input data files. Each dataset directory has separate readme file describing each file
results - directory where we saved our recall values and also various comparision plots
experiments - contains files related to all the experiments we did

src code:

Dataset creation

generate_datasets.py : To generate the datasets with given sparseness settings
mult.py: Reads the item-vocab files and feeds to the model as a matrix input
data.py: Wrapper for data.py

Evaluation

evaluate_CDL.py: To calculate recall values
#To calculate recall for citeulike-a(d=a) with dense setting(p=10) and number of encoder layers(l=2)
python evaluate_CDL.py -p 10 -l 2 -d a

cal_precision.py : To calculate mean Average Precision mAP
#To calculate mAP for citeulike-a(d=a) with dense setting(p=10) and number of encoder layers(l=2)
#c defines where to cut off the recommended articles
python cal_precision.py -p 10 -l 2 -d a -c 250

show_recommendation.py : To show the recommendations for a particular user
#To display recommendations for userid 8 (u=8) citeulike-a(d=a) with dense setting(p=10) and number of encoder layers(l=2)
python show_recommendation.py -p 10 -l 2 -d a -u 8

Main Model

autoencoder.py : Stacked Denoising AutoEncoder Model (SDAE)
BCD_one.py: Block Coordinate Descent optimization algorithm
cdl.py : Main Collaborative Deep Learning (CDL) wrapper file
model.py: Feature extraction and preparing data for SDAE
solver.py: Finutune and parameter update

Run:

Case 1:
For citeulike-a dataset (d=a) , with dense setting (P=10) and two encoder layers in SDAE(l=2)
python cdl.py -p 10 -l 2 -d a

Case 2:
For citeulike-t dataset (d=t) , with dense setting (P=3) and two encoder layers in SDAE(l=2)
python cdl.py -p 3 -l 2 -d t

Directory Tree: (output of 'tree -L 3')

.
├── autoencoder.py
├── BCD_one.py
├── cal_precision.py
├── cdl.py
├── data
│   ├── citeulike-a
│   │   ├── mult.dat
│   │   ├── P1
│   │   ├── P10
│   │   ├── P5
│   │   ├── raw_inputs
│   │   └── README.txt
│   └── citeulike-t
│       ├── mult.dat
│       ├── P1
│       ├── P10
│       ├── P3
│       ├── raw_inputs
│       └── README.txt
├── data.py
├── evaluate_CDL.py
├── experiments
│   ├── citeulike-a
│   │   ├── L2_P1
│   │   ├── L2_P10
│   │   ├── L2_P5
│   │   ├── L3_P1
│   │   ├── L3_P10
│   │   └── L3_P5
│   └── citeulike-t
│       ├── L2_P1
│       ├── L2_P3
│       ├── L3_P1
│       └── L3_P3
├── generate_datasets.py
├── model.py
├── mult.py
├── README.md
├── results
│   ├── plot_citeulike_a.py
│   ├── plot_citeulike_t.py
│   ├── plots
│   │   ├── citeulike-a
│   │   ├── citeulike-t
│   │   └── reco.png
│   └── recall
│       ├── baseline
│       └── tf-idf
├── show_recommendation.py
└── solver.py

Git references:

deeprec's People

Contributors

aratna avatar denish44 avatar satishpasumarthi avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.