Is there a way to optimize the memorization time? In this work an adaptative method is created to optimize the time to memorize multiple choice questions and answers about a subject , for that propose the “Recurrent Power Law” model is used, in which it is assumed that the forgetting curve obeys the power law, this model was trained by the Quizlet.com team with 1.5 million questions and answers[1]. Finally an experiment with countries and flags is performed to observe the veracity of the model to optimize the time that a person takes to memorize a set of questions and answers.
Motivation
Motivation
Introduction
Introduction
Students need to memorize some concepts for exams, to carry out this process there are several methods, one of them is to use cards with questions and answers, the idea is to see the card and answer the question, you can know if your answer is correct because behind the card is the solution to the question. While a person is doing this exercise with the cards, some questions arise: What is the next card that should be seen during the process?- Is there a way to know which card is the least remembered? If these questions are answered, it is possible to create a method capable of optimizing this card method.
The quizlet.com team has answered the above questions, they are based on the fact that one of the best curve describing forgetting obeys the power law, knowing this they created a recurrent model that allows to calculate this curve each time the person saw the answer behind the card and find a way to know which card is the least remembered.
The quizlet.com team has answered the above questions, they are based on the fact that one of the best curve describing forgetting obeys the power law, knowing this they created a recurrent model that allows to calculate this curve each time the person saw the answer behind the card and find a way to know which card is the least remembered.
Recurrent Power Law
Recurrent Power Law
From the work of the quizlet.com team[1], this model consists of calculating the recall probability curve for one question taking into account: The user answer, the time taken to return to the question and the probability of guessing. In this way the curve will ultimately depend on all previous attempts. The recall probability function and how to calculate it is presented below.
Where t is the retention interval, is 1 if the answer is correct and 0 in the other way, is the probability of guessing, for example if your questions have 4 choices is equal to 0.25, and ,,,,, are the weight values for the model if the answer is correct o incorrect respectively.
c
n
g
f
g
f
α
i
β
i
γ
i
α
c
β
c
γ
c
On the first trial, α is set to its initial value, . β is initialized based on the outcome of the firs trial, if correct, and if incorrect. On subsequent trials, α and β are updated based on a function of their previous values.
α
0
β
c0
β
i0
Formulas are also proposed to determine the probability that the user knows the answer and the probability that the answer is correct.
Where is the “difficulty factor”which is calculated by training the model.
k
f
These are the values found by the quizlet.com team training the model with 1.5 million questions:
In[]:=
Style[Grid[{{"Param","Value"},{"",-3.51706760045},{"",0.00643324313615},{"",-0.0544722896411},{"",3.86991863068},{"",3.54103122648},{"",0.396606246542},{"",0.294149151118},{"",0.887589628199},{"",1.39704082213},{"",0.378245635733},{"",2.055274}},FrameAll,AlignmentLeft],15]
α
0
α
c
α
i
β
c0
β
i0
β
c
β
i
γ
c
γ
i
P
0
k
f
Out[]=
Param | Value |
α 0 | -3.51707 |
α c | 0.00643324 |
α i | -0.0544723 |
β c0 | 3.86992 |
β i0 | 3.54103 |
β c | 0.396606 |
β i | 0.294149 |
γ c | 0.88759 |
γ i | 1.39704 |
P 0 | 0.378246 |
k f | 2.05527 |
Algorithm
Algorithm
Flowchart
Flowchart
Function RPLModel
Function RPLModel
The flowchart shown above is compressed into a function called “RPLModel”, which receives a set of questions and answers along with the initial attributes of the process,The process consists of answering the question and then you know the correct answer, simulating the cards method. In each cycle of the “While”, the user answers all the questions, then a function is used to modify the attributes in the set of questions, once the attributes have been modified, it is processed to eliminate the questions that we suppose are already memorized, how can we know if a question has already been memorized?, A memorized question is assumed when the integral of the curve between 0 and 100 seconds is greater than 85, graphically it is observed that the curve is above 0.8. The questions are then arranged according to the shape of the curves, the first question will be the one with the lowest curve, and so on, allowing the user to see the question with the lowest probability of recall first and the one with the highest recall last, to organize the questions, the integral is used again, since being a power-type function, the curve decays at a known rate, which allows us to know the order of the curves over a fairly long time. By performing all these steps, the user is guided to memorize the cards optimally.
Finally, when there are no more questions to memorize, a quiz is performed, so that the user can corroborate the method. The result of this function is the history of the process executed by the user, it is possible to extract relevant information that shows how the memorization of a particular card (question and answer) was carried out.
Finally, when there are no more questions to memorize, a quiz is performed, so that the user can corroborate the method. The result of this function is the history of the process executed by the user, it is possible to extract relevant information that shows how the memorization of a particular card (question and answer) was carried out.
Implementation
Implementation
This is a set of question with flag of the G7-countries:
In[]:=
g7FlagsQ=<|"1"-><|"Question"->"Canada","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"2"-><|"Question"->"France","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"3"-><|"Question"->"Germany","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"4"-><|"Question"->"Italy","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"5"-><|"Question"->"Japan","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"6"-><|"Question"->"United Kingdom","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>,"7"-><|"Question"->"United States","Answer"->
,"Choices"->
,
,
,
,"Cycle number"->0,"Probability of guessing"->0.25,"Retention interval"->Quantity[0,"Seconds"],"Last view"->Now,"Correct solution"->False,"α"->-3.51706760045,"β"->0,"Recall probability"->0,"Probability of knowing the answer"->0,"Probability of a correct answer"->0,"Nextorder"->0|>|>;
Now you can start the memorizing method using the “RPLModel” function:
In[]:=
usertry=RPLModel[g7FlagsQ];
It is possible to see how was the memorization process for each question, in this case the curves calculated for the first three questions in all process are shown:
In[]:=
Column[PlotQuestionLearning@QuestionLearning[usertry,#]&/@{1,2,3}]
Out[]=
Conclusions and Future Steps
Conclusions and Future Steps
Conclusions
Conclusions
◼
An algorithm was written using the Wolfram Language that allows to establish an order of questions to optimize the memorization process.
◼
This model does not take into account the particular user or question.
Future Steps
Future Steps
◼
Development of web interface in the Wolfram Cloud
◼
Support for uploading custom set of questions
◼
Expose functionalities as a cloud based API
Keywords
Keywords
◼
Memorizing method
◼
Recall Probability
Acknowledgment
Acknowledgment
This work is presented thanks to the collaboration of my mentor Christian Pasquel and the TA’s Jesse Friedman and Julian Laverde, who were always available to help me.
References
References
◼
[1]Mooney, S., Sun, K., & Bomgardner, E. (2018). Predicting Recall Probability to Adaptively Prioritize Study. arXiv preprint arXiv:1803.00111.