[mlpack] GSOC 2016 "Alternatives to neighbour-based collaborative filtering"

Ryan Curtin ryan at ratml.org
Fri Mar 18 01:08:31 EDT 2016


On Thu, Mar 17, 2016 at 10:21:33PM +0800, Zhaoduo WEN wrote:
> Hi Ryan,
> 
> I want to figure out one thing. Does this project intend to expand the
> existing mlpack_cf? Could I write a new algorithm that is different from CF?
> 
> I've read the API of CF, though not all of them. I find that it's not easy
> to fit with the existing other factorizers and algorithms for CF, as the
> key component of SLIM is learning W matrix from A. However, the CF
> algorithm doesn't need this. Do you have any ideas of fitting with the existing
> other factorizers and algorithms for CF? I need some inspiration. Thanks.

Hi Zhaoduo,

I glanced at the paper and I see what you mean; instead of decomposing
the data matrix into two low-rank matrices W * H, the SLIM algorithm
instead simply learns a large sparse matrix W.

I think it would be very useful to allow the SLIM algorithm to fit
inside the CF code, but clearly the code that is currently in CF will
not work and it will need to be refactored to handle more models than
just a low-rank decomposition.

Probably the right way to go about this will be to refactor the CF class
so that the logic for the model is contained in the FactorizerType or
something else, not in the CF class itself.  So it may be necessary to,
e.g., define a ModelType class associated with each FactorizerType which
contains the logic for applying the model to make a prediction.

I haven't thought through all the details there, but I think that should
be a good direction for how to resolve this problem.  Let me know what
you think.

Thanks,

Ryan

-- 
Ryan Curtin    | "I know... but I really liked those ones."
ryan at ratml.org |   - Vincent



More information about the mlpack mailing list