Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

SectionDescription
Live demoParse a sentence in your browser — the decoder compiled to WebAssembly
IntroductionThis project at a glance
TrainingBuilding language models
DecodingViterbi retrieval under a beam
EvaluationsHeld-out quality, speed, and footprint
DiscussionsDiscussions, improvements, capacity, etc.
Last change: , commit: fa79151