重新思考间隔重复算法
我想做一个懂你的间隔重复算法。
明明下午在地铁上有20分钟空闲,但传统记忆软件非要我"明天再复习"。等到明天,那些本来还有点印象的单词已经变成彻底的陌生人。
这让我开始思考:为什么我们还在用20年前设计的算法,应对今天完全不同的生活方式?
传统的间隔重复算法很"科学":第1天→第3天→第7天→第14天...
但它假设了一个不存在的理想用户:
- 每天固定时间学习
- 永不延迟复习
- 记忆力标准化
现实呢?我们在地铁上刷5分钟,午休学10分钟,晚上如果不加班可能有30分钟。我们会因为出差错过复习,会因为加班打乱节奏。
当算法不理解真实生活,失败就成了必然。
我想设计一个不一样的算法,核心公式如下:
下次复习间隔 = 当前间隔 × IF × EF × DF × PF × TF
看起来很复杂?其实每个因子都在回答一个简单的问题。
五个因子,五个问题
- IF(间隔因子):这次记住了吗?
三个按钮,诚实点击:
- 忘记了 = 0.25(间隔缩短到1/4)
- 有点难 = 0.6 (间隔缩短到60%)
- 很容易 = 1.5 (间隔延长到150%)
- EF(难度因子):这张卡片有多难?
范围:1.3 - 2.8 初始值:2.0
每次你选择后,算法都在悄悄调整:
- 忘记了:EF降低32%("这个词对你来说有点难")
- 有点难:EF不变("保持现状")
- 很容易:EF提升8%("你在进步!")
想象你学"algorithm"这个词:前两次都忘了,EF从2.0降到1.36。第三次终于记住了,EF开始回升。经过10次复习后,EF稳定在2.3——你已经征服了它。
- DF(延迟因子):你迟到了多久?
DF = e^(-延迟小时数/计划间隔小时数) ,用指数函数计算,因为遗忘本身就是指数级的:
- 准时复习:DF = 1.0(无惩罚)
- 延迟25%:DF ≈ 0.78(轻微惩罚)
- 延迟50%:DF ≈ 0.61(下次间隔缩短39%)
- 延迟100%:DF ≈ 0.37(下次间隔缩短63%)
特别的是,如果你延迟超过100%且选择"忘记",算法会说:"没关系,我们重新开始。"直接重置到2小时,迟到不可怕,算法理解并相应调整。
- PF(个人因子):你是哪种学习者?
算法会慢慢理解你,而不是强迫你适应它:
范围:0.7 - 1.3 初始值:1.0 # 每100次交互后 if 记忆保留率 > 90%: PF慢慢增加 # "你很厉害,可以学得更快" elif 记忆保留率 < 70%: PF慢慢减少 # "慢一点没关系,我陪着你"
- 记忆超人(保留率>90%):PF逐渐升至1.3
- 普通人(保留率70-90%):PF保持1.0
- 需要帮助(保留率<70%):PF降至0.7
如果你是"需要帮助型"(PF=0.7),这不是惩罚,而是保护。
算法在说:"我知道你需要看到这个词更多次,我会安排得更频繁,直到你真正掌握。"
- TF(时间因子):睡眠巩固的秘密
24-72小时的间隔会获得1.2倍加成,因为睡眠期间大脑会"重播"白天的记忆。这是基于神经科学研究的真实数据。
- 间隔 < 24小时:TF = 1.0
- 间隔 24-72小时:TF = 1.2(睡眠巩固加成20%)
- 间隔 > 72小时:TF = 1.0
为碎片化时间而生
最关键的改变是初始间隔从1天缩短到2小时。
为什么?我观察了自己的手机使用记录,发现平均每2.3小时会自然地拿起手机。既然改不了这个习惯,不如利用它。
实际学习节奏:
- 早上9点学"algorithm"
- 11点提醒复习(2小时后)→ 选"容易" → 6小时后
- 下午5点再复习 → 选"容易" → 明天中午(获得睡眠加成)
- 第二天复习 → 3天后见
特殊交互效应
1.延迟+忘记 = 温柔的重来
当你既延迟又忘记时,算法不会说"你真糟糕",而是承认这次失败,给你全新的开始。
2.连续困难 = 不离不弃
如果一个词连续4次都选"困难",EF会逐步降低,但当你第5次终于选"容易"时,EF立刻回升。算法从不放弃任何一个词,只是调整策略陪你攻克难关。
3.高EF+高PF = 效率的飞跃
当简单词汇遇上记忆力强的你,间隔可能达到数月。但系统会设置180天上限——再简单的东西,半年不见也会陌生。
写到这里,我突然有点激动。
不是因为设计了什么高深的算法,而是因为终于有一个算法在说:"嘿,我知道你很忙,我知道你会延迟,我知道你记性可能不太好,但没关系,我会调整自己来适应你。"
记忆很苦,但我们可以让它甜一点。