Consider the following problem, which was asked in an interview I was at (but it wasn't directed at me). It seems deceptively simple, but then it turns out to actually be really hard to answer well:
Each week $i$ an online food delivery service has a certain set $P_i$ of selected products among its large assortment that it needs to sell, before they expire.
In order to motivate people to buy those foods, the shop can send out emails at the beginning of the week. But customers get annoyed if they receive such emails, so the number of customers that get an email has to be kept as low as possible. Find only those customer which you think are prone to buy the selected products!
The data you have available:
1) a large purchase history of each customer at each point in time
2) all the past emails that were sent out randomly to a subset of customers
3) some general data about him as a person, find such customers.
What would have been a good solution to this?
I already spent hours thinking about this, but I could only come up with a trivial solution:
Consider it as a binary classification problem without any time component (so just consider the data from all the weeks together as on single large dataset) [this is because I don't know time series]. Thus, given our selected products $P$ we want to find out which kinds of clients will buy it. Separate the data in a training-validation-test set. We then organize the data the following way: Encode all categorical data with a one-hot encoding. Use the following sets features (=columns in the dataframe containing all the data):
- The information available about each customer from 3)
- define a class (=feature=column), that denotes with 1 or 0 if that customer has bought that product in the week after having been sent an email at the beginning of the week (this means that for the same customer we will as many observations (=rows) as there are week). Thus, I don't use any information from they general buying history, only how customers immediate buying changed to due the email.
Finally, use your favourite binary classifier and play around until you maximize prediction accuracy.
I think such a model to solve this problem would really have been horrible. Here is a critique of the model by illustrating some of the essential points that I think it would fail to take into account:
a) customers changing how they react to emails in terms of buying behavior with time [is there any way to take care of this without using timeseries? because I don't know almost anything about them]
b) individual customers' buying behavior:
-those customers that never bought what was in the email, should be assigned a low probability of having a buy-response to a´the new email
-I'm not sure that with this model even people that always bought some of the things that were advertised in the email will get a high probability of buying new things. These two points seem essential for me that the model should capture them!
-some customer might have preferences for certain products which would indicate that if the products they generally prefer are in $P$ they should definitely get an email, to motivate them to buy more of that
c) I don't take into consideration any long-term influence of the email: Currently I implicitly I use a cutoff to determine the usefulness of the information that the customer bought one of the products from the email: If he bought some of those products in the week at whose beginning the email was sent out, that information is assumed to be 100% useful (since it is reflected in the feature I construct), if he buys it at any point in time later that information is assumed to be 0% useful (since I ignore it in the features). Rather than using implicitly such a cutoff function I think it would be better if I somehow could make this explicit (but I don't know how) and use some other function that has a lower value the longer the customers took to buy stuff from the mail, in order to model the decaying usefulness of this information with time. This would capture situations where some customers bought that product only, say, 2 weeks after they received the email.