Vector Databases

The core function of a vector database is to move beyond the exact-match paradigm of traditional keyword-based search and enable conceptual, meaning-based retrieval, often referred to as semantic search. Conventional search systems operate on lexical matching, retrieving documents that contain the exact query terms. This approach is inherently limited, as it struggles with synonyms (e.g., "cellphone" vs. "smartphone"), context, and semantic ambiguity. Vector search, by contrast, represents both queries and data as points in a high-dimensional geometric space. Proximity in this space corresponds to semantic similarity, allowing a query for "comfortable running shoes" to retrieve relevant items described as "jogging sneakers" or "athletic footwear," even if the exact keywords do not overlap.
The emergence of vector databases is a direct response to two parallel technological shifts: the exponential growth of unstructured data and the concurrent advancements in artificial intelligence, particularly deep learning. Deep learning models, such as transformers for text or convolutional neural networks for images, serve as powerful "embedding models" that can transform raw, unstructured data into dense, meaningful vector representations. These embeddings capture the latent features and semantic relationships within the data, making them amenable to mathematical comparison. Vector databases provide the critical infrastructure to manage these embeddings at scale, making them a foundational component of modern AI applications.
The transition from standalone Approximate Nearest Neighbor (ANN) search algorithms to fully-fledged Vector Database Management Systems (VDBMS) marks a significant maturation of the field. Early research and libraries focused almost exclusively on the algorithmic problem of efficiently finding nearest neighbors in a static dataset, prioritizing the trade-off between search speed and accuracy. However, the industrial-scale adoption of vector search, particularly driven by LLMs, introduced a host of traditional database requirements. This "database-ification" of vector search extends beyond simple retrieval to include comprehensive data management functionalities such as CRUD (Create, Read, Update, Delete) operations, metadata filtering, transactional support, scalability, fault tolerance, and security. A modern VDBMS is therefore not merely an implementation of an ANN algorithm but a complete system that addresses the entire data lifecycle, integrating principles from decades of database systems research to provide a reliable and manageable service for AI applications.
Table of Contents
- Historical Foundations of Vector-Based Information Retrieval
- The Vector Space Model (VSM)
- Term Weighting and Similarity Measurement
- The Curse of Dimensionality
- The Evolution of High-Dimensional Indexing Algorithms
- Space-Partitioning Trees
- Hashing-Based Methods
- Clustering-Based Methods
- Quantization-Based Methods
- Proximity Graph-Based Methods
- Architecture of Modern Vector Database Management Systems (VDBMS)
- Core Architectural Components
- Similarity Metrics in Practice
- Filtered Approximate Nearest Neighbor Search (FANNS)
- Vector Databases in the Era of Large Language Models
- From Unstructured Data to Vector Embeddings
- Retrieval-Augmented Generation (RAG)
- Advanced Applications
- Conclusion
- Sources
Historical Foundations of Vector-Based Information Retrieval
The principles underlying modern vector databases are rooted in decades of research in the field of Information Retrieval (IR). The journey began with the conceptualization of representing textual information geometrically, a paradigm that created both a powerful abstraction for meaning and a formidable computational challenge that would drive innovation for years to come.
The Vector Space Model (VSM)
The conceptual origin of representing documents as vectors is largely credited to Gerard Salton and his work on the SMART (System for the Mechanical Analysis and Retrieval of Text) Information Retrieval System in the 1960s and 1970s. The Vector Space Model (VSM) proposed that documents and user queries could be represented as vectors in a high-dimensional space, where each dimension corresponds to a unique term (word) in the collection's vocabulary. The position of a document's vector in this space is determined by the terms it contains.
While Salton is widely recognized as the father of Information Retrieval, the formal articulation of the VSM as a comprehensive model evolved over a considerable period. A frequently cited 1975 overview paper titled "A Vector Space Model for Information Retrieval" does not actually exist; this citation is a conflation of two separate articles from that year. The seminal publication that formally presented the model is "A Vector Space Model for Automatic Indexing" [1] by Salton, Wong, and Yang, published in Communications of the ACM in 1975, which demonstrated the use of term vectors for automatic indexing and retrieval.
Term Weighting and Similarity Measurement
For the VSM to be effective, the components of each vector must be weighted to reflect the relative importance of each term. A simple binary (presence/absence) or raw term frequency count is insufficient. The breakthrough was the development of the Term Frequency-Inverse Document Frequency (TF-IDF) [2] weighting scheme. TF-IDF assigns a higher weight to terms that appear frequently within a specific document (high term frequency) but are rare across the entire collection of documents (high inverse document frequency). This captures the intuitive notion that discriminative terms are more indicative of a document's content than common words.
With documents and queries represented as TF-IDF weighted vectors, their similarity can be computed geometrically. The most common and effective metric for this purpose is Cosine Similarity. This metric measures the cosine of the angle between two vectors, effectively quantifying their orientation in the vector space. Its key advantage is its independence from vector magnitude, which in the context of text means it is not biased by document length. Two documents with similar content but different lengths will have vectors pointing in a similar direction, resulting in a high cosine similarity score. The formula is given by:
where and are the vectors, is their dot product, and and are their magnitudes.5 A value of 1 indicates identical direction, 0 indicates orthogonality (no relation), and -1 indicates opposite directions.
The Curse of Dimensionality
The VSM provided a powerful and elegant mathematical abstraction for representing semantic content. However, implementing this model at scale presented a fundamental computational barrier known as the curse of dimensionality. The term was coined by Richard E. Bellman in the 1950s [3] while working on problems in dynamic programming.
The core concept is that as the number of dimensions () increases, the volume of the space grows exponentially. Consequently, a fixed number of data points become increasingly sparse, rendering the concept of a nearby neighbor less meaningful. In high-dimensional spaces, the distances between a given query point and its nearest and farthest neighbors can converge to be almost indistinguishable. This phenomenon has severe implications for any indexing structure that relies on spatial partitioning. Traditional multi-dimensional data structures, such as R-trees or B-trees, which work efficiently in two or three dimensions, see their performance degrade rapidly as dimensionality grows. Their search procedures are forced to inspect an exponentially increasing number of partitions, eventually performing no better than a simple sequential scan of the entire dataset for dimensions greater than approximately ten.
This created a symbiotic tension that defined the next several decades of research. The VSM offered a theoretically sound way to represent meaning, but the curse of dimensionality made its direct, exact implementation computationally intractable for large datasets. This gap between an expressive representation and a feasible computation established the necessity for a new class of algorithms dedicated to finding an approximate nearest neighbor, sacrificing perfect accuracy for the speed and scalability required to make vector-based retrieval practical.
The Evolution of High-Dimensional Indexing Algorithms
To overcome the curse of dimensionality, the research community shifted its focus from exact nearest neighbor search to Approximate Nearest Neighbor (ANN) search. ANN algorithms aim to find points that are close enough to the true nearest neighbors, trading a small, often imperceptible, amount of accuracy for orders-of-magnitude improvements in search latency and computational cost. This evolution has produced several distinct families of algorithms.
Space-Partitioning Trees
Early approaches to multi-dimensional indexing extended the concept of binary search trees by recursively partitioning the vector space.
k-d Trees
The k-d tree (k-dimensional tree) was introduced by Jon Louis Bentley in a 1975 paper in Communications of the ACM [4]. It is a binary tree that partitions the space by creating splits along axis-aligned hyperplanes, cycling through the dimensions at each level of the tree. For nearest neighbor search, the tree is traversed, and branches that cannot possibly contain a closer point than the one already found are pruned. While k-d trees are efficient for low-dimensional data, with an average query time of , their performance degrades severely in high-dimensional spaces. The search algorithm is forced to explore a large fraction of the tree's branches, making it less efficient than a linear scan.
Ball Trees
As an alternative to the axis-aligned partitions of k-d trees, ball trees partition data into a nested set of hyperspheres, or balls. Each node in the tree defines the minimum bounding ball that contains all data points in its subtree. This structure can be more efficient for data distributions that are not aligned with the coordinate axes. The seminal work on this structure is often attributed to Stephen Omohundro's 1989 technical report [5], which analyzed several construction algorithms. Despite their different partitioning strategy, ball trees also suffer from the curse of dimensionality and are generally not effective for the very high dimensions seen in modern embeddings.
Hashing-Based Methods
A significant paradigm shift came with the introduction of probabilistic methods that abandoned deterministic space partitioning.
Locality-Sensitive Hashing (LSH)
LSH was introduced by Piotr Indyk and Rajeev Motwani in their seminal 1998 paper at the ACM Symposium on Theory of Computing (STOC) [6]. The core idea is to use a family of hash functions with the property that similar input items are more likely to be mapped to the same hash bucket than dissimilar items. The probability of collision is a direct function of the similarity between two points. To perform a search, the system hashes the query vector multiple times using different hash functions and retrieves all data points from the buckets into which the query vector hashes. These candidates are then ranked by their true distance to the query. By constructing multiple hash tables, LSH can achieve sub-linear query time with a high probability of finding a true near neighbor.
Clustering-Based Methods
This approach, which is highly practical and widely adopted in modern systems, partitions the dataset into clusters during a preprocessing or training phase.
Inverted File (IVF) Index
The IVF method first applies a clustering algorithm, typically k-means, to the dataset to identify a set of k representative centroids. The vector space is thus partitioned into k Voronoi cells. Each vector in the dataset is then assigned to the inverted list of its nearest centroid. At query time, the algorithm first identifies the nprobe centroids closest to the query vector. The search is then exhaustively performed only on the vectors within the inverted lists of these selected centroids. This dramatically reduces the search space from the entire dataset to a small fraction, making it an approximate method since the true nearest neighbor might reside in a cluster that was not probed.
Quantization-Based Methods
Quantization techniques focus on compressing the vector representations to reduce memory footprint and accelerate distance calculations, often at the cost of some precision.
Product Quantization (PQ)
PQ is a vector compression technique that works by splitting a high-dimensional vector into a set of lower-dimensional sub-vectors. For each set of sub-vectors, a separate, small codebook of centroids is learned via k-means. Each sub-vector is then replaced by the ID of its closest centroid in the corresponding codebook. A full D-dimensional vector can thus be represented by a short code of integers. Distances between vectors can be rapidly approximated by using these codes to look up pre-computed distances between centroids. PQ is rarely used alone and is most powerful when combined with an IVF index (a method known as IVFPQ), where it is used to compress the vectors within each inverted list, enabling faster in-memory scans and reduced storage requirements.
Proximity Graph-Based Methods
In recent years, algorithms based on proximity graphs have become the state-of-the-art for in-memory ANN search, consistently demonstrating superior performance in benchmarks.
Navigable Small World (NSW) Graphs
These algorithms construct a graph where data points are vertices and edges connect vertices that are close to each other. The graph is built to exhibit the small world property, containing both short-range links (connecting immediate neighbors) for precision and long-range links (connecting distant points) for efficient traversal. A search is performed as a greedy traversal starting from a random entry point, always moving to the neighbor closest to the query vector until a local minimum is reached. This structure allows for logarithmic search complexity on average [7].
Hierarchical Navigable Small World (HNSW)
Introduced by Yury Malkov and Dmitry Yashunin in a 2016 paper [7], HNSW is a significant enhancement of the NSW approach. HNSW builds a multi-layered hierarchy of graphs, analogous to a probability skip list. The top layer is a very sparse graph with only the longest-range links, while subsequent layers become progressively denser, with the bottom layer containing all data points and their short-range links. A search begins at an entry point in the top layer, greedily traversing to find the closest point in that layer. This point then serves as the entry point for the search in the denser layer below. This coarse-to-fine process is repeated until the search reaches the bottom layer, where the final greedy search is performed to find the nearest neighbors. This hierarchical approach prevents the search from getting stuck in local minima and provides a robust, high-performance solution. Recent studies, however, have begun to investigate whether the hierarchy is strictly necessary in high dimensions, hypothesizing that a naturally forming highway of highly connected hub nodes in a flat graph may serve the same navigational function.
The overall trajectory of ANN algorithm development reveals a clear pattern. Early, theoretically pure methods have given way to more complex, hybrid systems. For example, IVFPQ combines clustering with quantization to achieve a better balance of speed, memory, and accuracy. HNSW itself merges concepts from proximity graphs and hierarchical data structures. This evolution also highlights a preference for algorithms that demonstrate superior empirical performance on real-world data, such as HNSW, over those with stronger theoretical guarantees but weaker practical results, like LSH. This shift reflects a maturation of the field towards highly engineered, tunable systems designed for practical, industrial-scale applications.
Architecture of Modern Vector Database Management Systems (VDBMS)
While ANN algorithms provide the core retrieval mechanism, a complete Vector Database Management System (VDBMS) encapsulates these algorithms within a broader architecture that provides data persistence, management, and advanced querying capabilities. This section details the components and functionalities that distinguish a VDBMS from a standalone ANN library.
Core Architectural Components
A modern VDBMS typically follows a layered architecture designed for scalability and efficient query processing.
API Layer: This is the user-facing component, providing interfaces for application interaction. These typically include language-specific SDKs (e.g., for Python, Java, Go), as well as REST or gRPC APIs. This layer exposes functionalities for data manipulation (insert, update, delete) and querying.
Query Engine: The query engine is responsible for parsing and executing search requests. Its tasks include transforming an incoming query (e.g., a text string) into a vector embedding, executing the search against the index, applying any specified metadata filters, computing similarity scores to rank the results, and returning the final set of neighbors.
Indexing Layer: This is the heart of the VDBMS, where the chosen ANN algorithm (e.g., HNSW, IVFPQ) is implemented. This layer manages the creation, updating, and loading of the index data structures that enable fast retrieval. It is responsible for the trade-off between indexing time, memory consumption, and query performance.
Vector Storage Layer: This layer handles the persistent storage of the vector embeddings, their unique IDs, and any associated metadata. Scalable VDBMS architectures often disaggregate storage from compute, using distributed object storage (like AWS S3 or MinIO) as the primary data store. This allows compute resources for indexing and querying to be scaled independently of the total data volume. Some systems also offer tiered storage options, using in-memory, SSD, or disk-based solutions to balance cost and latency.
Similarity Metrics in Practice
The query engine relies on a similarity or distance metric to quantify the relationship between vectors. The choice of metric is not arbitrary and should align with the properties of the vector embeddings and the nature of the task.
Cosine Similarity: Measures the cosine of the angle between two vectors, making it sensitive to orientation but not magnitude. It is the standard choice for semantic search with text embeddings (e.g., from BERT [8]), where the direction of the vector represents semantic meaning, and document length should not influence similarity.
Euclidean Distance (): Calculates the straight-line or as the crow flies distance between two vector endpoints in the embedding space. It is sensitive to both magnitude and direction and is a common default for computer vision tasks like image similarity search, where the magnitude of feature activations can be meaningful.
Dot Product: Calculates the product of the magnitudes of two vectors and the cosine of the angle between them. Unlike cosine similarity, it is not normalized and is sensitive to vector magnitude. It is frequently used in recommendation systems, where the magnitude of a user or item vector can represent the strength of preference or popularity.
Filtered Approximate Nearest Neighbor Search (FANNS)
In most practical applications, similarity search is not performed in isolation. Users often need to combine a vector search with filters on structured metadata. For example, a user might search for products similar to a given image but only within a specific price range and brand category (price < 50 AND brand = 'Nike'). This hybrid query type, known as Filtered Approximate Nearest Neighbor Search (FANNS) [9], is a critical capability for VDBMSs.
However, FANNS presents a significant technical challenge. ANN indexes achieve their speed by organizing data based on geometric proximity. Applying a filter that selects a sparse and disconnected subset of points can break the structural assumptions of the index (e.g., the connectivity of a graph), leading to a severe degradation in recall (the fraction of true nearest neighbors found). There are three primary strategies for executing FANNS queries, each with distinct trade-offs:
Pre-filtering (Filter-then-Search): The system first applies the metadata filter to identify a subset of data points and then builds a temporary index or performs a search only on this subset. This approach is effective when the filter is highly selective (returns a small number of items), but it can be very inefficient for low-selectivity filters and may be incompatible with graph-based indexes, where removing nodes can fragment the graph.
Post-filtering (Search-then-Filter): The system first performs an ANN search to retrieve a large number of candidates (e.g., top 1000 for a top-10 query) and then applies the filter to this candidate set. This method maintains the integrity of the main index but is inefficient when the filter has low selectivity (most of the retrieved candidates are discarded), forcing the system to over-fetch to ensure enough valid results are found.
Integrated/Joint Filtering: More advanced approaches integrate the filtering logic directly into the ANN index traversal. For instance, in an HNSW graph search, the algorithm would only traverse to neighboring nodes that also satisfy the metadata predicate. This avoids exploring irrelevant parts of the graph from the outset and is often the most efficient strategy, but it requires more complex index structures and algorithms. This remains an active and important area of research in both academia and industry.
The challenges posed by FANNS reveal how the field of vector databases is now confronting classic database problems. The decision of whether to pre-filter, post-filter, or use an integrated approach is fundamentally a query optimization problem, analogous to join order selection in relational databases. The need for systems to automatically select the best index and execution strategy based on query properties and data statistics mirrors the long-standing goal of self-tuning databases. However, this new domain introduces unique complexities, such as optimizing for probabilistic metrics like stable recall (consistent recall across different filters) rather than the deterministic correctness of traditional systems. The future of VDBMS lies not just in creating faster ANN algorithms, but in building sophisticated query optimizers that can navigate these new, complex trade-offs.
Vector Databases in the Era of Large Language Models
The recent surge in interest and development of vector databases is inextricably linked to the rise of Large Language Models (LLMs). Vector databases have become a critical piece of infrastructure in the LLM ecosystem, primarily by enabling a powerful architectural pattern known as Retrieval-Augmented Generation (RAG).
From Unstructured Data to Vector Embeddings
The foundation of this union is the ability of deep learning models to convert vast amounts of unstructured data into meaningful vector embeddings. This process serves as a form of automatic feature engineering, transforming data into a format that is amenable to computational analysis.
Text Embeddings: For textual data, transformer-based models like BERT (Bidirectional Encoder Representations from Transformers) and its variants, such as Sentence-BERT (SBERT), are the standard. These models process words or sentences in the context of surrounding text, producing dense vectors that capture nuanced semantic meaning, distinguishing, for example, between river bank and investment bank.
Image Embeddings: For visual data, Convolutional Neural Networks (CNNs), such as ResNet, are commonly used. These networks process an image through a series of layers that learn to detect increasingly complex features, from edges and textures to objects and scenes. The output of an intermediate layer serves as a feature vector that summarizes the image's visual content.
Audio Embeddings: For audio data, models like OpenAI's Whisper can be used to generate vector representations from audio signals, capturing characteristics like pitch, rhythm, and timbre.
The general principle behind embedding generation is to leverage a neural network that has been pre-trained on a massive dataset for a related task (e.g., image classification or language modeling). By removing the final classification layer of the network, the output from the penultimate layer can be extracted. This output is a high-dimensional vector that represents the input data in a rich, learned feature space.
Retrieval-Augmented Generation (RAG)
Retrieval-Augmented Generation (RAG) has become the dominant architectural pattern for enhancing the capabilities of LLMs in knowledge-intensive tasks. This approach directly addresses several fundamental limitations of LLMs:
- Hallucination: LLMs can generate plausible but factually incorrect or nonsensical information. RAG grounds the model's responses in factual, retrieved data, reducing the likelihood of fabrication.
- Outdated Knowledge: The knowledge of an LLM is static and frozen at the end of its training period. RAG allows the model to access up-to-date information from an external knowledge source.
- Lack of Domain-Specific Context: Pre-trained LLMs lack knowledge of private, proprietary, or highly specialized domains. RAG enables the integration of this domain-specific information at inference time without costly fine-tuning.
The RAG architecture consists of three core stages:
- Indexing: An external corpus of documents (the knowledge base) is prepared. This involves parsing documents, segmenting them into smaller, manageable chunks, and then using an embedding model to convert each chunk into a vector embedding. These embeddings, along with the original text and any associated metadata, are loaded into a vector database, which builds an efficient ANN index over them.
- Retrieval: When a user submits a query, it is first passed through the same embedding model to create a query vector. This vector is then used to perform a similarity search in the vector database. The database's retriever component efficiently finds and returns the top-K most semantically relevant document chunks from the knowledge base.
- Generation: The original user query is combined with the retrieved document chunks into an augmented prompt. This enriched prompt, which now contains both the question and relevant context, is fed to the LLM. The LLM is instructed to synthesize an answer based on the provided information, thus generating a response that is more accurate, detailed, and grounded in the external knowledge source.
In this architecture, the vector database functions as the technological core of the retrieval step. Its ability to perform low-latency, scalable semantic search is what makes the real-time augmentation of LLM prompts feasible. This architectural pattern effectively reframes the vector database as a form of dynamic, external memory for the LLM. It creates a powerful separation between the LLM's intrinsic, parametric knowledge (encoded in its weights during training) and the extrinsic, non-parametric knowledge stored in the VDBMS. This separation allows the knowledge base to be updated, expanded, or corrected in real-time simply by modifying the contents of the vector database, a far more efficient and agile process than retraining or fine-tuning the entire LLM. This makes AI systems more scalable, auditable (as responses can be traced back to source documents), and adaptable to new information.
Advanced Applications
The synergy between vector databases and LLMs extends beyond RAG to a variety of other applications:
- Semantic Search: Vector databases power standalone semantic search systems that allow users to find information based on conceptual meaning. This is used in applications from enterprise knowledge management to e-commerce product discovery.
- Recommendation Engines: Embeddings can represent both users and items (e.g., products, movies, articles) in a shared vector space. By finding items whose vectors are close to a user's vector (which may represent their historical preferences), systems can provide highly personalized recommendations. LLMs enhance this by generating rich, content-aware embeddings from item descriptions, user reviews, or other textual data.
- Multimodal Search: With the advent of multimodal embedding models like CLIP, which can map images and text to a shared embedding space, vector databases can facilitate cross-modal searches. This enables applications like searching a collection of images using a natural language description (text-to-image search) or finding similar images based on a query image.
Conclusion
Vector databases represent a fundamental shift in data management, moving from the storage and retrieval of explicit, structured information to the organization of data based on semantic meaning. This evolution, rooted in the half-century of research since the Vector Space Model, has been catalyzed by the confluence of massive unstructured data and the representational power of deep learning. The algorithmic journey from space-partitioning trees to modern graph-based indexes like HNSW reflects a persistent and successful effort to overcome the computational barriers imposed by the curse of dimensionality.
The transition from standalone ANN libraries to full-fledged Vector Database Management Systems marks a critical maturation point. The field is now integrating core principles of traditional database systems—such as data management, query optimization, and scalability—into the novel context of high-dimensional, probabilistic search. This is most evident in the active research surrounding filtered vector search, which mirrors the classic database problem of hybrid query optimization.
The synergy between vector databases and Large Language Models, particularly through the Retrieval-Augmented Generation (RAG) architecture, has solidified their position as a cornerstone of the modern AI stack. By serving as a dynamic, external knowledge source, vector databases provide a scalable and efficient solution to the inherent limitations of LLMs, enabling the development of more accurate, up-to-date, and trustworthy AI applications.
Looking forward, the primary challenges lie in pushing the boundaries of scale and efficiency, managing dynamic data in real-time, and simplifying system usability through automation and declarative interfaces. The ongoing research in these areas promises to further solidify the role of vector databases as a critical and enduring component of the data infrastructure for artificial intelligence.
Sources
[1] G. Salton, A. Wong, and C. S. Yang. 1975. A vector space model for automatic indexing. Commun. ACM 18, 11 (Nov. 1975), 613–620. https://doi.org/10.1145/361219.361220
[2] Gerard Salton, Christopher Buckley,Term-weighting approaches in automatic text retrieval, Information Processing & Management, Volume 24, Issue 5, 1988, Pages 513-523, https://doi.org/10.1016/0306-4573(88)90021-0
[3] R. E. Bellman, “Dynamic Programming,” Princeton University Press, Princeton, 1957.
[4] Jon Louis Bentley. 1975. Multidimensional binary search trees used for associative searching. Commun. ACM 18, 9 (Sept. 1975), 509–517. https://doi.org/10.1145/361002.361007
[5] Omohundro, Stephen M. (1989). Five Balltree Construction Algorithms. International Computer Science Institute (ICSI) Technical Report TR-89-063. University of California, Berkeley.
[6] Piotr Indyk and Rajeev Motwani. 1998. Approximate nearest neighbors: towards removing the curse of dimensionality. In Proceedings of the thirtieth annual ACM symposium on Theory of computing (STOC '98). Association for Computing Machinery, New York, NY, USA, 604–613. https://doi.org/10.1145/276698.276876
[7] Malkov, Yu. A., and D. A. Yashunin. "Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs." ArXiv, 2016, https://arxiv.org/abs/1603.09320. Accessed 29 Oct. 2025.
[8] Devlin, Jacob, et al. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." ArXiv, 2018, https://arxiv.org/abs/1810.04805. Accessed 29 Oct. 2025.
[9] Gollapudi, Siddharth et al. “Filtered-DiskANN: Graph Algorithms for Approximate Nearest Neighbor Search with Filters.” Proceedings of the ACM Web Conference 2023 (2023): n. pag.

Phil Wennker
Principal Research Scientist
Phil Wennker is co-founder and AI engineer at Mnemonic AI, an Austin, Texas-based start-up working at the intersection of neuroscience and artificial intelligence. Previously, he co-founded Deep Data Analytics and led research initiatives on Natural Language Processing in the European Union. He is a frequent speaker at international conferences on data science and AI, not-so-frequent lecturer at universities in Germany and the US, and seldom author.