actionml / universal-recommender

Highly configurable recommender based on PredictionIO and Mahout's Correlated Cross-Occurrence algorithm
http://actionml.com/universal-recommender
Apache License 2.0
669 stars 173 forks source link

Use properties for recommendation other than categorial? #54

Open amitassaraf opened 6 years ago

amitassaraf commented 6 years ago

I'd like to add a property to my item like so:

{
    "event" : "$set",
    "entityType" : "item",
    "entityId" : "some-item-id",
    "properties" : {
        "city": "New York",
        "size_in_sqf": 35
    },
    "eventTime" : "2015-10-05T21:02:49.228Z"
}

then lets say the user has viewed several items and reported a view event.

Now I want the recommender to recommend me items that are similar to the one's the user viewed by taking into account the properties city & size_in_sqf.

That means it should show me items that are in New York and the size_in_sqf is around 35. How do I do this? I can't find any tutorial other than the official one on using UR and I really want to accomplish something similar to this.

thanks!

amitassaraf commented 6 years ago

This can be simplified by ignoring the user viewed part. Let's say I give the algorithm a list of items that I know the user viewed and I just need it to give me products similar to the ones I provide by taking into account city & size_in_sqf. How do I accomplish that?

pferrel commented 6 years ago

This is setting properties for items, which MUST be arrays of strings in the Universal Recommender. The array may contain only one string, so you need to change that part. See docs on actionml.com

From: Amit Assaraf notifications@github.com notifications@github.com Reply: actionml/universal-recommender reply@reply.github.com reply@reply.github.com Date: July 1, 2018 at 12:54:34 PM To: actionml/universal-recommender universal-recommender@noreply.github.com universal-recommender@noreply.github.com Cc: Subscribed subscribed@noreply.github.com subscribed@noreply.github.com Subject: [actionml/universal-recommender] Use properties for recommendation other than categorial? (#54)

I'd like to add a property to my item like so:

{ "event" : "$set", "entityType" : "item", "entityId" : "some-item-id", "properties" : { "city": "New York", "size_in_sqf": 35 }, "eventTime" : "2015-10-05T21:02:49.228Z" }

then lets say the user has viewed several items and reported a view event.

Now I want the recommender to recommend me items that are similar to the one's the user viewed by taking into account the properties city & size_in_sqf.

That means it should show me items that are in New York and the size_in_sqf is around 35. How do I do this? I can't find any tutorial other than the official one on using UR and I really want to accomplish something similar to this.

thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/actionml/universal-recommender/issues/54, or mute the thread https://github.com/notifications/unsubscribe-auth/AAT8S0yXei-ZdXyE6HmDaDsA8PqDqL1Yks5uCSj6gaJpZM4U-cmb .

pferrel commented 6 years ago

Not sure what you mean “taking into account”

What is the primary indicator of user behavior? What is your conversion, the behavior you want to increase? For E-Com it is “buy” but for other apps it may be watch, read, like, etc This is the first thing you must record because it is the essence of collaborative filtering, even for item similarity. User behavior if the key thing to look at in determining item similarity. Then you can apply business rules to narrow down an item based or item-set based query using item properties like city & size_in_sqf.

Are views your conversions? For E-Com views do not predict sales/buys very well.

From: Amit Assaraf notifications@github.com notifications@github.com Reply: actionml/universal-recommender reply@reply.github.com reply@reply.github.com Date: July 1, 2018 at 1:20:06 PM To: actionml/universal-recommender universal-recommender@noreply.github.com universal-recommender@noreply.github.com Cc: Subscribed subscribed@noreply.github.com subscribed@noreply.github.com Subject: Re: [actionml/universal-recommender] Use properties for recommendation other than categorial? (#54)

This can be simplified by ignoring the user viewed part. Let's say I give the algorithm a list of items that I know the user viewed and I just need it to give me products similar to the ones I provide by taking into account city & size_in_sqf. How do I accomplish that?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/actionml/universal-recommender/issues/54#issuecomment-401630632, or mute the thread https://github.com/notifications/unsubscribe-auth/AAT8S85x3gZh8lAgkrth8OMv5qGnV_nwks5uCS71gaJpZM4U-cmb .

amitassaraf commented 6 years ago

@pferrel I have users who view rental properties (Houses). There are two actions. One which is my primary indicator, schedule (which means they schedule a visit in the house) and the secondary indicator which is view.

I want to recommend based on which houses the user viewed and scheduled other houses that they might like based on the properties of the house, such as it's size and location.

amitassaraf commented 6 years ago

@pferrel How will using arrays of string work? I can see how it will work for places but for sizes of houses it seems like it wouldn't work because how will it know ['34'] is close to ['31']? It will just look at it as categories. Also house price wouldn't work as it varies a lot as well.