[
https://issues.apache.org/jira/browse/MAHOUT-1106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13564212#comment-13564212
]
Agnonchik commented on MAHOUT-1106:
-----------------------------------
Seems that I have found a discrepancy of this implementation from the original
Yehuda Koren's SVD++ algorithm.
line 140:
double denominator = Math.sqrt(itemsByUser.size());
should be
double denominator = Math.sqrt(itemsByUser.get(u).size());
line 164:
double denominator = Math.sqrt(itemsByUser.size());
should be
double denominator = Math.sqrt(itemsByUser.get(u).size());
The sum of y parameters should be normalized by square root of number of items
for which user u provided implicit feedback. Am I right?
Currently, it is normalized by square root of number of users(!) not items.
> SVD++
> -----
>
> Key: MAHOUT-1106
> URL: https://issues.apache.org/jira/browse/MAHOUT-1106
> Project: Mahout
> Issue Type: New Feature
> Components: Collaborative Filtering
> Reporter: Zeno Gantner
> Assignee: Sebastian Schelter
> Attachments: SVDPlusPlusFactorizer.java
>
>
> Initial shot at SVD++.
> Relies on the RatingsSGDFactorizer class introduced in MAHOUT-1089.
> One could also think about several enhancements, e.g. having separate
> regularization constants for user and item factors.
> I am also the author of the SVDPlusPlus class in MyMediaLite, so if there are
> any similarities, no need to worry -- I am okay with relicensing this to the
> Apache 2.0 license.
> https://github.com/zenogantner/MyMediaLite/blob/master/src/MyMediaLite/RatingPrediction/SVDPlusPlus.cs
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira