Data processing apparatus and method, and data processing apparatus and device for recommendation model
By introducing a cold processing engine and a hot processing engine into the data processing device to process cold data and hot data respectively, and performing parallel query and reduction operations, the problem of low data processing efficiency in the prior art is solved, and a highly efficient data processing effect is achieved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-08-29
- Publication Date
- 2026-03-12
AI Technical Summary
Existing data processing devices are inefficient when performing embedded processing and cannot meet the needs of fast and efficient data processing.
A cold processing engine and a hot processing engine are used to process cold data and hot data respectively. By using parallel query and reduction operations, and taking advantage of the fact that cold data is less prone to query conflicts, the utilization rate of the cold processing engine is improved. The hot processing engine is used to perform parallel queries on hot data, thereby improving data processing efficiency.
It enables parallel embedding processing of multi-target data, improving the overall efficiency of data processing and enhancing the data processing efficiency of both the cold processing engine and the hot processing engine.
Smart Images

Figure CN2025118016_12032026_PF_FP_ABST
Abstract
Description
Data processing apparatus, method, data processing apparatus of recommendation model and equipment
[0001] The present disclosure claims priority to Chinese Patent Application No. 202411259528.0, filed on September 9, 2024, with the Chinese Patent Office, entitled "Data processing apparatus, method, data processing apparatus of recommendation model and equipment", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] The present disclosure relates to the technical field of data processing, and in particular, to a data processing apparatus, method, data processing apparatus of recommendation model and equipment. BACKGROUND
[0003] Embedding feature query on data is an important task of embedding layer. The embedding layer is a commonly used network structure layer in neural network model, and is usually used for feature conversion. The device for realizing the function of embedding layer can be referred to as a data processing apparatus, which can perform corresponding embedding processing on input data. The embedding processing includes gather operation and reduction operation, etc., wherein the gather operation is an embedding feature query performed on target data, and the reduction operation is a reduction operation on the queried embedding features.
[0004] The existing data processing apparatus has low efficiency in embedding processing, which cannot meet the demand of fast and efficient data processing. SUMMARY
[0005] The present disclosure provides a data processing apparatus, method, data processing apparatus of recommendation model and equipment to improve the efficiency of data processing.
[0006] In a first aspect, the embodiments of the present disclosure provide a data processing apparatus for processing a plurality of target data corresponding to a plurality of target objects, wherein any target object corresponds to at least one target data; the apparatus comprises:
[0007] a detector configured to acquire a plurality of target data to be processed, determine whether each target data is cold data or hot data, and transmit the cold data and the hot data to a cold processing engine and a hot processing engine, respectively;
[0008] the cold processing engine is configured to query embedding features corresponding to cold data of at least two target objects in parallel, and perform reduction operations on the queried embedding features according to the target objects to which the embedding features belong, to obtain cold reduction features of each target object;
[0009] The hot processing engine is configured to query, in parallel, the embedding features corresponding to each hot data of any target object, and perform a reduction operation on the queried embedding features to obtain the hot reduction features corresponding to each target object.
[0010] The accumulator is respectively connected to the cold processing engine and the hot processing engine, and is configured to perform a summation operation on the cold reduction features and the hot reduction features of each target object to obtain the fusion features corresponding to each target object, and the fusion features are used to determine the prediction result of the corresponding target object.
[0011] In a second aspect, the embodiments of the present disclosure provide a data processing method, which is applied to the data processing device as described in the first aspect, and the method comprises:
[0012] obtaining a plurality of target data to be processed, determining whether each target data is cold data or hot data, and transmitting the cold data and the hot data to a cold processing engine and a hot processing engine respectively;
[0013] querying, in parallel, the embedding features corresponding to the cold data of at least two target objects, and performing a reduction operation on the queried embedding features according to the target objects to obtain the cold reduction features of each target object;
[0014] querying, in parallel, the embedding features corresponding to each hot data of any target object, and performing a reduction operation on the queried embedding features to obtain the hot reduction features corresponding to each target object;
[0015] performing a summation operation on the cold reduction features and the hot reduction features of each target object to obtain the fusion features corresponding to each target object, and the fusion features are used to determine the prediction result of the corresponding target object.
[0016] In a third aspect, the embodiments of the present disclosure provide a data processing device of a recommendation model, which is used to accelerate the training stage of the recommendation model, and the recommendation model is used to process a plurality of commodity data corresponding to a plurality of users, wherein any user corresponds to at least one commodity data; and the accelerator comprises:
[0017] The detector is configured to obtain a plurality of commodity data to be processed, determine whether each commodity data is cold data or hot data, and transmit the cold data and the hot data to a cold processing engine and a hot processing engine respectively;
[0018] The cold processing engine is configured to query, in parallel, the embedding features corresponding to the cold data of at least two users, and perform a reduction operation on the queried embedding features according to the users to obtain the cold reduction features of each user.
[0019] The hot processing engine is configured to query, for each target object, embedding features corresponding to each hot data of the target object in parallel, and perform a reduction operation on the queried embedding features to obtain a hot reduction feature corresponding to each target object.
[0020] An accumulator is connected to the cold processing engine and the hot processing engine respectively, and configured to perform a summation operation on the cold reduction feature and the hot reduction feature of each user respectively to obtain a fusion feature corresponding to each user, where the fusion feature is used to determine a predicted recommendation information of the corresponding user.
[0021] In a fourth aspect, an electronic device is provided, which includes:
[0022] The data processing apparatus in the first aspect and the third aspect is configured to determine a fusion feature corresponding to each target object.
[0023] A feature processing apparatus connected to the data processing apparatus is configured to determine a prediction result corresponding to each target object according to the fusion feature output by the data processing apparatus.
[0024] The data processing apparatus, method, data processing apparatus of a recommendation model, and electronic device provided in the embodiments of the present disclosure can perform query and reduction operations on a plurality of target data corresponding to a plurality of target objects through a cold processing engine and a hot processing engine respectively, and overall implement parallel embedding processing of the multiple target data, thereby improving the efficiency of data processing. For the cold processing engine, embedding features corresponding to cold data of at least two target objects are queried in parallel, which is combined with the characteristic that cold data is not prone to query conflicts, and the utilization rate of the cold processing engine is increased to improve the processing efficiency of the cold processing engine. For the hot data of the target object, the hot processing engine is used to query embedding features corresponding to a plurality of hot data of each target object in parallel, which can improve the efficiency of processing the hot data by the hot processing engine. In the case that the cold processing engine and the hot processing engine each achieve a high data processing efficiency, the overall data processing efficiency of the data processing apparatus is improved. BRIEF DESCRIPTION OF DRAWINGS
[0025] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments consistent with the present disclosure and, together with the description, further serve to explain the principles of the present disclosure.
[0026] FIG. 1 is a schematic diagram of an architecture of a DLRM according to an embodiment of the present disclosure;
[0027] FIG. 2 is a schematic diagram of a structure of a data processing apparatus according to an embodiment of the present disclosure;
[0028] FIG. 3 is a schematic diagram of a data processing apparatus processing target data according to an embodiment of the present disclosure;
[0029] FIG. 4 is a schematic diagram of a query operation and a reduction operation according to an embodiment of the present disclosure;
[0030] FIG. 5 is a schematic diagram of processing of a merge unit according to an embodiment of the present disclosure;
[0031] FIG. 6 is a schematic diagram of generating a multi-hot vector according to an embodiment of the present disclosure;
[0032] FIG. 7 is a schematic diagram of logical AND operation of a multi-hot vector according to an embodiment of the present disclosure;
[0033] FIG. 8 is a schematic diagram of a distance-aware clustering mechanism according to an embodiment of the present disclosure;
[0034] FIG. 9 is a flow comparison diagram of query based on SRAM and RRAM according to an embodiment of the present disclosure;
[0035] FIG. 10 is a schematic diagram of comparison of cycle numbers required in two query modes corresponding to FIG. 9;
[0036] FIG. 11 is a schematic diagram of a fine-grained CAM array and a coarse-grained MAC array according to an embodiment of the present disclosure;
[0037] FIG. 12 is a schematic diagram of number of times of access of each query unit by different users according to an embodiment of the present disclosure;
[0038] FIG. 13 is a schematic diagram of access-aware dynamic pruning according to an embodiment of the present disclosure;
[0039] FIG. 14 is a schematic diagram of a structure of an electronic device according to an embodiment of the present disclosure;
[0040] FIG. 15 is a schematic diagram of an architecture of an accelerator of a recommendation model based on RRAM hybrid CAM-MAC according to an embodiment of the present disclosure.
[0041] The specific embodiments of the present disclosure have been shown through the above-described drawings, and will be described in more detail hereinafter. The drawings and the written description are not intended to represent that the concept of the present disclosure is limited by any means, but to illustrate the concept of the present disclosure to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION
[0042] The exemplary embodiments will be described in detail herein with reference to the attached drawings. The embodiments described in the exemplary embodiments below are not intended to represent all embodiments consistent with the present disclosure.
[0043] It should be noted that the user information (including but not limited to user equipment information, user attribute information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present disclosure are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards, and provide corresponding operation portal for user to choose authorization or rejection.
[0044] The data processing apparatus provided by the embodiments of the present disclosure can be an apparatus capable of performing embedding processing on data. The data processing apparatus can be applied in any model that needs to implement data embedding processing, such as word embedding model and deep learning model, etc. Taking a deep learning recommendation model (Deep Learning Recommendation Model, DLRM) in a recommendation model as an example, the DLRM plays a core role in the advertisement and recommendation system, covering various types such as recommendation system, deep interest network (Deep Interest Network, DIN) and product neural network, etc.
[0045] FIG. 1 is a schematic diagram of the architecture of the DLRM provided by the embodiments of the present disclosure. The DLRM includes an embedding layer for embedding processing, feature interaction (Feature Interaction) and multilayer perceptron (Multilayer Perceptron, MLP), etc. The data processing apparatus can be used to perform embedding processing of the embedding layer. As shown in FIG. 1, the bottom multilayer perceptron (Bot-MLP) or embedded query is used to perform feature conversion on dense features. The embedding layer can implement embedding processing (Embedding Lookup) on sparse features, converting the features into a low-dimensional matrix. The collection operation performed by the embedding layer, i.e. the lookup embedding feature, is to retrieve a vector from a large embedding table; the reduction operation performed by the embedding layer is to merge vectors. In the embedding processing stage, memory capacity and bandwidth dominate. The feature interaction is used to interact information of the features after feature conversion of the bottom multilayer perceptron and the features after embedding processing of the embedding layer, and complete information exchange. The top multilayer perceptron (Top-MLP) is used to fuse the features after feature interaction, and then the operation is suspended and enters the subsequent processing stage. Embedding processing is a memory-intensive processing process, and the data processing capacity of this process determines the performance of the DLRM. Therefore, improving the processing efficiency of the data processing apparatus performing embedding processing is important for improving the performance of the DLRM.
[0046] The existing data processing apparatus adopts a serial processing manner to process target data. The manner processes target data corresponding to each target object one by one, and the overall processing time is long, resulting in a small amount of data processed per unit time. Therefore, the existing data processing apparatus has low data processing efficiency.
[0047] The target data is data processed by the input data processing apparatus. The heat of the target data can be understood as the frequency of access of the target data. The frequency of access of each target data is different, so the heat of each target data is different. The target data with high heat has a high frequency of occurrence, which is hot data. The target data with low heat has a low frequency of occurrence, which is cold data. Considering that the frequency of occurrence of target data with different heat is different, if cold data and hot data are not processed separately according to the heat of the data, the cold data with a low frequency of occurrence will occupy the computing resources of the processing engine, resulting in that the computing performance of the processing engine cannot be fully utilized. If cold data and hot data are processed separately according to the heat of the data, the frequency of access of the data can be combined, and different processing engines can be used to process hot data and cold data separately, so that the performance of the processing engine of cold data and hot data can be fully utilized, the speed of data processing can be improved, and the data processing efficiency can be improved.
[0048] Before the embedding processing is performed, an embedding feature table can be constructed in advance to establish a correspondence between a plurality of data and a plurality of embedding features. The embedding feature table can be understood as a specific form of displaying or storing the correspondence between data and embedding features in a tabular form. When the embedding feature table is made, a large amount of data needs to be collected to form a database, so that the data in the database can cover each target data input in actual application. Then, the embedding features corresponding to each data are determined, and the correspondence between the data and the embedding features can be established. The constructed database can be stored in the form of the embedding feature table.
[0049] Taking DLRM as an example, a large amount of data can be obtained from the historical information input or browsed by a plurality of users using DLRM to construct a database and an embedding feature table. Since the total amount of collected data is large, the frequency of occurrence of many information contents is low, so among all the collected data, the proportion of cold data is large, and the proportion of hot data is small. Therefore, in the established embedding feature table, the number of cold data and the corresponding embedding features is greater than that of hot data and the corresponding embedding features.
[0050] Generally, a processing engine for embedding feature query usually includes multiple components responsible for embedding feature query, and each component stores a certain amount of data and its corresponding embedding feature, that is, a part of the embedding feature table. The time taken by a component to query the embedding feature of a target data is usually referred to as a query period, and when the hardware structures of the components are the same, the lengths of the query periods of the components are usually the same. Due to the hardware characteristics of the components, only one target data can be queried on each component within one query period. If two target data to be processed are queried on the same component within the same query period, a query conflict will occur, resulting in that the two target data or one of them cannot normally query the corresponding embedding feature.
[0051] It can be understood that, due to the larger proportion of stored cold data compared to hot data, there are more components for storing cold data and fewer components for storing hot data. When querying, the probability of two cold data to be processed being queried on the same component within the same query period is relatively low, and the probability of two hot data to be processed being queried on the same component within the same query period is relatively high. Therefore, the probability of at least two cold data occurring query conflict within the same query period is relatively low, so cold data has the characteristic of not being prone to query conflict.
[0052] In view of the above situations, according to the characteristics of target data having different degrees of hotness, a cold processing engine and a hot processing engine are set to separately process target data of different degrees of hotness, so as to effectively exert the performance of the processing engines of cold data and hot data and improve the data processing efficiency. Moreover, according to the characteristic of cold data not being prone to query conflict, a parallel query mode is adopted to query the embedding features of at least two target objects of cold data, which can fully utilize the components in the cold processing engine to query multiple cold data in parallel within one query period, reduce the idle condition of some components, improve the utilization rate of the components of the cold processing engine, and improve the data processing efficiency of the cold processing engine. For hot data of target objects, multiple hot data of each target object are processed in parallel by the hot processing engine, which helps to improve the data processing efficiency of the hot processing engine. In the case that the cold processing engine and the hot processing engine both achieve efficient data processing, compared with the existing data processing device, the data processing device provided in the embodiments of the present disclosure has relatively high data processing efficiency.
[0053] FIG. 2 is a structural schematic diagram of a data processing device provided in an embodiment of the present disclosure. The data processing device 200 is used to process multiple target data corresponding to multiple target objects, wherein any target object corresponds to at least one target data. As shown in FIG. 2, the data processing device 200 includes a detector 201, a cold processing engine 202, a hot processing engine 203, and an accumulator 204.
[0054] The detector 201 is configured to acquire a plurality of target data to be processed, determine whether each target data is cold data or hot data, and transmit the cold data and the hot data to the cold processing engine and the hot processing engine respectively.
[0055] For example, the target object can be an object for membership division of each target data. For example, in the DLRM, the target object can be a user name or a user identifier corresponding to a user using the DLRM, and the object for distinguishing the membership of the target data. The target data can be data to be processed by the data processing apparatus, for example, in the DLRM for product recommendation, the target data can be identification data representing items such as product names, product attributes, or product prices that are of interest to the user.
[0056] For example, when the target object and the corresponding target data are [2(5, 162, 116)], 2 represents the target object, and (5, 162, 116) represent three target data respectively. For example, in the DLRM for product recommendation, the target object 2 can represent a user identity document (Identity Document, ID) of 2, and the target data 5, 162, and 116 can be generated after information extraction and information conversion from the historical browsing content or input content of the user ID 2, wherein 5, 162, and 116 can represent item IDs obtained after identification conversion of items such as product names, product attributes, or product prices extracted from the historical browsing content or input content of the user.
[0057] FIG. 3 is a schematic diagram of the data processing apparatus provided by the embodiment of the present disclosure for processing target data. As shown in FIG. 3, the detector can acquire a plurality of target data to be processed in a storage device storing the target data. After acquiring the plurality of target data to be processed, the detector can classify and determine each target data according to the value of each target data, and determine whether each target data is cold data or hot data. The detector can identify each target data according to the cold and hot labels of the value of each target data in the preset embedding feature table, to determine whether each target data is cold data or hot data.
[0058] For example, in the preset embedding feature table, data 5 is labeled as cold data, and data 116 and 162 are labeled as hot data. After acquiring the target data (5, 162, 116), the detector can determine that the target data 5 is cold data, and the target data 116 and 162 are hot data.
[0059] Exemplarily, the hotness of data can be understood as the frequency of data being accessed, if the frequency of data being accessed is high, the data can be marked as hot data, if the frequency of data being accessed is low, the data can be marked as cold data. For example, in the DLRM recommendation system, the Click-Through Rate (CTR) is an important indicator for measuring the frequency of data being accessed. The click-through rate can represent the frequency of users clicking on recommended content, and is specifically defined as the ratio of the number of times a user clicks on a recommended content to the number of times the recommended content is displayed. For example, if a recommended content is displayed 100 times, 5 of which are clicked by users, the click-through rate of the recommended content is 5%. Click-through rate is one of the key indicators for optimizing the recommendation system, because it can directly reflect the attractiveness and relevance of recommended content to users. High click-through rate usually means that the recommendation system can effectively provide users with content that interests them, thereby improving user experience and overall performance of the system.
[0060] For example, when constructing the embedding feature table in advance, a certain amount of data can be captured to construct a database based on historical information, browsed information and / or information filtered in the information dictionary input by multiple users, and the embedding features of each data in the database are extracted, and then the embedding feature table can be constructed. The constructed embedding feature table can cover any target data input by any user. It can be understood that the target data can be data obtained by converting the information input by the user, for example, the data is numerical data; although any user can input any information, when converting, the information will not be converted into data outside the pre-constructed database, therefore, the constructed embedding feature table can cover any target data input by any user.
[0061] The click-through rate of the data can be used as a hotness evaluation parameter of the data to distinguish and classify the cold data and the hot data, and the database can be divided into a cold database and a hot database, that is, the embedding feature table can be divided into a cold data embedding feature table and a hot data embedding feature table. For example, a click-through rate threshold is set, and the click-through rate of each data is compared with the click-through rate threshold, if the click-through rate of the data is greater than or equal to the click-through rate threshold, the data is marked as hot data, if the click-through rate of the data is less than the click-through rate threshold, the data is marked as cold data.
[0062] In the detector, the labeled cold database and hot database are pre-loaded, when the detector obtains multiple target data to be processed, each target data to be processed can be matched with each data in the cold database and the hot database, so as to determine that each target data to be processed is cold data or hot data. The target data determined as cold data is transmitted to the cold processing engine for subsequent processing, and the target data determined as hot data is transmitted to the hot processing engine for subsequent processing.
[0063] The cold processing engine 202 is connected with the detector 201, and is configured to query the embedding features corresponding to the cold data of at least two target objects in parallel, and perform a reduction operation on the queried embedding features according to the target objects to which the embedding features belong, to obtain cold reduction features of the target objects.
[0064] FIG. 4 is a schematic diagram of the query operation and the reduction operation provided by the embodiment of the present disclosure. As shown in FIG. 4, the target data corresponding to the target object 5 is (1, 16, 9, 10), i.e., [5(1, 16, 9, 10)]. The embedding features corresponding to 1, 16, 9 and 10 are queried in the embedding feature table, and the embedding features corresponding to the target data 1 are (2, 5, 3), the embedding features corresponding to the target data 16 are (5, 2, 1), the embedding features corresponding to the target data 9 are (3, 2, 1), and the embedding features corresponding to the target data 10 are (1, 3, 2). When the reduction operation is performed on the queried embedding features, the elements of the embedding features at the corresponding positions are summed to obtain the reduction features of the target object 5, i.e., (11, 12, 7). The query operation and the reduction operation on the cold data of the same target object or the hot data of the same target object can be performed in the above manner.
[0065] Optionally, when the cold processing engine 202 determines that the parallel query of the cold data of at least two target objects will not cause query conflicts, the cold processing engine can perform the query operation in parallel to determine the embedding features corresponding to each cold data. For example, when it is determined that the parallel query of the cold data (257, 390) of the user ID 1 and the cold data (162, 116) of the user ID 2 will not cause query conflicts, the embedding feature query can be performed on 257, 390, 162 and 116 in parallel to obtain the embedding features corresponding to each cold data. After the embedding features corresponding to each cold data are queried, the queried embedding features can be subjected to a reduction operation according to the target objects to which the embedding features belong, i.e., the embedding features of 257 and 390 of the cold data of the user ID 1 are subjected to a reduction operation to obtain the cold reduction features of the user ID 1, and the embedding features of 162 and 116 of the cold data of the user ID 2 are subjected to a reduction operation to obtain the cold reduction features of the user ID 2. The cold reduction features can be understood as the reduction features of the target object obtained by performing the query operation and the reduction operation on the cold data of the target object.
[0066] The hot processing engine 203 is connected with the detector 201, and is configured to query the embedding features corresponding to the hot data of each target object in parallel, and perform a reduction operation on the queried embedding features to obtain the hot reduction features corresponding to each target object.
[0067] Exemplarily, the heat processing engine 203 can perform embedding feature query on each target object in a parallel query manner. The heat processing engine 203 can pre-store a heat database including a plurality of heat data, and store embedding features corresponding to each heat data in the heat database, that is, store a plurality of embedding feature tables labeled as heat data.
[0068] After receiving each heat data of one target object transmitted by the detector, a query operation can be performed on each heat data in the embedding feature table to obtain the embedding feature corresponding to each heat data of the target object, and the embedding features corresponding to each heat data are reduced to obtain the heat reduction feature of the target object.
[0069] Exemplarily, since the heat processing engine and the cold processing engine can each include a plurality of components responsible for querying embedding features, each component queries the embedding features of only one target data in one query period; and each embedding feature stored in a component is the embedding feature of a plurality of target data corresponding to adjacent data values, which can be understood as the embedding features of a plurality of target data with consecutive numbers or approximately consecutive numbers stored in a component. Since cold data is target data with low frequency of access, the probability of the same or adjacent data values of each cold data of a plurality of target objects is low, and each cold data to be queried is sparsely scattered in different components for query. Therefore, the cold data of a plurality of target objects is likely to be scattered in different components for query in one query period, and the probability of any two cold data in these cold data needing to be queried in the same component is low, that is, the probability of query conflict is low. In combination with the characteristics of cold data, querying cold data of at least two target objects in parallel can make full use of the hardware resources of the cold processing engine, reduce the load vacancy rate, improve the utilization rate of each component in the cold processing engine, and improve the data processing efficiency of the cold processing engine. For each heat data of each target object, querying in a plurality of components storing heat data in a parallel query manner can improve the processing efficiency of querying each heat data of each target object, and querying heat data of all target objects in a parallel query manner can improve the overall processing efficiency of the heat processing engine.
[0070] The accumulator 204 is connected to the cold processing engine 202 and the heat processing engine 203, respectively, for summing each cold reduction feature and heat reduction feature of each target object to obtain a fusion feature corresponding to each target object, and the fusion feature is used to determine the prediction result of the corresponding target object.
[0071] Exemplarily, after the accumulator 204 receives the cold-reduction features and the hot-reduction features of the target object, the cold-reduction features and the hot-reduction features can be added or concatenated to realize fusion between the features, to obtain the fusion features corresponding to the target object. The fusion features can be applied to a subsequent prediction task to determine the prediction result of the target object corresponding to the fusion features. For example, the prediction task can be a recommendation task or a classification task, and the prediction result can be recommendation information or a classification label, etc.
[0072] The data processing apparatus provided by the embodiments of the present disclosure can perform query and reduction operations on a plurality of target data corresponding to a plurality of target objects by a cold processing engine and a hot processing engine respectively, and overall realizes parallel embedding processing of the multi-target data, thereby improving the efficiency of data processing. For the cold processing engine, the embedding features corresponding to the cold data of at least two target objects are queried in parallel, which is combined with the characteristic that the cold data is not prone to query conflicts, and the utilization of the cold processing engine is increased to improve the processing efficiency of the cold processing engine. For the hot data of the target object, the embedding features corresponding to the hot data of each target object are queried in parallel by the hot processing engine, which can improve the efficiency of the hot processing engine in processing the hot data. In the case that the cold processing engine and the hot processing engine each realize high data processing efficiency, the overall data processing efficiency of the data processing apparatus is improved.
[0073] In some embodiments, the cold processing engine includes a merge unit (MU) and a plurality of query units; at least one cold data in the cold database and the embedding features corresponding thereto are pre-stored in a single query unit, and the embedding features stored in the plurality of query units cover all embedding features in the cold database.
[0074] Exemplarily, based on the target data obtained from the historical information, the target data constructed, and the target data collected from the data set, a database including a plurality of data is constructed, data with a click rate lower than a click rate threshold is determined as cold data and a cold database is constructed, and all data in the cold database can cover any cold data corresponding to any target object.
[0075] For example, the database includes 10,001 pieces of data with project IDs 1-11000, and the target data corresponding to any target object are within the range of 1-11000. Each piece of data corresponds to its own embedding feature, i.e., 10,001 pieces of data with project IDs 1-11000 correspond to 10,001 embedding features. For example, the data with project IDs 1-10000 are all cold data, and thus form a cold database; the data with project IDs 10001-11000 are all hot data, and thus form a hot database. The query unit in the cold processing engine can be a component in the cold processing engine responsible for querying embedding features, and the query unit can be composed of a storage unit array or other components that can query embedding features. Each query unit pre-stores the embedding features corresponding to at least one piece of cold data in the cold database, and multiple query units store embedding features covering all embedding features corresponding to the cold database.
[0076] For example, the cold processing engine includes 10 query units, the No. 1 query unit stores cold data with project IDs 1-1000 and the embedding features corresponding thereto; the No. 2 query unit stores cold data with project IDs 1001-2000 and the embedding features corresponding thereto; and so on, and the embedding features stored by the 10 query units cover all embedding features of the cold data corresponding to the cold database.
[0077] The merging unit is configured to determine the query units in which the cold data corresponding to the target objects are stored, and determine at least two target objects to be queried in parallel according to the query units in which the cold data are stored.
[0078] For example, the merging unit can match and determine the query units in which the cold data are stored by matching the cold data to be processed with the cold data stored in each query unit. Alternatively, each query unit stores a fixed number of cold data and the corresponding embedding features in order of the values of the project IDs, e.g., each query unit stores 1000 target data, and the 1000 pieces of cold data are stored in order of the values of the project IDs on the storage units.
[0079] Optionally, when determining the query unit in which the cold data is stored, the merging unit can quickly determine by division. For example, when the cold data to be processed is 801, 801 is divided by 1000, the quotient is 0 and the remainder is 801, it can be determined that the target data of 801 is stored in the 801th row of the storage unit of the first query unit; for another example, when the cold data is 1801, 1801 is divided by 1000, the quotient is 1 and the remainder is 801, it can be determined that the target data of 1801 is stored in the 801th row of the storage unit of the second query unit. Based on this, the cold data can be stored in order, and the query unit in which the cold data is stored can be quickly and conveniently determined by division operation on the cold data to be processed. It is worth noting that when determining the query unit in which the cold data is stored, only the query unit in which the cold data is stored can be concerned, and the specific row of the storage unit can not be concerned; or the query unit in which the cold data is stored and the specific row of the storage unit can be concerned.
[0080] According to the query unit in which each cold data is stored, at least two target objects to be queried in parallel can be determined by determining the target objects corresponding to each cold data without query conflict as the target objects to be queried in parallel. For example, the cold data of target object 1 is 1, the cold data of target object 2 is 801, and the cold data of target object 3 is 1801. Since cold data 1 and cold data 801 are queried in the first query unit, query conflict will occur when queried in parallel, and therefore target object 1 and target object 2 cannot be queried in parallel. However, cold data 1 is queried in the first query unit, and cold data 1801 is queried in the second query unit, and no query conflict will occur when queried in parallel, and therefore target object 1 and target object 3 can be queried in parallel. Based on the query unit in which each cold data is stored, at least two target objects to be queried in parallel can be determined by judging whether query conflict will occur.
[0081] A plurality of query units are used to query in parallel the embedded features corresponding to the cold data of at least two target objects in the embedded features of the pre-stored cold database.
[0082] Exemplarily, after determining at least two target objects that can be queried in parallel, the query operation can be performed based on the query units in which the cold data that can be queried in parallel is stored, so as to query in parallel the cold data of each target object to be queried.
[0083] For example, the cold data of target object 1 is 1, and the cold data of target object 3 is 1801. The first query unit and the second query unit query in parallel the embedded features corresponding to cold data 1 and cold data 1801 respectively, to obtain the embedded features of target object 1 and the embedded features of target object 3.
[0084] In this embodiment, the merging unit can determine at least two target objects to be queried in parallel before the query starts, and perform parallel query through multiple query units in the case that there is cold data that can be queried in parallel. Compared with the scheme without determining the target objects to be queried in parallel, this embodiment can improve the feasibility of parallel query, reduce the probability of query conflict that may occur when cold data is queried in parallel, and thus improve the data processing efficiency of the cold processing engine.
[0085] In some embodiments, the cold processing engine completes the query operation of the cold data in the plurality of target data to be processed through at least one query period; and the merging unit is configured to: generate a multi-hot vector corresponding to each target object according to the query unit in which each cold data is stored, wherein the multi-hot vector corresponding to any target object includes at least one binary vector, the i-th binary vector corresponds to the i-th query period, and is used to indicate the query unit that performs the query operation in the corresponding query period, i being a positive integer; and determine at least two target objects to be queried in parallel according to the multi-hot vector corresponding to each target object.
[0086] For example, the query period can be understood as the time length required for a query unit to perform a query operation. Each query unit can perform embedding feature query on one cold data in one query period. For example, if the cold processing engine includes 10 query units, the 10 query units can perform query on one cold data in one query period, respectively. Therefore, embedding features of 10 cold data can be queried in parallel in one query period.
[0087] The multi-hot vector can be understood as a vector used to indicate the query unit that performs the query operation on each cold data of a target object in each query period. The multi-hot vector can be split into binary vectors corresponding to each query period in order of each query period. The i-th binary vector corresponds to the i-th query period, and indicates the query unit that performs the query operation in the i-th query period, wherein i can be any positive integer. For example, there are 5 binary vectors in a multi-hot vector, indicating that it takes 5 query periods to query all the cold data corresponding to the multi-hot vector. The 1st binary vector corresponds to the 1st query period, i.e., the cold data corresponding to the 1st binary vector is queried in the 1st query period. The 2nd binary vector corresponds to the 2nd query period, i.e., the cold data corresponding to the 2nd binary vector is queried in the 2nd query period. The same applies to the other binary vectors, and thus the description is omitted.
[0088] According to the multi-hot vector corresponding to each target object, it can be determined whether query conflict will occur if any at least two target objects are queried in parallel, so as to determine at least two target objects to be queried in parallel. For example, the multi-hot vectors of any two target objects can be compared to determine the query conflict.
[0089] For example, for two target objects, if it is determined by comparing the i-th binary vector that the embedded features corresponding to two cold data are to be queried on the same query unit in the i-th query period, it can be determined that query conflict will occur when the two target objects are queried in parallel in the i-th query period, and the two target objects cannot be determined as the two target objects to be queried in parallel. Conversely, if the multi-hot vectors of the two target objects are compared, and there is no embedded feature corresponding to two cold data to be queried on the same query unit when comparing the binary vector corresponding to any query period, it can be determined that no query conflict will occur when the two target objects are queried in parallel, and the two target objects can be determined as the two target objects to be queried in parallel.
[0090] In this embodiment, by comparing the binary vector corresponding to the query period, it can be quickly and accurately determined whether the corresponding at least two target objects will cause query conflict, the process of determining query conflict can be simplified, the accuracy and efficiency of determining at least two target objects to be queried in parallel can be improved, and the data processing efficiency of the cold processing engine can be improved.
[0091] In some embodiments, the plurality of query units correspond to respective numbers, and the sequence numbers of the elements in the binary vector correspond to the numbers of the query units; wherein the element value of any sequence number corresponding element in the binary vector is the first numerical value, which represents that the query unit corresponding to the number of the any sequence number does not perform the query operation, and is the second numerical value different from the first numerical value, which represents that the query unit corresponding to the number of the any sequence number performs the query operation; the merging unit is used to perform logical AND operation on the multi-hot vectors of any two target objects in the plurality of target objects; in the case that the element values of the elements in the obtained logical AND result are all the first numerical value, the embedded features corresponding to the cold data of the at least two target objects are determined to be queried in parallel. Exemplarily, the first numerical value and the second numerical value can be any two different numerical values, for example, the first numerical value is 0 and the second numerical value is 1. The first numerical value and the second numerical value can also be understood as zero and non-zero values respectively. The number corresponding to the query unit can be an identity identifier used to distinguish the query units, for example, the query units have respective IDs. For example, the IDs of the 10 query units are 1-10 respectively. The sequence number of each element in the binary vector is the element order sequence number of each element in the binary vector. Taking the first numerical value 0 and the second numerical value 1 as an example, in the binary vector (1, 0, 0), the sequence number of 1 is 1, which corresponds to the query unit of ID1, and the element value is the second numerical value, which represents that the query unit of ID1 performs the query operation in the query period corresponding to the binary vector; the sequence number of the first 0 is 2, which corresponds to the query unit of ID2, and the element value is the first numerical value, which represents that the query unit of ID2 does not perform the query operation in the query period corresponding to the binary vector; the sequence number of the second 0 is 3, which corresponds to the query unit of ID3, and the element value is the first numerical value, which represents that the query unit of ID3 does not perform the query operation in the query period corresponding to the binary vector. The second numerical value can also be other numerical values, for example, 2, 3, etc.
[0092] For example, the cold processing engine includes 10 query units with IDs 1-10, each of which stores 1000 cold data and corresponding embedding features in sequence, so the cold processing engine stores 1-10000 cold data and their respective embedding features. If the cold data of target object 1 is (1, 801, 1801), cold data 1 and 801 are queried on the query unit with ID 1, and since only one cold data is queried in a query period, 1 and 801 cannot be queried in one query period and need to be queried in two query periods. 1801 is queried on the query unit with ID 2. Therefore, when querying target object 1, in the first query period, the embedding features corresponding to cold data 1 are queried on the query unit with ID 1, and the embedding features corresponding to 1801 are queried on the query unit with ID 2, and in the second query period, the embedding features corresponding to 801 are queried on the query unit with ID 1. If the first value is represented by 0 and the second value is represented by 1, the multi-hot vector of target object 1 includes two binary vectors, which are (1, 1, 0, 0, 0, 0, 0, 0, 0, 0) and (1, 0, 0, 0, 0, 0, 0, 0, 0, 0). The first binary vector (1, 1, 0, 0, 0, 0, 0, 0, 0, 0) indicates that in the first query period, embedding feature queries are performed on the query units with IDs 1 and 2, and no embedding feature queries are performed on other query units in the query period. The second binary vector (1, 0, 0, 0, 0, 0, 0, 0, 0, 0) indicates that in the second query period, embedding feature queries are performed on the query unit with ID 1, and no embedding feature queries are performed on other query units in the query period.
[0093] Figure 5 is a processing schematic diagram of a merging unit provided by an embodiment of the present disclosure. As shown in Figure 5, the merging unit can concurrently collect the embedding features corresponding to the cold data of at least two target objects. The merging unit includes a multi-hot transformer, a logical AND operation module, a non-zero detector, and a buffer (including various cache areas). After the merging unit obtains the cold data of each target object in the cache area of the cold data, the merging unit generates a multi-hot vector of each target object through the multi-hot transformer. When generating the multi-hot vector, the number of the query unit in which each cold data corresponding to each target object is likely to be located can be predicted. After obtaining the multi-hot vector corresponding to each target object, the multi-hot vector can be stored in the cache area of the multi-hot vector. Through the logical AND operation module, the logical AND operation can be performed on any two multi-hot vectors in the cache area of the multi-hot vector, and the logical AND result of the any two multi-hot vectors can be obtained. The logical AND result can be stored in the cache area of the logical AND result. Through the non-zero detector, the non-zero detection is performed on the logical AND result, and it is determined whether the element value of each element in the logical AND result is zero or a non-zero value. Then, it can be determined whether the target object corresponding to the logical AND result can be queried in parallel, so as to determine at least two target objects to be queried in parallel. The cold data of the at least two target objects to be queried in parallel can be stored in the cache area of the cold data to be queried in parallel.
[0094] Figure 6 is a schematic diagram of generating a multi-hot vector according to an embodiment of the present disclosure. As shown in Figure 6, it is assumed that there are four query units numbered 0, 1, 2 and 3 in the cold processing engine, and each query unit can sequentially store the embedding features of 128 cold data according to the size of the values of the cold data. For example, the query unit numbered 0 stores the cold data 1-128 and the embedding features thereof, the query unit numbered 1 stores the cold data 129-256 and the embedding features thereof, the query unit numbered 2 stores the cold data 257-384 and the embedding features thereof, and the query unit numbered 3 stores the cold data 385-512 and the embedding features thereof. It is assumed that the cold data of the target object 2 are (5, 162, 116). By determining the number of the query unit in which each cold data is stored, the cold data 5 and 116 are stored in the query unit numbered 0, and the cold data 162 is stored in the query unit numbered 1. Since the embedding features of two cold data are stored in the query unit 0, and the embedding features of one cold data are stored in the query unit 1, a total of two query cycles are required to query the embedding features of the target object 2. In the first query cycle, the embedding features of one of 5 and 116 are queried in the query unit 0, and the embedding features of 162 are queried in the query unit 1. In the second query cycle, the embedding features of the other of 5 and 116 are queried in the query unit 0. The cold data of the target object 3 are (278, 396, 412, 311). By determining the number of the query unit in which each cold data is stored, the cold data 278 and 311 are stored in the query unit numbered 2, and the cold data 396 and 412 are stored in the query unit numbered 3. Since the embedding features of two cold data are stored in the query unit 2, and the embedding features of two cold data are stored in the query unit 3, a total of two query cycles are required to query the embedding features of the target object 3. In the first query cycle, the embedding features of one of 278 and 311 are queried in the query unit 2, and the embedding features of one of 396 and 412 are queried in the query unit 3. In the second query cycle, the embedding features of the other of 278 and 311 are queried in the query unit 2, and the embedding features of the other of 396 and 412 are queried in the query unit 3.
[0095] It can be understood that, for any target object, the number of query cycles required to query the embedding features of the cold data of the target object depends on the maximum number of the embedding features of the cold data of the target object stored in the same query unit. For example, if the embedding features of five cold data of the target object are stored in the same query unit, and the number of the embedding features of other cold data stored in the same query unit is less than or equal to 5, it can be determined that five query cycles are required to query the embedding features of the cold data of the target object.
[0096] As shown in FIG. 6, the multi-hot transformer can generate the multi-hot vector of the target object 2 by acquiring the number of each query unit stored in the cache area of the query unit number and acquiring the number of the query unit in which the embedding feature of each cold data in the target object 2 is stored, and by logical AND operation. The multi-hot vector of the target object 2 in FIG. 6, that is, the multi-hot vector 2, can be represented as "(1, 1, 0, 0), (1, 0, 0, 0)" according to the binary vector corresponding to two query periods. Among them, (1, 1, 0, 0) is the binary vector corresponding to the first query period, and (1, 0, 0, 0) is the binary vector corresponding to the second query period. Similarly, the multi-hot transformer can generate the multi-hot vector of the target object 3 by acquiring the number of each query unit stored in the cache area of the query unit number and acquiring the number of the query unit in which the embedding feature of the cold data in the target object 3 is stored, and by logical AND operation. The multi-hot vector of the target object 3 in FIG. 6, that is, the multi-hot vector 3, can be represented as "(0, 0, 1, 1), (0, 0, 1, 1)" according to the binary vector corresponding to two query periods. Among them, (0, 0, 1, 1) is the binary vector corresponding to the first query period, and (0, 0, 1, 1) is the binary vector corresponding to the second query period.
[0097] FIG. 7 is a schematic diagram of logical AND operation of multi-hot vectors provided by the embodiment of the present disclosure. As shown in FIG. 7, after storing each multi-hot vector generated by the multi-hot transformer in the cache area, the logical AND operation module and the non-zero detector in the merging unit can be used to perform logical AND operation and non-zero detection on any two multi-hot vectors to determine whether the target objects corresponding to the any two multi-hot vectors can be queried in parallel. The non-zero detector can be understood as a unit for detecting whether the element value is the second numerical value.
[0098] Specifically, when performing logical AND operation on any two multi-hot vectors, the elements at the corresponding positions of the corresponding binary vectors can be subjected to logical AND operation. For example, when performing logical AND operation on “[2(1, 1, 0, 0), (1, 0, 0, 0)]” and “[3(0, 0, 1, 1), (0, 0, 1, 1)]”, the two binary vectors for the first query period are subjected to logical AND operation respectively, i.e. (1, 1, 0, 0) AND (0, 0, 1, 1), i.e. (1 AND 0, 1 AND 0, 0 AND 1, 0 AND 1), and the result is (0, 0, 0, 0); the two binary vectors for the second query period are subjected to logical AND operation respectively, i.e. (1, 0, 0, 0) AND (0, 0, 1, 1), i.e. (1 AND 0, 0 AND 0, 0 AND 1, 0 AND 1), and the result is (0, 0, 0, 0). Then, the logical AND result of “[2(1, 1, 0, 0), (1, 0, 0, 0)]” and “[3(0, 0, 1, 1), (0, 0, 1, 1)]” is [2 AND 3(0, 0, 0, 0), (0, 0, 0, 0)], and the logical AND result is stored in the logical AND result cache area.
[0099] The non-zero detector acquires the logical AND result stored in the logical AND result cache area, and performs non-zero detection on each element of the logical AND result, i.e. second value detection. After detection, if the element values of the elements in the logical AND result are all zero, it is determined that the two target objects corresponding to the logical AND result can be subjected to parallel query, and the two target objects are determined to be subjected to parallel query. For example, in the above example, the target object 2 corresponding to “[2(1, 1, 0, 0), (1, 0, 0, 0)]” and the target object 3 corresponding to “[3(0, 0, 1, 1), (0, 0, 1, 1)]” can be subjected to parallel query, and the two target objects are determined to be subjected to parallel query.
[0100] For example, if two multi-hot vectors with different number of binary vectors are subjected to logical AND operation, the binary vectors subjected to logical AND operation are determined according to the number of binary vectors of the two multi-hot vectors, and the binary vectors in excess are subjected to logical AND operation with a binary vector with all element values being zero. For example, one multi-hot vector is [4(1, 1, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)], and the other multi-hot vector is [5(0, 0, 1, 1), (0, 0, 1, 1)], the corresponding logical AND operation is (1, 1, 0, 0) AND (0, 0, 1, 1); (1, 0, 0, 0) AND (0, 0, 1, 1); (1, 0, 0, 0) AND (0, 0, 0, 0); (1, 0, 0, 0) AND (0, 0, 0, 0); the logical AND result is [4 AND 5(0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0)], and after non-zero detection, it is known that the target object 4 and the target object 5 can be subjected to parallel query.
[0101] In this embodiment, the logical AND operation is performed based on the multi-hot vectors, and whether the element values of the elements of the logical AND result are the first numerical value is detected. The different numerical values of the element values in the binary vector can represent different meanings, and the fast and accurate query conflict judgment can be performed, the two target objects subjected to parallel query can be quickly determined with high judgment efficiency, and the overall processing efficiency of the cold processing engine during data processing is improved.
[0102] In some embodiments, the merging unit is further configured to group the target objects according to the multi-hot vectors of the target objects, to obtain at least one parallel processing group, and the target objects in the parallel processing group are determined to be subjected to parallel query; and the plurality of query units are configured to perform parallel query on the parallel processing groups in batches, wherein one batch is subjected to parallel query on one parallel processing group.
[0103] For example, before the parallel query is started, the merging unit can group the target objects corresponding to the plurality of cold data transmitted by the detector, to divide all the target objects subjected to parallel query in the plurality of target objects into the same parallel processing group, to obtain one or more parallel processing groups, and when each parallel processing group is processed in batches, the processing efficiency of the plurality of cold data can be improved.
[0104] For example, the detector obtains 10 target objects corresponding to the plurality of target data, which are target objects 1-10, and each target object corresponds to different number of cold data. The merging unit can generate the multi-hot vectors of the 10 target objects through the multi-hot converter.
[0105] For example, logical AND operation is performed on the multi-hot vectors of the target object 1 and the target object 2, and a logical AND result is obtained. If it is determined that the target object 1 and the target object 2 can be queried in parallel after non-zero detection on the logical AND result, the target object 1 and the target object 2 are stored in one parallel processing group, for example, in the parallel processing group 1. The parallel processing group 1 can be regarded as a cluster. New target objects are added to the cluster by performing logical AND operation and non-zero detection on the multi-hot vectors of the other target objects. If the target objects in the cluster cannot be queried in parallel, a new cluster is constructed, that is, a new parallel processing group is constructed.
[0106] For example, logical AND operation is performed on the multi-hot vectors of the target object 3 and the target object 1 and the target object 2, respectively. If the element values of the elements in the two logical AND results are all zero, the target object 3 is added to the parallel processing group 1. In this case, the target object 1, the target object 2 and the target object 3 are queried in parallel in the same batch. For example, logical AND operation is performed on the multi-hot vectors of the target object 4 and the target object 1, the target object 2 and the target object 3, respectively. If the element value of the element in any one of the three logical AND results is a non-zero value, the target object 4 is added to a new parallel processing group, that is, the parallel processing group 2 is created. The target object 4 is queried in parallel with the target objects in the parallel processing group 1 in different batches. In this way, logical AND operation is performed on the multi-hot vectors of the target object 5 and the target objects in the parallel processing group 1, respectively, to determine whether the target object 5 can be added to the parallel processing group 1. If the target object 5 cannot be added to the parallel processing group 1, logical AND operation is performed on the multi-hot vectors of the target object 5 and the target objects in the parallel processing group 2, respectively, to determine whether the target object 5 can be added to the parallel processing group 2. This process is repeated until all the target objects are added to the corresponding parallel processing groups.
[0107] The plurality of query units can query the parallel processing groups in batches. For example, for the target objects in one parallel processing group, the query units in which the cold data of the target objects are stored perform embedded feature queries on the cold data, respectively, to query the cold data in the parallel processing group in parallel. For the target objects in the next parallel processing group, the plurality of query units query the cold data in the parallel processing group in the same way.
[0108] Exemplarily, if the plurality of target objects are not grouped, the number of batches of parallel queries cannot be optimized. For example, if 10 target objects can be divided into 2 or 3 parallel processing groups, when the embedding feature query is embedded, only 2 batches or 3 batches are needed to complete the embedding feature query of all cold data. If no grouping is performed, if 2 target objects that can be queried in parallel are randomly determined in the 10 target objects, parallel query is performed, the target objects that cannot be queried in parallel are queried through a round, and 5 batches or more batches are needed to complete the embedding feature query of all cold data of the target objects, the query efficiency is adversely affected. Therefore, grouping is performed first, and then each parallel processing group is queried in batches, which can avoid the situation that the number of batches of parallel queries increases when parallel queries can be performed but are not performed, avoid the increase of the total length of cold data processing, and further improve the data processing efficiency of the cold processing engine.
[0109] In the embodiment, the merging unit can group the plurality of target objects according to the plurality of hot spot vectors of the plurality of target objects respectively, and obtain at least one parallel processing group; and the plurality of query units can query each parallel processing group in batches. Based on this, the plurality of target objects can be queried in parallel in a small number of batches, further shortening the length of cold data processing of the plurality of target objects, and improving the overall processing efficiency of the cold data processing engine.
[0110] In some embodiments, the apparatus further comprises a preprocessor connected with the cold processing engine; the preprocessor is configured to construct the cold database by: performing similarity clustering on embedding features corresponding to a plurality of cold data to obtain at least two embedding feature clusters; for any embedding feature cluster, determining a cold data from each cold data corresponding to each embedding feature in the embedding feature cluster; and constructing the cold database based on the determined cold data in each embedding feature cluster and the embedding features corresponding thereto; the preprocessor is further configured to send the cold database to the cold processing engine, so that the cold processing engine receives and stores the cold database; and the preprocessor is further configured to save a mapping relationship of other cold data in the plurality of cold data that are not stored in the cold database and send the mapping relationship to the cold processing engine, the mapping relationship being used to map the other cold data to a cold data corresponding to a same embedding feature cluster as the other cold data in the cold database when the cold data to be queried includes the other cold data.
[0111] Exemplarily, when constructing the cold database, the preprocessor can cluster all the collected cold data, so as to replace other cold data in each embedding feature cluster with one cold data determined in each embedding feature cluster after clustering, thereby realizing the simplification of the embedding features of each cold data in the cold database and reducing the storage overhead pressure caused by storing a large number of embedding features of cold data.
[0112] Optionally, for any one embedded feature cluster, one cold data can be determined from the cold data corresponding to each embedded feature in the embedded feature cluster randomly or according to a preset rule, and the determined cold data is used to represent the cold data corresponding to each embedded feature in the embedded feature cluster, and the embedded feature of the cold data is used to represent other embedded features in the cluster. For example, an embedded feature cluster includes cold data 1-100, if a preset rule of selecting the minimum value is used, cold data 1 can be determined as the cold data representing other cold data in the cluster; if a preset rule of selecting the maximum value is used, cold data 100 can be determined as the cold data representing other cold data in the cluster; if a preset rule of selecting the median value is used, cold data 50 can be determined as the cold data representing other cold data in the cluster; other preset rules can also be used for determination. Alternatively, a cold data can be determined randomly.
[0113] Optionally, when the preprocessor performs similarity clustering on the embedded features corresponding to the plurality of cold data, similarity clustering can be performed through the distance between the embedded features, cosine similarity, etc. For example, distance-aware clustering mechanism can be used. The distance-aware clustering mechanism can be understood as clustering of embedded feature clusters by sensing the distance between two embedded features, and finally adding each embedded feature to an embedded feature cluster. When the distance is sensed, the L1 distance (Manhattan distance) between two embedded features can be used for clustering.
[0114] For example, a distance threshold for judging the L1 distance can be set in advance, which can be any numerical value such as 1, 2, or 3. In the embedded features corresponding to all the collected cold data, the L1 distance between any two embedded features is calculated, if the L1 distance is less than or equal to the distance threshold, the two embedded features can be clustered into a first embedded feature cluster; if the L1 distance is greater than the distance threshold, the two embedded features cannot be clustered, and other two embedded features will be selected to calculate the L1 distance until the first embedded feature cluster is clustered. For another example, after calculating the L1 distance between a plurality of pairs of embedded features, the smallest L1 distance can be determined from the L1 distances less than or equal to the distance threshold, and the two embedded features corresponding to the smallest L1 distance are clustered into a first embedded feature cluster.
[0115] After the first embedding feature cluster is clustered, other embedding features are traversed one by one, and L1 distance calculation and distance threshold comparison are performed between the first embedding feature cluster and the embedding features. If the L1 distance between the current traversed embedding feature and each embedding feature in the first embedding feature cluster is less than or equal to the distance threshold, the current traversed embedding feature is added to the first embedding feature cluster. If the L1 distance between the current traversed embedding feature and each embedding feature in the first embedding feature cluster is greater than the distance threshold, the current traversed embedding feature cannot be added to the first embedding feature cluster, and the current traversed embedding feature is added to a newly created second embedding feature cluster. For subsequent traversed embedding features, the same method is used to determine whether to add to the first embedding feature cluster. If the embedding feature can be added to the first embedding feature cluster, it is added to the first embedding feature cluster. If the embedding feature cannot be added to the first embedding feature cluster, the embedding feature is compared with the embedding features in the second embedding feature cluster. If the L1 distance between the two is less than or equal to the distance threshold, the embedding feature can be added to the second embedding feature cluster. If the L1 distance between the two is greater than the distance threshold, the current traversed embedding feature cannot be added to the second embedding feature cluster, and the current traversed embedding feature is added to a newly created third embedding feature cluster. In this way, all embedding features are added to the created embedding feature cluster or the newly created embedding feature cluster by traversing other embedding features one by one, and at least two embedding feature clusters are obtained.
[0116] FIG. 8 is a schematic diagram of a distance-aware clustering mechanism provided by an embodiment of the present disclosure. It is assumed that the preset distance threshold is 2. As shown in FIG. 8, the embedding feature of cold data 1 is (3, 5, 3), and the embedding feature of cold data 3 is (3, 4, 3). The L1 distance between the two is D(1, 3) = |3-3| + |5-4| + |3-3| = 1. The L1 distance between the embedding features of cold data 1 and cold data 3 is 1, which is less than the distance threshold. Therefore, the embedding features of cold data 1 and cold data 3 can be clustered into the first embedding feature cluster, which can be represented as [1, 3]. Although D(1, 4) = 2 also meets the condition of clustering into the first embedding feature cluster, the L1 distance between cold data 1 and cold data 3 is smaller, indicating that the embedding features of cold data 1 and cold data 3 have a higher similarity. Therefore, the two embedding features corresponding to the smallest L1 distance can be clustered into the first embedding feature cluster, so that the similarity of the features in the same embedding feature cluster is higher, and the replaced embedding feature is closer to the information of the replaced embedding feature when the embedding feature is replaced subsequently.
[0117] Afterwards, other embedding features are traversed one by one and the L1 distance is calculated, for example, for cold data 6, D(1, 6) = 5, which is greater than the distance threshold, so cold data 6 cannot be added to the first embedding feature cluster, and it is added to the second embedding feature cluster. For cold data 4, D(1, 4) = 2, which is equal to the distance threshold; D(3, 4) = 3, which is greater than the distance threshold, so cold data 4 cannot be added to the first embedding feature cluster. D(6, 4) = 7, which is greater than the distance threshold, so cold data 4 also cannot be added to the second embedding feature cluster, and cold data 4 is added to the third embedding feature cluster. For cold data 5, D(1, 5) = 2, which is equal to the distance threshold, and D(3, 5) = 1, which is less than the distance threshold, so cold data 5 can be added to the first embedding feature cluster, and the first embedding feature cluster is updated to [1, 3, 5]. For cold data 2, D(1, 2) = 6, which is greater than the distance threshold, so cold data 2 cannot be added to the first embedding feature cluster; D(6, 2) = 9, which is greater than the distance threshold, so cold data 2 cannot be added to the second embedding feature cluster; D(4, 2) = 8, which is greater than the distance threshold, so cold data 2 cannot be added to the third embedding feature cluster, and cold data 2 is added to the fourth embedding feature cluster. Based on this, through the distance-aware clustering mechanism, the cold data 1-6 can be clustered to obtain four embedding feature clusters.
[0118] Exemplarily, for other cold data in the plurality of cold data that are not stored in the cold database, a mapping relationship of the other cold data is saved and sent to the cold processing engine. The mapping relationship can be used to map the other cold data to cold data corresponding to the same embedding feature cluster in the cold database when the cold data to be queried includes the other cold data.
[0119] Exemplarily, in the first embedding feature cluster [1, 3, 5], the cold data 1 with the smallest value is determined as the cold data for representing the cold data 3 and 5 in the embedding feature cluster. When the cold database is constructed, only the representative cold data and its embedding feature in each embedding feature cluster are retained, and the constructed cold database is “[1(3, 5, 3), 2(6, 4, 5), 4(3, 5, 1), 6(2, 1, 3)]”, and the constructed cold database is stored in the cold processing engine. Based on this, the six embedding features in the original embedding feature table can be compressed to four embedding features, realizing the compressed storage of the plurality of embedding features.
[0120] For other cold data in the plurality of cold data that are not stored in the cold database, the other cold data can be retained and stored in the mapping relationship. The mapping relationship may, for example, be stored in the cold processing engine in the form of a mapping table. For example, the mapping table stores the mapping relationship that the cold data 1, 3, and 5 are all mapped to the cold data 1, so when the embedding feature of the cold data 1 is queried for the cold data 3 or the cold data 5 to be processed, the embedding feature of the cold data 1 that is queried can be determined as the embedding feature of the cold data 3 or the cold data 5.
[0121] Exemplarily, when processing the cold data to be queried of the target object, the other cold data not stored in the cold database can be replaced by the mapping table stored in the detector or the cold processing engine. Specifically, the cold data representing the embedded feature cluster can be replaced by the other cold data not stored in the cold database. For example, for the cold data [13, 3, 21, 5, 18] of the target object, the cold data 3 and the cold data 5 can be replaced by the cold data 1 based on the mapping table, and the replaced cold data is [13, 1, 21, 1, 18]. When querying the cold data [13, 1, 21, 1, 18], the embedded feature (3, 5, 3) corresponding to the cold data 1 can be queried in the cold database to replace the embedded features of the cold data 3 and the cold data 5.
[0122] Exemplarily, the preprocessor can be used to construct the cold database, and can also update the cold database stored in the cold processing engine. When updating the cold database stored in the cold processing engine, all the stored embedded features can also be similarity clustered by the distance-aware clustering mechanism, and the clustered embedded features are stored. The specific process can be similar to the process of constructing the cold database described above.
[0123] Exemplarily, the preprocessor can be connected with the hot processing engine. When constructing or updating the hot database corresponding to the hot data, the embedded features corresponding to the hot data can also be clustered and stored by compression through the distance-aware clustering mechanism or similar clustering method, so as to save the storage overhead of storing the hot data and its embedded features.
[0124] In this embodiment, the embedded features corresponding to the plurality of cold data are similarity clustered by the preprocessor, and one cold data in the embedded feature cluster is determined to represent the other cold data in the cluster for cold database construction, so that the plurality of embedded features can be simplified to obtain a simple and representative cold database. The alternative embedded features have similarity with the replaced embedded features, so that the information of the embedded features corresponding to all the cold data is maintained as much as possible while minimizing the storage of redundant embedded features, and effective embedded feature compression storage is achieved.
[0125] In some embodiments, the data processing apparatus further comprises a trimmer; the trimmer is configured to: obtain the plurality of hotspot vectors corresponding to each target object; for the plurality of hotspot vectors of at least two target objects to be queried in parallel in each target object, in the case that the number of binary vectors of each plurality of hotspot vectors is different, at least one binary vector at the end of the plurality of hotspot vectors with more binary vectors is deleted to make the number of binary vectors of each plurality of hotspot vectors the same, so as to complete the query operation according to the plurality of hotspot vectors obtained after the deletion operation.
[0126] Exemplarily, the pruner can be connected with the merging unit. After the merging unit produces the multi-hot vectors corresponding to each target object, the merging unit can send the multi-hot vectors to the pruner. The pruner compares the number of binary vectors of the multi-hot vectors of the at least two target objects to be queried in parallel, and in the case that the number of binary vectors of the multi-hot vectors is different, the multi-hot vector with more binary vectors is deleted, so that the number of binary vectors of the multi-hot vectors of the at least two target objects to be queried in parallel is the same.
[0127] For example, each cold data of the target object 2 is (5, 162, 116, 6), wherein the cold data 5, 6 and 116 are queried in the query unit numbered 0, and the cold data 162 is queried in the query unit numbered 1. Since three cold data embedding features need to be queried in the query unit numbered 0, three query periods are needed to complete the query. The multi-hot vector of the target object 2 is “[2(1, 1, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)]”, wherein the first binary vector (1, 1, 0, 0) indicates that in the first query period, the cold data 5 is queried in the query unit numbered 0, and the cold data 162 is queried in the query unit numbered 1; the second binary vector (1, 0, 0, 0) indicates that in the second query period, the cold data 116 is queried in the query unit numbered 0; and the third binary vector (1, 0, 0, 0) indicates that in the third query period, the cold data 6 is queried in the query unit numbered 0.
[0128] The target object 3 is a target object to be queried in parallel with the target object 2. Each cold data of the target object 3 is (278, 396, 412, 311), the cold data 278 and 311 are stored in the query unit numbered 2, and the cold data 396 and 412 are stored in the query unit numbered 3. The multi-hot vector of the target object 3 is “[3(0, 0, 1, 1), (0, 0, 1, 1)]”. Two query periods are needed to query the target object 3. It can be seen that the number of query periods is different when the target object 2 and the target object 3 are queried in parallel, that is, in the first two query periods, the cold data of the target object 2 and the target object 3 are queried in parallel, and in the third query period, only the cold data of the target object 2 is queried, and only one query unit is executing the query, and most of the query units are idle, and the workload is not saturated, so the load of each query unit is unbalanced.
[0129] In this case, the pruner can be used to delete the binary vectors in some of the multi-hot vectors, so that the number of query cycles corresponding to each multi-hot vector is the same, and the degree of load imbalance of each query unit is reduced. In the above example, since the number of binary vectors of target object 2 is 3 and the number of binary vectors of target object 3 is 2, the pruner can delete one binary vector at the end of the multi-hot vector of target object 2, i.e., delete the multi-hot vector of target object 2 “[2(1, 1, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)]” to only include 2 binary vectors, i.e., obtain the multi-hot vector after the deletion operation “[2(1, 1, 0, 0), (1, 0, 0, 0)]”.
[0130] For example, the pruner can be connected to each query unit. The pruner is also used to obtain each cold data corresponding to each multi-hot vector sent by the merging unit, delete at least one data in each cold data based on the multi-hot vector obtained after the deletion operation, obtain each cold data after the deletion operation, and transmit each cold data after the deletion operation to the plurality of query units; the plurality of query units are used to perform query operations according to each cold data after the deletion operation.
[0131] For example, the multi-hot vector of target object 2 after the deletion operation is “[2(1, 1, 0, 0), (1, 0, 0, 0)]”, and the pruner deletes the cold data corresponding to the deleted binary vector “(1, 0, 0, 0)”. Optionally, the maximum value, median value, minimum value, or value within a predetermined range in each cold data is determined as the cold data to be deleted by a preset algorithm. For example, the cold data corresponding to the binary vector “(1, 0, 0, 0)” can be the maximum value of the 3 cold data 5, 6, and 116 to be queried in the query unit numbered 0, and the cold data 116 is deleted. Each cold data of target object 2 after the deletion operation is (5, 162, 6). The cold data after the deletion operation is transmitted to the plurality of query units, and the plurality of query units perform parallel queries based on each cold data of target object 2 (5, 162, 6) and each cold data of target object 3 (278, 396, 412, 311). Based on this, after deleting the cold data corresponding to the binary vector, target object 2 and target object 3 can complete the parallel query in two query cycles, avoid occupying the cold processing engine for too long, so that the cold processing engine can end the current round of parallel query as soon as possible and can quickly start the next round of parallel query, and improve the overall data processing efficiency of the cold processing engine.
[0132] In the embodiment, by pruning the quantity comparison of the multi-hot spot vectors of at least two target objects of the to-be-parallel-queried queries, it can be predicted whether the load imbalance of each query unit is likely to occur in parallel query, and when it is determined that the situation is likely to occur, the binary vector of the multi-hot spot vector is deleted, so that the target objects of the parallel query can be completed in the same query period, the load of each query unit is balanced, and thus the data processing efficiency of the cold processing engine as a whole is improved.
[0133] Exemplarily, a plurality of works have improved the speed of parallel computing of the embedding layer, so that the research field of the DLRM accelerator develops rapidly. However, they still need frequent data movement and hinder the performance improvement. Existing accelerators based on GPUs and CPUs can be divided into two categories. The first category is the process-near-memory accelerator, which can more conveniently access memory and calculation, but still needs frequent access to memory and data movement, and the memory bandwidth restricts the performance. The second category is a heterogeneous accelerator, which avoids data movement, but the communication bandwidth and coordination mechanism of the heterogeneous accelerator restrict the performance.
[0134] As an alternative, Resistive Random Access Memory (RRAM) is a candidate memory that can accelerate DLRM. For example, ReREC is an RRAM-based accelerator that uses a fine-grained RRAM-based Multiply-Accumulate (MAC) crossbar, i.e., MCA array, to regularize the inner product computation pattern in one of the operators in DLRM, the feature interaction, thereby improving hardware utilization. However, ReREC neglects the embedding layer by simply storing the user / item IDs (i.e., target objects / target data) in an on-chip buffer based on Static Random Access Memory (SRAM). Therefore, when it collects the embedding vectors, it has to compare the input user / item IDs with the stored user / item IDs one by one. Since the user / item IDs are stored out-of-order in the on-chip buffer, ReREC spends a lot of time sequentially comparing them within the on-chip buffer. Meanwhile, because users have different interests in different goods, there exist a small number of high-frequency click rate item data and a large number of low-frequency click rate goods, so we define the high-frequency item data as hot data and the low-frequency item data as cold data. As users' interests migrate, the click frequency of item data will also change, and cold and hot data will also be updated, causing users, item data, and their embedding features to be even more out-of-order. Therefore, the key to designing an RRAM-based recommendation model accelerator lies in effectively accelerating the embedding layer. Overall, ReREC neglects the expensive embedding layer, thus missing the opportunity to further improve the efficiency of DLRM. In addition, using too many fine-grained RRAM-based MAC crossbars inevitably introduces a large amount of peripheral circuit overhead.
[0135] FIG. 9 is a flow comparison diagram of query based on SRAM and RRAM provided by the embodiment of the present disclosure, and FIG. 10 is a comparison diagram of the number of cycles required when the two query modes correspond to FIG. 9. Assuming that the target data to be queried is 10, as shown in FIG. 9, the left half is the process of embedding feature query of the target data 10 based on the SRAM storage unit, and the right half is the process of embedding feature query of the target data 10 based on the RRAM storage unit. In the execution process of the embedding layer, since the project ID is stored in the on-chip buffer in disorder, the SRAM-based method needs to collect the embedding features of the project ID by comparing the project ID to be queried with the stored project ID one by one, which takes a long time. As shown in FIG. 9 and FIG. 10, given the project ID to be queried is 10, the SRAM-based collection operation can only compare with one stored project ID in each cycle, and it takes 6 cycles to match the address of the project ID to be queried to obtain the corresponding embedding features (1, 3, 2). Since RRAM has the advantages of high memory density and integration of storage and calculation, the RRAM-based collection operation can simultaneously perform multi-row matching search, that is, RRAM can compare with at least part of the stored project ID in one cycle, so it can match the address of the project ID to be queried in 1 cycle, and then can be used to accelerate DLRM.
[0136] Based on the above comparison, if RRAM storage units are used in the cold processing engine and the hot processing engine of the data processing device provided by the embodiment of the present disclosure, the efficiency of embedding processing will be further improved.
[0137] In some embodiments, the cold processing engine and the hot processing engine each include at least one CAM array and at least one MAC array based on RRAM storage units; the CAM array is connected with the detector and stores the embedding feature address of the target data, and the CAM array is used to perform a query operation to obtain the embedding feature address corresponding to the target data and trigger the MAC array to perform a reduction operation on the embedding feature corresponding to the embedding feature address.
[0138] Exemplarily, the array of content-addressable memory (CAM) is a CAM crossbar, and the CAM array based on RRAM storage units is a storage array based on RRAM, which can be used to query the embedding features of the target data. For example, in the cold processing engine, the query unit can be composed of the CAM array based on RRAM storage units. The MAC array based on RRAM storage units can be a crossbar matrix for multiplication and accumulation operation based on RRAM, which can be used to perform a reduction operation on the embedding features corresponding to the target data.
[0139] The CAM array can store the embedding feature addresses of the target data. The CAM array is connected with the detector. When the detector transmits the target data, the CAM array can address the target data and determine the embedding feature stored in the position corresponding to the address obtained by the addressing as the embedding feature corresponding to the target data. After the embedding feature corresponding to the target data is queried, the CAM array can trigger the MAC array to perform the reduction operation on the embedding feature corresponding to the embedding feature address, to obtain the reduction feature of the target data. For example, after the detector inputs the cold data into the cold processing engine, the CAM array in the cold processing engine addresses the input cold data and queries the corresponding embedding feature, and triggers the MAC array connected therewith to perform the reduction operation on the queried embedding feature, to obtain the cold reduction feature corresponding to the cold data. For another example, after the detector inputs the hot data into the hot processing engine, the CAM array in the hot processing engine addresses the input hot data and queries the corresponding embedding feature, and triggers the MAC array connected therewith to perform the reduction operation on the queried embedding feature, to obtain the hot reduction feature corresponding to the hot data.
[0140] In the embodiment, the cold processing engine and the hot processing engine each include at least one CAM array and at least one MAC array based on RRAM memory cells, so that when the embedding feature query and the reduction operation are performed on the input target data to be processed, the time consumption is reduced, and the data processing rate of each processing engine is improved.
[0141] Exemplarily, the hot processing engine can include a plurality of CAM arrays, and each CAM array stores a part of all hot data and the embedding feature addresses of the hot data. In the hot processing engine including a plurality of CAM arrays, simply storing the hot data makes it difficult to locate the possible position of the hot data to be queried when the collection operation queries the embedding feature. If each CAM array in the hot processing engine is not designed optimally, when a hot data to be queried is given, the hot processing engine can query each CAM array one by one, which will reduce the data processing efficiency of the hot processing engine. Therefore, the embodiment of the present disclosure introduces a comparing unit (CU) to perform effective positioning. The efficiency of querying the hot data on each CAM array is improved by the comparing unit, and the data processing efficiency of the hot processing engine is further improved.
[0142] In some embodiments, the CAM array in the heat processing engine is connected with a comparator unit corresponding to an upper boundary value and a lower boundary value respectively used to identify the maximum value and the minimum value in the heat data stored in the CAM array connected with the comparator; the comparator unit is specifically configured to compare the obtained heat data with the upper boundary value and the lower boundary value respectively, and output a preset flag bit in the case that the heat data is less than or equal to the upper boundary value and greater than or equal to the lower boundary value, the preset flag bit being used to indicate that the embedded feature corresponding to the heat data for comparison is stored in the CAM array; the CAM array is specifically configured to trigger a query operation when the corresponding comparator unit outputs the preset flag bit.
[0143] Exemplarily, the comparator unit can include two comparators and two AND gates, which are used to check whether the obtained heat data, i.e., the heat data to be queried, is stored in the CAM array connected with the comparator unit in a given case. For example, the heat data stored in the CAM array connected with the comparator unit is 1-100, and 1 and 100 are the minimum value and the maximum value respectively, i.e., the lower boundary value corresponding to the comparator unit is 1, and the upper boundary value is 100. The comparator unit can distinguish each heat data to be queried input into the CAM array to determine whether the heat data to be queried is between 1-100, i.e., to determine whether the heat data to be queried is less than or equal to the upper boundary value and greater than or equal to the lower boundary value. When it is determined that the heat data to be queried is less than or equal to the upper boundary value and greater than or equal to the lower boundary value, it indicates that the heat data to be queried is stored in the CAM array, and the embedded feature address of the heat data can be queried in the CAM array; when it is determined that the heat data to be queried is not less than or equal to the upper boundary value and greater than or equal to the lower boundary value, it indicates that the heat data to be queried is not stored in the CAM array, and the embedded feature address of the heat data cannot be queried in the CAM array, and the query operation on the heat data in the CAM array will not be performed.
[0144] Exemplarily, in the heat processing engine, at least two comparator units can be connected in parallel in front of each CAM array to parallelize the detection process and realize parallel discrimination of multiple heat data to be queried at the same time. For example, four comparator units are connected in parallel in front of a CAM array storing heat data of 1-100, and each comparator unit corresponds to an upper boundary value of 100 and a lower boundary value of 1. If the obtained heat data is (2, 105, 31, 72), one heat data can be discriminated by four comparator units respectively to achieve the purpose of simultaneously querying whether four heat data is stored in the CAM array in one cycle.
[0145] If the comparator unit compares the obtained hot data with the upper boundary value and the lower boundary value respectively, in the case that the hot data is less than or equal to the upper boundary value and greater than or equal to the lower boundary value, a preset flag bit can be output. The preset flag bit can be, for example, a preset arbitrary value such as 0 or 1, or can be represented by an output high-level signal or low-level signal. The preset flag bit is used to indicate that the currently discriminated hot data is stored in the CAM array. The CAM array connected with the comparator unit triggers a query operation when the corresponding comparator unit outputs the preset flag bit, and performs an embedded feature query in the CAM array.
[0146] Exemplarily, the CAM array and the MAC array connected with the comparator unit can be a fine-grained CAM array and a coarse-grained MAC array respectively. The granularity can be understood as how many storage units are included in a single array, and the fine-grained CAM array can be understood as a single CAM array including fewer storage units.
[0147] For example, a fine-grained CAM array has fewer storage units than a coarse-grained CAM array, so that if the total amount of hot data to be stored is the same, the number of CAM arrays needs to be relatively increased. The increase in the number of CAM arrays is equivalent to a fine-grained division and storage of the total amount of hot data. For example, if a CAM array includes 20 storage units, it is a fine-grained CAM array relative to a CAM array including 100 storage units, and the CAM array including 100 storage units is a coarse-grained CAM array relative to the CAM array including 20 storage units. The MAC array of coarse-grained or fine-grained has a similar meaning, which will not be described here. Based on this, for the obtained multiple hot data to be queried, including multiple fine-grained CAM arrays, the probability of query conflict can be reduced when querying in parallel, thereby improving the efficiency of the heat processing engine in parallel processing of hot data.
[0148] The MAC array determines the embedded feature at the storage location corresponding to the address after obtaining the embedded feature address, and performs a reduction operation on the determined embedded feature. The MAC array starts working after receiving a signal triggering the query operation, and does not need to discriminate whether the hot data to be queried is stored in the array, so it is not affected by the query conflict. Therefore, each MAC array can be set as a coarse-grained MAC array, i.e., a MAC array includes relatively more storage units, based on which the total number of MAC arrays can be reduced, thereby reducing the peripheral circuit overhead of the hardware device.
[0149] FIG. 11 is a schematic diagram of a fine-grained CAM array and a coarse-grained MAC array according to an embodiment of the present disclosure. As shown in FIG. 11, the size of the fine-grained CAM array and the coarse-grained MAC array can be set to 16x(8x16) and 128x128, respectively. Assuming that the obtained multiple hot data are (2, 75, 40, 81), and the multiple hot data are compared with two CAM arrays using four comparator units, the lower bound of CAM array 1 is 2 and the upper bound is 60, which is represented as [2, 60]; the lower bound of CAM array 2 is 75 and the upper bound is 218, which is represented as [75, 218]. It can be determined by the comparator units that "2" and "40" are stored in CAM array 1, and "75" and "81" are stored in CAM array 2. In a query cycle, "2" and "75" are input into CAM array 1 and CAM array 2, respectively, to obtain the corresponding embedded feature addresses, and the corresponding embedded features of "2" and "75" are found in the coarse-grained MAC array, which are [1, 3, 4] and [0, 2, 3], respectively. The MAC array performs a reduction operation on the obtained embedded features to generate a hot reduction feature [1, 5, 7]. Similarly, in the next query cycle, "40" and "81" are input into CAM array 1 and CAM array 2, respectively, and the query and reduction operations are completed. Based on the fine-grained CAM array and the comparator units, the embedding process can be completed in only 3 query cycles. If the fine-grained CAM array and the comparator units are not used, the above operations need 4 query cycles to complete the embedding process. It can be seen that the embedding process can be shortened by using the comparator units and the fine-grained CAM array, and the data processing efficiency of the hot processing engine can be improved.
[0150] In the embodiment, the comparator units can quickly and accurately determine whether the obtained hot data is stored in the corresponding CAM array, thereby improving the speed and accuracy of the determination. In addition, by using multiple comparator units and fine-grained CAM arrays, the problem of low memory access efficiency when processing multiple hot data can be alleviated, and the latency of the lookup and reduction operations can be effectively reduced.
[0151] FIG. 12 is a statistical diagram of the number of times of accessing each query unit by different users according to an embodiment of the present disclosure. As shown in FIG. 12, through the statistical diagram, it can be known that the cold data input by different users is distributed on different query units, and the distribution of the number of accesses is also uneven. For example, most of the cold data input by user 2 is distributed on query unit 1, and only a small amount of cold data is distributed on other query units. When the cold data is unevenly distributed on each query unit, it will cause the workload of the cold processing engine to be unbalanced. In order to solve the problem of unbalanced workload of the cold processing engine when working, the cold data can be pruned in a deletion manner based on the access-aware dynamic pruning scheme, so as to balance the workload of the cold processing engine and improve the overall data processing efficiency of the cold processing engine.
[0152] Exemplarily, the above-mentioned problem of unbalanced workload of the cold processing engine can be solved by an access-aware dynamic pruning method. The access-aware dynamic pruning method can dynamically prune redundant cold data at the software level by analyzing the distribution of the cold data. Taking a CAM array including RRAM storage units as an example, each query unit includes a CAM array. Specifically, for the cold data to be processed, the cold data is divided by the number of rows of the CAM array in the query unit, so as to determine the query unit in which the cold data is stored, i.e., the CAM array in which the cold data is stored. Then, the number of cold data that needs to be queried for each CAM array can be obtained. The number of cold data that needs to be queried for each CAM array is sorted in ascending order. Then, at least one cold data corresponding to the CAM array with a larger number of queries can be deleted, and the remaining cold data is transmitted to the cold processing engine to restart the query and reduction operation process.
[0153] For example, it is assumed that the cold data input into the cold processing engine is (1, 25, 135, 115). Through division operation, the query unit in which each cold data is stored can be determined by dividing the cold data by the number of rows of the CAM array. For example, the query unit in which “1”, “25” and “115” are stored is query unit 0, and the query unit in which “135” is stored is query unit 1. Then, it can be represented that the query unit in which (1, 25, 135, 115) is stored is (0, 0, 1, 0). That is, three query periods are needed for query unit 0 to query “1”, “25” and “115”, and only one query period is needed for query unit 1 to query “135”. Obviously, after “1” and “135” are queried in the first query period, query unit 1 is in an idle state in the second and third query periods. This is a case of unbalanced workload of the cold processing engine, which will reduce the hardware utilization rate and affect the data processing efficiency.
[0154] According to the access-aware dynamic pruning solution, the number of cold data belonging to different query units can be sorted in ascending order to obtain a sequence (1, 3), so that the pruner or other unit for performing pruning prunes at least one cold data in the query unit 0. For example, "1" and "115" in "1", "25", and "115" can be pruned and deleted, the query on the cold data is avoided, and the calculation process of the remaining (25, 135) is restarted. Through the access-aware dynamic pruning method, the number of remaining cold data in each query unit is equal or close, which can facilitate workload balancing.
[0155] FIG. 13 is a schematic diagram of the access-aware dynamic pruning provided by the embodiment of the present disclosure. As shown in FIG. 13, after "1" and "115" are pruned and deleted, the embedding process of "1" and "115" in the query unit 0 is no longer performed, so that the long-time occupation of the cold processing engine can be reduced, and workload balancing of the cold processing engine is achieved.
[0156] For example, when pruning, the number of cold data to be processed by each query unit can be pruned to be the same. It can be understood that the closer the number of remaining cold data after pruning to the minimum value of the cold data in each query unit, the higher the data processing efficiency is improved, although the representation accuracy of the cold reduction feature of the target object is affected.
[0157] Therefore, in order to balance the representation accuracy of the cold reduction feature and the data processing efficiency, different pruning ratios can be used for pruning according to the number of cold data to be processed in each CAM array. For example, light pruning, medium pruning, and heavy pruning can be performed by using pruning ratios r1, r2, and r3, respectively. Wherein r3≥r2≥r1. Specifically, it is assumed that the number of cold data to be queried distributed in m CAM arrays is arranged in ascending order as a sequence (c0, c1, …, cm-1). The light pruning is to prune the number of cold data to be queried in the last r1xm CAM arrays in the sequence to c(m-1-r1xm). The medium pruning is to prune the number of cold data to be queried in the last r2xm CAM arrays in the sequence to c(m-1-r2xm). The heavy pruning is to prune the number of cold data to be queried in the last r3xm CAM arrays in the sequence to c(m-1-r3xm). m-1 ) sequence. The light pruning is to prune the number of cold data to be queried in the last r1xm CAM arrays in the sequence to c(m-1-r1xm). The medium pruning is to prune the number of cold data to be queried in the last r2xm CAM arrays in the sequence to c(m-1-r2xm). The heavy pruning is to prune the number of cold data to be queried in the last r3xm CAM arrays in the sequence to c(m-1-r3xm).
[0158] Through the access-aware dynamic pruning, the number of cold data to be processed in the query unit with large load is pruned, the load of the query unit with more cold data to be processed is relieved, the load of each query unit of the cold processing engine is relatively balanced, and the data processing efficiency of the cold processing engine is improved.
[0159] The embodiment of the present disclosure further provides a data processing method, which is applied to any one of the above data processing devices, and the method comprises:
[0160] obtain a plurality of target data to be processed, determine whether each target data is cold data or hot data, and respectively transmit the cold data and the hot data to a cold processing engine and a hot processing engine;
[0161] parallelly query the embedded features corresponding to the cold data of at least two target objects, and respectively perform reduction operations on the queried embedded features according to the target objects to obtain cold reduction features of each target object;
[0162] respectively for each target object, parallelly query the embedded features corresponding to each hot data of any target object, and perform a reduction operation on the queried embedded features to obtain hot reduction features corresponding to each target object;
[0163] perform summation operations on the cold reduction features and the hot reduction features of each target object to obtain fusion features corresponding to each target object, and the fusion features are used to determine the prediction results of the corresponding target objects.
[0164] The data processing method provided by the embodiments of the present disclosure can perform query and reduction operations on a plurality of target data corresponding to a plurality of target objects through a cold processing engine and a hot processing engine, and overall realizes parallel embedded processing of multiple target data, thereby improving the efficiency of data processing. For the cold processing engine, by parallelly querying the embedded features corresponding to the cold data of at least two target objects, the utilization of the cold processing engine is increased to improve the processing efficiency of the cold processing engine, which is combined with the characteristic that cold data is not prone to query conflicts. For the hot data of the target object, the hot processing engine parallelly queries the embedded features corresponding to the multiple hot data of each target object, which can improve the efficiency of the hot processing engine in processing hot data. In the case that the cold processing engine and the hot processing engine each achieve high data processing efficiency, the data processing efficiency can be improved as a whole when data processing is performed by the data processing method.
[0165] The embodiments of the present disclosure also provide a data processing device of a recommendation model, which is used to accelerate the training stage of the recommendation model, and the recommendation model is used to process a plurality of commodity data corresponding to a plurality of users, wherein any user corresponds to at least one commodity data; the accelerator comprises:
[0166] a detector configured to obtain a plurality of commodity data to be processed, determine whether each commodity data is cold data or hot data, and respectively transmit the cold data and the hot data to a cold processing engine and a hot processing engine;
[0167] the cold processing engine is configured to parallelly query the embedded features corresponding to the cold data of at least two users, and respectively perform reduction operations on the queried embedded features according to the users to obtain cold reduction features of each user;
[0168] a hot processing engine, configured to respectively process each target object, query the embedding features corresponding to each hot data of any target object in parallel, and perform a reduction operation on the queried embedding features to obtain hot reduction features corresponding to each target object respectively;
[0169] an accumulator, connected with the cold processing engine and the hot processing engine respectively, configured to respectively perform a summation operation on the cold reduction features and the hot reduction features of each user to obtain fusion features corresponding to each user, and the fusion features are used to determine the predicted recommendation information of the corresponding user.
[0170] For example, based on the information input by the user, "basketball, leather, athlete", after ID identification conversion, the "basketball" is converted to obtain the product data "1", the "leather" is converted to obtain the product data "5", and the "athlete" is converted to obtain the product data "129". Then the multiple product data corresponding to the user is "(1, 5, 129)". When performing ID identification conversion, it can be mapped and converted through a preset information and product data mapping table, or the corresponding product data can be determined through a preset classification algorithm for classification of the information, or it can be converted through other ways. The present embodiment does not limit this.
[0171] The data processing apparatus of the recommendation model provided in the embodiment can improve the data processing efficiency through separate processing of cold data and hot data and parallel processing, and achieve the purpose of accelerating the training stage of the recommendation model.
[0172] The specific implementation principles and processes of each part in the embodiment can be referred to the foregoing embodiments. Specifically, the user can refer to the target object of the foregoing embodiments, the product data can refer to the target data of the foregoing embodiments, and the steps and effects of the foregoing embodiments can be combined for understanding. Herein, no further description is given.
[0173] FIG. 14 is a structural schematic diagram of an electronic device provided in the embodiment of the present disclosure. As shown in FIG. 14, the electronic device of the embodiment can include:
[0174] a data processing apparatus 1401, configured to determine fusion features corresponding to each target object; and a feature processing apparatus 1402 connected with the data processing apparatus 1401, configured to determine the prediction result corresponding to each target object according to the fusion features output by the data processing apparatus 1401.
[0175] Exemplarily, the electronic device provided in the embodiment can be an accelerator or an acceleration card or the like, for example, can be an accelerator based on a RRAM hybrid CAM-MAC recommendation model. The electronic device can determine the corresponding prediction result based on the parameters of the DLRM, and update the parameters of the DLRM according to the prediction result, so as to realize the training of the model.
[0176] The implementation principle and technical effects of the electronic device provided in the embodiment can be referred to the foregoing embodiments, which will not be described here.
[0177] Exemplarily, FIG. 15 is a schematic diagram of an architecture of an accelerator based on a RRAM hybrid CAM-MAC recommendation model provided in the embodiment of the disclosure. As shown in FIG. 15, the accelerator based on a RRAM hybrid CAM-MAC recommendation model includes a detector (Detector), a buffer (Buffer), a controller (Controller), a hot processing engine (Hot Item Engine, HIE), a cold processing engine (Cold Item Engine, CIE), an accumulator (Accumulator), a bottom multi-layer perceptron (Bot-MLP Engine), a top multi-layer perceptron (Top-MLP Engine), and a feature interaction engine (Feature Interaction).
[0178] Firstly, the controller executes relevant instructions to control the target data obtained from the buffer to the detector. The detector uses a CAM array to store hot data. The detector aims to classify the obtained target data into cold data and hot data by comparing the obtained target data with the stored hot data.
[0179] Next, the input target object is transmitted to the bottom multi-layer perceptron to obtain the user features corresponding to the target object, wherein the bottom multi-layer perceptron can include a RRAM-based CAM array to store the user ID and the corresponding embedding features of the target object.
[0180] In addition, the cold data and the hot data are transmitted to the cold processing engine and the hot processing engine respectively. The cold processing engine and the hot processing engine both contain a RRAM-based CAM array and a MAC array. They perform a collection operation to obtain the address of the embedding features of the stored hot data and the embedding features of the stored cold data, and trigger the MAC array to perform a reduction operation on the collected embedding features. Then, the reduced cold reduction features and the hot reduction features are added by the accumulator. Then, the inner product is performed in the feature interaction engine composed of multipliers to obtain the target data embedding vector after feature interaction.
[0181] Finally, the user features and the target data embedding vector are connected into pairs and sent to the top multi-layer perceptron to obtain the probability of the input target data.
[0182] The hot processing engine can be composed of fine-grained CAM arrays, coarse-grained MAC arrays, multiple comparator units, etc. The fine-grained CAM arrays store hot data, which well avoids the problem of low access efficiency by improving the parallelism of collection operations. Meanwhile, the corresponding embedding features are stored using coarse-grained MAC arrays. In the DLRM inference process, the fine-grained CAM array searches the address of the stored hot data embedding features given, and sends a hit signal to the underlying MAC array. Based on these signals, the MAC array then adds the corresponding embedding features and completes the reduction operation.
[0183] The cold processing engine can include a checker, a coarse-grained CAM array, and a MAC array. Generally, since the number of cold data is large, the cold data stored in the cold processing engine is relatively continuous, so that a comparator unit is not needed to quickly locate the cold data, saving hardware overhead. And according to the characteristics of this storage, a checker composed of shifters can be used to locate the cold data input into the cold processing engine. The checker uses the shifter to divide the cold data by the number of rows of the coarse-grained CAM array to obtain which CAM array the cold data is in. In addition, by using a coarse-grained MAC array to perform a reduction operation in the cold processing engine, the cost of peripheral circuits can be reduced.
[0184] The embodiments of the present disclosure further provide a computer readable storage medium, wherein computer execution instructions are stored in the computer readable storage medium, and when a processor executes the computer execution instructions, the method described in any of the preceding embodiments is implemented.
[0185] The embodiments of the present disclosure further provide a computer program product, comprising a computer program, which, when executed by a processor, implements the method described in any of the preceding embodiments.
[0186] In several embodiments provided by the present disclosure, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is only a logical function division. In actual implementation, another division manner can be used, for example, multiple modules can be combined or integrated into another system, or some features can be ignored or not executed.
[0187] The integrated modules implemented in the form of software function modules described above can be stored in a computer readable storage medium. The software function modules described above are stored in a storage medium, and include a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute part of the steps of the method described in the embodiments of the present disclosure.
[0188] It is understood that the above-described processor can be a processing unit, and can also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), etc. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in combination with the application can be directly embodied as hardware processor execution, or executed by a combination of hardware and software modules in the processor. The memory can include a high-speed random access memory (RAM), and can also include a non-volatile storage (NVM), such as at least one disk memory, and can also be a U disk, a mobile hard disk, a read-only memory, a magnetic disk or an optical disk, etc.
[0189] The above-mentioned storage medium can be realized by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory, electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk. The storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer.
[0190] An exemplary storage medium is coupled to the processor, so that the processor can read information from the storage medium and can write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in a special integrated circuit. Of course, the processor and the storage medium can also exist as discrete components in an electronic device or a host device.
[0191] It should be noted that in this paper, the term "include", "contain" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed, or includes elements inherent to such process, method, article or device.
[0192] Those skilled in the art can clearly understand the above-mentioned embodiment method can be realized by means of software and the necessary general hardware platform, of course, can also be through hardware, but in many cases the former is a better embodiment. Based on such understanding, the technical solutions of the present disclosure essentially or say the part of the prior art contribution can be embodied in the form of a software product, the computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disc), including a number of instructions to make a terminal device (may be a mobile phone, computer, server, air conditioner, or network equipment, etc.) executes the method described in various embodiments of the present disclosure.
[0193] The above is only the preferred embodiment of the present disclosure, not to limit the patent scope of the present disclosure, any equivalent structure or equivalent flow transformation made by using the disclosure specification and drawing contents, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present disclosure.
Claims
1. A data processing apparatus, wherein, The application relates to a device for processing a plurality of target data corresponding to a plurality of target objects, wherein any target object corresponds to at least one target data; the device comprises: a detector for acquiring the plurality of target data to be processed, determining whether each target data is cold data or hot data, and transmitting the cold data and the hot data to a cold processing engine and a hot processing engine, respectively; the cold processing engine is configured to query, in parallel, the embedding features corresponding to the cold data of at least two target objects, and perform reduction operations on the queried embedding features according to the target objects to obtain cold reduction features of each target object; the hot processing engine is configured to query, in parallel, the embedding features corresponding to each hot data of any target object, and perform reduction operations on the queried embedding features to obtain hot reduction features corresponding to each target object; an accumulator connected to the cold processing engine and the hot processing engine, respectively, configured to perform summation operations on the cold reduction features and the hot reduction features of each target object to obtain fusion features corresponding to each target object, wherein the fusion features are used to determine the prediction results of the corresponding target objects.
2. The apparatus of claim 1, wherein, The cold processing engine comprises a merging unit and a plurality of query units; at least one cold data in a cold database and the embedding features corresponding thereto are pre-stored in a single query unit, and the embedding features stored in the plurality of query units cover each embedding feature in the cold database; the merging unit is configured to determine the query units in which each cold data corresponding to the plurality of target objects is stored, and determine the at least two target objects to be queried in parallel according to the query units in which each cold data is stored; the plurality of query units are configured to query, in parallel, the embedding features corresponding to the cold data of the at least two target objects in each embedding feature of the cold database pre-stored therein.
3. The apparatus of claim 1 or 2, wherein, The cold processing engine completes the query operation of the cold data in the plurality of target data to be processed through at least one query cycle; and the merging unit is configured to: generate a multi-hot vector corresponding to each target object according to the query units in which each cold data is stored, wherein the multi-hot vector corresponding to any target object comprises at least one binary vector, the i-th binary vector corresponds to the i-th query cycle, and is used to indicate the query unit performing the query operation in the corresponding query cycle, wherein i is a positive integer; determine the at least two target objects to be queried in parallel according to the multi-hot vectors corresponding to each target object.
4. The apparatus of claim 3, wherein, The plurality of query units correspond to respective numbers, and the serial numbers of the elements in the binary vector correspond to the numbers of the query units; wherein the element value of any serial number corresponding element in the binary vector is a first value when the query unit with the number corresponding to the serial number does not perform the query operation, and is a second value different from the first value when the query unit with the number corresponding to the serial number performs the query operation. The merging unit is configured to perform a logical AND operation on the multi-hot vectors of any two target objects in the plurality of target objects, and determine to perform parallel query on the embedding features corresponding to the cold data of the at least two target objects when the element values of all elements in the obtained logical AND result are the first numerical value.
5. The apparatus of any one of claims 2-4, wherein, The merging unit is further configured to group the plurality of target objects according to the multi-hot vectors of the plurality of target objects, to obtain at least one parallel processing group, and the target objects in the parallel processing group are the target objects determined to perform parallel query. The plurality of query units are configured to perform parallel query on each parallel processing group in batches, and one batch of parallel query is performed on one parallel processing group.
6. The device of any one of claims 2-5, wherein, The device further comprises a preprocessor connected to the cold processing engine. The preprocessor is configured to construct the cold database by the following manner: performing similarity clustering on the embedding features corresponding to the plurality of cold data to obtain at least two embedding feature clusters; for any embedding feature cluster, determining one cold data from the cold data corresponding to each embedding feature in the embedding feature cluster; constructing the cold database based on the cold data determined from each embedding feature cluster and the embedding features corresponding to the cold data; The preprocessor is further configured to send the cold database to the cold processing engine, so that the cold processing engine receives and stores the cold database. The preprocessor is further configured to save the mapping relationship of other cold data not stored in the cold database from the plurality of cold data and send the mapping relationship to the cold processing engine, and the mapping relationship is used to map the other cold data to the cold data corresponding to the same embedding feature cluster in the cold database when the cold data to be queried includes the other cold data.
7. The apparatus of claim 3 or 4, wherein, The device further comprises a pruner, and the pruner is configured to: obtain the multi-hot vectors corresponding to each target object; for the multi-hot vectors of at least two target objects to be queried in parallel from each target object, delete at least one binary vector at the end of the multi-hot vector with more binary vectors when the number of binary vectors of each multi-hot vector is different, so that the number of binary vectors of each multi-hot vector is the same, and complete the query operation according to the multi-hot vectors obtained after the deletion operation.
8. A data processing method, wherein, The method is applied to the data processing device of any one of claims 1-7, and the method comprises: obtaining a plurality of target data to be processed, determining whether each target data is cold data or hot data, and transmitting the cold data and the hot data to a cold processing engine and a hot processing engine, respectively; performing parallel query on the embedding features corresponding to the cold data of at least two target objects, and performing reduction operation on the queried embedding features according to the target objects to obtain cold reduction features of each target object; performing parallel query on the embedding features corresponding to each hot data of each target object, and performing reduction operation on the queried embedding features to obtain hot reduction features corresponding to each target object, respectively. The cold reduction features and the hot reduction features of each of the target objects are respectively subjected to summation operation to obtain the fusion features corresponding to each of the target objects, and the fusion features are used to determine the prediction results of the corresponding target objects.
9. A data processing apparatus of a recommendation model, wherein, The accelerator is used for accelerating the training phase of a recommendation model, and the recommendation model is used for processing a plurality of commodity data corresponding to a plurality of users, wherein any user corresponds to at least one commodity data; the accelerator comprises: a detector configured to acquire the plurality of commodity data to be processed, determine whether each of the commodity data is cold data or hot data, and transmit the cold data and the hot data to a cold processing engine and a hot processing engine respectively; the cold processing engine is configured to query in parallel embedding features corresponding to cold data of at least two users, and perform reduction operation on the queried embedding features according to the users to obtain cold reduction features of each user; the hot processing engine is configured to query in parallel embedding features corresponding to each hot data of each of the target objects, and perform reduction operation on the queried embedding features to obtain hot reduction features corresponding to each of the target objects respectively; an accumulator connected with the cold processing engine and the hot processing engine respectively, and configured to perform summation operation on the cold reduction features and the hot reduction features of each of the users respectively to obtain fusion features corresponding to each of the users, and the fusion features are used to determine the prediction recommendation information of the corresponding users.
10. An electronic device, comprising: comprise: the data processing device of any one of claims 1-7, 9, used for determining the fusion features corresponding to each of the target objects; a feature processing device connected with the data processing device, used for determining the prediction results corresponding to each of the target objects according to the fusion features output by the data processing device.
Citation Information
Patent Citations
distributed parallel database based on analysis class scenes and a storage method
CN109918450A
Method and system for storing and querying traffic data
CN112650453A
General full-amount data processing method
CN114610737A
Multi-database data processing method, system and device
CN116680295A
Disk management in distributed storage system including grouping disks into cold and hot data disk rings and reducing a spinning rate of disks storing cold data
US20180081578A1