What is HDC?
An algebra over very wide vectors
Hyperdimensional computing (HDC) represents a concept (a phrase, a number, a list, or a whole record) as high-dimensional "hypervectors" with thousands of dimensions, and provides an elegant, yet simple algebra to operate over these hypervectors. Any two hypervectors drawn at random are near-orthogonal, so you can encode rich information in a single hypervector. The three operations below are the core of HDC's algebra.
01 Bundling: Superposition
Adding hypervectors together where the sum remains similar to each of its inputs. A point, record, or context becomes a single hypervector that can be stored, retrieved, and compared to other hypervectors.
- Written as A ⊕ B
- The whole stays close to every part
- Capacity degrades gradually, not all at once
02 Binding: Association
Multiply two hypervectors and the result is dissimilar to either input. The operation is its own inverse, so binding a role to a value makes a pair that can be unbound to recover the originals.
- Written as A ⊗ B
- Key–value pairs inside a flat hypervector
- Unbind to recover what went in
03 Permutation: Ordering
Rotate a hypervector's components, making it dissimilar to the original. Apply it n times and you have an encoded position, allowing sequences and paths to live in the same space as everything else.
- Written as ρ(A)
- Sequences, n-grams, and events
- One space, one set of operations