FSRS: Moderner und effizienter Algorithmus für verteiltes Wiederholen
(github.com/open-spaced-repetition)- Das FSRS-Wiki
ABC of FSRS, das die Planung von Lernwiederholungen optimiert, wurde von fsrs4anki in das neue Wikiawesome-fsrsverschoben. - Die verlinkten Forschungsarbeiten von MaiMemo behandeln die Optimierung von Spaced-Repetition-Zeitplänen bzw. die Modellierung der Gedächtnisdynamik in ACM-KDD- und IEEE-TKDE-Publikationen.
- Ein separater Beitrag stellt den Forschungsprozess zu Spaced-Repetition-Algorithmen anhand der Erfahrung eines Undergraduates vor, der eine ACM-KDD-Arbeit veröffentlicht hat.
FSRS-Anki-20kundanki-revlogs-10kwerden gemeinsam als Open-Source-Datensätze mit Zeitreihenmerkmalen vorgestellt.- FSRS ist ein von der Community getragenes unabhängiges Open-Source-Projekt, und die Unterstützung von Organisationen wie MaiMemo Inc. ermöglicht die kontinuierliche Beteiligung zentraler Mitwirkender.
ABC of FSRS in ein neues Wiki verschoben
- Die Seite
ABC of FSRSwurde in ein neues Wiki verschoben. - Neuer Ort: https://github.com/open-spaced-repetition/awesome-fsrs/wiki/ABC-of-FSRS
Forschungsressourcen zu Spaced Repetition
- Zwei Arbeiten von MaiMemo sind verlinkt.
- A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling: eine ACM-KDD-Arbeit zur Optimierung von Spaced-Repetition-Zeitplänen
- Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory: eine IEEE-TKDE-Arbeit zur Optimierung von Spaced-Repetition-Zeitplänen durch Erfassung der Gedächtnisdynamik
- Zu beiden Arbeiten werden auch Links zu chinesischen Versionen bereitgestellt.
Beitrag über Forschungserfahrung
- How did I publish a paper in ACMKDD as an undergraduate?: ein Beitrag über Forschungserfahrungen zu Spaced-Repetition-Algorithmen
Öffentliche Datensätze
- Es werden Open-Source-Datensätze zu Spaced Repetition mit Zeitreihenmerkmalen bereitgestellt.
Community-Projekt und Förderung
- FSRS ist ein von der Community getragenes unabhängiges Open-Source-Projekt.
- Es wird Organisationen wie MaiMemo Inc. für ihre Unterstützung gedankt.
- Die Unterstützung von MaiMemo ermöglicht es zentralen Mitwirkenden wie Jarrett Ye, Zeit und Fachwissen in FSRS einzubringen.
- Solche Kooperationen helfen dabei, dass FSRS ein führender Spaced-Repetition-Algorithmus bleibt, der allen frei zur Verfügung steht.
1 Kommentare
Meinungen auf Hacker News
Eine stark unterschätzte Methode, Spaced Repetition zu verbessern, ist, die Karten einfacher zu machen. Ich habe festgestellt, dass wirksame Karten erstaunlich leicht sein dürfen.
Anfangs habe ich mit Anki französische Vokabeln gelernt und bidirektionale Englisch↔Französisch-Karten erstellt, aber als es Hunderte Karten wurden, wurde es wegen der vielen Synonyme quälend.
Später folgte ich Katzumotos Ratschlägen zum Japanischlernen, fügte ganze Absätze aus E-Books oder Webseiten ein und erstellte Lückentextkarten, bei denen nur ein Wort verdeckt war; sie waren einfach, aber effektiv.
Dann wurde ich noch fauler und verdeckte nur die Hälfte eines Wortes oder markierte das Wort fett; wenn ich es im Kontext ungefähr abrufen konnte, ließ ich es als bestanden gelten. Das funktionierte sogar besser.
Wenn beim Auftauchen einer Karte der Gedanke kam: „Ach, diese Karte schon wieder?“, löschte ich sie, und ich stellte Anki so ein, dass Karten nach 3 Fehlern dauerhaft ausgesetzt werden. Wenn es ein Wort war, das ich wirklich kennen musste, würde ich es bald in einem besseren Kontext wiedersehen, also war das kein Problem, und mein französischer Wortschatz wuchs weiter schnell.
Die größte Verbesserung dürfte eher aus besseren Kartenformaten kommen als aus besseren Spaced-Repetition-Algorithmen, und ich glaube, es ist überraschend schwierig, Karten zu erstellen, die zu leicht wirken, um nützlich zu sein. Das ist mein Fazit nach mehr als 35.000 Anki-Wiederholungen in drei Sprachen.
Ich sehe oft, dass Leute im ersten Monat, in dem sie etwas lernen, Tausende Karten in Anki schieben und ein oder zwei Monate später von der Wiederholungsmenge überwältigt sind, sodass sich das Wiederholen wie eine lästige Pflicht anfühlt und sie aufhören.
Zwei Ratschläge machen den Unterschied: Die Karten etwas „zu“ einfach machen und ziemlich wählerisch sein, welche Karten man aufnimmt.
Wenn man eine Karte zum ersten Mal erstellt, beschäftigt man sich gerade mit dem Thema und es ist im Kopf frisch, daher will man Karten erstellen, die für das aktuelle Ich interessant und herausfordernd sind. Aber 1–2 Wochen später sind Karten besser, die leicht genug sind, um die Erinnerung nur kurz anzustupsen, statt Verwirrung zu stiften.
Statt die Sätze eines ganzen Buchs komplett in Anki zu kippen, sollte man lieber langsam wie durch einen Obstgarten gehen und nur ein oder zwei der besten Äpfel pflücken. Faule Äpfel, also uninteressante oder zu schwierige Karten, verseuchen das ganze Deck und führen dazu, dass man das Wiederholen selbst meidet.
Wiederholungen gehen normalerweise schnell vorbei, daher macht die Erstellungszeit überraschend viel der Lernzeit pro Karte aus. Heutzutage füge ich immer weniger Kontext hinzu, und die einfachen Standardkarten, die ein Wörterbuch-Plugin erstellt, reichen oft völlig aus.
Kontext auf die Vorderseite einer Karte zu setzen lohnt sich fast nur dann, wenn es sich um Fachvokabular handelt, das praktisch nur in diesem Kontext auftaucht. Dann hat es keinen Wert, es isoliert zu lernen.
Allerdings finde ich es gut, faul zu sein und großzügig mit sich selbst umzugehen. Auch beim Bewerten der Antwort gehe ich ziemlich locker vor: Maßstab ist nicht perfekte Beherrschung auf Muttersprachlerniveau, sondern ob ich es ausreichend verstanden habe, um echte Verwechslungen zu vermeiden.
Sie werden die Kartenqualität deutlich verbessern.
Man könnte zum Beispiel die Noten auf dem Griffbrett stumpf mit Spaced Repetition durchdrücken, aber in der Praxis war es effektiver, Kontexte zu mischen.
In manchen Wochen war ich faul und drillte nur Notennamen, in anderen spielte ich mit seltsamen Tonleitern wie der ungarischen Skala herum, und wieder in anderen versuchte ich, Arpeggio-Akkorde oder Powerchord-Folgen oder den Klang und das Gefühl eines bestimmten Songs nachzubilden.
Mit der Zeit beginnt das Gehirn, Verbindungen zu knüpfen. Es entstehen Erkenntnisse wie: „Das ist einfach g-Moll“, „Das ist G-Dur, nur dass diese Töne übersprungen werden“, „Könnte man dieses Pattern nicht so spielen?“
Es gibt auch dieses merkwürdige Gefühl, dass man viel schneller darin wird zu merken, was man nicht weiß, als darin, was man zu wissen glaubt. Trotzdem überlege ich, einen Spaced-Repetition-Algorithmus zu nutzen, der mir 5- bis 10-minütige Gitarrenaufgaben gibt, um Muscle Memory und neuronale Verbindungen gemeinsam aufzubauen.
Vielleicht weil die Inhalte vielfältiger sind als nur Sprache, spüre ich den Einfluss des Kartenformats deutlich. Selbst bei Decks anderer Leute ändere ich häufig die Formulierungen auf der Antwortseite, und das macht einen spürbaren Unterschied bei der Behaltensrate.
Prägnante, natürlich fließende Antworten bleiben besser hängen. Wenn sich eine Karte holprig anfühlt, sollte man nicht zögern, sie zu überarbeiten.
Ich habe mit Anki Zehntausende Fremdsprachenwörter gelernt, und Bilder auf Karten haben mir immer geholfen, Wörter zu behalten.
Aktuell arbeite ich an einem vielleicht etwas albernen Projekt: Ich lerne 750 Karten aus einem Quizspiel, das ich mit der Familie spiele. Es sind Karten, bei denen die Antwort auf jede Frage ein Jahr ist. Beispiel: „In welchem Jahr kam Coca Cola Light heraus?“
Wenn ich mit Midjourney Bilder für die Karten erstelle, kann ich sie viel leichter abrufen.
Ich nutze ein System mit repräsentativen Personen pro Jahrhundert. Einstein steht für 1900–2000, Marie Antoinette für 1700–1800.
Gegenstände stehen für Jahrzehnte. Ein Auto aus den 60ern steht für die 60er, eine Jacke mit Schulterpolstern für die 80er und so weiter. Die letzte Ziffer behandle ich ähnlich.
Ich lasse Midjourney solche Elemente als Bilder im Cartoon-Stil erzeugen, speichere das lustigste oder absurdeste Bild und packe es auf die Rückseite der Anki-Karte. Das Bild ist oft leichter abzurufen als das Jahr selbst.
Zweitens kann der Abruf in realen Situationen ohne Bild schlechter werden, daher solltest du regelmäßig getrennt testen, einmal mit Bild und einmal ohne.
Drittens frage ich mich, ob dieses Quiz Trivial Pursuit ist. Ein Freund von mir hat absichtlich alle Karten der ursprünglichen Genus-Edition auswendig gelernt.
Interessant. Laut Benchmarks muss man mit diesem Algorithmus 20–30 % weniger Karten wiederholen als mit dem klassischen Anki-Algorithmus
Vor ein paar Tagen habe ich eine Python-Implementierung des klassischen SM-2-Algorithmus veröffentlicht, der auf https://python.cards verwendet wird; eventuell könnte ich auf FSRS umstellen: https://github.com/vlopezferrando/simple-spaced-repetition
Mich würde auch interessieren, ob es die Möglichkeit gibt, die Web-App als Open Source zu veröffentlichen. Es wirkt so, als könnte das eine beliebte Art werden, Flashcards in bestimmten Bereichen zu zeigen, etwa wenn Studierende X lernen
Der Beschreibung nach scheint FSRS weiterhin jeder Karte ein genaues Wiederholungsdatum zuzuweisen. Wegen dieser Funktion habe ich Anki aufgegeben
Ich bin kein Student mehr und lege keine Prüfungen ab; ich möchte einfach üben, wenn ich Lust dazu habe. Zwischen Sessions können auch lange Pausen liegen, und ich möchte nicht das Gefühl haben, dass sich überfällige Karten stapeln
Anki ist eine großartige App, aber statt Wiederholungsdaten zu vergeben, hätte ich gern einen Algorithmus, der Karten zufällig stichprobenartig zieht, und zwar proportional zur Wahrscheinlichkeit, dass sie dringend wiederholt werden müssen
Es wäre schön, wenn ein Ansatz wie https://github.com/fasiha/ebisu als Anki-Plugin möglich wäre oder wenn es eine ähnliche App mit offenem Kartenformat gäbe
Nur kann man, wenn man alles „Überfällige“ abgearbeitet hat, nicht mehr nach Belieben weiterüben, sondern muss eine gewisse Zeit warten, bis wieder etwas fällig wird
Fakten, die ich noch wusste, zu wiederholen, war nervig, und vieles von dem, was ich vergessen hatte, war komplett weg. Dadurch hatten die Wiederholungen kaum Sinn, und der Fortschritt war sehr langsam
Der Kern ist, kurz vor dem Vergessen zu wiederholen, und das ist ohne Fälligkeiten und Terminplanung schwierig
Tatsächlich verwenden wir keine Fälligkeiten und versuchen, die Nutzer – abgesehen von einigen angefragten Analysefunktionen – auf verschiedenen Schwierigkeitsstufen zu halten
Uns ist Vorankommen wichtiger, als immer 100 % des Rückstands zu beseitigen. Wenn ein Wort wirklich wichtig ist, markiert man es als Favorit oder sieht es ohnehin wieder
Es ist keine öffentliche Flashcard-App, sondern stark auf automatisches Sentence Mining für Fremdsprachen ausgerichtet. Fragen zu meinen Erfahrungen mit der Anpassung von FSRS beantworte ich aber gern
Informationen zum Produkt gibt es unter https://blog.phrasing.app/phrasing-first-look/
Ich nutze FSRS seit drei Monaten, und der Schmerz, den alten SM2-Planungsalgorithmus per Trial and Error anpassen zu müssen, ist endlich weg
Der Inhalt jedes Decks kann die optimale Retention stark beeinflussen; jetzt trainiere ich alle paar Monate die Gewichte jedes Decks neu, und das System passt sich entsprechend an
Auch das Paper[0] ist lesenswert, wenn man eine strenge Analyse der Wissenschaft des Spaced Repetition in großem realem Maßstab sehen möchte
Wegen der umfassenden Benchmarks bringt es den meisten wohl nicht viel, die Gewichte auf die eigene Sammlung neu abzustimmen, bevor sie mehrere tausend Reviews gesammelt haben. Der Autor empfiehlt mindestens 1.000
Es funktioniert auch gut, wenn man Karten verspätet macht. Die Abrufwahrscheinlichkeit basiert auf der Stabilität und dem Zeitpunkt der letzten Wiederholung; wenn man sich auch nach Ablauf der Frist noch erinnert, wird die Stabilität etwas länger aktualisiert
[0] https://dl.acm.org/doi/10.1145/3534678.3539081?cid=99660547150
[1] https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm
Ich mag Flashcards als Hobby und nutze jeden Tag zum Spaß mehrere Spaced-Repetition-Apps. FSRS habe ich auch ausprobiert und finde es gut, aber an das aktuelle SuperMemo kommt es noch nicht heran
Wenn man gleiche oder ähnliche Materialien in zwei oder mehr Apps einpflegt, sieht man den Unterschied. Trotzdem ist FSRS deutlich besser als fast alles, was es derzeit gibt, und ich glaube, es wird bald besser als SuperMemo sein
Mochi Cards habe ich etwa ein Jahr lang genutzt; es war einfach ganz okay und etwas besser als eine Standardinstallation von Anki. Mnemosyne ist ähnlich. Die SuperMemo-SaaS-App ist auch in Ordnung, aber die Art, wie sie Sprachmaterial organisiert, gefällt mir nicht
Für Sprachvokabular nutze ich Clozemaster, und nach einer richtigen Antwort übernehme ich den Satz in SuperMemo. Der SuperMemo-Algorithmus ist eben so viel besser. Zu jedem Wort gibt es auch ChatGPT-Erklärungen, die ich ebenfalls in SuperMemo übernehme
Der schwierigste Teil ist eindeutig, gute Karten zu erstellen. Für weitere Ideen helfen http://arxiv.org/abs/2401.01257 und https://rust-book.cs.brown.edu
Ich habe noch kein Flashcard-Programm gefunden, mit dem man so schnell Karten erstellen kann wie mit SuperMemo. In SuperMemo fügt man einen Textblock ein (ctrl-n), wählt das Wort aus, das zur Lückentext-Löschung werden soll, und drückt alt-x. Das kann man mehrfach im selben Textausschnitt machen, und jedes Mal landet eine neue Lückentextkarte in den Wiederholungen
In den meisten anderen Apps muss man Karten einzeln erstellen. Ich vermute, das liegt daran, dass sie zu stark an die Metapher von Karten und Decks gebunden sind. SuperMemo organisiert alles als Baumstruktur, und das macht einen großen Unterschied. Eigentlich muss man gar nicht unbedingt organisieren, aber Menschen tun so, als würden gelernte Inhalte im Kopf sauber in Decks einsortiert
Jede Lückengruppe bekommt ihre eigene „Karte“
Angesichts der Bedeutung von Spaced Repetition frage ich mich, ob es nicht einen modularen Ansatz braucht, anders als bei Anki
Sind das nicht drei getrennte Dinge?
Die Datenstruktur ist nicht streng modular, kommt dem aber unter Wahrung der Kompatibilität mit bestehenden Anki-Decks und Erweiterungen so nahe, wie es praktisch möglich ist
Tatsächlich gibt es jetzt einen Button, der allein aus der Historie und den aktuellen Algorithmus-Anpassungswerten alle Intervalle und Schwierigkeitsgrade vollständig neu berechnet. Wenn man bereits FSRS nutzt und sich die Anpassungswerte nicht geändert haben, hat die Neuberechnung keine Wirkung, weil sie dem inkrementellen Berechnen nach jeder Wiederholung entspricht
Im Prinzip kann man es als reine Funktion betrachten, die just in time berechnet, wobei die erzeugten Daten aus Gründen der Abwärtskompatibilität und Performance gecacht werden
Als dazu passende, schamlose Eigenwerbung: Ich habe ein kostenloses Open-Source-Tool gebaut, mit dem man aus YouTube-Videos Anki-Karten erstellen kann: https://youtube2anki.fly.dev/
Über Feedback würde ich mich freuen. Der Code ist auf GitHub: https://github.com/vacmar01/youtube2anki
Ich habe mit Xiaojun mehrfach über FSRS und Anki gesprochen. In traditionellen Spaced-Repetition-Systemen wie Anki+FSRS wiederholen Lernende Wissen oft immer im selben Kontext, wodurch sie Wissen möglicherweise als isolierte Einheiten verstehen statt als Teil eines größeren Netzwerks
Wörter isoliert zu lernen bereitet zum Beispiel nicht ausreichend darauf vor, eine Sprache im echten Leben zu verwenden. In realen Situationen spielen Kontext, Kollokationen und Gebrauch eine große Rolle
Eine bessere Methode zum Sprachenlernen als isolierte Wiederholung besteht darin, Wörter in verschiedenen Kontexten und Kombinationen zu sehen, damit man versteht, wie Wörter sich auf natürliche Weise zu Chunks und Sätzen formen
Deshalb entwickle ich für das Sprachenlernen etwas, das statt Anki-Karten kurze Videos aus dem echten Leben zeigt. Jedes Video ist ein kleines Szenario und zeigt, wie Sprache in realen Situationen verwendet wird
Lernende merken sich nicht nur Wörter, sondern sehen deren Gebrauch in einem natürlichen Kontext, einschließlich visueller Hinweise und Gesten. Dieser Ansatz kann das Verständnis für die praktische Anwendung von Wörtern und Ausdrücken verbessern und das Lernen immersiver und wirksamer machen. Denn der Hauptgrund für das Scheitern beim Fremdsprachenlernen ist, dass man nicht dranbleibt
Eine weitere Sache, die Anki fehlt, sind Quizfragen auf Basis realer Situationen, nicht nur „Erinnerst du dich?“. Lernende sollten das Gelernte in einer unterhaltsamen Umgebung mit niedriger Hemmschwelle anwenden
Der SRS-Algorithmus ist nur ein Teil der Lösung und kein Allheilmittel. Gedächtnis umfasst viele Faktoren, etwa den Einfluss von Emotionen auf die Enkodierung. Man braucht kein SRS, um sich an den ersten Kuss oder den Tag der Abschlussfeier zu erinnern
Menschen lernen ihre Muttersprache ohne jedes SRS fließend, aber bei Fremdsprachen werden die meisten selbst mit SRS nicht fließend
Erstspracherwerb und Zweitspracherwerb sind so unterschiedlich wie Äpfel und Speck. Die Gehirne von Babys und Erwachsenen unterscheiden sich, ebenso ihre Bedürfnisse, Fähigkeiten und Kontexte