I work at a company that sells clothes, and I've had good results with using cosine similarity to determine which products are "similar" to each other simply based on who owns them.
I wanted to take product recommendations a step further and recommend a "compatible" product (like a solid tie for a striped shirt) using a new dataset—so not just who owns what. I have a training set with this structure:
- Every product has feature data like color, pattern, etc. (assume that these are ordinal measurements).
- I have a yes/no target on some product pairs that says whether two products are compatible.
The goal is to be able to say that two new products are compatible, given the feature data for both products.
It's the pairwise aspect that's throwing me off in the supervised learning framework.
If I were just predicting a binary target based on color, pattern, etc., that's a basic setup with several algorithms to choose from. But to me, the problem seems a little more complicated since the prediction is based on feature data from two products—and the prediction needs to be symmetric so that it is the same no matter which product comes "first." Thus, I'm trying to get a symmetric compatibility metric when I have (1) feature data on products and (2) target data on pairs of products.