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

    Install

    npm i wecommender

    DownloadsWeekly Downloads

    5

    Version

    0.0.4

    License

    MIT

    Last publish

    Collaborators

    • omphalos