MaiMemo 记忆算法研究 2021
访问项目:GitHub - maimemo/maimemo-memory-research: Maimemo’s 2021 study on memory algorithms, empirical valid
若有其他想交流的,欢迎邮件联系 datascience@maimemo.com。
0 前言
内容概述
本文分享墨墨记忆团队的《记忆算法研究 1.0》报告(完成时间 2021-07-06),该报告记录了团队在记忆算法研究方面的目标、方法及部分成果(前三章 - 算法综述、算法理论及算法实验)。
公开目的
首先是源于我们认为这项研究本身充满趣味,希望与感兴趣的朋友们交流探讨。同时,墨墨在记忆研究领域已研究十年,期间我们不仅获得了许多有趣甚至反直觉的洞见,也遇到了不少瓶颈。我们希望通过分享这些历程,能让更多人关注并了解记忆研究,从而为该领域的长远进步贡献一份力量。
相关背景
相关研究依托于两款核心产品——墨墨背单词(2014 年上线)和墨墨记忆卡(2021 年上线)。截至 2025 年 10 月,平台已累积了 1338 亿条用户记忆行为数据,为超过 4000 万用户提供了服务。学术方面,已有两篇研究论文在 ACM SIGKDD 2022 及 IEEE TKDE 2023 上成功发表。此外,为促进行业发展,我们已于 2022 年开源了 2.2 亿条数据。
1 绪论
1.1 研究背景与意义
愿景:每一个人想到要记东西,只需想到“墨墨”。
为什么是“记忆”作为切入点?
首要原因当然是因为我们已经在做墨墨背单词了,我们有这个基础和优势,而且收入也不错。
但更重要的是,谁占领了记忆这个市场,谁就占领了教育行业中最重要的棋子,在现在的教育领域,90% 的知识是靠记忆,另外 10% 看起来是靠理解的知识,其实还是靠记忆。
手机的移动体验给了“记忆”这个领域实现卓越用户体验的基础。大家不用再被一个笨重的电脑捆绑,可以带着墨墨走进自习室,走进图书馆,甚至在床上躺着都可以完成记忆。
虽然这个市场在不断的被证明有足够大,但竟然在这个领域,到现在国内也没有出现足够卓越的公司,墨墨在做,但距离卓越还相差非常非常远,这也正是我们努力的方向。
1.2 文献综述
1.2.1 MaiMemo
MaiMemo 的算法是基于 BMMS 的,其算法有三个关键点:
- WDR 单词难度分类,墨墨背单词记忆算法的点睛之笔;
- MMDB 根据单词难度及用户学习反馈序列来确定下次学习间隔,使用最朴素的特征;
- FVI 根据 FM 来确定下次学习间隔。
下面我们来对关键概念进行简单说明,对于算法细节在这里不做详述。
- BMMS (Big Data Memory Matirx System),大数据记忆矩阵系统,负责记忆数据收集、统计、分析及预测,是 MaiMemo 记忆算法的实现系统的统称。
- FSR (Full Study Record),全量学习数据,负责记录用户每日对于每个单词的学习记录,包含完整反馈、学习间隔及学习时间等必要关键信息,是 MaiMemo 记忆算法的关键基础。
- WDR (Words Difficulty Rank),单词难度排名,负责为单词进行难度分类,以更好的规划单词的学习间隔,是 MaiMemo 记忆算法的核心特点所在。
- WCR (Words Cognition Rank),单词认知度排名,负责为单词进行认知度排名,以更好的预测用户的词汇量,是 MaiMemo 词汇量测试算法的核心特点所在。
- MMDB (Memory Matirx Database),记忆矩阵数据库,负责用户学习规划,是 MaiMemo 记忆算法的数据模型抽象,是 BMMS 的最终产物,如图 1 所示。
- FVI (Familiarity vs. Interval),熟知度间隔矩阵,负责用户学习规划,是 MaiMemo 记忆算法的数据模型抽象的补充。FM (Familiarity) ,熟知度,是用户学习反馈序列的抽象补充。
1.2.2 艾宾浩斯记忆法
德国心理学家赫尔曼·艾宾浩斯 (Hermann Ebbinghaus) 一生致力于有关记忆的实验心理学研究,在 1885 年出版了《关于记忆》一书,提出了著名的“艾宾浩斯遗忘曲线”,这一成就也令他成为与冯特齐名的心理学家。
他在 1885 的实验报中表明:人类输入的信息在经过人的注意过程的学习后,便成为了人的短时的记忆,但是如果不经过及时的复习,这些记住过的东西就会遗忘,而经过了及时的复习,这些短时的记忆就会成为了人的一种长时的记忆,从而在大脑中保持着很长的时间。
艾宾浩斯在做这个实验的时候是拿自己作为测试对象的,他得出了一些关于记忆的结论。他选用了一些根本没有意义的音节,也就是那些不能拼出单词来的众多字母的组合,比如 asww,cfhhj,ijikmb,rfyjbc 等等。他经过对自己的测试,得到了一些数据。
然后,艾宾浩斯又根据了这些点描绘出了一条曲线,这就是非常有名的揭示遗忘规律的曲线:艾宾浩斯遗忘曲线,图中竖轴表示学习中记住的知识数量,横轴表示时间 (天数),曲线表示记忆量变化的规律。
这条曲线告诉人们在学习中的遗忘是有规律的,遗忘的进程不是均衡的,不是固定的一天丢掉几个,转天又丢几个的,而是在记忆的最初阶段遗忘的速度很快,后来就逐渐减慢了,到了相当长的时候后,几乎就不再遗忘了,这就是遗忘的发展规律,即” 先快后慢” 的原则。
艾宾浩斯对记忆的实验研究是心理学史上首创性的工作,具有历史性意义。他在方法上力求对实验条件进行控制并对实验结果进行测量;激起了各国心理学家研究记忆的兴趣;大大促进了记忆心理学的发展。
这项研究的主要缺点在于,虽然艾宾浩斯对记忆过程的发展做了定量分析,但对记忆内容性质上的变化没有进行分析。另外,他所用的无意义音节是人为的,脱离实际生活,因此存在很大的局限性;他把记忆当作机械重复的结果、没有考虑到记忆其实是一个复杂的主动过程;他以自己为被试,这样不仅会产生大量的前摄抑制和倒摄抑制,而且由于他本人知道实验的意图,因此会给实验带来微妙的影响。同时从他一个人身上得到的结论是否具有普遍性也值得思考。
1.2.3 SuperMemo
SuperMemo 算法的三个关键点:
- 记忆三变量模型(记忆稳定性、记忆可提取性、项目难度,核心为遗忘曲线),如图 11 所示;
- 大量线性回归(使用经验函数进行归一化及拟合回归,产生用户单独的遗忘曲线);
- 多维矩阵(将遗忘曲线简化获得 RF 矩阵/重复因子矩阵、平滑获得 OF 矩阵/最优因子矩阵等)。
SM-0 算法试图在保留率与重复频率之间取得平衡,它的问题很明显:没有计算机,手动计算间隔和安排复习较为麻烦。并且以页面为单位进行复习,无法追踪每一个项目的记忆情况。
算法 SM-2 虽然在定量比较方面并不令人惊叹,但它标志着 SuperMemo 方法在 1985 年引入最佳区间概念后的第二次重大改进。将先前分组在页面中的项目分离和引入简易度是算法改进的两个主要部分。
SM-4 是使 SuperMemo 具有普遍适应性的首次尝试。SM-4 由于适应性太慢而抛弃,但它带来的灵感对进一步发展至关重要。
SM-4 表明,除了收敛速度慢以外,使用间隔矩阵会导致一些问题,例如在重复过程中可能会发生一个间隔在计算后短与前一个间隔的情况,这与 SuperMemo 的假设不一致。
SM-5 不会记住最优时间间隔,而是记住在给定记忆复杂度(卡片难度)和记忆稳定性下,时间间隔要增长多少。
算法 SM-5 自 1989 年 10 月 17 日开始使用,它提供了一种确定理想的最佳间隔函数的有效方法,超出了所有人的预期,并因此提高了学习率 (9 个月内学习了 15000 项内容)。图 3.5 表明,所述学习率至少是联合应用 SM-2 和 SM-4 算法所示的两倍。
OF : 不再用 EF 来作为两次间隔的比例,而是用 EF 和连续复习次数 n 来定位 OF 矩阵上对应的 OF 值,用 OF 值来作为两次间隔的比例。
同时,每次复习不仅会对卡片的简易度进行修正,还会更新 OF 矩阵,使其他卡片复习时能用上更新的 OF 值,使得整体收敛加快。
随机分散有助于快速收敛,也能使 EF 相近的卡片错开复习。
SM-5 的问题在于,需要多次复习才能使 OF 收敛到最优值。而且,对应连续复习次数越高的 OF ,其收敛周期也越长。为此,SM-6 用 EF 和连续复习次数 Rep 相同卡片在不同间隔下的遗忘率来修正遗忘曲线的常数参数。
引入了遗忘曲线后,SM-6 不需要 SM-5 中的修改-验证周期了,因为遗忘曲线和最优复习间隔之间建立了确定性关系,即 R = 90% 对应的 t。再用 t 除以上一个间隔,就得到了间隔系数。
由于遗忘曲线的引入,记忆可提取性的维度也被引入了 OF 矩阵。
由于从遗忘曲线中计算的最优因子是高度不规则的,SM-6 引入了 RF(Retention Factor) 矩阵。RF 矩阵中的值直接由遗忘曲线得出,而 OF 矩阵则是 RF 矩阵的平滑等价版本。
同时,SM-6 还有另一项重要的任务:收集遗忘率数据,虽然由于算法的问题,收集的数据并不准确,但是依然为 SuperMemo 提供了大量复习数据用于研究。
在 SM-5 到 SM-7 中,OF 的所有值都是可以改变的,这使得 EF 和 OF 之间失去了直接关联。然而,在卡片难度是记忆属性,而非材料性质,对于不同的人来说,相同的材料也会有不同的难度。
其结果是,卡片难度和记忆稳定性不能很好的用 EF 和 Rep 来表示。为此,SM-8 引入了 AF(Absolute item difficulty Factor) 来替代 EF,并绑定到 OF 矩阵的第二行,使 AF 成为卡片难度的绝对度量。
1.2.4 Anki
Anki 算法的三个关键点:
- 基于 SM-2 算法,做了部分经验调整;
- 每次间隔乘以难度系数,见图 12;
- 根据反馈改变难度系数,见图 12。
1.2.5 Duolingo
Duolingo 算法的三个关键点:
- 半衰期回归模型,与遗忘曲线理论类似,在此不做过多说明;
- 机器学习回归预测,Duolingo 算法最令人拍案叫绝之处,让记忆算法脱离经验主义,真正变成科学;
- 用户实验,非常有趣的尝试。
解决数据数据科学工程问题的过程一般有四个步骤,我们结合 Duolingo 来简单说明一下:
- Getting the Data,获取数据,Duolingo 是已知唯一一家将收集记忆数据公开的公司,如图 15 所示;
- :回忆概率,一次练习中一个单词被成功回忆次数比总共回忆次数的比率来表示
- :练习的日期
- :距离上次练习该单词的时间
- :学生 id
- :学习的语言
- :用户 UI 语言
- :词位 id
- :词位标签
- :历史练习该单词次数
- :历史练习成功次数
- :本次练习该单词次数
- :本次练习成功次数
- Data Preprocessing,数据预处理,在 Duolingo 这里主要是 Feature Selection、Scaling 和 Encoding,训练集结构非常清晰,如图 16;
- 特征向量:
- :
- :
- :1
- :20k 维的稀疏向量,对应哪个词位,其值设为 1,其余为 0
- Modeling and Analysis,建模分析,Duolingo 主要使用了机器学习回归预测方法进行建模分析的;
- 真实间隔:
- 学习权重:,由训练得到与特征向量一一对应
- 半衰期:,由特征向量及学习权重计算得到,类似于 SM 的记忆稳定性
- 回忆概率:,由真实间隔及学习特征对应半衰期计算得到,类似于 SM 的记忆可提取性
- 损失函数:,提出了科学的损失函数,是 Duolingo 研究记忆算法的创新之处
- 最优化:,Duolingo 成功将这个问题抽象为一个机器学习问题
- Evaluate and Present,评估可视化,机器学习而言,Duolingo 的评估指标选择的有待商榷,在此不过多讨论。但是 Duolingo 进行用户实验,和我们的研究思路不谋而合,如图 17 所示。
1.2.6 本节小结
对记忆的定量研究已有过百年的研究历史了,简单的来说,可以分为四个阶段:
- 直觉模型,其代表为艾宾浩斯记忆法、SM-0 等,非常朴素的阶段;
- 经验模型,其代表为 Anki、SM-2 至 5 等,加入部分实践经验,对部分记忆现象进行拟合;
- 数学模型,其代表为 SM-6 至 15 等,提出有一定完成度的记忆理论,尝试对基础记忆现象进行解释;
- 机器学习模型,其代表为 Duolingo 等,提出一套完整的研究思路,将记忆算法的研究抽象进而脱离经验主义。
1.3 研究的主要工作
本文研究的目的是完善 MaiMemo 的记忆算法体系,为 MaiMemo 的大数据记忆矩阵系统(BMMS,Big Data Memory Matirx System)的更新优化提供足够的理论基础。
本文主要做了以下工作:
- 在算法综述方面:从了解记忆算法研究相关历史及成果的角度出发,深入研究了业内知名记忆算法(艾宾浩斯、MaiMemo、SuperMemo/Anki 及 Duolingo),将算法演化阶段梳理清楚,得到了记忆算法概览图。
- 在算法理论方面:从了解相关理论的基础概念和掌握基本原理的角度出发,探究了记忆描述理论、复习规划理论及算法优化理论,明确了相关基础概念,在记忆稳定性、记忆可提取性及用户实验方面得到了启发。
- 在算法实验方面:抱着“科学严谨、求真求实”的态度出发,使用 MaiMemo 的 FSR 数据验证相关理论的正确性,力求掌握相关算法基本方法,最终复现了遗忘曲线、稳定性增长的现象,印证了部分算法理论。
- 在算法矩阵方面:以实用性的目标出发,设计算法矩阵。通过将 FVL 合并进入 MMDB ,并且通过数据分析部分 MMDB,得到客户端可用的算法模型 MMDB 2.0。
- 在算法开发方面:以收集更多的数据为目标,在长期算法中加入“随机分散”,略微调整当日复习,设计记忆规划算法逻辑,得到 MaiMemo 记忆规划算法 2.0。
- 在算法开发补充方面:主要是就开发的补充内容,就数据库设计及同步策略给出建议,此外给出统计图的设计。在 FSR 中加入真实间隔,简化数据分析步骤,提高数据可用性,得到 FSR 2.0 及 StudyLog。
图 19 是关于本文的基本研究框架、研究的目前、思路、方案以及成果的概览,见下一页。
1.4 本文的结构安排
本文其他章节的安排如下:
第二章研究算法理论问题。首先,介绍了记忆的两个组成部分,明确了记忆的三变量的定义,主要解决记忆如何描述问题;其次,介绍了稳定性增长的定义,对稳定性及稳定性增长进行了简单讨论,主要讨论复习如何规划问题;最后,介绍了相关间隔重复算法度量方法,讨论相关方法的优缺点,主要探究算法如何优化评估问题。
第三章研究算法实验问题。首先,进行了遗忘曲线实验,梳理遗忘曲线所需数据,复现了遗忘曲线相关理论现象;其次,进行稳定性增长实验,简述了稳定性增长与记忆稳定性及记忆可提现的关系,稳定性增长期望相关概念;最后,进行了长期学习实验,跟踪长期用户学习记录,绘制出长期学习遗忘曲线的变化情况。
第四章研究算法矩阵问题。首先,介绍了 FVI 矩阵,并对 FVI 矩阵进行简单分析讨论;其次,介绍 MMDB 矩阵,对 MMDB 矩阵进行简单分析讨论;最后,给出新 MMDB 矩阵实现设计,提出算法矩阵发展构思。
第五章研究算法开发问题。首先,对 MaiMemo 长期复习算法进行分析,介绍了随机分散的基本思想,提出 MaiMemo 长期复习算法 2.0 的实现逻辑;其次,对 MaiMemo 当日复习算法进行分析,给出当日复习算法实现逻辑,并对当日复习算法的实现进行补充讨论。
第六章研究算法开发补充问题。首先,对 MaiMemo 学习相关数据库设计进行分析,引入真实间隔的概念,给出学习记录表(Study Record)及学习日志表(Study Log)设计建议,提出 MaiMemo 记忆数据收集全量学习记录表 2.0(Full Study Record 2.0);其次,对 Anki 的差量同步算法进行分析,验证差量同步算法完备性,对差量同步算法进行了讨论;最后,对学习统计图进行了分析,给出了遗忘曲线、学习情况及记忆持久度的研究设计,并给出统计图实现的模拟。
第七章对全文进行总结。首先,总结了全文的研究工作和创新点;其次,归纳了本次研究的关键点;最后,就本文的不足之处提出了今后的研究目标和方向。
2 算法理论
2.1 引言
如何描述记忆?如何安排复习?如何优化算法?
2.2 记忆的两个组成部分
如何描述记忆?
多年来,研究者使用记忆强度来反映对信息记忆得有多好,然而一个变量并不足以描述长期记忆的状态。
首先,遗忘是一个概率问题,我们需要用一个变量来衡量记忆后不同时间能够回忆起的概率。有了回忆概率,我们自然还想知道,这个概率关于时间的变化率,这就需要第二个变量来衡量回忆概率衰减的速度。这里依旧有直觉的成分,例如:
- 时间越长回忆起来的概率越低;
- 复习后遗忘的速度是先快后慢;
- 多次复习后遗忘的速度下降。
2.2.1 假设
假设回忆概率 R 是以 e 为底的负指数函数,随着时间 t 增加而下降,并将回忆概率衰减常数的倒数称为记忆稳定性 S,其数学模型如下可抽象为(1):
如图 1 所示,这个假设符合上文提及的三个直觉。t 越大,R 越小,R 的变化率也越小;且 S 越大,R 下降的速度也变慢了。
多次复习后遗忘的速度下降则可以表示为:每次回忆成功的复习都会增加记忆稳定性 S。而平时不复习的时候,回忆概率 R 随时间下降,记忆稳定性 S 保持不变。
在之后的研究中,我们将数学模型(1)称为遗忘曲线,使用它来描绘记忆的状态及变化趋势。
2.2.2 记忆的三个变量
在现实生活中,学习材料的难度并不是单一的。直觉上,难度也会影响到记忆,即越难的内容越不好记忆,所以将引入了第三个变量:
- :记忆稳定性,回忆概览为 90% 时的平均间隔;
- :记忆可提取性,任意时刻的回忆概率;
- :记忆材料项目难度。
其中:
- ,即按照最优复习间隔复习 次后 时刻的回忆概率;
- ,即保留率,默认为 90%;
- ,第一个间隔;
- ,即第 次的复习最优复习间隔的比例。
在下一节, 有了名字 ,也就是稳定性增长。因为在公式中 正好表示
了每一次重复的记忆稳定性,而 正好是重复前后记忆稳定性的增长倍数。
2.3 稳定性增长函数
如何安排复习?
2.3.1 稳定性增长的定义
我们将稳定性增长定义为(3):
其中:
- , 时刻的记忆稳定性;
- ,第 次重复后的记忆稳定性;
- ,在记忆稳定性为 ,时刻为 时的记忆可提取性;
- ,在记忆稳定性为 ,记忆可提取性为 时,复习所提高的记忆稳定性倍数。
2.3.2 稳定性增长的讨论
我们就 2.2.2 小结中的记忆三变量对稳定性增长()进行讨论:
- 记忆稳定性:
- 记忆越持久, 越小(即随着稳定性增长,其增长潜力在逐渐下降。这意味着持久的记忆并不能简单地变得更加持久)
- 当然, 总是大于 1 的,即稳定性在复习成功时总数增长的
- 记忆可提取性:
- 回忆概率越低, 越大
- 预计 7 天后复习,实际 12 天后复习,可提取性更低,若回忆成功, 应更大
- 记忆材料项目难度:
- 项目越难, 越小,我们需要更频繁地复习困难的项目
当然由于实验数据的限制,以上部分讨论只是基于直觉的讨论,还没有经过实验统计证明。
2.3.3 稳定性增长的期望
学习优化有各种标准,我们可以针对特定的保留率进行优化,或者最大化记忆稳定性 (学习速度)。在这两种情况下,了解预期的稳定性增长都是有帮助的。我们将稳定性增长期望定义为(4):
这里需要指出 SuperMemo 的实验结果为“当记忆可提取性在 30% - 40% 时我们达到了最快的学习速度”,如图 21。我们对这个结果保持怀疑态度,待有充足数据时进行验证。
2.4 间隔重复算法度量
如何优化算法?
2.4.1 学习准则
SuperMemo 认为“没有确定的数学标准可以显示一种算法优于另一种算法。学习速度与保留率是用户之间摇摆不定的两个相互矛盾的度量。特别地,学习速度是一个不可靠的概念,因为在低的遗忘指数下可以获得最高速度。从这个意义上讲,设计不良的算法可能反常地实现更高的学习速度。”
我们对以上论述持保留态度,SuperMemo 在算法评估这里做的可提升空间很大。
2.4.2 可提取性预测差异
SuperMemo 使用的评估方法是“可提取性预测差异”(5):
其中:
- ,即实际回忆反馈, 成功值为 1,失败值为 0;
- ,记忆可提取性,即预测的回忆概率。
这个评估方法非常糟糕,未考虑在真实数据中,有极严重的样本不均衡的现象。
SuperMemo 在之后的研究中,使用了以下的方法评估(6):
其中:
- ,是重复历史记录获取通过/失败(1 或 0);
- ,算法针对该特点重复预测的可提取性。
我们对此方法进行评估算法,依旧持谨慎态度。
2.4.3 机器学习指标
由于 Duolinggo 将记忆算法问题转换为一个机器学习回归预测问题,极大增加了记忆算法的评估方法。由于是一个回归问题,可以使用很多回归指标,Duolingo 也进行大量实验评估,如图 22 所示。
同时,这里需要补充的是也有相关论文指出 Duolingo 使用的 MAE 并不合理,但是 Duolingo 将机器学习的评估方式加入记忆算法的研究中还是值得肯定的,这里同时需要肯定 Duolingo 在公开用户记忆数据上做的贡献。
2.4.4 用户实验
在讨论如何评估算法时,我们由 A/B 测试产生灵感,提出可以进行用户实验进行算法评估的思路。
在我们研究 Duolingo 时,发现 Duolingo 已经将这种想法付诸行动,进行了算法的用户实验。
Duolingo 将用户随机分组使用不同的复习算法进行学习规划,收集数据后使用 A/B 测试相关理论进行假设检验,使用留存为关键指标,让人眼前一亮,与我们的研究思路不谋而合。
2.5 本章小结
本章从了解相关理论的基础概念和掌握基本原理的角度出发,探究了记忆描述理论、复习规划理论及算法优化理论,明确了相关基础概念,在记忆稳定性、记忆可提取性及用户实验方面得到了启发。
首先,介绍了记忆的两个组成部分,明确了记忆的三变量的定义,主要解决记忆如何描述问题;其次,介绍了稳定性增长的定义,对稳定性及稳定性增长进行了简单讨论,主要讨论复习如何规划问题;最后,介绍了相关间隔重复算法度量方法,讨论相关方法的优缺点,主要探究算法如何优化评估问题。
3 算法实验
3.1 引言
3.2 遗忘曲线实验
遗忘曲线是描述记忆情况的一种方式,它描绘了记忆的状态及变化趋势。
“如何从 MaiMemo 的学习数据 FSR(Full Study Record)中获得遗忘曲线”是本小结研究的关键点,这个关键点可以分解为以下三个问题:
- 绘制遗忘曲线需要什么样的数据?
- MaiMemo 中记忆可提取性该如何定义?
- 使用什么样的函数拟合遗忘曲线?
3.2.1 遗忘曲线的数据说明
由公式(1)可知,绘制遗忘曲线需要真实间隔及与其对应的记忆可提取性。我们从 MaxCompute 采样下载第一次反馈“忘记”及其下次反馈的相关学习数据,预处理后得到数据如下表所示。
我们从上表可获得真实间隔及与其对应的反馈数据。其中:
- ,即真实间隔,代表第二次学习与第一次学习的真实间隔天数,单位为天;
- ,即样本中该间隔当日第一次反馈情况。
- ,反馈总数;
- ,反馈“认识”的数量
- ,反馈“模糊”的数量
- ,反馈“忘记”的数量
- ,反馈“熟识”的数量
值得补充强调的是,由于目前 FSR 中没有记录真实间隔,我们只能通过第二次学习与第一次的学习记录时间相减才能获得真实间隔,这导致实验复杂度陡增。故建议在 FSR 中加入“真实间隔”,可方便以后的复习算法研究。
此外,为了获取更多的信息量,我们只能使用未按规划的反馈数据,这导致可用数据量减少了两个量级。故建议在复习算法中加入“随机分散”,可获得更多的信息,加速算法模型收敛。
3.2.2 记忆可提取性的定义(MaiMemo)
有了真实间隔及其对应的反馈数据,下面我们需要计算真实间隔所对应的记忆可提取性。记忆可提取性(Memory retrievability),代表任意时刻的回忆概率(),其定义式为(7):
其中:
- ,即回忆成功的反馈数量;
- ,反馈“认识”属于回忆成功
- ,反馈“熟识”属于回忆成功
- ,即回忆失败的反馈数量。
- ,反馈“忘记”属于回忆失败
在计算记忆可提取性时,如果,我们将“模糊”视为回忆成功,将最大的高估记忆可提取性,使得预测间隔变大;如果,我们将“模糊”视为回忆失败,将最大的低估记忆可提取性,使得预测间隔变小。
接下来,我们将就反馈“模糊”属于回忆成功还是回忆失败进行讨论。在墨墨背单词中,对于“模糊”的定义是“发音有小许错误,或拼写错几个字母,或解释好像知道但又不能清楚的说出口”,我们无法从定义中将“模糊”明确地划分为成功或失败。
经过研究讨论,我们提出通过反馈“模糊”后的记忆稳定性与反馈“认识”或“忘记”后的记忆稳定性的差异来决定反馈“模糊”在回忆上的归属问题。
最终,我们选择在之后计算记忆可提取性时将“模糊”数据删除,故 、 的表达式如下(8)(9):
3.2.3 遗忘曲线的拟合
我们将 3.2.1 中的数据可视化如下图,可以看出学习数据样本是长尾分布,其中 ∗ 号的点代表该间隔下的记忆可提取性。
根据之前的研究及数据的情况,这里我们使用的拟合函数为(10):
我们使用非线性最小二乘法进行拟合,即(11)(12):
这里的 是参数向量,而 是使均方误差最小的模型参数。
通过拟合,我们得到遗忘曲线的表达式(13)及图形如下:
显然,我们使用的拟合函数(10)与之前理论中的函数(1)是有差异的。极限是我们研究函数的重要工具,故我们对这个两个函数取极限得到结果如下所示(14)(15):
对于遗忘曲线的函数将时间取无穷大,其物理意义表征的是经过此次学习后的不复习的最终记忆状态:
- 理论函数的极限(14)表征,所学习的材料在无穷时间后回忆概率为 0;
- 实际数据拟合函数的极限(15)表征, 所学习的材料在无穷时间后回忆概率为。
不难看出,Piotr Wozniak 博士的理论公式是 时的特例。然而如果没有参数 ,将无法拟合实际的数据,这使我们非常困扰。
对于与 SuperMemo 研究结果不一致的地方,需待有更多的数据才能进一步研究。
3.3 稳定性增长实验
稳定性增长是用来描述重复前后稳定性变化的一种方式,它可以衡量间隔重复对记忆过程的影响。
“如何使用稳定性增长来评价间隔重复对记忆的影响”是本小结研究的关键点,这个关键点可以分解为以下三个关系:
- 稳定性增长与记忆稳定性的关系;
- 稳定性增长与记忆可提取性的关系;
- 稳定性增长期望与记忆可提取性的关系。
3.3.1 稳定性增长与记忆稳定性的关系
根据 2.3.2 小节中的讨论,记忆越持久, 越小,即随着稳定性增长,其增长潜力在逐渐下降,这意味着持久的记忆并不能简单地变得更加持久。
无实验数据,无法验证,待补充
3.3.2 稳定性增长与记忆可提取性的关系
根据 2.3.2 小结中的讨论,可提取性更低,若回忆成功, 应更大。
这里有实验结果,但是结果与 Piotr Wozniak 博士的结果不一致。
目前,我们的结果是“在不同的记忆可提取性时进行复习,记忆稳定性的增长是有区别的”,但是由于数据有限,需收集更多数据才能进行下一步分析。
3.3.3 稳定性增长期望与记忆可提取性的关系
目前,我们的结果是“记忆可提取性在 80% 时,记忆稳定性的增长最大”,目前数据有限,待收集数据后进一步研究。
3.4 长期学习实验
本次算法研究的目的是对刻记项目提出一套可行的算法方案,同时对 MaiMemo 的算法进行优化。从上两小结的研究中不难发现,我们的实验结果与 Piotr Wozniak 博士有许多不一致的地方。
我们进行一组观察用户长期学习情况的实验,结果符合部分博士的假设,且对之后的矩阵设计有指导意义,但目前数据有限,待收集数据后进一步研究。
3.5 本章小结
本章抱着“科学严谨、求真求实”的态度出发,使用 MaiMemo 的 FSR 数据验证相关理论的正确性,力求掌握相关算法基本方法,最终复现了遗忘曲线、稳定性增长的现象,印证了部分算法理论。
首先,进行了遗忘曲线实验,梳理遗忘曲线所需数据,复现了遗忘曲线相关理论现象;其次,进行稳定性增长实验,简述了稳定性增长与记忆稳定性及记忆可提现的关系,稳定性增长期望相关概念;最后,进行了长期学习实验,跟踪长期用户学习记录,绘制出长期学习遗忘曲线的变化情况。