Embedding table querying method, system, and apparatus

By generating and storing fusion embedding vectors based on multiple embedding vectors, the problem of low efficiency of large-scale embedding table query is solved, and a faster query process is achieved.

WO2025066938A1PCT designated stage expired Publication Date: 2025-04-03HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/118820
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-09-13
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

As the data scale and machine learning model complexity increase, the dimensions of embedded vectors and the size of embedded tables also increase, resulting in reduced query efficiency of embedded tables.

Method used

By generating fusion embedding vectors generated based on multiple embedding vectors and storing the identification of these fusion embedding vectors in memory, the query device can directly query the target fusion embedding vector from the memory based on the embedding vector identification in the query request, avoiding multiple query of the embedding tables.

Benefits of technology

Improves query efficiency of embedded tables and reduces query time, especially when processing large-scale data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024118820_03042025_PF_FP_ABST
    Figure CN2024118820_03042025_PF_FP_ABST
Patent Text Reader

Abstract

An embedding table querying method, system, and apparatus. In the present application, at least one fusion embedding vector is stored in a first memory, any fusion embedding vector being generated on the basis of a plurality of embedding vectors in an embedding table. A querying apparatus receives a querying request, the querying request being used for requesting to query a target fusion embedding vector, and the target fusion embedding vector being generated on the basis of the plurality of embedding vectors in the embedding table. The querying apparatus queries the target fusion embedding vector from the first memory on the basis of identifiers of the plurality of embedding vectors carried in the querying request. The querying apparatus directly obtains the target fusion embedding vector from the first memory by using the identifiers of the plurality of embedding vectors carried in the querying request. The plurality of embedding vectors do not need to be queried from the embedding table multiple times to then generate the target fusion embedding vector on the basis of the plurality of embedding vectors, thus ensuring that the target fusion embedding vector can be quickly obtained and the efficiency of querying the embedding table is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Embedded table query method, system and device

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of the People's Republic of China on September 28, 2023, with application number 202311283490.6 and application name "A method, system and device for embedded table query", the entire contents of which are incorporated by reference into this application. Technical Field

[0003] The present application relates to the field of artificial intelligence, and in particular to an embedded table query method, system, and device. Background Art

[0004] Embedding vector is a data representation method commonly used in the field of artificial intelligence. Any entity, such as animals, plants, humans, objects, and text, can be represented by an embedding vector. In the field of artificial intelligence, subsequent operations can only be performed after the entity is converted into an embedding vector, such as training a machine learning model, such as inputting the embedding vector into a trained machine learning model to obtain the corresponding output. Therefore, in order to facilitate the rapid query of the embedding vector of an entity, the embedding vectors representing different entities can be collected to form an "embedding table", and the embedding vector representing the entity can be queried from the embedding table using the identifier of the embedding vector. Among them, the identifier of the embedding vector is the information that uniquely identifies the embedding vector set in advance for the embedding vector.

[0005] However, as data size and machine learning model complexity increase, the dimensionality of embedding vectors and the size of embedding tables also increase. For example, when processing large-scale text data, the vocabulary size involved may reach millions or even tens of millions. If the dimensionality of the embedding vector for each word reaches hundreds of dimensions, the embedding table will also become very large, and the difficulty of querying embedding vectors in such an embedding table will also increase.

[0006] Summary of the Invention

[0007] The embodiments of the present application provide an embedded table query method, system, and device for improving the query efficiency of the embedded table.

[0008] In a first aspect, an embodiment of the present application provides an embedding table query method, which can be executed by a query device, wherein the query device is capable of obtaining a fused embedding vector from a first memory, wherein the first memory stores at least one fused embedding vector, and any fused embedding vector is generated based on multiple embedding vectors in the embedding table.

[0009] First, the query device can receive a query request sent by a device outside the query device (such as a processor in the computing device where the query device is located, or a computing device outside the computing device where the query device is located), and the query request is used to request a target fusion embedding vector, and the target fusion embedding vector is generated based on multiple embedding vectors in the embedding table.

[0010] After receiving the query request, the query device queries the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request, wherein the identifiers of the multiple embedding vectors carried in the query request are the identifiers of the multiple embedding vectors based on which the target fused embedding vector is generated.

[0011] The query device searches the first memory for the target fused embedding vector and can feed back the target fused embedding vector to the device that initiated the query request. If the query device does not search the first memory for the target fused embedding vector, the query device can notify the device that initiated the query request that the query failed. Alternatively, the query device can obtain a candidate fused embedding vector close to the target fused embedding vector from the first memory and feed back the candidate fused embedding vector to the device that initiated the query request (the query method for the candidate embedding vector will be described below).

[0012] With the above method, because the first memory stores a fused embedding vector generated based on multiple embedding vectors, the query device can directly retrieve the target fused embedding vector from the first memory using the identifiers of the multiple embedding vectors carried in the query request. This eliminates the need to repeatedly query the embedding table for multiple embedding vectors and then generate the target fused embedding vector based on these multiple embedding vectors. This ensures that the target fused embedding vector can be quickly obtained, improving the efficiency of embedding table queries.

[0013] In one possible implementation, when the multiple fused embedding vectors stored in the first memory include a target fused embedding vector, when the query device queries the target fused embedding vector from the first memory based on the identifiers of the multiple embedding vectors carried in the query request, it can first determine the fusion identifier of the target fused embedding vector based on the identifiers of the multiple embedding vectors carried in the query request; then, based on the fusion identifier of the target fused embedding vector, determine the storage address of the target fused embedding vector in the first memory from the mapping information recorded by the query device, wherein the mapping information indicates a mapping relationship between the storage addresses of the multiple fused embedding vectors in the first memory and the fusion identifiers of the multiple fused embedding vectors. After determining the storage address of the target fused embedding vector in the first memory, the query device obtains the target fused embedding vector from the first memory based on the storage address of the target fused embedding vector.

[0014] Through the above method, the query device stores the mapping relationship between the storage addresses of multiple fused embedded vectors in the first memory and the fusion identifiers of multiple fused embedded vectors, so that the query device can quickly determine whether the target fused embedded vector is stored in the first memory with the help of the fusion identifier of the target fused embedded vector, and can also more conveniently determine the storage address of the target fused embedded vector so that the target fused embedded vector can be obtained from the first memory later.

[0015] In one possible implementation, regardless of whether the target fusion embedding vector is included in the multiple fusion embedding vectors stored in the first memory, the query device can obtain a candidate fusion embedding vector that is close to the target fusion embedding vector from the first memory. The following describes how the query device obtains the candidate fusion embedding vector: the query device can first determine the fusion identifier of the target fusion embedding vector based on the identifiers of the multiple embedding vectors; then, determine the fusion identifier of the candidate fusion embedding vector based on the fusion identifier of the target fusion embedding vector, and the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range. The difference represents the degree of difference between the multiple embedding vectors based on which the target fusion embedding vector is generated and the multiple embedding vectors based on which the candidate fusion embedding vector is generated.

[0016] In the embodiments of the present application, the fusion identifier of any fused embedding vector (such as the fusion identifier of the candidate fused embedding vector and the fusion identifier of the target fused embedding vector) not only has the function of identifying the fused embedding vector, but also can, to a certain extent, characterize the multiple embedding vectors based on which the fused embedding vector is generated. The multiple embedding vectors based on which the candidate fused embedding vector is generated and the multiple embedding vectors based on which the target fused embedding vector is generated have the same embedding vectors, that is, the smaller the difference between the multiple embedding vectors based on which the candidate fused embedding vector is generated and the multiple embedding vectors based on which the target fused embedding vector is generated, the closer the candidate fused embedding vector is to the target fused embedding vector.

[0017] After determining the fusion identifier of the candidate fused embedding vector, the query device obtains the candidate fused embedding vector from the multiple fused embedding vectors in the first memory based on the fusion identifier of the candidate fused embedding vector. The query device can query mapping information based on the fusion identifier of the candidate fused embedding vector to determine the storage address of the candidate fused embedding vector in the first memory, and then obtain the candidate fused embedding vector based on the storage address of the candidate fused embedding vector. The query device can feedback the candidate fused embedding vector to the device that initiated the query request.

[0018] After obtaining the candidate fusion embedding vector, the device that initiates the query request can determine the target fusion embedding vector based on the candidate fusion embedding vector.

[0019] Through the above method, the query device can obtain the candidate fusion embedding vector from the first memory and feed back the candidate fusion embedding vector to the device that initiates the query request, ensuring that the device can use the candidate fusion embedding vector to generate the target fusion embedding vector, and can also avoid the device from querying the embedding table multiple times.

[0020] In one possible implementation, the multiple embedding vectors based on which the candidate fused embedding vector is generated and the multiple embedding vectors based on which the target fused embedding vector is generated may have the same embedding vectors, or different embedding vectors. These different embedding vectors may be of two types: one type is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fused embedding vector is generated, but exists in the multiple embedding vectors based on which the target fused embedding vector is generated. For ease of explanation, this type of embedding vector is referred to as a first-class embedding vector. The other type is an embedding vector that exists in the multiple embedding vectors based on which the candidate fused embedding vector is generated, but does not exist in the multiple embedding vectors based on which the target fused embedding vector is generated. For ease of explanation, this type of embedding vector is referred to as a second-class embedding vector.

[0021] The different embedding vectors between the multiple embedding vectors based on which the candidate fused embedding vector is generated and the multiple embedding vectors based on which the target fused embedding vector is generated may include only one type of embedding vector, or only two types of embedding vectors, or one type of embedding vector and two types of embedding vectors.

[0022] The query device may determine the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the fusion identifier of the candidate fused embedding vector.

[0023] After determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, the query device may feed back the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector to the device that initiated the query request.

[0024] After obtaining the identification of the first type of embedding vector and / or the identification of the second type of embedding vector, the device that initiates the query request can obtain the first type of embedding vector and / or the second type of embedding vector based on the identification of the first type of embedding vector and / or the identification of the second type of embedding vector, and determine the target fusion embedding vector based on the candidate fusion embedding vector and the first type of embedding vector and / or the second type of embedding vector.

[0025] Through the above method, the query device can determine the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, and can provide the different embedding vectors between the candidate fusion embedding vector and the target fusion embedding vector to the device that initiates the query request, so that the device that initiates the query request can use the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector to obtain the first type of embedding vector and / or the second type of embedding vector, and then generate the target fusion embedding vector.

[0026] In one possible implementation, the query device has the ability to generate and decode a fusion identifier. When the fusion identifier is generated based on the identifiers of multiple embedding vectors, the query device can determine the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector was generated based on the fusion identifier of the candidate fusion embedding vector. The query device then determines the identifier of the first category of embedding vector and / or the identifier of the second category of embedding vector by comparing the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector was generated with the identifiers of the multiple embedding vectors carried in the query request.

[0027] Through the above method, the query device can decode the identifiers of multiple embedding vectors based on which the candidate fusion embedding vector is generated from the fusion identifier of the candidate fusion embedding vector. Subsequently, it only needs to compare with the identifiers of multiple embedding vectors carried in the query request to quickly determine the identifier of the first category of embedding vector and / or the identifier of the second category of embedding vector.

[0028] In one possible implementation, the fusion identifier is generated based on the identifiers of multiple embedded vectors. For example, each bit in the fusion identifier corresponds to an embedded vector or a combination of multiple embedded vectors. When determining the identifier of the first type of embedded vector and / or the identifier of the second type of embedded vector, the query device can determine the identifier of the first type of embedded vector and / or the identifier of the second type of embedded vector based on the different bits in the fusion identifier of the candidate fusion embedded vector and the fusion identifier of the target fusion embedded vector.

[0029] Through the above method, by comparing the fusion identifier of the candidate fusion embedding vector with the fusion identifier of the target fusion embedding vector, the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector can be conveniently determined.

[0030] In one possible implementation, the first memory stores a candidate fused embedding vector and identifiers of multiple embedding vectors based on which the candidate fused embedding vector is generated. The candidate fused embedding vector and the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated can be stored at a location indicated by the storage address of the candidate fused embedding vector. When determining the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors, the query device obtains the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated from the first memory; thereafter, the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors is determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

[0031] Through the above method, the first memory stores the identifiers of multiple embedding vectors based on which the candidate fusion embedding vector is generated. When the query device obtains the candidate embedding vector from the first memory, it can also conveniently obtain the identifiers of multiple embedding vectors based on which the candidate fusion embedding vector is generated, thereby ensuring that the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector can be quickly determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

[0032] In one possible implementation, the query device includes a CAM, which stores mapping information. When the query device determines the storage address of the target fusion embedded vector in the first memory from the mapping information recorded by the query device based on the fusion identifier of the target fusion embedded vector, the query device can input the fusion identifier of the target fusion embedded vector into the CAM and determine the storage address of the target fusion embedded vector based on the CAM output.

[0033] Through the above method, the way in which the CAM stores mapping information can ensure that the query device can quickly determine the storage address of the target fused embedding vector using the fusion identifier of the target fused embedding vector.

[0034] In one possible implementation, the query device may further perform preliminary filtering before querying the target fused embedding vector from the first memory based on the identifiers of the multiple embedding vectors carried in the query request. For example, the query device may first determine whether the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set, where the identifier set includes the identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated. After determining that the identifiers of the multiple embedding vectors carried in the query request belong to the identifier set, the target fused embedding vector is then queried from the first memory. After determining that the identifiers of the multiple embedding vectors carried in the query request do not belong to the identifier set, the query request may be rejected.

[0035] Through the above method, the query device can promptly determine whether the target fused embedding vector is likely to be stored in the first memory through preliminary filtering.

[0036] In one possible implementation, a Bloom filter or a cuckoo filter is provided inside the query device, and the Bloom filter or the cuckoo filter records an identifier set. When the query device determines that the identifiers of the multiple embedded vectors carried in the query request belong to the identifier set, the Bloom filter or the cuckoo filter can be called to determine that the identifiers of the multiple embedded vectors carried in the query request belong to the identifier set.

[0037] Through the above method, the Bloom filter or the Cuckoo filter is used to implement preliminary filtering, which is relatively simple and easy to implement.

[0038] In a second aspect, an embodiment of the present application provides an embedded table query system, comprising at least one first memory and at least one query device, wherein each first memory corresponds to a query device. The beneficial effects can be found in the relevant description of the first aspect and will not be repeated here.

[0039] For any first memory, the first memory stores a plurality of fused embedding vectors, each fused embedding vector being generated based on an embedding vector in the embedding table.

[0040] For the query device corresponding to the first memory, the query device can receive a query request, where the query request is used to request a target fusion embedding vector, where the target fusion embedding vector is generated based on multiple embedding vectors in the embedding table; and query the target fusion embedding vector from the corresponding first memory according to the identifiers of the multiple embedding vectors carried in the query request.

[0041] When the query device queries the target fusion embedding vector from the corresponding first memory, it can feedback the target fusion embedding vector to the device that initiated the query request. When the query device fails to query the target fusion embedding vector from the corresponding first memory, it can notify the device that initiated the query request that the target fusion embedding vector has not been found; or the query device can query the candidate fusion embedding vector from the first memory and feedback the candidate fusion embedding vector to the device that initiated the query request (the manner in which the query device queries the candidate fusion embedding vector will be described below).

[0042] In one possible implementation, for any first memory, when the multiple fused embedding vectors stored in the first memory include a target fused embedding vector, the query device corresponding to the first memory determines the fusion identifier of the target fused embedding vector based on the identifiers of the multiple embedding vectors; then, the storage address of the target fused embedding vector in the first memory is determined from the mapping information recorded by the query device based on the fusion identifier of the target fused embedding vector, wherein the mapping information indicates the mapping relationship between the storage addresses of the multiple fused embedding vectors in the first memory and the fusion identifiers of the multiple fused embedding vectors; then, the target fused embedding vector is obtained from the first memory based on the storage address of the target fused embedding vector.

[0043] In one possible implementation, for any first memory, regardless of whether the multiple fusion embedding vectors stored in the first memory include the target fusion embedding vector, the query device can determine the fusion identifier of the target fusion embedding vector based on the identifiers of the multiple embedding vectors; then, determine the fusion identifier of the candidate fusion embedding vector based on the fusion identifier of the target fusion embedding vector, and the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range, and the difference represents the degree of difference between the multiple embedding vectors based on which the target fusion embedding vector is generated and the multiple embedding vectors based on which the candidate fusion embedding vector is generated.

[0044] After determining the fusion identifier of the candidate fusion embedding vector, the query device obtains the candidate fusion embedding vector from the multiple fusion embedding vectors in the first memory according to the fusion identifier of the candidate fusion embedding vector. The query device can feedback the candidate fusion embedding vector to the device that initiated the query request.

[0045] In one possible implementation, the query device can also determine the identifier of a first-class embedding vector and / or the identifier of a second-class embedding vector based on the fusion identifier of the candidate fusion embedding vector, where the first-class embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and exists in the multiple embedding vectors based on which the target fusion embedding vector is generated; the second-class embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and does not exist in the multiple embedding vectors based on which the target fusion embedding vector is generated.

[0046] After determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, the query device may also feed back the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector to the device that initiated the query request.

[0047] In one possible implementation, when the query device determines the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors based on the fusion identifier of the candidate fused embedding vector, it can determine the identifiers of multiple embedding vectors based on which the candidate fused embedding vector is generated based on the fusion identifier of the candidate fused embedding vector; thereafter, by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request, the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors is determined.

[0048] In one possible implementation, when the query device determines the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors based on the fusion identifier of the candidate fusion embedding vector, the identifier of the first category of embedding vectors and / or the identifier of the second category of embedding vectors can be determined based on the bits with different values ​​in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector.

[0049] In one possible implementation, the first memory stores a candidate fusion embedding vector and identifiers of multiple embedding vectors based on which the candidate fusion embedding vector is generated. When the query device determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector based on the fusion identifier of the candidate fusion embedding vector, it can obtain the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector is generated from the first memory; thereafter, by comparing the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request, the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector is determined.

[0050] In one possible implementation, the query device includes a CAM, which stores mapping information. When the query device determines the storage address of the target fusion embedded vector in the first memory from the mapping information recorded by the query device based on the fusion identifier of the target fusion embedded vector, the query device can input the fusion identifier of the target fusion embedded vector into the CAM and determine the storage address of the target fusion embedded vector based on the CAM output.

[0051] In one possible implementation, before the query device queries the target fused embedding vector from the first memory based on the identifiers of the multiple embedding vectors carried in the query request, it can also determine that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set, and the identifier set includes the identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated.

[0052] In one possible implementation, a Bloom filter or a cuckoo filter is provided inside the query device, and the Bloom filter or the cuckoo filter records an identifier set. When the query device determines that the identifiers of multiple embedded vectors carried in the query request belong to the identifier set, the Bloom filter or the cuckoo filter can be called to determine that the identifiers of multiple embedded vectors carried in the query request belong to the identifier set.

[0053] In one possible implementation, the system includes multiple first memories, which constitute a multi-level storage in the computing device, wherein each first memory corresponds to a first-level storage in the multi-level storage.

[0054] In one possible implementation, the system further includes a processor in the computing device; the processor may serve as a device for initiating a query request, and the processor may send the query request to at least one query device sequentially or synchronously.

[0055] As a device that initiates a query request, the processor can receive the target fusion embedding vector and / or candidate fusion embedding vector fed back by the query device, and can also receive the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector fed back by the query device.

[0056] In one possible implementation, the system also includes a second memory in the computing device, and the second memory stores an embedding table. When the processor does not receive the target fusion embedding vector fed back by the query device, the processor queries the embedding table in the second memory respectively through the identifiers of the multiple embedding vectors, obtains the multiple embedding vectors, and generates a target fusion embedding vector based on the multiple embedding vectors.

[0057] When the processor receives the candidate fusion embedding vector fed back by the query device, and receives the identifier of the first category embedding vector and / or the identifier of the second category embedding vector fed back by the query device, the processor queries the embedding table in the second memory through the identifier of the first category embedding vector and / or the identifier of the second category embedding vector respectively, obtains the first category embedding vector and / or the second category embedding vector, and then generates a target fusion embedding vector based on the candidate fusion embedding vector, and the identifier of the first category embedding vector and / or the identifier of the second category embedding vector.

[0058] On the third aspect, the embodiment of the present application further provides a query device, which has the function of implementing the query device behavior in the method example of the first aspect above. The beneficial effects can be found in the description of the first aspect and will not be repeated here. The function can be implemented by hardware, or by hardware executing the corresponding software implementation. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the device includes an identification filtering module, an identification fusion module, and an address query module, which can execute the corresponding functions in the method example of the first aspect above. The beneficial effects can be found in the relevant description of the first aspect and will not be repeated here.

[0059] An address query module is configured to receive a query request, the query request being used to query a target fused embedding vector, where the target fused embedding vector is generated based on multiple embedding vectors in an embedding table; and query the target fused embedding vector from a first memory according to the identifiers of the multiple embedding vectors carried in the query request, wherein the first memory includes multiple fused embedding vectors, each of which is generated based on an embedding vector in the embedding table.

[0060] The address query module queries the target fusion embedding vector from the first memory and feeds back the target fusion embedding vector to the device that initiated the query request. When the address query module fails to query the target fusion embedding vector from the corresponding first memory, it can notify the device that initiated the query request that the target fusion embedding vector has not been found; or when the address query module queries the candidate fusion embedding vector from the first memory, it can feed back the candidate fusion embedding vector to the device that initiated the query request (the manner in which the address query module queries the candidate fusion embedding vector will be described below).

[0061] In one possible implementation, the multiple fusion embedded vectors stored in the first memory include a target fusion embedded vector, and the identification fusion module can determine the fusion identification of the target fusion embedded vector based on the identifications of the multiple embedded vectors; the address query module determines the storage address of the target fusion embedded vector in the first memory from the mapping information recorded by the query device based on the fusion identification of the target fusion embedded vector, wherein the mapping information indicates the mapping relationship between the storage addresses of the multiple fusion embedded vectors in the first memory and the fusion identifications of the multiple fusion embedded vectors; the target fusion embedded vector is obtained from the first memory according to the storage address of the target fusion embedded vector.

[0062] In one possible implementation, the identification fusion module can determine the fusion identification of the target fusion embedding vector based on the identifications of multiple embedding vectors; the address query module determines the fusion identification of the candidate fusion embedding vector based on the fusion identification of the target fusion embedding vector, and the difference between the fusion identification of the candidate fusion embedding vector and the fusion identification of the target fusion embedding vector is within a preset range, and the difference represents the degree of difference between the multiple embedding vectors based on which the target fusion embedding vector is generated and the multiple embedding vectors based on which the candidate fusion embedding vector is generated; the candidate fusion embedding vector is obtained from the multiple fusion embedding vectors in the first memory based on the fusion identification of the candidate fusion embedding vector.

[0063] In one possible implementation, the address query module can also determine the identifier of a first-class embedding vector and / or the identifier of a second-class embedding vector based on the fusion identifier of the candidate fusion embedding vector, where the first-class embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and exists in the multiple embedding vectors based on which the target fusion embedding vector is generated; the second-class embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and does not exist in the multiple embedding vectors based on which the target fusion embedding vector is generated.

[0064] In one possible implementation, when determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, the address query module determines the identifiers of multiple embedding vectors on which the candidate fused embedding vector is based based on the fusion identifier of the candidate fused embedding vector; and determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector by comparing the identifiers of the multiple embedding vectors on which the candidate fused embedding vector is based with the identifiers of the multiple embedding vectors carried in the query request.

[0065] In one possible implementation, when determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, the address query module determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector based on the different values ​​of the bits in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector.

[0066] In one possible implementation, the first memory stores a candidate fusion embedding vector and identifiers of multiple embedding vectors based on which the candidate fusion embedding vector is generated. When determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector, the address query module obtains the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector is generated from the first memory; by comparing the identifiers of the multiple embedding vectors based on which the candidate fusion embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request, the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector is determined.

[0067] In one possible implementation, the address query module includes a CAM, which stores mapping information. When the address query module determines the storage address of the target fusion embedded vector in the first memory from the mapping information recorded by the query device based on the fusion identifier of the target fusion embedded vector, the fusion identifier of the target fusion embedded vector is input into the CAM, and the storage address of the target fusion embedded vector is determined based on the CAM output.

[0068] In one possible implementation, the device also includes an identification filtering module, which determines that the identifiers of the multiple embedding vectors carried in the query request belong to an identification set before the address query module queries the target fused embedding vector from the first memory based on the identifiers of the multiple embedding vectors carried in the query request. The identification set includes the identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated.

[0069] In one possible implementation, a Bloom filter or a cuckoo filter is provided inside the identification filtering module, and the Bloom filter or the cuckoo filter records an identification set. The identification filtering module determines that the identifications of the multiple embedded vectors carried in the query request belong to the identification set, and calls the Bloom filter or the cuckoo filter to determine that the identifications of the multiple embedded vectors carried in the query request belong to the identification set.

[0070] In a fourth aspect, the present application also provides a computing device, which includes a query device and a first memory, and also includes a processor and a second memory, wherein the query device executes the method provided in the first aspect or any possible implementation of the first aspect. The query device can call the computer program instructions burned on the query device to execute the method provided in the first aspect or any possible implementation of the first aspect. The first memory can also store the computer program instructions and data necessary for the embedded table query process. The query device executes the method provided in the first aspect or any possible implementation of the first aspect by calling the computer program instructions stored in the first memory. The query device can also call the computer program instructions necessary for the embedded table query process stored in other memories to execute the method provided in the first aspect or any possible implementation of the first aspect.

[0071] In a fifth aspect, the present application provides a computing device cluster comprising at least one computing device. Each computing device comprises a memory and a processor. The processor of at least one computing device is configured to access code in the memory to execute the method provided in the first aspect or any possible implementation of the first aspect.

[0072] In a sixth aspect, the present application provides a computer-readable storage medium. When the computer-readable storage medium is executed by a computing device, the computing device performs the method provided in the first aspect or any possible implementation of the first aspect. The storage medium stores a program. The storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, a hard disk drive (HDD), and a solid state drive (SSD).

[0073] In a seventh aspect, the present application provides a computing device program product, comprising computer instructions that, when executed by a computing device, causes the computing device to perform the method provided in the aforementioned first aspect or any possible implementation of the first aspect. The computer program product may be a software installation package, and when the method provided in the aforementioned first aspect or any possible implementation of the first aspect is required, the computer program product may be downloaded and executed on the computing device.

[0074] In an eighth aspect, the present application also provides a computer chip, which is connected to a memory and is used to read and execute a software program stored in the memory, and to execute the methods in the above-mentioned first aspect and various possible implementations of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0075] FIG1 is a schematic diagram of the structure of a Bloom filter;

[0076] FIG2 is a schematic diagram of the structure of an embedded table query system provided in an embodiment of the present application;

[0077] FIG3 is a schematic diagram of the structure of a query device provided in an embodiment of the present application;

[0078] FIG4A is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0079] FIG4B is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0080] FIG5 is a schematic diagram of an embedded table query method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0081] Before describing the embedded table query method provided in the embodiment of the present application, some concepts involved in the embodiment of the present application are first described:

[0082] (1), Embedding vector, embedding table.

[0083] An embedding vector is a representation of an entity, and can also be understood as a "feature" of the entity. Any entity has multiple different features, each of which corresponds to an embedding vector. Therefore, an entity can be represented by multiple embedding vectors.

[0084] For example, for entities such as company employees, the characteristics of company employees include but are not limited to: gender, hobbies, work department, years of work experience, place of origin, and job level.

[0085] For any company employee, their gender, hobbies, department, years of experience, place of origin, and rank can be represented by embedding vectors. For example, if the employee's gender is female, the embedding vector representing "female" can be used to represent the employee's gender.

[0086] For example, if the hobbies are badminton and table tennis, the embedding vector representing "badminton" and the embedding vector representing "table tennis" can be used to represent the feature of the company's employees' hobbies, or the embedding vector representing "badminton and table tennis" can be used to represent the feature of the company's employees' hobbies. The former uses two embedding vectors to represent the feature of the company's employees' hobbies, and the latter uses one embedding vector to represent the feature of the company's employees' hobbies. The embedding vector representing "badminton and table tennis" can be generated based on the embedding vector representing "badminton" and the embedding vector representing "table tennis".

[0087] An embedding table is a collection of embedding vectors. This table can be abstractly understood as a "table," with each row representing an embedding vector. Each embedding vector has a unique identifier. The identifier of an embedding vector represents its position within the embedding table. When querying the embedding table, the identifier of the desired embedding vector can be used to locate the embedding vector in the table and retrieve the embedding vector.

[0088] There are many ways to construct an embedding table, and the embodiments of the present application do not limit the construction method of the embedding table. For example, according to the characteristics of the entity, all possible embedding vectors in each feature can be collected together to form an embedding table corresponding to the feature.

[0089] Using company employees as an example, we can construct embedding tables for gender, hobbies, work department, years of experience, place of origin, and rank. The embedding table for gender includes embedding vectors for "male" and "female." The embedding table for hobbies includes embedding vectors for "badminton," "table tennis," "basketball," and "swimming."

[0090] (2) Fusion embedding vector and fusion identifier.

[0091] In the embodiment of the present application, the vector recorded in the embedding table is called an embedding vector, and the vector generated based on multiple embedding vectors in the embedding table is called a fused embedding vector. A fused embedding vector is a special type of "embedding vector". The fused embedding vector represents the combination of the features represented by the multiple embedding vectors. For example, the embedding vector representing "badminton and table tennis" mentioned above can be understood as a fused embedding vector, which can be generated based on the embedding vector representing "badminton" and the embedding vector representing "table tennis".

[0092] There are many ways to generate a fused embedding vector based on multiple embedding vectors. For example, the multiple embedding vectors are summed and the vector obtained after the summation is used as the fused embedding vector. For another example, the multiple embedding vectors are averaged (that is, the elements at the same position in the multiple embedding vectors are averaged, and the multiple means will constitute a new vector), and the vector obtained after the averaging is used as the fused embedding vector. For another example, the dot product of the multiple embedding vectors is calculated, and the vector obtained after the dot product is used as the fused embedding vector. The embodiment of the present application does not limit the generation method of the fused embedding vector. Any method of generating a fused embedding vector using multiple embedding vectors is applicable to the embodiment of the present application.

[0093] To identify each fused embedding vector, an identifier is configured for the fused embedding vector. To distinguish it from the identifier of the embedding vector, in the embodiments of this application, the identifier configured for the fused embedding vector is referred to as a fusion identifier. The generation method of the fusion identifier will be described below with examples.

[0094] In the embodiments of the present application, the target fusion embedding vector and the candidate fusion embedding vector mentioned are both fusion embedding vectors. The target fusion embedding vector is the fusion embedding vector requested by the query request. The candidate fusion embedding vector is a fusion embedding vector that is close to the target fusion embedding vector. The "closeness" of the candidate fusion embedding vector to the target fusion embedding vector is reflected in the fact that the multiple embedding vectors based on which the candidate fusion embedding vector is generated are similar to the multiple embedding vectors based on which the target fusion embedding vector is generated, such as the presence of the same embedding vector.

[0095] (3) Bloom filter (BF) and cuckoo filter.

[0096] Bloom filters and Cuckoo filters work in similar ways, but they support dynamic addition and removal of elements from a collection. This section uses Bloom filters as an example.

[0097] A Bloom filter consists of a binary vector and a series of random mapping functions (usually hash functions) that can be used to retrieve whether an element is in a set.

[0098] Figure 1 is a schematic diagram of the structure of a Bloom filter. In the initial state, the Bloom filter includes an array of m = n * L bits, each bit is set to 0. In order to express S = {x1, x2, ..., x n For a set of n elements, L is the space corresponding to each element (here L can also be understood as the number of bits or digits corresponding to the data). Bloom Filter can call k independent hash functions. Each hash function can map each element in the set to a bit in the bit array that includes m bits. When mapped to a bit, the value of the bit is set to 1. For the same element in the data set, the bits mapped to by any two of the k hash functions can be the same or different. For different elements in the data set, the different elements can be mapped to the same bit or to different bits through different hash functions.

[0099] Generally, the false alarm rate of a Bloom filter (ie, the error rate of a Bloom filter) cannot be zero. The larger the number of bit groups, the lower the false alarm rate. However, the larger the number of bit groups, the larger the storage space required by the Bloom filter.

[0100] When retrieving whether an element is in a set, Bloom Filter calls the k independent hash functions to map the element to the array of m bits (the array is the binary vector of the aforementioned volume). If the values ​​of the bits in the m-bit array to which the element is mapped are all 1, then it means that the element has a high probability of belonging to the set, otherwise, it does not belong to the set.

[0101] As shown in FIG2 , it is a schematic diagram of the structure of a query system provided in an embodiment of the present application. The query system includes a query device 100 and a first memory 200 .

[0102] The query device 100 has a query function for a fused embedding vector, wherein the fused embedding vector is generated based on multiple embedding vectors in the embedding table. The query device 100 is capable of processing a query request for requesting a target fused embedding vector, wherein the query request carries the identifiers of multiple embedding vectors, wherein the target fused embedding vector is generated based on the multiple embedding vectors. The query device 100 is capable of querying the target fused embedding vector from the fused embedding vectors stored in the first memory 200 based on the identifiers of the multiple embedding vectors.

[0103] In the embodiment of the present application, the query device 100 can query the target fusion embedding vector in the following two ways:

[0104] Method 1: Accurate query.

[0105] When the query device 100 uses the identifiers of multiple embedding vectors to query the target fused embedding vector from the first memory 200, the query device 100 may use the identifiers of the multiple embedding vectors to generate a fusion identifier of the target fused embedding vector.

[0106] The query device 100 records a mapping relationship between the storage address of each fused embedding vector stored in the first memory 200 and the fusion identifier of each fused embedding vector.

[0107] In this manner, if the fusion identifier of the target fused embedding vector requested by the query request is recorded in the mapping relationship, the query device 100 can use the fusion identifier of the target fused embedding vector to determine the storage address of the target fused embedding vector in the first memory 200 from the mapping relationship. After determining the storage address of the target fused embedding vector in the first memory 200, the query device 100 obtains the target fused embedding vector from the first memory 200 according to the storage address, and the query device 100 feeds back the target fused embedding vector to the device that initiated the query request.

[0108] In addition, due to certain ways of generating fusion identifiers, fusion identifiers may not be unique, meaning that two different fusion embedding vectors may have the same fusion identifier. Therefore, during a precise query, even if the fusion identifier of the target fusion embedding vector requested by the query is recorded in the mapping relationship, it may be because the mapping relationship records the storage address of the fusion embedding vector with the same fusion identifier as the target fusion embedding vector and its mapping relationship with the fusion identifier, while recording the mapping relationship between the storage address of a non-target fusion embedding vector and the fusion identifier of the target fusion embedding vector. Based on this possibility, when the query device 100 determines that the fusion identifier of the target fused embedding vector requested by the query request is recorded in the mapping relationship, in addition to obtaining the fused embedding vector stored at the storage address that has a mapping relationship with the fusion identifier of the target fused embedding vector according to the mapping relationship (the fused embedding vector stored at the storage address may be the target fused embedding vector, or it may be a fused embedding vector with the same fusion identifier as the target fused embedding vector), the query device 100 may also use the fusion identifier of the target fused embedding vector to determine the storage address of the candidate fused embedding vector in the first memory 200 from the mapping relationship, and then obtain the candidate fused embedding vector from the first memory 200 according to the storage address. In addition to feeding back the fused embedding vector stored at the storage address that has a mapping relationship with the fusion identifier of the target fused embedding vector to the device that initiated the query request, the query device 100 may also feed back the candidate fused embedding vector.

[0109] If the fusion identifier of the target fusion embedding vector requested by the query request is not recorded in the mapping relationship, it means that the target fusion embedding vector is not stored in the first memory 200. The query device 100 notifies the device that initiated the query request that the target fusion embedding vector was not found.

[0110] Method 2: Fuzzy query.

[0111] Similar to the first approach, the query device 100 can use the identifiers of the multiple embedded vectors to generate a fusion identifier of the fused embedded vector. The query device 100 also records a mapping relationship between the storage addresses of the fused embedded vectors stored in the first memory 200 and the fusion identifiers of the fused embedded vectors.

[0112] In this manner, if the fusion identifier of the target fused embedding vector requested by the query request is not recorded in the mapping relationship, that is, the first memory 200 does not store the target fused embedding vector.

[0113] The query device 100 uses the fusion identifier of the target fusion embedding vector to determine the storage address of the candidate fusion embedding vector in the first memory 200 from the mapping relationship, and then obtains the candidate fusion embedding vector from the first memory 200 according to the storage address, wherein the candidate fusion embedding vector is a fusion embedding vector whose fusion identifier differs from the fusion identifier of the target fusion embedding vector within a preset range. Alternatively, the candidate fusion embedding vector is generated based on multiple embedding vectors and the target fusion embedding vector is generated based on a fusion embedding vector in which the number of identical embedding vectors is greater than a data threshold. The query device 100 feeds back the candidate fusion embedding vector to the device that initiated the query request.

[0114] If the fusion identifier of the target fusion embedding vector requested by the query request is recorded in the mapping relationship, that is, the first memory 200 stores the target fusion embedding vector.

[0115] The query device 100 uses the fusion identifier of the target fusion embedding vector to determine the storage address of the target fusion embedding vector in the first memory 200 from the mapping relationship. The query device 100 uses the fusion identifier of the target fusion embedding vector to determine the candidate fusion embedding vector from the mapping relationship. The query device 100 feeds back the target fusion embedding vector to the device that initiated the query request. The query device 100 can also feed back the candidate fusion embedding vector to the device that initiated the query request. In this case, the query device 100 simultaneously queries the target fusion embedding vector and the candidate fusion embedding vector, which also takes into account the possibility that the fusion identifier is not unique.

[0116] In the embodiments of the present application, the specific form of the query device 100 is not limited. The query device 100 can be a hardware device, such as the query device 100 can be a processor 300, such as a central processing unit (CPU), a data processing unit (DPU), a graphics processing unit (GPU), a tensor processing unit (TPU) or a neural network processing unit (NPU); the query device 100 can also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. For example, the query device 100 can also be an independent computing device, such as a server deployed in the cloud, a computing device cluster, a mobile terminal, etc. The query device 100 can also be a software module, such as a software module running on a processor 300 or a computing instance, and the computing instance can be a virtual machine or a container.

[0117] The first memory 200 has a storage function. In an embodiment of the present application, the first memory 200 is used to store at least one fused embedding vector. The first memory 200 can also store identifiers of multiple embedding vectors based on which each fused embedding vector is generated in the at least one fused embedding vector.

[0118] The fused embedding vector stored in the first memory 200 may be determined after analyzing the historical access situation of the embedding table. For example, the historical access situation of the embedding table is analyzed to determine that at least one group of embedding vectors whose access frequency is greater than a frequency threshold, or the number of joint accesses is greater than a number threshold, is extracted from the embedding table, and each group of embedding vectors includes multiple embedding vectors. Jointly accessing a group of embedding vectors means that when querying the embedding vector from the embedding table, the multiple embedding vectors included in the group of embedding vectors are always queried together. Then, the fused embedding vector generated based on the multiple embedding vectors in the group of embedding vectors can be stored in the first memory 200. The specific implementation method of determining the fused embedding vector stored in the first memory 200 based on the analysis of the historical access situation of the embedding table is not limited here.

[0119] The fused embedding vector stored in the first memory 200 may be updated. For example, the historical access to the embedding table is analyzed in real time, and the fused embedding vector generated based on one or more sets of embedding vectors with an access frequency greater than a frequency threshold or a number of joint accesses greater than a number threshold stored in the first memory 200 is deleted, and the fused embedding vector generated based on one or more sets of embedding vectors with an access frequency greater than a frequency threshold or a number of joint accesses greater than a number threshold not stored in the first memory 200 is stored in the first memory 200. For another example, when the embedding table is part of a machine learning model, during the training process of the machine learning model, the embedding table can be adjusted according to the gradient output during the training process of the machine learning model. The fused embedding vector stored in the first memory 200 can also be adjusted according to the gradient output during the training process of the machine learning model. In actual applications, the fused embedding vector stored in the first memory 200 can be adjusted according to the gradient output during the training process of the machine learning model, and the embedding vectors in the embedding table can be temporarily not adjusted, or the adjustment of the embedding vectors in the embedding table can be postponed. The embodiment of the present application does not limit the method of sending updates to the fused embedding vector stored in the first memory 200.

[0120] In the embodiment of the present application, the specific type of the first memory 200 is not limited. The first memory 200 can be a high bandwidth memory (HBM) or a dynamic random access memory (DRAM). The first memory 200 can also be other random access memories, such as static random access memory (SRAM), storage class memory (SCM), etc. In addition, the first memory 200 can also be a read-only memory (ROM), such as a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), etc. The first memory 200 can also be a dual in-line memory module or a dual-line memory module (DIMM), a flash memory medium (FLASH), a hard disk drive (HDD), or a solid state drive (SSD).

[0121] The structure of the query device 100 is described below from a functional perspective. FIG3 is a schematic diagram of the structure of the query device 100 provided in an embodiment of the present application. The query device 100 includes an identifier fusion module 110 and an address query module 120. Optionally, the query device 100 may further include an identifier filtering module 130.

[0122] The identifier fusion module 110 is configured to generate a fusion identifier for the fused embedding vector. In an embodiment of the present application, the identifier fusion module 110 can process the identifiers of multiple embedding vectors carried in the query request and generate a fusion identifier for the target fused embedding vector based on the multiple identifiers. The identifier fusion module 110 generates the fusion identifier for the target fused embedding vector in a manner consistent with the fusion identifier for the fused embedding vector in the first memory 200.

[0123] The embodiment of the present application does not limit the method for generating the fusion identifier of the fusion embedding vector. Several methods for generating the fusion identifier are listed below.

[0124] Generation method 1: The fusion identifier includes multiple bits, each bit corresponding to an embedding vector. When the bit is a first value, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated include the embedding vector corresponding to the bit. When the bit is a second value, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated do not include the embedding vector corresponding to the bit.

[0125] For example, if there are 16 embedding vectors in the embedding table whose access frequencies are greater than the frequency threshold, then the fusion identifier may include 16 bits. Each bit corresponds to one of the 16 embedding vectors. When any bit is 1, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated include the embedding vector corresponding to that bit. When any bit is 0, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated do not include the embedding vector corresponding to that bit.

[0126] Generation method 2: Generate a fusion identifier of the fused embedding vector using a one-hot encoding method. The fusion includes multiple bits, only one of which has a first value. Each bit corresponds to a combination of multiple embedding vectors.

[0127] One-hot encoding can convert discrete classification labels into binary vectors. In the embodiment of the present application, the discrete classification labels are the multiple embedding vectors based on which the fused embedding vector is generated, and the binary vector generated by one-hot encoding is the fusion identifier of the fused embedding vector.

[0128] For example, the embedding table includes three embedding vectors whose access frequencies are greater than the access threshold, which are identified as vector A, vector B and vector C respectively. Then, the fusion identifier may include 4 bits. Each bit corresponds to a combination of some or all of the embedding vectors in the three embedding vectors. For example, when the first bit in the fusion identifier is 1, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated are vector A and vector B, when the second bit in the fusion identifier is 1, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated are vector A and vector C, when the third bit in the fusion identifier is 1, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated are vector B and vector C, and when the fourth bit in the fusion identifier is 1, it indicates that the multiple embedding vectors based on which the fused embedding vector is generated are vector A, vector B and vector C.

[0129] Generation method 2: Use hash function to generate the fusion identifier of the fusion embedding vector.

[0130] A hash function can be used to map the identity of an embedded vector to a fixed set of bits. The specific value of each bit in this set of bits is related to the specific position of the embedded vector identity within this set of bits. For any fused embedded vector, a hash function is applied to the identities of the multiple embedded vectors used to generate the fused embedded vector. The identity of each embedded vector in the multiple embedded vectors is mapped to a fixed set of bits, where the bit to which each embedded vector identity is mapped is 1. The resulting set of bits after the hash function is applied serves as the fused identity of the fused embedded vector.

[0131] The embodiment of the present application does not limit the type of the hash function. The hash functions that can be used in the embodiment of the present application include but are not limited to: Locality Sensitive Hashing (LSH), additive hashing, and multiplicative hashing.

[0132] In order to reduce the probability of hash collisions (i.e., collisions caused by the hash function mapping identifiers of different embedded vectors to the same position on the bit group) when generating the fusion identifier of the fused embedded vector using a hash function, a specific mapping method can also be designed when generating the fusion identifier of the fused embedded vector using the hash function. For example, LSH can be used to implement group mapping, that is, the fusion identifier can include multiple bit subgroups, each bit subgroup includes multiple bits. Each bit subgroup corresponds to a portion of the multiple embedded vectors, and the portion of the embedded vector is mapped to the corresponding bit subgroup using LSH.

[0133] In this generation method, the fusion identifier of the fused embedding vector can be generated using a Bloom filter. That is, the identifiers of the individual embedding vectors used to generate the fused embedding vector are mapped to an array of fixed bits using the Bloom filter. The mapped array is the fusion identifier of the fused embedding vector.

[0134] When generating the fusion identifier of the fused embedding vector with the help of a Bloom filter, in order to speed up the generation efficiency of the fusion identifier, a "distributed Bloom filter" method can be adopted, that is, multiple Bloom filters are set, and the multiple Bloom filters can work synchronously. Each Bloom filter can map the identifiers of each embedding vector based on which the fused embedding vector is generated to an array of a fixed number of bits to obtain the fusion identifier of the fused embedding vector.

[0135] The embodiment of the present application does not limit the specific implementation process of the generation method. Any method of generating a fusion identifier of a fusion embedding vector using a hash function is applicable to the embodiment of the present application.

[0136] From the above-mentioned methods of generating fusion identifiers, it can be seen that the fusion identifier can identify the fusion embedding vector, and the fusion identifier is also generated based on multiple embedding vectors (such as the embedding vector itself or the identifier of the embedding vector) on which the fusion embedding vector is generated. The fusion identifier can represent the multiple embedding vectors (such as the embedding vector itself or the identifier of the embedding vector) on which the fusion embedding vector is generated. The above only lists several possible methods of generating fusion identifiers. Any method that can generate the fusion identifier of the fusion embedding vector based on multiple embedding vectors on which the fusion embedding vector is generated is applicable to the embodiments of the present application.

[0137] The address query module 120 can obtain the fusion identifier of the target fusion embedding vector generated by the identifier fusion module 110, determine the storage address of the target fusion embedding vector and / or the storage address of the candidate fusion embedding vector based on the fusion identifier, and read the target fusion embedding vector and / or the candidate fusion embedding vector from the first memory 200 based on the storage address of the target fusion embedding vector and / or the storage address of the candidate fusion embedding vector.

[0138] The address query module 120 records the mapping relationship between the storage address of each fused embedding vector and the fusion identifier of each fused embedding vector stored in the first memory 200. After obtaining the fusion identifier of the target fused embedding vector, the address lookup module determines the storage address of the target fused embedding vector and / or the storage address of the candidate fused embedding vector from the mapping relationship.

[0139] In the embodiment of the present application, the address query module 120 has the following functions:

[0140] Function 1: Address search function.

[0141] After obtaining the fusion identifier of any fused embedded vector, the address query module 120 can determine from the mapping relationship whether the storage address of the fused embedded vector in the first memory 200 is recorded. If the storage address of the fused embedded vector in the first memory 200 is recorded in the mapping relationship, the address query module 120 obtains the storage address of the fused embedded vector from the mapping relationship.

[0142] In an embodiment of the present application, after obtaining the fusion identifier of the target fusion embedding vector, the address query module 120 determines from the mapping relationship whether the storage address of the target fusion embedding vector in the first memory 200 is recorded. If the storage address of the fusion embedding vector in the first memory 200 is recorded in the mapping relationship, the address query module 120 obtains the storage address of the target fusion embedding vector from the mapping relationship. After obtaining the fusion identifier of the candidate fusion embedding vector, the address query module 120 determines from the mapping relationship whether the storage address of the candidate fusion embedding vector in the first memory 200 is recorded. If the storage address of the candidate embedding vector in the first memory 200 is recorded in the mapping relationship, the address query module 120 obtains the storage address of the candidate fusion embedding vector from the mapping relationship.

[0143] In the address query module 120 , a content-addressable memory (CAM) may be used to store a mapping relationship between the storage address of each fused embedding vector in the first memory 200 and the fusion identifier of each fused embedding vector.

[0144] CAM is a special type of RAM (content-addressable RAM). CAM operates as follows: When a data item is input into the CAM, the CAM matches it against all the data items stored in the CAM. It determines whether any of the stored data items match the input data item. If so, the CAM outputs the information corresponding to that data item.

[0145] In an embodiment of the present application, the CAM stores a mapping relationship between the storage address of each fused embedded vector in the first memory 200 and the fusion identifier of each fused embedded vector. When the fusion identifier of any fused embedded vector (such as the fusion identifier of the target fused embedded vector or the fusion identifier of the candidate fused embedded vector) is input into the CAM, the CAM will determine from the stored mapping relationship whether there is a storage address of the fused embedded vector mapped to the fusion identifier. If so, the CAM outputs the storage address of the fused embedded vector mapped to the fusion identifier (such as the storage address of the target fused embedded vector or the storage address of the candidate fused embedded vector). If not, the CAM does not output information, or outputs an indication message indicating that the query was not found.

[0146] Function 2: Candidate fusion embedding vector search function.

[0147] After obtaining the fusion identifier of the target fused embedding vector, the address query module 120 may further determine the fusion identifiers of the candidate fused embedding vectors.

[0148] The address query module 120 can use the fusion embedding vector identified by the fusion identifier whose difference from the fusion identifier of the target fusion embedding vector is within a preset range as a candidate fusion embedding vector. Correspondingly, the fusion identifier whose difference from the fusion identifier of the target fusion embedding vector is within a preset range is the candidate fusion embedding vector.

[0149] From the perspective of the fusion identifier of the fused embedding vector, the difference between the fusion identifiers of any two fused embedding vectors represents the degree of difference between the fusion identifiers of the two fused embedding vectors, such as the number of bits with different values ​​in the fusion identifiers of the two fused embedding vectors.

[0150] From the perspective of the embedding vectors based on which the fused embedding vector is generated, the difference between the fusion identifiers of any two fused embedding vectors represents the degree of difference between the multiple embedding vectors based on which one fused embedding vector is generated and the multiple embedding vectors based on which the other fused embedding vector is generated in the two fused embedding vectors.

[0151] The calculation method of the difference between the fusion identifiers of any two fused embedding vectors is related to the generation method of the fusion identifier of the fused embedding vectors. Accordingly, the preset range is also related to the generation method of the fusion identifier of the fused embedding vectors.

[0152] When the fusion identifier of the fusion embedding vector is generated using the aforementioned generation method 1, then the difference between the fusion identifiers of any two fusion embedding vectors can be determined based on the bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors. For example, the difference between the fusion identifiers of any two fusion embedding vectors is defined as being equal to the number of bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors; when calculating the difference between the fusion identifiers of the two fusion embedding vectors, the fusion identifiers of the two fusion embedding vectors are XORed, and the result after XOR is the difference between the fusion identifiers of the two fusion embedding vectors. The preset range can be defined as the maximum number and minimum number of bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors. When the difference between the fusion identifiers of any two fusion embedding vectors is within the preset range, then when the fusion identifier of one of the two fusion embedding vectors is the fusion identifier of the target fusion embedding vector, then the other fusion embedding vector is a candidate fusion embedding vector, and its fusion identifier is the fusion identifier of the candidate fusion embedding vector.

[0153] When the fusion identifier of the fusion embedding vector is generated using the aforementioned second generation method, the difference between the fusion identifiers of any two fusion embedding vectors can be determined based on the combination of multiple embedding vectors corresponding to the bits with the first value in the fusion identifiers of the two fusion embedding vectors. For example, when defining a combination of multiple embedding vectors corresponding to each bit of the fusion identifier in one-hot encoding, only one embedding vector is different in the two combinations of multiple embedding vectors corresponding to two adjacent bits. Taking the aforementioned case where the fusion identifier includes 4 bits as an example, the first bit corresponds to the combination of vector A and vector B, the second bit corresponds to vector A and vector C, and the third bit corresponds to vector B and vector C. The combination of the embedding vectors corresponding to the first bit is different from the combination of the embedding vectors corresponding to the second bit by one embedding vector. The combination of the embedding vectors corresponding to the second bit is also different from the combination of the embedding vectors corresponding to the third bit by one embedding vector. The combination of the embedding vectors corresponding to the first bit and the combination of the embedding vectors corresponding to the third bit are different by two embedding vectors. It can be seen that under this definition, the more bits there are between the bits whose values ​​are the first value in the fusion identifiers of the two fused embedding vectors, the more embedding vectors that are different between the multiple embedding vectors based on which one fused embedding vector is generated and the multiple embedding vectors based on which the other fused embedding vector is generated in the two fused embedding vectors, that is, the greater the degree of difference between the multiple embedding vectors based on which one fused embedding vector is generated and the multiple embedding vectors based on which the other fused embedding vector is generated in the two fused embedding vectors. The preset range that the difference required to be met when determining the candidate fused embedding vector can be defined as the maximum number and minimum number of bits between the bits whose values ​​are the first value in the fusion identifiers of the two fused embedding vectors. When the difference between the fusion identifiers of any two fused embedding vectors is within the preset range, then when the fusion identifier of one of the two fused embedding vectors is the fusion identifier of the target fused embedding vector, then the other fused embedding vector is the candidate fused embedding vector, and its fusion identifier is the fusion identifier of the candidate fused embedding vector.

[0154] When the fusion identifier of the fusion embedding vector is generated using the aforementioned generation method three, then the difference between the fusion identifiers of any two fusion embedding vectors can be determined based on the bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors. For example, the difference between the fusion identifiers of any two fusion embedding vectors is defined as being equal to the number of bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors; when calculating the difference between the fusion identifiers of the two fusion embedding vectors, the fusion identifiers of the two fusion embedding vectors are XORed, and the result after XOR is the difference between the fusion identifiers of the two fusion embedding vectors. The preset range that the difference required to be met when determining the candidate fusion embedding vector can be defined as the maximum number and minimum number of bits with different median values ​​of the fusion identifiers of the two fusion embedding vectors. When the difference between the fusion identifiers of any two fusion embedding vectors is within the preset range, then when the fusion identifier of one of the two fusion embedding vectors is the fusion identifier of the target fusion embedding vector, then the other fusion embedding vector is the candidate fusion embedding vector, and its fusion identifier is the fusion identifier of the candidate fusion embedding vector.

[0155] As can be seen, after obtaining the fusion identifier of the target fusion embedded vector, the address query module 120 can use the fusion identifier of the target fusion embedded vector and the preset range to determine the fusion identifier of the candidate fusion embedded vector, thereby performing a candidate fusion embedded vector search. Subsequently, the storage address of the candidate fusion embedded vector is determined using function one. In this embodiment of the present application, the number of candidate fusion embedded vectors is not limited; it is related to the specific value of the preset range and the fusion identifier of the target fusion embedded vector.

[0156] Function three: Logo disassembly function.

[0157] The “identity disassembly” here refers to determining the identities of the different embedding vectors among the multiple embedding vectors based on which the target fused embedding vector is generated and the multiple embedding vectors based on which the candidate fused embedding vector is generated.

[0158] From the above description of the target fusion embedding vector and the candidate fusion embedding vector, it can be seen that the multiple embedding vectors based on which the target fusion embedding vector is generated and the multiple embedding vectors based on which the candidate fusion embedding vector is generated may have the same embedding vectors or different embedding vectors.

[0159] For the sake of convenience, the multiple embedding vectors based on which the target fusion embedding vector is generated are constituted into a set called a target embedding vector set, and the multiple embedding vectors based on which the candidate fusion embedding vector is generated are constituted into a set called a candidate embedding vector set.

[0160] After the address query module 120 determines the fusion identifier of the candidate fusion embedding vector, the address query module 120 can also determine the identifiers of the embedding vectors that are different from the target embedding vector set and the candidate embedding vector set based on the fusion identifier of the target fusion embedding vector and the fusion identifier of the candidate fusion embedding vector.

[0161] Considering how the target embedding vector set and the candidate embedding vector set are composed, there may be two types of embedding vectors for different embedding vectors in the target embedding vector set and the candidate embedding vector set: one type of embedding vector is the embedding vector that exists in the target embedding vector set but not in the candidate embedding vector set. The other type of embedding vector is the embedding vector that does not exist in the target embedding vector set but exists in the candidate embedding vector set. To simplify the description, the embedding vectors that exist in the target embedding vector set but not in the candidate embedding vector set are described as the first type of embedding vectors, and the embedding vectors that do not exist in the target embedding vector set but exist in the candidate embedding vector set are described as the second type of embedding vectors.

[0162] Therefore, in practical applications, considering the possible combinations of embedding vectors in the target embedding vector set and the candidate embedding vector set, the different embedding vectors in the target embedding vector set and the candidate embedding vector set may include only one type of embedding vector, only two types of embedding vectors, or both one type of embedding vector and two types of embedding vectors.

[0163] In an embodiment of the present application, after the address query module 120 obtains the fusion identifier of the target fusion embedded vector, if the fusion identifier of the candidate target fusion embedded vector is determined based on the fusion identifier of the target fusion embedded vector and the preset range, in addition to the function of obtaining the storage address of the candidate target fusion embedded vector, the address query module 120 can also determine the identifier of the first type of embedded vector and / or the identifier of the second type of embedded vector based on the fusion identifier of the candidate fusion embedded vector. When the address query module 120 feeds back the candidate fusion embedded vector to the device that initiates the query request, it can also feed back the determined identifier of the first type of embedded vector and / or the identifier of the second type of embedded vector.

[0164] The identifier filtering module 130 may be provided before the identifier fusion module 110. Within the query device 100, the query request received by the query device 100 will first reach the identifier filtering module 130. The identifier filtering module 130 may obtain the identifiers of the multiple embedding vectors carried in the query request, and determine, based on the identifiers of the multiple embedding vectors, whether a target fused embedding vector generated based on the multiple embedding vectors is stored in the first memory 200, or whether it is possible to obtain the target fused embedding vector generated based on the multiple embedding vectors from the first memory 200.

[0165] The identification filtering module 130 records the identifications of multiple embedding vectors based on which each fused embedding vector is generated in the first memory 200. The identification filtering module 130 uses the identifications of the multiple embedding vectors carried in the query request to query the identifications of the multiple embedding vectors based on which each fused embedding vector is generated in the recorded first memory 200 to determine whether the target fused embedding vector is stored in the first memory 200, or whether there is a possibility of obtaining the target fused embedding vector from the first memory 200.

[0166] The identification filtering module 130 determines whether it is possible to obtain the target fused embedding vector from the first memory 200 or whether the target fused embedding vector exists in the first memory 200 from the perspective of the identifications of the multiple embedding vectors.

[0167] In the embodiment of the present application, two filtering modes are provided for the identification filtering module 130. The identification filtering module 130 can adopt part or all of the two filtering modes;

[0168] Filtering mode 1: Precise filtering.

[0169] In this filtering mode, the identification filtering module 130 obtains two judgment results based on the identifiers of the multiple embedding vectors carried in the query request: the target fused embedding vector generated based on the multiple embedding vectors is stored in the first memory 200, and the target fused embedding vector generated based on the multiple embedding vectors is not stored in the first memory 200. In other words, the identification filtering module 130 can accurately determine whether the target fused embedding vector is stored in the first memory 200 based on the identifiers of the multiple embedding vectors carried in the query request.

[0170] The identifier filtering module 130 uses the identifiers of the multiple embedding vectors carried in the query request to query the identifiers of the multiple embedding vectors recorded in the first memory 200 based on which each fused embedding vector is generated. If the identifiers of the multiple embedding vectors carried in the query request are consistent with the multiple embedding vectors recorded in the first memory 200 based on which a certain fused embedding vector is generated, it indicates that the target fused embedding vector is stored in the first memory 200. In this case, the identifier filtering module 130 transmits the identifiers of the multiple embedding vectors carried in the query request to the address query module 120.

[0171] If the identifiers of the multiple embedding vectors carried in the query request do not belong to the recorded identifiers of the multiple embedding vectors based on which any fused embedding vector is generated in the first memory 200, that is, the recorded identifiers of the multiple embedding vectors based on which each fused embedding vector is generated in the first memory 200 do not include the identifiers of the multiple embedding vectors carried in the query request, it means that the target fused embedding vector is not stored in the first memory 200. In this case, the identifier filtering module 130 can directly discard the query request and notify the device that initiated the query request that the target fused embedding vector was not found.

[0172] In this filtering mode, the identification filtering module 130 needs to compare the identifications of the multiple embedded vectors carried in the query request with the identifications of the multiple embedded vectors based on which each fused embedded vector is generated in the recorded first memory 200, so as to determine whether the identifications of the multiple embedded vectors carried in the query request are consistent with the identifications of the multiple embedded vectors based on which a certain fused embedded vector is generated in the recorded first memory 200. In this way, the identification filtering module 130 can accurately determine whether the target fused embedded vector is stored in the first memory 200. The identification filtering module 130 adopts this filtering mode to ensure that the query device 100 can achieve accurate query.

[0173] In actual applications, to adapt to the fuzzy query method used by the query device 100, in this filtering mode, if only some of the identifiers of the multiple embedding vectors carried in the query request are consistent with the multiple embedding vectors based on which one or more fused embedding vectors in the first memory 200 are generated, it means that the target fused embedding vector is not stored in the first memory 200, but the candidate fused embedding vector is stored in the first memory 200. In this case, the identifier filtering module 130 may not discard the query request, but instead transmit the identifiers of the multiple embedding vectors carried in the query request to the address query module 120. This ensures that the address query module 120 can subsequently obtain the candidate fused embedding vector.

[0174] If only some of the identifiers of the multiple embedding vectors carried in the query request are consistent with the multiple embedding vectors recorded as the basis for generating one or more fused embedding vectors in the first memory 200, the identifier filtering module 130 may set a first filtering threshold. If the number of identifiers of the multiple embedding vectors carried in the query request that are consistent with the multiple embedding vectors recorded as the basis for generating a fused embedding vector in the first memory 200 and the number of identifiers of the multiple embedding vectors carried in the query request are greater than the first filtering threshold, the identifiers of the multiple embedding vectors carried in the query request may be transmitted to the address query module 120. If the number of identifiers of the multiple embedding vectors carried in the query request that are consistent with the multiple embedding vectors recorded as the basis for generating a fused embedding vector in the first memory 200 and the number of identifiers of the multiple embedding vectors carried in the query request are not greater than the first filtering threshold, the identifier filtering module 130 may directly discard the query request and notify the device that initiated the query request that no target fused embedding vector was found.

[0175] Filtering module 2: rough filtering.

[0176] In this filtering mode, the identification filtering module 130 obtains two judgment results based on the identifiers of the multiple embedding vectors carried in the query request: the target fused embedding vector may be stored in the first memory 200, and the target fused embedding vector is not stored in the first memory 200. In other words, the identification filtering module 130 can determine the possibility that the target fused embedding vector is stored in the first memory 200 based on the identifiers of the multiple embedding vectors carried in the query request, but cannot accurately determine whether the target fused embedding vector is stored in the first memory 200.

[0177] The identifier filtering module 130 uses the identifiers of the multiple embedding vectors carried in the query request to query the identifiers of the multiple embedding vectors recorded in the first memory 200 based on which the fused embedding vectors are generated. If the identifiers of the multiple embedding vectors carried in the query request belong to the identifiers of the multiple embedding vectors recorded in the first memory 200 based on which the fused embedding vectors are generated, it indicates that the target fused embedding vector may be stored in the first memory 200. In this case, the identifier filtering module 130 transmits the identifiers of the multiple embedding vectors carried in the query request to the address query module 120.

[0178] If the identifiers of the multiple embedding vectors carried in the query request do not belong to the identifiers of the multiple embedding vectors based on which the various fused embedding vectors in the first memory 200 are generated, that is, the identifiers of the multiple embedding vectors based on which the various fused embedding vectors in the first memory 200 are recorded do not include the identifiers of the multiple embedding vectors carried in the query request, then it is indicated that the target fused embedding vector is not stored in the first memory 200. In this case, the identifier filtering module 130 can directly discard the query request and notify the device that initiated the query request that no target fused embedding vector was found. If the identifiers of the multiple embedding vectors carried in the query request include identifiers that do not belong to the identifiers of the multiple embedding vectors based on which the various fused embedding vectors in the first memory 200 are generated, that is, the identifiers of the multiple embedding vectors based on which the various fused embedding vectors in the first memory 200 are recorded include some of the identifiers of the multiple embedding vectors carried in the query request, then it is indicated that the target fused embedding vector is not stored in the first memory 200. In this case, the identifier filtering module 130 may directly discard the query request and notify the device that initiated the query request that the target fused embedding vector was not found, or may transmit the identifiers of the multiple embedding vectors carried in the query request to the address query module 120 .

[0179] In this filtering mode, the identifier filtering module 130 does not need to compare the identifiers of the multiple embedding vectors carried in the query request with the identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated. The identifier filtering module 130 only needs to treat the identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated as an identifier set and determine whether the identifiers of the multiple embedding vectors carried in the query request belong to this identifier set. If they do, it indicates that the target fused embedding vector may be stored in the first memory 200. In fact, there are two situations in which the identifiers of the multiple embedding vectors carried in the query request belong to this identifier set: one is that the target fused embedding vector is stored in the first memory 200, and the other is that the target fused embedding vector is not stored in the first memory 200, but the candidate fused embedding vector is stored in the first memory 200. This ensures that the address query module 120 can subsequently obtain the target fused embedding vector and / or the candidate fused embedding vector, further ensuring that the query device 100 uses a fuzzy query method to query the target fused embedding vector from the first memory 200.

[0180] In addition, to better adapt to the fuzzy query method adopted by the query device 100, in this filtering mode, if only some of the identifiers of the multiple embedded vectors carried in the query request belong to the identifier set, it means that the target fused embedded vector is not stored in the first memory 200, and the candidate fused embedded vector may be stored in the first memory 200. In this case, the identifier filtering module 130 may not discard the query request, but instead transmit the identifiers of the multiple embedded vectors carried in the query request to the address query module 120. This ensures that the address query module 120 can subsequently obtain the candidate fused embedded vector.

[0181] In the case where only some of the multiple embedded vector identifiers carried in the query request belong to the identifier set, the identifier filtering module 130 may set a second filtering threshold. If the number of identifiers belonging to the identifier set among the multiple embedded vector identifiers carried in the query request and the number of multiple embedded vector identifiers carried in the query request are greater than the second filtering threshold, the multiple embedded vector identifiers carried in the query request may be transmitted to the address query module 120. If the number of identifiers belonging to the identifier set among the multiple embedded vector identifiers carried in the query request and the number of multiple embedded vector identifiers carried in the query request are not greater than the second filtering threshold, the identifier filtering module 130 may directly discard the query request and notify the device that initiated the query request that no target fused embedded vector was found.

[0182] In a specific implementation, the identifier filtering module 130 can internally use a CAM to record the identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated. That is, the CAM records the identifier set. Information within the CAM that matches the identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is preset information indicating a successful match.

[0183] The identifier filtering module inputs the identifiers of the multiple embedded vectors carried in the query request into the CAM. For any embedded vector identifier carried in the query request, the identifier of the embedded vector is input into the CAM. If the identifier of the embedded vector belongs to the identifier set, the CAM outputs information indicating a successful match. If the identifier of the embedded vector does not belong to the identifier set, the CAM outputs information indicating a failed match. If the identifier filtering module 130 outputs information indicating a successful match after inputting the identifiers of the multiple embedded vectors carried in the query request into the CAM, the identifier filtering module 130 transmits the identifiers of the multiple embedded vectors carried in the query request to the address query module 120. If, after the identifier filtering module 130 inputs the identifiers of the multiple embedded vectors carried in the query request into the CAM, the ratio of the number of identifiers that successfully matched (i.e., the number of identifiers that output an indication of a successful match after inputting the identifiers into the CAM) to the number of identifiers of the multiple embedded vectors is greater than a second filtering threshold, the identifiers of the multiple embedded vectors carried in the query request are transmitted to the address query module 120. Otherwise, the query request is directly discarded, and the device that initiated the query request is notified that the target fused embedded vector was not found.

[0184] In a specific implementation, the identifier filtering module 130 may implement a filtering function using a Bloom filter or a cuckoo filter. The Bloom filter or the cuckoo filter may record the identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated. That is, the Bloom filter or the cuckoo filter may be used to record the identifier set. The Bloom filter or the cuckoo filter processes the identifiers of the multiple embedding vectors carried in the query request and can determine whether the identifiers of the multiple embedding vectors carried in the query request belong to the identifier set.

[0185] In addition, the identifier filtering module 130 can also filter query requests based on the granularity of the embedding table. In actual applications, there may be multiple embedding tables, and the fused embedding vector stored in the first memory 200 is only related to some of the embedding tables. That is, the embedding vector based on which the fused embedding vector in the first memory 200 is generated only comes from some of the embedding tables. The identifier filtering module 130 can filter based on the granularity of the embedding table, processing query requests carrying the identifiers of embedding vectors belonging to this partial embedding table and rejecting query requests carrying the identifiers of embedding vectors that do not belong to this partial embedding table. Exemplarily, when there are multiple embedding tables, the query request will carry the table name of the embedding table to which the embedding vector belongs. The identifier filtering module 130 records the table name of the embedding table to which the embedded vector based on which the fused embedding vector in the first memory 200 is generated belongs. The identifier filtering module 130 can determine whether the table name of the embedding table carried in the query request is consistent with the recorded table name of the embedding table. If so, the identifier of the embedded vector carried in the query request is further filtered. Otherwise, the query request is rejected.

[0186] Optionally, the identification filtering module 130 can also filter the embedded vectors within a specified range in the embedding table. In actual applications, the fused embedded vectors stored in the first memory 200 are only related to the embedded vectors within the specified range of the embedding table. That is, the embedded vectors based on which the fused embedded vectors in the first memory 200 are generated only come from the embedded vectors within the specified range of the embedding table. The identification filtering module 130 can filter based on the granularity of the embedded vectors within the specified range, process query requests that carry the identification of the embedded vectors within the specified range, and reject query requests that carry the identification of the embedded vectors that do not belong to the specified range. Exemplarily, the identification filtering module 130 records the identification range of the embedded vectors within the specified range, and the identification filtering module 130 can determine whether it belongs to the identification range based on the identification of the embedded vector carried in the query request. If it does, the identification of the embedded vector carried in the query request is further filtered. Otherwise, the query request is rejected.

[0187] The division of modules in the embodiments of the present application is illustrative and is merely a logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional modules in the various embodiments of the present application may be integrated into a single processor 300, or may exist physically separately, or two or more modules may be integrated into a single module. The aforementioned integrated modules may be implemented in the form of hardware or software functional modules.

[0188] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for enabling a terminal device (which can be a personal computer, mobile phone, or network device, etc.) or a processor 300 (processor) to execute all or part of the steps of the method of each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc., various media that can store program code.

[0189] The above description of the query system and the internal structure of the query device 100 is provided. The following describes the deployment of the query system. In the embodiment of the present application, the query system can be deployed inside the computing device 10. The query system can also be deployed in a computing device cluster including multiple computing devices 20.

[0190] Deployment method 1: The query system is deployed inside the computing device 10.

[0191] In this deployment mode, the query device 100 and the first memory 200 are components of the computing device 10. The following is an exemplary display of a deployment mode of the query system inside the computing device 10.

[0192] As shown in FIG4A , it is a schematic diagram of the structure of a computing device 10 provided in an embodiment of the present application, wherein the computing device 10 includes a processor 300, at least one first memory 200, at least one query device 100, and a second memory 400. The second memory 400 is used to store an embedded table.

[0193] A corresponding query device 100 is configured for each first memory 200. Each query device 100 is used to query the target fusion embedding vector from the corresponding first memory 200 according to the received query request. The embodiment of the present application does not limit the specific location of the query device 100 inside the computing device 10. For example, the query device 100 is set inside the corresponding first memory 200. This setting can be understood as in-memory computing, and the query device 100 is the computing circuit logic set inside the first memory 200 or the software running on the computing circuit logic. For another example, the query device 100 is set at a position close to the corresponding first memory 200. This setting can be understood as near-memory computing, and the query device 100 is the computing circuit logic set around the first memory 200 or the software running on the computing circuit logic.

[0194] When the computing device 10 includes a first memory 200, the processor 300 can initiate a query request to the first memory 200 for querying a target fusion embedding vector. The query device 100 corresponding to the first memory 200 receives the query request and queries the target fusion embedding vector from the first memory 200 based on the identifiers of the multiple embedding vectors carried in the query request. If the query device 100 uses an accurate query method to query the target fusion embedding vector from the first memory 200; when the query device 100 queries the target fusion embedding vector from the first memory 200, the query device 100 feeds back the target fusion embedding vector to the processor 300; when the query device 100 does not query the target fusion embedding vector, the query device 100 notifies the processor 300 that the target fusion embedding vector has not been queried. The processor 300 can use the identifiers of the multiple embedding vectors to obtain the multiple embedding vectors from the second memory 400 respectively, and then generate a target fusion vector based on the multiple embedding vectors.

[0195] Among them, the method in which the processor 300 uses the identifiers of the multiple embedded vectors to obtain the multiple embedded vectors from the second memory 400 in multiple times belongs to the query method of the already used embedding table. This query method requires multiple queries of the embedding table. In the embodiment of the present application, this query method is only used when the target fused embedded vector is not stored in the first memory 200. In the embodiment of the present application, the fused embedded vector is directly stored in the first memory 200. When the first memory 200 stores the target fused embedded vector, the target fused embedded vector can be obtained from the first memory 200 more quickly. This query method is more efficient and fast.

[0196] If the query device 100 uses a fuzzy query method to query the target fusion embedding vector from the first memory 200; when the query device 100 queries the target fusion embedding vector from the first memory 200, the query device 100 feeds back the target fusion embedding vector to the processor 300; when the query device 100 does not query the target fusion embedding vector, but finds a candidate fusion embedding vector, the query device 100 can feed back the candidate fusion embedding vector to the processor 300, and the query device 100 can also feed back to the processor 300 an embedding vector that is different from the target embedding vector set and the candidate embedding vector set, that is, feed back to the processor 300 the identifier of the first category embedding vector and / or the identifier of the second category embedding vector. The processor 300 uses the identifier of the first category embedding vector to respectively obtain the first category embedding vector from the second memory 400, and the processor 300 uses the identifier of the second category embedding vector to respectively obtain the second category embedding vector from the second memory 400, and then generates the target fusion embedding vector based on the candidate fusion embedding vector, the first category embedding vector and / or the second category embedding vector. When the query device 100 does not find the target fused embedding vector or the set of candidate embedding vectors, the query device 100 notifies the processor 300 that the target fused embedding vector has not been found. The processor 300 can use the identifiers of the multiple embedding vectors to retrieve the multiple embedding vectors from the second memory 400, and then generate the target fused vector based on the multiple embedding vectors.

[0197] In this query method, the processor 300 will only obtain the multiple embedding vectors from the second memory 400 in multiple times when the target fusion embedding vector and the candidate fusion embedding vector are not stored in the first memory 200. In the embodiment of the present application, when the target fusion embedding vector is stored in the first memory 200, the processor 300 can obtain the target fusion embedding vector from the first memory 200 more quickly. In the embodiment of the present application, when the candidate fusion embedding vector is stored in the first memory 200, the processor 300 can more quickly obtain the candidate fusion embedding vector close to the target fusion embedding vector from the first memory 200, and obtain the first-class embedding vector and / or the second-class embedding vector by accessing the second memory 400, and then generate the target fusion embedding vector based on the candidate fusion embedding vector, the first-class embedding vector and / or the second-class embedding vector. Although the second memory 400 still needs to be accessed, compared with the query method in which the processor 300 obtains the multiple embedding vectors from the second memory 400 in multiple times, the number of times the processor 300 accesses the second memory 400 will be reduced, which can also improve the query efficiency of the embedding table.

[0198] When the computing device 10 includes multiple first memories 200, the multiple first memories 200 form a multi-level storage architecture within the computing device 10. In the multi-level storage architecture, the multiple first memories 200 can be defined as primary storage, secondary storage, tertiary storage, etc. in the multi-level storage architecture in descending order of data read / write speed or bandwidth. The processor 300 can preferentially access the primary storage with the highest data read / write speed or bandwidth, followed by the secondary storage, and so on.

[0199] In this multi-level storage architecture, the processor 300 can serially access the multiple first memories 200 to obtain the target fusion embedding vector. The processor 300 can send a query request for querying the target fusion embedding vector to each first memory 200 in turn. The query device 100 corresponding to each first memory 200 processes the query request in a manner similar to the manner in which the query device 100 processes the query request when only one first memory 200 is included in the computing device 100. For details, please refer to the above description and will not be repeated here. Until the target fusion embedding vector or candidate fusion embedding vector is fed back from the query device 100 corresponding to one of the first memories 200. The operations performed by the processor 300 after receiving the candidate fusion embedding vector fed back from the query device 100 can be referred to the above content and will not be repeated here.

[0200] If the query device 100 corresponding to the multiple first memories 200 neither feeds back the target fusion embedding vector nor the candidate fusion embedding vector, the processor 300 can use the identifiers of the multiple embedding vectors to access the second memory 400 multiple times to obtain multiple embedding vectors, and then obtain the target fusion embedding vector based on the multiple embedding vectors.

[0201] In this multi-level storage, the processor 300 can also access the multiple first memories 200 in parallel to obtain the target fusion embedding vector. The processor 300 can synchronously send a query request for querying the target fusion embedding vector to each first memory 200. The query device 100 corresponding to each first memory 200 processes the query request in a manner similar to the manner in which the query device 100 processes the query request when only one first memory 200 is included in the computing device 100. For details, please refer to the above description and will not be repeated here. Until the target fusion embedding vector or candidate fusion embedding vector is fed back from the query device 100 corresponding to one of the first memories 200. The operations performed by the processor 300 after receiving the candidate fusion embedding vector fed back from the query device 100 can be referred to the above content and will not be repeated here.

[0202] If the query device 100 corresponding to the multiple first memories 200 neither feeds back the target fusion embedding vector nor the candidate fusion embedding vector, the processor 300 can use the identifiers of the multiple embedding vectors to access the second memory 400 multiple times to obtain multiple embedding vectors, and then obtain the target fusion embedding vector based on the multiple embedding vectors.

[0203] Of course, when the processor 300 accesses the multiple first memories 200 in parallel to obtain the target fused embedding vector, it can also synchronously access the second memory 400 to obtain multiple embedding vectors.

[0204] Deployment mode 2: The query system is deployed in a computing device cluster including multiple computing devices 20.

[0205] In this deployment mode, the functions of the query device 100 can be executed in cooperation by the multiple computing devices 20. For example, the various modules included in the query device 100 (such as the identification filtering module 130, the address query module 120, and the candidate fusion vector search module) can be distributed in the various computing devices 20, and the various modules included in the query device 100 can communicate with each other through the network connection between the various computing devices 20. The first memory 200 can be located in one of the multiple computing devices 20. For example, the first memory 200 can be located in the same computing device 20 as the address query module 120. For example, part or all of the storage space of the memories in the multiple computing devices 20 can be constructed into a new storage space, and the new storage space is used to store the fused embedding vector. That is, the first memory 200 can be logically distributed among the multiple computing devices 20, and the computing device 20 where the address query module 120 is located can access the new storage space.

[0206] The following describes how the query system is deployed in a computing device cluster including multiple computing devices 20 by taking the example of the identification filtering module 130 , address query module 120 , and candidate fusion vector module included in the query apparatus 100 being distributed in different computing devices 20 .

[0207] FIG4B is a schematic diagram of the structure of a computing device 20 cluster provided in an embodiment of the present application. The computing device 20 cluster includes three computing devices 20, namely computing device 20A, computing device 20B, and computing device 20C. Computing device 20A is deployed with an identification filtering module 130, computing device 20B is deployed with an address query module 120 and a first memory 200, and computing device 20C is deployed with an identification fusion module 110.

[0208] The computing device 20A where the identification filtering module 130 is located can receive a query request sent by other devices outside the computing device 20A. The identification filtering module 130 determines that the target fusion embedding vector is stored in the first memory 200 or may be stored therein based on the identifiers of the multiple embedding vectors carried in the query request. The identification filtering module 130 can send the identifiers of the multiple embedding vectors to the computing device 20C where the identification fusion module 110 is located.

[0209] The computing device 20C where the identification fusion module 110 is located generates a fusion identification of a target fused embedding vector based on the identifications of the multiple embedding vectors. The computing device 20C where the identification fusion module 110 is located sends the fusion identification of the target fused embedding vector to the computing device 20B where the address query module 120 is located. The computing device 20B where the address query module 120 is located can determine the fusion identification of the candidate fused embedding vector based on the fusion identification of the target fused embedding vector.

[0210] Inside the computing device 20B where the address query module 120 is located, the address lookup module queries the target fusion embedding vector from the first memory 200 according to the fusion identifier of the target fusion embedding vector. If the target fusion embedding vector is found, the computing device 20B where the address query module 120 is located feeds back the target fusion embedding vector to the device that initiated the query request. If the target fusion embedding vector is not found, the address lookup module queries the candidate fusion embedding vector from the first memory 200 according to the fusion identifier of the candidate fusion embedding vector, and feeds back the candidate fusion embedding vector to the device that initiated the query request.

[0211] The above deployment method is only an example. This application is an embodiment and does not limit the specific method of deploying the query system in a computing device cluster including multiple computing devices. Any deployment method that completes the function of the query device 100 through the cooperation of multiple computing devices is applicable to the embodiment of this application.

[0212] The embedded table query method provided in the embodiment of the present application is described below with reference to the computing device 10 shown in FIG4A as an example. It should be understood that the embedded table query provided in the embodiment of the present application is also applicable to a computing device cluster. The implementation process of the embedded table query method in the computing device cluster is similar to the implementation process of the embedded table query method inside the computing device 10. The difference is that the specific entities of the two devices that need to interact during the implementation of the embedded table query method are different. Inside the computing device 10, the interacting device is a component of the computing device 10. In the computing device cluster, the two interacting devices can be two computing devices 20. The implementation process of the embedded table query method in the computing device cluster will not be repeated here. For details, please refer to the implementation process of the embedded table query method inside the computing device 10. Referring to FIG5 , the method includes:

[0213] Step 501: The processor 300 sends a query request to the query device 100. The query request is used to request a target fused embedding vector. The query request carries identifiers of multiple embedding vectors. The target fused embedding vector is generated based on the multiple embedding vectors.

[0214] Step 502: The query device 100 receives the query request and determines whether the first memory 200 may store the target fused embedding vector based on the identifiers of the multiple embedding vectors carried in the query request. If the query device adopts a fuzzy filtering method, when it is determined that the target fused embedding vector or the candidate fused embedding vector may be stored in the first memory 200, step 503 is executed; otherwise, step 513 is executed. If the query device adopts a precise filtering method, when it is determined that the target fused embedding vector or the candidate fused embedding vector is stored in the first memory 200, step 503 is executed; otherwise, step 513 is executed. This step can be performed by the identifier filtering module 130 in the query device 100.

[0215] The query device 100 internally records the identifiers of multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated. In this step 502, the query device 100 can use the precise filtering mode to determine whether the target fused embedding vector is stored in the first memory 200. Specifically, the query device 100 can use the identifiers of the multiple embedding vectors carried in the query request to query the recorded identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated, and compare them with the recorded identifiers of the multiple embedding vectors based on which each fused embedding vector in the first memory 200 is generated, to determine whether in each fused embedding vector in the first memory 200, the identifiers of the multiple embedding vectors based on which a fused embedding vector is generated are consistent with the identifiers of the multiple embedding vectors carried in the query request.

[0216] If the identifiers of multiple embedding vectors based on which a fused embedding vector is generated are consistent with the identifiers of multiple embedding vectors carried in the query request, it indicates that the target fused embedding vector is stored in the first memory 200 .

[0217] If there are no identifiers of the multiple embedding vectors based on which the fused embedding vector is generated that are consistent with the identifiers of the multiple embedding vectors carried in the query request, it means that the target fused embedding vector is not stored in the first memory 200.

[0218] If only some of the identifiers of the multiple embedding vectors carried in the query request are consistent with the multiple embedding vectors recorded as the basis for generating one or more fused embedding vectors in the first memory 200 (for example, the number of identifiers of the multiple embedding vectors carried in the query request that are consistent with the multiple embedding vectors recorded as the basis for generating a certain fused embedding vector in the first memory 200 and the number of identifiers of the multiple embedding vectors carried in the query request are greater than the first filtering threshold), it means that the first memory 200 stores candidate fused embedding vectors.

[0219] In step 502, the query device 100 may also use a fuzzy filtering mode to determine whether the target fused embedding vector is likely stored in the first memory 200. Specifically, the query device 100 uses the identifiers of the multiple embedding vectors carried in the query request to query the identifiers of the multiple embedding vectors recorded in the first memory 200 based on which the respective fused embedding vectors are generated.

[0220] If the identifiers of the multiple embedding vectors carried in the query request belong to the identifiers of the multiple embedding vectors recorded as being based on which the respective fused embedding vectors in the first memory 200 are generated, it indicates that the target fused embedding vector may be stored in the first memory 200 .

[0221] If the identifiers of the multiple embedding vectors carried in the query request do not belong to the recorded identifiers of the multiple embedding vectors based on which the respective fused embedding vectors in the first memory 200 are generated, it indicates that the target fused embedding vector is not stored in the first memory 200.

[0222] If only some of the identifiers of the multiple embedding vectors carried in the query request belong to the identifiers of the multiple embedding vectors recorded as being based on which the various fused embedding vectors in the first memory 200 are generated, it indicates that the target fused embedding vector is not stored in the first memory 200, but candidate fused embedding vectors may be stored in the first memory 200.

[0223] In addition, if the query device 100 determines, based on the identifiers of the multiple embedding vectors carried in the query request, that the first memory 200 may store a fused embedding vector generated based on some of the multiple embedding vectors, that is, only some of the identifiers of the multiple embedding vectors carried in the query request are consistent with the identifiers of the multiple embedding vectors based on which the various fused embedding vectors in the first memory 200 are generated, which are recorded internally in the query device 100, for example, the partially consistent identifiers meet the first filtering threshold or the second filtering threshold mentioned above, the query device 100 can still continue to execute step 502.

[0224] Step 502 is an optional step. In actual applications, the query device 100 may not execute step 502 and directly execute step 503.

[0225] Step 503: The query device 100 generates a fusion identifier for the target fused embedding vector based on the identifiers of the multiple embedding vectors carried in the query request. This step may be performed by the identifier fusion module 110 in the query device 100. The manner in which the query device 100 generates the fusion identifier for the target fused embedding vector can be found in the aforementioned description of the manner in which the identifier fusion module 110 generates the fusion identifier for the fused embedding vector, and will not be further described here.

[0226] Step 504: The query device 100 determines whether the target fused embedded vector is stored in the first memory 200 based on the fusion identifier of the target fused embedded vector from the mapping relationship between the storage addresses of the respective fused embedded vectors and the fusion identifiers of the fused embedded vectors in the first memory 200. If it is determined that the target fused embedded vector is stored in the first memory 200, step 505 is executed; otherwise, step 507 is executed. This step can be performed by the address query module 120 in the query device 100.

[0227] After the query device 100 generates the fusion identifier of the target fusion embedded vector, it can query the mapping relationship between the storage address of each fusion embedded vector in the first memory 200 recorded in the query device 100 and the fusion identifier of the fusion embedded vector. If the fusion identifier of the target fusion embedded vector is queried in the mapping relationship, it means that the first memory 200 stores the target fusion embedded vector. Otherwise, the first memory 200 does not store the target fusion embedded vector.

[0228] For example, the query device 100 stores the mapping relationship between the storage address of each fused embedding vector in the first memory 200 and the fusion identifier of each fused embedding vector through the CAM. The query device 100 inputs the fusion identifier of the target fused embedding vector into the CAM, and determines whether the first memory 200 stores the target fused embedding vector based on the output of the CAM. If the CAM outputs the storage address of the target fused embedding vector, it means that the target fused embedding vector is stored in the first memory 200. If the CAM does not output any information or outputs an indication message indicating that the query was not found, it means that the first memory 200 does not store the target fused embedding vector.

[0229] Step 505: The query device 100 determines the storage address of the target fused embedding vector from the mapping relationship, accesses the first memory 200 according to the storage address of the target fused embedding vector, and obtains the target fused embedding vector from the first memory 200. This step can be performed by the address query module 120 in the query device 100.

[0230] The query device 100 queries the identifier of the target fused embedded vector in the mapping relationship, and can then determine the storage address of the target fused embedded vector from the mapping relationship.

[0231] When accessing the first memory 200, the query device 100 can send a read instruction carrying the storage address of the target fusion embedded vector to the first memory 200. After receiving the read instruction, the first memory 200 reads the target fusion embedded vector from the position indicated by the storage address of the target fusion embedded vector and feeds the target fusion embedded vector back to the query device 100.

[0232] Step 506: The query device 100 feeds back the target fused embedding vector to the processor 300.

[0233] Step 507: the query device 100 generates a fusion identifier of the candidate fusion embedding vector according to the fusion identifier of the target fusion embedding vector, wherein the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range.

[0234] If the query device 100 does not find the fusion identifier of the target fusion embedding vector in the mapping relationship, the query device 100 may further query the candidate fusion embedding vector that is close to the target fusion embedding vector from the first memory 200. In order to find the candidate fusion embedding vector, the query device needs to first obtain the fusion identifier of the candidate fusion embedding vector. Of course, if the query device 100 finds the fusion identifier of the target fusion embedding vector in the mapping relationship, the query device 100 may further query and feedback the candidate fusion embedding vector that is close to the target fusion embedding vector, as well as the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector from the first memory 200 (that is, execute steps 508 to 510).

[0235] The query device 100 can determine the fusion identifier of the candidate fusion embedding vector based on the fusion identifier of the target fusion embedding vector and the preset range. In the above description of the candidate fusion embedding vector search function, it can be seen that the specific value of the preset range is related to the generation method of the fusion identifier of the fusion embedding vector.

[0236] Here we only list a few possible ways to determine the fusion identity of the candidate fusion embedding vector.

[0237] 1. The fusion identifier of the fusion embedding vector is generated using the aforementioned generation method 1. The difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is the number of bits whose values ​​are different between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector. The preset range indicates the maximum and minimum number of bits whose values ​​are different between the fusion identifiers of the two fusion embedding vectors.

[0238] The query device 100 can change the value of the bits in the fusion identifier of the target fused embedding vector, and use the fusion identifier whose number of bits differing from the median value of the fusion identifier of the target fused embedding vector is between the maximum number and the minimum number indicated by the preset range as the fusion identifier of the candidate fused embedding vector. Given the specific value of the preset range, the fusion identifier of the candidate fused embedding vector determined by the query device 100 can be one or more.

[0239] 2. The fusion identifier of the fusion embedding vector is generated using the second generation method mentioned above. The difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is the number of bits between the bits whose values ​​are the first value in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector. The preset range indicates the maximum and minimum number of bits between the bits whose values ​​are the first value in the fusion identifiers of the two fusion embedding vectors.

[0240] The query device 100 may change the value of a bit in the fusion identifier of the target fused embedding vector, and use the fusion identifiers whose data, which are separated from the bits whose value in the fusion identifier of the target fused embedding vector is the first value, as the fusion identifiers of the candidate fused embedding vectors. Given the specific value of the preset range, the fusion identifiers of the candidate fused embedding vectors determined by the query device 100 may be one or more.

[0241] 3. The fusion identifier of the fusion embedding vector is generated using the third generation method mentioned above. The difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is the number of bits whose values ​​are different between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector. The preset range indicates the maximum and minimum number of bits whose values ​​are different between the fusion identifiers of the two fusion embedding vectors.

[0242] The query device 100 can change the value of the bits in the fusion identifier of the target fused embedding vector, and use the fusion identifier whose number of bits differing from the median value of the fusion identifier of the target fused embedding vector is between the maximum number and the minimum number indicated by the preset range as the fusion identifier of the candidate fused embedding vector. Given the specific value of the preset range, the fusion identifier of the candidate fused embedding vector determined by the query device 100 can be one or more.

[0243] Step 508: The query device 100 determines the storage address of the candidate fused embedding vector from the mapping relationship based on the fusion identifier of the candidate fused embedding vector, accesses the first memory 200 based on the determined storage address of the candidate fused embedding vector, and obtains the target fused embedding vector from the first memory 200. The manner in which the query device 100 performs step 508 is similar to the manner in which the query device 100 performs step 505, with the only difference being the storage address obtained and the fused embedding vector obtained. For details, please refer to the above description and will not be repeated here. This step can be performed by the address query module 120 in the query device 100.

[0244] Step 509: The query device 100 determines the identifier of the first-category embedding vector and / or the identifier of the second-category embedding vector based on the fusion identifier of the candidate fused embedding vector. The first-category embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the target fused embedding vector is generated and does not exist in the multiple embedding vectors based on which the candidate fused embedding vector is generated. The second-category embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the target fused embedding vector is generated and exists in the multiple embedding vectors based on which the candidate fused embedding vector is generated.

[0245] For any candidate fused embedding vector, the query device 100 may further determine the identifier of the first-category embedding vector and / or the identifier of the second-category embedding vector related to the candidate fused embedding vector.

[0246] Three ways in which the query device 100 determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are listed below.

[0247] 1) The query device 100 determines, based on the fusion identifier of the candidate fused embedding vector, the identifiers of the multiple embedding vectors on which the candidate fused embedding vector is generated, that is, determines the identifiers of each embedding vector in the candidate embedding vector set. The identifiers of the multiple embedding vectors carried in the query request are the identifiers of the multiple embedding vectors on which the target fused embedding vector is generated, that is, the identifiers of each embedding vector in the target embedding vector set.

[0248] The query device 100 determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector by comparing the identifier of each embedding vector in the candidate embedding vector set and the identifier of each embedding vector in the target embedding vector set.

[0249] 2) The query device 100 compares the fusion identifier of the candidate fused embedding vector and the fusion identifier of the target fused embedding vector, and determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the comparison result.

[0250] The way in which the query device 100 compares the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is related to the way in which the fusion identifier of the fusion embedding vector is generated.

[0251] When the fusion identifier of the fusion embedding vector is generated using the aforementioned generation method 1, the embedding vectors corresponding to the bits with different values ​​in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector are first-class embedding vectors and / or second-class embedding vectors. For example, the bit with the first value in the fusion identifier of the candidate fusion embedding vector and the embedding vector corresponding to the bit with the second value at the same position in the fusion identifier of the target fusion embedding vector are second-class embedding vectors, and the embedding vector corresponding to the bit with the second value in the fusion identifier of the candidate fusion embedding vector and the bit with the first value at the same position in the fusion identifier of the target fusion embedding vector are first-class embedding vectors.

[0252] 3) The first memory 200 stores the fused embedding vector and the identifiers of the multiple embedding vectors based on which the fused embedding vector is generated. The query device 100 can read the fused embedding vector and the identifiers of the multiple embedding vectors based on which the fused embedding vector is generated through the storage address of the fused embedding vector.

[0253] After determining the storage address of the candidate fused embedding vector based on the fusion identifier and mapping relationship of the candidate fused embedding vector, the query device 100 can read the candidate fused embedding vector and the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector was generated through the storage address of the candidate fused embedding vector, that is, determine the identifiers of each embedding vector in the candidate embedding vector set. The identifiers of the multiple embedding vectors carried in the query request are the identifiers of the multiple embedding vectors based on which the target fused embedding vector was generated, that is, the identifiers of each embedding vector in the target embedding vector set.

[0254] The query device 100 determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector by comparing the identifier of each embedding vector in the candidate embedding vector set and the identifier of each embedding vector in the target embedding vector set.

[0255] It can be seen that there is an association between the candidate fusion embedding vector and the determined first-class embedding vector and / or second-class embedding vector. The identifier of the first-class embedding vector and / or the second-class embedding vector associated with the candidate fusion embedding vector is the different embedding vectors in the candidate embedding vector set and the target embedding vector set based on which the candidate fusion embedding vector is generated.

[0256] Step 510: The query device 100 feeds back the candidate fused embedding vector, and the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector to the processor 300.

[0257] After determining any candidate fused embedding vector and the identifier of its associated first-class embedding vector and / or the identifier of its associated second-class embedding vector, the query device 100 can feedback the candidate fused embedding vector and the identifier of its associated first-class embedding vector and / or the identifier of its associated second-class embedding vector to the processor 300.

[0258] Step 511: the processor 300 accesses the second memory 400 according to the identifier of the first-category embedding vector and / or the identifier of the second-category embedding vector, and obtains the first-category embedding vector and / or the second-category embedding vector from the second memory 400.

[0259] For a class of embedded vectors, the processor 300 may send a read request carrying an identifier of the class of embedded vectors to the second memory 400. After receiving the read request, the second memory 400 queries the embedding table based on the identifier of the class of embedded vectors, reads the class of embedded vectors, and feeds back the class of embedded vectors to the processor 300.

[0260] For the second-category embedding vector, the processor 300 may send a read request carrying the identifier of the second-category embedding vector to the second memory 400. After receiving the read request, the second memory 400 queries the embedding table according to the identifier of the second-category embedding vector, reads the second-category embedding vector, and feeds back the second-category embedding vector to the processor 300.

[0261] Step 512: The processor 300 generates a target fused embedding vector based on the candidate fused embedding vectors, the first-class embedding vectors and / or the second-class embedding vectors.

[0262] The processor 300 generates a target fused embedding vector based on the candidate fused embedding vector, the first-class embedding vector and / or the second-class embedding vector, which is related to the specific generation method of the fused embedding vector.

[0263] For example, when the fused embedding vector is obtained by summing multiple embedding vectors, then, after obtaining the first-class embedding vector and / or the second-class embedding vector, the processor 300 can subtract the candidate fused embedding vector from the second-class embedding vector, and then sum the difference vector with the first-class embedding vector. The vector obtained after the summation is the target fused embedding vector.

[0264] When the fused embedding vector is obtained by averaging multiple embedding vectors, the processor 300 may first perform a multiplication on the candidate fused embedding vector (i.e., multiply the candidate fused embedding vector by a number), where the number used in the multiplication is the number of the multiple embedding vectors. The vector obtained after the multiplication is then subtracted from the two-category embedding vector. The subtraction vector is then summed with the one-category embedding vector, and the resulting sum is then multiplied (i.e., multiplied by a number), where the number used in the multiplication is the inverse of the number of the multiple embedding vectors. The vector obtained after the multiplication is ultimately the target fused embedding vector.

[0265] Step 513: The processor 300 obtains the multiple embedding vectors from the second memory 400 in multiple times according to the identifiers of the multiple embedding vectors, and generates a target fused embedding vector according to the multiple embedding vectors.

[0266] For any embedded vector, the processor 300 may send a read request carrying the identifier of the embedded vector to the second memory 400. After receiving the read request, the second memory 400 queries the embedding table according to the identifier of the embedded vector, reads the embedded vector, and feeds back the embedded vector to the processor 300.

[0267] Step 513 can be understood as a method in which the processor 300 directly obtains the target fused embedding vector from the embedding table. It can be seen that the processor 300 needs to interact with the second memory 400 multiple times to obtain the multiple embedding vectors. In the aforementioned method in which the processor 300 obtains the target fused embedding vector from the first memory 200, the processor 300 only needs to interact with the query device 100 once to obtain the target fused embedding vector. Even in the method in which the processor 300 needs to obtain the candidate fused embedding vector from the first memory 200 and obtain the identifier of the first type of embedding vector and / or the second type of embedding vector from the second memory 400, the number of interactions between the processor 300 and the query device 100 and the number of interactions between the processor 300 and the second memory will be less than the number of interactions between the processor 300 and the second memory 400 in step 5132, and the query efficiency of the embedding table can still be improved.

[0268] The descriptions of the processes corresponding to the above figures have different focuses. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0269] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes computer program instructions that, when loaded and executed on a computer, fully or partially generate the process or functions described in FIG. 3 of the embodiment of the present invention.

[0270] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line, or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., an SSD).

[0271] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.

Claims

1. An embedded table query method, characterized in that: The method is applied to a query device, comprising: receiving a query request, the query request being used to request a query for a target fused embedding vector, the target fused embedding vector being generated based on a plurality of embedding vectors in an embedding table; The target fused embedding vector is queried from a first memory according to identifiers of the multiple embedding vectors carried in the query request, wherein the first memory includes multiple fused embedding vectors, each of which is generated based on an embedding vector in the embedding table.

2. The method according to claim 1, characterized in that The multiple fused embedding vectors include the target fused embedding vector, and querying the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request includes: Determining a fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; Determining a storage address of the target fused embedded vector in the first memory from mapping information recorded by the query device according to the fusion identifier of the target fused embedded vector, wherein the mapping information indicates a mapping relationship between the storage addresses of the multiple fused embedded vectors in the first memory and the fusion identifiers of the multiple fused embedded vectors; The target fused embedding vector is obtained from the first memory according to the storage address of the target fused embedding vector.

3. The method according to claim 1 or 2, characterized in that The querying the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request includes: Determining a fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; Determining a fusion identifier of a candidate fusion embedding vector according to the fusion identifier of the target fusion embedding vector, wherein the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range, and the difference represents the degree of difference between a plurality of embedding vectors based on which the target fusion embedding vector is generated and a plurality of embedding vectors based on which the candidate fusion embedding vector is generated; The candidate fused embedding vector is obtained from the multiple fused embedding vectors in the first memory according to the fusion identifier of the candidate fused embedding vector.

4. The method according to claim 3, characterized in that The method further comprises: According to the fusion identifier of the candidate fusion embedding vector, the identifier of one type of embedding vector and / or the identifier of the second type of embedding vector are determined, wherein the first type of embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and exists in the multiple embedding vectors based on which the target fusion embedding vector is generated, and the second type of embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and does not exist in the multiple embedding vectors based on which the target fusion embedding vector is generated.

5. The method according to claim 4, characterized in that The determining, according to the fusion identifier of the candidate fused embedding vector, an identifier of the first type of embedding vector and / or an identifier of the second type of embedding vector comprises: Determining, according to the fusion identifier of the candidate fused embedding vector, identifiers of a plurality of embedding vectors based on which the candidate fused embedding vector is generated; The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

6. The method according to claim 4, characterized in that The determining, according to the fusion identifier of the candidate fused embedding vector, an identifier of the first type of embedding vector and / or an identifier of the second type of embedding vector comprises: The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined according to bits having different values ​​in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector.

7. The method according to claim 4, characterized in that The first memory stores the candidate fused embedding vector and identifiers of multiple embedding vectors based on which the candidate fused embedding vector is generated, and determining the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the fusion identifier of the candidate fused embedding vector includes: Obtaining from the first memory the identifiers of the plurality of embedding vectors on which the generation of the candidate fused embedding vector is based; The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

8. The method according to claim 2, characterized in that The query device includes a content addressable memory CAM, the CAM stores the mapping information, and the storage address of the target fused embedding vector in the first memory is determined from the mapping information recorded by the query device according to the fusion identifier of the target fused embedding vector, including: A fusion identifier of the target fusion embedding vector is input into the CAM, and a storage address of the target fusion embedding vector is determined according to the CAM output.

9. The method according to any one of claims 1 to 8, characterized in that: Before querying the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request, the method further includes: It is determined that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set, where the identifier set includes identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated.

10. The method according to any one of claims 1 to 9, characterized in that: The query device is internally provided with a Bloom filter or a Cuckoo filter, the Bloom filter or the Cuckoo filter records the identifier set, and the determining that the identifiers of the multiple embedded vectors carried in the query request belong to the identifier set includes: The Bloom filter or the Cuckoo filter is called to determine that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set.

11. An embedded table query system, characterized in that: The system includes at least one first memory and at least one query device, each first memory corresponds to a query device, including: Any one of the first memories is used to store a plurality of fused embedding vectors, each fused embedding vector is generated based on an embedding vector in the embedding table; Any of the query devices is used to receive a query request, wherein the query request is used to request a query for a target fusion embedding vector, wherein the target fusion embedding vector is generated based on multiple embedding vectors in an embedding table; and query the target fusion embedding vector from the corresponding first memory according to the identifiers of the multiple embedding vectors carried in the query request.

12. The system according to claim 11, characterized in that The multiple fused embedding vectors include the target fused embedding vector, and the query device is used to: Determining a fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; Determining a storage address of the target fused embedded vector in the first memory from mapping information recorded by the query device according to the fusion identifier of the target fused embedded vector, wherein the mapping information indicates a mapping relationship between the storage addresses of the multiple fused embedded vectors in the first memory and the fusion identifiers of the multiple fused embedded vectors; The target fused embedding vector is obtained from the first memory according to the storage address of the target fused embedding vector.

13. The system according to claim 11 or 12, characterized in that The query device is used for: Determining a fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; Determining a fusion identifier of a candidate fusion embedding vector according to the fusion identifier of the target fusion embedding vector, wherein the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range, and the difference represents the degree of difference between a plurality of embedding vectors based on which the target fusion embedding vector is generated and a plurality of embedding vectors based on which the candidate fusion embedding vector is generated; The candidate fused embedding vector is obtained from the multiple fused embedding vectors in the first memory according to the fusion identifier of the candidate fused embedding vector.

14. The system of claim 13, wherein: The query device is further used for: According to the fusion identifier of the candidate fusion embedding vector, the identifier of one type of embedding vector and / or the identifier of the second type of embedding vector are determined, wherein the first type of embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and exists in the multiple embedding vectors based on which the target fusion embedding vector is generated, and the second type of embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and does not exist in the multiple embedding vectors based on which the target fusion embedding vector is generated.

15. The system of claim 14, wherein: When the query device determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the fusion identifier of the candidate fused embedding vector, it is used to: Determining, according to the fusion identifier of the candidate fused embedding vector, identifiers of a plurality of embedding vectors based on which the candidate fused embedding vector is generated; The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

16. The system of claim 14, wherein: The query device determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the fusion identifier of the candidate fused embedding vector, and is used to: The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined according to bits having different values ​​in the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector.

17. The system of claim 14, wherein: The first memory stores the candidate fused embedding vector and the identifiers of multiple embedding vectors based on which the candidate fused embedding vector is generated, and the query device determines the identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector according to the fusion identifier of the candidate fused embedding vector, for: Obtaining from the first memory the identifiers of the plurality of embedding vectors on which the generation of the candidate fused embedding vector is based; The identifier of the first type of embedding vector and / or the identifier of the second type of embedding vector are determined by comparing the identifiers of the multiple embedding vectors based on which the candidate fused embedding vector is generated with the identifiers of the multiple embedding vectors carried in the query request.

18. The system of claim 12, wherein: The query device includes a content addressable memory CAM, the mapping information is stored in the CAM, and the query device determines the storage address of the target fused embedding vector in the first memory from the mapping information recorded by the query device according to the fusion identifier of the target fused embedding vector, and is used to: A fusion identifier of the target fusion embedding vector is input into the CAM, and a storage address of the target fusion embedding vector is determined according to the CAM output.

19. The system according to any one of claims 11 to 18, characterized in that: Before the querying device queries the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request, the querying device is further configured to: It is determined that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set, where the identifier set includes identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated.

20. The system according to any one of claims 11 to 19, characterized in that: The query device is internally provided with a Bloom filter or a Cuckoo filter, and the Bloom filter or the Cuckoo filter records the identifier set. When the query device determines that the identifiers of the multiple embedded vectors carried in the query request belong to the identifier set, the query device is used to: The Bloom filter or the Cuckoo filter is called to determine that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set.

21. The system according to any one of claims 11 to 20, characterized in that: The system includes a plurality of the first memories, which constitute a multi-level storage in a computing device, wherein each first memory corresponds to a first-level storage in the multi-level storage.

22. The system of claim 21, wherein: The system also includes a processor in the computing device; The processor is configured to send the query request to the at least one query device in sequence, or send the query request to the at least one query device synchronously.

23. A query device, characterized in that: The device comprises: An address query module is configured to receive a query request, wherein the query request is used to request a query for a target fused embedding vector, wherein the target fused embedding vector is generated based on a plurality of embedding vectors in an embedding table; and query the target fused embedding vector from a first memory according to identifiers of the plurality of embedding vectors carried in the query request, wherein the first memory includes a plurality of fused embedding vectors, each of which is generated based on an embedding vector in the embedding table.

24. The device according to claim 23, characterized in that The multiple fused embedding vectors include the target fused embedding vector, and the device also includes a marker fusion module; The identifier fusion module is used to determine the fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; The address query module is used to determine the storage address of the target fused embedded vector in the first memory from the mapping information recorded by the query device according to the fusion identifier of the target fused embedded vector, wherein the mapping information indicates the mapping relationship between the storage addresses of the multiple fused embedded vectors in the first memory and the fusion identifiers of the multiple fused embedded vectors; and obtain the target fused embedded vector from the first memory according to the storage address of the target fused embedded vector.

25. The device according to claim 23 or 24, characterized in that The device also includes a marker fusion module; The identifier fusion module is used to determine the fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; The address query module is used to determine the fusion identifier of the target fused embedding vector according to the identifiers of the multiple embedding vectors; Determining a fusion identifier of a candidate fusion embedding vector according to the fusion identifier of the target fusion embedding vector, wherein the difference between the fusion identifier of the candidate fusion embedding vector and the fusion identifier of the target fusion embedding vector is within a preset range, and the difference represents the degree of difference between a plurality of embedding vectors based on which the target fusion embedding vector is generated and a plurality of embedding vectors based on which the candidate fusion embedding vector is generated; The candidate fused embedding vector is obtained from the multiple fused embedding vectors in the first memory according to the fusion identifier of the candidate fused embedding vector.

26. The device according to claim 25, characterized in that The address query module is also used for: According to the fusion identifier of the candidate fusion embedding vector, the identifier of one type of embedding vector and / or the identifier of the second type of embedding vector are determined, wherein the first type of embedding vector is an embedding vector that does not exist in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and exists in the multiple embedding vectors based on which the target fusion embedding vector is generated, and the second type of embedding vector is an embedding vector that exists in the multiple embedding vectors based on which the candidate fusion embedding vector is generated, and does not exist in the multiple embedding vectors based on which the target fusion embedding vector is generated.

27. The device according to any one of claims 23 to 26, characterized in that The device comprises an identification filtering module, and the identification filtering module is used before the address query module queries the target fused embedding vector from the first memory according to the identifiers of the multiple embedding vectors carried in the query request: It is determined that the identifiers of the multiple embedding vectors carried in the query request belong to an identifier set, where the identifier set includes identifiers of all embedding vectors based on which the multiple fused embedding vectors in the first memory are generated.

28. A computer-readable storage medium, characterized in that: When the computer-readable storage medium is executed by a computing device, the computing device executes the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Internet of vehicles text matching method and device, electronic equipment and storage medium

    CN113282711A

  • Cache updating method and device, electronic equipment and computer readable storage medium

    CN115495681A

  • Material recommendation method, material recommendation device and electronic equipment

    CN116226528A

  • Data processing method and device, model training method and device, equipment and storage medium

    CN116257676A