[ 
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

Reply via email to