[ https://issues.apache.org/jira/browse/MAHOUT-1286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13836052#comment-13836052 ]
Sebastian Schelter commented on MAHOUT-1286: -------------------------------------------- I wasn't able to load the Netflix dataset (1.5 GB in text) in a reasonable time on a JVM with a heap of 4GB with any of the new DataModels. I think that correct way to handle this memory inefficiency is to create special, very memory efficient DataModels for certain access patterns (e.g. randomly iterating through all interactions for SGD-like algorithms). Not sure on whether there is value in adding those new models to the codebase, to be honest. > Memory-efficient DataModel, supporting fast online updates and element-wise > iteration > ------------------------------------------------------------------------------------- > > Key: MAHOUT-1286 > URL: https://issues.apache.org/jira/browse/MAHOUT-1286 > Project: Mahout > Issue Type: Improvement > Components: Collaborative Filtering > Affects Versions: 0.9 > Reporter: Peng Cheng > Labels: collaborative-filtering, datamodel, patch, recommender > Fix For: 0.9 > > Attachments: InMemoryDataModel.java, InMemoryDataModelTest.java, > Semifinal-implementation-added.patch, benchmark.patch > > Original Estimate: 336h > Remaining Estimate: 336h > > Most DataModel implementation in current CF component use hash map to enable > fast 2d indexing and update. This is not memory-efficient for big data set. > e.g. Netflix prize dataset takes 11G heap space as a FileDataModel. > Improved implementation of DataModel should use more compact data structure > (like arrays), this can trade a little of time complexity in 2d indexing for > vast improvement in memory efficiency. In addition, any online recommender or > online-to-batch converted recommender will not be affected by this in > training process. -- This message was sent by Atlassian JIRA (v6.1#6144)