wecommender

0.0.4 • Public • Published

wecommender

Simple NodeJS wrapper for vowpal wabbit matrix factorization functionality. You can use this library like an online recommendation engine.

QuickStart

npm install wecommender

node

Then:

var w = require('wecommender')

// start the process
w.start()

// rate takes (userID, itemID, rating)
w.rate(1, 1, 1)
w.rate(1, 2, 0)
w.rate(2, 1, 1)
w.rate(2, 2, 1)

// getRecommendation takes (userID, itemID, callback)
w.getRecommendation(1, 1, console.log)
w.getRecommendation(1, 2, console.log)
w.getRecommendation(2, 1, console.log)
w.getRecommendation(2, 2, console.log)

// save learning state
w.save()

// terminate (also implicitly saves)
w.close()

Prerequisites

The vw command must be installed and available, otherwise wecommender will fail.

Options

It's possible to pass custom parameters to vw through the options object.

var w = require('wecommender')

w.options = {
  bits: 18, // default is 18 (bits used in the hash function)
  cwd: '/models', // default is '.' (current working directory for vw)
  initialT: 0.9, // default is 1 (initial time for learning rate decay)
  l2: 0.002, // default is 0.001 (l2 regularization to prevent overfitting)
  learningRate: 0.1, // default is 0.015
  powerT: 0.1, // default is 0 (learning rate decay)
  rank: 12 // default is 10 (number of latent factors)
}

I'll refer you to vowpal wabbit's documentation here and here for explanations of these parameters.

Additionally, wecommender's verbose logging can be toggled in a similar way:

w.options = {
  verbose: true
}

License

MIT

Package Sidebar

Install

npm i wecommender

Weekly Downloads

3

Version

0.0.4

License

MIT

Last publish

Collaborators

  • omphalos