<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Scalable Query Understanding for E-commerce: An Ensemble Architecture with Graph-based Optimization</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Giuseppe</forename><forename type="middle">Di</forename><surname>Fabbrizio</surname></persName>
							<email>difabbrizio@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department">Tenth Italian Conference on Computational Linguistics</orgName>
								<address>
									<addrLine>Dec 04 -06</addrLine>
									<postCode>2024</postCode>
									<settlement>Pisa</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Evgeny</forename><surname>Stepanov</surname></persName>
							<email>stepanov.evgeny.a@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department">Tenth Italian Conference on Computational Linguistics</orgName>
								<address>
									<addrLine>Dec 04 -06</addrLine>
									<postCode>2024</postCode>
									<settlement>Pisa</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ludovico</forename><surname>Frizziero</surname></persName>
							<email>ludovico.frizziero@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department">Tenth Italian Conference on Computational Linguistics</orgName>
								<address>
									<addrLine>Dec 04 -06</addrLine>
									<postCode>2024</postCode>
									<settlement>Pisa</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Filippo</forename><surname>Tessaro</surname></persName>
							<email>filippotessaro96@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department">Tenth Italian Conference on Computational Linguistics</orgName>
								<address>
									<addrLine>Dec 04 -06</addrLine>
									<postCode>2024</postCode>
									<settlement>Pisa</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Scalable Query Understanding for E-commerce: An Ensemble Architecture with Graph-based Optimization</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">FBA73FA2DF68CAED3CB78C3ED3BAF024</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T17:36+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Query classification</term>
					<term>Query understanding</term>
					<term>Distributed and scalable machine learning</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Query understanding is a critical component in e-commerce platforms, facilitating accurate interpretation of user intent and efficient retrieval of relevant products. This study investigates scalable query understanding techniques applied to a real-world use case in the e-commerce grocery domain. We propose a novel architecture that integrates deep learning models with traditional machine learning approaches to capture query nuances and deliver robust performance across diverse query types and categories. Experimental evaluations conducted on real-life datasets demonstrate the efficacy of our proposed solution in terms of both accuracy and scalability. The implementation of an optimized graph-based architecture utilizing the Ray framework enables efficient processing of high-volume traffic. Our ensemble approach achieves an absolute 2% improvement in accuracy over the best individual model. The findings underscore the advantages of combining diverse models in addressing the complexities of e-commerce query understanding.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Accurately understanding and classifying user queries is crucial for providing a seamless shopping experience by boosting the product search results relevance in ecommerce <ref type="bibr" target="#b0">[1]</ref>. Query understanding enables e-commerce platforms to interpret users' intents, retrieve relevant products, and personalize the user's journey through the shopping experience. However, the task of query understanding in e-commerce presents several challenges due to the diverse nature of queries, the large-scale product catalogs, and the need for efficient processing of highvolume traffic with noisy behavioral signals <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3]</ref>.</p><p>Query understanding in e-commerce involves multiple sub-tasks, such as query classification, entity recognition, and intent detection. Query classification aims to categorize user queries into predefined product categories, facilitating improved product retrieval and ranking <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>. Entity recognition identifies key information within the query, such as brand names, product attributes, and numerical values, which can be used to refine the search results <ref type="bibr" target="#b5">[6]</ref>. Intent detection focuses on understanding the user's underlying goal, such as product discovery, comparison, or purchase <ref type="bibr" target="#b6">[7]</ref>.</p><p>One of the primary challenges in query understanding is the inherent ambiguity and diversity of user queries. E-commerce queries are often short, lacking context, and can have multiple interpretations <ref type="bibr" target="#b7">[8]</ref>. Moreover, the large-scale product catalogs in e-commerce platforms, spanning thousands of categories and millions of products, pose a significant challenge in accurately mapping queries to relevant categories and products.</p><p>Various approaches have been proposed to address these challenges, leveraging traditional machine learning techniques and deep learning models. Rule-based systems and keyword matching have been widely used for query classification and entity recognition <ref type="bibr" target="#b8">[9]</ref>. However, these approaches often struggle with the variability and complexity of natural language queries. Different query intents require different algorithms to yield optimum results <ref type="bibr" target="#b9">[10]</ref>. Queries can be classified into navigational (e.g., product category, brand, title) and informational (e.g., product-related questions). While navigational queries require exact matching to catalog products, informational queries necessitate applying more complex understanding techniques.</p><p>Another critical aspect of query understanding in ecommerce is efficiently processing high-volume traffic. E-commerce platforms receive millions of queries daily, requiring scalable and real-time query understanding systems. Distributed computing frameworks, such as Apache Spark and Ray, have been employed to parallelize query processing and handle the massive scale of e-commerce data <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b11">12]</ref>.</p><p>In this paper, we propose an ensemble approach for query understanding in e-commerce, combining deep learning models and traditional techniques. Our approach leverages the strengths of both deep learning, such as DistilBERT <ref type="bibr" target="#b12">[13]</ref>, and traditional models, including logistic regression and rule-based systems. By integrating these diverse models, we aim to capture the Pacific chicken broth organic gluten free  We introduce an optimized graph-based architecture based on the Ray framework <ref type="bibr" target="#b11">[12]</ref>, enabling efficient processing of high-volume traffic and ensuring scalability.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Query understanding ensemble architecture</head><p>In this paper, we focus on navigational queries and classify them into product taxonomy categories while applying named entity recognition (NER) to capture relevant product attributes, such as Brand, Nutrition, Flavor, and numeric attributes like quantities and measurements. Figure <ref type="figure" target="#fig_1">1</ref> shows a typical example of a navigational search query in an e-commerce grocery domain where the query "Pacific chicken broth organic gluten free" is parsed into its attributes and categorized into its taxonomy label.</p><p>Classifying user queries into product taxonomy categories is a typical document classification problem that is complex and actively researched. The problem is complicated by the nature of available data, which can be either product descriptions with user-provided categories or user queries associated with catalog categories from user click-stream data. Products in the catalog are described in terms of attributes with associated values, and a subset of this mapping constitutes a set of entities that should be identified to build a search query and provide better search results.</p><p>Due to the rate of change in e-commerce, the classical approach of query annotation and model training is prohibitive. Consequently, the query understanding problem is cast as a document classification problem for matching user queries to the product taxonomy tree (categories) and a sequence labeling problem for entities of interest. For each problem, we propose using an ensemble approach with multiple models having different label sets and relations. Specifically, we predict two levels of the product taxonomy tree (L1 and L2) and extract the corresponding entities mentioned in the queries. Each level is predicted by an ensemble of models composed of business rules and machine learning models. Similarly, different machine learning and rule-based models are used to extract entities of interest.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Query understanding pipeline and ensemble components</head><p>The query understanding pipeline's classification and entity extraction components are trained and tested on pre-processed user queries. Common text pre-processing steps are applied, including spaCy's tokenization, lowercasing, and number normalization <ref type="bibr" target="#b13">[14]</ref>.</p><p>The classification ensemble consists of business rules, implemented as a lookup table, and two machine learning models: logistic regression and DistilBERT. DistilBERT is a compressed version of BERT <ref type="bibr" target="#b14">[15]</ref> that retains 97% of the original model's performance while being 40% smaller and 60% faster at inference time. The key idea is to leverage knowledge distillation during the pre-training phase to learn a compact model that can be fine-tuned for downstream tasks. Integrating DistilBERT into a query understanding pipeline, alongside business rules and lo-gistic regression, enhances the system's accuracy and robustness.</p><p>The entity extraction ensemble comprises: (1) a conditional random fields model; (2) a catalog-based lookup table to extract Brand, Flavor, and Nutrition; and (3) a rulebased Duckling library<ref type="foot" target="#foot_0">1</ref> to extract numerical entities such as Price and Quantity.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Classification decision fusion</head><p>In our ensemble learning scenario, the models are trained on different data and have different, potentially overlapping label spaces, unlike typical ensemble learning, where the same data is used to train all models. Due to the label space differences, decision fusion is performed on the predictor-by-label prediction matrix of confidence scores rather than using a simple majority voting strategy. Rule-triggered hypotheses are assigned to a confidence score of 1.0 taking priority on model-based predictions.</p><p>The decision fusion process takes a matrix of confidence scores as input and outputs a vector of aggregated confidence scores. The label space difference is addressed by applying a max operation on the column of prediction scores per label, ignoring the values with respect to the label space membership. Taking the maximum score per prediction approximates the product rule <ref type="bibr" target="#b15">[16]</ref>. The final label is decided as the 𝑎𝑟𝑔𝑚𝑎𝑥 of this confidence score vector. Unlike voting-based decision fusion, such an approach allows aggregation of decisions from rules and any number of predictors.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3.">Entity span consolidation</head><p>Span consolidation aggregates entity extraction hypotheses from one or several entity extractors into a shallow parse containing only non-overlapping spans. By default, this process is performed for spans from the same model, but it can also be enabled for an ensemble of extractors.</p><p>Inspired by <ref type="bibr" target="#b16">[17]</ref>, the span consolidation is performed in three steps: (1) Identity consolidation: Resolves identical spans by keeping the span with higher confidence, or randomly if confidences are equal; (2) Containment consolidation: Resolves spans contained within each other by keeping the longer span, i.e., the one that contains the other; (3) Overlap consolidation: Resolves overlapping spans by keeping the longer span, or alternatively merging them and assigning the label of the longest span. Priority consolidation can be used to give higher weights to predictions from extractors with higher confidence.</p><p>The decision fusion and span consolidation are generally applied as the final step of the query understanding pipeline to yield hypotheses containing only a nonoverlapping set of entities and a single classification prediction per level, as described in Section 4.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Models and ensemble evaluation</head><p>The engine's configuration represents the ensemble as a sequence of operations, called nodes, organized into a graph. The edges of this graph represent the interdependencies between nodes. The engine organizes and dispatches computations to maximize parallelism. Machine learning models for query classification are trained on product catalog data and tested on user queries, ensuring equal representation of head, torso, and tail queries in terms of frequency. Table <ref type="table" target="#tab_0">1</ref> shows the sizes of the training and testing data, and the output categories. We predict two levels of product taxonomy: L1 with 17 categories and L2 with 169 categories. However, not all L1 categories have L2 labels, making the L2 sets subsets of the L1 data. The NER test set is a subset of the manually annotated test data for non-numerical entities.</p><p>The performance evaluation of the component models and the ensemble utilizes precision, recall, and F1-score metrics. For multi-class classification tasks, we report accuracy along with macro-averaged precision, recall, and F1-score to account for dataset imbalance. Entity extraction performance is assessed using micro-averaged metrics and token-level accuracy, adhering to CoNLLstyle evaluation protocols.</p><p>To quantify the efficacy of the model ensemble, we conducted a comparative analysis against logistic regression and DistilBERT for level one predictions, with results presented in Table <ref type="table" target="#tab_1">2</ref>. DistilBERT demonstrates superior performance compared to logistic regression across all metrics. The ensemble model, however, consistently outperforms both individual models.</p><p>Consequently, the query understanding system adopts the ensemble approach in lieu of individual models. Rulebased components are excluded from this evaluation due to their limited data coverage and restricted label subsets.</p><p>Level two models show similar performance patterns to level one, though with lower performance due to the larger label space and fewer training documents per label. Entity ensemble performance aligns with other ensembles, favoring precision.</p><p>While the ensemble approach demonstrates improved performance, it faces challenges with certain query types. Extremely short queries (e.g., "chips" can refer to potato, tortilla, or chocolate) can be ambiguous without context. Highly ambiguous queries (e.g., "greens") may span multiple categories within the grocery domain. Novel products or brands not present in the training data pose difficulties. Complex, multi-intent queries (e.g., "organic gluten-free pasta sauce and whole grain spaghetti") can lead to misclassifications or incomplete entity extraction.</p><p>Future work could explore incorporating user session data or personalization techniques to provide additional </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Graph-based architecture for scalable processing</head><p>Query understanding systems in e-commerce search engines must generate real-time responses within strict service level agreements (SLA). They execute complex logic involving different models interacting both in series and parallel. Our engine is constructed as a sequence of operations (nodes) arranged in a graph showing their interdependencies (edges). Like neural networks, the graph-based engine organizes and dispatches each computation to maximize parallelism.</p><p>Parallelization occurs at multiple levels, including inter-operation parallelism and entire graph replicas, depending on deployment requirements. Each operation within the graph is a complex model component, requiring specific optimization strategies, such as data vectorization and memory sharing, to optimize the overall graph structure.</p><p>We represent the graph using the notation node: [arg1, arg2, ..., argN], where node requires incoming edges from arg1 through argN. The full configuration of the graph can be seen in Appendix A</p><p>The engine processes the notation by following these steps: First, it optimizes the graph by joining (inlining) nodes based on certain criteria, which increases parallel operations as much as possible. Next, it decides how many replicas of the graph to run on a single physical server. Each node is then mapped to a separate system process using the Actor model <ref type="bibr" target="#b17">[18]</ref> for inter-process communication, with message passing between processes handled using Ray <ref type="bibr" target="#b11">[12]</ref>.</p><p>Each node is initialized by loading the models into memory, leveraging shared memory and copy-on-write primitives provided by the server's operating system. Each node is loaded only once, and subsequent processes assigned the same node reference the original memory. Since the models are used for inference, not training, there are no write operations, reducing memory footprint and improving loading times. Finally, the batching service handles the backpressure control system and the REST API for listening to incoming requests.</p><p>At startup, the engine performs several optimizations on the graph topology. The simplest is graph culling, removing nodes that do not interact with others. Each node's expected computational burden can be specified. Simple nodes (e.g., string regex preprocessors) are less resource-intensive than full neural network nodes. The engine modifies the graph by combining nodes or inlining to facilitate parallel operations and minimize costly interprocess communications. This results in lighter nodes being replicated multiple times and fused into heavier nodes, each mapped to a single system process.</p><p>After inlining, the engine performs graph linearization, converting the graph into a linear sequence, where each node depends only on preceding nodes, not subsequent ones. The engine dispatches nodes in order, synchronizing results only when necessary. This strategy minimizes pauses and maximizes parallelism. Nodes with a higher computational burden are prioritized, reducing the need for the backpressure control system, leveraging the fact that CPU and data transmission tasks are handled by separate CPU circuitry. Query understanding systems receive hundreds of individual requests per second. Processing a single request is expensive due to inter-node communications. Batching multiple requests reduces overhead and enables vectorization, leveraging hardware primitives for efficient processing. The batching algorithm uses two thresholds: batch size and waiting time for further samples. This balances server resource utilization and processing time.</p><p>Lastly, the engine addresses CPU oversubscription <ref type="bibr" target="#b18">[19]</ref>, which occurs when parallel execution threads exceed available CPU cores, leading to overhead from context switching. The backpressure control system ensures no more than 𝑁 nodes run in parallel, enhancing performance by reducing oversubscription. The number 𝑁 depends on available CPU resources and the code executed within each node. A simple formula for determining 𝑁 is:</p><formula xml:id="formula_0">𝑁 = ⌊︂ 𝑀𝑐𝑝𝑢 max 𝑖∈𝑛𝑜𝑑𝑒𝑠 (𝑡ℎ𝑟𝑒𝑎𝑑𝑠𝑖) ⌋︂ + 1 (<label>1</label></formula><formula xml:id="formula_1">)</formula><p>where 𝑡ℎ𝑟𝑒𝑎𝑑𝑠𝑖 is the number of threads or processes that an individual node can utilize independently, and 𝑀𝑐𝑝𝑢 denotes the available CPU cores on the server.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Performance analysis at scale</head><p>Multiple tests were conducted using different AWS<ref type="foot" target="#foot_1">2</ref> EC2 instances on the engine described in Section 4 and the ensemble configuration as in Appendix A. The optimal balance between cost, latency, and throughput was achieved with the m6i.2xlarge instance, which features 8-Cores Intel Xeon vCPU @ 3.5GHz, for which we report the results.</p><p>The test's target SLA stipulated that response times for 99% of requests should remain below 100ms.</p><p>All tests initiate a single instance of the engine with a graph replication factor of one <ref type="foot" target="#foot_2">3</ref> . Another server, which hosts the client simulator implemented using a Python package called Locust, is instantiated. Both servers share the same AWS network. The simulator issues multiple queries to the engine's server, each randomly sampled from a dataset of actual queries over a sustained duration of 30 seconds. The rate of each request follows an exponential distribution with a rate of 𝑇 requests per second, mimicking a Poisson process, a common model for traffic patterns.</p><p>Table <ref type="table" target="#tab_2">3</ref> reports the execution times of each node, along with the main engine loop responsible for scheduling them and the outer REST API handling incoming requests and facilitating the connection between the engine and the outside world. The runtime of each individual node must be strictly shorter than the main engine loop, representing the actual time taken for parallel graph execution. Node runtimes do not consider inter-process communication, which is accounted for in the main loop. On the other hand, the Rest API contributes to the main loop by including the time required to handle the HTTP connection with the requesting client. The outer Rest API time must stay below 100ms @ 99% percentile to comply with the target SLA. When batching is disabled, at the given rate 𝑇 , new requests arrive while the server is still processing previous ones. These requests are immediately dispatched, leading to CPU oversubscription, which slows down all requests. This effect tends to cascade, as the increased processing time makes it more likely that other requests will arrive, further slowing the system.</p><p>When batching is enabled, the engine pauses to accumulate requests into a batch until thresholds of 5 samples or 50𝑚𝑠 are met. Given each request arrives every 1/𝑇 ≈ 30𝑚𝑠, the average batch size is around 1.5 samples. Therefore, vectorization alone cannot explain the server's ability to meet the target SLA. The process unfolds as follows: (1) the first batch is dispatched for processing, (2) for the next 50𝑚𝑠, new requests are queued into a new batch while (3) the engine likely completes the first batch within 51.7𝑚𝑠 (with 99% probability), (4) the second batch is then dispatched, utilizing just released resources. Thus, batching acts as backpressure control on cheaper hardware without a GPU and at low rates of 𝑇 . In production, multiple instances would handle fluctuating traffic, making batching efficient for scaling while meeting the SLA. The optimal batching period should match the main loop time @ 99%, which is around 50𝑚𝑠 in this case.</p><p>From a single request's perspective, with 𝑇 = 30𝑡𝑝𝑠, batches are dispatched precisely every 50𝑚𝑠, meaning requests encounter a uniform distribution over this interval with an average wait of 25𝑚𝑠 in the batch queue. The entire batch is then processed, typically taking 𝑋 time to complete before the response is extracted and forwarded through the HTTP channel, taking an additional 𝑌 . Empirically, 𝑋 represents the main loop runtime, averaging around 30𝑚𝑠 @ 50%. The Rest API, implemented using FastAPI <ref type="foot" target="#foot_3">4</ref> , has been benchmarked to yield a duration of 𝑌 ≈ 2 − 5𝑚𝑠, giving us REST API @50% = 25ms + 30ms + 2ms ≈ 56.25ms</p><p>For REST API @ 99%, the wait time is always 25𝑚𝑠 on average, but 𝑋 and 𝑌 change accordingly, giving approx 90 − 95𝑚𝑠.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Conclusion and future work</head><p>This paper proposed a novel ensemble approach for query understanding in e-commerce, combining deep learning models like DistilBERT with traditional techniques like logistic regression and rule-based systems. The ensemble architecture aimed to capture the nuances of user queries and provide robust performance across query types and categories. Data augmentation techniques were employed to improve the DistilBERT model's handling of brands, misspellings, and short queries. An optimized graph-based architecture using the Ray framework enabled efficient, scalable processing of high-volume traffic.</p><p>While the ensemble performed well, there are limitations to address in future work. The system focused only on navigational queries for product categorization and entity extraction. Extending it to handle informational and other query types could further improve relevance. Exploring more advanced data augmentation, model compression, and hardware acceleration techniques could enhance accuracy and efficiency.</p><p>The query understanding ensemble demonstrated the value of combining diverse models and leveraging distributed computing frameworks for scalability in e-commerce search engines. E-commerce platforms can benefit from adopting similar, ensemble-based approaches customized to their query traffic and product data. The architecture enables efficient real-time query processing while meeting strict latency requirements, critical for delivering a seamless shopping experience.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">Appendix</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Graph configuration</head><p>In our query understanding system, the relationships between various models and preprocessing components are organized within a graph-based architecture. This architecture plays a crucial role in managing the interdependencies between different models, ensuring efficient computation and scalability.</p><p>The graph representation is designed to handle the integration of multiple machine learning and rule-based models while facilitating optimized parallel processing. Each key in the graph corresponds to a node, which indicates a component or model, and the associated value is a list of other nodes that provide input to it. This differs from traditional adjacency lists, where the focus is on child nodes. Instead, in our graph, the value lists contain ancestor nodes, indicating which components feed information into the current node.</p><p>A key aspect of this architecture is that certain elements, such as user_query, are considered implicit nodes representing external inputs to the system. These external inputs play a foundational role in initiating the data flow throughout the graph. The architecture is designed to handle multiple outputs, listed within the outputs key. This is not a graph node but serves as an indicator to the engine of what to select as the final result. The output key is also vital for the process of graph topology optimization and linearization described in Section 4. This representation not only makes it easier to track data flow but also helps optimize the query understanding ensemble for real-time processing in e-commerce environments.  Figure <ref type="figure">3</ref> illustrates the graph structure that defines the Query Understanding Ensemble. The nodes represent components that work together to process user queries and extract meaningful insights. The graph starts with preprocessing steps that normalize and clean the user input. Subsequently, components such as DistilBERT and TF-IDF are leveraged to extract semantic features and contextual information. Additional models like the CRF (Conditional Random Fields) and vui_duckling focus on identifying specific entities such as brands, quantities, and attributes.</p><p>The outputs from these models are fused together through specific nodes such as fusor_l1 and fuse_all, which combine signals from the intermediate models based on confidence scores and rule-based decisions. The final outputs represent the processed user query, refined and enriched through multiple layers of analysis, ready for downstream tasks such as categorization and search relevance adjustments. This architecture's flexibility and efficiency enable it to handle the complexities of e-commerce queries in real time while supporting high-volume traffic and diverse query types. It also lays the groundwork for the performance optimizations and parallel processing strategies outlined in Section 4.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Query understanding parsing (b) Search results</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Query understanding parsing example with search results leveraging the query understanding signals</figDesc><graphic coords="2,328.70,94.33,166.62,181.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Visualization of the ensemble as a computational graph. (Top) The graph as defined in Appendix A. (Bottom) The graph after optimization by the engine.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure</head><label></label><figDesc>Figure 3: Graph Representation of Query Understanding Ensemble</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>Dataset sizes used to train and test components of the ensemble</figDesc><table><row><cell></cell><cell cols="3">Training Testing Labels</cell></row><row><cell>Level 1</cell><cell>230,463</cell><cell>5,445</cell><cell>17</cell></row><row><cell>Level 2</cell><cell>212,087</cell><cell>4,486</cell><cell>169</cell></row><row><cell>NER</cell><cell>17,862</cell><cell>544</cell><cell>3</cell></row><row><cell>Brands Lookup</cell><cell>9,924</cell><cell>-</cell><cell>1</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2</head><label>2</label><figDesc>Models and ensemble performance</figDesc><table><row><cell>Model</cell><cell cols="4">precision recall f1-score accuracy</cell></row><row><cell>L1 DistilBERT</cell><cell>0.77</cell><cell>0.77</cell><cell>0.77</cell><cell>0.81</cell></row><row><cell>L1 Logistic Regression</cell><cell>0.76</cell><cell>0.70</cell><cell>0.73</cell><cell>0.75</cell></row><row><cell>L1 Model Ensemble</cell><cell>0.79</cell><cell>0.79</cell><cell>0.79</cell><cell>0.82</cell></row><row><cell>L2 Model Ensemble</cell><cell>0.68</cell><cell>0.67</cell><cell>0.66</cell><cell>0.70</cell></row><row><cell>Entity Ensemble</cell><cell>0.83</cell><cell>0.59</cell><cell>0.69</cell><cell>0.74</cell></row></table><note>context for ambiguous queries and improve handling of out-of-vocabulary terms and multi-intent queries.</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3</head><label>3</label><figDesc>Quantiles for 𝑇 = 30𝑡𝑝𝑠, times are in milliseconds. Nodes are sorted from fastest to slowest.</figDesc><table><row><cell>name</cell><cell>50%</cell><cell>95%</cell><cell>99%</cell><cell>name</cell><cell>50%</cell><cell>95%</cell><cell>99%</cell></row><row><cell>preprocessor</cell><cell>0.05</cell><cell>0.06</cell><cell>0.07</cell><cell>preprocessor</cell><cell>0.05</cell><cell>0.06</cell><cell>0.07</cell></row><row><cell>fusor l1</cell><cell>0.38</cell><cell>0.53</cell><cell>0.58</cell><cell>fusor l1</cell><cell>0.40</cell><cell>0.66</cell><cell>0.83</cell></row><row><cell>fuse all</cell><cell>0.58</cell><cell>0.95</cell><cell>1.11</cell><cell>fuse all</cell><cell>0.59</cell><cell>1.16</cell><cell>1.65</cell></row><row><cell>rules</cell><cell>0.87</cell><cell>1.29</cell><cell>1.56</cell><cell>rules</cell><cell>0.84</cell><cell>1.33</cell><cell>1.70</cell></row><row><cell>crf</cell><cell>0.94</cell><cell>1.35</cell><cell>1.96</cell><cell>crf</cell><cell>0.96</cell><cell>1.62</cell><cell>2.01</cell></row><row><cell>tfidf l2</cell><cell>1.36</cell><cell>2.39</cell><cell>5.22</cell><cell>tfidf l2</cell><cell>1.39</cell><cell>2.03</cell><cell>4.88</cell></row><row><cell>tfidf l1</cell><cell>1.41</cell><cell>2.29</cell><cell>4.75</cell><cell>tfidf l1</cell><cell>1.43</cell><cell>2.05</cell><cell>3.88</cell></row><row><cell>sklearn l1</cell><cell>1.62</cell><cell>2.68</cell><cell>4.86</cell><cell>sklearn l1</cell><cell>1.64</cell><cell>2.53</cell><cell>5.81</cell></row><row><cell>duckling</cell><cell>2.80</cell><cell>11.95</cell><cell>35.71</cell><cell>duckling</cell><cell cols="2">3.33 18.59</cell><cell>30.84</cell></row><row><cell>spacy</cell><cell>12.87</cell><cell>24.70</cell><cell>33.68</cell><cell>spacy</cell><cell cols="2">12.33 18.68</cell><cell>25.42</cell></row><row><cell>distilbert l1</cell><cell>14.77</cell><cell>27.27</cell><cell>39.20</cell><cell>sklearn l2</cell><cell cols="2">15.71 18.99</cell><cell>22.87</cell></row><row><cell>distilbert l2</cell><cell>14.90</cell><cell>27.75</cell><cell>37.58</cell><cell>distilbert l2</cell><cell cols="2">15.44 27.49</cell><cell>36.29</cell></row><row><cell>sklearn l2</cell><cell>17.40</cell><cell>29.53</cell><cell>39.93</cell><cell>distilbert l1</cell><cell cols="2">15.60 27.34</cell><cell>37.23</cell></row><row><cell>main loop</cell><cell cols="3">53.23 142.63 206.22</cell><cell>main loop</cell><cell cols="2">30.51 41.18</cell><cell>51.74</cell></row><row><cell>rest api</cell><cell cols="3">58.57 154.50 219.90</cell><cell>rest api</cell><cell cols="3">55.85 84.35 92.82</cell></row><row><cell cols="3">Batching disabled</cell><cell></cell><cell cols="3">Batching enabled</cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>3 :</head><label>3</label><figDesc>Graph Representation of Query Understanding Ensemble</figDesc><table><row><cell>execution_graph:</cell></row><row><cell>preprocessor: [ user_query ]</cell></row><row><cell>distilbert_l1: [ user_query ]</cell></row><row><cell>distilbert_l2: [ user_query ]</cell></row><row><cell>tfidf_l1: [ preprocessor ]</cell></row><row><cell>tfidf_l2: [ preprocessor ]</cell></row><row><cell>vui_duckling: [ preprocessor ]</cell></row><row><cell>spacy: [ preprocessor ]</cell></row><row><cell>crf: [ spacy ]</cell></row><row><cell>sklearn_l1: [ tfidf_l1 ]</cell></row><row><cell>sklearn_l2: [ tfidf_l2 ]</cell></row><row><cell>fusor_l1: [ distilbert_l1, sklearn_l1 ]</cell></row><row><cell>rules: [ spacy, fusor_l1 ]</cell></row><row><cell>fuse_all: [</cell></row><row><cell>rules, crf, distilbert_l1, sklearn_l1,</cell></row><row><cell>distilbert_l2, sklearn_l2, vui_duckling</cell></row><row><cell>]</cell></row><row><cell>outputs: [ user_query, preprocessor, parse ]</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://github.com/facebook/duckling</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">https://aws.amazon.com/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">Replication factors greater than one were also tested, but they caused immediate CPU oversubscription problems, as anticipated. The SLA targets were unattainable without resorting to costly GPUs.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">https://fastapi.tiangolo.com/</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Query Understanding for Search Engines</title>
		<idno type="DOI">10.1007/978-3-030-58334-7</idno>
		<editor>H. Deng, Y. Zhang</editor>
		<imprint>
			<date type="published" when="2020">2020</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
	<note>1st ed</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Learning query and document relevance from a web-scale click graph</title>
		<author>
			<persName><forename type="first">S</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Kang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Daly</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Yin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Chang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Zhai</surname></persName>
		</author>
		<idno type="DOI">10.1145/2911451.2911531</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 39th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &apos;16</title>
				<meeting>the 39th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &apos;16<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="185" to="194" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Semantic product search</title>
		<author>
			<persName><forename type="first">P</forename><surname>Nigam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Song</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Mohan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Lakshman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">A</forename><surname>Ding</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shingavi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">H</forename><surname>Teo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Gu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Yin</surname></persName>
		</author>
		<idno type="DOI">10.1145/3292500.3330759</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery &amp; Data Mining, KDD &apos;19</title>
				<meeting>the 25th ACM SIGKDD International Conference on Knowledge Discovery &amp; Data Mining, KDD &apos;19<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="2876" to="2885" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">E-commerce Product Query Classification Using Implicit User&apos;s Feedback from Clicks</title>
		<author>
			<persName><forename type="first">Y.-C</forename><surname>Lin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Datta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">Di</forename><surname>Fabbrizio</surname></persName>
		</author>
		<idno type="DOI">10.1109/BigData.2018.8622008</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Big Data (Big Data)</title>
				<imprint>
			<date type="published" when="2018">2018. 2018</date>
			<biblScope unit="page" from="1955" to="1959" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Extreme Multi-label Query Classification for E-commerce</title>
		<author>
			<persName><forename type="first">G</forename><surname>Di Fabbrizio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Stepanov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tessaro</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">eCom&apos;24: ACM SIGIR Workshop on eCommerce</title>
				<meeting><address><addrLine>USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2024-07-18">July 18, 2024. 2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Large-scale item categorization in e-commerce using multiple recurrent neural networks</title>
		<author>
			<persName><forename type="first">J.-W</forename><surname>Ha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Pyo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kim</surname></persName>
		</author>
		<idno type="DOI">10.1145/2939672.2939678</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &apos;16</title>
				<meeting>the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &apos;16<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="107" to="115" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Pre-training Tasks for User Intent Detection and Embedding Retrieval in E-commerce Search</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Qiu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Zhao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Zhuo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Xu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Long</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W.-Y</forename><surname>Yang</surname></persName>
		</author>
		<idno type="DOI">10.1145/3511808.3557670</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 31st ACM International Conference on Information &amp; Knowledge Management, CIKM &apos;22</title>
				<meeting>the 31st ACM International Conference on Information &amp; Knowledge Management, CIKM &apos;22<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2022">2022</date>
			<biblScope unit="page" from="4424" to="4428" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Product query classification</title>
		<author>
			<persName><forename type="first">D</forename><surname>Shen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Zhou</surname></persName>
		</author>
		<idno type="DOI">10.1145/1645953.1646047</idno>
		<idno>doi:10.1145/ 1645953.1646047</idno>
		<ptr target="https://doi.org/10.1145/1645953.1646047" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 18th ACM Conference on Information and Knowledge Management, CIKM &apos;09</title>
				<meeting>the 18th ACM Conference on Information and Knowledge Management, CIKM &apos;09<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="741" to="750" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Named Entity Recognition for E-Commerce Search Queries</title>
		<author>
			<persName><forename type="first">B</forename><surname>Ramesh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Bhange</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Cheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bowden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Goyal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Packer</surname></persName>
		</author>
		<author>
			<persName><surname>Javed</surname></persName>
		</author>
		<ptr target="https://api.semanticscholar.org/CorpusID:219530417" />
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Big Data (Big Data)</title>
				<imprint>
			<date type="published" when="2018">2018. 2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Tsagkias</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">H</forename><surname>King</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kallumadi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Murdock</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>De Rijke</surname></persName>
		</author>
		<title level="m">Challenges and research opportunities in ecommerce search and recommendations</title>
				<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
	<note>SIGIR Forum</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Apache spark: A big data processing engine</title>
		<author>
			<persName><forename type="first">E</forename><surname>Shaikh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Mohiuddin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Alufaisan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Nahvi</surname></persName>
		</author>
		<ptr target="https://api.semanticscholar.org/CorpusID:211120979" />
	</analytic>
	<monogr>
		<title level="m">2nd IEEE Middle East and North Africa COM-Munications Conference (MENACOMM)</title>
				<imprint>
			<date type="published" when="2019">2019. 2019</date>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Ray: a distributed framework for emerging ai applications</title>
		<author>
			<persName><forename type="first">P</forename><surname>Moritz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Nishihara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Tumanov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Liaw</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Liang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Elibol</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Yang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Paul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">I</forename><surname>Jordan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Stoica</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 13th USENIX Conference on Operating Systems Design and Implementation, OSDI&apos;18</title>
				<meeting>the 13th USENIX Conference on Operating Systems Design and Implementation, OSDI&apos;18<address><addrLine>USA</addrLine></address></meeting>
		<imprint>
			<publisher>USENIX Association</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="561" to="577" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">V</forename><surname>Sanh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Debut</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Chaumond</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Wolf</surname></persName>
		</author>
		<idno>ArXiv abs/1910.01108</idno>
		<ptr target="https://api.semanticscholar.org/CorpusID:203626972" />
		<title level="m">Distil-BERT, a distilled version of BERT: smaller, faster, cheaper and lighter</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Honnibal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Montani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Van Landeghem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Boyd</surname></persName>
		</author>
		<title level="m">spaCy: Industrial-strength Natural Language Processing in Python</title>
				<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding</title>
		<author>
			<persName><forename type="first">J</forename><surname>Devlin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M.-W</forename><surname>Chang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Toutanova</surname></persName>
		</author>
		<idno type="DOI">10.18653/v1/N19-1423</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies</title>
		<title level="s">Long and Short Papers</title>
		<editor>
			<persName><forename type="first">J</forename><surname>Burstein</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Doran</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">T</forename><surname>Solorio</surname></persName>
		</editor>
		<meeting>the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies<address><addrLine>Minneapolis, Minnesota</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2019">2019</date>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="4171" to="4186" />
		</imprint>
	</monogr>
	<note>Association for Computational Linguistics</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">On combining classifiers, Pattern Analysis and Machine Intelligence</title>
		<author>
			<persName><forename type="first">J</forename><surname>Kittler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hatef</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Duin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Matas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="page" from="226" to="239" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">An algebraic approach to rulebased information extraction</title>
		<author>
			<persName><forename type="first">F</forename><surname>Reiss</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Raghavan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Krishnamurthy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Zhu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Vaithyanathan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE 24th International Conference on Data Engineering</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2008">2008. 2008</date>
			<biblScope unit="page" from="933" to="942" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">Actor model of computation: Scalable robust information systems</title>
		<author>
			<persName><forename type="first">C</forename><surname>Hewitt</surname></persName>
		</author>
		<idno type="arXiv">arXiv:1008.1459</idno>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Oversubscription on multicore processors</title>
		<author>
			<persName><forename type="first">C</forename><surname>Iancu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Hofmeyr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Blagojević</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zheng</surname></persName>
		</author>
		<idno type="DOI">10.1109/IPDPS.2010.5470434</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE International Symposium on Parallel &amp; Distributed Processing (IPDPS)</title>
				<imprint>
			<date type="published" when="2010">2010. 2010</date>
			<biblScope unit="page" from="1" to="11" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
