It sounds like you have substantially a search problem. You know the user's attributes, you know the items' attributes, and are just finding the closest match. That by itself doesn't need a recommender at all; it would just be extra complexity and fiddling to make it look like a recommender problem. Just do exactly as you say instead: find the closest match according to some definition of close. Recommenders are more for when you don't know these attributes.
On Sat, Mar 10, 2012 at 7:29 PM, Alex Geller <[email protected]> wrote: > 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 >> >> >>
