Brass Tacks

My mental model for encoding abstract knowledge into Anki

(taken from my reddit comment here)


What is your general strategy for encoding those more abstract themes ?

I ought to write up a longer post on this, this is just a quick note.

In general, stuff you can know can generally be broken down into a bunch of different directed relations between two atomic elements, where each atomic element can't really be broken down into further relations/atomic elements. (Which bits of information are atomic are person-dependent.) For example:

  • "Paris is the capital of France" can be broken down into the directed relation "___ is the capital of ____" or "____'s capital is ____", as well as the elements "Paris" and "France."
  • "log(a)*(b) = log(a^b)" can be broken down into the relation "[left side of the equation] is equal to [right side of the equation" and the relation "[right side of the equation] is equal to [left side of the equation", as well as the atomic elements "log(a)*(b)" and "log(a^b)".

In general, you want to be able to break down whatever information you currently understand into a web of relations between atomic elements; then, you can use Anki to encode each of the relations that you care about in that web. Super important: don’t try to encode every single relation as an Anki card. Figure out how you're going to be using the knowledge, then encode the relations that are load-bearing to that use.

  • If you're moving to France and want to know what their capital is, then you probably care about the relation "France**'s capital is** Paris", where the italics are atomic elements and the bold is the directed relation.
    • On the other hand, if your diplomat friend is moving to Paris, and you want to remember which country they're soon to be working with, you might only care about the relation "Paris is the capital of France."
  • You might care about remembering the rule that: if you take the logarithm of something, then multiply it by some second thing, you can simplify that whole expression into the logarithm of that first thing to the power of the second thing. If so, then you probably care about the left-to-right directed relation of the equation.
    • You might, however, also care about remembering the rule that: if you take the logarithm of an expression of the form of an exponentiation, then that's equal to the logarithm of the base, then multiplied by the exponent.

In general, you want to have Anki cards for each of these relations — remember, only those relations that are actually load-bearing to the web of knowledge you're trying to build! — where the front of the card presents you with the first atomic and the relation, and the back of the card has the second atomic.

"But, clearly there are more than two atomic elements in the above. Like, the concept of a logarithm contains so many important prerequisite concepts, like multiplication and exponentiation, not to mention stuff like variables!"

How right you are! These webs of directed relations between two atomic elements are often super dense and complicated. They'll often have lots of relations densely packed into each other, many of which end up being bidirectional. And, there will be relations on a variety of meta-levels. That is: sometimes, "A" is only an atomic fact because you've already got down solid the web of directed relations that make up the piece of knowledge we call "A." So you might have a bunch of relations-that-you-care-about "within" A — from A.1 to A.2, A.3, and A.4, and from A.5 and A.6 to A.2, etc etc — but also relations-that-you-care-about from B and C to A, and from A to D, E, and F. This pattern continues fractally — A.1 might similarly have it's own dense network of directed relations between two atomic elements "inside" of it, and so on; and, that web of directed relations between two elements of A, B, C, D, E, and F, might themselves form an atomic element "within" other webs.

I maintain that the thing you want to focus on is breaking down whatever thing you're trying to retain into a web of directed relations between two atomic elements; figuring out which of those relations are load-bearing to your understanding; then, making Anki cards for each of those relations.

(I keep saying "two atomic elements" because I have not yet found a good way to make Anki cards for relations with an arity of greater than two; if you find one, let me know.)

There are three hard parts to this process:

  1. Breaking down some piece of knowledge like "stochastic gradient descent" or "navigation around a city" into a web of directed relations between two atomic elements is pretty tough! It requires a lot of metacognition & practice, and isn't the default way that people think about their knowledge.
  2. Given a web of directed relations between two atomic elements, figuring out which of those directed relations are load-bearing to reconstructing/robustly remembering the overarching piece of knowledge, and which you don't actually need to know.
  3. Given a set of directed relations between two atomic elements, actually making the Anki cards.

I think that most of the difficulty & skill in "making high quality cards on abstract topics" comes up in (1) and (2), and that, if you can do (1) and (2) extremely well, then (3) is just some tricks around formatting and concision that you can learn on the go.

In other words: the hard part is the skill of turning your understanding of a topic into a web of directed relations between two atomic elements and figuring out which parts of that web are load-bearing for that topic.

(This is all just my takes/style, though my experience is that other folks who also use Anki successfully for more abstract stuff think along similar lines, though maybe with different analogies/emphases.)