You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Will C <wi...@infomofo.com> on 2012/04/14 07:17:22 UTC

Recommend a set of users for an item

So I've seen methods to have Mahout Taste recommend items for a user, such
as:
https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend(long,
int)

Is there the equivalent for the opposite, where I want to find a set of
users that can be recommended a product?

Re: Recommend a set of users for an item

Posted by Lance Norskog <go...@gmail.com>.
Segment the users into demographics or some other classification
system? Everyone thinks they're unique like snowflakes, but, really
we're not.

On Sun, Apr 15, 2012 at 3:59 PM, Will Chiong <wi...@infomofo.com> wrote:
> Ah, I see...
>
> I tried this and unfortunately the recommendations are extremely slow when I invert the data model.
>
> I have about 2 million users, and 9000 items.
>
> The normal recommendations I did before (recommending items for users) takes only seconds.
>
> When I tried your suggestion to suggest an audience of users for an item, a recommend call took over an hour.  Are there any suggestions for improving the speed of recommendations, or specific recommenders to use for this kind of dataset?
>
> Thanks again,
>
> -Will
>
>
> On Apr 14, 2012, at 3:38 AM, Burak Arikan wrote:
>
>> In other words, turning your "UserID, ItemID, rank" list to a "ItemID, UserID, rank" list will generate user recommendations to items.
>>
>> Cheers,
>> burak
>> @arikan
>>
>> On Apr 14, 2012, at 10:32 AM, Burak Arikan <ar...@gmail.com> wrote:
>>
>>> Replace the userIDs with itemIDs in your csv data, that will do it.
>>>
>>> Cheers,
>>> burak
>>> @arikan
>>>
>>> On Apr 14, 2012, at 8:17 AM, Will C <wi...@infomofo.com> wrote:
>>>
>>>> So I've seen methods to have Mahout Taste recommend items for a user, such
>>>> as:
>>>> https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend(long,
>>>> int)
>>>>
>>>> Is there the equivalent for the opposite, where I want to find a set of
>>>> users that can be recommended a product?
>



-- 
Lance Norskog
goksron@gmail.com

Re: Recommend a set of users for an item

Posted by Sean Owen <sr...@gmail.com>.
When you swap users and items, then you have 2M items. And if you're
using a recommender based on item-item similarities, then it's going
to be incredibly slow since there are so many pairs to consider. You
have to set some of the pruning / sampling values to limit what is
searched for it to be at all feasible.

With 9000 items you were getting away with no sampling since it was so small.

CandidateItemStrategy and its implementations are what you need to look at.

Sean

On Sun, Apr 15, 2012 at 5:59 PM, Will Chiong <wi...@infomofo.com> wrote:
> Ah, I see...
>
> I tried this and unfortunately the recommendations are extremely slow when I invert the data model.
>
> I have about 2 million users, and 9000 items.
>
> The normal recommendations I did before (recommending items for users) takes only seconds.
>
> When I tried your suggestion to suggest an audience of users for an item, a recommend call took over an hour.  Are there any suggestions for improving the speed of recommendations, or specific recommenders to use for this kind of dataset?
>
> Thanks again,
>
> -Will
>
>
> On Apr 14, 2012, at 3:38 AM, Burak Arikan wrote:
>
>> In other words, turning your "UserID, ItemID, rank" list to a "ItemID, UserID, rank" list will generate user recommendations to items.
>>
>> Cheers,
>> burak
>> @arikan
>>
>> On Apr 14, 2012, at 10:32 AM, Burak Arikan <ar...@gmail.com> wrote:
>>
>>> Replace the userIDs with itemIDs in your csv data, that will do it.
>>>
>>> Cheers,
>>> burak
>>> @arikan
>>>
>>> On Apr 14, 2012, at 8:17 AM, Will C <wi...@infomofo.com> wrote:
>>>
>>>> So I've seen methods to have Mahout Taste recommend items for a user, such
>>>> as:
>>>> https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend(long,
>>>> int)
>>>>
>>>> Is there the equivalent for the opposite, where I want to find a set of
>>>> users that can be recommended a product?
>

Re: Recommend a set of users for an item

Posted by Will Chiong <wi...@infomofo.com>.
Ah, I see...

I tried this and unfortunately the recommendations are extremely slow when I invert the data model.  

I have about 2 million users, and 9000 items. 

The normal recommendations I did before (recommending items for users) takes only seconds.

When I tried your suggestion to suggest an audience of users for an item, a recommend call took over an hour.  Are there any suggestions for improving the speed of recommendations, or specific recommenders to use for this kind of dataset?

Thanks again,

-Will


On Apr 14, 2012, at 3:38 AM, Burak Arikan wrote:

> In other words, turning your "UserID, ItemID, rank" list to a "ItemID, UserID, rank" list will generate user recommendations to items.
> 
> Cheers,
> burak
> @arikan
> 
> On Apr 14, 2012, at 10:32 AM, Burak Arikan <ar...@gmail.com> wrote:
> 
>> Replace the userIDs with itemIDs in your csv data, that will do it.
>> 
>> Cheers,
>> burak
>> @arikan
>> 
>> On Apr 14, 2012, at 8:17 AM, Will C <wi...@infomofo.com> wrote:
>> 
>>> So I've seen methods to have Mahout Taste recommend items for a user, such
>>> as:
>>> https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend(long,
>>> int)
>>> 
>>> Is there the equivalent for the opposite, where I want to find a set of
>>> users that can be recommended a product?


Re: Recommend a set of users for an item

Posted by Burak Arikan <ar...@gmail.com>.
In other words, turning your "UserID, ItemID, rank" list to a "ItemID,  
UserID, rank" list will generate user recommendations to items.

Cheers,
burak
@arikan

On Apr 14, 2012, at 10:32 AM, Burak Arikan <ar...@gmail.com> wrote:

> Replace the userIDs with itemIDs in your csv data, that will do it.
>
> Cheers,
> burak
> @arikan
>
> On Apr 14, 2012, at 8:17 AM, Will C <wi...@infomofo.com> wrote:
>
>> So I've seen methods to have Mahout Taste recommend items for a  
>> user, such
>> as:
>> https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend 
>> (long,
>> int)
>>
>> Is there the equivalent for the opposite, where I want to find a  
>> set of
>> users that can be recommended a product?

Re: Recommend a set of users for an item

Posted by Burak Arikan <ar...@gmail.com>.
Replace the userIDs with itemIDs in your csv data, that will do it.

Cheers,
burak
@arikan

On Apr 14, 2012, at 8:17 AM, Will C <wi...@infomofo.com> wrote:

> So I've seen methods to have Mahout Taste recommend items for a  
> user, such
> as:
> https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/Recommender.html#recommend 
> (long,
> int)
>
> Is there the equivalent for the opposite, where I want to find a set  
> of
> users that can be recommended a product?