Many of the projects I work on involve making predictions for a specific event set in the future. In this way it's similar to forecasting but all these events are one time. The events however do share characteristics and allow for generalization. The predictions need to be made at some or many different times before the event. I will outline three different approaches to make the problem statement more clear and I'm interested in a more elegant solution to the third approach.
1) Have a few set 'query' periods and train different models for each of these query periods.
2) Have a few set 'query' periods and use this query period as a feature in your training set
3) Sample random 'query' periods relevant for the business case, basically creating sampled views on the events in a historical fashion.
The 3rd approach makes sense from a certain perspective. However I'm wondering if there are specific algorithms that deal with this issue. I'm aware that RNNs allow for time steps, however in this case it is not really a time series because regularly there are only a few additional known features while crawling towards the event, plus the fact that our 'event sequence' is cut short at different times due to the different query periods.
Who can point me to some nice papers that deal with this problem statement?
Small example, let's say we own a car rental company. A certain type of booking requires a pickup date but it leaves the return open. It's possible to later add the return date for a small discount, but people still sometimes return it later than that. We are interested in knowing a distribution on the return moments, at any time before the actual return. These times is what I referred to as query moments. So at a certain moment someone might actually add the return date giving us more information. The fact that someone hasn't added this return date yet at a certain point is relevant, the time since the booking and the time to/since the pickup time is relevant etc. We want to 'query' this model at any point while the booking is active. We could just add these times as features but it feels like a dirty solution.