Hi all

Say I have a set of ecommerce data (views, purchases etc). I've built my
model using implicit feedback ALS. Now, I want to add a little bit of
"smart filtering".

Filtering based on not recommending something that has been purchased is
straightforward, but I'd like to also filter so as not to recommend "highly
similar" items to someone who has purchased an item.

In other words, if someone has just purchased a laptop, then I'd like to
not recommend other laptops. Ideally while still recommending "related"
items such as laptop bags, mouse etc etc. (this is just an example).

Now, I could filter based on metadata tags like "category", but assuming I
don't always have that data, then simplistically I have the option of
filtering out products based on those that have high cosine similarity to
the purchased products. However, this risks filtering out "good" similar
products (like the laptop bags) as well as the "bad" similar products.

I'm experimenting with building a second variant of the model that
effectively downweights "views" to near zero, hence leaving something sort
of like a "purchased together" model variant. Then recommendations can be
made using this model when a user purchases an item (or perhaps a re-scorer
that is a weighted variant of model A and model B but that tends to weight
model B - the purchased together model - higher)

Are there other mechanisms to tweak the ALS model such that it tends
towards recommending "related products" (but not "highly similar of the
exact same narrow product type")?

Any other ideas about how best to go about this?

Many thanks
Nick

Reply via email to