GithubHelp home page GithubHelp logo

riku426 / deepirt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ckyeungac/deepirt

0.0 0.0 0.0 4.13 MB

It is the Deep-IRT model implemented in python3 and tensorflow1.13. Deep-IRT model extends the DKVMN model by cooperating with the IRT model.

License: MIT License

Python 100.00%

deepirt's Introduction

Deep-IRT

This is the repository for the code in the paper Deep-IRT: Make Deep Learning Based Knowledge Tracing Explainable Using Item Response Theory (EDM, arXiv)

If you find this repository useful, please cite

@inproceedings{EDM2019_Yeung_DeepIRT,
  title={Deep-IRT: Make deep learning based knowledge tracing explainable using item response theory},
  author={Yeung, Chun Kit},
  year={2019},
  booktitle = {{Proceedings of the 12th International Conference on Educational Data Mining}},
  pages = {683--686}
}

Abstact

Deep learning based knowledge tracing model has been shown to outperform traditional knowledge tracing model without the need for human-engineered features, yet its parameters and representations have long been criticized for not being explainable. In this paper, we propose Deep-IRT which is a synthesis of the item response theory (IRT) model and a knowledge tracing model that is based on the deep neural network architecture called dynamic key-value memory network (DKVMN) to make deep learning based knowledge tracing explainable. Specifically, we use the DKVMN model to process the student's learning trajectory and estimate the student ability level and the item difficulty level over time. Then, we use the IRT model to estimate the probability that a student will answer an item correctly using the estimated student ability and the item difficulty. Experiments show that the Deep-IRT model retains the performance of the DKVMN model, while it provides a direct psychological interpretation of both students and items.

Requirements

I have used tensorflow to develop the deep knowledge tracing model, and the following is the packages I used:

tensorflow==1.13.2 (or tensorflow-gpu==1.13.2)
scikit-learn==0.21.3
scipy==1.3.1
numpy==1.16.4

You can simply install the dependency via

pip install -r requirements.txt

Data Format

The first line the number of exercises a student attempted. The second line is the exercise tag sequence. The third line is the response sequence.

15
1,1,1,1,7,7,9,10,10,10,10,11,11,45,54
0,1,1,1,1,1,0,0,1,1,1,1,1,0,0

Program Usage

Run the experiment

python main.py

or

python run_experiment.py

Detail hyperparameter for the program

usage: main.py [-h] [--dataset DATASET] [--save SAVE] [--cpu CPU]
               [--n_epochs N_EPOCHS] [--batch_size BATCH_SIZE] [--train TRAIN]
               [--show SHOW] [--learning_rate LEARNING_RATE]
               [--max_grad_norm MAX_GRAD_NORM]
               [--use_ogive_model USE_OGIVE_MODEL] [--seq_len SEQ_LEN]
               [--n_questions N_QUESTIONS] [--data_dir DATA_DIR]
               [--data_name DATA_NAME] [--memory_size MEMORY_SIZE]
               [--key_memory_state_dim KEY_MEMORY_STATE_DIM]
               [--value_memory_state_dim VALUE_MEMORY_STATE_DIM]
               [--summary_vector_output_dim SUMMARY_VECTOR_OUTPUT_DIM]

optional arguments:
  -h, --help            show this help message and exit
  --dataset DATASET     'assist2009', 'assist2015', 'statics2011',
                        'synthetic', 'fsai'
  --save SAVE
  --cpu CPU
  --n_epochs N_EPOCHS
  --batch_size BATCH_SIZE
  --train TRAIN
  --show SHOW
  --learning_rate LEARNING_RATE
  --max_grad_norm MAX_GRAD_NORM
  --use_ogive_model USE_OGIVE_MODEL
  --seq_len SEQ_LEN
  --n_questions N_QUESTIONS
  --data_dir DATA_DIR
  --data_name DATA_NAME
  --memory_size MEMORY_SIZE
  --key_memory_state_dim KEY_MEMORY_STATE_DIM
  --value_memory_state_dim VALUE_MEMORY_STATE_DIM
  --summary_vector_output_dim SUMMARY_VECTOR_OUTPUT_DIM

deepirt's People

Contributors

ckyeungac avatar dependabot[bot] avatar riku426 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.