Yep, filtering is really what I need in this case, I'll give IDRescorer a
look.
Regarding the "perfect item" (simplified for the sake of example) - let's
assume I have the info that the user is a 20 y.o. woman who likes the color
red, and it's going to be christmas in a week's time. So if she's looking
at greeting cards, I'll create a "perfect" card which has parameters of
{'christmas','dominating color - red','for women','for youngsters'} and
look for the card that most closely matches that perfect card (ignore the
fact that she's probably buying the card for someone else, again that's
just an example).Might use filtering here to only consider chrsitmas cards
since others are probably irrelevant even if they get a high score on other
parameters. So I guess Item-Based similarity and filtering using IDRescorer
should suffice.
Since I'll probably want to integrate User-based recommendation as well at
a later point - is there any existing Recommender implementation which
blends both item-based and user-based recommendations?
On Sat, Mar 10, 2012 at 9:06 PM, Sean Owen <[email protected]> wrote:
> It really depends on what you mean by "based on time", as it could
> mean many things. I'm assuming you mean that an item's seasonality
> should somehow boost its importance, and boost its perceived value, by
> some multiplier.
>
> The useful application of that idea is in fact what you get in
> IDRescorer. I could imagine you also use that boost in similarity
> computations, though I don't think it would make much difference.
>
> IDRescorer is for filtering as well as boosting. No, it is not a tool
> for reordering per se, but altering scores, which of course could
> affect ordering. From what you say I think it really is what you want,
> or at least 80% of it.
>
> You can create a 'perfect item' but how then does the user come into
> play for recommendations -- what about that is affected by user prefs.
>
>
> On Sat, Mar 10, 2012 at 6:49 PM, Alex Geller <[email protected]> wrote:
> > By "time-based" I meant something that supports recommendation by time of
> > year (#2 on my list).
> >
> > IDRescorer looks interesting, but (correct me if I'm wrong, I'm a
> complete
> > newbie with Mahout and generally in this field) it seems more like a tool
> > to refine the order of recommended items after the initial recommendation
> > logic was applied. What I need is for the recommendation logic itself to
> be
> > based on time and user-item similarity (I probably won't have relevant
> > user-user information anyway). So, for example, I'm able to recommend
> > christmas-related items only a week before christmas, and not just give
> > them a boost using Rescorer.
> >
> > If that isn't possible I'm considering creating a virtual "perfect item"
> > from the data I have (time of year and user data) and running an
> > ItemBasedRecommender to find the items that most closely match this
> perfect
> > item. Do you think that would be a feasible solution?
> >
> > On Sat, Mar 10, 2012 at 6:25 PM, Sean Owen <[email protected]> wrote:
> >
> >> If by #3 you mean you have preferences for many users, this is of
> >> course the standard input for a recommender, yes. If you also have
> >> some user-user similarity info beyond that, you can implement
> >> UserSimliarity and use GenericUserBasedRecommender to incorporate
> >> that.
> >>
> >> If you want to boost items according to some logic, like time (#2),
> >> use IDRescorer.
> >>
> >> It sounds like you have a priori understanding of what items are best
> >> for what users (#1). That's not something you can use directly, but I
> >> suppose you could simply use this info as a multiplier (again with
> >> IDRescorer), or perhaps the basis of a separate set of recommendations
> >> you blend.
> >>
> >> What's a time-based recommender?
> >>
> >>
> >> On Sat, Mar 10, 2012 at 2:51 PM, Alex Geller <[email protected]> wrote:
> >> > Hi,
> >> >
> >> > I want to write a recommendation system which recommends items to
> >> customers
> >> > based on the following parameters (and some others):
> >> >
> >> > - User-item similarity (for example recommend items which target
> >> certain
> >> > gender,age etc. to users which meet these criteria)
> >> > - Time of year (recommend items with a holiday theme before a major
> >> > holiday)
> >> > - Preferences of similar users
> >> >
> >> > I know Mahout supports User-User and Item-Item similarity, but how
> can I
> >> > implement User-Item similarity?
> >> > Also, is there any support for time-based recommendations?
> >> >
> >> >
> >> > Thanks,
> >> >
> >> > Alex
> >>
>