GithubHelp home page GithubHelp logo

adrtod / fastfm-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibayer/fastfm-core

1.0 2.0 1.0 142 KB

A short paper describing the library is available on arXiv.

Home Page: http://arxiv.org/abs/1505.00641

License: Other

Makefile 1.38% C 98.26% C++ 0.36%

fastfm-core's Introduction

Citing fastFM

The library fastFM is an academic project. The time and resources spent developing fastFM are therefore justifyed by the number of citations of the software. If you publish scienctific articles using fastFM, pleease cite the following article (bibtex entry citation.bib).

Bayer, I. "fastFM: A Library for Factorization Machines" Journal of Machine Learning Research 17, pp. 1-5 (2016)

fastFM: A Library for Factorization Machines

image

image

image

This repository contains the source code for the fastFM C library and the stand-alone comand line interface (cli). In general we recommend to use fastFM with the Python interface.

Usage

fastFM-core/bin/bin/fastfm data/train_regression data/test_regression \
--task regression   \
--rng-seed 1234     \
--init-var=0.11     \
--n-iter=123        \
--solver='mcmc'     \
--rank 7            \
--l2-reg=.22

Examples on how to use the other command line options options, including example data, can be found in fastFM-core/demo/Makefile. The demo/ folder contains examples showing how to use fastFM as C library.

+----------------+------------------+-----------------------------+ | Task | Solver | Loss | +================+==================+=============================+ | Regression | als, mcmc, sgd | Square Loss | +----------------+------------------+-----------------------------+ | Classification | als, mcmc, sgd | Probit(Map), Probit, Sigmoid| +----------------+------------------+-----------------------------+ | Ranking | sgd | BPR | +----------------+------------------+-----------------------------+ Supported solvers and tasks

Installation

OS X: Library compiles on OSX, however console interface doesn't.

# Install cblas (Linux only).
$ sudo apt-get install libatlas-base-dev

# Clone the repro including submodules (or clone + `git submodule update --init --recursive`)
$ git clone --recursive https://github.com/ibayer/fastFM-core.git

# Build library
$ cd fastFM-core/; make;

# Build command line interface (currently this works on linux only)
$ make cli

Tests

OS X: Recommended way to manage dependencies is Homebrew package manager. If you have brew installed, dependencies can be installed by running command brew install glib gsl argp-standalone.

# The tests require the glib and gsl library (Linux, for OSX see above).
$ sudo apt-get install libglib2.0-dev libgsl0-dev

$ cd fastFM-core/src/tests

# Build the tests
$ make

# Run all tests
$ make check

Contribution

  • Star this repository: keeps contributors motivated
  • Open a issue: report bugs or suggest improvements
  • Fix errors in the documentation: small changes matter
  • Contribute code

Contributions are very wellcome! Since this project lives on github we reommend to open a pull request (PR) for code contributions as early as possible. This is the fastest way to get feedback and allows Travis CI to run checks on your changes.

Development Guidlines

  • check coding style (google) lang-format-3.5 -style=google -i <YOUR_FILE.c/h>
  • static code analysis clang-tidy-3.5 -fix <YOUR_FILE.c/h> -- I.
  • run valgrind memory check on sparse_test.c make mem_check
  • run valgrind to check for errors valgrind -v ./a.out >& out

Contributors

  • takuti
  • altimin
  • ibayer

License: BSD

fastfm-core's People

Contributors

adrtod avatar altimin avatar dselivanov avatar iramykytyn avatar takuti avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

yw81

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.