Hacker News new | ask | show | jobs
by daniels11 1268 days ago
Nice article! This would've been very helpful a few years back when I was attempting to make an Anki clone while teaching myself to code.

I'd still love to create a better open-source SRS algorithm at some point in the future. Mostly to use for language learning.

When I was learning Chinese characters, I did a bit of a deep dive into the Anki algorithm and found that the biggest flaw (imho) was the Ease Factor knocking a card back to 0.

If you mostly know a card, but miss it on one day for some reason - maybe you were tired or distracted, that card's learning progress should not be totally reset (as if you were learning it from scratch). That leads you to have too many cards to review on a daily basis. Instead, you should use some modifier to increase the interval to a reasonable level.

More explanation here: https://readbroca.com/anki/ease-hell/

I think it would be awesome to pair SRS with high quality images and audio, which I find most helpful for language learning. I've used Rosetta Stone and Duolingo in the past; Rosetta Stone has great audio and images but lacks a powerful SRS (it also has a number of other flaws in my mind, but I'll save that for another time). Duolingo is great for grammar and explanations, but I can't take the pronunciations and tediousness of it all.

7 comments

> If you mostly know a card, but miss it on one day [..] that card's learning progress should not be totally reset [..] Instead, you should use some modifier to increase the interval to a reasonable level.

In anki "Deck Options -> Advanced -> New interval -> 0.50" will make it so marking it as "Again" will cut the SRS interval by 50%, so i.e. if "easy" would have been "1 year", it now becomes "6 months" if it's easy the next time.

The above setting is called out in the "Adjust your New Interval" section of the link you provided, so it looks like you may have just missed that you already found the solution.

I've found 0.5 to be a good value, but you can tweak it of course. The default is 0, which gives the behavior you've observed (reset it all the way back).

> I think it would be awesome to pair SRS with high quality images and audio, which I find most helpful for language learning.

Anki cards can include images and audio, and while a little less well, they also support videos.

It's probably worth trying to create a deck within anki that does what you want before building your own system. It'll at least let you find actual issues with anki, rather than the surface-level misunderstandings of it you've got now.

I admit it's been a few years since I've dug really deep into Anki - you are right, I could probably fix the problems with the algorithm by tweaking the advanced options. Still, it'd be nice to have something that works out of the box.

Yes - I'm aware that Anki cards can include images and audio, and I've used those features extensively enough to know they are definitely lacking for my use case! Mostly, I'd like to make it easier to add the images and audio. The way I've done it in the past was googling for a stock image, downloading Forvo/Wiktionary audio files, and then dropping them into the Anki app. I'd appreciate an easier way to add these audio files and images when I add new vocabulary to my decks.

Anki's editing tools are a really generic, and thus tricky to use, tool, agreed!

Like many other anki users, I've ended up writing code that generates my decks.

If you can think of a better UX for editing cards specific to what you're studying, implementing a tool that creates and edits cards outside of anki, and then using anki for the study part, will probably end up being less work in total.

If it's _only_ the editing part, that's solvable without having to rewrite the whole SRS system too.

If you’re interested in SRS algorithms you should visit the site of the guy who basically invented them [0].

Most SRS algorithms seen in apps today are based on one of the super memo algorithms in one shape or form.

Anki was based on SM2, which was already outdated in terms of supermemo algorithms when released, but was chosen due to its simplicity.

0: https://supermemo.guru/wiki/SuperMemo_Guru#Memory

SuperMemo is proprietary software, and only works on Windows. Anki's algorithm is deemed adequate by most, and the benefits of newer algorithms which introduce more complexity are marginal/questionable.
From experience, my rep load in SuperMemo was half of what it'd have been in Anki for Japanese. over time, gap would've exploded. Being the only people with 30 years of good data makes a pretty big difference
But is your retention the same? These algorithms can be tuned, and obviously the amount of repetition to retain 95% of info is higher than retaining 90%.
Parent post was talking about algorithms. I linked to the site containing articles and research written by the person who created the algorithms.

It’s completely separate from supermemo the app.

If you’re looking at SRS algorithms, it’s worth looking through, for no other reason than to see what the flaws of the SM2 algorithm (used by Anki) are.

I’ve been using SuperMemo for almost 17 years every single day, started using it before Anki even came out. Too invested in my SuperMemo flashcard collection to jumó ship. I am 100% satisfied with SuperMemo 18’s algorithm, I’ve upgraded every single version since this is kind of my thing now. I’m a guy that does flashcards every day and can almost perfectly memorize everything I put in it.
You're describing a separate problem than ease hell, what you are looking for is fixed just by changing the lapses->new interval setting to be from 0% to something higher like 50%. I do agree that the default 0 is pretty bad though.
>That leads you to have too many cards to review on a daily basis.

Anki Review Hell.

I created Memory Hammer to solve this[1], It's an always on E-paper Anki client on a Raspberry Pi Zero. I can now review cards during small breaks from work regularly, Instead of a dedicated review schedule where its easy to get overwhelmed.

[1] https://memoryhammer.com

You might like to know that I study using Ankidroid on a Barnes and Noble Nook E-Ink device. I absolutely love it.

It syncs with desktop Anki for adding and editing notes.

That's neat! You'd be having better latency than memory hammer but loosing out on always-on feature which IMO helps is addressing review hell.

I'm planning a companion mobile app for memwory hammer which would help me choose decks, Say if I want to revise a particular subject or language for test.

I actually had considered leaving it always on, and fashioning a small stand with a charger. This conversation might motivate me to do that!

How often do you sync?

If a deck run out cards, It tries to retrieve new cards for review every 20 minutes.
You might find this app relevant, one of the ideas behind it is that by selecting your own images the concepts stick better: https://fluent-forever.com/index.html
A small SRS system is my go-to project to learn any new programming language, it really helps to already know the problem inside-out when you're learning a new set of tools.
I've experienced what you describe with Anki also. Moreover, I've felt there needs to be a model of the user's current acuity, because it's highly variable. If I make one error, then yeah, apply the SRS algorithm to that card. But if I get 50% more errors than expected, maybe I'm just exhausted and the session should take that into account. I used to use Anki to study Chinese characters on the way home from work, and after a long hard day with poor sleep the night before, I hit the learning wall a lot faster than usual.

tl;dr a bonus effect of regular Anki practice is you can detect when you're in a stupor