Submitted by reckless_commenter t3_y1b68r in MachineLearning
I've got an interesting project, and I'm looking for recommendations for a suitable model.
The project is basically a priority queue. Items of various types arrive in the queue in an out-of-order sequence and must be handled according to various factors, including timeliness.
The upside is that I have a massive training data set to work with - a vast assortment of examples in which items were chosen according to some institutional logic. I'd like to develop a model that can learn that logic and replicate it to choose items in a similar manner.
Note that I'm not trying to schedule the selection of items - no planning is required. Rather, at each time step, the model will score all of the items currently in the queue according to item-specific criteria, and complete the one with the highest urgency. For simplicity, I presume that an item of any type can be completed in one time step.
The basic algorithm seems very straightforward: for each item class, define a set of properties; and fore each time step, calculate a score for each item based on those properties, and pick the item with the highest score. The primary criterion is timeliness - some items have a target deadline; others don't, but shouldn't sit too long. The secondary criterion is complexity - some items can be handled more quickly than others. I can normalize each property to a range of 0-1. The model simply learns the weights of the properties that contribute to the scoring, such that the selection process is consistent with the training data.
Where I'm getting stuck is the selection of a model. An ordinary backpropagation neural network doesn't seem appropriate, because if item #1 is high priority and item #2 is just a little higher priority for some reason, I don't necessarily want to reduce the weights for the scoring of item #1. Reinforcement learning also doesn't seem appropriate, since the goal is not to maximize the selection based on a known scoring algorithm, but rather to learn the scoring algorithm itself that is inherent in the training data set.
Any suggestions?
Jelicic t1_irwd5yh wrote
Seems like a ranking problem. XGBoost might be appropriate (learning to rank)