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