You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Gruszowska Natalia <Na...@grupaonet.pl> on 2014/12/12 15:18:26 UTC

itemsimilarity - maxPrefs parameter

Hi All, 

In itemsimilarity metod tere is a parameter like:

--maxPrefs (-mppu) maxPrefs                               max number of
                                                          preferences to
                                                          consider per user or
                                                          item, users or items
                                                          with more preferences
                                                          will be sampled down
                                                          (default: 500)

How does it work exactly?
If I have 5 mln users and 5000 items and I run itemsimilarity with default maxPrefs, it consider only 500 ranks from those 5 mln or what? Is it sampling? What can I do to force calculation for all input data? 

			M1   M2   M3 .... M5000
U_1
U_2
...
U_5000000

What does mean "or" in definition:
"max number of preferences to consider per user or item"


Thx in advance
Natalia
                                                          
                                                          

Re: itemsimilarity - maxPrefs parameter

Posted by Pat Ferrel <pa...@occamsmachete.com>.
Increase the number to Integer.max or the highest of your number of users or items. The “or" means that the row and columns are both downsampled to that number or less.

To use all data you will also have to increase the —maxSimilaritiesPerItem

There are two marices in the Hadoop itemsimilarity. The input is A, and is one row per user with each item the user has interacted with. From this AtA is calculated as the output using LLR instead of actual matrix multiplication. This yields an AtA with values weighted but LLR strength. —maxSimilaritiesPerItem will further limit the values here to no more than that number. There is also a quality threshold, which is pretty difficult to use.

If you remove all of these downsampling params you will approach O(n^2) runtime, if you use them you will have O(n). You will also get rapidly diminishing returns by removing downsampling.

The indicator matrix will have arbitrarily many similar items of diminishing strength, some could be nearly useless. This potentially large vector may be unwieldy in you other calculations and has not had low value similar items filtered out.

Bottom line it that the downsampling is possible to tweak but removal altogether is not likely to be a good thing.


On Dec 12, 2014, at 6:18 AM, Gruszowska Natalia <Na...@grupaonet.pl> wrote:

Hi All, 

In itemsimilarity metod tere is a parameter like:

--maxPrefs (-mppu) maxPrefs                               max number of
                                                         preferences to
                                                         consider per user or
                                                         item, users or items
                                                         with more preferences
                                                         will be sampled down
                                                         (default: 500)

How does it work exactly?
If I have 5 mln users and 5000 items and I run itemsimilarity with default maxPrefs, it consider only 500 ranks from those 5 mln or what? Is it sampling? What can I do to force calculation for all input data? 

			M1   M2   M3 .... M5000
U_1
U_2
...
U_5000000

What does mean "or" in definition:
"max number of preferences to consider per user or item"


Thx in advance
Natalia