It depends a bit on the algorithm. The matrix-based approaches
naturally implicitly assume 0. The similarity-based ones don't assume
any value at all and missing data is ignored, not inferred. (But you
can make it infer values if you want. But it's not helpful in
general.)

On Sun, Apr 29, 2012 at 10:24 PM, Daniel Quach <danqu...@cs.ucla.edu> wrote:
> Just wondering, what does mahout do for user/item pairs that do not have a 
> rating? Does it fill it in with some average value? fill with zeros? 
> something else?
>
> On Apr 25, 2012, at 4:26 PM, Sean Owen wrote:
>
>> I don't know what the particular issue is; I imagine there's something
>> that needs some optimization in there.
>>
>> If you're definitely interested in ALS and recommenders, I don't feel
>> bad promoting our attempts to commercialize Mahout: Myrrix
>> (http://myrrix.com) is exactly an ALS-based recommender, and I know it
>> will crunch this data set into a model in 16 seconds on my laptop.
>> This part of it is also free / open source.
>>
>> Sean
>>
>> On Wed, Apr 25, 2012 at 9:28 PM, Daniel Quach <danqu...@cs.ucla.edu> wrote:
>>> I tried it again with 30 features and 3 iterations on the same data set, 
>>> it's still running for 10+ minutes just to factorize for the SVDRecommender 
>>> and has yet to complete. Perhaps it is my machine?
>>>
>>> I am running on a macbook air with 4GB of RAM and an intel i5 processor, I 
>>> specified 2GB of memory for java. (-Xmx2048M)
>>>
>>>
>>>
>>> On Apr 25, 2012, at 12:25 PM, Sean Owen wrote:
>>>
>>>> There's not a hard limit; the hard limit you would run into is memory,
>>>> if anything.
>>>>
>>>> This sounds slow. It may be that this implementation could use some
>>>> optimization somewhere. Are you running many iterations or using a
>>>> large number of features?
>>>>
>>>> I have a different ALS implementation that finishes this data set (3
>>>> iterations, 30 features -- quick and dirty) in more like 20 seconds.
>>>> Here's some info on a run on a much larger data set, using ALS, for
>>>> comparison: http://myrrix.com/example-performance/
>>>>
>>>> On Wed, Apr 25, 2012 at 8:17 PM, Daniel Quach <danqu...@cs.ucla.edu> wrote:
>>>>> Regarding the factorization (I am using ALSWRFactorizer), is there a 
>>>>> limit to how large a data set that can be factorized?
>>>>>
>>>>> I am trying to apply it on the 100K rating data set from group lens 
>>>>> (approximately 1000 users by 1600 movies).
>>>>>
>>>>> It's been running for at least 10 minutes now, I am getting the feeling 
>>>>> it might not be wise to apply the factorizer on a some of group lens's 
>>>>> larger data sets...
>>>>>
>>>>> On Apr 18, 2012, at 1:09 PM, Sean Owen wrote:
>>>>>
>>>>>> This paper doesn't address how to compute the SVD. There are two
>>>>>> approaches implemented with SVDRecommender. One computes a SVD, one
>>>>>> doesn't :) Really it ought to be called something like
>>>>>> MatrixFactorizationRecommender. The SVD factorizer uses a fairly
>>>>>> simple expectation maximization approach. I don't know how well this
>>>>>> scales. The other factorizer uses alternating-least-squares.
>>>>>>
>>>>>> What you come out with are not 3 matrices, from an SVD, but 2. The "S"
>>>>>> matrix in the SVD of singular values is mashed into the left/right
>>>>>> singular vectors.
>>>>>>
>>>>>> So to answer your question now, the prediction expression is
>>>>>> essentially the same, with two caveats:
>>>>>>
>>>>>> 1. It shows it as the product of U, sqrt(S), sqrt(S), and V. What you
>>>>>> get out of the factorizer are really more like the "U" and "V" with
>>>>>> the two sqrt(S) bits already multiplied in. The product comes out the
>>>>>> same, there is a conceptual difference I suppose but not a practical
>>>>>> one. In both cases you're really just multiplying the matrix factors
>>>>>> all back together to make the predictions.
>>>>>>
>>>>>> 2. This model subtracts the customer average rating in the beginning,
>>>>>> and adds it back at the end here. The SVDRecommender doesn't do that,
>>>>>> because, quite crucially, it turns sparse data into dense data (all
>>>>>> the zeroes become non-zero) and this crushes scalability.
>>>>>>
>>>>>> The answer is "mostly the same thing" yes. In fact this is broadly how
>>>>>> all matrix factorization approaches work.
>>>>>>
>>>>>> On Wed, Apr 18, 2012 at 2:49 PM, Daniel Quach <danqu...@cs.ucla.edu> 
>>>>>> 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 <danqu...@cs.ucla.edu> 
>>>>>>>> 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
>>>>>>>
>>>>>
>>>
>

Reply via email to