pykt-team / pykt-toolkit

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

AKT模型中的问题 #164

Open zncj2fdx opened 8 months ago

zncj2fdx commented 8 months ago

您好,在AKT模型中,有这样几种嵌入 self.difficult_param = nn.Embedding(self.n_pid+1, 1) # 题目难度 self.q_embed_diff = nn.Embedding(self.n_question+1, embed_l) # question emb, 总结了包含当前question(concept)的problems(questions)的变化 self.q_embed = nn.Embedding(self.n_question, embed_l)

为什么前两种嵌入需要elf.n_pid+1和self.n_question+1。而第三种直接传入n_question

sonyawong commented 7 months ago

您好,在AKT模型中,有这样几种嵌入 self.difficult_param = nn.Embedding(self.n_pid+1, 1) # 题目难度 self.q_embed_diff = nn.Embedding(self.n_question+1, embed_l) # question emb, 总结了包含当前question(concept)的problems(questions)的变化 self.q_embed = nn.Embedding(self.n_question, embed_l)

为什么前两种嵌入需要elf.n_pid+1和self.n_question+1。而第三种直接传入n_question

self.n_pid代表的是题目ID的数量, self.n_question是知识点ID的数量, self.difficultparam代表原论文 rasch model-based emb中的$\mu{q_t}$, self.q_embed_diff和self.qembed分别是$\mathbf{d}{ct}$和$\mathbf{c}{c_t}$, 所以用的是self.n_question. 具体可以查看原论文Section 3.4