24. Mai 2020

The sublinearity of spaced repetition learning

Spaced repetition learning (SRL) is a technique to memorize a large amount of items, such as vocabulary when learning a foreign language. In this article, I am writing about a primary benefit that I see in SRL: under the assumption that SRL is effective, I claim that SRL is also efficient; the amount of repetitions grows sublinearly in time and new items to learn.

Let’s consider the case where we have a bunch of items that we want to learn. You can think of each item being on its own flashcard, with a question on the front, and an answer on the back. When the item is due for rehearsal, you look at the front of the flashcard and have to recall the answer on the back of the flashcard.

There are many algorithms implementing SRL out there, deciding about the temporal spacing between repetitions of a particular item, i.e. the time passing between a particular item is due for rehearsal. Let’s assume that these algorithms more or less back off exponentially, meaning that a flashcard would be shown to you (x) again after 1 day, then after 2 days, then after 4 days, 8 days, 16 days and so on:

  1-1---1-------1---------------1-------------------------------1-----------

Now let’s assume that this works, i.e. you are able to retain the item in your memory between each repetitions. That of course is a strong assumption but in this article I am not going to check how well that assumption holds. Instead, let’s assume that it works, and continue from there. The great thing, you may notice, is that the periods between rehearsals grow over time, leading over time to fewer and fewer rehearsals in the same amount of time. Same outcome, but with less work.

To represent this mathematically, let’s look at the cost of repetition (it takes time to think about an answer and flip a flashcard!) over time. For item i at time t, let’s denote the cost of repetition costi,t.

Now what happens if you want to learn multiple items? For example, let’s say you have 12 items to learn, named A─L. Using the exponential back-off in repeating the same item, we arrive at the following schedule (again time goes from left to right, items are listed from top to the bottom, “1” means rehearsal on a day, “0” means no rehearsal on a day):

A 1-1---1-------1---------------1-------------------------------1-----------
B -1-1---1-------1---------------1-------------------------------1----------
C --1-1---1-------1---------------1-------------------------------1---------
D ---1-1---1-------1---------------1-------------------------------1--------
E ----1-1---1-------1---------------1-------------------------------1-------
F -----1-1---1-------1---------------1-------------------------------1------
G ------1-1---1-------1---------------1-------------------------------1-----
H -------1-1---1-------1---------------1-------------------------------1----
I --------1-1---1-------1---------------1-------------------------------1---
J ---------1-1---1-------1---------------1-------------------------------1--
K ----------1-1---1-------1---------------1-------------------------------1-
L -----------1-1---1-------1---------------1-------------------------------1
# 11222233333322222211111111000011111111111100000000000000000000111111111111

The last line (#) shows how many items there are for rehearsal at the beginning. If you practiced each item every single day, as opposed to following a schedule with an “exponential back-off”, you would have to study 12 items every day. However, with the increasing spaces between repetitions of each item, you will end up with having to study much less than that.

Mathematically, we could express the cost costt of remembering all of the items as

costt = Σt costi,t

Note that if you do not increase the number of items, this cost will eventually go towards zero, and pretty quickly, too. If you have a fixed amount of time (think costmax) you can spend every day for repetitions, then you can start learning new items gradually such that costt <= costmax.

Looking at my experience with Anki, free software for spaced repetition learning, there is a limit on the number of new cards that can be learnt in one day─thus bounding the additional cost of repetition in future. Leaving out the details, Anki does what I want, limiting the cost of future reviews (without forcing me to do any calculations).

None of the thoughts expressed in this article are any new ideas. It’s probably optimistic to say that always increasing the spaces between repetition might not work─what about items you forget in the meantime?─and I have not looked much at the assumptions that SRL is effective. But do you have a choice? It would be hugely impractical to rehearse 1000 flashcards every single day unless that’s your full-time job. The mechanism of increasing time passing between repetitions saves you from that impracticality. I hope my illustrations were helpful.