FSRS
FSRS 算法详解:它如何预测你何时会忘记
了解 FSRS 如何预测遗忘、安排复习,并用难度、稳定性和可提取性在记忆保持率与复习负担之间取得平衡。
AI 生成图片本页内容
昨天,一张抽认卡的答案还显而易见。今天,你开始犹豫。到了下周,它可能已经想不起来,也可能仍然一出现就能答出。一个有用的排程器必须面对这种不确定性,而不能假设每次答对都应该获得同样长的下一个间隔。
**简要结论:**FSRS 会估计一段记忆如何变化,预测你在延迟一段时间后答对一张卡的概率,并为目标回忆概率选择复习间隔。目标越高,通常就意味着越早复习。这种预测是模型,不是对你下一次答案的保证。
本文会跟着这套决策,从记忆状态一直讲到复习日期。如果你想先看较短的入门介绍,可以阅读我们的 FSRS 新手指南,先熟悉基本术语。
为什么复习时机需要记忆模型
固定间隔无法区分不同的记忆
“一天后、三天后、再过一周复习”这样的安排很容易执行,但它会把熟悉的单词和容易混淆的定义一视同仁。即使今天两张卡都答对了,它们撑过一周的可能性也可能相差很大。
固定间隔并非毫无用处。它能提供结构,把提取练习分散到不同时间。但一个不断增长的牌组中,记忆处在不同阶段;反复复习已经稳固的卡片,也会和真正难以提取的卡片争夺时间。
自适应排程把你的答案当作证据
FSRS 是 Free Spaced Repetition Scheduler 的缩写,即“自由间隔重复排程器”。它会利用一张卡的复习历史,包括经过的时间和评分,更新对记忆状态的估计,然后把这个估计转换成下一个间隔。
这里有一个重要区别:更新卡片状态和优化模型参数并不是一回事。复习可以使用当前参数立即更新卡片;而根据学习者积累的历史记录拟合参数,则是另一项功能,只有部分应用支持。使用 FSRS 并不自动意味着应用会为你进行个性化优化。
而且,并不是所有旧排程器都使用固定阶梯。SM-2 也会根据答案质量调整间隔。FSRS 做出了不同的建模选择:它明确估计记忆稳定性和回忆概率。比较两者时,重点应该是这个差异,而不是笼统地说“旧算法从不自适应”。
FSRS 如何建模你的记忆
难度:这张卡对你来说有多难
难度表示某张特定卡片对某位学习者而言的预计挑战程度。一条很短的定义,如果和另外三条定义很像,也可能很难;较长的答案则可能因为你已经理解背后的概念而很容易。
在 FSRS 中,难度会帮助决定复习后稳定性如何变化。它不是一个简单的计时器,不会说“难卡明天复习”。两张难卡仍然可能有完全不同的间隔,因为其中一段记忆可能比另一段稳定得多。
稳定性:遗忘的时间尺度
在这个模型中,稳定性有一个精确含义:一次复习后,预计回忆概率下降到 90% 所需的天数。因此,一张稳定性为十天的卡,按照假设的遗忘曲线,在十天后有约 90% 的模型预测回忆概率。
这不代表记忆在第十一天就会消失,也不等于排程器选出的复习间隔。同样的稳定性下,如果目标保持率更高,排程器可以选择更早的间隔。成功提取通常会提高预计稳定性;失败则会为下一次更新提供不同的证据。
可提取性:此刻想起来的预计概率
可提取性是在某个时间点成功回忆答案的概率。它取决于距离上次复习经过了多久,以及预计稳定性是多少。难度和稳定性描述的是记忆的不同方面;可提取性则直接回答排程问题:现在答对的可能性有多高。
想象两张词汇卡:一张的稳定性是两天,另一张是二十天。十天之后,它们的回忆概率不必相近,即使你上一次都答对了。相同的经过时间,对第一段记忆来说是大得多的挑战。
这些定义来自 FSRS 算法文档。它们描述的是一个预测复习结果的模型,而不是对你大脑中实际内容的直接测量。
从遗忘曲线到复习日期
一个完整例子:同一段记忆,三个目标
把稳定性固定在十天,并假设中间没有复习。模型会从较高的回忆概率开始,预测它逐渐下降。复习阈值就是曲线达到你所需保持率的位置。
在下面这条示意曲线中,80% 的目标对应大约 24 天的间隔;90% 对应十天;95% 则约为 4.6 天。记忆估计没有改变,改变的只是你愿意接受的预计风险。
这也解释了一个看起来很长的间隔:它可能反映了较强的预计记忆、较低的目标,或者两者兼有。单看日期,无法知道应用认为这张卡有多难。你需要结合记忆估计和排程设置来理解它。
探索保持率阈值
调整目标,观察阈值如何沿着同一条曲线移动。水平线代表你要求的回忆概率;它与曲线的交点,就是大致的复习间隔。
稳定性固定为十天,采用 FSRS-4.5 曲线。不模拟连续复习,也不提供个人预测。
这个演示使用文档中的 FSRS-4.5 遗忘曲线,并固定十天稳定性,以便单独说明一个概念。它不会模拟反复复习、拟合个人参数,也不会复现某个特定应用的完整排程。较新的 FSRS 版本可能使用不同的曲线形状;真实应用还可能对间隔取整、加入少量排程变化,或应用学习步骤和间隔上限。
注意,提高目标并不会让曲线变得更强。它只会让复习提前。要改善底层记忆,需要学习和提取练习;目标设置改变的只是你计划何时检查它。
一次复习后会发生什么
下一次复习到来时,排程器会收到另一个观察结果:经过了多久,以及你的评分是什么。它会更新难度和稳定性,再根据更新后的状态选择下一个间隔。因此,下一条曲线可能和之前看到的不同。
经过较长延迟后答对一次,和刚看过就重复一次,提供的证据并不相同。答错也很重要:它告诉模型,在这些条件下回忆并没有成功。这就是为什么不能把重复复习排程简单地理解为一直延长这条固定稳定性曲线。
可以把这个过程看作一个循环:
- 在翻开答案前,先尝试回忆。
- 诚实地评价结果。
- 更新预计的记忆状态。
- 为目标保持率选择下一个间隔。
- 根据新的证据重复这个过程。
如何选择保持率目标
为什么 90% 是常见起点
目标保持率,是你希望模型在一张卡到了复习时间时达到的回忆概率。Anki 的默认值是 90%,并把它描述为保持率与工作量之间的平衡。它是一个起点,并不是适合所有学习者或所有任务的科学上唯一最优值。(Anki 牌组选项)
90% 的目标不代表你会永久牺牲十分之一的知识。卡片在任意时刻的年龄不同,答错后的卡片也可以重新学习。它也不能保证你接下来十次会恰好答对九次。实际结果会波动,而一个拟合不佳的模型也可能无法准确反映你的材料。
应该观察足够多的复习趋势,再判断某个设置是否合适。一个疲惫的下午、几张刚学会的卡,或牌组的一次变化,都不足以证明模型准确或不准确。
更高的目标意味着工作量取舍
对同一个记忆状态,提高目标会缩短间隔。在示意图中,从 90% 调到 95%,间隔会减少一半以上。这只是一个理论间隔的比较,并不意味着你的总复习量一定会准确翻倍。
长期工作量还取决于新卡数量、失败次数、稳定性的变化、学习步骤,以及你能投入的学习时间。Anki 手册提醒,目标超过 90% 后,工作量会迅速上升,尤其是在很高的目标下。因为 99% 听起来几乎完美就选择它,可能会得到一套你无法长期坚持的安排。
用忘记的后果来帮助你做决定。长期词汇练习和临近的考试,可能需要不同的优先级。如果工作量已经难以承受,可以同时减少新卡数量、改善卡片设计,而不是只提高保持率目标。提高目标无法创造一天中不存在的额外时间。
FSRS 与 SM-2 的区别
两种不同的下次间隔思路
原始 SM-2 算法 会根据答案质量调整易度因子,并用它在成功重复后扩大间隔。答错会让重复序列重新开始。它确实具有自适应性,但不会通过求解一个目标回忆概率来明确选择间隔。
FSRS 会建模难度和稳定性,根据经过的时间推导可提取性,再围绕保持率目标选择间隔。在应用支持这种流程时,它的参数还可以根据复习历史进行优化。不过,两种系统都依赖复习反馈。
比较应用时要小心:一个被称为“基于 SM-2”的应用,可能已经做了大量修改。同样,两个使用 FSRS 的应用也可能在版本、参数、学习步骤、间隔上限和复习行为上有所不同。算法名称本身无法说明完整的用户体验。
在实际使用中的优点与局限
FSRS 提供了一种明确的方式,让你理解预计回忆以及保持率和时间之间的取舍。这让解释“为什么现在要复习”以及“目标如何影响间隔”变得更容易。如果应用支持参数拟合,也可以根据记录下来的复习模式调整模型。
但它仍有实际局限。稀疏或误导性的历史记录、不稳定的评分、含糊的卡片,以及在应用之外学到的材料,都会让预测变得困难。模型看到的是日志证据,而不是每一次对话、讲座或练习题对记忆的加强。
没有必要承诺一个固定的复习量下降百分比,才能说明 FSRS 的价值。更好的预测也许能更有效地分配复习;但它是否改善你的工作量和回忆,取决于你的数据、设置和习惯。
让复习适应真实生活
忙碌或错过复习时怎么办
到期日期是基于模型的建议,不是生理上的有效期。如果错过了,预计回忆概率通常会进一步下降,但这张卡不会瞬间被忘掉。回来后诚实地复习,让排程器获得“延迟更久后发生了什么”的证据。
在日历中预留现实可行的复习时间;如果积压越来越多,就减少新卡的输入。日历负责安排你的时间,排程器负责安排单张卡片。两者可以互相配合,而使用 FSRS 本身并不代表应用提供日历集成。
SpaceRep 使用 FSRS 安排抽认卡复习,并为考试牌组应用考虑截止日期的排程。把这些日期当作学习计划的辅助,同时也要为理解和实际应用留出时间。
考试截止日期会改变规划问题
考试带来了第二个限制:即使长期排程器会把下一次复习放得更晚,你也必须在某个日期前获得有用的回忆能力。应用可以用更高的保持率目标或间隔上限来处理这个问题,但具体行为取决于实现方式。
不要把所有可用时间都用来追求一个完美的抽认卡指标。书面解释、综合题和计时练习,能够训练一个简短回忆提示无法覆盖的能力。我们的考前突击与间隔复习指南会说明如何让复习配合考试真正要求的能力。
诚实评分和清晰卡片会改善证据
如果你没能想起答案,就报告失败。在 FSRS 中,“困难”表示成功但很费力的回忆;它不应该成为“重来”的客气说法。否则,历史记录会把一次失败伪装成成功。
也要检查卡片本身:问题是否只有一个清晰目标?你能否判断自己的答案对不对?它测试的是理解,还是只测试一个看起来很熟悉的句子?我们的有效抽认卡设计指南可以帮助你修正那些会让评分变得不可靠的提示。
好的排程始于有意义的观察。一张设计清楚的卡、一次真实的提取尝试和一个诚实的评分,能给模型提供有用的工作材料;即使预测并不完美,也能让这次复习真正有价值。
FAQ
90% 的保持率是不是意味着我会忘掉所有知识的 10%?
不是。它表示在安排复习的时间点,模型目标达到的回忆概率,并不是永久丢失知识的配额。最近复习过的卡片,预计回忆概率可能更高;答错的卡片也可以重新学习。
FSRS 会在每次复习后学习我的个人参数吗?
不一定。每次复习都会使用当前参数更新卡片的记忆状态;根据你的历史记录优化参数,则是另一项功能,是否提供取决于具体应用。
FSRS 能保证我在考试当天记住某个内容吗?
不能。它根据复习证据估计概率。考虑截止日期的排程可能有助于规划,但回忆还取决于学习质量、考试任务以及当天的状态。
FAQ
90% 的保持率是不是意味着我会忘掉所有知识的 10%?
不是。它表示在安排复习的时间点,模型目标达到的回忆概率,并不是永久丢失知识的配额。最近复习过的卡片,预计回忆概率可能更高;答错的卡片也可以重新学习。
FSRS 会在每次复习后学习我的个人参数吗?
不一定。每次复习都会使用当前参数更新卡片的记忆状态;根据你的历史记录优化参数,则是另一项功能,是否提供取决于具体应用。
FSRS 能保证我在考试当天记住某个内容吗?
不能。它根据复习证据估计概率。考虑截止日期的排程可能有助于规划,但回忆还取决于学习质量、考试任务以及当天的状态。