AkihikoWatanabe / paper_notes

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

Deep Knowledge Tracing, Piech+, NIPS, 2015 #297

Open AkihikoWatanabe opened 5 years ago

AkihikoWatanabe commented 5 years ago

https://web.stanford.edu/~cpiech/bio/papers/deepKnowledgeTracing.pdf

AkihikoWatanabe commented 5 years ago

Knowledge Tracingタスクとは:  特定のlearning taskにおいて、生徒によってとられたインタラクションの系列x0, ..., xtが与えられたとき、次のインタラクションxt+1を予測するタスク  典型的な表現としては、xt={qt, at}, where qt=knowledge component (KC) ID (あるいは問題ID)、at=正解したか否か  モデルが予測するときは、qtがgivenな時に、atを予測することになる

image

Contribution:  1. A novel way to encode student interactions as input to a recurrent neural network.  2. A 25% gain in AUC over the best previous result on a knowledge tracing benchmark.  3. Demonstration that our knowledge tracing model does not need expert annotations.  4. Discovery of exercise influence and generation of improved exercise curricula.

モデル:

image

Inputは、ExerciseがM個あったときに、M個のExerciseがcorrectか否かを表すベクトル(長さ2Mベクトルのone-hot)。separateなrepresentationにするとパフォーマンスが下がるらしい。 Output ytの長さは問題数Mと等しく、各要素は、生徒が対応する問題を正答する確率。

InputとしてExerciseを用いるか、ExerciseのKCを用いるかはアプリケーション次第っぽいが、典型的には各スキルの潜在的なmasteryを測ることがモチベーションなのでKCを使う。

(もし問題数が膨大にあるような設定の場合は、各問題-正/誤答tupleに対して、random vectorを正規分布からサンプリングして、one-hot high-dimensional vectorで表現する。)

hidden sizeは200, mini-batch sizeは100としている。

[Educational Applicationsへの応用]

生徒へ最適なパスの学習アイテムを選んで提示することができること  生徒のknowledge stateを予測し、その後特定のアイテムを生徒にassignすることができる。たとえば、生徒が50個のExerciseに回答した場合、生徒へ次に提示するアイテムを計算するだけでなく、その結果期待される生徒のknowledge stateも推測することができる

Exercises間の関係性を見出すことができる  y( j | i )を考える。y( j | i )は、はじめにexercise iを正答した後に、second time stepでjを正答する確率。これによって、pre-requisiteを明らかにすることができる。

[評価] 3種類のデータセットを用いる。  1. simulated Data   2000人のvirtual studentを作り、1〜5つのコンセプトから生成された、50問を、同じ順番で解かせた。このとき、IRTモデルを用いて、シミュレーションは実施した。このとき、hidden stateのラベルには何も使わないで、inputは問題のIDと正誤データだけを与えた。さらに、2000人のvirtual studentをテストデータとして作り、それぞれのコンセプト(コンセプト数を1〜5に変動させる)に対して、20回ランダムに生成したデータでaccuracyの平均とstandard errorを測った。  2. Khan Academy Data   1.4MのExerciseと、69の異なるExercise Typeがあり、47495人の生徒がExerciseを行なっている。   PersonalなInformationは含んでいない。  3. Assistsments bemchmark Dataset   2009-2011のskill builder public benchmark datasetを用いた。Assistmentsは、online tutorが、数学を教えて、教えるのと同時に生徒を評価するような枠組みである。

それぞれのデータセットに対して、AUCを計算。 ベースラインは、BKTと生徒がある問題を正答した場合の周辺確率?

image

image

simulated dataの場合、問題番号5がコンセプト1から生成され、問題番号22までの問題は別のコンセプトから生成されていたにもかかわらず、きちんと二つの問題の関係をとらえられていることがわかる。 Khan Datasetについても同様の解析をした。これは、この結果は専門家が見たら驚くべきものではないかもしれないが、モデルが一貫したものを学習したと言える。

[Discussion] 提案モデルの特徴として、下記の2つがある:

専門家のアノテーションを必要としない(concept patternを勝手に学習してくれる) ベクトル化された生徒のinputであれば、なんでもoperateすることができる drawbackとしては、大量のデータが必要だということ。small classroom environmentではなく、online education environmentに向いている。 今後の方向性としては、 ・incorporate other feature as inputs (such as time taken) ・explore other educational impacts (hint generation, dropout prediction) ・validate hypotheses posed in education literature (such as spaced repetition, modeling how students forget) ・open-ended programmingとかへの応用とか(proramのvectorizationの方法とかが最近提案されているので) などがある。

AkihikoWatanabe commented 5 years ago

knewtonのグループが、DKTを既存手法であるIRTの変種やBKTの変種などでoutperformすることができることを示す: https://arxiv.org/pdf/1604.02336.pdf

vanillaなDKTはかなりナイーブなモデルであり、今後の伸びが結構期待できると思うので、単純にoutperformしても、今後の発展性を考えるとやはりDKTには注目せざるを得ない感

AkihikoWatanabe commented 5 years ago

DKT元論文では、BKTを大幅にoutperformしており、割と衝撃的な結果だったようだが、 後に論文中で利用されているAssistmentsデータセット中にdupilcate entryがあり、 それが原因で性能が不当に上がっていることが判明。

結局DKTの性能的には、BKTとどっこいみたいなことをRyan Baker氏がedXで言っていた気がする。

AkihikoWatanabe commented 5 years ago

Deep Knowledge TracingなどのKnowledge Tracingタスクにおいては、 基本的に問題ごとにKnowledge Component(あるいは知識タグ, その問題を解くのに必要なスキルセット)が付与されていることが前提となっている。 ただし、このような知識タグを付与するには専門家によるアノテーションが必要であり、 適用したいデータセットに対して必ずしも付与されているとは限らない。

このような場合は、DKTは単なる”問題”の正答率予測モデルとして機能させることしかできないが、 知識タグそのものもNeural Networkに学習させてしまおうという試みが行われている: https://www.jstage.jst.go.jp/article/tjsai/33/3/33_C-H83/_article/-char/ja

AkihikoWatanabe commented 2 years ago

DKTに関する詳細な説明が書かれているブログポスト: expectimaxアルゴリズムの説明や、最終的なoutput vector y_i の図解など、説明が省略されガチなところが詳細に書いてあって有用。(英語に翻訳して読むと良い) https://hcnoh.github.io/2019-06-14-deep-knowledge-tracing

AkihikoWatanabe commented 2 years ago

こちらのリポジトリではexpectimaxアルゴリズムによってvirtualtutorを実装している模様。 詳細なレポートもアップロードされている。 https://github.com/alessandroscoppio/VirtualIntelligentTutor

AkihikoWatanabe commented 2 years ago

DKTのinputの次元数が 2 * num_skills, outputの次元数がnum_skillsだと明記されているスライド。 元論文だとこの辺が言及されていなくてわかりづらい・・・ http://gdac.uqam.ca/Workshop@EDM20/slides/LSTM_tutorial_Application.pdf http://gdac.uqam.ca/Workshop@EDM20/slides/LSTM_Tutorial.pdf

こちらのページが上記チュートリアルのページ http://gdac.uqam.ca/Workshop@EDM20/