Hi Daniel,
so SVD is a model based recommender.

Here is the definition from my master thesis:
...
Model based approaches use statistical models from machine learning research to 
produce a model to find the underlying logic for preferences. They try to learn 
a model, for example, a baysian belief network. As an alternative, a 
dimensionality reduction technique like SVD [44] is used to extract the hidden 
factors.
...
2010 An architecture for evaluating recommender systems in real world scenarios 
- Manuel Blechschmidt

Mahout contains a SVDRecommender. The tricky part for SVD is the estimation of 
the 3 matrixes most of the time called U, S and V. Mahout contains two 
implementation both from Sebastian Schelter as far as I know for estimating 
them. The first one is an ALSWRFActorizer based on the following paper:

Large-scale Collaborative Filtering for the Netflix Prize
Alternating-Least-Squares with Weighted-λ-Regularization 
http://www.hpl.hp.com/personal/Robert_Schreiber/papers/2008%20AAIM%20Netflix/netflix_aaim08(submitted).pdf

The second one is a Expectation Maximization SVD Factorizer. 
http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm

If you want to understand SVD I would recommend the following R examples:
https://github.com/ManuelB/facebook-recommender-demo/blob/master/docs/BedConExamples.R

You can find a Mahout version using the ExpectationMaximationRecommender here:
https://github.com/ManuelB/facebook-recommender-demo/blob/master/src/main/java/de/apaxo/bedcon/AnimalFoodRecommender.java

The both examples above are documented in the following presentation:
http://www.slideshare.net/ManuelB86/how-to-build-a-recommender-system-based-on-mahout-and-java-ee

Further there is a SVD implementation from Sean Owen and his new company 
myrrix.com it is also based on an Alternate Least Square algorithm for 
factorization:
http://myrrix.com/docs/serving/javadoc/net/myrrix/online/generation/AlternatingLeastSquares.html
"Collaborative Filtering for Implicit Feedback Datasets" by Yifan Hu, Yehuda 
Koren, and Chris Volinsky 
http://myrrix.com/docs/serving/javadoc/net/myrrix/online/generation/www2.research.att.com/~yifanhu/PUB/cf.pdf

/Manuel

[44] Koren, Yehuda ; Bell, Robert ; Volinsky, Chris: Matrix Factorization Tech- 
niques for Recommender Systems. In: IEEE Computer 42 (2009), Nr. 8, S. 30–37. 
http://dx.doi.org/10.1109/MC.2009.263. – DOI 10.1109/MC.2009.263

On 18.04.2012, at 21:49, Daniel Quach wrote:

> I am basing my knowledge off this paper: 
> http://www.grouplens.org/papers/pdf/webKDD00.pdf
> 
> Your book provided algorithms for the user-based, item-based, and slope one 
> recommendation, but none for the SVDRecommender (I'm guessing because it was 
> experimental)
> 
> Does the SVDRecommender just compute the resultant matrices and follow a 
> formula similar to the one at the top of page 5 in the linked paper? I think 
> I understand the process of SVD but I'm just wondering how it's exactly 
> applied to obtain recommendations in mahout's case.
> 
> 
> On Apr 18, 2012, at 12:13 PM, Sean Owen wrote:
> 
>> Yes you could call it a model-based approach. I suppose I was thinking
>> more of Bayesian implementations when I wrote that sentence.
>> 
>> SVD is the Singular Value Decomposition -- are you asking what the SVD
>> is, or what matrix factorization is, or something about specific code
>> here? You can look up the SVD online.
>> 
>> On Wed, Apr 18, 2012 at 12:49 PM, Daniel Quach <[email protected]> wrote:
>>> I had originally thought the experimental SVDrecommender in mahout was a 
>>> model-based collaborative filtering technique. Looking at the book "Mahout 
>>> in Action", it mentions that model-based recommenders are a future goal for 
>>> mahout, which implies to me that the SVDRecommender is not considered 
>>> model-based.
>>> 
>>> How exactly does the SVDRecommender work in mahout? I can't seem to find 
>>> any description of the algorithm underneath it
> 

-- 
Manuel Blechschmidt
Dortustr. 57
14467 Potsdam
Mobil: 0173/6322621
Twitter: http://twitter.com/Manuel_B


Reply via email to