Giter VIP home page Giter VIP logo

hawkeskt's Introduction

HawkesKT

illustration

This is our implementation for the paper:

Chenyang Wang, Weizhi Ma, Min Zhang, Chuancheng Lv, Fengyuan Wan, Huijie Lin, Taoran Tang, Yiqun Liu, and Shaoping Ma. Temporal Cross-effects in Knowledge Tracing. In WSDM'21.

Usage

  1. Install Anaconda with Python >= 3.5
  2. Clone the repository and install requirements
git clone https://github.com/THUwangcy/HawkesKT
  1. Prepare datasets according to README in data directory
  2. Install requirements and step into the src folder
cd HawkesKT
pip install -r requirements.txt
cd src
  1. Run model
python main.py --model_name HawkesKT --emb_size 64 --max_step 50 --lr 5e-3 --l2 1e-5 --time_log 5 --gpu 1 --dataset ASSISTments_09-10

Example training log can be found here.

Arguments

The main arguments of HawkesKT are listed below.

Args Default Help
emb_size 64 Size of embedding vectors
time_log e Base of log transformation on time intervals
max_step 50 Consider the first max_step interactions in each sequence
fold 0 Fold to run
lr 1e-3 Learning rate
l2 0 Weight decay of the optimizer
batch_size 100 Batch size
regenerate 0 Whether to read data again and regenerate intermediate files

Performance

The table below lists the results of some representative models in ASSISTments 12-13 dataset.

Model AUC Time/iter Time-aware Temporal cross
DKT 0.7308 3.8s
DKT-Forgetting 0.7462 6.2s
KTM 0.7535 49.8s
AKT-R 0.7555 13.8s
HawkesKT 0.7676 3.2s

Current running commands are listed in run.sh. We adopt 5-fold cross validation and report the average score (see run_exp.py). All experiments are conducted with a single GTX-1080Ti GPU.

Citation

Please cite our paper if you use our codes. Thanks!

@inproceedings{wang2021temporal,
  title={Temporal cross-effects in knowledge tracing},
  author={Wang, Chenyang and Ma, Weizhi and Zhang, Min and Lv, Chuancheng and Wan, Fengyuan and Lin, Huijie and Tang, Taoran and Liu, Yiqun and Ma, Shaoping},
  booktitle={Proceedings of the 14th ACM International Conference on Web Search and Data Mining},
  pages={517--525},
  year={2021}
}

Contact

Chenyang Wang ([email protected])

hawkeskt's People

Contributors

thuwangcy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hawkeskt's Issues

AKT模型的复现与原论文有差异?

您好!
您提出的HawkesKT模型让人耳目一新,关于代码仓库中对AKT模型的复现我有一些小问题。
在您复现的代码中
image
question_seq只被embedding为diff_parm,但是在AKT的官方仓库中,question会被embedding为 (n_question+1, embed_l)。

期待您的回复。

dataset

Can you give me the slepemapy.ca data set? please

the processing of the dataset

The ASSISTment 09-10 dataset has a field order_id, which is explained on the official website as: these id's are chronological, and refer to the id of the original problem log.

So for the processing of this dataset, after grouping by user_id, should we sort by 'order_id', otherwise it will destroy the chronological order of each user's answer. Although the preprocessing part constructs the timestamp, it cannot completely guarantee the user's question order. After each user's problem is sorted by order_id, the result of the program run has changed.

Issue with SAKT model

I noticed a weird way of invoking the TranformerLayers in SAKT model as per the below code snippet, you are only getting the output of the last layer applied on the seq_data input, you should either combine the pool or add y as input per each call!

y = seq_data for block in self.attn_blocks: y = block(mask=1, query=q_data, key=seq_data, values=seq_data)

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.