Why similarity is not memory (Foundations, part 1)
Part 1 of Foundations — a series on the ideas behind CleverMemory, where they came from, and why each one matters.
The standard way to give an AI "memory" today is vector search. Embed your documents, embed the question, return the nearest neighbors. And honestly? It works great — for what it actually does. What it actually does is discovery. "Find me stuff that feels related to this" is a similarity question, and embeddings answer it brilliantly. Full credit to that whole lineage, from the distributional hypothesis (Harris, Firth — "you shall know a word by the company it keeps") through word2vec to modern encoders. Real breakthrough, genuinely useful.
But here's the thing. Ask a memory question — "when does my contract renew?" — and similarity is the wrong tool wearing the right costume.
Three things similarity can't see
An embedding is a lossy squish into a space where nearby means related. Three things get squished out, and they're exactly the things memory exists for:
Identity. "The renewal date is March 3rd" and "the renewal date is not March 3rd" are nearly identical strings, so they're nearly identical vectors. Similarity sees family resemblance. Memory needs to see contradiction.
Direction. "Alice reports to Bob" and "Bob reports to Alice" — same bag of words, same neighborhood in vector space. The direction of that edge is the entire fact, and it's gone.
Absence. This one bugs me the most. Vector search physically cannot say "I don't have that." It returns the nearest neighbor no matter how far away the nearest neighbor is. There's no distance where it says no. And a memory that can't say no will eventually say something false — confidently.
So what do we do instead?
We take the older, harder road: turn language into actual structure. Entities resolved to identities. Relations with direction. Negation and time as real, first-class marks. Then answer questions by matching that structure exactly. "Who reports to Bob?" either finds a proven reports-to edge arriving at Bob, or it doesn't — and either way, you get told the truth.
To be clear, this isn't anti-embeddings. It's a division of labor. Similarity is great for finding candidate places to look, and for the fuzzy associative stuff language models do natively. Exactness is what you need the moment somebody's going to act on the answer. Most of the confident-nonsense problem of the last few years comes from one mistake: asking the similarity tool to do the exactness job.
The rest of this series digs into what "meaning as structure" takes seriously: what a question really is (part 2), the math of honestly saying "I don't know" (part 3), events and roles (part 4), the word "might" (part 5), time (part 6), citations as algebra (part 7), and the public data that makes all of it possible (part 8).
One sentence for the whole project: memory should be the part of an AI system that never guesses.