|
|
--- |
|
|
tags: |
|
|
- bloom-filters |
|
|
- hebbian-learning |
|
|
- associative-memory |
|
|
- classics-revival |
|
|
- experimental |
|
|
license: apache-2.0 |
|
|
library_name: pytorch |
|
|
--- |
|
|
|
|
|
# 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 |
|
|
```python |
|
|
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 |
|
|
```bash |
|
|
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 |
|
|
```bibtex |
|
|
@misc{hebbianbloom2025, |
|
|
title={Hebbian Bloom Filter: Self-Organizing Probabilistic Memory}, |
|
|
author={Jae Parker 𓅸 1990two}, |
|
|
year={2025}, |
|
|
note={Part of The Classics Revival Collection} |
|
|
} |
|
|
``` |