[Feature Request] Ensemble multi-armed bandit algorithms for traffic shifting
Is your feature request related to a problem? Please describe. Weight recommendations (i.e., traffic splitting recommendations) by Iter8 is now performed by a single algorithm, epsilon-greedy.
It would be nice to generalize this set up so that other bandit algorithms, like UCB and Thompson Sampling can be incorporated easily.
Why is the feature useful for Iter8 users? This feature would enable a variety of powerful traffic shifting algorithms to become available to Iter8 users.
Describe the solution you'd like Enable ensembling of bandit weights. For example, if you have four algorithms for traffic splitting:
- Uniform traffic splitting
- Greedy split
- Thomspson sampling, and
- UCB
Then you should be able to mix the recommendations from these algorithms in user-specified proportions (example, 10%, 0%, 90%, 0%). This mixture/ensemble model would enable easy integration of new bandit algorithms into Iter8.
Does this issue require a design doc/discussion? If there is a link to the design document/discussions, please provide it below. Yes. This does require CRD changes, and also changes to the way weights are computed in iter8-analytics... needs further design discussion.
How will this feature be tested? Testing will be similar to how the current weight_assessments are tested.
How will this feature be documented? Iter8 CRD documentation will be expanded to describe this new feature.
Hi, @sriumcp is there any plan to go on this issue ? I found no message related to this feature in iter8 v0.8 roadmap and this feature will be very helpful for us.
Hello @ChowXu Yes absolutely. There is a roadmap item which calls out
A/B(/n) testing example
This issue was intended to be subsumed under this category. Watch out for more announcements re: this feature as well A/B testing in the near future.