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