mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James James <recommendersys...@yahoo.com>
Subject Re: recommender on binary data
Date Tue, 03 Nov 2009 02:50:02 GMT
It has been a while since we talked about this topic, but the score returned is not just adding
up the similarity values that anybody in the neighborhood has to the item. IT is atucally
devided by the totalSimilarity. As result, I think the score is still 1.0. Did I miss something?
See the codes below.
 for(User user : theNeighborhood) {if(!user.equals(theUser)) {// See GenericItemBasedRecommender.doEstimatePreference()
tooPreference pref = user.getPreferenceFor(itemID);
preference += theSimilarity * pref.getValue();
totalSimilarity += theSimilarity;
}
}
}
}
 
 




________________________________
From: Sean Owen <srowen@gmail.com>
To: mahout-user@lucene.apache.org
Sent: Tue, July 28, 2009 10:18:11 AM
Subject: Re: recommender on binary data

Yeah I just mean that it should in theory always return 1.0, but it
doesn't, in order to return something useful. Take a look at
estimatePreference(). It is just adding up all the similarity values
that anybody in the neighborhood has to the item. This simply favors
items that more users like you are associated to, which is a
reasonable heuristic for ordering the recommendations.

On Tue, Jul 28, 2009 at 4:15 PM, James James<recommendersystem@yahoo.com> wrote:
> Thanks, can you elaborate a little bit on "I abuse the value of the estimated
> preference in this case to return differing values depending on the
> strength of the association between the user and item". Is this reflected in the codes
somewhere?
>
> Thanks,
>
>
>
>
> ________________________________
> From: Sean Owen <srowen@gmail.com>
> To: mahout-user@lucene.apache.org
> Sent: Tuesday, July 28, 2009 10:11:55 AM
> Subject: Re: recommender on binary data
>
> Well.. good question. Really, I abuse the value of the estimated
> preference in this case to return differing values depending on the
> strength of the association between the user and item. It's not always
> 1.0 actually.
>
> It is certainly 'wrong' in a theoretical sense but seemed more useful
> than just always saying '1.0'.
>
> On Tue, Jul 28, 2009 at 4:09 PM, James James<recommendersystem@yahoo.com> wrote:
>> Thanks, I think the method recommend() returns an ordered list of items from the
test items. If the return value of estimatePreference() is all the same for all the test items,
how does the method recommend() decide the order in which it puts each test item on the ordered
list.
>
>
>
>
if(pref != null) {doubletheSimilarity = similarity.userSimilarity(theUser, user) + 1.0;if(!Double.isNaN(theSimilarity))
{returntotalSimilarity == 0.0 ? Double.NaN: preference / totalSimilarity;


      
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message