mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Lyubimov <>
Subject Re: ALS and SVD feature vectors
Date Wed, 04 Sep 2013 18:45:19 GMT
On Wed, Sep 4, 2013 at 11:33 AM, Koobas <> wrote:
> Let me rephrase.
> Suppose I did ALS decomposition of a matrix.
> Suppose I don't want to produce recommendations
>   (by calculating XY').
> Suppose I want to find users with similar preferences
>   (by calculating XX').
> Should the correlation of a user with himself be 1.0?

i take it you meant dot-self, not really correlation (in Pearson
sense). The answer is no, and dot-self is not a [good] measure of
similarity -- for the reasons you've mentioned, if nothing else.
People use cosine similarity or tons of other metrics such as Tanimoto
distances to assess real similarity in the user space and get a more
realistic similarity measure. But I am not sure if Mahout directly
assesses user-user similarities; i think stuff like RowSimilarityJob
is really user-product only.

> If the answer is "yes", that means that the user-feature
> vectors in X should be normalized, i.e., scaled to have
> the length of 1.0.
> If the answer is "no" then a user can possibly correlate
> stronger with another user than himself.
> Which should it be?
> Which one is the case in Mahout?
> On Wed, Sep 4, 2013 at 1:59 PM, Dmitriy Lyubimov <> wrote:
>> On Wed, Sep 4, 2013 at 10:07 AM, Koobas <> wrote:
>> > In ALS the coincidence matrix is approximated by XY',
>> > where X is user-feature, Y is item-feature.
>> > Now, here is the question:
>> > are/should the feature vectors be normalized before computing
>> > recommendations?
>> if it is a coincidence matrix in a sense that there are just 0's and
>> 1's  no it shouldn't (imo). However, if there's a case of
>> no-observations then things are a little bit more complicated (in a
>> sense that preference is still 0 and 1 but there're confidence
>> weights. Determining weights (no-observation weight vs. degree of
>> consumption) is usually advised to be determined via
>> (cross)validation. However at this point Mahout does not support
>> crossvalidation of those parameters, so usually people use some
>> guesswork (see Zhou-Koren-Volinsky paper about implicit feedback
>> datasets).
>> >
>> > Now, what happens in the case of SVD?
>> > The vectors are normal by definition.
>> > Are singular values used at all, or just left and right singular vectors?
>> SVD does not take weights so it cannot ignore or weigh out a
>> non-observation, which is why it is not well suited for matrix
>> completion problem per se.

View raw message