漫游式渐进阅读 | 唯一能用的渐进阅读推荐解决方案

image.png

加微信交流群。添加好友:ebAobS。请备注渐进阅读

第一个 github 项目献给了思源,第一次发帖子也是在思源社区。

听说标题党更容易有流量,所以选了绝对性较强的用词“唯一”,嘿嘿。

为什么说是唯一能用?

我关注渐进学习领域好多年了,用过 anki,用过 supermemo,用过 obsidian,除此之外,bookxnote,logseq,notion 也短暂使用过。

然而,并没有一个软件能完美解决需求。

  • anki 算是能够很好的提供了“闪卡”功能,或者说通过“间隔重复”解决“闪卡”功能。
  • 而对于渐进阅读,supermemo 丑陋不堪的页面,困难的导入导出,以及号称科学但至今仍闭源的算法,让我实在是忍无可忍,最终还是放弃了这个虽说是“开山鼻祖”但毫无发展前景的软件。

但是 supermemo 又是唯一有优先级队列功能的渐进阅读软件,这让我非常难受。

直到我看到了思源。它开源,本地优先,导入导出极其方便,支持各种格式,前途无量的插件社区,最终让我决定将渐进阅读的工作平台转移到这里。然而,我发现思源的闪卡、渐进阅读,以及优先级队列的功能也并没有那么好用(个人感受,轻喷)。

我认为,渐进阅读的核心是稍后阅读。参考相关阅读:《渐进式学习_SuperMemo 对渐进阅读的算法实现思路》。而稍后阅读的关键是更智能的推荐下一篇文章,推荐的新文章更重要、更是你想学的,就是渐进阅读推荐算法核心要解决的问题。

所以我根据自身的需求出发,写了新的渐进阅读插件,至少对于我自己来说,他确实是唯一能用的,否则不会逼迫我这个懒蛋自己写插件的。

项目信息

开发理念

简单来说,渐进阅读的核心是稍后阅读,稍后阅读的两大关键问题是文档优先级管理推荐算法

首先,什么是渐进阅读?为什么渐进阅读的核心是稍后阅读?

相信很多人都有过这样的经历,刷到某个教程,刷到某个文章,大致看了一眼觉得很有用。但并不想马上学习研究,于是就收藏下来,准备“下次看”。但是,“下次”真的会来吗哈哈哈。收藏夹越攒越多,却一直没学习,成了赛博松鼠。

  • 如今是一个信息爆炸的时代,出现以上的情况绝对不稀奇。而我认为渐进阅读正是解决这种问题非常“对症下药”的方案。

    • 1,渐进阅读能让你更容易轻松开始学习。渐进阅读方法论中,只要求你对打开的材料量力而行。你只需要“佛系”的学习与处理。并不要求你学完,而只要求有所推进即可。如果遇到困难,或者说就是单纯不想学了,OK,没问题,马上学习下一个材料即可。

      • 这大大减少了你进入状态的“门槛”,因为你心里预设的压力就会大大减少。我就随便看看,试试今天学这个主题有没有灵感?有,我就学一学,记一记,没有我就下一篇材料了。其实你仔细想,你“无限收藏,永不学习”背后的逻辑,正是由于这种隐形的压力导致你不想打开你的学习材料开始学习,不是吗?
    • 2,渐进阅读能让你不会被“卡住”。由于“遇到困难就跳转”的机制,让更容易理解材料更先被你学习,从而有效的推进了进度,而困难的材料也在不知不觉间被消磨、拆解,而你在这个过程中并没有感受到很大的压力,正所谓“好事多磨”。

渐进阅读应该与闪卡区分开来:

  • 闪卡复习算法原理是遗忘曲线,这方面思源闪卡系统 +FSRS 算法已经足够完善。多年使用 Anki、SuperMemo 的经验告诉我,卡片的"最小信息原则"极其重要。
  • 渐进阅读面对的是大段文本,先天不符合"最小信息原则"。目前大多数渐进阅读解决方案惯性地使用遗忘曲线为原理的复习算法(如 FSRS)来推荐复习文章,我个人认为这并不合理。

对于一篇洋洋洒洒的文章,很难单纯的使用记忆程度作为下次是否被推荐复习的标准。真正的标准应该是多元的,比如难度、学习进度、学习内容的重要程度、紧急程度、感兴趣程度等。

所以我开发此插件,让用户自定义文章的参数指标,及其权重(如文章难度,权重 30%),再将指标综合计算为文章的优先级。优先级与被推荐复习的概率正相关。通过轮盘赌算法,根据优先级,随机推荐下一篇文章,从而实现有所依据地漫游文章。我认为这种方式能让渐进阅读回归本质 ---- 实现无压力的"稍后阅读",最终高效地学习大量材料。

总之,渐进阅读的核心目的并不是"对抗遗忘",而是实现无压力的"稍后阅读",最终高效地同时学习大量材料。

相关阅读:《渐进式学习_SuperMemo 对渐进阅读的算法实现思路》

本着"如无必要,勿增实体"原则,渐进阅读的"摘录"、"制卡"功能,本插件并不涉及。点击"编辑"按钮"可在新标签页打开您正在渐进学习的文章。在这里,利用思源集市中其他很多插件可以继续实现"摘录"、"制卡"等后续流程。

如何解决文档优先级管理推荐算法两大关键问题?

  1. 丰富的视图与看板:力求能够简单、直接、高效、迅速的对文档优先级、浏览情况,其他参数分布情况等数据进行管理
  2. 智能推荐算法:用户在不同的时间,对文档的优先级判断可能是不同的,可能你在最近开发软件,那么对相关编程语言的文档优先级判断就会很高,但可能三天后开发完成,不再需要,优先级可能就会很低。基于内容相似度的智能推荐算法,将选定一些你最近的偏好文档(最近漫游的前 N 篇 + 漫游次数最多的前 M 篇)作为基准文档,计算其他文档与基准文档的相似度,相似度靠前的文档将被推荐,出现在首页里。类似于抖音、淘宝等大数据智能推荐,不应该只用来刷短视频和广告,你的知识库也值得拥有。
  3. 优先级对齐:当文档数量非常多时,用户不可能一篇一篇诶个设置文档的优先级,但是当文档库中大部分文档都没有被用户处理过优先级时,基于优先级的概率推荐算法就是个伪命题。有没有更加高效的,最好是可基于用户的简单反馈就能批量迭代、进化优先级管理方法?尝试优先级对齐。当智能推荐你觉得推荐内容不错,确实符合你推荐要看的内容,那么就点击优先级对齐按钮,系统就会把推荐的文档的优先级的线性分布特征,对齐到与相似度一致,从而实现一键批量的优先级调整。长此以往,你的文档会不断进化,形成自回归,动态调整到更加正确的优先级分布,同时节约大量的时间和精力

界面预览

preview.png

📖 使用指南(点击条目可详细展开)

📦 安装插件 - 快速开始

  1. 在思源笔记插件市场中搜索“漫游式渐进阅读”
  2. 点击安装按钮完成插件安装
  3. 安装完成后,顶栏和侧栏会出现插件图标

⚙️ 初始化设置 - 初始化指标权重等参数

  1. 右键点击顶栏插件图标进入设置页面
  2. 设置绝对优先级顺序漫游概率(0-1 之间)
    • 2.1. 设置为 1:绝对按照优先级顺序先后漫游文档
    • 2.2. 设置为 0:完全按照优先级为权重概率的轮盘赌方式漫游
    • 2.3. 设置为小数:有概率按优先级绝对顺序漫游,否则轮盘赌
  3. 选择是否排除已访问文档,自动重载漫游,自动重置已访问文档记录
  4. 自定义您需要的指标以及各指标的权重百分比,点击保存,耐心等待初始化完毕,第一次可能时间较长
  5. 配置基准文档的选择以及候选与输出参数,自行平衡推荐质量与计算时间
  6. 开启或关闭“自动优先级对齐”选项,开启则快速迭代优先级,关闭而采用手动对齐则更准确
  7. 设置完成后点击保存

📁 筛选文档 - 选定范围

  1. 侧栏进入渐进学习面板
  2. 支持多选笔记本进行筛选,可自由组合
  3. 支持选择根文档、标签等方式进行筛选
  4. 支持自定义 SQL 的方式进行个性化定制筛选

📊 阅读与调整 - 核心步骤

  1. 在阅读过程中,根据实际情况调整文章指标、优先级
  2. 如果文档并不是你想看的,则调低
  3. 如果是你想看的,或者很重要,希望多被推荐,则调高
  4. 进行文档内容的学习、理解、摘录、制卡
  5. 看不完或者看累了,立即点击继续漫游进入下一篇文章,不要硬着头皮读,无压力的稍后阅读,正是渐进阅读的精髓
  6. 对于新文章重复上述过程

🎲 智能推荐 & 优先级对齐 - 无压力、不耗时、高效的进化迭代文档优先级

智能推荐

  • 基于您最近的偏好文档(优先级高或浏览次数多)内容,推荐与其相似的其他文档
    • 1.1. 选定您认为优先级最高的多少篇,以及浏览次数最多的多少篇作为基准文档合适?力求能反映您的偏好
    • 1.2. 选定多少显示多少文档,多少文档参与候选,多少段落参与采样。通常数值越大,推荐越准确,但同时计算量增加,耗时增加
    • 1.3. 自行调整参数,将推荐的准确度与加载性能之间做一个平衡

优先级对齐

  • 将智能推荐的文档的优先级数值分布调整为与相关性百分比值的分布一致,并保持极值不变
    • 2.1. 调整方法大致为将相关性值归一化,再反归一化为优先级的值。
    • 2.2. 如果您的思源的文档数量极多,这个功能可大大加快您对众多文档的优先级管理
    • 2.3. 每次对齐,都是对您文档优先级分布的一次反馈,也是一次进化,不断进化不断迭代,形成“自回归”式的优先级管理,同时您也节省了时间和精力
    • 2.4. 可选设置开启自动优先级对齐,适合需要快速高效笼统的将优先级分布分化的情况

📋 数据管理与可视化 - 清晰查看阅读的相关数据

  1. 通过面板了解漫游次数和上次访问时间
  2. 通过条带状点图清晰查看所有文档的优先级分布
  3. 点图中直接拖动调整文档优先级,相关指标会自动等比例变化
  4. 右击点图中某点可在新标签页打开该文档
  5. 通过面板的其他 tab,如优先级排序表,已漫游文档列表,漫游次数排序表等,查看和了解相关数据
  6. 文档优先级列表中支持拖动排序,优先级会自动变为前后两个文档的平均数

🧠 智能推荐详解 — 多锚点 TF-IDF 流程与侧边栏内联展示

智能推荐设置

  • 锚点recent_roam_Ntop_roam_M
  • 结果topK 推荐条数
  • 候选上限maxCandidates(控制计算规模)
  • 采样段落上限maxParagraphs(标题 + 头/中/尾)

推荐算法流程

  1. 复用筛选:继承渐进阅读的笔记本/根/标签/SQL 过滤,保持范围一致。
  2. 锚点选取:按 custom-roaming-last 取最近 N 篇,按 custom-roaming-count 取漫游次数最多 M 篇,合并去重。
  3. 候选池:过滤后减掉锚点,按 updated 排序,数量不超过 maxCandidates
  4. 文本采样:标题 + 头/中/尾片段,数量受 maxParagraphs 限制,移除 Markdown 噪声。
  5. 轻量分词:中文逐字、英文单词,停用词过滤。
  6. TF-IDF 向量:TF 长度归一化后乘以 IDF,稀疏 Map 存储。
  7. 相似度:候选与各锚点做余弦,相似度取均值,降低单锚点噪声。
  8. 展示与闭环:侧边栏按得分排序展示;点击打开文档并刷新指标/优先级,更新漫游/访问属性。

⚙️ 优先级进化管理 — 手动实时 / 批量对齐

提供“实时调整”和“优先级对齐”两套路径,按文档规模自由切换:

  • 文档少 → 手动实时调整:阅读过程中即可修改各项指标或优先级,立刻体感推荐变化。
  • 文档多 → 优先级对齐:一键按照相关性百分比分布对齐被推荐文档,保留极值,适合批量维护。

无论采用哪种方式,目标都是持续演化优先级,保持推荐质量始终符合当前学习策略。

📈 漫游数据看板 — 清楚掌握各种数据

  • 优先级排序表:总览所有文档的优先级天梯榜,可拖动排序
  • 已漫游文档列表:掌握已经看过的文档
  • 漫游次数排序表:查看频繁访问的文档天梯榜,可清零访问次数。

清晰管理相关数据,随时掌握漫游策略执行情况。

🫧 支持作者

如果漫游式渐进阅读对您的学习有所帮助,欢迎给作者点个赞或打赏一杯咖啡,这将鼓励作者持续优化和开发更多实用功能:

image.png

联系方式

作者邮箱:ebAobS@outlook.com

加微信交流群。添加好友:ebAobS。请备注渐进阅读

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119789 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    176 引用 • 544 回帖
  • 阅读
    93 引用 • 292 回帖 • 4 关注
  • 知识管理
    69 引用 • 524 回帖 • 9 关注
2 操作
eAoS 在 2025-11-25 19:01:38 更新了该帖
eAoS 在 2025-07-04 23:36:58 更新了该帖

相关帖子

优质回帖
  • PearlLin 1 赞同

    第二个问题指将所有的稍后读文档汇聚在一起,去查看这里的所有文档标题(比如将其放在指定文档下在文档树查看/加入同一个数据库 etc/打上同一个标签通过标签汇总查看)。

    这个问题算是 1 的衍生,由于每篇文章的指标都会进行调整,所以不清楚佬有没有计划在插件中制作这样宏观调控的面板,又或者利用思源本身的数据库列去存放调整优先级的指标之类的想法。

  • 赞同。不同类型的文章,重要性、紧急度、难度,差别很大的。

    能力圈内的文章,难度肯定要调小;能力圈外的文章,难度肯定要调大。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Haotalk

    大佬为什么不用思源笔记自带的闪卡,而是要用 Anki?

    1 回复
  • 其他回帖
  • 体感这个思路是对的。刚出来的时候就简单试用了。有两个比较在意的问题:

    1. 权重没看见在哪里实行批量便捷调整,似乎只能针对单篇文档进行微调。
    • 没理解权重是依附于自定义属性,还是插件内部自定义存储。
    • 从批量调整权重这一角度,可以考虑对于某一文档下的所有文档进行权重的赋予。
    • 从统一管理阅读文档的角度来说,也许可以考虑数据库的列进行权重赋值。
    1. 稍后读文档的宏观管理:是在插件外进行自行管理构建吗?
    2 回复
  • 在这一点上我持有不同的观点。一篇文章之所以会被导入,是因为在导入之前已经对其进行了阅读判断,“这篇文章值得我再读一次/看上去似乎在我人生中的某一具体领域有用”。

    “某个领域”本身就代表一个比较粗略的优先度划分,比如生活中我可以放入厨艺提升,放入生活技巧,放入穿搭打扮;在工作中我可以放入法律条文,放入判例提取,放入逻辑思维。将“领域”视作指标为其赋予权重,那么这一权重的赋值在“剪藏文章”这一过程就已经完成了。

  • 另外有一点令我困惑,因为我看佬你的工作流也具有针对原文进行标记、删改等等编辑操作,但在漫游阅读的漫游页面似乎只能只读。难道每次漫游一个文档,都得点击编辑进入对应文档中吗?
    补充:我个人的渐进阅读工作流里面,一是习惯通过摘录保留原文,然后在摘录里面对于具体的语句进行渐进式标记和修改,二是在长篇书籍或文档中通过加入阅读点快速记录渐进阅读进度。这两个操作可以在文档只读的情况下通过番茄工具箱和渐进学习插件实现,但在漫游阅读的漫游页面无法做到。如果每篇文档都要去点击编辑的话,对我个人而言过于繁琐。

    1 回复
  • 查看全部回帖