Skip to content

nmduc/discrete-matrix-factorization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

discrete-matrix-factorization

This repository contains the source code for the paper entitled "Learning Discrete Matrix Factorization Models"

Prerequisites

- Tensorflow 
- Numpy 

The code has been tested in Ubuntu 14.04 and MacOSX, with

- Tensorflow v.1.2.1
- Numpy v.1.12.1 

You should be able to run the code with newer versions of Tensorflow and Numpy as well.

Usage

Prepare data

A sample split (75% training, 25% testing) of the MovieLens1M dataset is included (inside folder ./data/MovieLens1M/):

  • rating.npz: original matrix
  • train_mask.npz: training mask, same shape as the original matrix
  • val_mask.npz: validation mask, same shape as the original matrix
  • test_mask.npz: testing mask, same shape as the original matrix

All these matrices are saved as Numpy sparse csr_matrix.

Alternatively, you can write your own DataLoader to load and feed the model during training, with data prepared in another way.

Configurations

The configs/configs_dmfd.py file sets all the default configurations and hyper-parameters. There are some other hyperparameters inside train.py and test.py To use your own configurations, you can either edit these files, or override the default configurations using flags.

For example:

python train.py --n_epochs=1000 --initial_lr=0.01

Training

After preparing your dataset and set all the necessary hyper-parameters, you are ready to train your model. Run train.py, together with our hyper-parameters, to start the training. For example:

python train.py --data_dir=./data/MovieLens1M/ --output_basedir=./outputs/

The trained model will be saved into outputs/snapshots. To save the training log, which can be inspected using tensorboard, you need to set:

    write_summary = True

in the configuration file.

Testing

After training the model, you can test it by calling test.py, with the default parameters or with your own parameters. For example:

python test.py --data_dir=./data/MovieLens1M/ --snapshot_dir=./outputs/snapshots/

Related

If you just want to produce continuous output, you may want to check our paper "Extendable Neural Matrix Completion" (published at ICASSP 2018). The source code is available at: https://github.com/nmduc/neural-matrix-completion

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Reference

If you find the source code useful, please cite us:

D. M. Nguyen, E. Tsiligianni and N. Deligiannis, "Learning Discrete Matrix Factorization Models," 
in IEEE Signal Processing Letters, vol. 25, no. 5, pp. 720-724, May 2018.

About

Source code for the paper "Learning Discrete Matrix Factorization Models"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy