mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Owen <>
Subject Re: Recommending items for anonymous users
Date Mon, 19 Apr 2010 21:17:57 GMT
Yep, I know what you mean. I didn't really talk about this (yet) in
the book and likely should spend a page on it.

One solution is to punt on the problem, as Ted says: until you get
enough data or the user has a real presence, don't recommend.

At the other end of the spectrum, you can attempt to track this
anonymous user and give him/her a user ID, put it in the DataModel,
update recommendations constantly. This can get expensive to manage
efficiently if this is a frequent occurrence.

I can offer you a mildly hacky but fairly useful middle-ground:
PlusAnonymousUserDataModel. It decorates/wraps your DataModel and lets
you temporarily set preferences for one anonymous new user. (You need
to think of thread-safety potentially -- you can only do this for one
user at a time.)

This user temporarily acts like part of the DataModel without the
overhead of updating your real DataModel. You probably wouldn't want
to trigger refresh() of anything after setting these temporary values
since they're transient and shouldn't really affect your other
computations, though they could if you liked.

Really it's a fast way to stick in the data temporarily enough for
algorithms to seamlessly succeed in recommending. Let me know your
experience with that?

On Mon, Apr 19, 2010 at 10:07 PM, Joe Spears <> wrote:
> I just bought the MEAP Mahout in action book and think it is awesome. It is
> very helpful to see the simple examples and the plain English.
> I am having trouble with one use case in particular... making a
> recommendation for either an anonymous user or for a user that has never
> performed any action at all.... (e.g. the first time the user logs in after
> signing up for an account). Even in the Manning book, the documented
> workaround is to cluster the users... but even then (in the case of an
> anonymous user or before the very first interaction) there is no way to
> cluster a user successfully.
> In what ways do other people solve this initial discovery issue inside of
> Mahout? (i.e. outside of using a "stats table" that contains the most
> popular items and using that to produce results on behalf of the
> recommender).
> Thanks,
> Joe

View raw message