All the aforementioned applications are hereby expressly incorporated by reference herein in their entirety.
The present disclosure relates generally to machine learning models and neural networks, and more specifically, to query autocompletion.
Query AutoCompletion (QAC) provides an automatic mechanism to complete a search query based on limited user input, e.g., given a user-entered incomplete input prefix consisting of a number of characters entered into a search box, QAC provides alternative ways of extending the prefix into a full query, thus saving the user from further key strokes to manually complete the query. For example, QAC on average may reduce the user's typing from 25% to 50% and has widely used to promote the user satisfaction. QAC application is not only applied in search engines but also has become a part of other various services in other online platforms such as FACEBOOK®, TWITTER®, AMAZON®, and YOUTUBE®. Existing QAC systems generally rely on previously search history and is often unable to address prefixes not seen in the past or may require heavy computation at runtime to complete the incomplete query for a large-scale system.
Therefore, there is a need for an efficient QAC system.
In the figures and appendix, elements having the same designations have the same or similar functions.
Query AutoCompletion (QAC) provides an automatic mechanism to complete a search query based on limited user input. Existing QAC system may adopt a lookup-based approach, which stores the past query history and retrieves the queries that match the user prefix from the database. The lookup-based approach may suggest query completions with good speed, e.g., almost instantaneously in the order of microseconds. However, when the queries are new and unseen, e.g., “COVID-19,” it becomes challenging for the lookup-based system to provide accurate completions, as the unseen queries cannot be retrieved from the database. These unseen queries are often referred to as the long-tail queries.
Another existing QAC system uses a neural language model trained with the past query data to generate complete queries based on user entered prefixes and has been shown to improve the completion accuracy for unseen queries. The generative model, however, comes at a cost: querying the language model and performing a beam search requires heavy computation, which makes it difficult to scale for large search engines. For example, the completion runtime for the generative model can be as high as in the order of milliseconds, lagging behind the lookup-based approach by three orders of magnitude. The large gap in computational efficiency serves as one of the major bottlenecks for adopting a generative query completion system in a large scale, despite superior completion accuracy.
In view of the need for an accurate and efficient QAC mechanism, embodiments described herein provide a fully-generative QAC framework based on a subword encoder and an n-gram language model at subword level. Specifically, the QAC framework employs subword encoder that encodes or converts the sequence of input characters (alphabet letters) into a sequence of output characters (subwords). The generated subword candidate sequences from the subword encoder is then for the n-gram language model to perform beam search to generate completion candidates.
During the training stage, a subword vocabulary set is extracted from a training dataset—usually the past query history—and the subword encoder is constructed as a finite state transducer (FST). An n-gram language model is then trained at the subword-level and represented as a weighted FST using the training dataset. The n-gram language model is then used to precompute and store completion candidates according to the subword vocabulary set.
For example, as user queries for search engines are in general short, e.g., ranging from 10 to 30 characters, the n-gram language model at subword level may be used for modeling such short contexts and outperforms the traditional language model in both completion accuracy and runtime speed. Furthermore, key computations are performed prior to the runtime (e.g., during training stage) to prepare segmentation candidates in support of the subword encoder to generate subword candidate sequences and to prepare completion candidates by the n-gram model, thus eliminating significant computational overhead at runtime.
As herein, the term “subword” refers to words that consist of a continuous sequence of characters within a word. For example, subwords of the word “michael” may be “m”, “mi”, “mic”, “mich”, . . . , “michael”, “i”, “ic”, “ich”, . . . , “ichael”, “c”, “ch”, etc.
As herein, the term “subword encoder” refers to an entity that encodes or converts a sequence of input characters (alphabet letters) into a sequence of output characters (subwords). A subword-level language model encodes an input sentence at the subword-level such that the sequence length is shorter compared to the character representation, and at the same time it resolves out of vocabulary (00V) issues inherent in the word-level representation. The subword encoder described herein employs the longest prefix matching (LPM) algorithm, which is a deterministic segmentation method in which characters are encoded into the longest matching subwords from left to right. Specifically, an LPM encoder only merges characters from left to right in a greedy fashion. In this way, the LPM requires a fewer number of potential segmentation boundaries, and a direct translation to a finite state transducer (FST) is feasible. The former results in reduced search space, while the latter enables the QAC framework to precompute all segmentation variations in advance, contributing to runtime efficiency.
As used herein, the term “network” may comprise any hardware or software-based framework that includes any artificial intelligence network or system, neural network or system and/or any training or learning models implemented thereon or therewith.
As used herein, the term “module” may comprise hardware or software-based framework that performs one or more functions. In some embodiments, the module may be implemented on one or more neural networks.
Overview
The drop-down menu 110 at the search field 105 shows a list of suggested query terms such as “BANANA,” “BAGEL,” that attempt to automatically complete the user entered query prefix “BA.” The suggested query terms may be provided by the QAC mechanism described throughout this application. In this way, the user may select one of the suggested query terms form the drop-down menu 110 without manually entering the full query term in the query field 105, thus saving time from manual typing.
The extracted subword vocabulary 203 may then be used to construct the subword encoder 202 as an FST. The construction of the FST-based subword encoder 202 is further described in relation to
For every possible query prefix, the subword encoder 202 may generate all subword sequences that can result from the respective query prefix. For instance, for the query prefix of “BA,” suppose that the subword vocabulary contains only three subwords that start with the letter “A,” namely “A,” “AN,” and “AG,” and there is no subword that starts with “BA.” Then, any query that begins with the prefix “BA” must begin with prefix “B/A/”, “B/AG/”, or “B/AN/” in its subword representation. Thus the segmentation search operation 212 may return all the possible query prefixes as the segmentation candidates. The precomputed segmentation candidates for the query prefix “BA” is stored in the segmentation database 219a. Similarly, segmentation candidates for various query prefixes may be precomputed and cached at the segmentation database 219a. It is noted that the segmentation search for a given query prefix may take place at inference stage in response to a received query prefix. Alternatively, segmentation candidates according to all possible queries may be precomputed and cached at the segmentation database 219a to accelerate computation at inference stage.
In another embodiment, the subword encoder 202 may be used to encode the training data from the query logs 201. For example, the encoded subwords 205 can be used to construct a n-gram language model 204 as a weighted FST at the subword-level. In one implementation, Open-FST and OpenGRM NGram libraries are used for all FST-related operations.
The n-gram language model 204 may be a language model that estimates the probability distribution of a sequence of tokens y=(y1, y2, . . . , yl) as:
A fully-generative QAC system may find the best sequence of tokens with the highest probability among all sequences that start with the user's input prefix. The search is typically approximated by a beam search for efficiency.
In the n-gram language model 204, the conditional dependency is limited to a fixed number of tokens, thereby modeled as an n-th order Markov model. That is, the conditional probability of a token given a long history is approximated by limiting the history to the last n−1 tokens:
p(yj|y1,y2, . . . ,yj−1)≈p(yj|yj−n+1,yj−n+2, . . . ,yj−1).
Here, the n-gram language model 204 is employed because its unique data structure enables generation of query completions prior to runtime. Specifically, even if the n-gram model 204 may not be as effective as a neural model for a long sequence, but it can be powerful when the sequence length is close to its order n. Most of the user queries entered in search engines are relatively short, consisting of only several words. As an illustrative example, the mean query length of the public AOL dataset is 18 characters-long. This can be further reduced to less than 6 by encoding the queries with subword vocabulary of size 4096. For example, a 5-gram model may outperform neural models in completion accuracy by a large margin.
In addition, n-gram models may require a larger memory footprint than a neural model because it stores probability distributions in the model. The large space complexity makes it challenging to deploy an n-gram model in systems with hard memory constraint, such as mobile devices. In typical large-scale servers, however, memory resources are cheap and abundant. Therefore, the n-gram language model 204 pruning techniques can effectively reduce the model size, albeit with a slight decrease in the completion accuracy.
The weighted FST representation of the n-gram model 204 maps the model's n-gram history into states. The weighted FST may assign every query into one of its states and in this way, beam search may be performed at each state 214 to enumerate each state and perform beam search 214 during the training stage. This technique removes the primary computational bottleneck in the generative approach, leading to 100× speed-up at runtime. Further details of the weighted FST representation of the n-gram language model 204 are discussed in relation to
In one embodiment, during the training stage, the subword encoder 202 and the n-gram language model 204 are constructed. During inference stage (as further shown in
Alternatively, in one embodiment, as described above, to improve execution speed at runtime, segmentation candidates 205 may be precomputed and cached from each state of the subword encoder 202 for every possible query. Meanwhile, the completion candidates may also be precomputed for every possible query and cached from beam search operation 214. It is worth noting that the precomputation for every possible query input is made possible because the context is limited by using the n-gram language model 204 (instead of a neural model). Thus, the top-k completion candidates for every n-gram history can be precomputed and cached in the completion database 219b prior to runtime. As the computational overhead for segmentation search 212 and beam search 214 has been largely resolved at training stage, the computations performed during the inference stage, e.g., in response to a real-time query prefix, can be minimal.
The n-gram language model 204 may then retrieve precomputed completion candidates 315a-c for each segmentation candidate 305a-c. For example, for segmentation candidate “B/A” 305a, n-gram language model 204 may retrieve the corresponding top 2 completions 315a as “B/A/CO/N” with a likelihood of “−2.5” and “B/A/S/IL” with a likelihood of “−3.4”. For segmentation candidate “B/AG” 305b, n-gram language model 204 may retrieve the corresponding top 2 completions 315b as “B/AG/EL” with a likelihood of “−2.1” and “B/AG/U/ET/TE” with a likelihood of “−2.3”. For segmentation candidate “B/AN” 305ac n-gram language model 204 may retrieve the corresponding top 2 completions 315c as “B/AN/AN/A” with a likelihood of “−1.8” and “B/AN/AN/A/BR/EA/D” with a likelihood of “−5.3”. Among the retrieved completion candidates 315a-c, the sort module 320 may select the top 2 candidates 325 with the highest likelihood, e.g., “BANANA” with a likelihood score of “−1.8” and “BAGEL” with a likelihood score of “−2.1.” The top two candidates 325 may then be presented to the user as the suggested completion query, e.g., at 110 shown in
Therefore, in this way, at runtime, the QAC system may retrieve precomputed completion candidates to return to the user interface for completing a query prefix with little computational overhead. Runtime processing efficiency can thus be largely improved, which allows the query completion process shown by diagram 100 in
Computer Environment
Memory 420 may be used to store software executed by computing device 400 and/or one or more data structures used during operation of computing device 400. Memory 420 may include one or more types of machine readable media. Some common forms of machine readable media may include floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.
Processor 410 and/or memory 420 may be arranged in any suitable physical arrangement. In some embodiments, processor 410 and/or memory 420 may be implemented on a same board, in a same package (e.g., system-in-package), on a same chip (e.g., system-on-chip), and/or the like. In some embodiments, processor 410 and/or memory 420 may include distributed, virtualized, and/or containerized computing resources. Consistent with such embodiments, processor 410 and/or memory 420 may be located in one or more data centers and/or cloud computing facilities.
In some examples, memory 420 may include non-transitory, tangible, machine readable media that includes executable code that when run by one or more processors (e.g., processor 410) may cause the one or more processors to perform the methods described in further detail herein. For example, as shown, memory 420 includes instructions for a QAC module 430 that may be used to implement and/or emulate the systems and models, and/or to implement any of the methods described further herein. In some examples, the QAC module 430, may receive an input 440, e.g., such as a user input prefix of a query, via a data interface 415. The data interface 415 may be any of a user interface that receives a user entered input, or a communication interface that may receive or retrieve a query prefix from a database. The QAC module 430 may generate an output 450 such as one or more suggested complete queries.
In some embodiments, the QAC module 430 includes a subword encoder 431, an n-gram language model 432, a segmentation precomputation module 433 and a beam search precomputation module 434. Specifically, the subword encoder 431 (similar to subword encoder 202 in
In some examples, the QAC module 430 and the sub-modules 431-234 may be implemented using hardware, software, and/or a combination of hardware and software.
QAC Process
At process 502, a training dataset of past query history may be received. For example, the query log 201 comprising various past queries in
At process 504, a subword vocabulary set may be extracted from the training dataset. For example, the subword vocabulary set may include various subwords that appear in the query log.
At process 506, a subword encoder is constructed as a finite state transducer (FST) that converts a sequence of input characters into one or more sequences of subwords, based on the subword vocabulary set from the training dataset. For example, further details of FST construction may be described in relation to
Method 500 may proceed from process 506 into two branches, which may occur concurrently, alternately or in any other order. In one embodiment, method 500 may proceed to process 509, at which the subword encoder may compute, for every possible query of a finite length, a set of segmentation candidates. The computation may be performed based on the FST construction process shown in
In another embodiment, method 500 may proceed from process 506 to process 508, where the query log may be encoded at the subword level by the subword encoder (constructed at process 506) as a single deterministic segmentation. At process 510, an n-gram language model at subword level as a weighted FST may be constructed. For example, the weighted FST may be constructed using the OpoenGRM N-Gram library (see Roark et al., the OpenGRM open-source finite-state grammar software libraries, in Proceedings of the ACL 2012 System Demonstrations. Association for Computational Linguistics, pp. 61-66, 2012, which is hereby expressly incorporated by reference herein in its entirety.
At process 512, for every possible user query, a plurality of completion candidates may be precomputed using the n-gram model, e.g., by beam search at every state of the n-gram weighted FST. For example, further details of the completion search may be described in relation to
At process 514, the computed completion candidates for query autocompletion may be stored, e.g., at the completion database 219b for retrieval at the inference stage.
Specifically, let χ, be a set of input characters x and output subwords y, respectively. χ includes normalized alphabet letters and some punctuation marks, and includes variations of concatenations of input characters. An FST encoder E transduces a sequence of characters x=(x1, x2, . . . , xm) into a sequence of subwords y=(y1, y2, . . . , yn), assuming that the subword alphabet set is the superset of the input alphabet set, i.e., χ⊆.
At process 602, a trie (e.g., a prefix tree) data structure is constructed with the subword vocabulary as the keys. For example, as shown in
At process 604, a transition is added from each exit state to the start state with input label ϕ and the output label y associated with the respective exit state. Specifically, ϕ denotes a special symbol for a failure or a fallback transition, which is taken only if there is no outgoing transition that matches the given input. For example, as shown at stage 604 in
Noted that at stage 604, not every input sequence can be encoded at this stage. For example, E can encode an input “BANANA” into the output subwords “B/ANAN/A/”, but cannot encode an input “ANN”, as there is no viable transition for the last input character “N” at state 2. Further fallback transitions are added at stage 606.
At process 606, a breadth-first traversal is performed to add a ϕ-transition at every intermediate state. Specifically, the breadth-first traversal traverses all states in the subword encoder from the start state and adds a series of ϕ-transitions, if it is not at the start state and does not already have a ϕ-transition. Thus, the ϕ-transitions allow the encoder to fall back to the next longest subword matching the input prefix. It recursively follows the fallback path from the previous state and makes one more transition matching the last character in the input. Further details of the breadth-first traversal method to add a failure or fallback transition are described in relation to
For example, here, the method Transition(p, x) is defined as: if the input symbol x is not 0, the method will make a matching transition from the state p (may be preceded by one or more consecutive ϕ-transitions until the matching arc is found). If x is ϕ, the method will make a single ϕ-transition. In both cases, if a ϕ-transition is the only outgoing arc at the destination state (e.g., at states 4, 5 and 6 shown in trie structure 605 at stage 604 in
As shown in
The encoder E is configured to convert a complete query into its subword sequence, but it may encounter the segmentation boundary problem for a partial query prefix. For example, a prefix “BAN” may be the query “BAN” itself, to be encoded as a sequence of subwords “B/A/N/”, but also can be a prefix to “BANANA”, to be encoded as “B/ANAN/A/” by the FST encoder 610. In this example, the first token “B/” is determinate, but the second token is unknown and can be either “A/” or “ANAN/”, depending on the future input. Thus, every possible segmentation candidate needs to be considered during the beam search in order to provide accurate completions to the user.
Specifically, from the start state of the encoder E, the algorithm iterates other states in a breadth-first manner. At each iterated state, the algorithm determines whether to add the ϕ-transition. For example, a flag “addflag” may be added to the currently iterated state if the currently iterated state is not at the start state and does not already have a ϕ-transition. Thus, for states that have been flagged with “addflag,” the ϕ-transition may be added. The output label of the respective state may be the concatenation of the output label of the previous state and the output label of the transited state, e.g., “Concat(oabels1, olabels2).” Consecutive ϕ-transitions may be added to emit output labels, e.g., by adding new states and new arcs connecting the new states from the existing states, “E.AddArc(state, ϕ, olabels[i], newstate),” “state←new state.”
For example, performing the algorithm shown in 800 on trie structure 610 in
Unlike existing retracing algorithm, segmentation search of algorithm 800 does not need to retrace back to the very first character of the input; instead, algorithm 800 only retraces back to the first unknown character, reducing the number of candidates. Furthermore, the search is precomputed during the training stage, leading to higher efficiency. The memory space needed for storing the precomputed segmentation candidates can be significantly less compared to that for storing the completions candidates.
Each transition in the graph represents either the next symbol or a backoff, labeled by a ϕ-symbol. The ϕ-transition works the same way as defined in relation to
In the weighted FST 950 because every possible input sequence of a finite length is associated with one of the states in the model, each state is iterated and top-k completions are generated via beam search during the training stage. The standard beam search method may be employed to generate most likely sequences, which can be similar to the process described in Park et al., A Neural Language Model for Query Auto-Completion, in Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval, 2017, which is hereby expressly incorporated by reference herein in its entirety. Specifically, the beam search method is applied via the weighted FST (n-gram model) at a subword-level.
For example, a beam search with the beam width β is a breadth-first search where at each level of the search tree, only the top-β hypotheses are kept, reducing the search space. Running the beam search naively with an n-gram model can be slow because the search has to loop through the conditional probability p (y|h) for every token y∈. The greater the vocabulary size ||, the slower the search may run. This differs from an RNN language model where one forward step returns the vector of the conditional probabilities for every token at once. One way to expedite the search is to cache a fixed number of top transitions for each state. Once the beam search is complete on all of the states, the cache is no longer needed and can be removed. The memory complexity for storing the completions is O (klQ), where l is the average completion length, k denotes the top k results, and Q denotes the finite state set of the weighed FST. This technique is not feasible with neural models because there are intractable number of states in neural models.
At process 1005, a query prefix may be received from a user interface. For example, as shown in
At process 1010, a sequence of input characters may be formed based on the received query prefix.
At process 1020, the sequence may be encoded, by a subword encoder, into one or more candidate subword sequences at subword level. For example, one or more precomputed segmentation candidates may be retrieved corresponding to the query prefix from a segmentation database (e.g., database 219a in
At process 1025, for each segmentation candidate, a set of precomputed completion candidates and corresponding likelihood scores may be retrieved from a completion database (e.g., database 219b in
At process 1030, the top-k results with the highest likelihood among the completion candidates are selected.
At process 1035, the query completion results may be presented to the user via a user interface. For example, as shown in
Example Performance
The training dataset of a query log (e.g., 201 in
Three different models are trained: an 8-gram model at the character-level and two 5-gram subword models with the vocabulary size 256 and 4096. Sentence piece is used to extract subword vocabulary using the BPE model. We construct LPM encoders, train the n-gram models with KenLM, and convert to the weighted FSTs using OpenGRM NGram library. Both the segmentation and completions candidates are precomputed and stored in memory.
In one embodiment, two categories of performance metrics for the QAC system may be considered: 1) completion accuracy and 2) time and memory complexity at runtime. For example, completion accuracy measures how well suggested completions match the user's intended query in a QAC system. Higher accuracy leads to better user experience, as the system helps the user search for the intended query with fewer keystrokes. Two different metrics to quantify accuracy of the completions. The first is mean reciprocal rank (MRR), which is the standard measure for evaluating QAC systems. MRR for a test set P is evaluated as:
where || is the number of the prefixes tested, p is a test prefix provided to the system, and rp is the rank of the target query within the completion candidates. If the target query is not in the completion candidates, rp is defined to be ∞. The second is success rate, which measures the ratio of the target query found within the completions. Success rate differs from MRR in that each completion is equally rewarded irrespective of its ranking and is always greater or equal to MRR.
Time and memory complexity at runtime can be critical metrics for large-scale deployments. The time complexity is measured with raw runtime completion speed, measured in queries per second (QPS). Memory complexity is also measured by reporting the system's total memory footprint in resident set size (RSS) including the precomputed results.
The first row is obtained from an implementation of the traditional lookup-based approach in Yossef et al., Context-Sensitive Query Auto-Completion. In Proceedings of the 20th International Conference on World Wide Web, Association for Computing Machinery, pp. 107-116, referred to as MPC. Runtime performance is optimized by precomputing the top-k completions associated with each node in the trie. This approach runs the fastest at 220,000 QPS. However, the overall accuracy is low due to its inability to suggest unseen queries.
The second row is obtained from Beam Search (LSTM-256) in Wang et al., Realtime Query Completion via Deep Language Models, In Proceedings of eCOM@SIGIR, 2018. The overall accuracy is comparable to MPC but is slower by 1,000 times. The runtime we obtain (6 ms) is twice faster than reported (13 ms). A larger model is likely to improve the accuracy but at the expense of slower runtime: The Wang et al. method reports that LSTM-1024 is about 10 times slower than LSTM-256. It took about 8 hours to train the language model on the GPU.
Rows 3-5 are obtained from the char and SR models in Kim, Subword Language Model for Query Auto-Completion, in proceedings of EMNLP/IJCNLP, 2019, running on the GPU. The test with a batch size of 64 to take full advantage of the GPU hardware, expediting the runtime speed by six times than reported in Kim et al. The SR-4096 model (row 5) runs the fastest at 210 QPS among the generative systems employing neural models. It took more than 12 hours to train each of the language model on the GPU. Finally, the last three rows are obtained with the QAC system 200 in
As shown in
Some examples of computing devices, such as computing device 200 may include non-transitory, tangible, machine readable media that include executable code that when run by one or more processors (e.g., processor 210) may cause the one or more processors to perform the processes of method 400. Some common forms of machine readable media that may include the processes of method 400 are, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.
This description and the accompanying drawings that illustrate inventive aspects, embodiments, implementations, or applications should not be taken as limiting. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of this description and the claims. In some instances, well-known circuits, structures, or techniques have not been shown or described in detail in order not to obscure the embodiments of this disclosure Like numbers in two or more figures represent the same or similar elements.
In this description, specific details are set forth describing some embodiments consistent with the present disclosure. Numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It will be apparent, however, to one skilled in the art that some embodiments may be practiced without some or all of these specific details. The specific embodiments disclosed herein are meant to be illustrative but not limiting. One skilled in the art may realize other elements that, although not specifically described here, are within the scope and the spirit of this disclosure. In addition, to avoid unnecessary repetition, one or more features shown and described in association with one embodiment may be incorporated into other embodiments unless specifically described otherwise or if the one or more features would make an embodiment non-functional.
Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure and in some instances, some features of the embodiments may be employed without a corresponding use of other features. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. Thus, the scope of the invention should be limited only by the following claims, and it is appropriate that the claims be construed broadly and in a manner consistent with the scope of the embodiments disclosed herein.
This application is a nonprovisional of and claims priority under 35 U.S.C. 119 to commonly-owned U.S. provisional application No. 63/065,942, filed on Aug. 14, 2020. This application is related to co-pending and commonly-owned U.S. application Ser. No. 17/119,943, filed Dec. 11, 2020.
Number | Name | Date | Kind |
---|---|---|---|
9460088 | Sak | Oct 2016 | B1 |
9966066 | Corfield et al. | May 2018 | B1 |
10282663 | Socher et al. | May 2019 | B2 |
10474709 | Paulus | Nov 2019 | B2 |
10521465 | Paulus | Dec 2019 | B2 |
10542270 | Zhou et al. | Jan 2020 | B2 |
10558750 | Lu et al. | Feb 2020 | B2 |
10565305 | Lu et al. | Feb 2020 | B2 |
10565306 | Lu et al. | Feb 2020 | B2 |
10565318 | Bradbury | Feb 2020 | B2 |
10565493 | Merity et al. | Feb 2020 | B2 |
10573295 | Zhou et al. | Feb 2020 | B2 |
10592767 | Trott et al. | Mar 2020 | B2 |
10699060 | McCann | Jun 2020 | B2 |
10747761 | Zhong et al. | Aug 2020 | B2 |
10776581 | McCann et al. | Sep 2020 | B2 |
10783875 | Hosseini-Asl et al. | Sep 2020 | B2 |
10817650 | McCann et al. | Oct 2020 | B2 |
10839284 | Hashimoto et al. | Nov 2020 | B2 |
10846478 | Lu et al. | Nov 2020 | B2 |
20090106224 | Roulland et al. | Apr 2009 | A1 |
20160350653 | Socher et al. | Dec 2016 | A1 |
20170024645 | Socher et al. | Jan 2017 | A1 |
20170032280 | Socher | Feb 2017 | A1 |
20170140240 | Socher et al. | May 2017 | A1 |
20180096219 | Socher | Apr 2018 | A1 |
20180121788 | Hashimoto et al. | May 2018 | A1 |
20180121799 | Hashimoto et al. | May 2018 | A1 |
20180129931 | Bradbury et al. | May 2018 | A1 |
20180129937 | Bradbury et al. | May 2018 | A1 |
20180129938 | Xiong et al. | May 2018 | A1 |
20180268287 | Johansen et al. | Sep 2018 | A1 |
20180268298 | Johansen et al. | Sep 2018 | A1 |
20180336453 | Merity et al. | Nov 2018 | A1 |
20180373987 | Zhang et al. | Dec 2018 | A1 |
20190130248 | Zhong et al. | May 2019 | A1 |
20190130249 | Bradbury et al. | May 2019 | A1 |
20190130273 | Keskar et al. | May 2019 | A1 |
20190130312 | Xiong et al. | May 2019 | A1 |
20190130628 | Cao | May 2019 | A1 |
20190130896 | Zhou et al. | May 2019 | A1 |
20190140995 | Wu et al. | May 2019 | A1 |
20190188568 | Keskar et al. | Jun 2019 | A1 |
20190213482 | Socher et al. | Jul 2019 | A1 |
20190251431 | Keskar et al. | Aug 2019 | A1 |
20190258714 | Zhong et al. | Aug 2019 | A1 |
20190258939 | Min et al. | Aug 2019 | A1 |
20190286073 | Asl et al. | Sep 2019 | A1 |
20190355270 | McCann et al. | Nov 2019 | A1 |
20190362020 | Paulus et al. | Nov 2019 | A1 |
20200005765 | Zhou et al. | Jan 2020 | A1 |
20200065651 | Merity et al. | Feb 2020 | A1 |
20200084465 | Zhou et al. | Mar 2020 | A1 |
20200089757 | Machado et al. | Mar 2020 | A1 |
20200090033 | Ramachandran et al. | Mar 2020 | A1 |
20200090034 | Ramachandran et al. | Mar 2020 | A1 |
20200103911 | Ma et al. | Apr 2020 | A1 |
20200104643 | Hu et al. | Apr 2020 | A1 |
20200104699 | Zhou et al. | Apr 2020 | A1 |
20200105272 | Wu et al. | Apr 2020 | A1 |
20200117854 | Lu et al. | Apr 2020 | A1 |
20200117861 | Bradbury | Apr 2020 | A1 |
20200142917 | Paulus | May 2020 | A1 |
20200175305 | Trott et al. | Jun 2020 | A1 |
20200184020 | Hashimoto et al. | Jun 2020 | A1 |
20200234113 | Liu | Jul 2020 | A1 |
20200272940 | Sun et al. | Aug 2020 | A1 |
20200285704 | Rajani et al. | Sep 2020 | A1 |
20200285705 | Zheng et al. | Sep 2020 | A1 |
20200285706 | Singh et al. | Sep 2020 | A1 |
20200285993 | Liu et al. | Sep 2020 | A1 |
20200302178 | Gao et al. | Sep 2020 | A1 |
20200302236 | Gao et al. | Sep 2020 | A1 |
20200334334 | Keskar et al. | Oct 2020 | A1 |
20200364299 | Niu et al. | Nov 2020 | A1 |
20200372116 | Gao et al. | Nov 2020 | A1 |
20200372319 | Sun et al. | Nov 2020 | A1 |
20200372341 | Asai et al. | Nov 2020 | A1 |
Entry |
---|
Bert Tokenizer Source Code. https://github.com/google-research/bert/blob/eedl5716ce1268e56f0a50264a88cafad334ac61/tokenization.py#L311. Accessed: Jun. 29, 2020, (retrieved Dec. 10, 2020). |
OpenFst Library. http://www.openfst.org/twiki/bin/view/FST/WebHome. Accessed: Jul. 27, 2020, (retrieved Dec. 10, 2020). |
OpenGRM NGram Library. http://www.openfst.org/twiki/bin/view/GRM/NGramLibrary. Accessed: Jul. 1, 2020, retrieved Dec. 10, 2020). |
Subword Language Model for Query Auto-Completion, https://github.com/clovaai/subword-qac. Accessed: Jul. 1, 2020, retrieved Dec. 10, 2020). |
Allauzen et al., “OpenFst: A General and Efficient Weighted Finite-State Transducer Library,” CIAA 2007, LNCS 4783, pp. 11-23, 2007. |
Bar-Yossef et al., “Context-Sensitive Query Auto-Completion,” In Proceedings of the 20th International Conference on World Wide Web (Hyderabad, India) (WWW '11), Association for Computing Machinery, New York, NY, USA, 107-116. |
Bhatia et al., “Query Suggestions in the Absence of Query Logs,” In Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval (Beijing, China) (SIGIR '11), Association for Computing Machinery, New York, NY, USA, 795-804, 2011. |
Cai et al., “A Survey of Query Auto Completion in Information Retrieval,” Now Publishers Inc., Hanover, MA, USA, 1-33, 2016. |
Carbonell et al., “The Use of MMR, Diversity-Based Reranking for Reordering Documents and Producing Summaries,” In Proceedings of the 21st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (Melbourne, Australia) (SIGIR '98), Association for Computing Machinery, New York, NY, USA, 335-336, 1998. |
Chen et al., “An Empirical Study of Smoothing Techniques for Language Modeling,” In 34th Annual Meeting of the Association for Computational Linguistics, Association for Computational Linguistics, Santa Cruz, California, USA, 310-318, 1996. |
Church et al., “K-Best Suffix Arrays,” In Human Language Technologies 2007: The Conference of the North American Chapter of the Association for Computational Linguistics; Companion Volume, Short Papers. Association for Computational Linguistics, Rochester, New York, 17-20. 2007. |
Dai et al., Transformer-XL: Attentive Language Models beyond a Fixed-Length Context. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, Florence, Italy, 2978-2988, 2019. |
Devlin et al., “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,” In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, vol. 1 (Long and Short Papers), Association for Computational Linguistics, Minneapolis, Minnesota, 4171-4186, 2019. |
Drexler et al., “Learning a Subword Inventory Jointly with Endto-End Automatic Speech Recognition,” In ICASSP 2020—2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 6439-6443, 2020. |
Heafield, “KenLM: Faster and Smaller Language Model Queries,” In Proceedings of the Sixth Workshop on Statistical Machine Translation. Association for Computational Linguistics, Edinburgh, Scotland, 187-197, 2011. |
Heafield et al., “Scalable Modified Kneser-Ney Language Model Estimation,” In Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), Association for Computational Linguistics, Sofia, Bulgaria, 690-696, 2013. |
Hsu et al., “Space-Efficient Data Structures for Top-k Completion,” In Proceedings of the 22nd International Conference on World Wide Web (Rio de Janeiro, Brazil) (WWW 2013), Association for Computing Machinery, New York, NY, USA, 583-594, 2013. |
Kim, “Subword Language Model for Query Auto-Completion,” In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing, pp. 5022-5032, Hong Kong, China, Nov. 3-7, 2019. |
Kudo, “Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates,” Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Long Papers), pp. 66-75, Melbourne, Australia, Jul. 15-20, 2018. |
Kudo et al., “SentencePiece: A Simple and Language Independent Subword Tokenizer and Detokenizer for Neural Text Processing,” In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (System Demonstrations), pp. 66-71, Brussels, Belgium, Oct. 31-Nov. 4, 2018. |
Kuich and Salomaa (Eds.), “Semirings, Automata, Languages,” Springer-Verlag, Berlin, Heidelberg, 1985. |
Li et al., “Efficient Type-Ahead Search on Relational Data: A Tastier Approach,” In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data (Providence, Rhode Island, USA) (SIGMOD '09), Association for Computing Machinery, New York, NY, USA, 695-706. |
Maxwell et al., “Large-Scale Generative Query Autocompletion,” In Proceedings of the 22nd Australasian Document Computing Symposium (Brisbane, QLD, Australia) (ADCS 2017), Association for Computing Machinery, New York, NY, USA, Article 9, 8 pages, 2017. |
McCann et al., “The Natural Language Decathlon: Multitask Learning as Question Answering,” arXiv preprint arXiv: 1806.08730, 1-23, 2018. |
Mikolov et al., “Recurrent Neural Network Based Language Model,” Proceedings of the 11th Annual Conference of the International Speech Communication Association, Interspeech 2010 2, 1045-1048, 2010. |
Mitra et al., “Query Auto-Completion for Rare Prefixes,” In Proceedings of the 24th ACM International on Conference an Information and Knowledge Management (Melbourne, Australia) (CIKM '15). Association for Computing Machinery, New York, NY, USA, 1755-1758, 2015. |
Mohri et al., “Weighted FiniteState Transducers in Speech Recognition,” Computer Speech Language 16, 1 (Jan. 2002), 1-26. |
Park et al., “A Neural Language Model for Query Auto-Completion,” Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval 1-4, 2017. |
Pass et al., “A Picture of Search,” In Proceedings of the 1st International Conference on Scalable Information Systems (Hong Kong) (InfoScale '06), Association for Computing Machinery, New York, NY, USA, 1-es, 1-7, 2006. |
Provilkov et al., “BPE-Dropout: Simple and Effective Subword Regularization,” In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, Association for Computational Linguistics, Online, 1882-1892, 2020. |
Radford et al., “Language Models are Unsupervised Multitask Learners,” https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf, 1-24, 2018. |
Roark et al., “The OpenGrm open-source finite-state grammar software libraries,” In Proceedings of the ACL 2012 System Demonstrations. Association for Computational Linguistics, Jeju Island, Korea, 61-66, 2012. |
Schuster et al., “Japanese and Korean voice search,” In 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 5149-5152, 2012. |
Sennrich et al., “Neural Machine Translation of Rare Words with Subword Units,” In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), Association for Computational Linguistics, Berlin, Germany, 1715-1725, 2016. |
Shen et al., “Learning Semantic Representations Using Convolutional Neural Networks for Web Search,” In Proceedings of the 23rd International Conference on World Wide Web (Seoul, Korea) (WWW '14 Companion), Association for Computing Machinery, New York, NY, USA, 373-374, 2014. |
Siivola et al., “On Growing and Pruning Kneser-Ney Smoothed N -Gram Models,” IEEE Transactions on Audio, Speech, and Language Processing 15, 5 (2007), 1617-1624. |
Szpektor et al., “Improving Recommendation for Long-Tail Queries via Templates,” In Proceedings of the 20th International Conference on World Wide Web (Hyderabad, India) (WWW '11), Association for Computing Machinery, New York, NY, USA, 47-56, 2011. |
Vaswani et al., “Attention is All you Need,” In Advances in Neural Information Processing Systems 30, I. Guyon, J. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett (Eds.), Curran Associates, Inc., 5998-6008, 2017. |
Wang et al., “Realtime Query Completion via Deep Language Models,” In SIGIR eCom'18, Jul. 2018, Ann Arbor, Michigan, USA, 1-9, 2018. |
Wang et al., “An Investigation of Phone-based Subword Units for End-to-End Speech Recognition,” eess.AS, arXiv preprint arXiv:2004.04290, 1-6, 2020. |
Wu et al., “Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation,” arXiv preprint:1609.08144, 1-23, 2016. |
Zhang et al., “adaQAC: Adaptive Query Auto-Completion via Implicit Negative Feedback,” In Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval (Santiago, Chile) (SIGIR 15), Association for Computing Machinery, New York, NY, USA, 143-152, 2015. |
Number | Date | Country | |
---|---|---|---|
20220050876 A1 | Feb 2022 | US |
Number | Date | Country | |
---|---|---|---|
63065942 | Aug 2020 | US |