And one finds out if the DataModel is mutable by attempting mutate it,
and getting an exception?
Sean Owen wrote:
Yes that is what anonymous means here. No not all the DataModels are
mutable. For example FileDataModel is not. It periodically updates from the
files. The idea is that fully reloading and rebuilding can be slow, partly
because it theoretically requires plenty of precomputations down stream to
be re-done. So this is a way to perform the recommendation on some
hypothetical set of preferences that are not actually in existence in the
model.
On Tue, Sep 21, 2010 at 5:35 AM, Lance Norskog<[email protected]> wrote:
I conflated the idea of an "anonymous" user and the ability to do this
query: "suppose I like these 3 movies and hate these 2, what do you
suggest?" without rebuilding the data structures. Is this what "anonymous"
means, or is it something more internal?
The DataModel API lets me add and remove prefs between users and items that
are already in the data model. I can build a data model with an extra user
that can be poked at will, and in this way I can lock the recommender, set
some prefs and make a query, then remove the prefs and release the
recommender.
Are all data models obliged to honor this contract of continuous
mutability? Are they allowed to require a batch data rebuild for any change
in a user's prefs?
Sean Owen wrote:
Well, you could broadly call all machine learning "analysis and
optimization" of a sort! What do you mean, specifically? If you mean
you expect this to compute online in real-time rather than off-line,
in batch, as the output of some standalone tool -- it is online.
You're suppose to query these in realtime. The offline parts of this
project are the Hadoop-based ones.
There is also no such thing as an "anonymous user" in collaborative
filtering per se. It makes no difference whether a user has signed up
for an account or not. As long as you can assign some ID to the user,
you can inject it into this framework and use any algorithm you want.
So in that sense, the whole thing supports anonymous users, and I
don't understand the comment.
PAUDM is a practical 'hack' to speed up inclusion of such a user. It's
useful if not strictly required. It is not as if without that, only
users with an account can be used.
I'm sorry you're struggling, but it would be more useful to be
specific. I've used this particular hack in 2 systems, and helped
create 4 others without any particular use of 'anonymous users' and
they all most certainly had a point!
On Sun, Sep 19, 2010 at 12:21 AM, Lance Norskog<[email protected]>
wrote:
I don't see the point of a recommender system without the anonymous user
feature. Otherwise it's just a data analysis/optimization tool and there
are
plenty of simpler ways to do that.
Lance