On Fri, Apr 5, 2013 at 8:07 AM, Sean Owen <sro...@gmail.com> wrote:

> OK yes you're on to something here. I should clarify. Koobas you are
> right that the ALS algorithm itself is fine here as far as my
> knowledge takes me. The thing it inverts to solve for a row of X is
> something like (Y' * Cu * Y + lambda * I). No problem there, and
> indeed I see why the regularization term is part of that.
>
> I'm talking about a later step, after the factorization. You get a new
> row in A and want to solve A = X*Y' for X, given the current Y. (And
> vice versa). I'm using a QR decomposition for that, but not to
> directly solve the system (and this may be the issue), but instead to
> compute and save off (Y' * Y)^-1 so that we can figure A * Y *
> (Y'*Y)^-1 very fast at runtime. That is to say the problem centers
> around the inverse of Y'*Y and in this example, it does not even
> exist.
>
> I don't see why the inverse of Y'*Y does not exist.
What Y do you end up with?


> I am not sure it's just a numerical precision thing since using an SVD
> to get the inverse gives the same result.
>
> But I certainly have examples where the data (A) is most certainly
> rank >> k and get this bad behavior -- for example, when lambda is
> very *high*.
>
>
> On Fri, Apr 5, 2013 at 6:57 AM, Ted Dunning <ted.dunn...@gmail.com> wrote:
> > On Fri, Apr 5, 2013 at 2:40 AM, Koobas <koo...@gmail.com> wrote:
> >
> >> Anyways, I saw no particular reason for the method to fail with k
> >> approaching or exceeding m and n.
> >> It does if there is no regularization.
> >> But with regularization in place, k can be pretty much anything.
> >>
> >
> > Ahh... this is an important point and it should handle all of the issues
> of
> > poor conditioning.
> >
> > The regularizer takes the rank deficient A and makes it reasonably well
> > conditioned.  How well conditioned depends on the choice of lambda, the
> > regularizing scale constant.
>

Reply via email to