Spaced Repetition Systems Have Gotten Way Better

2025年5月18日

间隔重复回顾

掌握任何学科都建立在知识的基础上:事实、启发式方法或解决问题的策略。如果某个学科是你的全职工作的一部分,那么你很可能会通过反复接触这些知识来掌握它。但对于兼职学习的东西——比如我自己学习日语——很难达到那种程度的练习。

学校里的科目也是如此:每周几小时的课堂或作业很少足以建立起持久的知识基础,尤其是在历史或医学等事实性科目中。即使是你可能认为与学习无关的生活部分,也可以通过这种视角来看待:如果你能无限期地记住从播客和 Hacker News 文章中收集的信息,难道不会觉得更有价值吗?

间隔重复系统是解决这个问题最完善的答案之一。它们本质上是显示抽认卡的软件程序,卡片的正面会提示你回忆卡片背面的信息。你可以在 Andy 的笔记中阅读更多关于它们的信息,或者从我个人收藏的图像中获得一些概念:

一张抽认卡的正面,包含日语单词 眼科医 一张抽认卡的背面,包含 眼科医 的发音、含义和一个例句 一张抽认卡的正面,包含提示语 "一个典型的人脑中有多少神经元" 一张抽认卡的背面,包含答案 "860亿"

这些程序之所以得名,是因为它们会根据你对自己的回答进行评分,来间隔性地提示你复习同一张卡片。正确回答后的间隔会越来越长,从而避免每日复习的堆积。例如,这样你每天只需花 20 分钟的复习时间,就可以学习 10 个新的第二语言单词(每年 3,650 个!)。

(如果你仍然不相信,并且有空闲时间,我建议阅读 Michael Nielsen 的文章[Augmenting Long-term Memory](https://domenic.me/fsrs/https:/augmentingcognition.com/ltm.html)。)

改进调度算法

到目前为止,这些都是众所周知的。但鲜为人知的是,在过去的几年里,一场悄无声息的革命极大地改进了间隔重复系统,使其效率更高,使用起来也不那么令人沮丧。神奇的成分是一种新的调度算法,称为 FSRS,由 Jarrett Ye 开发。

要理解这些系统是如何改进的,首先让我们考虑一下它们过去是如何工作的。粗略地说,你会在创建卡片后的一天看到它。如果你答对了,你会在 6 天后再次看到它。如果你第二次答对了,它将在 15 天后再次安排复习。如果你连续三次答对卡片,那么是 37.5 天后。总的来说,在 6 天的间隔之后,有一个指数回退,默认为 6 × 2.5 倍正确次数 + 1。你可以看到,如果你一直答对卡片,这可以导致一个庞大的知识库,每天只需少量复习!

但是如果你答错了呢?那么,你将重置回第 1 天!你会在第二天再次看到这张卡片,然后在 6 天后再次看到它,依此类推。(虽然错过卡片也可以调整其“容易度因子”,即指数中的底数,默认设置为 2.5。)这可能是一个相当令人沮丧的体验,因为你会体验到一张卡片在长间隔和短间隔之间来回跳动。

如果我们退一步,我们会意识到这种调度系统(称为“SuperMemo-2”)非常随意。1、6、2.5 倍正确次数 + 1、失败后重置的规则来自哪里?事实证明,它是 由一位大学生在 1987 年根据他个人的实验开发的。我们不能做得更好吗?

回顾 间隔重复背后的理论:我们试图通过“在我们即将忘记之前”测试自己来克服“遗忘曲线”。对于每一块知识,遗忘曲线都是相同的,这似乎不太可能:无论我学习什么,我都会在 1 天后、再过 6 天、再过 15 天等等的时候即将忘记。当然,我们可以对容易度因子进行一些修改,但即使你让底数根据反馈略有变化,理想的复习时间表仍然是完美的指数函数,这仍然不太可能。

遗忘曲线的图示,横轴为时间,纵轴为记忆保持率。你在第 0 天学习了一些东西,你的记忆保持率随着时间根据遗忘曲线而衰减,但定期复习会使记忆保持率再次上升。 遗忘曲线的众多图示之一。这个似乎源自 osmosis.org 上的一个讲座

FSRS 算法的见解是将我们的目标(在“我们即将忘记之前”进行测试)具体化为一个预测问题:回忆一张卡片的概率何时下降到 90%? 这种预测问题是机器学习系统擅长的。

关于 FSRS 工作原理的一些有趣的事实

上述见解——让我们应用机器学习来找到正确的间隔,而不是使用任意公式——是 FSRS 的核心。你实际上不需要知道它是如何工作的才能从中受益。但这里有一个关于一些细节的简要解释,因为我认为它们很酷。

FSRS 称自己为“三组件”模型,因为它使用机器学习来拟合三个主要函数的曲线:

对于每张卡片,它会根据各种公式计算这些值。例如,可检索性曲线已经 随着时间推移进行了调整,从指数函数变为幂函数,以更好地拟合观察到的数据。

曲线拟合使用 21 个参数完成。这些参数从最初的值开始,这些值来自对人们之前完成的数万次复习进行曲线拟合。但是,当你对自己的复习集运行 FSRS 优化器时,会找到最佳结果,这将调整参数以适应你个人的难度/稳定性/可检索性函数。(这种参数调整是机器学习发挥作用的地方:参数值被发现使用你可能听说过的技术,例如最大似然估计和随机梯度下降。)

虽然核心 FSRS 算法关注预测这三个函数,但作为用户,你关心的是卡片调度。为此,FSRS 允许你选择所需的记忆保持率,默认为 90%,然后使用这三个函数来计算你下次看到一张卡片的时间,在你复习它并给自己评分之后。

但是,如果你愿意,你可以更改此所需的记忆保持率。并且由于 FSRS 具有关于你如何保留信息的详细模型,包括其难度/稳定性/可检索性函数,它可以模拟你将在任何给定速率下的工作量。维护者 建议 你将所需的记忆保持率设置为最小化你的工作量与知识比率。

这可能会产生相当戏剧性的效果:下面我们看到了我的个人日语词汇表的两个模拟,橙色线是默认的 90% 所需记忆保持率,蓝色线是 FSRS 建议我使用的 70% 所需记忆保持率,以最小化工作量与知识比率。该模拟运行 365 天,只要我的复习次数少于 200 次,每天就会添加 10 张新卡片。正如你所看到的,70% 的所需记忆保持率设置每天的复习次数大大减少,时间更短,同时最终记住的卡片更多(因为它没有达到限制新卡片的 200 张卡片限制)。

一个图表,橙色线(90% 目标记忆保持率)迅速达到 200,偶尔下降到 200 以下一两天,但总是会回来,而蓝色线(70% 目标记忆保持率)从开始时的 60 左右缓慢上升到结束时的 130。 每天的复习次数 一个图表,橙色线(90% 目标记忆保持率)在 24 分钟左右波动,而蓝色线(70% 目标记忆保持率)从开始时的 13 分钟左右缓慢上升到结束时的 23 分钟。 每天花费的时间 一个图表,橙色线(90% 目标记忆保持率)以对数方式从记住的 1639 张卡片增长到记住的 2602 张卡片,而蓝色线(70% 目标记忆保持率)从 1639 张卡片到 4476 张卡片的趋势更线性。 记住的卡片数量

(请注意,计算稳定性函数时使用的 90% 数字与所需的记忆保持率不同。它只是用来预测遗忘曲线的形状。最初的论文 使用了半衰期,即卡片达到 50% 回忆概率所需的时间,因为它更学术。)

FSRS 的实践

如果你想使用 FSRS,而不是其他 表现不佳 的算法,你必须使用支持它的软件。值得庆幸的是,领先的间隔重复软件 Anki 自 2023 年 11 月发布的 23.10 版本以来,已将 FSRS 作为其默认调度算法纳入其中。你可能已经在使用了!

(顺便说一句,它进入 Anki 的 故事 非常酷。当时的一名本科生 FSRS 的创建者在他的新算法的 Anki subreddit 上发帖。一位评论员挑战他去在软件中实现他的算法,而不是仅仅发表论文。他首先将其实现为 Anki 插件,并且它的日益普及最终说服了 Anki 开发人员将其引入核心代码!)

主观上,我发现 FSRS 是对我先前基于 SuperMemo-2 的 Anki 算法的复习质量的巨大提升。复习负担要轻得多。错过卡片时的绝望感大大减轻,因为这样做不再让你回到第 1 天。并且 FSRS 提供的更好的统计建模使我更有信心 Anki 算作我已经学到的卡片实际上会留在我的大脑中。

对于日语学习而言,当您将 FSRS 的优势与两个流行的订阅服务使用的“算法”进行比较时,FSRS 的优势甚至更强。WaniKani,一个汉字/词汇学习网站,和 Bunpro,一个语法学习网站,使用 非常 不幸的算法,甚至比 SuperMemo-2 中的 1、6、2.5 倍正确次数 + 1 规则更糟糕。相反,他们从空中挑选了其他间隔模式:

这些间隔不会因用户或卡片而异:它们甚至没有像 2.5 底数那样的可调节难度因子。而且在最后一个间隔之后你实际上永远不会再看到一张卡片的想法很可怕,因为它意味着你一直在失去知识。

但这甚至不是最糟糕的部分:关于这些网站算法最糟糕的事情是,错过一张卡片 将其在间隔阶梯中向下移动一步或两步 ,而不是像 SuperMemo-2 那样重置为第一个间隔,或者像 FSRS 那样使用机器学习预测最佳的下一个间隔。这极大地破坏了记忆保持,浪费了大量用户时间,并且通常将这些网站变成一种每天为自己忘记的事情感到难过,而不是为自己记住的事情感到高兴的日常仪式。当我决定大约一年前 ragequit 转而使用 Anki 时,我 在 Bunpro 论坛上 写了关于这件事的文章。

退一步说,我从这次经历中得出的结论是,Anki 是王者。人们抱怨说它的 UI 是由开发人员而不是设计师创建的,或者你必须找到或制作自己的牌组而不是使用预先包装好的牌组。这些都是合理的抱怨。但是 Anki 由真正关心有效学习的人维护。它会收到 频繁的更新,使其在该目标上做得更好。它足够灵活,可以带你度过知识获取之旅的任何阶段。投入时间来掌握它将为你提供一个持续你一生的基础。

了解更多

如果你想了解更多关于这方面的信息,这里有一些我推荐的链接:

感谢 Expertium 审查了本文的早期草稿,并提出了他们的意见和更正。 源代码位于 domenic/domenic.me 版权所有 © Domenic Denicol