Author: ssc
Date: Wed Nov  2 09:31:30 2011
New Revision: 1196517

URL: http://svn.apache.org/viewvc?rev=1196517&view=rev
Log:
MAHOUT-861 Simultaneously update left and right vectors while training 
ExpectationMaximizationSVDFactorizer

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ExpectationMaximizationSVDFactorizer.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ExpectationMaximizationSVDFactorizer.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ExpectationMaximizationSVDFactorizer.java?rev=1196517&r1=1196516&r2=1196517&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ExpectationMaximizationSVDFactorizer.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ExpectationMaximizationSVDFactorizer.java
 Wed Nov  2 09:31:30 2011
@@ -140,8 +140,9 @@ public final class ExpectationMaximizati
     double[] rightVectorJ = rightVectors[j];
     double prediction = predictRating(i, j, f, pref, true);
     double err = pref.getValue() - prediction;
+    double leftVectorIF = leftVectorI[f];
     leftVectorI[f] += learningRate * (err * rightVectorJ[f] - 
preventOverfitting * leftVectorI[f]);
-    rightVectorJ[f] += learningRate * (err * leftVectorI[f] - 
preventOverfitting * rightVectorJ[f]);
+    rightVectorJ[f] += learningRate * (err * leftVectorIF - preventOverfitting 
* rightVectorJ[f]);
     return err;
   }
 


Reply via email to