pykt-team / pykt-toolkit

pyKT: A Python Library to Benchmark Deep Learning based Knowledge Tracing Models
https://pykt.org
MIT License
194 stars 53 forks source link

您好,我看代码主要是以概念为输入的,我阅读了论文,也有问题为输入的,请问以问题为输入的代码是在哪里呢? #133

Open zjj1333 opened 9 months ago

zjj1333 commented 9 months ago

很优秀的工作!谢谢您的贡献,我想知道如果我以问题未输入的话,代码中是有一个参数的设置还是可以直接改输入的呢?例如:c直接改成cq??

sonyawong commented 9 months ago

很优秀的工作!谢谢您的贡献,我想知道如果我以问题未输入的话,代码中是有一个参数的设置还是可以直接改输入的呢?例如:c直接改成cq??

hi,感谢您对我们工作的关注~如果您想以question作为输入的话,可以直接使用cq, 并且使用的数据文件是带“qlevel”的文件,比如“train_valid_sequences_quelevel.csv”和“test_sequences_quelevel.csv”, 这些文件并未经过一题多知识点的扩展处理。

zjj1333 commented 9 months ago

你好直接改成cq的话和是不是和r的长度不太一致呢?是否可以直接改成q呢? q torch.Size([256, 199]) cq torch.Size([256, 200]) c torch.Size([256, 199]) r torch.Size([256, 199]) 并且您说并且使用的数据文件是带“qlevel”的文件,比如“train_valid_sequences_quelevel.csv”和“test_sequences_quelevel.csv”,这一块是在哪里进行改动呢?

zjj1333 commented 8 months ago
  elif model_name in ["dkt", "dkt+"]:
            y = model(cq.long(), r.long())
            y = (y * one_hot(qshft.long(), model.num_c)).sum(-1)

请问是怎么更改吗?

sonyawong commented 8 months ago

你好直接改成cq的话和是不是和r的长度不太一致呢?是否可以直接改成q呢? q torch.Size([256, 199]) cq torch.Size([256, 200]) c torch.Size([256, 199]) r torch.Size([256, 199]) 并且您说并且使用的数据文件是带“qlevel”的文件,比如“train_valid_sequences_quelevel.csv”和“test_sequences_quelevel.csv”,这一块是在哪里进行改动呢?

Hi, 感谢您对我们工作的关注。

Q1:如果直接改成cq的话和是不是和r的长度不太一致呢?是否可以直接改成q呢? -->直接改成q,长度还是和response一致,但是当前的q因为是基于知识点数量进行了repeat,比如一个学生答对题目q1, q1对应c1,c2,c3知识点,就会变成(q1,c1,1), (q1,c2,1), (q1,c3,1),因此不建议将c改成q作为模型输入, 建议使用待xx_quelevel.csv文件

Q2:使用的数据文件是带“qlevel”的文件,比如“train_valid_sequences_quelevel.csv”和“test_sequences_quelevel.csv”,这一块是在哪里进行改动呢? -->执行完example/data_preprocess.py会自动生成xxx_sequences_quelevel.csv文件,需要/pykt-toolkit/pykt/datasets/init_dataset.py中的指定模型使用的dataloader和模型数据输入(c改为q),具体可以参考IEKT的数据加载和数据输入。