mlpack
Public Member Functions | List of all members
mlpack::amf::SVDBatchLearning Class Reference

This class implements SVD batch learning with momentum. More...

#include <svd_batch_learning.hpp>

Public Member Functions

 SVDBatchLearning (double u=0.0002, double kw=0, double kh=0, double momentum=0.9)
 SVD Batch learning constructor. More...
 
template<typename MatType >
void Initialize (const MatType &dataset, const size_t rank)
 Initialize parameters before factorization. More...
 
template<typename MatType >
void WUpdate (const MatType &V, arma::mat &W, const arma::mat &H)
 The update rule for the basis matrix W. More...
 
template<typename MatType >
void HUpdate (const MatType &V, const arma::mat &W, arma::mat &H)
 The update rule for the encoding matrix H. More...
 
template<typename Archive >
void serialize (Archive &ar, const uint32_t)
 Serialize the SVDBatch object.
 

Detailed Description

This class implements SVD batch learning with momentum.

This procedure is described in the following paper:

@techreport{ma2008guide,
title={A Guide to Singular Value Decomposition for Collaborative
Filtering},
author={Ma, Chih-Chao},
year={2008},
institution={Department of Computer Science, National Taiwan University}
}

This class implements 'Algorithm 4' as given in the paper.

The factorizer decomposes the matrix V into two matrices W and H such that sum of sum of squared error between V and W * H is minimum. This optimization is performed with gradient descent. To make gradient descent faster, momentum is added.

Constructor & Destructor Documentation

◆ SVDBatchLearning()

mlpack::amf::SVDBatchLearning::SVDBatchLearning ( double  u = 0.0002,
double  kw = 0,
double  kh = 0,
double  momentum = 0.9 
)
inline

SVD Batch learning constructor.

Parameters
ustep value used in batch learning
kwregularization constant for W matrix
khregularization constant for H matrix
momentummomentum applied to batch learning process

Member Function Documentation

◆ HUpdate()

template<typename MatType >
void mlpack::amf::SVDBatchLearning::HUpdate ( const MatType &  V,
const arma::mat &  W,
arma::mat &  H 
)
inline

The update rule for the encoding matrix H.

The function takes in all the matrices and only changes the value of the H matrix.

Parameters
VInput matrix to be factorized.
WBasis matrix.
HEncoding matrix to be updated.

◆ Initialize()

template<typename MatType >
void mlpack::amf::SVDBatchLearning::Initialize ( const MatType &  dataset,
const size_t  rank 
)
inline

Initialize parameters before factorization.

This function must be called before a new factorization. This resets the internally-held momentum.

Parameters
datasetInput matrix to be factorized.
rankrank of factorization

◆ WUpdate()

template<typename MatType >
void mlpack::amf::SVDBatchLearning::WUpdate ( const MatType &  V,
arma::mat &  W,
const arma::mat &  H 
)
inline

The update rule for the basis matrix W.

The function takes in all the matrices and only changes the value of the W matrix.

Parameters
VInput matrix to be factorized.
WBasis matrix to be updated.
HEncoding matrix.

The documentation for this class was generated from the following file: