mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebastian Schelter (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAHOUT-1286) Memory-efficient DataModel, supporting fast online updates and element-wise iteration
Date Sun, 01 Dec 2013 15:54:36 GMT

    [ 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)

Mime
View raw message