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 (Created) (JIRA)" <ji...@apache.org> on 2011/11/04 09:01:01 UTC

[jira] [Created] (MAHOUT-872) Revisit the parallel ALS matrix factorization

Revisit the parallel ALS matrix factorization
---------------------------------------------

                 Key: MAHOUT-872
                 URL: https://issues.apache.org/jira/browse/MAHOUT-872
             Project: Mahout
          Issue Type: Improvement
          Components: Collaborative Filtering
    Affects Versions: 0.6
            Reporter: Sebastian Schelter
            Assignee: Sebastian Schelter


Our current code for computing a decomposition of a rating matrix with Alternating Least Squares (ALS) uses a lot of highly unefficient reduce side joins. 

The rating matrix A is decomposed into a matrix U of users x features and a matrix M of items x features. Each of these matrices is iteratively recomputed until a maximum number of iterations is reached

If we assume that U and M fit into the memory of a single mapper instance, each iteration can be implemented as single map-only job, which greatly improves the runtime of this job.

Note that in spite of these improvements this job is still rather slow as Hadoop is a poor fit for iterative algorithms. Each iteration has to be scheduled again and data is always read from and written to disk.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-872) Revisit the parallel ALS matrix factorization

Posted by "Sebastian Schelter (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143869#comment-13143869 ] 

Sebastian Schelter commented on MAHOUT-872:
-------------------------------------------

High level documention added at https://cwiki.apache.org/confluence/display/MAHOUT/Collaborative+Filtering+with+AlS-WR
                
> Revisit the parallel ALS matrix factorization
> ---------------------------------------------
>
>                 Key: MAHOUT-872
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-872
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Sebastian Schelter
>            Assignee: Sebastian Schelter
>             Fix For: 0.6
>
>
> Our current code for computing a decomposition of a rating matrix with Alternating Least Squares (ALS) uses a lot of highly unefficient reduce side joins. 
> The rating matrix A is decomposed into a matrix U of users x features and a matrix M of items x features. Each of these matrices is iteratively recomputed until a maximum number of iterations is reached
> If we assume that U and M fit into the memory of a single mapper instance, each iteration can be implemented as single map-only job, which greatly improves the runtime of this job.
> Note that in spite of these improvements this job is still rather slow as Hadoop is a poor fit for iterative algorithms. Each iteration has to be scheduled again and data is always read from and written to disk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-872) Revisit the parallel ALS matrix factorization

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143934#comment-13143934 ] 

Hudson commented on MAHOUT-872:
-------------------------------

Integrated in Mahout-Quality #1147 (See [https://builds.apache.org/job/Mahout-Quality/1147/])
    MAHOUT-872 Revisit the parallel ALS matrix factorization

ssc : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1197433
Files : 
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALSUtils.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/DatasetSplitter.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FeatureVectorWithRatingWritable.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/IndexedVarIntWritable.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/PredictionJob.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/RecommenderJob.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/TaggedVarIntWritable.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/VectorWithIndexWritable.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/als/eval
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/AggregateAndRecommendReducer.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/common/AbstractJob.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/common/mapreduce/MergeVectorsCombiner.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/common/mapreduce/MergeVectorsReducer.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/common/mapreduce/TransposeMapper.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/common/mapreduce/VectorSumReducer.java
* /mahout/trunk/core/src/main/java/org/apache/mahout/math/VectorWritable.java
* /mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/hadoop/als/FeatureVectorWithRatingWritableTest.java
* /mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJobTest.java
* /mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/hadoop/als/PredictionJobTest.java
* /mahout/trunk/examples/bin/factorize-movielens-1M.sh
* /mahout/trunk/integration/src/test/java/org/apache/mahout/utils/eval
* /mahout/trunk/math/src/main/java/org/apache/mahout/math/als/AlternateLeastSquaresSolver.java
* /mahout/trunk/src/conf/driver.classes.props
* /mahout/trunk/src/conf/recommendfactorized.props

                
> Revisit the parallel ALS matrix factorization
> ---------------------------------------------
>
>                 Key: MAHOUT-872
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-872
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Sebastian Schelter
>            Assignee: Sebastian Schelter
>             Fix For: 0.6
>
>
> Our current code for computing a decomposition of a rating matrix with Alternating Least Squares (ALS) uses a lot of highly unefficient reduce side joins. 
> The rating matrix A is decomposed into a matrix U of users x features and a matrix M of items x features. Each of these matrices is iteratively recomputed until a maximum number of iterations is reached
> If we assume that U and M fit into the memory of a single mapper instance, each iteration can be implemented as single map-only job, which greatly improves the runtime of this job.
> Note that in spite of these improvements this job is still rather slow as Hadoop is a poor fit for iterative algorithms. Each iteration has to be scheduled again and data is always read from and written to disk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (MAHOUT-872) Revisit the parallel ALS matrix factorization

Posted by "Sebastian Schelter (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Schelter resolved MAHOUT-872.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.6
    
> Revisit the parallel ALS matrix factorization
> ---------------------------------------------
>
>                 Key: MAHOUT-872
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-872
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Sebastian Schelter
>            Assignee: Sebastian Schelter
>             Fix For: 0.6
>
>
> Our current code for computing a decomposition of a rating matrix with Alternating Least Squares (ALS) uses a lot of highly unefficient reduce side joins. 
> The rating matrix A is decomposed into a matrix U of users x features and a matrix M of items x features. Each of these matrices is iteratively recomputed until a maximum number of iterations is reached
> If we assume that U and M fit into the memory of a single mapper instance, each iteration can be implemented as single map-only job, which greatly improves the runtime of this job.
> Note that in spite of these improvements this job is still rather slow as Hadoop is a poor fit for iterative algorithms. Each iteration has to be scheduled again and data is always read from and written to disk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira