You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Tamas Jambor (JIRA)" <ji...@apache.org> on 2011/06/20 09:53:47 UTC

[jira] [Created] (MAHOUT-737) Implicit Alternating Least Squares SVD

Implicit Alternating Least Squares SVD
--------------------------------------

                 Key: MAHOUT-737
                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
             Project: Mahout
          Issue Type: Improvement
            Reporter: Tamas Jambor


I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Dmitriy Lyubimov <dl...@gmail.com>.
btw I think Mahout sparse matrix should be fairly efficient when
handling diagonal and triangular or Hessenberg like stuff.


On Mon, Jan 16, 2012 at 11:18 AM, Dmitriy Lyubimov <dl...@gmail.com> wrote:
> yes, the UpperTriangular in SSVD doesn't support some of the Matrix
> operations. On top of it, it is built with some assumptions that
> Mahout support in general should not have, or have an alternative for,
> for efficiency sake of ssvd:
>
> 1) it assumes the matrix is dense.
> 2) most importantly, it assumes the matrix is sufficiently small (it
> packs it into a single vector). that means it may experience problems
> when dense allocation exceeds  2G contiguous heap chunk.
> 3) consequently, it only serializes into a dense vector.
>
> for diagonal matrices, the same ssvd uses vector form. It does mean
> that you don't have a nice single method to implement multiplication;
> but it is just one vector-scalar loop instead, but oh well.
>
> -d
>
> On Sat, Jan 14, 2012 at 2:03 AM, Tamas Jambor <ja...@gmail.com> wrote:
>> thanks, ideally I would need both symmetric and diagonal.
>>
>> On Sat, Jan 14, 2012 at 8:26 AM, Sebastian Schelter <ss...@apache.org> wrote:
>>
>>> I think Tamas referred to matrices that are symmetric (only the upper
>>> triangular half would need to be stored) not diagonal matrices.
>>>
>>>
>>> On 14.01.2012 05:25, Lance Norskog wrote:
>>> > org.apache.mahout.math.DiagonalMatrix
>>> >
>>> > It even supports sparse values in the diagonal!
>>> >
>>> > On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
>>> > <ji...@apache.org> wrote:
>>> >>
>>> >>    [
>>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670]
>>> >>
>>> >> Tamas Jambor commented on MAHOUT-737:
>>> >> -------------------------------------
>>> >>
>>> >> I think so. When will you be releasing 0.6? I am planning to do a bit
>>> more extensive testing in the next 2-3 weeks.
>>> >>
>>> >>> Implicit Alternating Least Squares SVD
>>> >>> --------------------------------------
>>> >>>
>>> >>>                 Key: MAHOUT-737
>>> >>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>>> >>>             Project: Mahout
>>> >>>          Issue Type: New Feature
>>> >>>          Components: Collaborative Filtering
>>> >>>    Affects Versions: 0.6
>>> >>>            Reporter: Tamas Jambor
>>> >>>            Assignee: Sebastian Schelter
>>> >>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch,
>>> MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>>> >>>
>>> >>>
>>> >>> I am sharing this Java implementation of mine that is based on the
>>> paper - Collaborative Filtering with Implicit Datasets. The implementation
>>> is multi-treading and can be easily extended to use it on Hadoop. In fact
>>> this approach would possibly work with non-implicit datasets, but further
>>> testing is needed. The algorithm is tried and tested on an implicit
>>> TV-viewing dataset, and the performance was pretty good (details to follow).
>>> >>
>>> >> --
>>> >> This message is automatically generated by JIRA.
>>> >> If you think it was sent incorrectly, please contact your JIRA
>>> administrators:
>>> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>>> >> For more information on JIRA, see:
>>> http://www.atlassian.com/software/jira
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>>
>>>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Dmitriy Lyubimov <dl...@gmail.com>.
yes, the UpperTriangular in SSVD doesn't support some of the Matrix
operations. On top of it, it is built with some assumptions that
Mahout support in general should not have, or have an alternative for,
for efficiency sake of ssvd:

1) it assumes the matrix is dense.
2) most importantly, it assumes the matrix is sufficiently small (it
packs it into a single vector). that means it may experience problems
when dense allocation exceeds  2G contiguous heap chunk.
3) consequently, it only serializes into a dense vector.

for diagonal matrices, the same ssvd uses vector form. It does mean
that you don't have a nice single method to implement multiplication;
but it is just one vector-scalar loop instead, but oh well.

-d

On Sat, Jan 14, 2012 at 2:03 AM, Tamas Jambor <ja...@gmail.com> wrote:
> thanks, ideally I would need both symmetric and diagonal.
>
> On Sat, Jan 14, 2012 at 8:26 AM, Sebastian Schelter <ss...@apache.org> wrote:
>
>> I think Tamas referred to matrices that are symmetric (only the upper
>> triangular half would need to be stored) not diagonal matrices.
>>
>>
>> On 14.01.2012 05:25, Lance Norskog wrote:
>> > org.apache.mahout.math.DiagonalMatrix
>> >
>> > It even supports sparse values in the diagonal!
>> >
>> > On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
>> > <ji...@apache.org> wrote:
>> >>
>> >>    [
>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670]
>> >>
>> >> Tamas Jambor commented on MAHOUT-737:
>> >> -------------------------------------
>> >>
>> >> I think so. When will you be releasing 0.6? I am planning to do a bit
>> more extensive testing in the next 2-3 weeks.
>> >>
>> >>> Implicit Alternating Least Squares SVD
>> >>> --------------------------------------
>> >>>
>> >>>                 Key: MAHOUT-737
>> >>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>> >>>             Project: Mahout
>> >>>          Issue Type: New Feature
>> >>>          Components: Collaborative Filtering
>> >>>    Affects Versions: 0.6
>> >>>            Reporter: Tamas Jambor
>> >>>            Assignee: Sebastian Schelter
>> >>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch,
>> MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>> >>>
>> >>>
>> >>> I am sharing this Java implementation of mine that is based on the
>> paper - Collaborative Filtering with Implicit Datasets. The implementation
>> is multi-treading and can be easily extended to use it on Hadoop. In fact
>> this approach would possibly work with non-implicit datasets, but further
>> testing is needed. The algorithm is tried and tested on an implicit
>> TV-viewing dataset, and the performance was pretty good (details to follow).
>> >>
>> >> --
>> >> This message is automatically generated by JIRA.
>> >> If you think it was sent incorrectly, please contact your JIRA
>> administrators:
>> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>> >> For more information on JIRA, see:
>> http://www.atlassian.com/software/jira
>> >>
>> >>
>> >
>> >
>> >
>>
>>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Ted Dunning <te...@gmail.com>.
I Would recommend not worrying about having a special symmetric matrix for now.  It won't make a huge difference and it will be a pain to convert the one that ssvd uses. 

The diagonal matrix could make a much bigger difference. 

Sent from my iPhone

On Jan 14, 2012, at 15:06, Lance Norskog <go...@gmail.com> wrote:

> There is a packed symmetric matrix impl in the Stochastic SVD stuff,
> but it is hard-coded to a packed implementation.
> org.apache.mahout.math.hadoop.stochasticsvd.UpperTriangular - mahout/math
> 
> You could recode this to use the Vector class for storage. Be sure to
> run all of the Matrix unit tests if you do this; Matrix has a lot of
> things that can go wrong.
> 
> On Sat, Jan 14, 2012 at 2:03 AM, Tamas Jambor <ja...@gmail.com> wrote:
>> thanks, ideally I would need both symmetric and diagonal.
>> 
>> On Sat, Jan 14, 2012 at 8:26 AM, Sebastian Schelter <ss...@apache.org> wrote:
>> 
>>> I think Tamas referred to matrices that are symmetric (only the upper
>>> triangular half would need to be stored) not diagonal matrices.
>>> 
>>> 
>>> On 14.01.2012 05:25, Lance Norskog wrote:
>>>> org.apache.mahout.math.DiagonalMatrix
>>>> 
>>>> It even supports sparse values in the diagonal!
>>>> 
>>>> On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
>>>> <ji...@apache.org> wrote:
>>>>> 
>>>>>    [
>>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670]
>>>>> 
>>>>> Tamas Jambor commented on MAHOUT-737:
>>>>> -------------------------------------
>>>>> 
>>>>> I think so. When will you be releasing 0.6? I am planning to do a bit
>>> more extensive testing in the next 2-3 weeks.
>>>>> 
>>>>>> Implicit Alternating Least Squares SVD
>>>>>> --------------------------------------
>>>>>> 
>>>>>>                 Key: MAHOUT-737
>>>>>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>>>>>>             Project: Mahout
>>>>>>          Issue Type: New Feature
>>>>>>          Components: Collaborative Filtering
>>>>>>    Affects Versions: 0.6
>>>>>>            Reporter: Tamas Jambor
>>>>>>            Assignee: Sebastian Schelter
>>>>>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch,
>>> MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>>>>>> 
>>>>>> 
>>>>>> I am sharing this Java implementation of mine that is based on the
>>> paper - Collaborative Filtering with Implicit Datasets. The implementation
>>> is multi-treading and can be easily extended to use it on Hadoop. In fact
>>> this approach would possibly work with non-implicit datasets, but further
>>> testing is needed. The algorithm is tried and tested on an implicit
>>> TV-viewing dataset, and the performance was pretty good (details to follow).
>>>>> 
>>>>> --
>>>>> This message is automatically generated by JIRA.
>>>>> If you think it was sent incorrectly, please contact your JIRA
>>> administrators:
>>> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>>>>> For more information on JIRA, see:
>>> http://www.atlassian.com/software/jira
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
> 
> 
> 
> -- 
> Lance Norskog
> goksron@gmail.com

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Lance Norskog <go...@gmail.com>.
There is a packed symmetric matrix impl in the Stochastic SVD stuff,
but it is hard-coded to a packed implementation.
org.apache.mahout.math.hadoop.stochasticsvd.UpperTriangular - mahout/math

You could recode this to use the Vector class for storage. Be sure to
run all of the Matrix unit tests if you do this; Matrix has a lot of
things that can go wrong.

On Sat, Jan 14, 2012 at 2:03 AM, Tamas Jambor <ja...@gmail.com> wrote:
> thanks, ideally I would need both symmetric and diagonal.
>
> On Sat, Jan 14, 2012 at 8:26 AM, Sebastian Schelter <ss...@apache.org> wrote:
>
>> I think Tamas referred to matrices that are symmetric (only the upper
>> triangular half would need to be stored) not diagonal matrices.
>>
>>
>> On 14.01.2012 05:25, Lance Norskog wrote:
>> > org.apache.mahout.math.DiagonalMatrix
>> >
>> > It even supports sparse values in the diagonal!
>> >
>> > On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
>> > <ji...@apache.org> wrote:
>> >>
>> >>    [
>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670]
>> >>
>> >> Tamas Jambor commented on MAHOUT-737:
>> >> -------------------------------------
>> >>
>> >> I think so. When will you be releasing 0.6? I am planning to do a bit
>> more extensive testing in the next 2-3 weeks.
>> >>
>> >>> Implicit Alternating Least Squares SVD
>> >>> --------------------------------------
>> >>>
>> >>>                 Key: MAHOUT-737
>> >>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>> >>>             Project: Mahout
>> >>>          Issue Type: New Feature
>> >>>          Components: Collaborative Filtering
>> >>>    Affects Versions: 0.6
>> >>>            Reporter: Tamas Jambor
>> >>>            Assignee: Sebastian Schelter
>> >>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch,
>> MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>> >>>
>> >>>
>> >>> I am sharing this Java implementation of mine that is based on the
>> paper - Collaborative Filtering with Implicit Datasets. The implementation
>> is multi-treading and can be easily extended to use it on Hadoop. In fact
>> this approach would possibly work with non-implicit datasets, but further
>> testing is needed. The algorithm is tried and tested on an implicit
>> TV-viewing dataset, and the performance was pretty good (details to follow).
>> >>
>> >> --
>> >> This message is automatically generated by JIRA.
>> >> If you think it was sent incorrectly, please contact your JIRA
>> administrators:
>> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>> >> For more information on JIRA, see:
>> http://www.atlassian.com/software/jira
>> >>
>> >>
>> >
>> >
>> >
>>
>>



-- 
Lance Norskog
goksron@gmail.com

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Tamas Jambor <ja...@gmail.com>.
thanks, ideally I would need both symmetric and diagonal.

On Sat, Jan 14, 2012 at 8:26 AM, Sebastian Schelter <ss...@apache.org> wrote:

> I think Tamas referred to matrices that are symmetric (only the upper
> triangular half would need to be stored) not diagonal matrices.
>
>
> On 14.01.2012 05:25, Lance Norskog wrote:
> > org.apache.mahout.math.DiagonalMatrix
> >
> > It even supports sparse values in the diagonal!
> >
> > On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
> > <ji...@apache.org> wrote:
> >>
> >>    [
> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670]
> >>
> >> Tamas Jambor commented on MAHOUT-737:
> >> -------------------------------------
> >>
> >> I think so. When will you be releasing 0.6? I am planning to do a bit
> more extensive testing in the next 2-3 weeks.
> >>
> >>> Implicit Alternating Least Squares SVD
> >>> --------------------------------------
> >>>
> >>>                 Key: MAHOUT-737
> >>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
> >>>             Project: Mahout
> >>>          Issue Type: New Feature
> >>>          Components: Collaborative Filtering
> >>>    Affects Versions: 0.6
> >>>            Reporter: Tamas Jambor
> >>>            Assignee: Sebastian Schelter
> >>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch,
> MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
> >>>
> >>>
> >>> I am sharing this Java implementation of mine that is based on the
> paper - Collaborative Filtering with Implicit Datasets. The implementation
> is multi-treading and can be easily extended to use it on Hadoop. In fact
> this approach would possibly work with non-implicit datasets, but further
> testing is needed. The algorithm is tried and tested on an implicit
> TV-viewing dataset, and the performance was pretty good (details to follow).
> >>
> >> --
> >> This message is automatically generated by JIRA.
> >> If you think it was sent incorrectly, please contact your JIRA
> administrators:
> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> >> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
> >>
> >>
> >
> >
> >
>
>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Sebastian Schelter <ss...@apache.org>.
I think Tamas referred to matrices that are symmetric (only the upper
triangular half would need to be stored) not diagonal matrices.


On 14.01.2012 05:25, Lance Norskog wrote:
> org.apache.mahout.math.DiagonalMatrix
> 
> It even supports sparse values in the diagonal!
> 
> On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
> <ji...@apache.org> wrote:
>>
>>    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670 ]
>>
>> Tamas Jambor commented on MAHOUT-737:
>> -------------------------------------
>>
>> I think so. When will you be releasing 0.6? I am planning to do a bit more extensive testing in the next 2-3 weeks.
>>
>>> Implicit Alternating Least Squares SVD
>>> --------------------------------------
>>>
>>>                 Key: MAHOUT-737
>>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>>>             Project: Mahout
>>>          Issue Type: New Feature
>>>          Components: Collaborative Filtering
>>>    Affects Versions: 0.6
>>>            Reporter: Tamas Jambor
>>>            Assignee: Sebastian Schelter
>>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>>>
>>>
>>> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow).
>>
>> --
>> This message is automatically generated by JIRA.
>> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>> For more information on JIRA, see: http://www.atlassian.com/software/jira
>>
>>
> 
> 
> 


Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Lance Norskog <go...@gmail.com>.
org.apache.mahout.math.DiagonalMatrix

It even supports sparse values in the diagonal!

On Fri, Jan 13, 2012 at 9:00 AM, Tamas Jambor (Commented) (JIRA)
<ji...@apache.org> wrote:
>
>    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670 ]
>
> Tamas Jambor commented on MAHOUT-737:
> -------------------------------------
>
> I think so. When will you be releasing 0.6? I am planning to do a bit more extensive testing in the next 2-3 weeks.
>
>> Implicit Alternating Least Squares SVD
>> --------------------------------------
>>
>>                 Key: MAHOUT-737
>>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>>             Project: Mahout
>>          Issue Type: New Feature
>>          Components: Collaborative Filtering
>>    Affects Versions: 0.6
>>            Reporter: Tamas Jambor
>>            Assignee: Sebastian Schelter
>>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>>
>>
>> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow).
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>



-- 
Lance Norskog
goksron@gmail.com

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Ted Dunning <te...@gmail.com>.
Yes.  Decomposition methods are better ways to do this.

QR is commonly used if memory suffices.  Also, if the system Ax = b is
over-determined, then the related system A'A x = A' b can be solved using
the Cholesky decomposition L L' = A'A where L is lower triangular.

In either case, the idea is that Q and R are both easily inverted (Q' Q = I)
or solved (R and L succumb to forward or backward substitution.

QR decomposition generally results in slightly better accuracy.

LU decomposition is generally not as good as QR decomposition.

All of these methods are far superior to any general matrix inversion.

On Sun, Sep 4, 2011 at 8:30 AM, Tamas Jambor <ja...@gmail.com> wrote:

> this is interesting. but the whole idea in this case is to solve a
> linear system using least squares. The standard solution involves
> calculating the inverse of the matrix. what would you suggest in this
> case? we can replace the inverse of the matrix by substituting it with
> some form of decomposition?
>
> On Mon, Jun 27, 2011 at 3:57 PM, Ted Dunning <te...@gmail.com>
> wrote:
> > Formulae that involve the inverse of a matrix can be framed as solving a
> > linear system.  It is almost always more accurate and faster to solve
> that
> > linear system rather than invert the matrix.  Similarly, there may not be
> an
> > actual inverse of the matrix, but there may still be good answers to the
> > problem.
> >
> > Commonly a good way to solve the system is using a decomposition.  Many
> > decompositions can be framed as inverses without actually calculating the
> > inverse.  For instance, QR decomposition allows left or right
> multiplication
> > by the inverse of a matrix because R has a special form and Q is a unit
> > matrix.
> >
> > On Mon, Jun 27, 2011 at 12:36 AM, Tamas Jambor <ja...@gmail.com>
> wrote:
> >
> >> how does that relate the inverse of the matrix?
> >>
> >>
> >> On Thu, Jun 23, 2011 at 5:53 PM, Ted Dunning <te...@gmail.com>
> >> wrote:
> >> > Inverting a matrix is a bug.
> >> >
> >> > You should always use a decomposition method to solve a linear system.
> >>  QR
> >> > is usually a good candidate.
> >> >
> >> > On Thu, Jun 23, 2011 at 8:19 AM, Sebastian Schelter (JIRA)
> >> > <ji...@apache.org>wrote:
> >> >
> >> >>
> >> >>    [
> >> >>
> >>
> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918
> >> ]
> >> >>
> >> >> Sebastian Schelter commented on MAHOUT-737:
> >> >> -------------------------------------------
> >> >>
> >> >> I had a quick look at the patch, seems like most of the stuff could
> also
> >> be
> >> >> handled by Mahout's matrix code. There's only one issue, do we have
> code
> >> to
> >> >> invert a matrix?
> >> >>
> >> >> > Implicit Alternating Least Squares SVD
> >> >> > --------------------------------------
> >> >> >
> >> >> >                 Key: MAHOUT-737
> >> >> >                 URL:
> https://issues.apache.org/jira/browse/MAHOUT-737
> >> >> >             Project: Mahout
> >> >> >          Issue Type: Improvement
> >> >> >            Reporter: Tamas Jambor
> >> >> >            Assignee: Sebastian Schelter
> >> >> >         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
> >> >> >
> >> >> >
> >> >> > I am sharing this Java implementation of mine that is based on the
> >> paper
> >> >> - Collaborative Filtering with Implicit Datasets. The implementation
> is
> >> >> multi-treading and can be easily extended to use it on Hadoop. In
> fact
> >> this
> >> >> approach would possibly work with non-implicit datasets, but further
> >> testing
> >> >> is needed. The algorithm is tried and tested on an implicit
> TV-viewing
> >> >> dataset, and the performance was pretty good (details to follow).
> >> >>
> >> >> --
> >> >> This message is automatically generated by JIRA.
> >> >> For more information on JIRA, see:
> >> http://www.atlassian.com/software/jira
> >> >>
> >> >>
> >> >>
> >> >
> >>
> >
>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Tamas Jambor <ja...@gmail.com>.
this is interesting. but the whole idea in this case is to solve a
linear system using least squares. The standard solution involves
calculating the inverse of the matrix. what would you suggest in this
case? we can replace the inverse of the matrix by substituting it with
some form of decomposition?

On Mon, Jun 27, 2011 at 3:57 PM, Ted Dunning <te...@gmail.com> wrote:
> Formulae that involve the inverse of a matrix can be framed as solving a
> linear system.  It is almost always more accurate and faster to solve that
> linear system rather than invert the matrix.  Similarly, there may not be an
> actual inverse of the matrix, but there may still be good answers to the
> problem.
>
> Commonly a good way to solve the system is using a decomposition.  Many
> decompositions can be framed as inverses without actually calculating the
> inverse.  For instance, QR decomposition allows left or right multiplication
> by the inverse of a matrix because R has a special form and Q is a unit
> matrix.
>
> On Mon, Jun 27, 2011 at 12:36 AM, Tamas Jambor <ja...@gmail.com> wrote:
>
>> how does that relate the inverse of the matrix?
>>
>>
>> On Thu, Jun 23, 2011 at 5:53 PM, Ted Dunning <te...@gmail.com>
>> wrote:
>> > Inverting a matrix is a bug.
>> >
>> > You should always use a decomposition method to solve a linear system.
>>  QR
>> > is usually a good candidate.
>> >
>> > On Thu, Jun 23, 2011 at 8:19 AM, Sebastian Schelter (JIRA)
>> > <ji...@apache.org>wrote:
>> >
>> >>
>> >>    [
>> >>
>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918
>> ]
>> >>
>> >> Sebastian Schelter commented on MAHOUT-737:
>> >> -------------------------------------------
>> >>
>> >> I had a quick look at the patch, seems like most of the stuff could also
>> be
>> >> handled by Mahout's matrix code. There's only one issue, do we have code
>> to
>> >> invert a matrix?
>> >>
>> >> > Implicit Alternating Least Squares SVD
>> >> > --------------------------------------
>> >> >
>> >> >                 Key: MAHOUT-737
>> >> >                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>> >> >             Project: Mahout
>> >> >          Issue Type: Improvement
>> >> >            Reporter: Tamas Jambor
>> >> >            Assignee: Sebastian Schelter
>> >> >         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>> >> >
>> >> >
>> >> > I am sharing this Java implementation of mine that is based on the
>> paper
>> >> - Collaborative Filtering with Implicit Datasets. The implementation is
>> >> multi-treading and can be easily extended to use it on Hadoop. In fact
>> this
>> >> approach would possibly work with non-implicit datasets, but further
>> testing
>> >> is needed. The algorithm is tried and tested on an implicit TV-viewing
>> >> dataset, and the performance was pretty good (details to follow).
>> >>
>> >> --
>> >> This message is automatically generated by JIRA.
>> >> For more information on JIRA, see:
>> http://www.atlassian.com/software/jira
>> >>
>> >>
>> >>
>> >
>>
>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Ted Dunning <te...@gmail.com>.
Formulae that involve the inverse of a matrix can be framed as solving a
linear system.  It is almost always more accurate and faster to solve that
linear system rather than invert the matrix.  Similarly, there may not be an
actual inverse of the matrix, but there may still be good answers to the
problem.

Commonly a good way to solve the system is using a decomposition.  Many
decompositions can be framed as inverses without actually calculating the
inverse.  For instance, QR decomposition allows left or right multiplication
by the inverse of a matrix because R has a special form and Q is a unit
matrix.

On Mon, Jun 27, 2011 at 12:36 AM, Tamas Jambor <ja...@gmail.com> wrote:

> how does that relate the inverse of the matrix?
>
>
> On Thu, Jun 23, 2011 at 5:53 PM, Ted Dunning <te...@gmail.com>
> wrote:
> > Inverting a matrix is a bug.
> >
> > You should always use a decomposition method to solve a linear system.
>  QR
> > is usually a good candidate.
> >
> > On Thu, Jun 23, 2011 at 8:19 AM, Sebastian Schelter (JIRA)
> > <ji...@apache.org>wrote:
> >
> >>
> >>    [
> >>
> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918
> ]
> >>
> >> Sebastian Schelter commented on MAHOUT-737:
> >> -------------------------------------------
> >>
> >> I had a quick look at the patch, seems like most of the stuff could also
> be
> >> handled by Mahout's matrix code. There's only one issue, do we have code
> to
> >> invert a matrix?
> >>
> >> > Implicit Alternating Least Squares SVD
> >> > --------------------------------------
> >> >
> >> >                 Key: MAHOUT-737
> >> >                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
> >> >             Project: Mahout
> >> >          Issue Type: Improvement
> >> >            Reporter: Tamas Jambor
> >> >            Assignee: Sebastian Schelter
> >> >         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
> >> >
> >> >
> >> > I am sharing this Java implementation of mine that is based on the
> paper
> >> - Collaborative Filtering with Implicit Datasets. The implementation is
> >> multi-treading and can be easily extended to use it on Hadoop. In fact
> this
> >> approach would possibly work with non-implicit datasets, but further
> testing
> >> is needed. The algorithm is tried and tested on an implicit TV-viewing
> >> dataset, and the performance was pretty good (details to follow).
> >>
> >> --
> >> This message is automatically generated by JIRA.
> >> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
> >>
> >>
> >>
> >
>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Tamas Jambor <ja...@gmail.com>.
how does that relate the inverse of the matrix?


On Thu, Jun 23, 2011 at 5:53 PM, Ted Dunning <te...@gmail.com> wrote:
> Inverting a matrix is a bug.
>
> You should always use a decomposition method to solve a linear system.  QR
> is usually a good candidate.
>
> On Thu, Jun 23, 2011 at 8:19 AM, Sebastian Schelter (JIRA)
> <ji...@apache.org>wrote:
>
>>
>>    [
>> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918]
>>
>> Sebastian Schelter commented on MAHOUT-737:
>> -------------------------------------------
>>
>> I had a quick look at the patch, seems like most of the stuff could also be
>> handled by Mahout's matrix code. There's only one issue, do we have code to
>> invert a matrix?
>>
>> > Implicit Alternating Least Squares SVD
>> > --------------------------------------
>> >
>> >                 Key: MAHOUT-737
>> >                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>> >             Project: Mahout
>> >          Issue Type: Improvement
>> >            Reporter: Tamas Jambor
>> >            Assignee: Sebastian Schelter
>> >         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>> >
>> >
>> > I am sharing this Java implementation of mine that is based on the paper
>> - Collaborative Filtering with Implicit Datasets. The implementation is
>> multi-treading and can be easily extended to use it on Hadoop. In fact this
>> approach would possibly work with non-implicit datasets, but further testing
>> is needed. The algorithm is tried and tested on an implicit TV-viewing
>> dataset, and the performance was pretty good (details to follow).
>>
>> --
>> This message is automatically generated by JIRA.
>> For more information on JIRA, see: http://www.atlassian.com/software/jira
>>
>>
>>
>

Re: [jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by Ted Dunning <te...@gmail.com>.
Inverting a matrix is a bug.

You should always use a decomposition method to solve a linear system.  QR
is usually a good candidate.

On Thu, Jun 23, 2011 at 8:19 AM, Sebastian Schelter (JIRA)
<ji...@apache.org>wrote:

>
>    [
> https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918]
>
> Sebastian Schelter commented on MAHOUT-737:
> -------------------------------------------
>
> I had a quick look at the patch, seems like most of the stuff could also be
> handled by Mahout's matrix code. There's only one issue, do we have code to
> invert a matrix?
>
> > Implicit Alternating Least Squares SVD
> > --------------------------------------
> >
> >                 Key: MAHOUT-737
> >                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
> >             Project: Mahout
> >          Issue Type: Improvement
> >            Reporter: Tamas Jambor
> >            Assignee: Sebastian Schelter
> >         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
> >
> >
> > I am sharing this Java implementation of mine that is based on the paper
> - Collaborative Filtering with Implicit Datasets. The implementation is
> multi-treading and can be easily extended to use it on Hadoop. In fact this
> approach would possibly work with non-implicit datasets, but further testing
> is needed. The algorithm is tried and tested on an implicit TV-viewing
> dataset, and the performance was pretty good (details to follow).
>
> --
> This message is automatically generated by JIRA.
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
>

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185670#comment-13185670 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

I think so. When will you be releasing 0.6? I am planning to do a bit more extensive testing in the next 2-3 weeks.
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Attachment: MAHOUT-737.patch

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053918#comment-13053918 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

I had a quick look at the patch, seems like most of the stuff could also be handled by Mahout's matrix code. There's only one issue, do we have code to invert a matrix?

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Comment: was deleted

(was: small changes )

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13265753#comment-13265753 ] 

Hudson commented on MAHOUT-737:
-------------------------------

Integrated in Mahout-Quality #1452 (See [https://builds.apache.org/job/Mahout-Quality/1452/])
    MAHOUT-737 Implicit Alternating Least Squares SVD (Revision 1331469)

     Result = FAILURE
ssc : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1331469
Files : 
* /mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ImplicitLinearRegressionFactorizer.java

                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>             Fix For: 0.7
>
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737-3.patch, MAHOUT-737-3.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051867#comment-13051867 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

sure, I will have a look.

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051850#comment-13051850 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

(sorry, patch is coming in a minute.)

this SVD is quite different from the previous one, as this one fills up the missing data-points and solves it on the whole matrix, designed for implicit datasets. 


> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051858#comment-13051858 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

I think the advantage of this method it that it is way much faster than the normal way of solving alternating least squares, plus the way it it handles implicit data works well. I don't think there is something closely related in Mahout at the moment. 

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185622#comment-13185622 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

hi Sebastian,
I managed to run the code, it get reasonable results. I am a bit concerned with the memory usage. Is there a more efficient way to store diagonal matrices? I assume the don't have to be stored in DenseMatrix, as the storage and computation is not very efficient that case.
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051862#comment-13051862 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

Patch attached. (I used an external library for matrix calculation, I guess that can be replaced by something internal).

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Attachment: MAHOUT-737-3.patch
    
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737-3.patch, MAHOUT-737-3.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Work started] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on MAHOUT-737 started by Sebastian Schelter.

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>             Fix For: 0.7
>
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737-3.patch, MAHOUT-737-3.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051854#comment-13051854 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

I concur, the goal should definitely be to have interchangeable implementations of our Factorizer interface that can all be used with SVDRecommender, so our users can pick the implementation that works best for them in their usecase.

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152885#comment-13152885 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

Sebastian,
yes, it is based on that paper. the changes look good. I can run it on my implicit dataset I wrote the code originally, but cannot really share the results. or alternatively we could run it on this last.fm data http://mtg.upf.edu/node/1671 ?
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Schelter updated MAHOUT-737:
--------------------------------------

    Attachment: MAHOUT-737-2.patch

I refactored the patch to work with our math code.

Instead of explicitly computing x = A^-1 y you can simply solve Ax = y which is offered by our QRDecomposition class. No need to explictly compute inverses.

I think some calculations in the code could still be optimized, but I didn't want to change too much in this first step.

Tamas, can you have a look at my changes? Do you have an idea how we could test this implementation?

It would also be great if you could point me to the paper this algorithm is based on. Is it "Collaborative Filtering for Implicit Feedback Datasets" http://research.yahoo.com/pub/2433 ?



                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sean Owen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Owen reassigned MAHOUT-737:
--------------------------------

    Assignee: Sebastian Schelter

My one significant concern with the patch is that it is introducing JAMA, instead of using Mahout matrix representations and methods. Now, that's not to say we shouldn't use JAMA or even move to it, but it's a different question.

How hard is it to not use JAMA?

Otherwise looking great.

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Schelter updated MAHOUT-737:
--------------------------------------

    Fix Version/s: Backlog

Putting this into backlog as we have not seen an updated patch for a long time (unfortunately).
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>             Fix For: Backlog
>
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Schelter updated MAHOUT-737:
--------------------------------------

          Component/s: Collaborative Filtering
    Affects Version/s: 0.6
        Fix Version/s:     (was: Backlog)
           Issue Type: New Feature  (was: Improvement)
    
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051863#comment-13051863 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

Do you think it would be possible to refactor this code to implement org.apache.mahout.cf.taste.impl.recommender.svd.Factorizer ? That would be great because then we could easily drop it into the existing (very lean) SVDRecommender. 

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051851#comment-13051851 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

Is it an implementation of this paper http://research.yahoo.com/pub/2433 ? If it is, it would be great to get it into Mahout!

AFAIK our current SVD recommenders don't work with implicit feedback (boolean preferences in Mahout lingo) so we should be keen on getting that one in. Its method is closely related to our existing ALS recommender as far as I recall from reading the paper some months ago.


> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Attachment: MAHOUT-737.patch

Refactored using SVD recommender. 

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Status: Open  (was: Patch Available)

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Schelter resolved MAHOUT-737.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.7
    
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>             Fix For: 0.7
>
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737-3.patch, MAHOUT-737-3.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185639#comment-13185639 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

I don't recall that we have a special data structure for diagonal matrices yet. Would be a good idea to create one sometime. But I think the patch could be committed without this, do you agree?
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sean Owen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051853#comment-13051853 ] 

Sean Owen commented on MAHOUT-737:
----------------------------------

That's great. On the one hand it's good to have another implementation if it's providing value; it would be significantly better the more it can be refactored to integrate with existing implementations. I imagine you are implementing Recommender for instance and that's good. The more of that the better... just trying to avoid becoming a project of 17 individual slightly different implementations of similar things.

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sebastian Schelter (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152971#comment-13152971 ] 

Sebastian Schelter commented on MAHOUT-737:
-------------------------------------------

It would be great if you could run it on your proprietary dataset and simply tell if you get reasonable results.
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Status: Patch Available  (was: Open)

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053627#comment-13053627 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

One thing I am not sure how to generalise is the confidence value, as this model also includes a confidence value assigned to each rating per user and per item. Normally this is data dependent, for example it could be increased if the user repeatedly watched an item, or there is a strong indication of preference. 

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Attachment: MAHOUT-737.patch

small changes

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13187102#comment-13187102 ] 

Tamas Jambor commented on MAHOUT-737:
-------------------------------------

I managed to make it work properly now.
Changed the way the decomposition is calculated. Replaced the diagonal matrices and implemented a simple way to calculate confidence so that it is not minimising on the zeros. I think it is safe to commit it now.

By the way, in theory this should run with non-implicit data, anyone wants to give it a try?
                
> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Collaborative Filtering
>    Affects Versions: 0.6
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737-2.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Sean Owen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051848#comment-13051848 ] 

Sean Owen commented on MAHOUT-737:
----------------------------------

(Tamas are you attaching a patch?)
And then Sebastian, I wonder how you think it may relate to your work?
And Tamas, how does this related to SVDRecommender already in the project?

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MAHOUT-737) Implicit Alternating Least Squares SVD

Posted by "Tamas Jambor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Jambor updated MAHOUT-737:
--------------------------------

    Attachment: MAHOUT-737.patch

small changes 

> Implicit Alternating Least Squares SVD
> --------------------------------------
>
>                 Key: MAHOUT-737
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-737
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Tamas Jambor
>            Assignee: Sebastian Schelter
>         Attachments: MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch, MAHOUT-737.patch
>
>
> I am sharing this Java implementation of mine that is based on the paper - Collaborative Filtering with Implicit Datasets. The implementation is multi-treading and can be easily extended to use it on Hadoop. In fact this approach would possibly work with non-implicit datasets, but further testing is needed. The algorithm is tried and tested on an implicit TV-viewing dataset, and the performance was pretty good (details to follow). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira