Merry Mandarin logo Merry MandarinBlog
Bastidores

Por que a Merry Mandarin não usa SM-2 (e o que é de verdade o inferno da facilidade)

Por que a Merry Mandarin não usa SM-2 (e o que é de verdade o inferno da facilidade)

Você já sentiu isso, mesmo sem nunca ter ouvido esse nome. Um caractere que você já revisou quarenta vezes ainda volta a cada dois dias. Seu número de revisões diárias continua subindo mesmo você não tendo adicionado nenhum cartão novo em semanas. O app insiste que você está “aprendendo”, mas a pilha na sua frente todo dia de manhã parece cada vez menos progresso e cada vez mais dívida. Usuários do Anki têm um nome para isso: inferno da facilidade (ease hell). Não é uma metáfora. É um modo de falha específico e mecânico, embutido no algoritmo que quase todo app de repetição espaçada usa desde os anos 1980, e é o motivo número um pelo qual o motor de revisão da Merry Mandarin nunca foi construído sobre ele.

O que o inferno da facilidade realmente é

Quase todo app de repetição espaçada, o Anki antigamente à frente, historicamente programou os cartões usando um algoritmo chamado SM-2, e o SM-2 acompanha exatamente um número por cartão para decidir sua dificuldade: o fator de facilidade (ease factor). Todo cartão começa com um fator de facilidade de 2,5, ou 250%. Você responde “Bom”, e o intervalo até sua próxima revisão é multiplicado por esse fator. Você responde “De novo” porque esqueceu, e o próprio fator de facilidade é cortado, tipicamente em 20%. Você responde “Difícil”, e ele cai mais 15%. Você responde “Fácil”, e ele só sobe de volta 15%.

Olhe de perto essa assimetria e a armadilha fica óbvia. Um único esquecimento custa 20%. Recuperar esses 20% exige muito mais do que uma boa revisão, porque 15% de um número menor é um número menor. Esqueça um cartão três ou quatro vezes, o que acontece o tempo todo com material genuinamente difícil, e o fator de facilidade dele desaba na direção do piso que o antigo programador SM-2 do Anki impõe: 1,3, ou 130%. Uma vez que um cartão fica preso nesse piso, cada revisão bem-sucedida seguinte só multiplica seu intervalo por 1,3, então o intervalo praticamente não cresce. O cartão volta em alguns dias. Você acerta. Ele volta mais alguns dias depois. Você acerta de novo. Ele nunca se forma, porque a matemática estruturalmente não permite isso.

  1. Você esquece um cartão

    O fator de facilidade cai 20%. Um único esquecimento custa muito mais do que um único acerto recupera.

  2. O intervalo encolhe

    Novo intervalo = intervalo antigo vezes fator de facilidade, então um fator mais baixo significa que o cartão volta antes do que precisava.

  3. Ele volta cedo demais

    O cartão reaparece antes de a memória ter realmente se consolidado, então as chances de esquecê-lo de novo são maiores do que deveriam ser.

  4. Ele atinge o piso

    Depois de mais alguns esquecimentos, o fator de facilidade estaciona em 1,3, o mínimo que o programador SM-2 do Anki permite. Recuperar-se daqui exige muitas revisões perfeitas seguidas.

  5. Ele gira para sempre

    Preso no piso, o intervalo do cartão praticamente não cresce entre as revisões. Ele continua voltando a cada poucos dias indefinidamente: o inferno da facilidade.

Multiplique isso por um baralho de alguns milhares de cartões, o que se acumula já no primeiro ano para um estudante de idiomas, e mesmo uma fração modesta de cartões presos no piso já basta para inflar uma lista de revisões diária a algo insustentável. A solução alternativa do próprio Anki é um recurso chamado leeches (sanguessugas): depois de oito esquecimentos por padrão, um cartão é marcado e suspenso, deixando de aparecer completamente. Isso não é uma solução. É uma admissão de que o algoritmo não consegue salvar o cartão, e o Anki desiste dele em vez disso.

O inferno da facilidade não é um bug. É exatamente o que uma fórmula construída em 1987 deve fazer quando já viu você errar um cartão seis vezes.

Merry Mandarin

Um algoritmo que nunca esteve errado, só nunca foi pessoal

Nada disso é realmente culpa do SM-2, no sentido de um erro. Piotr Wozniak o construiu em 1987 como estudante de bioquímica na Universidade Politécnica de Poznan, afogado em vocabulário e terminologia científica, e começou a rastrear à mão seus próprios padrões de esquecimento para resolver isso. Ele publicou a fórmula abertamente em sua dissertação de mestrado de 1990, “Optimization of Learning”, e é exatamente essa abertura que explica por que ela se espalhou por toda parte: qualquer desenvolvedor de flashcards podia implementá-la sem pagar a ninguém nem inventar nada por conta própria. Por mais de três décadas, aquela única fórmula fixa, com as mesmas penalidades de fator de facilidade aplicadas de forma idêntica a cada cartão e cada pessoa que estuda, foi simplesmente a água em que todo app de repetição espaçada nadava.

O problema que ela nunca foi construída para resolver é a personalização. O SM-2 não tem como saber que você, especificamente, é alguém que aprende um pouco mais devagar mas de forma muito constante, em vez de alguém que realmente não conhece o material. Não tem como saber que um caractere de dois traços e outro de dezoito traços não são igualmente difíceis de lembrar, ou que uma revisão que você acerta com nove dias de atraso é evidência real sobre sua memória, evidência que o algoritmo simplesmente descarta. Ele aplica a mesma penalidade estática, não importa o quê.

O que o FSRS realmente modela de forma diferente

O FSRS, o Free Spaced Repetition Scheduler, existe porque alguém finalmente tratou a memória como algo que vale a pena modelar estatisticamente, em vez de empurrar com porcentagens fixas. A linhagem passa por uma empresa chamada MaiMemo, uma plataforma chinesa de aprendizado de vocabulário, cujo modelo interno de programação acabou sendo uma variante de um referencial acadêmico chamado DSR: difficulty, stability, retrievability (dificuldade, estabilidade, recuperabilidade). Jarrett Ye, um pesquisador de graduação que trabalhava com os dados da MaiMemo, percebeu que um modelo assim não precisava ser ajustado à mão de jeito nenhum. Seus parâmetros podiam ser calibrados diretamente com resultados reais de revisão usando descida de gradiente, a mesma técnica de otimização por trás da maior parte do aprendizado de máquina moderno. Ele publicou os resultados na ACM SIGKDD em agosto de 2022, uma das conferências de pesquisa mais competitivas em mineração de dados, e o resultado de código aberto virou o FSRS.

As três variáveis que ele acompanha por cartão são genuinamente diferentes de um único fator de facilidade. A dificuldade é uma nota de 1 a 10 de o quão intrinsecamente difícil um cartão é. A estabilidade é medida em dias reais: mais especificamente, o número de dias até que sua probabilidade de lembrar aquele cartão seja prevista para cair a 90%. A recuperabilidade é essa própria probabilidade de lembrança, um número real entre 0 e 1, calculado a qualquer momento usando uma curva de esquecimento ajustada aos seus próprios dados em vez de a uma forma presumida. Quando você revisa um cartão bem atrasado e ainda assim acerta, o FSRS trata isso como evidência forte e aumenta a estabilidade de acordo, mas o aumento converge em vez de disparar, então uma única revisão atrasada com sorte não consegue desviar o intervalo de um cartão incorretamente em nenhuma direção.

A versão em uso amplo agora, o FSRS-5, refinou isso ainda mais: adicionou a capacidade de aprender com revisões do mesmo dia em vez de descartá-las, e remodelou a própria curva de esquecimento, o que junto derrubou seu erro de previsão de retenção de cerca de 6,1% para 5,3% em comparação com a versão anterior. Por baixo do capô é um modelo estatístico de verdade com dezessete parâmetros, entregue com valores padrão pré-treinados em milhões de revisões anonimizadas, e depois reajustado ao seu próprio histórico de revisão quanto mais você o usa. Duas pessoas estudando o mesmo baralho de vocabulário chinês acabam com dois conjuntos diferentes de parâmetros, porque, de fato, têm duas memórias diferentes.

SM-2FSRS-5
O que acompanha por cartãoUm fator de facilidade (um multiplicador)Dificuldade, estabilidade, recuperabilidade (um modelo de memória de verdade)
Personalizado para vocêNão, uma fórmula para todo mundoSim, parâmetros ajustados ao seu próprio histórico de revisão
Recuperação após um erroPenalidade assimétrica, pode bater num piso e ficar presaRecalculada a partir dos seus dados reais, sem piso fixo
Publicado1987 (Wozniak, SuperMemo)2022 (Ye et al., ACM SIGKDD)
Adotado pelo AnkiFoi o padrão do Anki por décadas, da era SuperMemo dos anos 1980 até 2023Embutido desde a versão 23.10, 1º de novembro de 2023, hoje o programador que o próprio Anki recomenda

A diferença medida

Isso não é uma melhoria teórica marginal. A maior comparação independente dos dois algoritmos, conduzida pelo grupo de pesquisa open-spaced-repetition em dezenas de milhares de coleções reais do Anki e cerca de 350 milhões de registros de revisão filtrados, descobriu que, na mesma taxa de retenção alvo, o FSRS precisa de significativamente menos revisões totais do que o SM-2 para chegar lá.

20-30% menos revisões para a mesma taxa de retenção alvo, segundo a maior comparação independente de registros reais de revisão do Anki entre FSRS e SM-2

Para quem faz 200 revisões por dia, isso são cerca de 50 revisões por dia recuperadas, não estudando menos, mas graças a um algoritmo que para de pedir para você reconfirmar coisas que já sabe só porque uma fórmula fixa nunca aprendeu a fazer melhor.

Por que construímos sobre o FSRS-5 desde o início

O motor de revisão da Merry Mandarin foi construído sobre o FSRS-5 desde o dia um, não adaptado depois, porque o chinês está perto de ser um cenário do pior caso possível para um fator de facilidade único para todo mundo. O baralho de cartões de um estudante mistura caracteres de dois traços ao lado de outros de dezoito, classificadores comuns ao lado de raros, pares de tons que se tornam triviais assim que o ouvido se ajusta e pares de tons que continuam genuinamente difíceis por um ano. Tratar tudo isso com o mesmo multiplicador estático, e punir um erro num caractere legitimamente difícil exatamente com a mesma dureza que um deslize descuidado num fácil, é precisamente a configuração que produz o inferno da facilidade em grande escala. Um modelo que aprende a dificuldade e a estabilidade reais por cartão, e por pessoa, nunca foi opcional para um idioma tão desigual. Era a única arquitetura com a qual fazia sentido começar.

O resultado prático é discreto, não espetacular: nenhum piso de fator de facilidade para ficar preso, nenhuma pilha de cartões abandonados como leeches, e uma lista de revisões que reflete o que você está realmente esquecendo, em vez do que uma fórmula de 1987 presume que todo mundo esquece no mesmo ritmo. Se você já sentiu aquele pavor específico de uma pilha de flashcards que nunca parece diminuir por mais fielmente que você apareça, esse sentimento tem um nome, um mecanismo e, desde alguns anos atrás, uma solução de verdade.