The Deese–Roediger–McDermott (DRM) paradigm is fascinating.
The procedure typically involves the oral presentation of a list of related words (e.g. bed, rest, awake, tired, dream, wake, snooze, blanket, doze, slumber, snore, nap, peace, yawn, drowsy) and then requires the subject to remember as many words from the list as possible. Typical results show that subjects recall a related but nonpresented word (e.g. sleep), known as a ‘lure’, with the same frequency as other presented words. When subjects are asked about their experience after the test, about half of all participants report that they are sure that they remember hearing the nonpresented word, indicating a false memory – memory for an event that never occurred.
The fact that this creates a false memory is interesting. But even more interesting is how we get to this point. By presenting a lot of words semantically similar, we can activate a word at the center of the semantic category.
This has to do with the way the brain store concepts. Jeff Hawkins explains what SDRs are in this video.
The part about Union membership is at 25m 4s in the video.
You can create a union of many SDRs
Rs by creating a representation
U in which all the bits of all the SDRs are active.
To check if a new SDR
A is present in the initial set
Rs forming the union
U, we can just check if each bit
A is present in
U. If each bit is present,
A was part of
Rs. If we find a bit of
not present in
A was not part of
The only case where this fails is if some bits of
A belong to one SDR
Rs, and some other bits to another one SDR
Rs. (there could be more, but there are at least two).
Then, by chance, the union of
R1 is enough to cover all the bits of
In fact, this is exactly what happens in the DRM experiment: by enumerating words all linked to sleep, we increase the
likelihood that all the bits of the “sleep” (A) concept are on. So that when we “OR” the bits of all the words (Rs), all
the bits of “sleep” end up activated. Only a small fraction of the bits of “sleep” might be activated by each word.
Because the list is too long, it doesn’t fit into working memory, so the brain has to use this “OR”ing mechanism to see of the word was in the original list when asked. If the list was shorter, eg 3 words, all words could be independently remembered and this trick wouldn’t work.
This mechanism is also the same principle behind a bloom filter. The
only difference is that a bloom filter uses arbitrary hash functions. Whereas SDRs (at least the HTM flavor) and the brain
use semantic hashes. If you knew how to collide the arbitrary hashes, you could make the bloom filters fail in much
the same way: lets say you want your bloom filter to hallucinate the set membership of element
L not present in the set.
Land get its bits
- Get the first half
- Find an element
L, such that when hashed, contains all
- Get the last half
- Find an element
L, such that when hash, contains all
Einto the bloom filter
Finto the bloom filter
(*1) You can do that because, as hypothesized, you know how your hash function behave.
Now your bloom filter thinks that
L has been inserted. (Or a human that thinks that sleep is in the list).