为什么你背了就忘,而这套系统不一样
从艾宾浩斯到 FSRS:拖三个小实验,看懂记忆是怎么被算出来的
Part 1 · 人会遗忘
上周你背下的那些单词,今天还剩几个?大多数人会发现:明明当时记得清清楚楚,过几天再看, 像从没学过一样。这几乎是每个背单词的人都栽过的跟头——不是你不够努力,是大脑本来就这么运作的。
好消息是:遗忘并不随机。一百多年前就有人把它测了出来,发现它遵循一条相当规整的曲线。 先看清这条曲线,后面的一切才好讲。
遗忘是一条能算出来的曲线
1885 年,德国心理学家赫尔曼·艾宾浩斯(Hermann Ebbinghaus)拿自己做了个著名实验: 背下一长串无意义音节,再在不同时间点测自己还记得多少。把结果画出来,是一条先陡后缓的下滑线—— 学完头几个小时掉得最快,之后越来越慢。
不复习时,记得的比例随时间快速下滑(艾宾浩斯遗忘曲线)
这条线后来被叫做「遗忘曲线」。它最重要的启示有两点: ① 遗忘是可以被测量、被预测的; ② 既然能预测,那「一个词什么时候会被忘掉」也就能算——也就能赶在那一刻之前,把它重新捞回来复习。
把这个朴素想法做到极致、还能对每个词、每个人单独建模的,是一套叫 FSRS 的现代算法。 下面我们就从算法本身讲起。
Part 2 · 算法本身
第一步:不复习时,记忆怎么随天数往下掉
决定"什么时候该复习哪个词"的,是一套叫 FSRS(Free Spaced Repetition Scheduler)的现代算法。 它最大的本事,是把记忆变成了可以定量计算的东西。但先别急着看它怎么算—— 我们从你最有体感的一件事说起:不复习,就会忘。
先说 R,回忆率(retrievability)。它的意思很直白:如果此刻就考你这个词,你能想起来的概率。 刚复习完 R≈100%(几乎一定记得);随着天数过去,R 一点点往下掉,掉到 50% 就是「一半把握」。R 一路下滑,就是遗忘正在发生。它是个随时间变化的状态,不是死数。
那为什么有的词忘得快、有的忘得慢?FSRS 给每个词配一把「时间标尺」,叫稳定性 S,单位是天, 可以先理解成「这个词的记忆大概能撑多久」。R 怎么随天数往下掉,就这一条公式:
R = ( 1 + 0.23 × t/S )−1/2- ·
t:距上次复习的天数 —— 图里的横轴。 - ·
S:记忆的「时间标尺」(天)。注意公式里t和S总是成对、只看比值 t/S。 - · 代 t=0 → R=100%(刚复习完,满血);t 越大、过得越久,R 越低。
这正好回答一个常见疑问:S 明明是个「天数」,怎么会决定曲线的陡平?因为公式只认 t/S——S 就是这条曲线的时间标尺,它把同一条曲线在时间轴上拉长或压短: S=8 的词,走 8 天 R 掉到 90%;S=80 的词,要走 80 天才掉到 90%——同一条曲线被横向拉长 10 倍, 所以在同样的一段日子里看,S 越大就越平、S 越小就越陡。
光说没用,拖一下最直观。拖动 S,看整条曲线被横向拉长(变平)或压短(变陡);拖天数,看 R 顺着曲线往下走,那就是遗忘在发生:
实验 · 拖 S 看曲线
怎么读:橙线就是这个词的「遗忘曲线」,一路下滑=你在慢慢忘; 空心圈是你此刻所在的天数——它左侧标着此刻的 R、底部标着第几天。那条虚线画在 R=90%,它和曲线的交点(图中灰色竖标)横坐标正好就是 S。可以直接在图里拖:拖橙色圈改天数、拖灰色竖标改 S(也可用下面的滑块)。
此刻还记得 R
92%
稳定性 S
8 天
S · 曲线多平8 天R第 6 天顺带解释图里那条虚线:它画在 R=90% 的高度。你会发现一个规律——不管把 S 调到多少,曲线掉到这条 90% 线,正好都要花 S 天(就是公式里 t=S 时 R 恰好=90%)。 所以 S 有个更顺口的读法:「还能记住九成的天数」——S=7 约一周掉到九成,S=90 能撑三个月。S 越大=记得越牢,它其实就是这个词的「掌握程度」。至于 R,它不用存——随时拿 S 和天数现算就好。
所以你不用自己判断「什么时候该复习」——FSRS 替你算好了。给定 S,它反解出还能等几天 (S 越大、间隔排得越久:S=7 约一周后,S=90 约三个月后),到点自动把这个词放回「今日复习」。 为什么挑这天最划算:太早(还记得很牢)复习几乎没收益,太晚(快忘光)有真忘掉的风险,卡在中间刚好。(这个早晚的松紧可调,见 Part 3。)
第二步:记忆的本质,就是把 S 撑大
既然 S 越大记得越牢,学习的目标其实就一句话:把每个词的 S 一点点撑大。 怎么撑?答案是复习。你在复习里答对一次,S 就会变大;变大多少,由一个「增长系数」决定:
(4.7、0.12、1.02 是 FSRS 训练出来的固定系数,不用记。)四个因子相乘,其中时机项和难度项摆动最大(各能差约 10 倍)、最该盯;评级加成是你能控的那部分;S−0.12 只是天花板。下面逐个看。
时机项 (e1.02·(1−R)−1):你离遗忘多近
1−R 就是"你忘了多少"。隔得越久、在快忘时答对(R 越低),这一项越大、S 涨得越猛——这正是 FSRS 的核心:在快忘的边缘成功回忆,记忆加固最多。这也解释了为什么"刷"没用:刚答完 R≈100%,这一项几乎为零。
难度 D:这个词对你有多难
公式里的 D 就是难度(difficulty,1–10),表示这个词对你个人有多难。 它在 (11−D) 这一项里起作用:D 越大(词越难),这块越小,S 涨得越慢——难词被难度摁着、涨得慢。 (另一项 S−0.12 只是天花板:已经很稳的词再涨打个折,防止无限膨胀。)
D 只跟你答得怎么样有关,跟 R、跟时间无关——这「答得怎么样」就是 FSRS 的四档评级(Again · Hard · Good · Easy,越靠后答得越轻松,下面「评级加成」会细讲)。它分"出生 / 长大"两步:
第一次答这个词时,直接按你答得多好定初值:Easy → D≈3(最简单)、Good → D≈5、Again → D≈7(最难)。
之后每答一次按下面这条式子微调——Easy 让 D 降、Again 让 D 升、Good 基本不动。
新D = 旧D − 1.46 ×(评级−3)× (10−旧D)/9 ,再轻轻拉回基线- ·
(评级−3)定方向:Again / Hard → 升,Good → 不变,Easy → 降。 - ·
(10−旧D)/9是阻尼:D 越接近上限 10,这次改得越小(渐近逼近,不硬撞)。 - · 注意式子里没有 R、没有时间——D 只认你答得好不好。
评级加成:你这次答得多好
上面那四档评级里,答对的三档(Hard · Good · Easy)各对应一个乘数、直接乘进系数——这就是评级加成;Again 那档不乘,另走回落公式:
同样的时机,Easy 让系数大不少、Hard 砍到约四分之一。 而 Again 压根不在这个系数里——答错走的是另一条「回落」公式(S 往下掉),下一张活图里能看到。
一个容易忽略、但很关键的顺序:算这次复习的新 S 时,用的是「旧 D」; 新 D 是在算完 S 之后才用这次评级更新的。 所以——你这次答出来的 D,要到下一次复习算 S 时才起作用,对本次的 S 没有任何影响。(这是 FSRS 的算法性质:S 公式吃的是旧 D。它和后面 Part 3 才讲的「8 小时节流」是两码事,别混。)
一句话收束:S 这次涨多少 = 看你离遗忘多近(R)、这次答得怎么样(评级)、这词有多难(旧 D),以及它当前已经多稳(S)。 下面把这一切画成两条曲线——复习前 vs 复习后。拖间隔、难度、评级,看这一答把曲线从哪条变成哪条:
实验 · 复习前 vs 复习后
橙色实线=复习前这词当前的遗忘曲线;虚线=复习后会变成的新曲线(第 8 天答题后重新开始)。 两条线末尾各标着它还能撑多少天(就是 S)——一眼看出这一答把 S 顶高了多少。 竖直橙线=你第 8 天回来答题,圈的高度=当时还记得多少(R 85%)。
R第 8 天 · R 85%D5.0 / 10S5 天(同一天反复练习走另一条「短期公式」,幅度小得多——这里只看隔日复习,所以间隔最少 1 天。)
在第 8 天、难度为 5.0 时, 答「Good」让 S 从 5 天涨到 24 天。
答对后 S 的增长系数 = 1 + 这些相乘:
同一次评级也更新难度 D:5.0→5.0≈ 几乎不变
注意:这个新 D 不影响刚才这次的 S(上面系数里的难度项用的是旧 D 5.0)—— 它要到下一次复习算 S 时才生效。
几个值得一拖的现象:把间隔拉到快忘时(R 低)再答 Easy,复习后那条线明显更平、更靠右——S 大涨; 换成 Again,复习后那条线反而更陡、S 回落,明天它就回来重背。 还有右下角:评级顺手也改了 D,但那个新 D 这次不算数,下次才生效。
Part 3 · 我们的适配
以上全是 FSRS 原版算法。下面是我们在它之上做的几个产品化选择—— 把这套数学接到真实的"背单词"流程里。理解了 R / S / D,这些设计就都不再是黑盒。
① 五档熟练度:把 S 翻译成你读得懂的等级
"稳定性 16.3 天"这种数字对你没意义,所以我们把 S 按天数切成五个等级,直接显示成你能读懂的进度。 语言学家 Paul Nation 也说过,词汇掌握不是"会 / 不会"的开关,而是从勉强认得到形成语感的连续过程——这五档正是这条路。
| 等级 | 稳定性 S | 含义 |
|---|---|---|
| 生疏 | 不到 1 天 | 还没真正记住 |
| 认识 | 1 – 7 天 | 初步记忆痕迹 |
| 熟悉 | 7 – 21 天 | 可靠的被动识别 |
| 掌握 | 21 – 90 天 | 进入中期记忆 |
| 精通 | 90 天以上 | 长期记忆,近乎直觉 |
两点要记住:① 等级只是 S 的"翻译",不是另一套规则——所以也很难靠猛刷冲上去, 真正升档得靠隔日的成功回忆把 S 喂大。② 等级只看 S,跟难度 D 没关系——D 只在幕后影响 S 涨多快,不直接定你在哪一档。 冲刺备考时,到「熟悉」(S≥7,约一周)通常就够用,精通是留给长期的。
② 三档模式:你唯一需要做的选择
还记得第一步那张图里的横线——"R 掉到这就算快忘了"吗?这条线设在多高,就是 FSRS 唯一暴露给用户的旋钮:目标保持率, 也就是你希望每次复习时还能记住的概率。设得越高,词还很稳时就被调回来考你,记得越牢、但也越累。我们把它做成三档:
轻松
保持率 85%
间隔更长、更省力
标准
保持率 90%
均衡,推荐大多数人
严格
保持率 95%
复习更勤、记得更牢
它改的只是"下次什么时候考你",不碰你已经攒下的 S 和 D。拖一拖下面这张图就明白—— 同一个词、同一个 S,只切档位,只有那条竖线(下次复习日)在动,S 和等级纹丝不动:
实验 · 保持率怎么改间隔
同一个词、同一条曲线(S 不变),只把目标保持率调高一档,那条竖线(下次复习日)就往左移——复习更勤;而 S 和熟练度一点没变。(也可直接拖竖标改 S。)
稳定性 S
10 天
下次复习
约 10 天
熟练度
熟悉
S10 天切换模式只影响之后的复习间隔,已经记牢的词不会因为换挡清零。
③ 你的作答,怎么变成「评级」
FSRS 要的是四档评级,但我们不想让你每次都从四个按钮里挑——那既打断节奏、又容易高估自己。 所以系统先看你实际答得怎么样,自动判一个稳妥的默认,你只在想微调时点一下:
- 答对 · 默认
答对默认判「答对」(Good)——凭记忆答对,记忆稳稳上升。不再默认判最高档,免得一次拼对就把这词当成已经很熟(这也是为什么新词答对后落在「认识」而不是一步跳到「熟悉」)。
- 秒答
如果这词你不假思索就秒答出来,在结果页点「秒答」上调到 Easy——间隔大幅拉长,少考你几次。
- 蒙对的
如果其实是连蒙带猜答对的,点「蒙对的」下调到 Hard——算对,但记忆加固打折、间隔保守,避免蒙中的词被高估。
- 差一点
答错时用编辑距离(Levenshtein)判"手滑":差的字母数 ÷ 答案长度 ≤ 1/3,且这个词你已经认识(S≥1)→ 自动判「差一点」(同样是 Hard),不重罚。(新词拼错则一律「没记住」。)
- 没记住
新词拼错 / 完全跳过 / 错得离谱 → 判「没记住」,它会留在复习里帮你巩固。
两条铁律:① 我们刻意不看你答题用了多久——打字快慢是手速和设备问题,跟记忆强度无关(所以「秒答」由你自己点,不靠掐表); ② 答错绝不升级。 (这几档对应前面算法的 Again / Hard / Good / Easy:秒答=Easy、答对=Good、蒙对的 / 差一点=Hard、没记住=Again。)
④ 推荐节奏:第一次是测试,之后都是练习
这是我们对难度 D 做的一处特殊处理,也是为什么会有「测试」和「练习」两种说法。 我们给 D 加了个节流:同一个词,D 每 8 小时最多更新一次。
隔了 8 小时以上的那次作答 → 同时校准记忆 S 和难度 D。第一次见这个词、或睡一觉再见,都是测试。
8 小时以内的反复作答 → 只长 S、不动 D。同一天反复练,S 走那条幅度小得多的"短期公式"慢慢累积,D 锁住。
为什么这样不会出问题?还记得 Part 2 那个关键顺序吗——算 S 用的是旧 D。 正因如此,我们把 D 冻住,根本不影响 S 的计算:S 照样能靠练习一点点累积,而 D 不会被你同一天的反复刷给污染。 一句话:S 能靠练习涨,D 刷不动。
别把两件事搞混:Part 2 说的「新 D 要下次才影响 S」是 FSRS 原版的算法顺序(S 吃旧 D); 这里说的「8 小时内根本不更新 D」是我们额外加的节流。前者是算法,后者是我们的产品选择。
说到底,这套系统没有魔法:它只是把"遗忘"这条曲线算清楚,然后在你快忘的那一刻,把词递到你面前。 剩下的,靠你一次次真的记起来。