Hi Juan,

If I remember correctly, AllSimilarItemsCandidateItemsStrategy

returns all items that have not been rated by the user and the
similarity metric returns a non-NaN similarity value that is with at
least one of the items preferred by the user.

Tevfik

On Wed, Mar 5, 2014 at 2:30 PM, Sebastian Schelter <s...@apache.org> wrote:
> On 03/05/2014 01:23 PM, Juan José Ramos wrote:
>>
>> Thanks for the reply, Sebastian.
>>
>> I am not sure if that should be implemented in the Abstract base class
>> though because for
>> instance PreferredItemsNeighborhoodCandidateItemsStrategy, by definition,
>> it returns the item not rated by the user and rated by somebody else.
>
>
> Good point. So we seem to need special implementations.
>
>
>>
>> Back to my last post, I have been playing around with
>> AllSimilarItemsCandidateItemsStrategy
>> and AllUnknownItemsCandidateItemsStrategy, and although they both do what
>> I
>> wanted (recommend items not previously rated by any user), I honestly
>> can't
>> tell the difference between the two strategies. In my tests the output was
>> always the same. If the eventual output of the recommender will not
>> include
>> items already rated by the user as pointed out here (
>>
>> http://mail-archives.apache.org/mod_mbox/mahout-user/201403.mbox/%3CCABHkCkuv35dbwF%2B9sK88FR3hg7MAcdv0MP10v-5QWEvwmNdY%2BA%40mail.gmail.com%3E),
>> AllSimilarItemsCandidateItemsStrategy should be equivalent to
>> AllUnkownItemsCandidateItemsStrategy, shouldn't it?
>
>
> AllSimilarItems returns all items that are similar to any item that the user
> already knows. AllUnknownItems simply returns all items that the user has
> not interacted with yet.
>
> These are two different things, although they might overlap in some
> scenarios.
>
> Best,
> Sebastian
>
>
>
>>
>> Thanks.
>>
>> On Wed, Mar 5, 2014 at 10:23 AM, Sebastian Schelter <s...@apache.org>
>> wrote:
>>>
>>>
>>> Hi Juan,
>>>
>>> that is a good catch. CandidateItemsStrategy is the right place to
>>
>> implement this. Maybe we should simply extend its interface to add a
>> parameter that says whether to keep or remove the current users items?
>>>
>>>
>>> We could even do this in the abstract base class then.
>>>
>>> --sebastian
>>>
>>>
>>> On 03/05/2014 10:42 AM, Juan José Ramos wrote:
>>>>
>>>>
>>>> In case somebody runs into the same situation, the key seems to be in
>>>> the
>>>> CandidateItemStrategy being passed to the constructor
>>>> of GenericItemBasedRecommender. Looking into the code, if no
>>>> CandidateItemStrategy is specified in the
>>>> constructor, PreferredItemsNeighborhoodCandidateItemsStrategy is used
>>>> and
>>>> as the documentation says, the doGetCandidateItems method: "returns all
>>>> items that have not been rated by the user and that were preferred by
>>>> another user that has preferred at least one item that the current user
>>
>> has
>>>>
>>>> preferred too".
>>>>
>>>> So, a different CandidateItemStrategy needs to be passed. For this
>>
>> problem,
>>>>
>>>> it seems to me that AllSimilarItemsCandidateItemsStrategy,
>>>> AllUnknownItemsCandidateItemsStrategy are good candidates. Does anybody
>>>> know where to find some documentation about the different
>>>> CandidateItemStrategy? Based on the name I would say that:
>>>> 1) AllSimilarItemsCandidateItemsStrategy returns all similar items
>>>> regardless of whether they have been already rated by someone or not.
>>>> 2) AllUnknownItemsCandidateItemsStrategy returns all similar items that
>>>> have not been rated by anyone yet.
>>>>
>>>> Does anybody know if it works like that?
>>>> Thanks.
>>>>
>>>>
>>>> On Tue, Mar 4, 2014 at 9:16 AM, Juan José Ramos <jjar...@gmail.com>
>>
>> wrote:
>>>>
>>>>
>>>>> First thing is thatI know this requirement would not make sense in a CF
>>>>> Recommender. In my case, I am trying to use Mahout to create something
>>>>> closer to a Content-Based Recommender.
>>>>>
>>>>> In particular, I am pre-computing a similarity matrix between all the
>>>>> documents (items) of my catalogue and using that matrix as the
>>>>> ItemSimilarity for my Item-Based Recommender.
>>>>>
>>>>> So, when a user rates a document, how could I make the recommender
>>
>> outputs
>>>>>
>>>>> similar documents to that ones the user has already rated even if no
>>
>> other
>>>>>
>>>>> user in the system has rated them yet? Is that even possible in the
>>
>> first
>>>>>
>>>>> place?
>>>>>
>>>>> Thanks a lot.
>>>>>
>>>>
>>>
>>
>

Reply via email to