| (Synference cofounder here) That's a good blog post. There are many ways to handle multi-variate data, with different tradeoffs. The linear model you describe in your post is one of the classic machine learning models often used. In the post, we address the shortcoming of such models in the subsection "Trading off exploration vs. Exploitation." As we point out, such a model ignores the trade-off between exploration and exploitation.
That means that you have to gather all your data by randomly serving variants, before you can figure out the right variant to serve to each user. That's very expensive in terms of serving-the-wrong-variant, if what you are trying to predict is conversion or revenue. By contrast, our method will quickly realise if a particular variant has a very high expected value for the current user (with the current user's particular combination of features), and so serve that user that variant - even if we aren't confident about other users. So, like any bandit algorithm, we trade off exploration and exploitation; but further, we trade this off not just across the population as a whole, but on a personalised basis. That's a very important functionality that the approach you describe doesn't have. Why is this an issue? Because if you have to gather data by randomly sampling, what if a certain sort of user doesn't appear very often? (e.g. lets say for a particular site, that's a 65 year old female from Canada). Do you randomly sample until you see a user like this? If so, you are randomly sampling for a long time. Or do you stop your exploration before you see rare users? This totally neglects your rarer users. What if rare users have unusual preferences, or are particularly valuable? (E.g. maybe your rare users are your biggest spenders - which happens.) And, if you have high dimensional data, all your users are effectively rare (because you rarely see users with that exact combination of features). Furthermore, the 'gather data randomly' approach is also impractical if user behaviour is dynamic, as it often is in real-world settings. (i.e. the preference of your user base as a whole changes - maybe they've all recently read an article, so a different marketing copy now resonates with them) Finally, sometimes those interactions you mention, between different features, are really important, and shouldn't be neglected. I could go on - there's a lot of subtle issues that the approach we are using solves that simple multivariate testing doesn't handle, basically. What we're doing is trying to provide an API that wraps all this knowledge up into a service that's easy for people to use. |