My Anki patterns

by agentydragon4 min read26th Nov 201915 comments

51

Spaced Repetition
Frontpage

Cross-posted from my website.

I’ve used Anki for ~3 years, have 37k cards and did 0.5M reviews. I have learned some useful heuristics for using it effectively. I’ll borrow software engineering terminology and call heuristics for “what’s good” patterns and heuristics for “what’s bad” antipatterns. Cards with antipatterns are unnecessarily difficult to learn. I will first go over antipatterns I have noticed, and then share patterns I use, mostly to counteract the antipatterns. I will then throw in a grab-bag of things I’ve found useful to learn with Anki, and some miscellaneous tips.

Alex Vermeer’s free book Anki Essentials helped me learn how to use Anki effectively, and I can wholeheartedly recommend it. I learned at least about the concept of interference from it, but I am likely reinventing other wheels from it.

Antipatterns

Interference

Interference occurs when trying to learn two cards together is harder than learning just one of them - one card interferes with learning another one. For example, when learning languages, I often confuse words which rhyme together or have a similar meaning (e.g., “vergeblich” and “erheblich” in German).

Interference is bad, because you will keep getting those cards wrong, and Anki will keep showing them to you, which is frustrating.

Ambiguity

Ambiguity occurs when the front side of a card allows multiple answers, but the back side does not list all options. For example, if the front side of a English → German card says “great”, there are at least two acceptable answers: “großartig” and “gewaltig”.

Ambiguity is bad, because when you review an ambiguous card and give the answer the card does not expect, you need to spend mental effort figuring out: “Do I accept my answer or do I go with Again?”

You will spend this effort every time you review the card. When you (eventually, given enough time) go with Again, Anki will treat the card as lapsed for reasons that don’t track whether you are learning the facts you want to learn.

If you try to “power through” and learn ambiguous cards, you will be learning factoids that are not inherent to the material you are learning, but just accidental due to how your notes and cards represent the material. If you learn to distinguish two ambiguous cards, it will often be due to some property such as how the text is laid out. You might end up learning “great (adj.) → großartig” and “great, typeset in boldface → gewaltig”, instead of the useful lesson of what actually distinguishes the words (“großartig” is “metaphorically great” as in “what a great sandwich”, whereas “gewaltig” means “physically great” as in “the Burj Khalifa is a great structure”).

Vagueness

I carve out “vagueness” as a special case of ambiguity. Vague cards are cards where question the front side is asking is not clear. When I started using Anki, I often created cards with a trigger such as “Plato” and just slammed everything I wanted to learn about Plato on the back side: “Pupil of Socrates, Forms, wrote The Republic criticising Athenian democracy, teacher of Aristotle”.

The issue with this sort of card is that if I recall just “Plato was a pupil of Socrates and teacher of Aristotle”, I would still give the review an Again mark, because I have not recalled the remaining factoids.

Again, if you try to power through, you will have to learn “Plato → I have to recite 5 factoids”. But the fact that your card has 5 factoids on it is not knowledge of Greek philosophers.

Patterns

Noticing

The first step to removing problems is knowing that they exist and where they exist. Learn to notice when you got an answer wrong for the wrong reasons.

“I tried to remember for a minute and nothing came up” is a good reason. Bad reasons include the aforementioned interference, ambiguity and vagueness.

Bug tracking

When you notice a problem in your Anki deck, you are often not in the best position to immediately fix it - for example, you might be on your phone, or it might take more energy to fix it than you have at the moment. So, create a way to track maintenance tasks to delegate them to future you, who has more energy and can edit the deck comfortably. Make it very easy to add a maintenance task.

The way I do this is:

  • I have a big document titled “Anki” with a structure mirroring my Anki deck hierarchy, with a list of problems for each deck. Unfortunately, adding things to a Google Doc on Android takes annoyingly many taps.
  • So I also use Google Keep, which is more ergonomic, to store short notes marking a problem I notice. For example: “great can be großartig/gewaltig”. I move these to the doc later.
  • I also use Anki’s note marking feature to note minor issues such as bad formatting of a card. I use Anki’s card browser later (with a “tag:marked” search) to fix those.

I use the same system also for tracking what information I’d like to put into Anki at some point. (This mirrors the idea from the Getting Things Done theory that your TODO list belong outside your mind.)

Distinguishers

Distinguishers are one way I fight interference. They are cards that teach distinguishing interfering facts.

For example: “erheblich” means “considerable” and “vergeblich” means “in vain”. Say I notice that when given the prompt “considerable”, I sometimes recall “vergeblich” instead of the right answer.

When I get the card wrong, I notice the interference, and write down “erheblich/vergeblich” into my Keep. Later, when I organize my deck on my computer, I add a “distinguisher”, typically using Cloze deletion. For example, like this:

{{c1::e}}r{{c1::h}}eblich: {{c2::considerable}}

{{c1::ve}}r{{c1::g}}eblich: {{c2::in vain}}

This creates two cards: one that asks me to assign the right English meaning to the German words, and another one that shows me two English words and the common parts of the German words (“_r_eblich”) and asks me to correctly fill in the blanks.

This sometimes fixes interference. When I learn the disambiguator note and later need to translate the word “considerable” into German, I might still think of the wrong word (“vergeblich”) first. But now the word “vergeblich” is also a trigger for the distinguisher, so I will likely remember: “Oh, but wait, vergeblich can be confused with erheblich, and vergeblich means ‘in vain’, not ‘considerably’”. And I will more likely answer the formerly interfering card correctly.

Constraints

Constraints are useful against interference, ambiguity and vagueness.

Starting from a question such as “What’s the German word for ‘great’”, we can add a constraint such as “… that contains the letter O”, or “… that does not contain the letter E”. The constraint makes the question have only one acceptable answer - artificially.

Because constraints are artificial, I only use them when I can’t make a distinguisher. For example, when two German words are true synonyms, they cannot be distinguished based on nuances of their meaning.

In Anki, you can annotate a Cloze with a hint text. I often put the constraint into it. I use a hint of “a” to mean “word that contains the letter A”, and other similar shorthands.

Other tips

Redundancy

Try to create cards using a fact in multiple ways or contexts. For example, when learning a new word, include a couple of example sentences with the word. When learning how to conjugate a verb, include both the conjugation table, and sentences with examples of each conjugated form.

Æsthethethics!

It’s easier to do something if you like it. I like having all my cards follow the same style, nicely typesetting my equations with align*
, \underbrace
etc.

Clozes!

Most of my early notes were just front-back and back-front cards. Clozes are often a much better choice, because they make entering the context and expected response more natural, in situations such as:

  • Fill in the missing step in this algorithm
  • Complete the missing term in this equation
  • Correctly conjugate this verb in this sentence
  • In a line of code such as matplotlib.pyplot.bar(x, y, color='r')
    , you can cloze out the name of the function, its parameters, and the effect it has.

Datasets I found useful

  • Shortcut keys for every program I use frequently.
    • G Suite (Docs, Sheets, Keep, etc.)
    • Google Colab
    • Vim, Vimdiff
    • Command-line programs (Git, Bash, etc.)
  • Programming languages and libraries
    • Google’s technologies that have an open-source counterpart
    • What’s the name of a useful function
    • What are its parameters
  • Unicode symbols (how to write 🐉, ←, …)
  • People: first and last name ↔ photo (I am not good with names)
  • English terms (spelling of “curriculum”, what is “cupidity”)
  • NATO phonetic alphabet, for spelling things over the phone
  • Mathematics (learned for fun), computer science

51

15 comments, sorted by Highlighting new comments since Today at 3:37 AM
New Comment

Great post!

You say you've been using Anki for ~3 years and have 37k cards. Assuming you've been adding cards at a roughly constant rate over this period, that's ~12.3k cards per year, or ~34 cards per day. Relying on Piotr Wozniak's formula for approximating the daily time costs of studying a single card in a given year

we can see that it costs 2.03E-03 mins to study a card the 1st year, 7.40E-04 mins the 2nd year, and 4.18E-04 mins the 3rd year. Multiplying by 12.3k, we get about 25, 9 and 5 minutes for the 1st, 2nd and 3rd years, respectively. So, on your 3rd (most recent) year of study, this calculation indicates that you should be spending about minutes per day in reviews. Does this match your experience?

I was motivated to calculate this because upon reading your post I felt that reviewing so many cards would impose very high time costs. But after crunching the numbers, the costs seem considerably lower than I expected.

Thanks. ~6 s per card seems faster than average, judging from other user reports I've seen (e.g. here). It appears that Wozniak's formula underestimates time costs, which is also in line with Gwern's remarks here.

In case anyone is interested, here's a spreadsheet I just created that computes the daily costs, after arbitrarily many years, of reviewing a deck which has been growing by a constant number of cards per year.

An interesting implication is that after three years one has incurred roughly 50% of the total time costs of reviewing a card, assuming a time horizon of 50 years. So if Michal keeps adding new cards at the same pace, his daily costs will converge to minutes. Still, it will take another 12 years for the costs to increase by another 50%, so even after 15 years his daily costs will be minutes.

Hi Pablo. Thanks for the link to the formula, I did not know someone already looked into it. At some point I estimated that it cost me ~250 s to learn a card in the first year.

In the last year, it looks like I spent ~1 hour per day reviewing on average. When I'm on my desktop computer, I'll share the Anki statistics PDF.

I think one reason the formula might be underestimating is because I keep expanding my deck over time, so there's a mix of newer and older cards.

I am also a bit concerned that I might be adding cards not always for what's most useful to learn, but for what's easiest to Ankify. So recently even though I've been wanting to study more ML papers, I've been mostly adding programming because it's easier... :/

OP refers to "Alex Vermeer’s free book Anki Essentials" but so far as I can tell Anki Essentials is not free; it costs about $5 (exact price depending on whether you get it as PDF or as an Amazon ebook).

Hmm yeah, looks like you're right. That's surprising, if memory serves me right I read it for free and legally. If you Google for "Anki essentials PDF" the first result is a PDF that seems to be from Alex Vermeer's own site, but maybe that's a limited version. Or maybe I'm misremembering the circumstances of how I read the book.

Would it be possible to share some CSS/images showing off your card æsthethethics?

I just wrote some CSS and JavaScript over the weekend, planning to share soon.

What datasets do you use for the people cards? That is, whose names do you memorize and where do you get their names and photos?

Set of people:

  • authors or thinkers who I want to recall (e.g., "Sam Harris is the mindfulness and antireligion guy")
  • people I notice I confuse with other people
  • people who I notice I can't remember their name when I meet them (but do know them) - typically people I know and like but don't meet with regularly enough
  • coworkers in my broader team, my management chain

Photos: publicly available photos if googleable, pics from names and faces slides from meetups

Æsthethethics

Æsthetics?

The extra "the" was a typo but seeing it later I decided it's not :)

What does Æsthethethics mean?

It's aestethics but more aestetic :)