Suggestion for Recommender system algorithm for 3 sets of entities

I am building a model to recommend logistic providers to merchants on an e-commerce platform. There are approx. 100k merchants and 20 logistic providers, so scaling is not very important here.

Currently, everytime a customer makes a purchase from a merchant, the merchant will need to select a merchant from the list of 20 to ship the goods to the user. Some merchants always choose the cheapest shipping options, while some have their own personal preferences. The location of the customers may also play a part in deciding which logistic provider to use.

Most recommendation systems I know of are user-item pair. My problem involves 3 parties: merchant, user (or user location), logistic providers. Can anyone recommend any high level structure or framework to solve this problem? Thanks in advance.

Topic recommender-system

Category Data Science


As you have noticed, the usual recommender systems theory deals with two types of entities, users and items. The interactions are usually described using a matrix (equivalently, a weighted bipartite graph).

The mathematical generalization of a matrix is a tensor (and the generalization of a graph is a hypergraph, though I have not seen it used much so far). There is some theory about recommender systems for tensors, for example this paper.

If you wish to apply "collaborative filtering", one of the simple solutions in your case is to flatten the tensor into a matrix, as described in an answer to this similar question.

Alternatively instead of recommender systems, you might consider some simpler standard ML techniques, such as classification, for example simply to try to predict whether a provider (or which one) will be chosen based on your constructed features.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.