AkihikoWatanabe / paper_notes

たまに追加される論文メモ
https://AkihikoWatanabe.github.io/paper_notes
20 stars 0 forks source link

pyBKT: An Accessible Python Library of Bayesian Knowledge Tracing Models, Bardrinath+, EDM'20 #460

Open AkihikoWatanabe opened 2 years ago

AkihikoWatanabe commented 2 years ago

paper: https://arxiv.org/pdf/2105.00385.pdf github: https://github.com/CAHLR/pyBKT

AkihikoWatanabe commented 2 years ago

pythonによるBKTの実装。scikit-learnベースドなinterfaceを持っているので使いやすそう。

AkihikoWatanabe commented 2 years ago

モチベーション

BKTの研究は古くから行われており、研究コミュニティで人気が高まっているにもかかわらず、アクセス可能で使いやすいモデルの実装と、さまざまな文献で提案されている多くの変種は、理解しにくいものとなっている。そこで、モダンなpythonベースドな実装としてpyBKTを実装し、研究コミュニティがBKT研究にアクセスしやすいようにした。ライブラリのインターフェースと基礎となるデータ表現は、過去の BKTの変種を再現するのに十分な表現力があり、新しいモデルの提案を可能にする。 また、既存モデルとstate-of-the-artの比較評価も容易にできるように設計されている。

BKTとは

BKTの説明は #461 あたりを参照のこと。 BKTはHidden Markov Model (HMM) であり、ある時刻tにおける観測変数(問題に対する正誤)と隠れ変数(学習者のknowledge stateを表す)によって構成される。パラメータは prior(生徒が事前にスキルを知っている確率), learn (transition probability; 生徒がスキルを学習することでスキルに習熟する確率), slip, guess (emission probability; スキルに習熟しているのに問題に正解する確率, スキルに習熟していないのに問題に正解する確率)の4種類のパラメータをEMアルゴリズムで学習する。 image ここで、P(L_t)が時刻tで学習者がスキルtに習熟している確率を表す。BKTでは、P(L_t)を観測された正解/不正解のデータに基づいてP(L_t)をアップデートし、下記式で事後確率を計算する image また、時刻t+1の事前確率は下記式で計算される。 image 一般的なBKTモデルではforgettingは生じないようになっている。 image

Corbett and Andersonが提案している初期のBKTだけでなく、さまざまなBKTの変種も実装している。

サポートしているモデル