The decay-and-rehearsal model from the lecture (Lewandowsky & Farrell, chapter 2), with word length setting how long each rehearsal takes. Change parameters and architecture, then compare the predictions with the class data.
One run of the model for a single list, with the decay noise switched off so every number can be followed by hand. Each row is one rehearsal: the outlined cell is the word being rehearsed, then all activations decay by the time that rehearsal took. Hatched cells are forgotten words.
The lecture's R code, changed in one place: the time per word now comes from word length instead of speech rate. Compare this with the code your LLM wrote.
nReps <- 1000 # replications per word length
listLength <- 5 # words per list
initAct <- 1 # activation after presentation or rehearsal
decRate <- .8 # mean decay rate (per second) free parameter
decSD <- .1 # SD of decay rate across lists free parameter (noisy architecture)
delay <- 5 # retention interval (seconds)
minAct <- 0 # recall threshold
tSyllable <- .2 # seconds to rehearse one syllable
wordLengths <- 1:7 # syllables per word
pCor <- rep(0, length(wordLengths))
for (i in seq_along(wordLengths)) {
tPerWord <- wordLengths[i] * tSyllable # long words take longer to rehearse
for (rep in 1:nReps) {
actVals <- rep(initAct, listLength)
dRate <- decRate + rnorm(1, 0, decSD) # one decay rate per list
cT <- 0; itemReh <- 0
while (cT < delay) {
intact <- which(actVals > minAct)
itemReh <- intact[which(intact > itemReh)[1]] # next word still in memory
if (is.na(itemReh)) itemReh <- 1 # back to the start of the list
actVals[itemReh] <- initAct # rehearsal restores the word
actVals <- actVals - dRate * tPerWord # everything decays
cT <- cT + tPerWord
}
pCor[i] <- pCor[i] + sum(actVals > minAct) / listLength
}
}
plot(wordLengths, pCor / nReps, ylim = c(0, 1), xlab = "Word length (syllables)", ylab = "Proportion recalled")
A detail worth discussing: when the loop returns to the start of the list, the lecture's code rehearses word 1 even if it was already forgotten, so word 1 can come back. The JavaScript version on the lecture slide skips forgotten words instead. Two reasonable readings of the same story, and they can predict different numbers. This simulator follows the R code.