Ok, but these methods are called in many places. Furthermore, the recommend() is only the entry point to call getCandidateItem() method in AbstractCandidateItemsStrategy class, so we still need to add a parameter in the getCandidateItem() method.
On 2 May 2014 17:45, Sebastian Schelter <[email protected]> wrote: > I think it would be better to add a parameter to the recommend() methods > so that this can be decided on a per invocation basis. > > --sebastian > > > On 05/02/2014 09:40 AM, dodi hakim wrote: > >> Thanks, >> >> My proposed solution for this is to add a method in Recommender interface >> (e.g isUserItemInclude) and pass a Recommender class in method >> getCandidateItem in both CandidateItemStrategy and >> MostSimilarItemsCandidateItemsStrategy interfaces. For example, in >> method >> doGetCandidateItems of PreferredItemsNeighborhoodCandidateItemsStrategy >> class - that implements these two interfaces, it has line >> possibleItemsIDs.removeAll(preferredItemIDs) to remove user's preferable >> items. >> >> In addition, we need to list which Recommender classes that including/not >> user's item in returned recommendation. >> >> Any advice and suggestions will be greatly appreciate. >> >> Thanks, >> >> >> Dodi >> >> >> >> >> >> >> >> >> On 2 May 2014 16:53, Sebastian Schelter (JIRA) <[email protected]> wrote: >> >> >>> [ >>> https://issues.apache.org/jira/browse/MAHOUT-1428?page= >>> com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel] >>> >>> Sebastian Schelter reopened MAHOUT-1428: >>> ---------------------------------------- >>> >>> >>> here you are >>> >>> Recommending already consumed items >>>> ----------------------------------- >>>> >>>> Key: MAHOUT-1428 >>>> URL: https://issues.apache.org/jira/browse/MAHOUT-1428 >>>> Project: Mahout >>>> Issue Type: Bug >>>> Components: Collaborative Filtering >>>> Reporter: Mario Levitin >>>> Fix For: 1.0 >>>> >>>> >>>> Mahout does not recommend items which are already consumed by the user. >>>> For example, >>>> In the getAllOtherItems method of GenericUserBasedRecommender class >>>> >>> there is the following line >>> >>>> possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); >>>> which removes user's items from the possibleItemIDs to prevent these >>>> >>> items from being recommended to the user. This is ok for many >>> recommendation cases but for many other cases it is not. >>> >>>> The Recommender classes (I mean all of them, NN-based and SVD-based as >>>> >>> well as hadoop and non-hadoop versions) might have a parameter for this >>> for >>> excluding or not excluding user items in the returned recommendations. >>> >>> >>> >>> -- >>> This message was sent by Atlassian JIRA >>> (v6.2#6252) >>> >>> >> > -- Best Regards, Dodi Amar Hakim
