Code Monkey home page Code Monkey logo

dkvmn's People

Contributors

jennyzhang0215 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dkvmn's Issues

Should an separate instance of model be created for each student in actual use?

Congratulations on your paper. It is very interesting, and I enjoyed it very much.

When I read your paper I have the following question:
Should an separate instance of model be created for each student in actual use? Or, is the interaction sequence of all students going through a single model in order (according to timestamp)?

Accessing values at internal nodes and carry over of value matrix values

I really liked the DKVMN model and wished to extend it further. I have read the code in detail and had some doubts:

  1. Does the value matrix re-initialize every batch or are the values carried over?
  2. Can the values at an internal node (Let's say the last fully connected layer) be
    I would be really grateful if you could help me in answering this

One-hot codding

Dear author:
I have read the code in detail and had a doubt: Where can I find the one-hot coding process for 'q' and 'qa'? And I only find: 'q' is q_tag and 'aq' is q_tag*(1 + a_tag), and not find the corresponding one-hot vector of 'q' and 'qa'.
Please help me, thanks.

Unable to execute code on Mac

I am trying to execute this code on Mac OS and I am unable to do so.

Error:
I get the message compile with USE_CUDA=1 for gpu usage

When I try to install gpu version of mxnet with the command "pip install mxnet-cu102==1.6.0" , it hows ERROR: No matching distribution found for mxnet-cu102==1.6.0

I have MAC with intel graphics card.

Can you please help me out

Thanks

About sequence length and data splittling

Hello!

I know it's 2023, but I've been reading the paper and played around with the code lately, and there's somethingI I don't quite understand regarding data splitting and sequence length.

In the paper it's mentioned that for Assist2009 the maximum sequence length was set to 200. In the code, I was expecting that the sequences would be cut at 200 questions per user, and further questions would not be considered, but it seems this is not the case.

Example

For instance, let's take as example the comment in load_data.py, in function load_data

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

If we set seqlen to 10, what the code would do is:

  • Q will be set to [1,1,1,1,7,7,9,10,10,10,10,11,11,45,54]
  • A will be set to [0,1,1,1,1,1,0,0,1,1,1,1,1,0,0]
  • Since if len(Q) > self.seqlen is True, n_split will be math.floor(len(Q) / self.seqlen), which is math.floor(15/10), which is 1, but since len(Q) % self.seqlen is not 0, n_split will be 2, as per line 43
  • The for loop in line 45 will run twice, splitting the input in 2 parts: One for the first 10 elements, and the other for the remaining 5, but since the sequences must be of 10, the last one will be padded. So in the end, q_dataArray will have:
[
    [1,1,1,1,7,7,9,10,10,10],
    [10,11,11,45,54,0,0,0,0,0]
]

meaning that it has shape [n_split, self.seqlen], or [2, 10]

Questions

  1. Wouldn't that be incorrect when training? The entry in the data is for a student who did 15 questions, if I wanted to predict the result on, say, the 12th question, all the previous 11 questions and answers would have to be considered, but, if my understanding is correct, the training code considers them as two separate entries, as if the second one was a completely different student who just answered 5 questions. Moreover, the code is actually shuffling the data:
def train(net, params, q_data, qa_data, label):
    N = int(math.floor(len(q_data) / params.batch_size))
    q_data = q_data.T # Shape: (200,3633)  <-- Here
    qa_data = qa_data.T  # Shape: (200,3633) <-- Here
    # Shuffle the data
    shuffled_ind = np.arange(q_data.shape[1]) # <-- Here
    np.random.shuffle(shuffled_ind)
    q_data = q_data[:, shuffled_ind]
    qa_data = qa_data[:, shuffled_ind]
  1. If the above was intended, then, is the model reliable when predicting something like the 21st question (with seqlen same as in the example given above)?

I'd appreciate your input, answers and comments. Feel free to correct me if I didn't get something.

Thank you!

About knowledge state depiction

Hello! This DKVMN model inspired me a lot. I have several questions about your paper and hope for your reply.
1.Every Student has their own value matrix, but the key matrix are the same, right?
2.What the meaning of mt in your paper Equation(11) section 4.5 ? If possible, can I get the code of this section (like how to achieve Figure(6))? I am really interested about it.
image

Thanks very much

Which assistment 2009?

Which assistment 2009 dataset are you using? According to this link (https://sites.google.com/site/assistmentsdata/home/assistment-2009-2010-data/skill-builder-data-2009-2010) there are 2 versions after the detection of the duplicate row problem.
Version (1) with one row per student-problem-skill and version (2) with one row per student-problem. If the problem has multiple skills it is give as skill1_skill2 (see image below).

Are you using version 1 or version 2?
Thank you for your help!

image

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.