[
https://issues.apache.org/jira/browse/MAHOUT-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13598992#comment-13598992
]
Sebastian Schelter commented on MAHOUT-1144:
--------------------------------------------
It's a typo, Zeno's code in mymedialite does exactly what Agnonchik proposed:
https://github.com/zenogantner/MyMediaLite/blob/master/src/MyMediaLite/RatingPrediction/SVDPlusPlus.cs
Good find, Agnonchik, thank you.
> Wrong normalization in SVD++
> ----------------------------
>
> Key: MAHOUT-1144
> URL: https://issues.apache.org/jira/browse/MAHOUT-1144
> Project: Mahout
> Issue Type: Bug
> Components: Collaborative Filtering
> Affects Versions: 0.7
> Reporter: Sebastian Schelter
> Assignee: Sean Owen
> Labels: svd, svd++
> Fix For: 0.8
>
>
> Reported by Agnonchik:
> 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.
--
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