Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simpler expression for predictRecall when b is integer #17

Closed
fasiha opened this issue Dec 5, 2019 · 2 comments
Closed

Simpler expression for predictRecall when b is integer #17

fasiha opened this issue Dec 5, 2019 · 2 comments

Comments

@fasiha
Copy link
Owner

fasiha commented Dec 5, 2019

Interesting factoid:

Beta[a+t, b] / Beta[a, b] = prod(map(lambda m: (a+m)/(a+t+m), range(b)))

for b>=2 integer (and a and t arbitrary), at least for b>=2 and b<=6.

(Apologies for mixing Mathematica and Python notation.)

This might be immediately useful if predictRecall checks for b (small?) integer.

This can be even more useful if we can find a way to make b always integer in our Ebisu models—easy to do when a quiz is a success, but a bit harder to do when a quiz is a failure: basically we have to search t' (t-prime in the readme) that makes b an integer.

Then, predicting recall at any given time is a rational polynomial, very fast to calculate, no need for Gamma or Beta functions. We could always try to make b=2 even.

(One question I have is, right now with version 1.0, we rebalance the model to roughly near the half-life so a and b aren't too different. Are there t's that yield Beta distributions that are more faithful to the GB1 posterior than others?)

@fasiha
Copy link
Owner Author

fasiha commented Jun 3, 2020

  • beta after update for any tback (t', t-prime) will be >= beta before update
  • beta after successful quizzes grows very slowly as tback increases a lot, so you might need to go to huge tback to get to beta = next integer

@fasiha fasiha closed this as completed Jan 14, 2023
@fasiha
Copy link
Owner Author

fasiha commented Jan 14, 2023

Closed this because Ebisu v3 is moving away from Beta priors on recall to Gamma priors on half-life.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant