--- tags: - memory-augmented - decision-trees - associative-memory - classics-revival - experimental license: apache-2.0 library_name: pytorch --- # Memory Forest - The Classics Revival **Associative Memory with Learned Routing Through Decision Trees** **Experimental Research Code** - Functional but unoptimized, expect rough edges ## What Is This? Memory Forest combines decision tree routing with associative hash buckets to create a scalable memory system. Instead of searching all memory linearly, learned decision trees route queries to the most relevant memory buckets. **Core Innovation**: Trees learn to route based on retrieval success, creating adaptive memory organization that gets better over time. ## Architecture Highlights - **Learned Routing**: Decision trees adapt based on retrieval performance - **Associative Storage**: Hash buckets with similarity-based clustering - **Ensemble Retrieval**: Multiple trees vote on best memories - **Eviction Policies**: Automatic memory management - **Scalable Design**: O(log n) routing instead of O(n) search ## Quick Start ```python from memory_forest import MemoryForest # Create memory system forest = MemoryForest( input_dim=64, num_trees=3, max_depth=4, bucket_size=32 ) # Store some memories features = torch.randn(100, 64) forest.store(features) # Retrieve similar items query = torch.randn(5, 64) results = forest.retrieve(query, top_k=3) ``` ## Current Status - **Working**: Hierarchical storage, associative clustering, tree routing, ensemble retrieval - **Rough Edges**: Adaptive learning can be overly aggressive, bucket utilization optimization needed - **Still Missing**: Learning rate scheduling, advanced eviction policies, distributed routing - **Performance**: Excellent retrieval quality (0.95+ similarity), needs learning component tuning - **Memory Usage**: Not optimized, expect high RAM usage - **Speed**: Baseline implementation, significant optimization possible ## Mathematical Foundation The decision trees learn routing functions f: R^d -> {0,1,...,B-1} where B is the number of buckets. Trees update based on retrieval success using simple gradient-free optimization: ```python success_rate = retrieved_similarity / max_possible_similarity tree_update ∝ success_rate * path_taken ``` Associative buckets use learnable hash functions with Hebbian-style updates for similarity clustering. ## Research Applications - **Large-scale retrieval systems** - **Adaptive memory architectures** - **Decision tree optimization** - **Associative memory research** - **Hierarchical clustering** ## Installation ``` python pip install torch numpy # Download memory_forest.py from this repo ``` ## The Classics Revival Collection Memory Forest is part of a larger exploration of foundational algorithms enhanced with modern neural techniques: - Evolutionary Turing Machine - Hebbian Bloom Filter - Hopfield Decision Graph - Liquid Bayes Chain - Liquid State Space Model - ** Memory Forest** ← You are here ## Citation ```bibtex @misc{memoryforest2025, title={Memory Forest: Associative Memory with Learned Routing}, author={Jae Parker 𓅸 1990two}, year={2025}, note={Part of The Classics Revival Collection} }