SVDBatchLearning Class Reference

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

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 HUpdate (const MatType &V, const arma::mat &W, arma::mat &H)
 The update rule for the encoding matrix H. More...

 
template
<
typename
MatType
>
void Initialize (const MatType &dataset, const size_t rank)
 Initialize parameters before factorization. More...

 
template
<
typename
Archive
>
void serialize (Archive &ar, const uint32_t)
 Serialize the SVDBatch object. 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...

 

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.

Definition at line 41 of file svd_batch_learning.hpp.

Constructor & Destructor Documentation

◆ 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

Definition at line 52 of file svd_batch_learning.hpp.

Member Function Documentation

◆ HUpdate()

void 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.

Definition at line 133 of file svd_batch_learning.hpp.

◆ Initialize()

void 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

Definition at line 69 of file svd_batch_learning.hpp.

◆ serialize()

void serialize ( Archive &  ar,
const uint32_t   
)
inline

Serialize the SVDBatch object.

Definition at line 169 of file svd_batch_learning.hpp.

◆ WUpdate()

void 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.

Definition at line 88 of file svd_batch_learning.hpp.


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