Skip to main content
QUICK REVIEW

[论文解读] pyBKT: An Accessible Python Library of Bayesian Knowledge Tracing Models

Anirudhan Badrinath, Frédéric Wang|arXiv (Cornell University)|May 2, 2021
Intelligent Tutoring Systems and Adaptive Learning参考文献 29被引用 15
一句话总结

pyBKT 是一个高性能、开源的 Python 库,实现了贝叶斯知识追踪(BKT)模型及其现代变体,支持知识追踪模型的高效拟合、预测和交叉验证。与以往基于 MATLAB 的实现相比,其速度最高提升了 30,000 倍,并以高精度复现了经典论文中的关键结果,包括在 ASSISTments 数据集上标准 BKT 模型的 AUC 为 0.76,BKT+Forgets 模型的 AUC 为 0.83。

ABSTRACT

Bayesian Knowledge Tracing, a model used for cognitive mastery estimation, has been a hallmark of adaptive learning research and an integral component of deployed intelligent tutoring systems (ITS). In this paper, we provide a brief history of knowledge tracing model research and introduce pyBKT, an accessible and computationally efficient library of model extensions from the literature. The library provides data generation, fitting, prediction, and cross-validation routines, as well as a simple to use data helper interface to ingest typical tutor log dataset formats. We evaluate the runtime with various dataset sizes and compare to past implementations. Additionally, we conduct sanity checks of the model using experiments with simulated data to evaluate the accuracy of its EM parameter learning and use real-world data to validate its predictions, comparing pyBKT's supported model variants with results from the papers in which they were originally introduced. The library is open source and open license for the purpose of making knowledge tracing more accessible to communities of research and practice and to facilitate progress in the field through easier replication of past approaches.

研究动机与目标

  • 为研究和教育软件社区中贝叶斯知识追踪(BKT)及其变体缺乏可访问、高效且可扩展的实现提供解决方案。
  • 提供一个计算高效、模块化且用户友好的 Python 库,支持 BKT 模型的数据导入、模型拟合、预测和交叉验证。
  • 通过真实世界数据集,准确复现以往 BKT 模型的研究结果,并支持新知识追踪方法的开发与评估。
  • 通过提供标准化、开源的实现,提升智能辅导系统(ITS)研究的可重现性与科学进展。

提出的方法

  • pyBKT 将 BKT 实现为一个隐马尔可夫模型(HMM),其中可观测节点表示学生作答,隐含节点表示潜在的知识状态,并使用贝叶斯定理随时间更新掌握概率。
  • 该库使用期望最大化(EM)算法估计四个核心参数:初始掌握概率(P(L₀))、学习率(P(T))、猜测概率(P(G))和失误概率(P(S))。
  • 支持多种模型扩展,包括 KT-IDEM(基于题目的猜测/失误概率)、KT-PPS(基于学生的先验概率)、BKT+Forgets(时间依赖的遗忘机制)以及基于题目顺序/学习效应的模型。
  • 该库提供高层级的 Model 类抽象,支持通过单行代码完成模型创建、初始化、拟合、预测、评估和交叉验证。
  • 通过简洁的数据辅助接口,简化了常见教学日志格式的数据处理;同时,利用 Python 中高效的数值计算,对模型训练进行了性能优化。
  • 运行时基准测试表明,pyBKT 的运行速度比其前身 xBKT 快 3–4 倍,且比 Bayes Net Toolbox(BNT)的 MATLAB 实现快近 30,000 倍。

实验结果

研究问题

  • RQ1一个现代、高效且可访问的 Python 库是否能够在真实世界教育数据集上复现已有 BKT 模型及其变体的性能?
  • RQ2pyBKT 的运行时性能与先前的 BKT 实现(如 xBKT 和 BNT)相比如何?
  • RQ3pyBKT 在多大程度上能够复现经典 BKT 论文中的关键结果,例如 BKT+Forgets 和 KT-IDEM 模型的结果?
  • RQ4pyBKT 是否能够以与原始实现相当的预测准确性,支持高级 BKT 变体(如 KT-PPS 和基于题目顺序效应的模型)的实现?
  • RQ5在确保 BKT 模型收敛和可靠掌握概率估计的前提下,学生数量和序列长度的合理阈值是多少?

主要发现

  • 在 ASSISTments 2009–2010 数据集上,pyBKT 使用标准 BKT 模型实现了 AUC 0.76,与 Khajah 等人(2017)报告的 0.73 非常接近;使用 BKT+Forgets 变体时,AUC 提升至 0.83,成功复现了原始结果。
  • 在 ASSISTments 数据集的前十个技能上,KT-IDEM 模型使 pyBKT 的平均 AUC 相比标准 BKT 提升了 0.01932,与原始研究中 0.021 的提升幅度高度一致。
  • 在 ASSISTments Groups of Learning Opportunities 数据集中,pyBKT 的 KT-PPS 模型在 42 个问题集中的 27 个上优于标准 BKT,尽管参数初始化存在差异,但其表现与原始发现高度一致。
  • pyBKT 相比 xBKT 实现快 3–4 倍,相比 BNT 的 MATLAB 实现快近 30,000 倍,使其在大规模知识追踪应用中表现出极高的效率。
  • 实证分析表明,50 名学生和 15 个序列长度足以在多样的学生作答模式下实现稳定收敛和可靠的掌握概率估计。
  • 该库成功复现了以往研究的关键结果,验证了其实现的准确性,并为知识追踪研究的可重现性提供了支持。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。