Dependency Parser
Everything in this book so far — Sparkles, composites, learners, pools, near-neighbor search — was built for a purpose: a demonstration that VSA can offer a unique and novel perspective in cognitive computing / AI.
This chapter serves that purpose: a dependency parser in which the entire language model is a hypervector substrate.
Unlike traditional NLP with heavy reliance on explicit frequency tables, and unlike neural networks where gradients are computed via backpropagation, our training/inference features:
- A transparent representation of the underlying language models that encourages inspection and enables incremental improvements;
- The language models are generic in the sense that new languages can be added without idiosyncrasy or much tweaking;
- An efficient representation far more compact than existing models, see Evaluations;
- An efficient computation with mostly binary operations, no need for floating-point computations or expensive GPUs.
Wernicke’s area in the brain is widely hypothesized to host the generic neural circuitry for language understanding: the solution I hope to present here will be the computational counterpart of it.
For readers new to this topic (or to this project), the best starting point is my paper, Cognitive modeling and learning with sparse binary hypervectors (full citation in the introduction): it lays the foundation — sparse binary hypervectors and their operators — that everything in this chapter builds on.
The project is divided into the following pages:
| Section | Description |
|---|---|
| Live demo | Parse a sentence in your browser — the decoder compiled to WebAssembly |
| Introduction | This project at a glance |
| Training | Building language models |
| Decoding | Viterbi retrieval under a beam |
| Evaluations | Held-out quality, speed, and footprint |
| Discussions | Discussions, improvements, capacity, etc. |