A method, apparatus, device, and storage medium for optimizing a decision engine.

By obtaining the correlation between the initial node and the subordinate nodes in the decision engine, the data collection process is optimized, which solves the problems of low decision-making efficiency and waste of data resources, and achieves efficient decision-making and cost reduction.

CN114020727BActive Publication Date: 2026-03-06XIAMEN YOUWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111141410.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-28
Publication Date
2026-03-06
Estimated Expiration
2041-09-28

AI Technical Summary

Technical Problem

Existing decision engines require all data to generate decisions, leading to a waste of data resources and low decision-making efficiency.

Method used

By obtaining the initial node of the user request, traversing the data table to obtain all child nodes, selecting the next-level node based on the correlation between the child node and the initial node and a predetermined threshold value, and obtaining relevant data from a third-party database, the system can predict subsequent request data and reduce duplicate data collection.

Benefits of technology

It improves the decision-making efficiency of the decision engine, reduces decision-making costs, and reduces the waste of data resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114020727B_ABST
    Figure CN114020727B_ABST
Patent Text Reader

Abstract

This article relates to the field of computer technology, and more particularly to an optimization method, apparatus, device, and storage medium for a decision engine. The method includes: obtaining a user's first request; using the data of the first request as an initial node; traversing the data table containing the initial node to obtain all child nodes of the initial node, wherein each child node directly corresponds to the initial node; selecting a subordinate node from the child nodes based on the correlation between the child node and the initial node and a predetermined threshold value; and obtaining data from the initial node and the subordinate nodes from a third-party database. Through the embodiments described herein, the problems of slowing down the decision-making process or wasting data due to collecting all data by retrieving data from a third-party database during use are solved, thereby improving the decision-making efficiency of the decision engine and reducing the usage cost of the decision engine.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This article relates to the field of computer science, and in particular to an optimization method, apparatus, device, and storage medium for a decision engine. Background Technology

[0002] With the continuous development of the economy, financial businesses are facing increasing financial risks. In order to reduce financial risks, decision engines are widely used in existing technologies to provide enterprises with personalized service decisions for customers, such as risk decisions and marketing decisions.

[0003] A decision engine is a web-based computer application that retrieves relevant data from third-party data platforms based on enterprise commands and makes decisions based on the acquired data. Currently, most decision engines prepare all the necessary data in advance and analyze it to generate corresponding decisions. However, in many cases, the decision engine does not need all the data when generating a decision, leading to data waste, especially when data collection costs are high, significantly increasing the cost of using the decision engine. If all data is collected only when needed, the time required for data acquisition slows down the decision-making process and reduces decision-making efficiency.

[0004] There is an urgent need for an optimization method for decision engines to solve the problems of low decision-making efficiency or waste of data resources in existing decision engines. Summary of the Invention

[0005] To address the issues of data resource waste or low decision-making efficiency in existing decision engines, this paper provides an optimization method, apparatus, device, and storage medium for decision engines. These solutions address the problems of low decision-making efficiency caused by collecting data during use or data resource waste caused by pre-collecting all data in the prior art.

[0006] This embodiment provides a method for optimizing a decision engine, the method including,

[0007] Obtain the user's first request and use the data from the first request as the initial node;

[0008] Traverse the data table containing the initial node to obtain all child nodes of the initial node, where each child node directly corresponds to the initial node.

[0009] Based on the correlation between the child node and the initial node and a predetermined threshold value, a subordinate node is selected from the child nodes;

[0010] Obtain the data of the initial node and the subordinate nodes from the third-party database.

[0011] This embodiment also provides an optimization device for a decision engine, including,

[0012] The user request acquisition unit acquires the user's first request and uses the data from the first request as the initial node.

[0013] The initial node traversal unit traverses the data table where the initial node is located to obtain all child nodes of the initial node, and the child nodes directly correspond to the initial node.

[0014] The lower-level node selection unit selects a lower-level node from the child nodes based on the correlation between the child node and the initial node and a predetermined threshold value;

[0015] The data acquisition unit acquires data from the initial node and the subordinate node in the third-party database.

[0016] This embodiment also provides a computer device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the above-described method.

[0017] This embodiment also provides a computer storage medium on which a computer program is stored, which, when run by the processor of a computer device, executes the above-described method.

[0018] Using the embodiments described herein, the user's first request is first obtained, and the data of the first request is used as the initial node. Then, the data table containing the initial node is traversed to obtain all child nodes of the initial node. Based on the correlation between the child nodes and the initial node and a predetermined threshold value, a lower-level node is selected from the child nodes. This enables the prediction of the user's subsequent requests based on the user's first request. Finally, the data of the initial node and the lower-level nodes are obtained from a third-party database. This achieves the goal of collecting the data of the user's first request and the predicted data of subsequent requests from a third-party database after obtaining the user's first request. This allows for the generation of decisions based on the data of the user's first request and the predicted data of subsequent requests when they are obtained. This solves the problem of slowing down the decision-making process or wasting data by collecting all data when using the system, thus improving the decision-making efficiency of the decision engine and reducing the cost of using the decision engine. Attached Figure Description

[0019] To more clearly illustrate the technical solutions in the embodiments or prior art described herein, the accompanying drawings used in the description of the embodiments or prior art will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this article. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 The figure shown is a real-time system schematic diagram of a decision engine optimization method according to an embodiment of this paper;

[0021] Figure 2 The diagram shown is a flowchart of an optimization method for a decision engine according to an embodiment of this paper;

[0022] Figure 3 The diagram illustrates the process of recording historical data in a data table in this embodiment.

[0023] Figure 4 The diagram illustrates the process of traversing the lower-level nodes again in the embodiment of this paper.

[0024] Figure 5 The diagram shown is a structural schematic of an optimization device for a decision engine according to an embodiment of this paper.

[0025] Figure 6 The diagram shown is a detailed structural diagram of an optimization device for a decision engine according to an embodiment of this paper;

[0026] Figure 7 The diagram shown is a structural schematic of the data table in the embodiment of this article;

[0027] Figure 8 The diagram shown is a structural schematic of the computer device in the embodiment of this article.

[0028] [Explanation of Figure Markers]:

[0029] 101. User terminal;

[0030] 102. Decision Engine;

[0031] 103. Third-party databases;

[0032] 501. User Request Acquisition Unit;

[0033] 502. Initial node traversal unit;

[0034] 503. Subordinate node selection unit;

[0035] 504. Data Acquisition Unit;

[0036] 601. User Request Acquisition Unit;

[0037] 6011. User Request Parsing Module

[0038] 6012, Data Table Maintenance Module;

[0039] 60121. Run log parsing submodule;

[0040] 60122, Request Count Statistics Submodule;

[0041] 602. Initial node traversal unit;

[0042] 603. Subordinate node selection unit;

[0043] 6031. Direct Correlation Calculation Module;

[0044] 60311, Request Count Ratio Calculation Submodule;

[0045] 60312, Time Difference Calculation Submodule;

[0046] 6032. Indirect Correlation Calculation Module;

[0047] 60321, Request Count Sort Submodule;

[0048] 60322, Request Time Sort Submodule;

[0049] 60323, Data sorting by time submodule;

[0050] 6033, Modules that iterate through multiple times;

[0051] 604. Data Acquisition Unit;

[0052] 6041. Data Acquisition Module;

[0053] 6042, Cache module;

[0054] 6043. Decision Generation Module;

[0055] 802. Computer equipment;

[0056] 804. Processing equipment;

[0057] 806. Storage resources;

[0058] 808. Drive mechanism;

[0059] 810. Input / Output Module;

[0060] 812. Input devices;

[0061] 814. Output devices;

[0062] 816. Presentation equipment;

[0063] 818. Graphical User Interface;

[0064] 820. Network interface;

[0065] 822. Communication link;

[0066] 824. Communication bus. Detailed Implementation

[0067] The technical solutions in the embodiments described below will be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments described herein, and not all of the embodiments. Based on the embodiments described herein, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this document.

[0068] It should be noted that the terms "first," "second," etc., used in the specification, claims, and accompanying drawings herein are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, apparatus, product, or device that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.

[0069] like Figure 1 The diagram shows a real-time system schematic of a decision engine optimization method according to an embodiment of this paper, including: a user terminal 101, a decision engine 102, and a third-party database 103. In this embodiment, the user terminal 101 is the data input port of the decision engine 102. The user terminal 101 can be any device or equipment with input function, such as a user's computer. The user can send multiple requests to the decision engine 102 in sequence according to their decision needs. The decision engine 102 first obtains the corresponding data from the third-party database 103 according to the requests from the user terminal 101, and then generates a decision based on the obtained data.

[0070] In the prior art, the decision engine 102 receives a request from the user terminal 101 and then retrieves data from the third-party database 103. Because the data retrieval process can be lengthy and multiple data points cannot be retrieved simultaneously from the third-party database 103, the decision engine 102's data collection speed is slow, resulting in low decision-making efficiency. If the decision engine 102 retrieves all data from the third-party database 103 and stores it in its own memory before receiving the requested data from the user terminal 101, the decision engine 102 can directly use the data already stored in its memory to generate a decision when the user terminal 101 requests data. However, since the decision engine 102 often doesn't need all the data to generate a decision, this results in data waste. Furthermore, the high cost of retrieving data from the third-party database 103 significantly increases the decision-making cost.

[0071] The optimization method, apparatus, device, and storage medium for a decision engine described in this embodiment can be applied to the decision engine 102 to solve the problems of data waste caused by collecting all data or low decision efficiency caused by obtaining data from a third-party database during use in the prior art.

[0072] Specifically, the embodiments in this paper provide an optimization method for a decision engine, which can reduce the decision cost of the decision engine and improve decision efficiency. Figure 2 The diagram shows a flowchart of a decision engine optimization method according to an embodiment of this paper. This diagram illustrates the optimization process of the decision engine, but based on conventional or non-creative labor, it may include more or fewer operational steps. The order of steps listed in the embodiment is merely one possible execution order among many and does not represent the only possible execution order. In actual system or device products, the methods shown in the embodiment or the accompanying drawings can be executed sequentially or in parallel. Specifically, as shown... Figure 2 As shown, the method may include:

[0073] Step 201: Obtain the user's first request and use the data from the first request as the initial node;

[0074] Step 202: Traverse the data table where the initial node is located to obtain all child nodes of the initial node, and the child nodes directly correspond to the initial node;

[0075] Step 203: Select a subordinate node from the child nodes based on the correlation between the child node and the initial node and a predetermined threshold value;

[0076] Step 204: Obtain the data of the initial node and the subordinate node from the third-party database.

[0077] The method described in this embodiment first obtains the user's first request, using the data of the first request as the initial node. Then, it traverses the data table containing the initial node to obtain all child nodes of the initial node. Based on the correlation between the child nodes and the initial node and a predetermined threshold value, a lower-level node is selected from the child nodes. This enables the prediction of subsequent requests based on the user's first request. Finally, the data of the initial node and the lower-level nodes are obtained from a third-party database. This method collects the data of the user's first request and the predicted data of subsequent requests from a third-party database after obtaining the user's first request. This allows for the generation of decisions based on the data of the user's first request and the predicted data of subsequent requests when they are obtained. This solves the problem of slowing down the decision-making process or wasting data by collecting all data when using the system, thus improving the decision-making efficiency of the decision engine and reducing the cost of using the decision engine.

[0078] In this embodiment, the data table may be a tree structure or other types of data structures, such as arrays or linked lists, and is not limited thereto. The initial node is determined based on the user's first request, for example, based on the data name requested by the user. The initial node may be a root node or a child node in the data table. The third-party database may be multiple third-party data platforms, such as business registration information platforms or judicial information platforms for enterprise users, and is not limited thereto in this embodiment.

[0079] According to one embodiment of this document, the correlation between the child node and the initial node in step 203 includes the request time, the number of requests, and the time required to obtain data from the third-party database.

[0080] In this embodiment, the node request time represents the time when the user requests the data corresponding to that node from the decision engine, and the node request count represents the total number of times the user requests the data corresponding to that node from the decision engine.

[0081] According to one embodiment of this article, such as Figure 3 As shown, in order to reduce the time spent traversing the data table and thus improve the decision-making efficiency of the decision engine, before obtaining the user's first request in step 201, the following steps are also included:

[0082] Step 301: Record in the data table the sequential relationship between each request data in the historical requests, the request time of each request data, and the time required to obtain each request data from the third-party database. The sequential relationship represents the correspondence between a node and its child nodes.

[0083] In this step, the request data in the historical requests can be obtained from the operation logs recorded by the decision engine. The fields in the operation logs include the name of the data requested by the user, the request time, and the time taken by the decision engine to retrieve the data from the third-party database. The operation logs are parsed to obtain the request data in the historical requests, and the name of the data requested by the user, the request time, and the time taken by the decision engine to retrieve the data from the third-party database are recorded in the data table.

[0084] Step 302: Count the number of requests for each request data in the historical requests in the data table.

[0085] Preferably, the data table described in the embodiments of this specification is as follows: Figure 7The tree-like data structure shown includes: Name representing the node name, Request_T representing the request time (which can be the time between requesting a child node and requesting the initial node, i.e., the time elapsed after requesting the initial node and then requesting its child node), Use_T representing the time required to retrieve the child node's data from the third-party database, and Count representing the number of requests. The node name can be the name of the data requested by the user. When the name of the requested data is long or complex, it can be converted into a name that is easy for the data table to store using certain rules. In... Figure 7 In the tree-like data structure, the relationship between a node and its child nodes represents the sequential relationship between the request data corresponding to the node. The sequential relationship of each request can be obtained by parsing the runtime log. For example, when node dataname0 is the initial node, nodes dataname1, dataname2, and dataname3 are child nodes of the initial node dataname0.

[0086] Depend on Figure 7 It can be seen that in the historical requests, there are 3500 log entries that were the first to request node dataname0. Of these 3500 log entries, 1000 were requests to node dataname1, 2000 to node dataname2, and 500 to node dataname3. Therefore, the number of requests (Count) to node dataname0 is 3500, the number of requests (Count) to node dataname1 is 1000, the number of requests (Count) to node dataname2 is 2000, and the number of requests (Count) to node dataname3 is 500. By analyzing the 1000 log entries requesting node dataname1, it can be seen that after requesting node dataname0, an average of 0.8ms passed before requesting node dataname1. The average time to retrieve node dataname1 from the third-party database was 1.1ms. Therefore, the request time (Request_T) for node dataname1 is 0.8ms, and the time required to retrieve data from the third-party database for node dataname1 is 1.1ms.

[0087] According to one embodiment of this document, step 203, selecting a subordinate node from the child nodes based on the correlation between the child node and the initial node and a predetermined threshold value, further includes selecting a subordinate node from the child nodes based on the direct correlation between the child node and the initial node and a predetermined threshold value; or, selecting a subordinate node from the child nodes based on the indirect correlation between the child node and the initial node and a predetermined threshold value.

[0088] According to one embodiment of this document, selecting a subordinate node from among the child nodes based on the direct correlation between the child node and the initial node and a predetermined threshold value further includes calculating the ratio of the number of requests for each child node to the number of requests for the initial node, and selecting a child node whose ratio exceeds a first predetermined threshold value as the subordinate node; and / or according to formula (1).

[0089] T 差值 =Request_T 子节点 -Request_T 初始节点 -Use_T 子节点 (1)

[0090] Calculate the time difference between each child node and the initial node, and select the next-level node from among the child nodes based on the time difference and a second predetermined threshold value, where T 差值 Represents the time difference, Request_T 子节点 Indicates the request time of the child node, Request_T 初始节点 Use_T represents the request time of the initial node. 子节点 This indicates the time required to retrieve the data of the child node from the third-party database.

[0091] Based on the correspondence between nodes and their child nodes stored in the data table, and the number of requests for each node, it can be seen that the sum of the request counts for each child node in this step is less than or equal to the request count of the initial node. Specifically, as shown... Figure 7 As shown, when the initial node name is dataname1, nodes dataname3 and dataname4 are child nodes of node dataname1. This indicates that in the historical requests, nodes dataname3 and dataname4 were requested after node dataname1. Therefore, based on the data table formed by the historical requests, it can be seen that after receiving a request from node dataname1, the next request may be from node dataname3 or node dataname4. Thus, the number of requests from child nodes dataname3 and dataname4 should be less than or equal to the number of requests from node dataname1. To further predict the specific node name of the next request, the probability of requesting node dataname3 or node dataname4 needs to be further calculated. Specifically, the ratio of the number of requests from each child node to the number of requests from the initial node can be calculated. Child nodes whose ratio exceeds a first predetermined threshold are selected as the next-level nodes. The first predetermined threshold can be a decimal between 0 and 1. Figure 7As shown, the initial node `dataname1` has 1000 requests, and its child nodes `dataname3` and `dataname4` have 600 and 400 requests respectively. Therefore, the ratios of the request counts of child nodes `dataname3` and `dataname4` to the request count of the initial node `dataname1` are 0.6 and 0.4 respectively. When the first predetermined threshold value is 0.5, child node `dataname3` is designated as a lower-level node. Alternatively, the first predetermined threshold value can be adjusted according to business needs to obtain multiple lower-level nodes.

[0092] Furthermore, based on the request times of each node stored in the data table, it can be seen that the request time of the child node is greater than the request time of the initial node. The difference between the request time of the child node and the request time of the initial node indicates how long it took to obtain the request data corresponding to the name of the child node after obtaining the request data corresponding to the name of the initial node. Therefore, combined with the time required to obtain data for each node from the third-party database, it can be seen that if the difference between the request time of the child node and the request time of the initial node is greater than the time required to obtain the data for that node from the third-party database, it means that after obtaining the data of the initial node from the third-party database, a certain idle time can be allowed before obtaining the data of its child nodes from the third-party database. Conversely, it means that after obtaining the data of the initial node from the third-party database, it is necessary to immediately obtain the data of its child nodes from the third-party database, thereby improving the decision-making efficiency of the decision engine.

[0093] Specifically, such as Figure 7 As shown, when the initial node name is dataname1, nodes dataname3 and dataname4 are child nodes of node dataname1. The time to request node dataname1 is 0.8ms, the time to request node dataname3 is 1.0ms, and the time to request node dataname4 is 2.0ms. The time required to obtain data from node dataname3 is 2.5ms, and the time required to obtain data from node dataname4 is 2.1ms. Therefore, according to formula (1) in this specification, the T of node dataname3 is obtained. 差值 The value is -2.3, and the T value of node dataname4 is... 差值 The second predetermined threshold is -0.9. When the second predetermined threshold value is -1.0, the child node dataname3 is selected as the next-level node. Alternatively, the second predetermined threshold value can be divided into positive and negative threshold values. When the difference is negative, the child node with a difference less than the negative threshold value is selected as the next-level node; when the difference is positive, the child node with a difference less than the positive threshold value is selected as the next-level node. Multiple next-level nodes can also be obtained by adjusting the second predetermined threshold value according to business needs.

[0094] Using the method in this step, one or more lower-level nodes can be obtained based on the first predetermined threshold value and the second predetermined threshold value, so as to obtain the data of the lower-level nodes at the same time as obtaining the initial node data from the third-party database, thereby reducing the time to obtain the data required to generate the decision and thus improving the decision-making efficiency.

[0095] In this embodiment, the sub-nodes can be selected simultaneously using both the method of selecting the sub-node by the ratio of the number of requests and a first predetermined threshold, and the method of selecting the sub-node by the time difference obtained using formula (1) and a second predetermined threshold. The results of the two selections are combined to obtain the final sub-nodes. For example, the method of selecting the sub-nodes by the ratio of the number of requests and the first predetermined threshold can be used to perform a second filtering on the list of sub-nodes selected by the method of selecting the sub-node by the time difference obtained using formula (1) and the second predetermined threshold to obtain the final sub-nodes. In addition, based on the user's business needs, the selection of each sub-node can also be completed using only one of the two methods.

[0096] According to one embodiment of this document, selecting a subordinate node from the child nodes based on the indirect correlation between the child node and the initial node and a predetermined threshold value further includes sorting each child node by the number of requests, the request time, and / or the time required to obtain data from the third-party database; and selecting a subordinate node from the child nodes based on the sorting results of the child nodes and their respective predetermined threshold values.

[0097] In this step, the request counts of each child node are sorted to obtain a ranking result. The more requests a child node receives, the greater the likelihood of receiving subsequent requests for that node. Similarly, the shorter the request time for a child node, the earlier subsequent requests for that node will occur. Therefore, users can set their own predetermined threshold values ​​according to business needs, and select subordinate nodes from among the child nodes based on the ranking results and their respective predetermined threshold values. Users can also adjust their predetermined threshold values ​​to obtain one or more subordinate nodes, enabling the acquisition of subordinate node data simultaneously with the initial node data from a third-party database. This reduces the time required to obtain the data needed for decision generation, thereby improving decision-making efficiency.

[0098] Specifically, such as Figure 7As shown, when the initial node name is dataname1, nodes dataname3 and dataname4 are child nodes of node dataname1. Node dataname3 has 600 requests, and node dataname4 has 400 requests. The request time for node dataname3 is 1.0ms, and the request time for node dataname4 is 2.0ms. The time required to retrieve data from node dataname3 is 2.5ms, and the time required to retrieve data from node dataname4 is 2.1ms. Using the method in this step, the request counts, request times, and time required to retrieve data from the third-party database for nodes dataname3 and dataname4 are sorted in descending order, and the sorted results are shown in Table 1.

[0099] Table 1

[0100]

[0101] If the predetermined threshold for the number of requests is the first child node in the ascending sort result as the next-level node, then according to the sorting result shown in Table 1, node dataname3 is selected as the next-level node. If the predetermined threshold for the request time is the last child node in the ascending sort result as the next-level node, then according to the sorting result shown in Table 1, node dataname3 is selected as the next-level node. If the predetermined threshold for the time required to obtain data is the first child node in the ascending sort result as the next-level node, then according to the sorting result shown in Table 1, node dataname3 is selected as the next-level node.

[0102] In this embodiment, the method of sorting each child node by request count, request time, and time required to retrieve data from a third-party database can simultaneously select child nodes. The final sub-nodes are obtained by combining the results of these three selections. For example, the method of sorting by request time can be used to further filter the sub-node list 1 obtained by the request count method to obtain sub-node list 2, and the method of sorting by the time required to retrieve data from a third-party database can be used to further filter sub-node list 2 to obtain the final sub-nodes. Furthermore, based on the user's business needs, the selection of each child node can also be completed using only one of the three methods.

[0103] According to one embodiment of this article, such as Figure 4 As shown, after selecting a lower-level node from the child nodes based on the correlation between the child node and the initial node and a predetermined threshold value, the process further includes:

[0104] Step 401: Using the lower-level node as the initial node, traverse the data table again to obtain multiple lower-level nodes;

[0105] In this step, the obtained lower-level nodes are used as the initial node. The data table is traversed again to obtain all child nodes of the current initial node. Then, based on the correlation between the child nodes and the initial node and a predetermined threshold value, a lower-level node is selected from the child nodes. Through multiple traversals, multiple lower-level nodes are obtained.

[0106] Furthermore, when the obtained lower-level node is used as the initial node and the data table is traversed again, the number of traversals can be recorded. If the number of traversals exceeds a preset traversal threshold, the traversal is terminated. Specifically, when a lower-level node is obtained by traversing the data table based on the user's first request, the traversal count is 1. When the obtained lower-level node is used as the initial node and the data table is traversed again, the traversal count is incremented by 1. If the number of traversals exceeds the preset traversal threshold, the traversal is terminated. Users can also adjust the traversal threshold according to business needs to flexibly control the cost of data collection by the decision engine.

[0107] Step 402: Obtain the data of the initial node and the multiple subordinate nodes from the third-party database.

[0108] Through such Figure 4 The method shown can obtain multiple subordinate nodes based on the initial node and acquire data from the initial node and multiple subordinate nodes. It enables the prediction of data names for subsequent multiple requests based on the data name requested by the user in the first request. This allows for the acquisition of data from multiple subordinate nodes while retrieving data from the initial node database, reducing the time required to acquire the data needed to generate the decision and improving decision-making efficiency.

[0109] According to one embodiment of this document, after obtaining the data of the initial node and the plurality of subordinate nodes in a third-party database, the decision engine further includes generating a decision based on the obtained data of the initial node and the plurality of subordinate nodes.

[0110] Upon receiving a user's initial request, the decision engine predicts the data names for subsequent requests based on the data name in the initial request, generating multiple predicted data names. It then retrieves this data from a third-party database to generate the decision. When the data names from the multiple requests retrieved by the decision engine match the predicted data names for subsequent requests based on the initial request, a decision can be directly generated using the data already retrieved from the third-party database. Compared to collecting data from the third-party database only upon receiving a user's request, this method improves data collection speed and thus enhances the decision engine's decision-making efficiency.

[0111] According to one embodiment of this document, after obtaining the data of the initial node and the lower-level node from the third-party database in step 204, the process may further include caching the obtained data of the initial node and the lower-level node. When a user request is obtained again, it is determined whether the data name requested by the user is the same as the cached data name. If they are the same, a decision is generated based on the cached data, thus solving the problem of high data collection costs caused by collecting the same data multiple times. Alternatively, the cache time can be recorded while caching the data, and data whose cache time exceeds a set cache time threshold can be periodically cleared according to the set cache time threshold. Other methods of caching data can also be used, and no limitation is made in this embodiment of the specification.

[0112] Based on the same inventive concept, embodiments of this specification also provide an optimization device for a decision engine, such as... Figure 5 As shown, the optimization device of the decision engine includes a user request acquisition unit 501, an initial node traversal unit 502, a lower-level node selection unit 503, and a data acquisition unit 504.

[0113] The user request acquisition unit 501 is used to acquire the user's first request and use the data of the first request as the initial node.

[0114] The initial node traversal unit 502 is used to traverse the data table where the initial node is located, obtained by the user request acquisition unit 501, and obtain all child nodes of the initial node, wherein the child nodes directly correspond to the initial node.

[0115] The subordinate node selection unit 503 is used to select a subordinate node from the child nodes based on the correlation between the child nodes obtained by the initial node traversal unit 502 and the initial node, as well as a predetermined threshold value.

[0116] The data acquisition unit 504 is used to acquire the data of the initial node obtained by the user request acquisition unit 501 and the data of the subordinate node obtained by the subordinate node selection unit 503 from the third-party database.

[0117] Furthermore, a detailed structural diagram of the optimization device for the decision engine in this embodiment is shown below. Figure 6 As shown in the figure, the detailed structure of the optimization device of the decision engine is described, specifically including a user request acquisition unit 601, an initial node traversal unit 602, a lower-level node selection unit 603, and a data acquisition unit 604.

[0118] According to one embodiment of this document, the user request acquisition unit 601 further includes a user request parsing module 6011, used to parse the request issued by the user to obtain the data name in the request, including the user's first request and subsequent requests. The data name obtained from parsing the user's first request is used as an initial node, so that the initial node traversal unit 602 can traverse the data table according to the obtained initial node. The data name obtained from parsing the user's subsequent requests is compared with the name of the lower-level node obtained by the lower-level node selection unit 603, so that when the data name of the user's subsequent request is the same as the name of the lower-level node, the data acquisition unit 604 generates a decision based on the data of the primary node and the data of the lower-level node.

[0119] According to one embodiment of this document, the user request acquisition unit 601 further includes a data table maintenance module 6012, which is used to maintain the data table according to historical requests, so that the initial node traversal unit 602 can traverse the initial node obtained by the user request acquisition unit 601 and the initial node obtained by the subordinate node selection unit 603 in the data table.

[0120] According to one embodiment of this document, the data table maintenance module 6012 further includes a runtime log parsing submodule 60121, which is used to obtain the historical requests based on the runtime logs recorded by the decision engine, and to record in the data table the sequential relationship between each request data in the historical requests, the request time of each request data, and the time required to obtain each request data from the third-party database, wherein the sequential relationship represents the correspondence between a node and its child nodes.

[0121] According to one embodiment of this document, the data table maintenance module 6012 further includes a request count statistics submodule 60122, which is used to count the request count of each request data in the historical requests in the data table.

[0122] According to one embodiment of this document, the initial node traversal unit 602 is used to traverse the initial node obtained by the user request parsing module 6011 and the initial node obtained by the lower-level node selection unit 603 in the data table maintained by the data table maintenance module 6012, and obtain all child nodes of the initial node.

[0123] According to one embodiment of this document, the lower-level node selection unit 603 further includes a direct correlation calculation module 6031, which is used to calculate the direct correlation between the initial node obtained by the user request parsing module 6011 or the initial node obtained by the lower-level node selection unit 603 and all child nodes obtained by the initial node traversal unit 602, so as to select a lower-level node from the child nodes based on the direct correlation between the child node and the initial node and a predetermined threshold value.

[0124] According to one embodiment of this document, the direct relevance calculation module 6031 further includes a request count ratio calculation submodule 60311, which is used to calculate the ratio of the request count of each child node obtained by the initial node traversal unit 602 to the request count of the initial node obtained by the user request parsing module 6011 or the initial node obtained by the lower-level node selection unit 603, and select the child node whose ratio exceeds a first predetermined threshold value as the lower-level node. The first predetermined threshold value can be a decimal between 0 and 1, or the size of the first predetermined threshold value can be adjusted according to business needs to obtain multiple lower-level nodes.

[0125] According to one embodiment of this document, the direct correlation calculation module 6031 further includes a time difference calculation submodule 60312, which is used to calculate the time difference between each child node obtained by the initial node traversal unit 602 and the initial node obtained by the user request parsing module 6011 or the initial node obtained by the lower-level node selection unit 603 according to formula (1) in this specification, and select the lower-level node from the child nodes according to the time difference of the child nodes and the second predetermined threshold value.

[0126] In this embodiment, the request count ratio calculation submodule 60311 and the time difference calculation submodule 60312 can simultaneously select each child node obtained by the initial node traversal unit 602, and combine the selection results of the two to obtain the final lower-level node. For example, the time difference calculation submodule 60312 performs a secondary filtering on the list of lower-level nodes obtained by the request count ratio calculation submodule 60311 to obtain the final lower-level node. Furthermore, based on the user's business needs, the selection of each child node can also be completed using only one of the two methods.

[0127] According to one embodiment of this document, the lower-level node selection unit 603 further includes an indirect correlation calculation module 6032, which is used to calculate the indirect correlation between the initial node obtained by the user request parsing module 6011 or the initial node obtained by the lower-level node selection unit 603 and all child nodes obtained by the initial node traversal unit 602, so as to select a lower-level node from the child nodes based on the indirect correlation between the child node and the initial node and a predetermined threshold value.

[0128] According to one embodiment of this document, the indirect correlation calculation module 6032 further includes a request count sorting submodule 60321, which is used to sort the request counts of each child node obtained by the initial node traversal unit 602. The more request counts a child node has, the greater the probability of receiving subsequent requests for that node. Therefore, users can set a predetermined threshold value according to business needs and select child nodes whose request count sorting results exceed the predetermined threshold value as lower-level nodes.

[0129] According to one embodiment of this document, the indirect correlation calculation module 6032 further includes a request time sorting submodule 60322, which is used to sort the request times of each child node obtained by the initial node traversal unit 602. The shorter the request time of a child node, the earlier the subsequent request to that node will be. Therefore, the user can set a predetermined threshold value according to business needs and select the child node whose request time sorting result is less than the predetermined threshold value as the lower-level node.

[0130] According to one embodiment of this document, the indirect correlation calculation module 6032 further includes a data acquisition time sorting submodule 60323, which is used to sort the time required for each child node obtained by the initial node traversal unit 602 to acquire data from the third-party database. Users can set a predetermined threshold value according to business needs and select child nodes whose data acquisition time sorting results exceed the predetermined threshold value as subordinate nodes.

[0131] In this embodiment, the request count sorting submodule 60321, the request time sorting submodule 60322, and the data acquisition time sorting submodule 60323 can simultaneously select each child node obtained by the initial node traversal unit 602. The selection results of the three submodules are combined to obtain the final lower-level node. For example, the request time sorting submodule 60322 performs a secondary filter on the lower-level node list 1 obtained by the request count sorting submodule 60321 to obtain the lower-level node list 2, and the data acquisition time sorting submodule 60323 performs a further filter on the lower-level node list 2 to obtain the final lower-level node. Furthermore, based on the user's business needs, the selection of each child node can also be completed using only one of the three submodules.

[0132] In this embodiment, users can select lower-level nodes through the direct correlation calculation module or the indirect correlation calculation module according to their own business needs.

[0133] According to one embodiment of this document, the lower-level node selection unit 603 further includes a multiple traversal module 6033, used to traverse the data table again using the lower-level node as the initial node to obtain multiple lower-level nodes. Furthermore, during the process of traversing the data table again using the obtained lower-level node as the initial node, the number of traversals can be recorded. When the number of traversals exceeds a preset traversal threshold, the traversal is terminated. Users can also adjust the traversal threshold according to business needs to flexibly control the cost of data collection by the decision engine.

[0134] According to one embodiment of this document, the data acquisition unit 604 further includes a data acquisition module 6041, which is used to acquire data of the initial node obtained by the user request parsing module 6011 and / or the initial node obtained by the subordinate node selection unit 603 and one or more subordinate nodes obtained by the subordinate node selection unit 603 from a third-party database.

[0135] According to one embodiment of this document, the data acquisition unit 604 further includes a caching module 6042, used to cache the data acquired by the data acquisition module 6041, so that when the user request acquisition unit 601 acquires the user's request again, it can determine whether the data name requested by the user is the same as the cached data name. If they are the same, a decision is generated based on the cached data. While caching the data, the caching time is also recorded, and data whose caching time exceeds a set caching time threshold is periodically cleared.

[0136] According to one embodiment of this document, the data acquisition unit 604 further includes a decision generation module 6043, which is used to generate a decision based on the acquired data of the initial node and the plurality of subordinate nodes.

[0137] like Figure 8 The diagram illustrates the structure of a computer device according to an embodiment of this paper. The optimization device for the decision engine described herein can be the computer device in this embodiment, executing the methods described above. The computer device 802 may include one or more processing devices 804, such as one or more central processing units (CPUs), each of which can implement one or more hardware threads. The computer device 802 may also include any storage resource 806 for storing information of any kind, such as code, settings, data, etc. Without limitation, for example, the storage resource 806 may include any one or more combinations of the following: any type of RAM, any type of ROM, flash memory, hard disk, optical disk, etc. More generally, any storage resource can use any technology to store information. Furthermore, any storage resource can provide volatile or non-volatile retention of information. Further, any storage resource may represent a fixed or removable component of the computer device 802. In one case, when the processing device 804 executes associated instructions stored in any storage resource or combination of storage resources, the computer device 802 can perform any operation of the associated instructions. The computer device 802 also includes one or more drive mechanisms 808 for interacting with any storage resource, such as a hard disk drive mechanism, an optical disk drive mechanism, etc.

[0138] Computer device 802 may also include an input / output module 810 (I / O) for receiving various inputs (via input device 812) and providing various outputs (via output device 814). A specific output mechanism may include a presentation device 816 and an associated graphical user interface (GUI) 818. In other embodiments, the input / output module 810 (I / O), input device 812, and output device 814 may be omitted, and the device may function solely as a computer device within a network. Computer device 802 may also include one or more network interfaces 820 for exchanging data with other devices via one or more communication links 822. One or more communication buses 824 couple the components described above together.

[0139] Communication link 822 can be implemented in any way, such as via a local area network, a wide area network (e.g., the Internet), a point-to-point connection, or any combination thereof. Communication link 822 may include any combination of hardwired links, wireless links, routers, gateway functions, name servers, etc., governed by any protocol or combination of protocols.

[0140] Corresponding to Figures 2-4 In addition to the method described herein, embodiments also provide a computer-readable storage medium storing a computer program that, when executed by a processor, performs the steps of the optimization method of the decision engine.

[0141] This embodiment also provides a computer-readable instruction, wherein when a processor executes the instruction, the program therein causes the processor to perform the following: Figures 2-4 The method shown.

[0142] It should be understood that in the various embodiments of this document, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this document.

[0143] It should also be understood that, in the embodiments herein, the term "and / or" is merely a description of the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following associated objects have an "or" relationship.

[0144] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this document.

[0145] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0146] In the embodiments provided herein, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections through some interfaces, devices, or units, or they may be electrical, mechanical, or other forms of connection.

[0147] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of the embodiments described herein, depending on actual needs.

[0148] Furthermore, the functional units in the various embodiments of this document can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0149] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this paper, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this paper. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0150] This document uses specific embodiments to illustrate the principles and implementation methods of this document. The descriptions of the embodiments above are only for the purpose of helping to understand the methods and core ideas of this document. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this document. Therefore, the content of this specification should not be construed as a limitation of this document.

Claims

1. A method of optimization of a decision engine, characterized in that, The method comprises, obtaining a first request of a user, taking data of the first request as an initial node; traversing a data table in which the initial node is located to obtain all child nodes of the initial node, the child nodes directly corresponding to the initial node; selecting a lower-level node from the child nodes according to a correlation between the child nodes and the initial node and a predetermined threshold value; obtaining data of the initial node and the lower-level node in a third-party database, the data of the lower-level node being data of a predicted subsequent request; generating a decision according to the data of the first request of the user and the data of the predicted subsequent request when a subsequent request of the user is obtained.

2. The optimization method of a decision engine according to claim 1, characterized in that, The correlation between the child nodes and the initial node comprises a request time, a request frequency and a time required for obtaining data from the third-party database.

3. The optimization method of a decision engine according to claim 2, characterized in that, Before obtaining the first request of the user, the method further comprises, recording a sequential relationship between request data in historical requests, a request time of each request data and a time required for obtaining each request data from the third-party database in the data table, the sequential relationship representing a corresponding relationship between a node and its child nodes; counting a request frequency of each request data in the data table.

4. The method of optimizing a decision engine of claim 2, wherein, The selecting of the lower-level node from the child nodes according to the correlation between the child nodes and the initial node and the predetermined threshold value further comprises, selecting the lower-level node from the child nodes according to a direct correlation between the child nodes and the initial node and the predetermined threshold value; or, selecting the lower-level node from the child nodes according to an indirect correlation between the child nodes and the initial node and the predetermined threshold value.

5. The optimization method of a decision engine according to claim 4, characterized in that, The selecting of the lower-level node from the child nodes according to the direct correlation between the child nodes and the initial node and the predetermined threshold value further comprises, calculating a ratio of a request frequency of each child node to a request frequency of the initial node respectively, and selecting a child node whose ratio exceeds a first predetermined threshold value as the lower-level node; and / or, according to a formula T 差值 = Request_T 子节点 - Request_T 初始节点 - Use_T 子节点 calculating time difference values between each sub-node and the initial node respectively, and selecting the lower-level node from the sub-nodes according to the time difference values and a second predetermined threshold value, wherein T 差值 denotes the time difference value, Request_T 子节点 denotes the request time of the sub-node, Request_T 初始节点 denotes the request time of the initial node, Use_T 子节点 denotes the time required for obtaining data of the sub-node from the third-party database.

6. The optimization method of a decision engine according to claim 4, characterized in that, The selecting of the lower-level node from the child nodes according to the indirect correlation between the child nodes and the initial node and the predetermined threshold value further comprises, sorting a request frequency, a request time and / or a time required for obtaining data from the third-party database of each child node respectively; selecting the lower-level node from the child nodes according to a sorting result of the child nodes and a respective predetermined threshold value.

7. The method of optimizing a decision engine of claim 1, wherein, After the selecting of the lower-level node from the child nodes according to the correlation between the child nodes and the initial node and the predetermined threshold value, the method further comprises, traversing the data table again to obtain a plurality of lower-level nodes by taking the lower-level node as the initial node; 8. The optimization method of a decision engine according to claim 7, characterized in that, obtaining data of the initial node and the plurality of lower-level nodes in the third-party database. After the obtaining of the data of the initial node and the plurality of lower-level nodes in the third-party database, the method further comprises, 9. An optimization apparatus of a decision engine, characterized by generating a decision by the decision engine according to the obtained data of the initial node and the plurality of lower-level nodes. The method comprises, a user request obtaining unit, which obtains a first request of a user, takes data of the first request as an initial node; The initial node traversing unit traverses a data table in which the initial node is located to obtain all child nodes of the initial node, the child nodes directly corresponding to the initial node; The lower-level node selecting unit selects a lower-level node from the child nodes according to a correlation between the child nodes and the initial node and a predetermined threshold value; The data obtaining unit obtains data of the initial node and the lower-level node in a third-party database, the data of the lower-level node being predicted data of a subsequent request; The apparatus is further configured to generate a decision according to the data of the first request of the user and the predicted data of the subsequent request when obtaining the subsequent request of the user.

10. A computer device comprising a memory, a processor, and a computer program stored on the memory, wherein the computer program comprises instructions that, when executed by the processor, cause the processor to perform the method of any one of claims 1-9. The computer program, when executed by the processor, performs instructions of the method according to any one of claims 1-8.

11. A computer storage medium having stored thereon a computer program, characterized in that The computer program, when executed by the processor of the computer device, performs instructions of the method according to any one of claims 1-8.

Citation Information

Patent Citations

  • System and method for navigating multi-dimensional decision trees using acceptable alternate nodes

    US20160292579A1