Hi all,

I'm new to this forum and haven't seen the code you are talking about, so
take this with a grain of salt.  The way we handle "banned items" at
Grooveshark is to post-process the itemID pairs in Hive.  If a user dislikes
a recommended song/artist, an item pair is stored in HDFS and then when the
recs are computed, those banned user-item pairs are taken into account.
Here is an example query:

SELECT DISTINCT st.uid, st.simuid, IF(b.uid=st.uid,1,0) as banned  FROM
streams_u2u st LEFT OUTER JOIN bannedsimusers b ON (b.simuid=st.simuid);

That query will print out a 1 or a 0 if the recommended item pair is banned
or not.  Hive also supports case statements (I think), so you can make a
range of "banned-ness" I guess.  Just another solution to the "dislike"
problem.

Chris

On Mon, Aug 23, 2010 at 12:03 PM, Sean Owen <[email protected]> wrote:

> Sebastian is right that in this case, you might well model these as
> preferences with low value. It's reasonable, but, I also agree that
> somehow an 'ignored' recommendation does not necessarily mean the same
> as a low preference. There are some situations where you might want to
> exclude items from recommendation for many reasons (e.g. it's
> currently out of stock).
>
> This is what the Rescorer does in the non-distributed code. There is
> not yet any counterpart in the distributed code.
>
> It would be fairly simple. You just need a job to modify the estimated
> preference vector after recommendation, in whatever way you want. Here
> you just clear the entries in the vector for anything you don't want
> recommended. Any other transformation is possible.
>
> This is how such a function like this ought to look in Mahout, I think
> -- some kind of RescorerMapper / RescorerReducer. If you can make a
> patch along those lines, I'm sure we could integrate it.
>
> Sean
>
> On Mon, Aug 23, 2010 at 3:28 PM, han henry <[email protected]> wrote:
> > Hi,Sebastian
> >
> > Actually we has three types feedback types:
> >
> > 1) user more likes the recommendation, we give a higher score and add a
> new
> > preference,this preference is used to calculate similarity.
> >
> > 2) user less likes the recommendation, we give a lower score and add a
> new
> > preference,this preference is used to calculate similarity.
> >
> > 3) user just want to remove this item,because we always get certain
> number
> > recommendation,user want to get more new recommendation,he just need
> remove
> > the item form list (he can bookmark this items for future viewing).
> >
> >    So we add a new preference,this preference  is not used to calculate
> > similarity,but we can not recommend the preference again.
> >
> > My proposal is for the third feedback type. for first and second feedback
> > type ,it just need add one preference.
> >
> > ---Henry Han
> >
> >
> > 2010/8/23 Sebastian Schelter <[email protected]>
> >
> >> Hi,
> >>
> >> I think it is an interesting feature. But maybe it is not the best way
> >> to exclude the item at the end of the recommendation process.
> >>
> >> Another way could be to just add a preference with a negative rating to
> >> the input data whenever a user rejects an item. That way this would
> >> provide more information about the user and the item would automatically
> >> be excluded from the output of the RecommenderJob as the user has
> >> already seen this item.
> >>
> >> The question is whether it's conceptually okay to add a negative
> >> preference whenever the user rejects an item. Any thoughts on this?
> >>
> >> --sebastian
> >>
> >> Am 23.08.2010 15:57, schrieb han henry:
> >> > Hi,All
> >> >
> >> > Sometimes user's dislikes some recommendation we generated ,he/she
> >> > does not want to see the recommended items again.
> >> >
> >> > Here is a example from Amazon.com (see the attachment ).
> >> >
> >> > I have written one patch for it.the logic as following :
> >> >
> >> > 1) Dump user's non-interested items to HDFS, format like
> >> > userId+"_"+item_id. before we run RecommenderJob
> >> > 2) Load user's invalid data to HashMap when
> >> > AggregateAndRecommendReducer setup
> >> > 3) Skip user's non-interested items when choose TOP N recommendations
> >> > for user.
> >> >
> >> > Does it make sense and can merge to the repository ?
> >> >
> >> >
> >>
> >>
> >
>

Reply via email to