Duolingo builds bandit algorithm to personalize daily practice reminder notifications
Duolingo's practice reminders were selected at random from a pool, missing the opportunity to tailor messages to individual learners and potentially leaving engagement gains on the table.
Standard bandit algorithms reuse the top-performing notification repeatedly, which conflicted with a confirmed novelty effect: learners are most receptive to notifications they have not recently seen, and repetition erodes effectiveness.
Within weeks of deployment, more learners were completing lessons more frequently, and the system was especially successful at helping tens of thousands of new learners return to their lessons.
Frequently asked questions
What did this team achieve with this AI workflow?
Within weeks of deployment, more learners were completing lessons more frequently, and the system was especially successful at helping tens of thousands of new learners return to their lessons.
What tools did this team use?
AWS Kinesis Firehose, Spark.
What results were reported?
Practice reminders in training dataset: ~200 million; Weekly records produced by system: tens of millions of records per week; Learner lesson completion frequency: more learners were completing lessons more frequently; New learners returning to lessons: tens of thousands of new learners (source-reported, not independently verified).
What failed first in this deployment?
Standard bandit algorithms reuse the top-performing notification repeatedly, which conflicted with a confirmed novelty effect: learners are most receptive to notifications they have not recently seen, and repetition e…
How is this marketing ops AI workflow structured?
A/B test new templates → Bandit selects notification → Novelty filter applied → Practice reminder sent → Lesson completion tracked → Insights improve future design.