You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Ahmet Arslan <io...@yahoo.com> on 2011/04/20 23:54:02 UTC

IDMigration with BooleanPreferences

Hello Mahout community,

I load first two columns of Group Lens 100K (au.base) data into GenericBooleanPrefDataModel, 

1-) Using MemoryIDMigrator,
2-) Using a custom UpdatableIDMigrator, namely IdentityIDMigrator, that simply relies on Long.parseLong(stringID) and Long.toString(longID) method. Where IDs are already numeric/integers.

However I am seeing different set of recommendations in each case for the same user. Here is an example for the userID=1.

Results of memory migrator
716    1.0
673    1.0
320    1.0
1239    1.0
452    1.0
877    1.0
474    1.0
949    1.0
291    1.0
1213    1.0


Results of identity migrator
273    1.0
33    1.0
61    1.0
117    1.0
155    1.0
160    1.0
171    1.0
189    1.0
202    1.0
265    1.0

Here is the code snippet I was using http://pastebin.com/nvD4wWGg and IdentityMigerator http://pastebin.com/i6jzbGVV

Is this expected behavior? The order of recommendations being different, when just {user|item}IDs are transformed/mapped. 

Thank you.

P.S. I obtained the same behavior with GenericItemBasedRecommender and with different userIDs too.


Re: IDMigration with BooleanPreferences

Posted by Ahmet Arslan <io...@yahoo.com>.
Hi Sean,



> If your IDs are already numeric, why 'migrate' them?

Just playing around.

>The mapping in the migrator determines the item IDs. You are using two
>different mappings. Are you reverse-mapping the item IDs? otherwise no this
>doesn't surprise at all.

Yes i was reverse-mapping the itemIDs coming from RecommendedItem list.

>But, the other problem here is you're using a GenericItemBasedRecommender.
>Use GenericBooleanPrefItemBasedRecommender. This won't work at all -- the
>results are more or less random. That would also explain it.

That's it. I just repeated the test with preference values, and  I get the same/consistent results.
I didn't know that such Recommender implementation  - compatible with Boolean Preferences - exists. 
It seems that it is only available in trunk. By the way i was able to get almost the same results when I switched to GenericBooleanPrefUserBasedRecommender.
Works great, Thanks!


On Wed, Apr 20, 2011 at 10:54 PM, Ahmet Arslan <io...@yahoo.com> wrote:

> Hello Mahout community,
>
> I load first two columns of Group Lens 100K (au.base) data into
> GenericBooleanPrefDataModel,
>
> 1-) Using MemoryIDMigrator,
> 2-) Using a custom UpdatableIDMigrator, namely IdentityIDMigrator, that
> simply relies on Long.parseLong(stringID) and Long.toString(longID) method.
> Where IDs are already numeric/integers.
>
> However I am seeing different set of recommendations in each case for the
> same user. Here is an example for the userID=1.
>
> Results of memory migrator
> 716    1.0
> 673    1.0
> 320    1.0
> 1239    1.0
> 452    1.0
> 877    1.0
> 474    1.0
> 949    1.0
> 291    1.0
> 1213    1.0
>
>
> Results of identity migrator
> 273    1.0
> 33    1.0
> 61    1.0
> 117    1.0
> 155    1.0
> 160    1.0
> 171    1.0
> 189    1.0
> 202    1.0
> 265    1.0
>
> Here is the code snippet I was using http://pastebin.com/nvD4wWGg and
> IdentityMigerator http://pastebin.com/i6jzbGVV
>
> Is this expected behavior? The order of recommendations being different,
> when just {user|item}IDs are transformed/mapped.
>
> Thank you.
>
> P.S. I obtained the same behavior with GenericItemBasedRecommender and with
> different userIDs too.
>
>


Re: IDMigration with BooleanPreferences

Posted by Sean Owen <sr...@gmail.com>.
If your IDs are already numeric, why 'migrate' them?

The mapping in the migrator determines the item IDs. You are using two
different mappings. Are you reverse-mapping the item IDs? otherwise no this
doesn't surprise at all.

But, the other problem here is you're using a GenericItemBasedRecommender.
Use GenericBooleanPrefItemBasedRecommender. This won't work at all -- the
results are more or less random. That would also explain it.

On Wed, Apr 20, 2011 at 10:54 PM, Ahmet Arslan <io...@yahoo.com> wrote:

> Hello Mahout community,
>
> I load first two columns of Group Lens 100K (au.base) data into
> GenericBooleanPrefDataModel,
>
> 1-) Using MemoryIDMigrator,
> 2-) Using a custom UpdatableIDMigrator, namely IdentityIDMigrator, that
> simply relies on Long.parseLong(stringID) and Long.toString(longID) method.
> Where IDs are already numeric/integers.
>
> However I am seeing different set of recommendations in each case for the
> same user. Here is an example for the userID=1.
>
> Results of memory migrator
> 716    1.0
> 673    1.0
> 320    1.0
> 1239    1.0
> 452    1.0
> 877    1.0
> 474    1.0
> 949    1.0
> 291    1.0
> 1213    1.0
>
>
> Results of identity migrator
> 273    1.0
> 33    1.0
> 61    1.0
> 117    1.0
> 155    1.0
> 160    1.0
> 171    1.0
> 189    1.0
> 202    1.0
> 265    1.0
>
> Here is the code snippet I was using http://pastebin.com/nvD4wWGg and
> IdentityMigerator http://pastebin.com/i6jzbGVV
>
> Is this expected behavior? The order of recommendations being different,
> when just {user|item}IDs are transformed/mapped.
>
> Thank you.
>
> P.S. I obtained the same behavior with GenericItemBasedRecommender and with
> different userIDs too.
>
>