Hebbian Bloom Filter - The Classics Revival
Self-Organizing Probabilistic Memory with Associative Learning
Experimental Research Code - Functional but unoptimized, expect rough edges
What Is This?
Hebbian Bloom Filter combines probabilistic membership testing with Hebbian-style associative learning. Instead of static hash functions, the filter learns associations between items and adapts its hash patterns based on co-occurrence, creating a self-organizing memory system.
Core Innovation: Hash functions that strengthen based on item associations using Hebbian "fire together, wire together" principles, enabling similarity-based retrieval beyond simple membership testing.
Architecture Highlights
- Learnable Hash Functions: Neural networks that adapt based on item co-occurrence
- Hebbian Plasticity: Hash weights strengthen when items appear together
- Associative Retrieval: Find similar items through learned co-activation patterns
- Confidence Estimation: Probabilistic membership with uncertainty quantification
- Temporal Decay: Forgetting mechanisms prevent overfitting to old patterns
- Ensemble Filtering: Multiple filters vote for robust membership decisions
Quick Start
from hebbian_bloom import AssociativeHebbianBloomSystem
# Create self-organizing memory system
system = AssociativeHebbianBloomSystem(
capacity=10000,
vector_dim=64,
num_filters=3
)
# Add items with associations
system.add_item("apple", associated_items=["red", "fruit", "healthy"])
system.add_item("banana", associated_items=["yellow", "fruit", "potassium"])
# Query membership with confidence
is_member = system.query_item("apple")
# Find associative memories
similar = system.find_associations("fruit", top_k=5)
Current Status
- Working: Hebbian learning, associative retrieval, confidence estimation, ensemble voting, temporal decay
- Rough Edges: No benchmarking against standard Bloom filters, hash collision handling could be improved
- Still Missing: Advanced forgetting policies, distributed storage, memory compression techniques
- Performance: Functional on medium datasets, needs optimization for large-scale deployment
- Memory Usage: Higher than standard Bloom filters due to learning components
- Speed: Competitive for retrieval, slower for complex association queries
Mathematical Foundation
The Hebbian learning rule updates hash function weights based on co-activation:
Δw_ij = η × h_i(x) × h_j(y) × similarity(x, y)
Where h_i(x)
and h_j(y)
are hash activations for co-occurring items x
and y
.
Confidence estimation combines:
- Bit confidence:
C_bit = mean(confidence_array[indices])
- Hash confidence:
C_hash = mean(hash_activation_strengths)
- Access confidence:
C_access = normalized_access_frequency
Final confidence: C_total = α×C_bit + β×C_hash + γ×C_access
Research Applications
- Large-scale similarity search systems
- Adaptive caching with learned associations
- Memory-augmented recommendation systems
- Biologically-inspired information retrieval
- Self-organizing knowledge bases
Installation
pip install torch numpy
# Download hebbian_bloom.py from this repo
The Classics Revival Collection
Hebbian Bloom Filter is part of a larger exploration of foundational algorithms enhanced with modern neural techniques:
- Evolutionary Turing Machine
- Hebbian Bloom Filter ← You are here
- Hopfield Decision Graph
- Liquid Bayes Chain
- Liquid State Space Model
- Möbius Markov Chain
- Memory Forest
Citation
@misc{hebbianbloom2025,
title={Hebbian Bloom Filter: Self-Organizing Probabilistic Memory},
author={Jae Parker 𓅸 1990two},
year={2025},
note={Part of The Classics Revival Collection}
}