GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - lateral/warpspeed: An implementation of WARP/FM for hybrid recommendation in Cython.

BranchesTags
Open more actions menu

Latest commit

 

History

6 Commits
6 Commits

Folders and files

NameName
Last commit message
Last commit date
assets
assets
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
csr_featuriser.py
csr_featuriser.py
 
 
evaluation.py
evaluation.py
 
 
example_usage.ipynb
example_usage.ipynb
 
 
featuriser.py
featuriser.py
 
 
fm.pyx
fm.pyx
 
 
indexed_sparse_matrix.py
indexed_sparse_matrix.py
 
 
install
install
 
 
patterns.py
patterns.py
 
 
prng.pxd
prng.pxd
 
 
prng.pyx
prng.pyx
 
 
requirements.txt
requirements.txt
 
 
setup.py
setup.py
 
 
test_csr_featuriser.py
test_csr_featuriser.py
 
 
test_entity_model.py
test_entity_model.py
 
 
test_featuriser.py
test_featuriser.py
 
 
test_indexed_sparse_matrix.py
test_indexed_sparse_matrix.py
 
 
test_prng.py
test_prng.py
 
 

Repository files navigation

WARP-SPEED

A bipartite factorisation machine with a modified WARP loss [1] for hybrid recommendation, written in Cython. Once used at Lateral for recommendation at scale. No longer maintained.

What is hybrid recommendation?

Hybrid recommendation is the combination of content- and behavioural- information in a recommendation model. Thus when an item is to be recommended depends not on who has interacted with it, but also on its content (e.g. words in its description, its tags, etc).

Not exactly WARP!

The implementation deviates from the standard in that it uses a sigmoid activation, a multiplicative margin, and a log-likelihood style updates. These modifications were justified by (unpublished, internal) performance improvements on customer datasets.

In addition, we use a modification of Adagrad that works at the feature vector level, instead of at the level of coordinates. This greatly reduces the number of Adagrad parameters and moreover makes the optimisation independent of the choice of coordinate axes.

Requirements

  • Python >= 3.5
  • Cython == 0.25.2

See also requirements.txt.

Installation

Only tested on Ubuntu 16.04.

./install

Usage

A Jupyter notebook gives example usage.

Support

Unfortunately, we are not able to maintain this repository and provide intensive support on the use of this software. If you've any short questions, however, we'd be pleased to help (contact user@domain where user=benjamin and domain=lateral.io).

Related Projects

  • The excellent LightFM, written by Maciej Kula.

References

[1] Weston, Jason, Samy Bengio, and Nicolas Usunier. "Wsabie: Scaling up to large vocabulary image annotation." IJCAI. Vol. 11. 2011.

About

An implementation of WARP/FM for hybrid recommendation in Cython.

Topics

cythonfactorization-machinerecommender-systemwarp

Resources

Readme
License
Activity
Custom properties

Stars

2 stars

Watchers

2 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.