Priority queue: Difference between revisions

From SuperMemo Help
Jump to navigation Jump to search
(Initial import)
m (→‎Sorting repetitions: Updating the "alt" text to the "Repetition sorting criteria" image)
Line 39: Line 39:
SuperMemo solves the problems of the ''priority bias'' and the problem of the massive inflow of topics by letting you define (1) the proportion of topics in learning, and (2) a degree to which the learning queue is randomized.
SuperMemo solves the problems of the ''priority bias'' and the problem of the massive inflow of topics by letting you define (1) the proportion of topics in learning, and (2) a degree to which the learning queue is randomized.

[[Image:repetition_sorting_criteria.jpg|center|Sorting items and topics taking part in the learning process in SuperMemo]]
[[Image:repetition_sorting_criteria.jpg|center|SuperMemo: Sorting items and topics taking part in the learning process using various criteria (priority, randomization, proportion of topics, etc.)]]


Revision as of 07:58, 18 April 2009

Volume vs. Retention Battle

Incremental reading makes it easy to import large volumes of learning material from the Internet. By default, all imported material enters the learning process. As a result, large volumes of unprocessed information begin to compete for your attention with most important pieces of knowledge that you decided to remember. It is a clash of priorities. On one hand you want to ensure high retention of your mission critical knowledge (as in classical SuperMemo), on the other you want to devour more and more new knowledge.

Before SuperMemo, your learning would largely be based on reading and reviewing books or your own notes. With older SuperMemos, you would divide your time between reading (on paper) and repetitions (on the computer). With incremental reading, those competing processes were blended into one. You can read and review concurrently in SuperMemo. However, for the most avid incremental readers, the balance of priority will always dangerously shift in favor of new reading at the cost of the previously acquired knowledge. This comes from human nature. New reading provides instant gratification: Today, I learned something new. I am wiser now. Reviewing the material you already know will always feel like a burden. We are always unhappy with our forgetful memory. It always feels that the nature should have given us a natural choice of what to forget and what to remember without the painful effort of reviewing what we already know.

To settle the Volume-vs-Retention battle and to resolve the perpetual clash of priorities, you need better weapons than those made available by older SuperMemos. Before the arrival of SuperMemo 2006, you would need to use a complex set of tools to employ massive learning and still protect the retention of your most important knowledge. You would use complex concepts such as A-Factors, forgetting index, subset learning, selective postpones, repetition sorting, etc. These tools were poorly automated and required a substantial effort and knowledge on your part. In practice, most of incremental readers would have to opt for the simplest prioritization tool: moderation. You could best protect your previous investment in learning by limiting your hunger for knowledge.

SuperMemo 2006 introduces a simple and fully automated mechanism that will help you combine high volumes of reading with high retention of the most important material. This mechanism is based on the concept of the priority queue.

Priority Bias in Incremental Reading

In SuperMemo 2006, each element receives a priority from 0% to 100%. Elements sorted by their priority form the priority queue. Element's priority can also be expressed as the position of the element in the priority queue. The most important element in your collections will sit at Position=1 of your priority queue. The queue is a relative queue. This means that if you, for example, insert an important article at Position=3, all items and articles at higher positions will be shifted by one position up in the queue (i.e. towards lower priority). Thus the element at Position=999 will be pushed to Position=1000, while the element previously sitting at Position=3 will now occupy Position=4. The first two elements in the queue, i.e. Position=1 and Position=2, will not move. The relative nature of the priority queue will help you instantly inspect the current priority of each element in your collection. In earlier versions of SuperMemo, you could observe crowding of elements at high-priority ranks. For example, you could amass a large number of topics with A-Factor=1.01 and be practically unable to prioritize within that group (A-Factor=1.01 is the lowest possible and would correspond with the highest priority).

The fundamental rationale for using a relative priority queue is the existence of a form of cognitive bias, which we will call the priority bias. This bias makes us always think that the newly found article is extremely important to read. The new article feels so important, because we underestimate the value of all the previously imported articles. Our memory is unable to produce an effective estimate of the importance of the current mass of remembered knowledge. Even less so is it capable of producing a remotely accurate estimate of the importance of the mass of knowledge stored in your incremental reading process (of which, usually, only a tiny fraction is part of your long-term memories). The net effect is that we always underestimate the volume of what we know, the volume of what we keep in incremental reading, and the importance distribution of those volumes of knowledge. This psychological mechanism is also the primary force that works against the universal adoption of SuperMemo. Humans are, by biological design, very weak at estimating the size of their knowledge, the cost of learning, and the power of forgetting. As a result, without an intimate knowledge of what SuperMemo is, individuals rarely ever pause to sense the need to use spaced repetition. This underestimation effect is by far more damaging in the case of incremental reading, which is far more complex and has still not been explained in sufficiently simple and catchy terms.

By employing the priority queue, SuperMemo will help you visualize the priority bias and the process in which large volumes of new material quickly displace the old material from your learning focus. Moreover, SuperMemo highly automates the process in which you can handle material overflow and reconcile high-retention with high-volumes of learning. Incremental reading has always boasted of its capacity to bring the volume of learning to unprecedented levels. With the priority queue, you can nearly take away the moderation factor and increase the volume of learning even further without undue worry about your hard-earned knowledge.

Priority Queue in SuperMemo

You can define element's priority by pressing Alt+P (or choosing Learning : Priority : Modify on the element menu).

Priority of elements in SuperMemo

To set the element's priority, you can either choose the position of the element in the priority queue (from 1 to Total), or you can choose the percent value (from 0% to 100%). Position=1 corresponds with Percent=0%. Position= Total corresponds with Percent=100%.
Important! Low position and low percent mean high priority! This counterintuitive choice was made due to the fact that you are more likely to choose a high priority of 0% or 1% than the low priority of 99% or 100%. Typing the number 2 takes much less time than typing the number 98 (roughly 3-4 times less). As you are likely to set priority manually many times in the course of a single learning session, this choice will save you a lot of typing time over years of learning.

You can use Learning : Priority : Increase on the element menu (Shift+Ctrl+Up) to increase the priority of an element, or Learning : Priority : Decrease (Shift+Ctrl+Down) to decrease it. Those operations affect the forgetting index as well as the A-Factor of items and topics respectively.

You can view your entire priority queue with View : Priority queue from the main menu.

Sorting repetitions

In a high-volume incremental reading process, you will be served more elements in a single day than you could possibly manage to process in a week (or worse). It is therefore vital that you begin your review process from elements of the highest priority. Low priority elements might linger in the queue for months or years. High priority items should be reviewed at the exact time that SuperMemo finds optimum. Only this way will you be able to meet your requested forgetting index criteria for high-priority material while still being under no pressure to limit your hunger for knowledge. In simpler terms, in an overloaded learning process, the SuperMemo promise of "excellent memory" will only apply to your top-priority material. The lower the priority, the lower the retention (see: Tools : Statistics : Analysis : Graphs : Forgetting index vs. Priority).

By default, your repetitions will be auto-sorted at the beginning of each learning day (unless you uncheck Learn : Sorting : Auto-sort repetitions). This means that the elements reviewed on a given day will be ordered by priority. In addition to auto-sorting, you can also sort the learning queue manually at any time with Learn : Sorting : Sort now.

You will quickly discover that a precise sort executed strictly along the priority criteria has serious flaws. On one hand, due to the priority bias, you will quickly displace older high-quality material with whatever dominates your current interests. That would be a throwback to your pre-SuperMemo times when you kept reading new material, while forgetting your previous investment in learning. New material always feels as very important and will always show a tendency to shift all your previous learning towards lower priority. In addition, you can overwhelm your classical SuperMemo repetitions (i.e. question-and-answer review) with the inflow of new articles to read. Again, instead of making sure your previous investment becomes durable, you keep rushing through new material and forgetting the old.

SuperMemo solves the problems of the priority bias and the problem of the massive inflow of topics by letting you define (1) the proportion of topics in learning, and (2) a degree to which the learning queue is randomized.

SuperMemo: Sorting items and topics taking part in the learning process using various criteria (priority, randomization, proportion of topics, etc.)

Sorting criteria in SuperMemo. Only a small proportion of time-consuming topics is allowed in the learning queue. This proportion is chosen so that to maximize the fun and efficiency of learning: sufficient inflow of new material combined with the necessary review of your previous investment. Some degree of randomization in the learning sequence is permitted. This way you can re-discover precious articles that were displaced in priority by a massive inflow of new material.

You can determine the sorting criteria by using Learn : Sorting : Sorting criteria.

You need to adjust the proportion of topics and the degree of randomization by trial and error. This will all depend on your goals and preferences. If you admit too few topics in the process, you will not gain much new knowledge. If you admit too many topics, you will start forgetting previously learned material. If you randomize the learning queue too much, the whole prioritization mechanism will unravel, and your retention of high-priority material will drop. If you sort repetitions strictly by priority, the new material will keep displacing the old material due to the priority bias. Even for item repetitions, where the priority bias is less prominent, a degree of randomization will help you increase the priority of less appreciated items, disperse clozes generated from the same extract, and compensate some loss in retention by improving the overall speed of learning (through spacing effect).

Auto-sorting and auto-postpone

It is recommended that you leave two default options checked:

  • Learn : Sorting : Auto-sort repetitions and
  • Learn : Postpone : Auto-postpone.

This way you will nearly never have to worry about material overload. Each time you start SuperMemo for the first time on a given day, it will first postpone repetitions you failed to execute on previous days. It will use default postpone criteria which you can always modify (e.g. with Learn : Postpone : All elements). After postponing the backlog of repetitions, SuperMemo will sort today's repetitions and those that were left outstanding by auto-postpone. Auto-sort will use sorting criteria specified earlier with Learn : Sorting : Sorting criteria.

With auto-postpone and auto-sort, you can always begin your day with a manageable portion of material sorted by priority. Your learning sequence will be optimized with no options to choose, and no keys to press.

Random repetitions

To make sure you have a good understanding of the contents and distribution of material in your collection, you should make thoroughly randomized repetitions from time to time. You can randomize repetitions with Learn : Random : Randomize repetitions (Shift+Ctrl+F11), or with Tools : Mercy with Criteria : Sorting options set to Randomize.

Occasional random repetitions may be quite revealing as they will not favor any portions of your material. Accurate processing will not be increased for elements with: short intervals, specific element type (e.g. articles, extracts, question-and-answer items, etc.), contents (i.e. branch of the knowledge tree), the degree of processing nor, perhaps most importantly, the priority. Random repetitions will help you better understand possible negative trends such as excessive inflow of new material, lower retention (mostly as a result of frequent rescheduling), poor formulation of newly created cloze deletions, low quality or applicability of the acquired knowledge, excessive emphasis on certain subject at the cost of other subjects, etc. Most importantly though, random repetitions should help you sense the power of the priority bias.


  • SuperMemo 2006 introduces the priority queue in which each element has a specific priority from 0% to 100%
  • The highest priority is 0%. The lowest priority is 100%
  • SuperMemo 2006 can auto-postpone the excess of the outstanding material
  • SuperMemo 2006 uses the priority queue to auto-sort the learning queue. This means that each day, you will first be served high-priority elements
  • Priority queue softens the need for moderation in learning; however, it does not entirely solve the priority bias (i.e. your tendency to attach excessive priority to new material)
  • SuperMemo 2006 automates moderation by strictly limiting the inflow of topics into the learning process
  • SuperMemo 2006 helps you combat the priority bias by a degree of randomization in sorting the learning queue
  • In a heavily overloaded learning process, the retention of low-priority material will drop substantially
  • New tools introduced in SuperMemo 2006 will help you increase the volume of learning, and yet increase the retention of top-priority material