VSA Models¶
The bayes_hdc.vsa module provides Vector Symbolic Architecture model implementations.
All models share the same API: bind, bundle, inverse, similarity, random.
Base Class¶
- class bayes_hdc.vsa.VSAModel(name, dimensions)[source]¶
Bases:
objectBase class for VSA models defining the interface.
- bundle(vectors, axis=0)[source]¶
Bundle multiple hypervectors.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute similarity between hypervectors.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Binary Spatter Codes¶
- class bayes_hdc.vsa.BSC(name, dimensions)[source]¶
Bases:
VSAModelBinary Spatter Codes (BSC).
Binary hypervectors with XOR binding, majority bundling, Hamming similarity. Originally introduced by Kanerva (1997) as the Spatter Code; the BSC acronym was retro-fitted by the modern HDC literature (Kleyko et al. 2023 Part I §2.3.6). The canonical introduction to the operations is Kanerva (2009).
References: Kanerva, P. (1997). Fully Distributed Representation. In Proc. RWC ‘97, pp. 358-365. Kanerva, P. (2009). Hyperdimensional Computing: An Introduction. Cognitive Computation 1(2): 139-159.
- bundle(vectors, axis=0)[source]¶
Bundle using majority rule.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute Hamming similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Multiply-Add-Permute¶
- class bayes_hdc.vsa.MAP(name, dimensions)[source]¶
Bases:
VSAModelMultiply-Add-Permute (MAP) coding.
Real-valued vectors with element-wise multiply binding, normalized sum bundling, cosine similarity. The MAP scheme was introduced by Gayler (1998) and is the running example in Gayler (2003) where the term “Vector Symbolic Architecture” itself is coined.
References: Gayler, R. W. (1998). Multiplicative binding, representation operators and analogy. In K. Holyoak, D. Gentner, B. Kokinov (eds.), Advances in Analogy Research, pp. 1-4. New Bulgarian University Press. Gayler, R. W. (2003). Vector Symbolic Architectures answer Jackendoff’s challenges for cognitive neuroscience. arXiv:cs/0412059.
- bind(x, y)[source]¶
Bind using element-wise multiplication.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using normalized sum.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute cosine similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Holographic Reduced Representations¶
- class bayes_hdc.vsa.HRR(name, dimensions)[source]¶
Bases:
VSAModelHolographic Reduced Representations (HRR).
Real-valued vectors with circular convolution binding, normalized sum bundling, cosine similarity. HRR was introduced by Plate (1995, IEEE TNN) as a fixed-dimensional alternative to Smolensky’s tensor-product binding; the book-length treatment is Plate (2003). Circular convolution is the canonical single-argument shift-equivariant bilinear operator on R^d (see
bayes_hdc.equivariance).References: Plate, T. A. (1995). Holographic Reduced Representations. IEEE Transactions on Neural Networks 6(3): 623-641. Plate, T. A. (2003). Holographic Reduced Representation: Distributed Representation for Cognitive Structures. CSLI Publications.
- bind(x, y)[source]¶
Bind using circular convolution.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using normalized sum.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute cosine similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Fourier HRR¶
- class bayes_hdc.vsa.FHRR(name, dimensions)[source]¶
Bases:
VSAModelFourier Holographic Reduced Representations (FHRR).
Complex-valued unit-phasor vectors with element-wise multiply binding, normalized sum bundling. FHRR was introduced by Plate (1994/2003) as the frequency-domain dual of HRR: circular convolution in the spatial domain becomes element-wise complex multiplication in the Fourier domain.
References: Plate, T. A. (2003). Holographic Reduced Representation: Distributed Representation for Cognitive Structures. CSLI Publications. (FHRR is treated alongside HRR; see chapters on the Fourier-domain formulation.)
- bind(x, y)[source]¶
Bind using element-wise multiplication.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using normalized sum.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute cosine similarity of complex vectors.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Binary Sparse Block Codes¶
- class bayes_hdc.vsa.BSBC(name, dimensions, block_size=100, k_active=5)[source]¶
Bases:
VSAModelBinary Sparse Block Codes (B-SBC).
Block-sparse binary vectors with k_active ones per block, XOR binding, majority bundling. The BSC operations carry over directly (Kanerva 1997); the sparse-block construction follows the line traced in Kleyko et al. (2023) Part I §2.3.7 (sparse binary HDC family).
References: Kanerva, P. (1997). Fully Distributed Representation. In Proc. RWC ‘97, pp. 358-365. Kleyko, D., Rachkovskij, D. A., Osipov, E., Rahimi, A. (2023). A Survey on HDC aka VSA, Part I. ACM Computing Surveys 55(6).
- bind(x, y)[source]¶
Bind using XOR (same as BSC).
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using majority rule.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute Hamming similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Cyclic Group Representation¶
- class bayes_hdc.vsa.CGR(name, dimensions, q=8)[source]¶
Bases:
VSAModelCyclic Group Representation (CGR).
Integer hypervectors in Z_q with modular addition binding, component-wise mode bundling.
- bundle(vectors, axis=0)[source]¶
Bundle using component-wise mode.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute fraction of matching elements.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Modular Composite Representation¶
- class bayes_hdc.vsa.MCR(name, dimensions, q=64)[source]¶
Bases:
VSAModelModular Composite Representation (MCR).
Integer phase vectors with modular addition binding, phasor sum bundling.
- bind(x, y)[source]¶
Bind using modular addition (phase addition).
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using phasor sum with snap-to-grid.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- inverse(x)[source]¶
Inverse via modular negation (phase conjugate).
- Parameters:
x (Array)
- Return type:
Array
- similarity(x, y)[source]¶
Compute phasor similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
Vector-Derived Transformation Binding¶
- class bayes_hdc.vsa.VTB(name, dimensions)[source]¶
Bases:
VSAModelVector-Derived Transformation Binding (VTB).
Real-valued vectors with matrix multiplication binding, normalized sum bundling.
- bind(x, y)[source]¶
Bind using matrix multiplication.
- Parameters:
x (Array)
y (Array)
- Return type:
Array
- bundle(vectors, axis=0)[source]¶
Bundle using normalized sum.
- Parameters:
vectors (Array)
axis (int)
- Return type:
Array
- similarity(x, y)[source]¶
Compute cosine similarity.
- Parameters:
x (Array)
y (Array)
- Return type:
Array