I am interested in a framework for learning the similarity of different input representations based on some common context. I have looked into word2vec, SVD and other recommender systems, which does more or less what I want. I want to know if anyone here has any experience or resources on a more generalized version of this, where I am able to feed in representations on different objects, and learn how similar they are.

For example: Say we have some customers we are sending different advertisements to, and I would like to create a system to map offers to customers. I am thinking in the lines of creating a customer representation, and a representation of the offers, and feeding them in parallel to a neural network that has a label of whether they acted on the advertisement or not. The idea is that I should be able to locate the best offer for any customer given these representations.

I have looked into siamese networks and word2vec, both are close to what I want. The problem differs slightly in that for the siamese networks, there are identical parallel networks, which I don't want because my inputs are not equivalent. Word2vec type methodology is also close, but I would want a model to process the inputs on "both sides". A combination of the two, is kind of what I am looking for.

If anyone has any resources on a similar problem statement, I would be very interested in it.



You could use a collaborative filtering approach, ie. train a network that learns your customer and offer embeddings in a latent space.
You could randomly initialize a customer embedding matrix (no_of_customers, dimensions_c) and an offer embedding matrix (no_of_offers, dimensions_o).

Your training data would be each click, a customer index, offer index, and a binary variable (0,1) which would be used to lookup the embedding vectors. Then you could concat these vectors and use them as input to a fully-connected layer, or any other architecture you wish to use.

New contributor
Avi Jain is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • $\begingroup$ Thanks, I have tried this as well with some success using a bpr ranking-loss. $\endgroup$ – user10283726 Jul 17 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.