mlpack  blog
Alternatives to Neighborhood-Based CF - Week 6

Alternatives to Neighborhood-Based CF - Week 6

Wenhao Huang, 24 June 2018

This week's work can be dividied into two parts. First, for weights interpolation, I finished some loose ends of that PR and made the improvements as pointed out by Mikhail's review comments. Also, as suggested by Ryan, I am also working on templatizing NeighborSearchPolicy so that a user can choose kNN or LSH (and maybe other methods as well) as the neighbor search algorithm. The second part is about implementing BiasSVD and SVD++. One issue is that the current CF framework cannot be used directly to implement the new models. After discussing with Mikhail, we have decided to refactor DecompisitionPolicy classes. The refactoring work includes adding a new function in DecompositionPolicy like GetRating(user, item, ...) to compute rating using the algorithm of that decomposition policy, moving model parameters (W, H, ...) to DecompositionPolicy class, etc. In this way, we only need to add two new decompisition policies for BiasSVD and SVD++. It also facilitates future work if new models are to be added. Refactoring the DecompositionPolicy, adding policies for BiasSVD and SVD++ will be my focus for the next two weeks.