3 pontos por GN⁺ 2024-01-16 | 1 comentários | Compartilhar no WhatsApp
  • A wiki ABC of FSRS do FSRS, que otimiza o cronograma de revisões de estudo, foi movida do fsrs4anki para a nova wiki awesome-fsrs
  • Os materiais de pesquisa vinculados da MaiMemo tratam, respectivamente, da otimização de cronogramas de repetição espaçada e da modelagem da dinâmica da memória em artigos da ACM KDD e da IEEE TKDE
  • Um artigo separado apresenta o processo de pesquisa em algoritmos de repetição espaçada a partir da experiência de um estudante de graduação que publicou um artigo na ACM KDD
  • FSRS-Anki-20k e anki-revlogs-10k são apresentados juntos como datasets open source que incluem características de séries temporais
  • O FSRS é um projeto open source independente liderado pela comunidade, e o apoio de organizações como a MaiMemo Inc. sustenta a participação contínua de contribuidores-chave

ABC of FSRS movido para uma nova wiki

Materiais de pesquisa sobre repetição espaçada

Artigo sobre experiência de pesquisa

Datasets públicos

Projeto comunitário e patrocínio

  • O FSRS é um projeto open source independente liderado pela comunidade
  • O projeto agradece o apoio de organizações como 墨墨背单词 (MaiMemo Inc.)
  • O apoio da MaiMemo permite que contribuidores-chave como Jarrett Ye dediquem tempo e expertise ao FSRS
  • Essa colaboração ajuda o FSRS a permanecer um algoritmo de repetição espaçada líder e disponível gratuitamente para todos

1 comentários

 
GN⁺ 2024-01-16
Comentários do Hacker News
  • Uma forma muito subestimada de melhorar a repetição espaçada é tornar os cartões mais fáceis. Descobri que cartões eficazes podem ser surpreendentemente fáceis
    No começo, eu memorizava vocabulário de francês com o Anki e fazia cartões bidirecionais inglês↔francês, mas quando os cartões chegaram às centenas, ficou doloroso por haver sinônimos demais
    Depois, seguindo o conselho de Katzumoto para aprender japonês, comecei a colar parágrafos inteiros de e-books ou páginas da web e criar cartões de lacuna escondendo só uma palavra; era fácil, mas eficaz
    Fiquei ainda mais preguiçoso e passei a esconder só metade da palavra, ou simplesmente deixava a palavra em negrito e considerava como acerto se eu a lembrasse mais ou menos pelo contexto; e isso funcionou ainda melhor
    Quando um cartão aparecia e eu pensava “ah, esse cartão de novo?”, eu o apagava, e configurei o Anki para suspender permanentemente depois de 3 erros. Se fosse uma palavra que eu realmente precisasse saber, logo a veria de novo em um contexto melhor, então não havia problema, e meu vocabulário de francês continuou crescendo rápido
    Acho que a maior melhora virá mais de melhorar o formato dos cartões do que de um algoritmo melhor de repetição espaçada, e considero surpreendentemente difícil criar cartões fáceis demais para não serem úteis. Digo isso depois de mais de 35.000 revisões no Anki em três idiomas

    • Esse é o jeito certo de usar SRS. Geeks como nós tendem a perseguir melhorias de 1% com algoritmos de repetição mais inteligentes ou formas diferentes de entrada, mas o modo de falha real é muito mais comum: as pessoas desistem
      Vejo com frequência gente despejando milhares de cartões no Anki no primeiro mês estudando algo e, um ou dois meses depois, ficando tão sobrecarregada com as revisões que elas passam a parecer trabalho maçante, e aí a pessoa para
      Há dois conselhos que fazem diferença. Faça os cartões um pouco “fáceis demais” e seja bastante seletivo com os cartões que vai colocar
      Quando você cria os cartões pela primeira vez, ainda está estudando aquele assunto e tudo está vivo na cabeça, então dá vontade de criar cartões interessantes e desafiadores para o seu eu atual. Mas uma ou duas semanas depois, é melhor que sejam cartões fáceis, que só deem um leve empurrão na memória, em vez de causar confusão
      Em vez de jogar no Anki frases suficientes para encher um livro, é melhor passear devagar por um pomar e colher só uma ou duas das melhores maçãs. Maçãs podres, ou seja, cartões sem interesse ou difíceis demais, contaminam o baralho inteiro e fazem você evitar a revisão em si
    • Eu vinha fazendo o contrário. Fiz 70.000 revisões no Anki em um idioma, e adicionar contexto com cuidado em geral parecia mais perda de tempo na criação dos cartões
      A revisão normalmente passa rápido, então o tempo de criação representa uma parte surpreendentemente grande do tempo total de estudo por cartão. Hoje em dia coloco cada vez menos contexto, e muitas vezes os cartões simples padrão criados por um plugin de dicionário já bastam
      Quase só adiciono contexto na frente do cartão quando se trata de um termo técnico que aparece praticamente só naquele contexto. Quando não vale a pena aprendê-lo de forma isolada
      Ainda assim, acho bom fazer isso de forma preguiçosa e ser generoso consigo mesmo. Na hora de corrigir a resposta, também sou bem frouxo: não cobro domínio perfeito de nível nativo, e sim se entendi o suficiente para evitar confusão na prática
    • As 20 regras para escrever cartões SRS do SuperMemo são um tesouro: https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge
      Elas devem melhorar muito a qualidade dos seus cartões
    • Penso algo parecido ao aprender guitarra. Pode ser bom fazer o cérebro lidar com um problema de várias formas
      Por exemplo, dá para forçar a memorização das notas do braço com repetição espaçada de forma bruta, mas na prática misturar contextos foi mais eficaz
      Em uma semana, por preguiça, eu só treino nomes de notas; em outra, mexo com escalas estranhas como a escala húngara; em outra, trabalho progressões com acordes arpejados ou power chords, ou tento reproduzir o som ou a sensação de uma música específica
      Com o tempo, o cérebro começa a criar conexões. Surgem percepções como “isso é só sol menor”, “isso é sol maior, mas pulando aquelas notas”, “com esse padrão talvez dê para tocar daquele jeito, né?”
      Também há uma sensação curiosa de que a velocidade com que percebo o que não sei aumenta muito mais rápido do que a velocidade com que acho que sei algo. Mesmo assim, estou pensando em usar um algoritmo de repetição espaçada que me dê tarefas de guitarra de 5 a 10 minutos para desenvolver ao mesmo tempo a memória muscular e as conexões neurais
    • Uso o Anki há bastante tempo, de forma intermitente, para aprendizado de idiomas, e recentemente passei a usá-lo para estudar disciplinas de cursos universitários online
      Talvez porque o conteúdo seja mais variado do que quando é só idioma, sinto muito a influência do formato dos cartões. Mesmo em baralhos feitos por outras pessoas, eu frequentemente ajusto o texto do lado da resposta, e há uma diferença perceptível na taxa de retenção
      Respostas concisas e com fluxo natural fixam melhor. Se houver um cartão que soe estranho, vale a pena corrigi-lo sem hesitar
  • Memorizei dezenas de milhares de palavras de idiomas estrangeiros com o Anki, e quando os cartões tinham imagens, isso sempre ajudava a lembrar as palavras
    Agora estou fazendo um projeto talvez meio tolo de memorizar 750 cartões de um jogo de perguntas que jogo com a família. São cartões em que todas as respostas são anos. Ex.: “Em que ano a Coca Cola Light foi lançada?”
    Se eu criar imagens para os cartões com o Midjourney, consigo lembrar muito mais facilmente
    Uso um sistema em que cada século tem uma figura representativa. Einstein representa 1900~2000, Marie-Antoinette representa 1700~1800
    Objetos representam décadas. Um carro dos anos 60 representa os anos 60, uma jaqueta com ombreiras representa os anos 80, e assim por diante. O último dígito também é tratado de forma parecida
    Faço o Midjourney gerar imagens em estilo de cartoon com esses elementos, salvo as mais engraçadas ou absurdas e as coloco no verso dos cartões do Anki. Muitas vezes as imagens são mais fáceis de lembrar do que o próprio ano

    • Há três pontos. Primeiro, vale procurar sobre PAO, uma técnica de memorização baseada em imagens
      Segundo, sua recordação pode piorar em situações reais sem imagens, então você deveria testar periodicamente com e sem imagem
      Terceiro, fiquei curioso se esse quiz é Trivial Pursuit. Um amigo meu memorizou de propósito todos os cartões da edição Genus original
    • Estou fazendo a mesma coisa agora com geografia. Bandeiras, capitais e coisas assim. Acho que isso deve dar uns +5 de vantagem na maioria das noites de quiz
    • Esse sistema é genial. Datas sempre foram difíceis para mim; vou roubar essa ideia para usar no futuro
  • Interessante. Segundo os benchmarks, com esse algoritmo dá para revisar 20~30% menos cartões do que com o algoritmo clássico do Anki
    Há alguns dias publiquei uma implementação em Python do algoritmo clássico SM-2 usado em https://python.cards, e talvez dê para trocar para FSRS: https://github.com/vlopezferrando/simple-spaced-repetition

    • python.cards parece bom. Seria legal adicionar alguns exemplos
      Também fico curioso se existe a possibilidade de abrir o código do app web. Parece que isso pode virar um formato popular para mostrar flashcards em áreas específicas, tipo estudantes aprendendo X
  • Pela explicação, parece que o FSRS ainda atribui uma data exata de revisão a cada cartão. Foi por causa disso que parei de usar o Anki
    Não sou universitário nem estou estudando para prova, então só quero praticar quando tiver vontade. Pode haver longos intervalos entre as sessões, e não quero ter a sensação de que existem cartões atrasados se acumulando
    O Anki é um app excelente, mas eu queria que existisse um algoritmo que, em vez de definir datas de revisão, fizesse uma amostragem aleatória dos cartões, ponderada pela probabilidade de precisarem urgentemente de revisão
    Seria ótimo se algo como https://github.com/fasiha/ebisu fosse possível como plugin do Anki, ou se houvesse um app parecido usando um formato aberto de cartões

    • Mas a memória não funciona assim. Você não pode deixar uma lembrança em suspenso do jeito que está propondo. Há um motivo para o FSRS seguir uma curva de memória personalizada
    • Praticar quando quiser, com possíveis intervalos longos entre as sessões, já é justamente o que um SRS faz
      Só que, se você zerar tudo o que está “atrasado”, não vai mais poder praticar quando quiser e terá de esperar algum tempo até ficar disponível de novo
    • Eu fiz um app meio nesse estilo, e funcionou muito mal
      Repetia de forma irritante coisas que eu lembrava, e uma boa parte das que eu esquecia acabava sendo esquecida por completo. Então a repetição quase não tinha sentido e o progresso era muito lento
      O ponto central é repetir quase no momento em que você está prestes a esquecer, e isso é difícil sem prazos e agendamento
    • Estamos construindo exatamente esse tipo de abordagem no Phrasing.app. No começo usamos o ebisu, mas no fim passamos a usar um fork bastante modificado do FSRS
      Na prática não usamos prazos e, tirando alguns recursos de análise que foram pedidos, tentamos manter o usuário em vários níveis de dificuldade
      Damos mais importância a seguir em frente do que a eliminar 100% do atraso. Se uma palavra for realmente importante, a pessoa vai favoritá-la ou revê-la de novo
      Não é um app público de flashcards; o foco é bem mais em mineração automática de frases para idiomas estrangeiros. Mesmo assim, ficarei feliz em responder perguntas sobre a experiência de modificar o FSRS
      Dá para ver mais sobre o produto em https://blog.phrasing.app/phrasing-first-look/
    • No Anki, você pode usar baralhos filtrados e ordenar os cartões por atraso relativo
  • Estou usando FSRS há 3 meses, e finalmente resolveu a dor de ter que ajustar por tentativa e erro o antigo algoritmo de agendamento SM2
    O conteúdo de cada baralho pode influenciar muito a retenção ótima, mas agora basta retreinar os pesos de cada baralho a cada poucos meses para que ele se adapte adequadamente
    O artigo[0] também vale muito a leitura se você quiser ver uma análise rigorosa da ciência da repetição espaçada em larga escala no mundo real
    Por causa dos benchmarks extensivos, para a maioria das pessoas não deve haver muito ganho em recalibrar os pesos para a própria coleção antes de acumular alguns milhares de revisões. O autor recomenda mais de 1.000
    Funciona bem mesmo quando você faz os cartões com atraso. A probabilidade de lembrar é baseada na estabilidade e no momento da última revisão, e se você ainda se lembrar depois do prazo, a estabilidade é atualizada para um período um pouco maior
    [0] https://dl.acm.org/doi/10.1145/3534678.3539081?cid=99660547150
    [1] https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm

  • Gosto de flashcards como hobby, então uso vários apps de repetição espaçada todos os dias por diversão. Já usei o FSRS e ele é bom, mas ainda não está no nível do SuperMemo mais recente
    Se você colocar materiais iguais ou parecidos em dois ou mais apps, dá para ver a diferença. Mesmo assim, o FSRS é muito melhor do que quase tudo o que existe hoje, e parece que em breve vai ficar melhor que o SuperMemo
    Usei o Mochi Cards por cerca de um ano e achei apenas ok, um pouco melhor que uma instalação padrão do Anki. O Mnemosyne é parecido. O app SaaS do SuperMemo também é razoável, mas não gosto da forma como ele organiza material de idioma
    Para vocabulário de idiomas eu uso o Clozemaster e, depois de acertar, coloco a frase no SuperMemo. Isso porque o algoritmo do SuperMemo é tão melhor assim. Também tenho explicações do ChatGPT para cada palavra, e coloco isso no SuperMemo também
    A parte mais difícil com certeza é fazer bons cartões. Para conseguir mais ideias, http://arxiv.org/abs/2401.01257 e https://rust-book.cs.brown.edu ajudam
    Ainda não encontrei um programa de flashcards que permita criar cartões tão rápido quanto o SuperMemo. No SuperMemo, basta colar um bloco de texto (ctrl-n), selecionar as palavras que vão virar cloze deletion e apertar alt-x. Dá para fazer isso várias vezes no mesmo trecho de texto, e a cada vez um novo cartão com lacuna entra na revisão
    A maioria dos outros apps exige criar os cartões um por um. Acho que isso acontece porque eles ficam presos demais à metáfora de cartões e baralhos. O SuperMemo organiza tudo em uma estrutura em árvore, e isso faz uma grande diferença. Na verdade, nem precisa necessariamente organizar, mas as pessoas agem como se o material aprendido fosse se classificar em baralhos limpinhos dentro da cabeça

    • No Anki, no Debian, é Ctrl-Alt-C
    • No Mochi é quase igual. Você cria um novo cartão com n, cola o texto com ctrl-v, seleciona a palavra, cria a lacuna com ctrl-l e usa ctrl-[n] para criar o grupo de lacunas de 0 a 9
      Cada grupo de lacunas passa a ter o seu próprio “cartão”
  • Considerando a importância da repetição espaçada, fico pensando se não seria necessário uma abordagem modular, ao contrário do Anki
    Não são três coisas separadas?

    1. os cartões ou subconjuntos de cartões
    2. o histórico de interações com esses cartões
    3. o algoritmo que, com base nesse histórico, apresenta os cartões e adiciona novos registros; potencialmente isso poderia ser calculado sob demanda
    • O FSRS no Anki ficou mais próximo de um algoritmo de cálculo sob demanda baseado apenas nas entradas fornecidas pelo usuário
      A estrutura de dados não é rigidamente modular, mas na prática chega o mais perto possível disso mantendo compatibilidade com os baralhos e extensões já existentes do Anki
      Na verdade, agora existe um botão para recalcular completamente todos os intervalos e dificuldades usando apenas o histórico e os parâmetros atuais do algoritmo. Se você já usa FSRS e os parâmetros não mudaram, recalcular não faz efeito nenhum, porque é igual ao cálculo incremental após cada revisão
      Em princípio, dá para ver isso como uma função pura calculada sob demanda, com cache dos dados gerados por motivos de compatibilidade legada e desempenho
  • Em um pouco de autopromoção relacionada, criei uma ferramenta gratuita e open source para fazer cartões do Anki a partir de vídeos do YouTube: https://youtube2anki.fly.dev/
    Gostaria de receber feedback. O código está no GitHub: https://github.com/vacmar01/youtube2anki

    • Legal. Posso perguntar para que tipo de vídeo você usa isso?
  • Já conversei várias vezes com o Xiaojun sobre FSRS e Anki. Em sistemas tradicionais de repetição espaçada como Anki+FSRS, o aprendiz muitas vezes revisa o conhecimento sempre no mesmo contexto, o que pode fazer com que ele entenda esse conhecimento como uma unidade isolada, e não como parte de uma rede maior
    Por exemplo, aprender palavras isoladamente não prepara o suficiente para usar um idioma na vida real. Em situações reais, contexto, colocações e uso têm um papel enorme
    Uma forma melhor de aprender idiomas do que a repetição isolada é encontrar palavras em contextos e combinações variados, para entender como elas naturalmente se formam em blocos e frases
    Por isso, para ensino de idiomas, estou criando algo que mostra vídeos curtos da vida real em vez de cartões do Anki. Cada vídeo é um pequeno cenário mostrando como o idioma é usado em situações reais
    Os alunos não apenas memorizam palavras, mas veem o uso em um contexto natural que inclui pistas visuais e gestos. Essa abordagem ajuda a entender a aplicação real das palavras e expressões, tornando o aprendizado mais imersivo e eficaz, já que um dos principais motivos do fracasso no aprendizado de línguas estrangeiras é não conseguir manter a constância
    Outra coisa que falta no Anki é um quiz baseado em situações reais, e não apenas “você se lembra?”. Os alunos precisam aplicar o que aprenderam em um ambiente divertido e de baixa pressão
    Algoritmos de SRS são apenas parte da solução, não uma panaceia. Há muitos fatores na memória, como o efeito das emoções na codificação. Você não precisa de SRS para lembrar do primeiro beijo ou do dia da formatura
    As pessoas aprendem a língua materna com fluência sem qualquer SRS, mas, mesmo usando SRS, a maioria não consegue ficar fluente em um idioma estrangeiro

    • O argumento de aprender em contexto e variar o contexto tem valor, mas sempre me incomoda a frase “as pessoas aprendem a língua materna sem Anki nem estudo de gramática”
      Aquisição de primeira língua e aquisição de segunda língua são tão diferentes quanto maçãs e bacon. O cérebro de um bebê e o de um adulto são diferentes, e necessidades, capacidades e contexto também diferem muito
    • Sim. Eu prefiro uma abordagem que combine SRS e aprendizagem por imersão, como no método Refold