https://github.com/yahoo/fmfm
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/yahoo/fmfm
- Owner: yahoo
- License: mit
- Created: 2020-10-22T19:59:53.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-02-06T23:07:37.000Z (almost 5 years ago)
- Last Synced: 2025-05-05T06:37:25.924Z (8 months ago)
- Language: Python
- Size: 113 KB
- Stars: 40
- Watchers: 1
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: Contributing.md
- License: LICENSE-MIT
- Code of conduct: Code-of-Conduct.md
Awesome Lists containing this project
README
# FM^2: Field-matrixed Factorization Machines for Recommender Systems
## Table of Contents
- [Background](#background)
- [Install](#install)
- [Usage](#usage)
- [Contribute](#contribute)
- [License](#license)
## Background
This is the code to implement the algorithm of FM^2 (Field-matrixed Factorization Machines), it can run a quick benchmark among the LR, FM, FFM, FwFM, FvFM, FmFM and DCN,
it also support data process and feature extraction from public data set Criteo and Avazu.
## Install
First you will need to have [TensorFlow](https://github.com/tensorflow) (v1.15 with a GPU is preferred) and numpy, pandas, pickle and tqdm installed.
You may need to login and download the [Criteo](http://labs.criteo.com/2014/02/kaggle-display-advertising-challenge-dataset/) and [Avazu](https://www.kaggle.com/c/avazu-ctr-prediction/data) from their websites respectively.
The unzipped raw data files should be placed at folder `data/criteo/` and `data/avazu/` respectively.
## Usage
This project has the following content
1. **train.py** The main function to train the model
2. **features.py** Functions to process the data file and generate features
3. **models.py** The core functions to describe those models, include the new proposed FmFM and FvFM, as well as other baseline models like LR, FM, FFM, FwFM
The folder **bash** contains individual training task with hyper-parameters, and the **start_train.sh** can schedule multiple task in one bash file.

## Contribute
Please refer to [the contributing.md file](Contributing.md) for information about how to get involved. We welcome issues, questions, and pull requests.
## Maintainers
Yang Sun, yang.sun@verizonmedia.com
## License
This project is licensed under the terms of the MIT open source license. Please refer to LICENSE for the full terms.