One counterintuitive issue with spaced repetition is that the modern algorithms like FSRS are actually almost too good at scheduling. The effect is that each card is almost perfectly scheduled to be very difficult but still doable. Now, it's a bit weird to call it an issue considering it's the whole concept working exactly as designed. But it does cause one follow-up problem.
The problem is that in life, we are accustomed to things becoming easier as we get better at them. So you start drawing faces and it starts out feeling very difficult, but then as you practice more and more, it feels easier and easier. Of course, by the time it's feeling easy, it means that you're no longer actually getting effective practice. But nevertheless, it's the feeling that we are accustomed to. It's how we know we're getting better.
Because spaced repetition is so good at always giving you things that you will find difficult, it doesn't actually feel like you're getting better overall even though you are. The things that you are good at are hidden from you and the things that you are bad at are shown to you. The result is a constant level of difficulty, rather than the traditional decreasing level of difficulty.
I've encountered this problem myself. I built a language learning app for fun, and some of my users feel like they're not learning very much compared to alternatives that don't use spaced repetition. In fact, it's the exact opposite. They learn much more quickly with mine, but they don't have that satisfying feeling of the lessons becoming easy. (Because if I gave them easy challenges, it wouldn't be as productive!)
I'm not sure what the best way to solve this problem is. I would much appreciate any advice.
The solution is to learn content that you actually use with some regularity in your life outside of the testing! If you're doing this for education, the payoff might be the exam; if you're doing it to learn things without some particular end goal, you'll have to make your own way to make it worth it.
The language learning app people could try scheduling monthly video chats with native speakers (swapping turns halfway through so it's mutually beneficial) and notice their proficiency improve.
Just have the program point out the size of the word pool it's drawing from. "Number go up" is objective and clearly motivates people in other disciplines (someone else mentioned lifting weights).
I think what you're describing here is mostly a mindset / user education problem. SRS is for "serious learning", which by necessity will unconditionally feel difficult - if your training sessions aren't strenuous, then they don't drive adaptation.
It's hard to get around without marrying the SRS with something like a hierarchical skill tree whose traversal you can be made aware of, or some other visible progress metric (eg, climbing the ELO of encountered puzzles in a chess training engine).
Still: users have to get comfortable with being uncomfortable if they want to profit from these sorts of systems.
A different issue with SRS's lazer accuracy is the Pareto tradeoff between efficiency and robustness.
If your only exposure to words is the spaced repititon why are you wasting your time learning? Use the language and soon you won't need the repitition at all. The app is good to start because you need a couple thousand words before you can do anything, but in a few months you should be switching from learning words to reading and listening (and soon after writting and talking). if you do it that way most words will occure far more often than the algorithm suggests and become easy
> I'm not sure what the best way to solve this problem is. I would much appreciate any advice.
Serious answer: All the dark patterns.
Loot boxes even if they only give users a digital hat, small animated bird (like the green one, but not) doing a silly dance when users get enough correct answers, some weird phrases sprinkled amongst the lessons which make the users laugh.
Just, please let them have an off switch for people like us :)
FSRS has dials to tweak to show you cards either more or less often, so if it's feeling "too hard" you can tweak that dial to show you cards when "easier" (at the risk of seeing more cards per day since you're seeing them more often).
Failing to do that, one might consider that instead of focusing on how hard each card feels, but rather the size of the corpus that they have "under their belt". This is the case if you're constantly adding new cards - if you are and your cards/day is stable, then you have an ever increasing mound of memorized knowledge.
If you aren't adding new cards, then the cards/day will inevitably go down, barring some actual cognitive issue.
It's a matter of what you focus on as your measure of success.
‘Desirable difficulty’ is the research term. To solve your problem, first understand your users need a mindset change. We need to connect their action to a “satisfying feeling” as you said.
You want your users to be like weight lifters. No lifter comes out the gym saying, “Man that was the best workout, felt so easy,” to the contrary, lifters use progressive overload to induce difficulty because that difficulty connects to the results they want.
For your users, you need some way to measure the outcome, so that you can show them, “hey look, that mild discomfort lead to more progress on what you care about,” and then you need to consistently message that some difficulty is good.
Mindset change takes consistency and time. Won’t happen over night. You’ll know you succeeded when students become aware of “hey, I’m not learning as well if it doesn’t feel difficult”, and then react by increasing the challenge.
What's the name of the app? I would like to try it out!
Well the simplest thing would be to have test/benchmarks you do at the start and end of each “chapter” (however you define that).
You fail miserably at the test at the start of each chapter, and crush it at the end.
The difficult part is deciding how the tests are spread out.
I have a half dozen language learning apps on my phone and have vibe coded a few concepts as well and while spaced recognition is amazing, it still suffers from the duolingo "vocabulary is not a language" problem.
IMO the way around users feeling like spaced recognition isn't progression is by redefining progression away from memorizing vocabulary into into becoming proficient in conversation both listening and speaking. If spaced recognition vocab is just one feature of a holistic experience, users will judge their progression holistically.
I'm really waiting for that one app that finally connects ChatGPT Advanced Voice Mode or Gemini Live to a context-aware and well trained language tutor. I can already have impromptu practice sessions with both in Mandarin and English but they quickly lose the plot regarding their role as a tutor. I'd love to have them available as part of a learning journey. I can study vocab and flash cards all day but the second that voice starts speaking sentences and I need to understand in real time, I freeze up. The real progress is conversing!
I just tried out your app for the first time. First time trying to learn Spanish. I feel exactly like the user you describe but it is because I have to click Don’t remember for 70-80% of the words.
I’ve always had difficulty remembering vocabulary. I remember cramming German in School 30 years back. We had 20 words we had to learn per week and I could sit a whole night repeating and repeating them just because they wouldn’t stick. And then in the morning they were all gone anyway. So I gather I am a bad language learner.
In your algorithm, do you assume everyone’s recall is the same or do you optimize for a recall rate which make everyone fail a certain percentage of the word? If so, knowing that I am supposed to not remember 70% would be a good reminder in the app to not feel bad.