You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Sebastian Schelter (JIRA)" <ji...@apache.org> on 2011/04/10 20:04:05 UTC

[jira] [Commented] (MAHOUT-640) Implementation of refresh in SVDRecommender

    [ https://issues.apache.org/jira/browse/MAHOUT-640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13018120#comment-13018120 ] 

Sebastian Schelter commented on MAHOUT-640:
-------------------------------------------

Hi Chris,

the patch looks very good. I found out that being able to persist the resulting factorization is really a useful and necessary feature after I accidentally computed the wrong predictions after a 10 hour training run last week and my factorization was gone after the program terminated...

The only thing to reconsider in your patch IMHO would be how the factorization is persisted. I think it is better to have another class that can take a factorization and write it to some output than have the factorization persist itself. This would also give users the possibility to plug in their own customized persistance strategy. And I think I binary format would be better as default because it needs less memory.

Furthermore I think we should not introduce another SVDRecommender implementation (as this patch does with PersistentSVDRecommender) but rather modify the existing SVDRecommender. It has become a common pattern that our Recommender classes can be given "strategies" from outside so that users can control how different steps are done. An example of this would be org.apache.mahout.cf.taste.recommender.CandidateItemsStrategy which controls how the recommenders select the initial set of items that can possibly be recommended before those are ranked. I imagine that we could give a kind of "PersistanceStrategy" to the SVDRecommender which controls whether and how the factorization is persisted. A default could be not to persist it and we would supply an implementation that saves it to a file.

What do you think about these suggestions?



> Implementation of refresh in SVDRecommender
> -------------------------------------------
>
>                 Key: MAHOUT-640
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-640
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Collaborative Filtering
>    Affects Versions: 0.4
>            Reporter: Chris Newell
>            Assignee: Sean Owen
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: refreshable_svd.patch, refreshable_svd_v2.patch
>
>   Original Estimate: 408h
>  Remaining Estimate: 408h
>
> SVDRecommender (in package org.apache.mahout.cf.taste.impl.recommender.svd) and associated classes do not properly implement refresh.
> Plan:
> - make the AbstractFactorizer class implement refreshable.
> - complete the implementation of refresh in SVDRecommender.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira