Creating Intelligence - A Computational Foundation for AGI

So if a “conceptual machine” implemented as a hypergraph wasn’t using SDRs at all, does SHR encoding (as a random sequence of numbers) has any merits above a single integer ID (aka token) encoding? Each node has its own ID and a hyperedge is a list of adjacent node IDs. What operations that can be performed with nodes as SHRs are unavailable when encoding node identity as a single, unique integer?

As advantages of integers I can think of: no limits in number of nodes, no room for ambiguity, simple storage/indexing/retrieval by node, potential for leveraging classical data structures for massive sets e.g. ordered trees, SQL, hashtables. “Similarity” between edges is simply the list of common node IDs

The combination of SHRs and associative memory has some unique properties that
you can’t easily replicate with conventional methods.

  • efficient exact nearest-neighbor search in constant time (independent of the dataset size)

  • subset pattern matching (LSH cannot do that)

  • separate inputs can blend in memory to form new composite associations

  • no local or global preprocessing, hash sets, or inverted indices - the system can
    learn continuously while running

  • knowledge graph traversal operating on superpositions, instead of isolated nodes

  • robustness to noise and signal degradation

  • potential for in-memory computation

  • biological plausibility

Thanks. I still have a couple questions:

  • How do “concepts” (for lack of other name) in a knowledge graph pop-up into existence? This is a thing that bugs me about any knowledge graph approach not only yours. How does the “brain” of the model figures out that given some stream of new experiences something within that stream cues it that it is worth inventing a new concept to be mapped onto the global knowledge (symbolic) map.
  • How does these architectural decisions scale, by that I mean how large do the vector spaces and number of active bits need to be? Have any hunch/intuition what would it take to reach e.g. a GPT-2 level text prediction.

These are great questions to ask.

To build a small language model, we need to figure out the concrete representation of knowledge and language, based on these building blocks.

Then experiment with circuit architectures that simulate human learning - from working/short-term memory via episodic to long-term memory. This should involve multiple memory components, rather than one monolithic associative memory. (One component can easily store 10 million associations, so this should scale well.)

The pipeline could be connected to an HTM-like system that creates stable high-level representations (SHRs) from lower-level inputs.

A key question: are knowledge and language processed centrally, or distributed across competing units performing the same task (the “thousand brains” design pattern). Any insights here?

Good questions from cezar_t, and your direction is interesting. I have been working on a related problem from a different angle (hypothesis-centered lifelong learning with neuromodulatory control, SQLite substrate, no GPU). A few notes that might help, especially on concept formation and scale.

How concepts show up

In pure associative memory, “a new concept appears” often means a new stable attractor or a dense enough cluster of associations. That can work for binding and recall, but it does not answer when something is worth promoting onto a global symbolic map.

What we found in practice: you need an explicit intermediate layer between raw experience and committed knowledge. In our system that layer is context hypotheses. They are cheap, revisable, and not yet facts or graph nodes. Promotion only happens after repeated evidence, consolidation (including sleep or replay-style passes), and a critic or gate. Most hypotheses never graduate. That is intentional.

So the “brain” does not invent a concept because a stream looks novel. It accumulates candidates under uncertainty, lets them compete under consolidation pressure, and only then allows a small commit. Without that, continuous learning fills the store with blends and composites that feel rich but do not stay usable as discrete concepts.

Blending separate inputs into composite associations is a real strength of your setup. For language-level concepts you still need a selection story: what survives, what merges, what gets discarded, and under what budget. Capacity alone does not do that.

Scaling toward something like GPT-2 level prediction

I would not bet on “one associative memory, just bigger vectors and more active bits” as the main scaling path. One component storing millions of associations is fine for episodic or binding memory. Predictive language use needs competing pathways, staged memory (working → episodic → longer-term), and a way to keep the write surface narrow so noise does not become structure.

Rough intuition from our side:

• Vector width and sparse active bits set binding capacity and noise tolerance.

• They do not set abstraction quality.

• Abstraction quality tracks how hard graduation is, how consolidation is scheduled, and whether the system has an external complexity source (corpus, interaction, structured input). Empty self-play on a tiny seed does not bootstrap arbitrary capability.

For text prediction specifically, you probably want:

1. Stable high-level codes from something HTM-like or equivalent (your SHR path).

2. Associative memory for binding and fast exact-ish retrieval.

3. A symbolic or quasi-symbolic layer that only accepts highly selected structure (lexicon, relations, constructions), not every composite the memory can form.

4. Multiple memory components with different timescales, not one monolith.

On central vs thousand-brains: distributed competing units help with robustness and specialization. You still want a thin global commit path, or the “concepts” never become shareable across units. We keep productive fact and relation writes locked until the candidate flow is proven stable. That is painful early on and very useful later.

Where your unique properties still matter

Constant-time exact neighbor behavior, subset pattern matching, continuous learning without heavy index rebuilds, and superposition traversal are real advantages over bog-standard ANN plus inverted indices. I would keep those as the memory substrate, and put concept formation in a gated pipeline above them rather than expecting the memory itself to decide what is a concept.

Yeah, it’s all clustering, implicit or explicit. All learning is compression, and all compression is clustering: cluster-level representation is compressed element-level representations. The only question is how fuzzy vs. sparse these clusters (higher-level nodes) are. They are fully fuzzy in fully-connected NNs, more sparse (at least vertically) in local learning.
My scheme is on the far end of local: an indefinitely nested hierarchy of derivativion and composition. GitHub - boris-kz/CogAlg: This project is a Computer Vision implementation of general hierarchical pattern discovery principles introduced in README · GitHub

This may be true for ML (your work).

But turning the discussion back to knowledge and reasoning: When learning semantic triples or role/filler relations, compression or clustering would just generate hallucinations.

The models I’m exploring take the opposite direction: expanding representations, redundantly duplicating information (the many-brains approach), and using consensus voting (kWTA) for
inference.

Oh, I create alternative representations all the time, in both cross-comparison and clustering forks.
But each is separately evaluated by the degree to which it compresses the input. Then we have to prune the weakest representations to reduce redundancy.
That’s an expansion-compression cycle, and the ultimate selection criterion is still compression.

1 Like

Both mechanisms are real, but they fix different problems.

Clustering or compression fits a lot of perceptual and hierarchical learning: higher-level nodes as compressed lower-level structure. For semantic triples and role/filler relations that is dangerous. Early compression merges accidental co-occurrence into fluent false relations. So “all learning is compression” is too strong once you care about controllable knowledge.

Redundant expansion with consensus voting helps the other side: brittle single representations and premature winners. Many copies plus kWTA-style agreement can make binding more robust. Expansion alone still does not decide what is worth committing. You can duplicate noise as easily as signal, and consensus can lock in a confident mistake.

The useful split is stages, not camps. Form candidates cheaply with local or hierarchical structure. Keep alternatives alive with redundancy and competition. Only then allow a narrow commit path into the knowledge map, driven by repeated evidence, contradiction checks, and a budget so most candidates never promote. Hallucinated triples show up when that last step is missing or when compression is allowed to write global structure directly.

So not compression versus expansion. The hard part is the interface: when a cluster or a vote becomes a revisable hypothesis, and when a hypothesis becomes a fact.

yes, that’s a compression eval I mentioned above.

But it’s not a fact, just a working hypothesis.

the only facts we have is the raw input