Queue-based resource allocation management
By using a queue-based resource allocation management method, combined with THRESHOLD and interpolation algorithms, and breaking it down into macro and micro stages, the accuracy and efficiency of resource allocation in data delivery are solved, achieving efficient resource utilization under data security supervision.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING YOUZHUJU NETWORK TECH CO LTD
- Filing Date
- 2025-04-27
- Publication Date
- 2026-04-24
AI Technical Summary
In the field of data delivery, existing technologies struggle to achieve real-time and accurate resource allocation and management under data security supervision, leading to slow response times for bidding strategies and inaccurate resource matching.
A queue-based resource allocation management method is adopted. By obtaining the reference queue and the current resource allocation threshold, and combining the THRESHOLD algorithm and the interpolation algorithm, the resource allocation of data delivery is optimized. It is decomposed into two stages: macro and micro, which handle long-term and short-term resource allocation respectively, so as to ensure the accuracy and efficiency of resource allocation.
It improves the accuracy and efficiency of resource allocation, reduces cumulative errors, adapts to the challenges of lag and randomness in data security scenarios, and achieves efficient resource utilization under data security supervision.
Smart Images

Figure CN121925666A_ABST
Abstract
Description
Cross-references
[0001] This application claims priority to U.S. Patent Application 18 / 813,930, filed August 23, 2024, entitled “Queue-based Resource Allocation Management,” the entire contents of which are incorporated herein by reference. Technical Field
[0002] This disclosure generally relates to resource allocation management, and more specifically, to methods, apparatus, and computer program products for managing resource allocation based on queues. Background Technology
[0003] Data providers seek out potential consumers to promote their data with clear ROI requirements and limited budgets. In the data delivery field, Real-Time Bidding (RTB) allows data providers to bid on data impressions in real time. Here, data delivery is also known as delivery, content delivery, content placement, data placement, data publication, etc. To support data providers in achieving their goals, various identity-revealing bidding algorithms have been developed. Typically, these algorithms generate bids based on real-time feedback collected from sequences of user behavior events such as impressions, clicks, and conversions. However, the reliance on real-time and accurate user data has become increasingly controversial, leading to widespread concerns about data protection. At this point, it is desirable to ensure the effectiveness of delivery while simultaneously protecting user data. Summary of the Invention
[0004] In a first aspect of this disclosure, a method for managing resource allocation is provided. In this method, a reference queue is acquired. The reference queue includes multiple reference nodes, each corresponding to a plurality of reference time points. For each reference time point among the plurality of reference time points, the reference node corresponding to that reference time point includes: a reference resource allocation corresponding to the reference time point, representing the amount of resources actually consumed by a data delivery request submitted at that reference time point; and a reference resource allocation threshold corresponding to the reference time point, representing a threshold for the amount of resources. The reference resource allocation is lower than the reference resource allocation threshold. The total number of resource allocations corresponding to a predetermined time window including multiple time points is acquired. The total number of resource allocations is the sum of the multiple resource allocations corresponding to the multiple time points. Based on the total number of resource allocations, a current resource allocation corresponding to the current time point among the multiple time points is determined. Then, based on the current resource allocation and the reference queue, a current resource allocation threshold corresponding to the current time point is determined, representing a threshold for the current resource allocation.
[0005] In a second aspect of this disclosure, an electronic device is provided. The electronic device includes a computer processor coupled to a computer-readable storage unit, the storage unit including instructions that, when executed by the computer processor, implement the method according to the first aspect of this disclosure.
[0006] In a third aspect of this disclosure, a computer program product is provided, comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by an electronic device to cause the electronic device to perform the method according to a first aspect of this disclosure.
[0007] The present invention is provided to introduce, in a simplified form, the selection of concepts further described in the specific implementations below. The present invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description
[0008] The above and other objects, features and advantages of this disclosure will become more apparent from the accompanying drawings, which describe some implementations of this disclosure in more detail, wherein the same reference numerals generally refer to the same parts in the implementations of this disclosure.
[0009] Figure 1 An example environment for managing resource allocation is shown according to an implementation of this disclosure;
[0010] Figure 2 An example diagram illustrating the management of resource allocation according to an implementation of this disclosure is shown;
[0011] Figure 3 An example diagram of a data delivery management framework based on an implementation of this disclosure is shown;
[0012] Figure 4 An example diagram demonstrating the THRESHOLD algorithm according to an implementation of this disclosure is shown;
[0013] Figure 5 An example diagram of an interpolation algorithm according to an implementation of this disclosure is shown;
[0014] Figure 6 An example diagram of an algorithm for multi-channel promotion according to an implementation of this disclosure is shown;
[0015] Figure 7 An example diagram of an industrial dataset according to an implementation of this disclosure is shown;
[0016] Figure 8 A schematic diagram illustrating the determination of the current resource allocation threshold is shown;
[0017] Figure 9 An example process for managing resource allocation according to an implementation of this disclosure is shown;
[0018] Figure 10 An example flowchart of a method for managing resource allocation according to an implementation of this disclosure is shown; and
[0019] Figure 11 A block diagram of a computing device in which various implementations of the present disclosure may be implemented is shown. Detailed Implementation
[0020] The principles of this disclosure will now be described with reference to some implementations. It should be understood that these implementations are described for illustrative purposes only and to assist those skilled in the art in understanding and implementing this disclosure, and do not imply any limitation on the scope of this disclosure. The disclosure described herein can be implemented in various ways other than those described below.
[0021] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0022] References to "an implementation," "implementation," "example implementation," etc., in this disclosure indicate that the described implementation may include specific features, structures, or characteristics, but not every implementation necessarily includes such features, structures, or characteristics. Furthermore, such phrases do not necessarily refer to the same implementation. Moreover, when a specific feature, structure, or characteristic is described in conjunction with an example implementation, it can be assumed that, whether explicitly described or not, the influence of such feature, structure, or characteristic on other implementations is within the knowledge of those skilled in the art.
[0023] It should be understood that although the terms “first” and “second” may be used in this document to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element, without departing from the scope of the example implementation. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.
[0024] The terminology used herein is for the purpose of describing a particular implementation only and is not intended to limit the example implementations. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that the terms “comprising,” “including,” “having,” “having,” “containing,” and / or “containing” as used herein specify the presence of the stated features, elements, and / or components, but do not preclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.
[0025] The principles of this disclosure will now be described with reference to some implementations. It should be understood that these implementations are described for illustrative purposes only and to assist those skilled in the art in understanding and implementing this disclosure, and do not imply any limitation on the scope of this disclosure. The disclosure described herein can be implemented in various ways other than those described below. In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0026] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of relevant laws, regulations and rules.
[0027] It is understood that before using the technical solutions disclosed in the various implementations of this disclosure, users should be notified in an appropriate manner, in accordance with relevant laws and regulations, of the types, scope of use, and usage scenarios of the personal information involved in this disclosure, and user authorization should be obtained.
[0028] For example, in response to receiving a user's active request, a prompt message is sent to the user to explicitly notify the user that the requested operation will require the acquisition and use of the user's personal information. Therefore, the user can independently choose, based on the prompt message, whether to provide personal information to the software or hardware such as electronic devices, applications, servers, or storage media that perform the operations of the technical solutions disclosed herein.
[0029] As an optional but not limited implementation, the method of sending a prompt to the user in response to a user's active request may include, for example, a pop-up window, in which the prompt message may be presented in text form. Furthermore, the pop-up window may also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0030] It is understood that the above-described notification and user authorization process is merely exemplary and does not limit the implementation of this disclosure. Other methods that comply with applicable laws and regulations are also applicable to the implementation of this disclosure.
[0031] As briefly mentioned above, identity-revealing bidding algorithms rely on user data, triggering widespread concerns about data security, such as privacy. In response to the rising controversy, regulators and companies have developed a range of strategies to protect user data by making it untraceable. Therefore, under data security regulations, revealing data is far less efficient, and non-data-driven performance optimization is difficult.
[0032] A more sensitive equilibrium is expected in the data delivery field, and some companies have already proposed corresponding strategies. For example, strategies have been developed to help data providers measure the success of data delivery while maintaining user data security. However, these strategies still impact data delivery in two main ways. First, event aggregation makes it impossible to attribute conversion events to a single user click; they can only be attributed to a group of users based on certain aggregation rules. Therefore, bidding algorithms may no longer utilize fine-grained and real-time ROI data. Second, reporting delays involve intentionally delaying conversion reports by 24 to 48 hours. This delay can cause bidding strategies to respond slowly. Furthermore, random factors are often introduced during this delay to mitigate the harm to data security from timed attacks.
[0033] Existing research typically focuses on improving traditional methods of identity disclosure, which only address part of the problem and are greatly affected by data security constraints.
[0034] For the challenge of reporting latency, most solutions have been proposed in the field of conversion rate of change (CVR) prediction models. Some related works propose nonparametric latency feedback models to estimate time latency. Some related works directly quantify conversions into multiple windows as multi-head models. However, considering the large and stochastic latency of conversions caused by data security strategies, it is difficult to ensure the stability of the estimation.
[0035] Because it heavily relies on real-time conversion feedback, the widely used Proportional-Integral-Derivative (PID) algorithm has very limited application in data security scenarios. Another classic approach in the online advertising industry is Model Predictive Control (MPC), which uses fine-grained auction replay data to model the relationship between bidding, spending, and conversions to predict the optimal bid. However, it suffers from conversion delays and inaccuracies caused by strict data security regulations.
[0036] Reinforcement learning (RL)-based approaches attempt to optimize delivery performance by using bidding or spending controls through learned policies or agents. However, these methods are largely ineffective in data security scenarios due to the lack of real-time and fine-grained interactive feedback with the environment.
[0037] Data providers' goals include achieving desired results and the resources consumed to achieve those results. Achieving desired results means that the spending on conversion events (e.g., clicks, downloads, etc.) remains within an acceptable range set by the data provider. Increased resource consumption means discovering more potential users. Due to the large number of three parties involved in data delivery (i.e., data providers, platforms, and users), accurately matching data providers and users to optimize data delivery results and resource consumption is a technical challenge.
[0038] There is some work on optimizing data delivery results and resource consumption. In some works, data providers use their experience to set resource consumption for the delivered data. This approach requires extensive operational experience from the data provider, and the stable resource consumption adapting to the new environment may not be guaranteed. In other works, the delivered data is aggregated at the data provider's granularity, and how to deliver data with the appropriate cost is determined through policy conditions. While this method eliminates the drawbacks of manual processing, due to its coarse granularity, users and delivered data may not be accurately matched.
[0039] Figure 1An example environment 100 for managing resource allocation according to an implementation of this disclosure is shown. Typically, a data provider bids at a certain point in time for data delivery, and if the data provider wins, the corresponding cost (not exceeding the bid) can be collected. In environment 100, multiple requests (e.g., requests 112, 114, and 116) are submitted at different points in time (e.g., T0, T1, and TL of day 110). Taking request 116, submitted at TL, as an example, request 116 is made by a data provider requesting data delivery at time TL. Request 116 relates to resource allocation 120 and a resource allocation threshold 122. The resource allocation threshold 122 refers to the maximum resource allocation that the data provider can spend on data delivery at TL, such as the data provider's bid. Resource allocation 120 represents the amount of resources actually consumed by request 116 and below the resource allocation threshold 122, i.e., the actual cost (e.g., determined by the second highest bid).
[0040] The determination of the resource allocation threshold 122 affects whether a data provider wins the bid, and the data owned by the winning data provider can then be deployed. A higher resource allocation threshold 122 increases the probability of data deployment. However, the balance between the resource allocation threshold 122 and the budget allocated to the data provider may need to be considered.
[0041] In view of this, the content of this disclosure refers to Figure 2 A scheme for managing resource allocation is proposed, and an example diagram of resource allocation management according to an implementation of this disclosure is shown. Figure 2 As shown, reference queue 210 is acquired. Reference queue 210 includes multiple reference nodes (e.g., reference node 212 and reference node 214) corresponding to multiple reference time points. For a reference time point among the multiple reference time points, the reference node corresponding to that reference time point (e.g., reference node 212) includes: a reference resource allocation 220 corresponding to that reference time point, which represents the amount of resources actually consumed by the data delivery request submitted at the reference time point; and a reference resource allocation threshold 222 corresponding to that reference time point, which represents a threshold for the amount of resources, where the reference resource allocation is lower than the reference resource allocation threshold. The total number 230 of resource allocations corresponding to a predetermined time window including multiple time points is acquired, and the total number of resource allocations is the sum of the multiple resource allocations corresponding to the multiple time points respectively.
[0042] Then, based on the total number of resource allocations, a current resource allocation 240 corresponding to the current time point among multiple time points is determined. Based on the current resource allocation 240 and the reference queue 210, a current resource allocation threshold 250 corresponding to the current time point is determined, which represents the threshold of the current resource allocation 240. Here, the current resource allocation 240 may be related to the resource expenditure agreed upon by the data provider for data delivery, and the current resource allocation threshold 250 may be related to the bid to be submitted. Using these implementations of the present disclosure, the current resource allocation threshold is determined within a predetermined time window. In this way, the current resource allocation threshold is not affected by factors in previous time windows and there is no cumulative error, thus improving the accuracy of the current resource allocation threshold.
[0043] The following paragraphs will provide the context in which resource allocation takes place. Considering the ROI requirements of data providers and the platform ecosystem, the problem this invention aims to solve is to maximize the total value of goods (GMV) using ROI and expenditure constraints (i.e., the purpose of allocation). Some relevant notations are defined in Table 1 below, and a mathematical representation of the problem is derived using a method similar to the online random knapsack problem. Table 1: Symbol Description
[0044] For a given data delivery 'a' from a data provider, assume there are N bidding opportunities within a preset spending period (e.g., one day). These opportunities are represented as 'auction' according to the order in which they are generated. i Based on the definitions stated above, the GMV and cumulative expenditure for N auctions within the expenditure period are respectively identified as P. G and P S This corresponds to Where v a This represents the value derived from the transformation event from the data provider. Therefore, the expected ROI result (hereinafter abbreviated as R) can be obtained as follows. res ):
[0045] Regarding data delivery a, the objective of this disclosure is to [do something] in S. cap and R target Maximize P under constraints G It is formalized as: st
[0046] The optimal bidding formula starts from a single entrance. i Angle is defined as:
[0047] In equation (5), r i It can be regarded as an auction i The ROI is [not specified]. It's worth noting that the proposed problem involves a variation of the knapsack problem (KP), specifically an online randomized variation. Each bidding opportunity can be considered as having a value [not specified]. and weight Items. Assume there are items with a capacity of S. cap The goal of this knapsack problem is to load the knapsack as full as possible to maximize its cumulative value, while ensuring the expected ROI and not exceeding its capacity. However, since bidding, winning, clicks, and conversions occur sequentially, accurate value and weight information, i.e., c i and wp i This data may not be available in advance. Therefore, in bidding strategies, historical conversion rates or model estimates can be used instead of c. i and wp i And a decision must be made immediately whether to package the item.
[0048] As mentioned above, due to subsequent reasons, the problem represented by equation (2) becomes challenging under the constraints imposed by data security regulations. First, in the auction... i c i The values are not one-to-one, which complicates the optimization process of fine-grained estimation methods such as model-based methods. Secondly, c i The reporting delay exceeded 24 hours, while the frequently used spending cycle was one day. This difference means that the regulation of real-time bidding strategies was being carried out without truth labels. Then, c i The value of c is not fixed, but rather the feedback becomes noisier after aggregation, making it almost impossible to estimate. i The distribution of .
[0049] These data security-related challenges in c i The estimated deviation d(t) causes a considerable and irregular change. Given the effect of d(t), equation (5) transforms into:
[0050] Based on equation (6), the applicability of the three existing technical methods in data security scenarios is analyzed.
[0051] Real-time feedback control c i It is the observed conversion event, while the online bidding process typically requires calculating the bid price b. i And it returns within tens of milliseconds. This concept contradicts the lag characteristic of data security scenarios.
[0052] Model predictive control (MPC) uses the click-through rate (CTR) estimated by the model. i and conversion rate i That is, c i =ctr i *cur i Replace the true value. This reliance on model generalization can partially address the lag problem. However, since historical patterns cannot be adapted to the future under stochastic constraints, and transformations cannot be accurately applied back to each fine-grained individual sample under coarse-grained constraints, the accuracy and stability of model estimation cannot be guaranteed. Therefore, MPC-based methods have low applicability in data security scenarios.
[0053] Reinforcement learning (RL)-based methods require real-time feedback to adapt to typically model-based bidding strategies and actions. Therefore, they encounter similar obstacles to MPC methods in data security scenarios.
[0054] As analyzed above, in data security scenarios, the issues under review can be identified as online random key points (KPs). In online auctions, c i and wp i The incompleteness indicates that conventional optimization methods (e.g., dynamic programming) are not applicable. It has been asserted that when the weight of the items is significantly less than the knapsack capacity, the greedy algorithm serves as an approximate optimal algorithm, i.e., wp. i ≤(1-λ)S cap , 0≤λ≤1, where λ represents the similarity to the optimal solution. As an example, in data delivery platforms, λ is typically quite large, thus validating that greedy algorithms are suitable for approximate problem solving.
[0055] A typical example of a greedy algorithm is THRESHOLD, which is determined only by its efficiency value. i / weight i (in this case, c) i ·v a / ·wp i =r i ) equal to or exceeding a predefined threshold R thr When R is full, pack item i until the backpack is full (expenditure reaches the limit) or there are no remaining items (auction opportunity). thr Once determined, it can be done using R. thr In the substitution formula (5) r i To infer the optimal bid. Identifying specific thresholds through feedback mechanisms or model learning is inherently limited in data security scenarios due to aggregation, lag, and stochastic properties. In contrast, the SPB algorithm (SPB Two-Stage Decomposition) has proven resilient to these obstacles, thus facilitating valuable results in data security situations. The SPB framework in Algorithm 1 will be introduced below, followed by a detailed description. Figure 3 Example Figure 300 illustrates an algorithm 1 for data delivery management according to an implementation of this disclosure. (As shown...) Figure 3 As shown, the input to Algorithm 1 is the target ROIR set by the data provider. target and expenditure limit S cap The output of Algorithm 1 is for the next time control interval t. l+1 Optimal b l+1 Specifically, the first step is to input the target ROI R. target and expenditure limit S cap To calculate the total optimal expenditure S (opt) The second step is to obtain the result for the next time interval t. l+1 Optimal expenditure The third step is to use point pairs Construct an interpolation queue and obtain b using interpolation or extrapolation methods. l+1 .
[0056] The SPB algorithm offers several distinct advantages. First, it provides an innovative two-stage decomposition framework for online bidding. This approach effectively mitigates the impact of model estimation errors. Second, the algorithm is suitable for data security scenarios. The application of long-term accumulated data allows for the effective management of the three challenges involved in data security scenarios: coarse-grainedness, lag, and stochastic properties. This level of resolution cannot be achieved using other non-decomposition methods. Third, it reduces complexity. (The last sentence appears to be incomplete and possibly refers to a different algorithm or approach.) i ,...,x N The initial solution space starts from 2. N Reduced to a single dimension, it only needs to determine S (opt) .
[0057] The SPB algorithm consists of two stages, macro and micro. The reason for dividing the algorithm in this way will be explained, and further details about each stage will be provided. First, we establish a theorem based on an ideal scenario, without considering d(t). Then, it is extended to more common scenarios where d(t) is taken into account. For short time intervals, the ROI of a single bid can be defined as... In this context, the THRESHOLD greedy algorithm in an ideal scenario works as follows. First, it determines based on r... i All bidding opportunities are sorted in descending order. Then, it selects bidding opportunities from top to bottom, up to r. i Satisfying the optimal threshold And by using Replace r in formula (5) i To obtain the corresponding bid.
[0058] Figure 4Example Figure 400 illustrates a demonstration of the THRESHOLD algorithm according to an implementation of this disclosure. Figure 4 As shown, when r i Greater than or equal to hour( Figure 4 The shaded area S1 in the middle wins all bidding opportunities to achieve the goal of constraining R. target Maximization under constraints. Referring to equation (6), ignoring d(t) implies c i The estimated value equals the true value. For each bidding opportunity, it can be accurately placed... Figure 4 The corresponding position in the text. Then, the theorem, Theorem 1, is provided.
[0059] In Theorem 1, when R thr The optimal solution is achieved when all bidding opportunities remain consistent. The theorem is proved by contradiction. Consider two distinct R... thr1 and R thr2 In the case of R thr1 >R thr2 When, assuming the population P G If it is the largest, then we will use R. thr1 Move down by a tiny amount and R thr2 Move up by a tiny amount in Since all bidding opportunities are sorted in descending order of ROI, there exists Given It naturally follows That is, R thr2 A portion of the expenditure in R is moved to R thr1 The overall P′ can be obtained G , P′ G >p G This is related to p G This contradicts the biggest initial assumption.
[0060] However, in data security scenarios, the value of d(t) cannot be ignored because it hinders the achievement of real-time c in short time intervals. i Value. As mentioned, data security policies typically impose a specific delay (e.g., SKAN not exceeding 48 hours). By aggregating data over multiple days, it is possible to approach c. i The actual value of d(t) is not highly volatile over very short time intervals. Therefore, regardless, if for all bidding opportunities, r iMaintaining the order regardless of the value of d(t) makes the THRESHOLD algorithm a viable solution even in short timeframes. This insight provides the motivation to divide the online bidding process into two phases, macro and micro. The macro phase designs the optimal expenditure S for a given expenditure cycle based on long-term archived data. (opt) Then, according to the budget allocation curve, S is allocated for short time intervals. (opt) To obtain Subsequently, micro-stages are based on Generate real-time bidding prices. It's worth noting that budget distribution curve studies (focusing on optimizing budget allocation) ensure that once the allocated budget is fully utilized, it guarantees a consistent Ri. thr Although this study utilizes existing work to potentially optimize budget allocation efficiency.
[0061] Regarding macro-spending planning, as mentioned earlier, the macro phase designs the long-run optimal expenditure S. (opt) This ensures that the expenditure allocation aligns with the long-run optimum in equation (2). The problem is modeled by exploring the relationship between optimal GMV and optimal ROI, and this will be illustrated with examples. Initially, without considering d(t), the following theorem is proposed under ideal conditions. Theorem 2 is proposed. For different R... target and S cap Constrained data delivery, optimal ROI Compared to Monotonically increasing. To more clearly and intuitively verify the proof of Theorem 2, in Figure 4 The diagram is shown below. Assuming different R... target and S cap Under constraints, exist and Moving between areas will provide more bidding opportunities in the S2 zone. Because r i Sort in descending order, so any r in region S1 i Any r greater than S2 j Therefore, the resulting ROI also follows the same inequality relationship. Consider equation (1), and we obtain the following equation.
[0062] The optimal ROI for the new winning region S1+S2 is: Then compare:
[0063] Equation (8) indicates along with It decreases and thus decreases, and therefore proves to be complete.
[0064] Theorem 3 is provided as follows. For different R... target and S cap Constrained data delivery, optimal and expenditure about Monotonically decreasing. Then, the proof of Theorem 3 is provided. Similar to the proof of Theorem 2, it is assumed that the R values are different. target and S cap Under constraints, exist and Move between them and win. and The additional bidding opportunities are definitely greater than 0. Then and That is, the gmv and expenditure of the new winning region S1+S2 are greater than those of the original winning region S1, and at the same time Less than Note that in Theorem 2, It has been proven to be about Monotonically increasing, thus obtaining and about Since it is monotonically decreasing, the proof of Theorem 3 is complete.
[0065] Considering d(t), in the THRESHOLD algorithm The value of can vary. However, the final optimal GMV and ROI still satisfy Theorem 3. Therefore, we can construct the optimal GMV. and The relationship functions between them. As set by the data provider, R... target This is considered the optimal ROI (i.e., equation (4) is equivalent), thus allowing the computation of the optimal ROI. And thus calculate the optimal expenditure. The function parameters are calculated based on posterior data of GMV and ROI aggregated over a long period (such as n days). Considering the small influence of d(t) on the long-term posterior data, c... i Full recovery is possible within 48 hours, and only accumulated data is used, thus avoiding coarse-grained and lag challenges. Furthermore, considering the small impact of d(t) on long-term posterior data, the impact of random challenges is significantly smaller in the short term than that of small samples due to the larger sample size of long-term outcomes. This allows for an approximate optimal functional relationship. For example, as... Figure 4 As shown, R thr Instructions for R for each additional bidding opportunity res The reduction of this value precisely represents the concept of marginal ROI. Function Various forms can be adopted depending on the situation. For clarity, an example is provided, inferring a linear relationship between the optimal marginal ROI and the optimal GMV based on Theorem 2 and Theorem 3.
[0066] In equation (9), a and b are hyperparameters, and the following equation can be obtained.
[0067] Based on equation (1), the following equation can be further obtained.
[0068] To calculate parameters a and b, the cumulative GMV and ROI over a defined expenditure period (such as one day) can be synthesized to generate a single sample point. Data points from multiple days can then be aggregated and derived through multi-point fitting. Many existing methods can be referenced for model parameter determination to achieve the minimum MSE across multiple sample points. Once parameters a and b are determined, the data provider's target ROI can be input into equation (12) to obtain the optimal expenditure for the defined expenditure duration. Given the expenditure constraint equation (3), S (opt) Assessed as In found Then, by distributing it over shorter periods using a budget allocation curve, we obtain the results for short time intervals t. l of This can guide the micro-stage t l The optimal bid within.
[0069] Regarding micro-bid optimization, as mentioned earlier, the overall optimal expenditure has already been determined at the macro stage. Then, a budget allocation method is used to obtain the optimal allocation for short time intervals. The purpose of microprocesses is to... l Precise expenditure Ideally, the THRESHOLD algorithm can be directly used to calculate R via equation (9). thr Then, the optimal bid is calculated using equation (5). However, in data security scenarios where d(t) needs to be considered, short-term GMV and ROI are affected by the aforementioned challenges, inhibiting the acquisition of suitable a and b parameters for equation (9). Therefore, the TH RESHOLD algorithm needs to be improved to find a specific R without relying on GMV and ROI. thr Values, thereby ensuring satisfaction expenditure.
[0070] It is worth noting that in data security scenarios, although c iIt is affected by d(t), but its expenditure is unaffected. Once the data is displayed via a widely accepted OCPM mechanism (or any other pricing method that charges per display or click), expenditure can be collected immediately, indicating that expenditure can be collected in real time, unaffected by lag and random challenges.
[0071] Therefore, the aim is to build a system for R thr and expenditure P S The model. According to Theorem 2 and Theorem 3, in the ideal case, R thr and P S Monotonically decreasing. Assume d(t) maintains r for all bidding opportunities. i Theorem 2 and Theorem 3 continue to hold in the data security scenario, characterized by an optimal R that differs from the ideal case. thr As shown in equation (6), the following algorithm is proposed to construct a system for R. thr and P S The linear interpolation model is called the interpolation-based MPC method (IMPC). It utilizes only data from a short time slice t. l The expenditure data can be used to calculate subsequent time intervals t. l+1 R thr and b l+1 The specific algorithm is described in Algorithm 2. Figure 5 Example Figure 500 shows an implementation of Algorithm 2 according to this disclosure.
[0072] In summary, such as Figure 5 The IMPC described in Algorithm 2 offers several key advantages. First, there is no cumulative error. Unlike feedback control methods, for each t... l The optimal bid depends only on the pre-determined price. Furthermore, it remains unaffected by prior control effects. Secondly, it requires no prior function distribution. Essentially a nonparametric regression model, it ensures high accuracy. Thirdly, IMPC offers robustness and portability. Relying solely on real-time settlement data, it has proven stable and efficient even in high-frequency calculations.
[0073] Regarding multi-channel promotion, in practice, data providers often distribute data on more than one channel, regardless of data security constraints such as shared expenditures, and each channel has its own R... target Constraints. Here, channels can include, but are not limited to, applications, websites, or other channels that can display data. Therefore, the problem to be solved extends to: R res ≥R target (17)
[0074] Due to the estimation bias dl and target RO IR between different channels in hybrid data security and non-data security scenarios. target Due to differences, the single-channel SPB scheme proposed above cannot be directly applied. SPB is further extended to multiple channels, with the macro part solved jointly and the micro part solved separately. In the macro part, it is necessary to simultaneously generate the expected optimal expenditure for each channel. Before proceeding, Theorem 4 and its proof are provided below.
[0075] Regarding Theorem 4, when the population P G At its maximum value, R for each channel thr They must be equal. The proof is derived by contradiction. Considering the cases of two channels ch1 and ch2, assume the total population P... G when Time is the greatest, then Move down by a tiny amount And And move up by a tiny amount in Obviously, there is and Then It can be obtained, that is, moving a portion of the expenditure in ch2 to ch1 can obtain the total P′. G , P′ G >P G This is consistent with our initial hypothesis P. G This is the biggest contradiction.
[0076] According to Theorem 4, the optimal expenditure for each channel can be determined using the binary search method detailed in Algorithm 3. Figure 6 Example Figure 600 shows an implementation of Algorithm 3 according to this disclosure. (As shown...) Figure 6 As shown, when determining R thr Later, due to different channels d l The changes in cannot be directly bid using equation (5). Therefore, a macro-stage-like process should be calculated first. A functional correlation between GMV and ROI is constructed for each channel. Then, the IMP C algorithm is applied independently to each channel. j To derive the optimal bid
[0077] The performance of the SPB method can be validated through online and offline experiments. In one example, an online experiment can be conducted on an industrial dataset collected from a data delivery platform to compare the performance of SPB with other advanced methods in real-world industrial application environments. Figure 7An example diagram of an industrial dataset according to an implementation of this disclosure is shown. (e.g.) Figure 7 As shown, three datasets were randomly selected for the experiment: one from activities using SKAN attribution, one from activities using PCM attribution, and another from activities using non-data-safety constraints. The experimental results show that the SPB method improves GMV and revenue compared to conventional methods.
[0078] Resource allocation management has been briefly described; further details regarding the determination of resource allocation thresholds based on interpolation algorithms will be provided below. Data to be delivered may include multimedia data such as messages, videos, and advertisements delivered by data providers. Data providers can submit data delivery requests with bids (also known as resource allocations), and if the bid is successful, the data specified in the request can be delivered. In the implementation of this disclosure, a return value is provided. Figure 2 Reference queue 210 is a preparation area. Reference queue 210 includes multiple reference nodes (e.g., reference node 212 and reference node 214) corresponding to multiple reference time points. Taking reference node 212 as an example, for a reference time point among the multiple reference time points, the reference node 212 corresponding to that reference time point includes: a reference resource allocation 220 corresponding to that reference time point, which represents the amount of resources actually consumed by the data delivery request submitted at that reference time point; and a reference resource allocation threshold 222 corresponding to that reference time point, which represents a threshold for the amount of resources, where the reference resource allocation is lower than the reference resource allocation threshold. The reference resource allocation threshold 222 can be considered as a bid made by the data provider, and the data provider that wins the bid can consume the reference resource allocation 220.
[0079] In the implementation of this disclosure, multiple reference resource allocations can be sorted to obtain the reference queue. In the example, the multiple reference resource allocations can be sorted in ascending or descending order. For illustrative purposes, the implementation of this disclosure will be explained below using ascending order as an example.
[0080] After multiple reference resource allocations are sorted, reference queue 210 can be updated by performing a monotonic operation on multiple reference resource allocation thresholds associated with the sorted reference resource allocations. The result of performing the monotonic operation is to determine the longest ascending sequence in reference queue 210. There are several methods for handling reference nodes that do not conform to ascending order. In this example, these reference nodes can be removed to ensure the monotonicity of the remaining reference nodes in reference queue 210. Alternatively, the values of the reference resource allocation thresholds in these reference nodes can be modified to ensure the monotonicity of all reference nodes in reference queue 210. The process of updating reference queue 210 can be expressed as follows: usedQueue=LongestIncreasingSubSquence(originalQueue) (18)
[0081] In equation (18), usedQueue represents the updated reference queue, LongestIncreasingSubSquence() represents the monotonic operation, and originalQueue represents reference queue 210. Using the implementation of this disclosure, a reference queue with monotonicity is provided. Therefore, the efficiency of finding the optimal solution for managing resource allocation can be improved.
[0082] In this implementation, the total number of resource allocations corresponding to a predetermined time window comprising multiple time points is obtained; the total number of resource allocations is the sum of the multiple resource allocations corresponding to each of the multiple time points. The predetermined time window can be of any length. For example, the predetermined time window can be 24 hours, and the time interval between the multiple time points can be 1 hour. In another example, the time window and the time interval can be set to other values.
[0083] After the total quantity 230 is obtained, the current resource allocation 240 corresponding to the current time point among multiple time points is determined based on the total resource allocation 230.
[0084] In this implementation, a set of time points earlier than the current time point within a time window can be determined. Then, in response to determining that the sum of a set of resource allocations corresponding to the set of time points is less than the total number of resources 230, a current resource allocation threshold 250 can be determined. There is a total number 230 specified for the data provider within the time window, and if the sum of a set of resource allocations is less than the total number 230, data delivery can continue and the current resource allocation threshold can be determined. In other words, the method continues until the budgeted resource allocations are exhausted. If the sum of a set of resource allocations is equal to or greater than the total number 230, the data provider does not deliver data by setting the current resource allocation threshold to 0.
[0085] In the implementation of this disclosure, multiple reference time points can be within a predetermined time range (e.g., 24 hours) prior to the current time point. In response to the reference queue length being less than a predetermined threshold length, the reference queue can be updated using reference nodes corresponding to the reference time points among the multiple reference time points. In the example, the predetermined threshold length is 7, and the length of reference queue 210 can be 5; then reference queue 210 can be updated by inserting two additional reference nodes. Before using reference nodes to update reference queue 210, the validity of the reference nodes can be checked. For example, if the reference resource allocation included in a reference node differs significantly from the reference resource allocation threshold included in the reference node, the reference node can be considered invalid. In another example, if the data included in a reference node differs significantly from the data included in other reference nodes, the reference node can be considered invalid. Only valid reference nodes can be used to update reference queue 210. Using these implementations of this disclosure, reference queue 210 has a fixed length, which can speed up data processing and improve the compatibility of processing logic.
[0086] In this implementation, in response to determining that the length of the reference queue 210 is higher than a predetermined threshold length, a reference node corresponding to a target reference time point is removed from the reference queue 210. This target time point is earlier than other reference time points among a plurality of reference time points. In one example, the predetermined threshold length is 7, and the length of the reference queue 210 is 8, allowing the removal of reference nodes corresponding to target reference time points earlier than others. For example, reference nodes might be at 01:00, 03:00, 05:00, etc., and the reference node at 01:00 can be removed. As time progresses, new reference nodes can be inserted into the queue, and the oldest reference node can be removed from the queue. Therefore, the reference queue can include the latest data, and thus the resource consumption threshold can be accurately determined based on the latest data.
[0087] In the implementation disclosed herein, to determine the current resource allocation 240, resource allocation rates describing the relationships between multiple resource allocations and multiple time points can be received. Assuming there are 24 time points in a day, there are 24 resource allocation rates for multiple resource allocations at these 24 time points. For example, the resource allocation rate for the resource allocation at the first time point is 0.05, the resource allocation rate for the resource allocation at the second time point is 0.05, and so on. Here, the resource allocation rates for the 24 time points can be represented in a list of length 24 (0.05, 0.05, ...). Furthermore, the sum of all resource allocation rates at the 24 time points is 1.
[0088] After receiving the resource allocation rate, the current resource allocation 240 can be determined based on the resource allocation rate and the current time point's position within the time window. The process of determining the current resource allocation 240 can be expressed as follows: expectedCost=(Budget-Cost)*budgetRation t / sum(budgetRation i (19)
[0089] In equation (19), expectedCost represents the current resource allocation of 240 at the current time point, Budget represents the total amount of resources 230, Cost represents the resource allocation for the time range prior to the current time point, and budgetRation t This represents the resource allocation rate at the current point in time, sum(budgetRation). i () represents the sum of resource allocation rates within a predetermined time frame.
[0090] In this implementation, a first reference node and a second reference node that match the current resource allocation can be selected from the reference queue 210. The current resource allocation 240 is higher than the first reference resource allocation in the first reference node and lower than the second reference resource allocation in the second reference node. Figure 8 A schematic diagram 800 is shown illustrating the determination of the current resource allocation threshold. As shown, the target node 801, including the current resource allocation 240, is between a reference node 820 whose reference resource allocation is lower than the current resource allocation 240 and a reference node 830 whose reference resource allocation is higher than the current resource allocation 240. Therefore, reference node 820 can be selected as the first reference node, and reference node 830 can be selected as the second reference node. Then, based on the first and second reference resource allocations, the current resource allocation threshold 250 can be obtained. The process of selecting the first and second reference nodes can be expressed as follows: (cost1,bid1),(cost2,bid2)=closestDots(usedQueue,expectedCost) (20)
[0091] In equation (20), (cost1, bid1) represents the first reference resource allocation and the first reference resource allocation threshold included in the first reference node, (cost2, bid2) represents the second reference resource allocation and the second reference resource allocation threshold included in the second reference node, and closestDosts() represents the function that selects the two closest nodes for a given node with usedQueue and expectedCost, where usedQueue represents reference queue 210 and expectedCost represents the current resource allocation 240.
[0092] In this implementation, a previous resource allocation threshold corresponding to a previous time point earlier than the current time point can be obtained. Then, based on the previous resource allocation threshold, the current resource allocation, and the first and second reference resource allocations, a current resource allocation threshold 250 can be determined. The process of determining the current resource allocation threshold 250 can be expressed as follows:
[0093] In equation (21), bid represents the current resource allocation threshold of 250, lastBid represents the previous resource allocation threshold, and expectedCost represents the current resource allocation of 240. Using the implementation method of this disclosure, the current resource allocation threshold of 250 can be obtained by applying interpolation or extrapolation. This improves the robustness and compatibility of managing resource allocation and enhances the stability of the determined current resource allocation threshold.
[0094] In this implementation, a predetermined range of upper and lower threshold values associated with the current resource allocation threshold can be obtained. Then, in response to determining that the current resource allocation threshold satisfies the predetermined range, the current resource allocation threshold can be output. In this case, the value of the current resource allocation threshold is within a reasonable range, and therefore the current resource allocation threshold is output.
[0095] Alternatively, in response to determining that the current resource allocation threshold does not meet a predetermined range, the current resource allocation threshold 250 can be updated based on the predetermined range. The process of updating the current resource allocation threshold 250 can be expressed as follows: finalBid=min(max(bid,lastBid*downRange),lastBid*upRange) (22)
[0096] In equation (22), finalBid represents the updated current resource allocation threshold, bid represents the current resource allocation threshold of 250, lastBid represents the previous resource allocation threshold, downRange represents the lower limit threshold, and upRange represents the upper limit threshold. Through the implementation of this disclosure, extreme values can be avoided. Thus, the accuracy and reliability of determining the current resource allocation threshold are improved, and the bias is reduced.
[0097] In this implementation, a data delivery request can be submitted based on the current resource allocation threshold of 250. If a data delivery request with the current resource allocation threshold of 250 wins the bid, the current resource allocation can be consumed and the data can be delivered.
[0098] Figure 9 An example process 900 for managing resource allocation according to an implementation of this disclosure is shown. As shown, at box 910, it is determined whether the cumulative cost (also referred to as the sum of a set of resource allocations) is less than the budget (also referred to as the total number of resources). If the cumulative cost is greater than or equal to the budget, process 900 can proceed to box 912. At box 912, the data provider does not deliver data by setting the bid to 0. Otherwise, process 900 can proceed to box 920. At box 920, it is determined whether a pair of cost and bid (also referred to as a reference node including a reference resource allocation and a reference resource allocation threshold) to be inserted into the reference queue is valid. In the example, if the cost differs significantly from the bid, the cost and bid pair may be determined to be invalid.
[0099] If the cost and bid pair are invalid, process 900 can proceed to box 922. At box 922, it is determined whether the reference queue is empty. If the reference queue is empty, the bid is set to the previous bid. Otherwise, process 900 can proceed to box 926. At box 926, the bid is set to the initial bid.
[0100] If the cost and bid pair is valid, process 900 can proceed to box 926. At box 930, the cost and bid pair is inserted into the queue, and the oldest cost and bid pair is removed from the queue to maintain a fixed length.
[0101] At box 940, an estimate of the cost at the current point in time can be determined. In the example, the cost estimate at the current point in time can be determined based on the resource allocation rate.
[0102] At box 950, the estimated bid for the current time point can be determined based on interpolation or extrapolation related to the queue. In the example, two reference pairs can be selected, and interpolation or extrapolation can be performed on these two reference pairs to determine the estimated bid for the current time point. A data delivery request can then be submitted based on this bid, which increases the probability of winning the bid while meeting the data provider's affordable resource costs, thus improving the performance of data delivery.
[0103] It should be understood that the above Figure 9 Only an implementation for managing resource allocation is provided. In another implementation, more or fewer steps can be included; for example, in the SPB framework described above, micro-bid optimization can be implemented based on the proposed interpolation or extrapolation operations. Specifically, as... Figure 5 Algorithm 2 shown can be implemented. Here, Q corresponds to the reference queue, V corresponds to the resource allocation rate, and S... cap Corresponding to the total number of resources allocated, Algorithm 2 can output the bid b for time point l+1 within a predetermined time window. l+1 .
[0104] The preceding paragraphs have described the details for managing resource allocation. Based on an implementation of this disclosure, a method for managing resource allocation is provided. Further details regarding this method will be provided in [reference needed]. Figure 10 ,in Figure 10 An example flowchart of a method 1000 for managing resource allocation according to an implementation of this disclosure is shown. At block 1010, a reference queue is acquired. This reference queue includes multiple reference nodes corresponding to multiple reference time points. For each reference time point, the reference node corresponding to a reference time point includes: a reference resource allocation corresponding to the reference time point, representing the amount of resources actually consumed by a data delivery request submitted at the reference time point; and a reference resource allocation threshold corresponding to the reference time point, representing a threshold for the amount of resources, where the reference resource allocation is lower than the reference resource allocation threshold. At block 1020, the total number of resource allocations corresponding to a predetermined time window including multiple time points is acquired. The total number of resource allocations is the sum of the multiple resource allocations corresponding to the multiple time points. At block 1030, based on the total number of resource allocations, the current resource allocation corresponding to the current time point among the multiple time points is determined. At step 1040, based on the current resource allocation and the reference queue, a current resource allocation threshold corresponding to the current time point is determined, representing a threshold for the current resource allocation.
[0105] In the implementation of this disclosure, multiple reference time points are within a predetermined time range prior to the current time point, and obtaining the reference queue includes: in response to the length of the reference queue being lower than a predetermined threshold length, updating the reference queue using reference nodes corresponding to the reference time points among the multiple reference time points.
[0106] In the implementation of this disclosure, method 1000 further includes: in response to determining that the length of the reference queue is higher than a predetermined threshold length, removing a reference node corresponding to the target reference time point from the reference queue, wherein the target time point is earlier than other reference time points among a plurality of reference time points.
[0107] In the implementation of this disclosure, determining the current resource allocation includes: receiving resource allocation rates that describe the relationships between multiple resource allocations and multiple time points; and determining the current resource allocation based on the resource allocation rates and the position of the current time point within a time window.
[0108] In the implementation of this disclosure, determining the current resource allocation threshold includes: selecting a first reference node and a second reference node from the reference queue that match the current resource allocation, wherein the current resource allocation is higher than the first reference resource allocation in the first reference node and lower than the second reference resource allocation in the second reference node; and obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation.
[0109] In the implementation of this disclosure, obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation includes: obtaining the previous resource allocation threshold corresponding to a previous time point earlier than the current time point; and determining the current resource allocation threshold based on the previous resource allocation threshold, the current resource allocation, and the first reference resource allocation and the second reference resource allocation.
[0110] In an implementation of this disclosure, method 1000 further includes: obtaining a predetermined range of upper and lower thresholds associated with the current resource allocation threshold, wherein determining the current resource allocation threshold includes at least one of the following: outputting the current resource allocation threshold in response to determining that the current resource allocation threshold meets the predetermined range; or updating the current resource allocation threshold based on the predetermined range in response to determining that the current resource allocation threshold does not meet the predetermined range.
[0111] In an implementation of this disclosure, obtaining the reference queue includes: sorting multiple reference resource allocations; and updating the reference queue by performing a monotonic operation on multiple reference resource allocation thresholds associated with the sorted multiple reference resource allocations.
[0112] In the implementation of this disclosure, determining the current resource allocation threshold includes: determining a set of time points earlier than the current time point among multiple time points in the time window; and determining the current resource allocation threshold in response to determining that the sum of a set of resource allocations corresponding to the set of time points is less than the total number of resources.
[0113] In the implementation of this disclosure, method 1000 further includes: submitting a data delivery request based on the current resource allocation threshold.
[0114] According to an implementation of this disclosure, an apparatus for managing resource allocation is provided. The apparatus includes a reference queue acquisition module configured to acquire a reference queue, the reference queue including multiple reference nodes corresponding to multiple reference time points. For each reference time point, the reference node corresponding to that time point includes: a reference resource allocation corresponding to the reference time point, the reference resource allocation representing the amount of resources actually consumed by a data delivery request submitted at the reference time point; and a reference resource allocation threshold corresponding to the reference time point, the reference resource allocation threshold representing a threshold for the amount of resources, wherein the reference resource allocation is lower than the reference resource allocation threshold; a total quantity acquisition module configured to acquire the total quantity of resource allocations corresponding to a predetermined time window including multiple time points, the total quantity of resource allocations being the sum of the multiple resource allocations corresponding to the multiple time points; a current resource allocation determination module configured to determine the current resource allocation corresponding to the current time point among the multiple time points based on the total quantity of resource allocations; and a current resource allocation threshold determination module configured to determine the current resource allocation threshold corresponding to the current time point based on the current resource allocation and the reference queue, the current resource allocation threshold representing a threshold for the current resource allocation.
[0115] According to an implementation of this disclosure, an electronic device for implementing method 1000 is provided. The electronic device includes: a computer-readable storage unit coupled to a computer-readable storage unit, the storage unit including instructions that, when executed by a computer processor, implement a method for managing resource allocation. The method includes: acquiring a reference queue including multiple reference nodes corresponding to multiple reference time points; for each reference time point among the multiple reference time points, the reference node corresponding to the reference time point includes: a reference resource allocation corresponding to the reference time point, the reference resource allocation representing the amount of resources actually consumed by a data delivery request submitted at the reference time point; and a reference resource allocation threshold corresponding to the reference time point, the reference resource allocation representing a threshold for the amount of resources, wherein the reference resource allocation is lower than the reference resource allocation threshold; acquiring a total number of resource allocations corresponding to a predetermined time window including multiple time points, the total number of resource allocations being the sum of multiple resource allocations corresponding to the multiple time points respectively; determining a current resource allocation corresponding to the current time point among the multiple time points based on the total number of resource allocations; and determining a current resource allocation threshold corresponding to the current time point based on the current resource allocation and the reference queue, the current resource allocation threshold representing a threshold for the current resource allocation.
[0116] In the implementation of this disclosure, multiple reference time points are within a predetermined time range prior to the current time point, and obtaining the reference queue includes: in response to the length of the reference queue being lower than a predetermined threshold length, updating the reference queue using reference nodes corresponding to the reference time points among the multiple reference time points.
[0117] In the implementation of this disclosure, method 1000 further includes: in response to determining that the length of the reference queue is higher than a predetermined threshold length, removing a reference node corresponding to the target reference time point from the reference queue, wherein the target time point is earlier than other reference time points among a plurality of reference time points.
[0118] In the implementation of this disclosure, determining the current resource allocation includes: receiving resource allocation rates that describe the relationships between multiple resource allocations and multiple time points; and determining the current resource allocation based on the resource allocation rates and the position of the current time point within a time window.
[0119] In the implementation of this disclosure, determining the current resource allocation threshold includes: selecting a first reference node and a second reference node from the reference queue that match the current resource allocation, wherein the current resource allocation is higher than the first reference resource allocation in the first reference node and lower than the second reference resource allocation in the second reference node; and obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation.
[0120] In the implementation of this disclosure, obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation includes: obtaining the previous resource allocation threshold corresponding to a previous time point earlier than the current time point; and determining the current resource allocation threshold based on the previous resource allocation threshold, the current resource allocation, and the first reference resource allocation and the second reference resource allocation.
[0121] In an implementation of this disclosure, method 1000 further includes: obtaining a predetermined range of upper and lower thresholds associated with the current resource allocation threshold, wherein determining the current resource allocation threshold includes at least one of the following: outputting the current resource allocation threshold in response to determining that the current resource allocation threshold meets the predetermined range; or updating the current resource allocation threshold based on the predetermined range in response to determining that the current resource allocation threshold does not meet the predetermined range.
[0122] In an implementation of this disclosure, obtaining the reference queue includes: sorting multiple reference resource allocations; and updating the reference queue by performing a monotonic operation on multiple reference resource allocation thresholds associated with the sorted multiple reference resource allocations.
[0123] In the implementation of this disclosure, determining the current resource allocation threshold includes: determining a set of time points earlier than the current time point among multiple time points in the time window; and determining the current resource allocation threshold in response to determining that the sum of a set of resource allocations corresponding to the set of time points is less than the total number of resources.
[0124] In the implementation of this disclosure, method 1000 further includes: submitting a data delivery request based on the current resource allocation threshold.
[0125] According to an implementation of this disclosure, a computer program product includes a computer-readable storage medium having program instructions embodied therein, which are executable by an electronic device to cause the electronic device to perform method 1000.
[0126] Figure 11 A block diagram of a computing device 1100 in which various implementations of the present disclosure may be implemented is shown. It should be understood that... Figure 11 The computing device 1100 shown is for illustrative purposes only and does not imply any limitation on the functionality and scope of this disclosure. The computing device 1100 can be used to implement the method 1000 described in the implementation of this disclosure. Figure 11As shown, computing device 1100 can be a general-purpose computing device. Computing device 1100 may include at least one or more processors or processing units 1110, memory 1120, storage unit 1130, one or more communication units 1140, one or more input devices 1150, and one or more output devices 1160.
[0127] Processing unit 1110 can be a physical or virtual processor and can implement various processes based on program 1125 stored in memory 1120. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 1100. Processing unit 1110 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.
[0128] Computing device 1100 typically includes various computer storage media. Such media can be any media accessible to computing device 1100, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 1120 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory) or any combination thereof. Storage cell 1130 can be any removable or non-removable media and may include machine-readable media such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed in computing device 1100.
[0129] The computing device 1100 may also include additional removable / non-removable volatile / non-volatile memory media. Although in Figure 11 Not shown, but may provide disk drives for reading from and / or writing to removable non-volatile disks, and optical disk drives for reading from and / or writing to removable non-volatile optical disks. In this case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0130] Communication unit 1140 communicates with another computing device via a communication medium. Furthermore, the functionality of the components in computing device 1100 can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, computing device 1100 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.
[0131] Input device 1150 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 1160 can be one or more of various output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 1140, computing device 1100 can also communicate with one or more external devices (not shown), such as storage devices and display devices, wherein one or more devices enable a user to interact with computing device 1100 or any device (such as a network card, modem, etc.), enabling computing device 1100 to communicate with one or more other computing devices (if needed). Such communication can be performed via input / output (I / O) interface (not shown).
[0132] In some implementations, some or all components of computing device 1100 may be located within a cloud computing architecture, rather than integrated into a single device. In a cloud computing architecture, components can be remotely provided and work together to achieve the functionality described in this disclosure. In some implementations, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various implementations, cloud computing provides services via a wide area network (WAN), such as the Internet, using appropriate protocols. For example, a cloud computing provider offers applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed across locations in remote data centers. Cloud computing infrastructure can provide services through shared data centers, although they act as a single access point for users. Therefore, cloud computing architectures can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, they may be provided from conventional servers or directly installed or otherwise installed on client devices.
[0133] The functions described herein can be performed at least in part by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), etc.
[0134] Program code used to perform the methods described herein can be written in any combination of one or more programming languages. The program code can be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the program code enables the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code can be executed entirely or partially on a machine, partially as a standalone software package on a machine, partially on a remote machine, or entirely on a remote machine or server.
[0135] In the context of this disclosure, a machine-readable medium can be any tangible medium that may contain or store a program used by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More specific examples of machine-readable storage media will include electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0136] Furthermore, although operations are shown in a specific order, this should not be construed as requiring that such operations be performed in the specific order shown or sequentially, or that all shown operations be performed to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the topics described herein, but rather as descriptions of features that may be specific to a particular implementation. Certain features described in the context of a single implementation may also be implemented in combination within a single implementation. Conversely, various features described in a single implementation may also be implemented individually or in any suitable sub-combination in multiple implementations.
[0137] Although the subject matter has been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter specified in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as exemplary forms for implementing the claims.
[0138] Based on the foregoing, it should be understood that this document has described specific implementations of the currently disclosed technology for illustrative purposes, but various modifications can be made without departing from the scope of this disclosure. Therefore, the technology disclosed herein is not limited except for the appended claims.
[0139] The subject matter and functional operations described in this disclosure can be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware (including the structures disclosed in this specification and their structural equivalents), or combinations thereof. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer-readable medium for execution by or control of the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances influencing machine-readable propagation signals, or combinations thereof. The terms "data processing unit" or "data processing apparatus" encompass all means, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or combinations thereof.
[0140] A computer program (also called a program, software, software application, script, or code) can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), as a single file dedicated to the program in question, or as multiple coordinating files (e.g., a file storing one or more modules, subroutines, or code sections). A computer program can be deployed to execute on one or more computers located at a single site or distributed across multiple sites and interconnected via a communication network.
[0141] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include, or be operatively coupled to, receiving data from or depositing data onto one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data. However, a computer does not need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices. The processor and memory may be supplemented by or incorporated into special-purpose logic circuitry.
[0142] The specification together with the accompanying drawings is intended to be considered exemplary only, where exemplary means example. As used herein, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.
[0143] While this disclosure contains numerous details, these details should not be construed as limiting the scope of any disclosure or claimable content, but rather as descriptions of features specific to particular implementations of a particular disclosure. Certain features described in this disclosure in the context of a single implementation may also be implemented in combination within a single implementation. Conversely, various features described in the context of a single implementation may also be implemented individually or in any suitable sub-combination in multiple implementations. Furthermore, although features may be described above as functioning in certain combinations and even initially claimed in this way, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may involve sub-combinations or variations thereof.
[0144] Similarly, although operations are shown in a specific order in the accompanying drawings, this should not be construed as requiring the operations to be performed in the specific order shown or sequentially, or to perform all shown operations to achieve the desired result. Furthermore, the separation of various system components in the implementations described in this disclosure should not be construed as requiring such separation in all implementations. Only some implementations and examples have been described, and other implementations, enhancements, and variations can be made based on what is described and shown in this disclosure.
Claims
1. A method for managing resource allocation, comprising: Obtain a reference queue, which includes multiple reference nodes corresponding to multiple reference time points. For each reference time point among the multiple reference time points, the reference node corresponding to that reference time point includes: A reference resource allocation corresponding to the reference time point, wherein the reference resource allocation represents the amount of resources actually consumed by the data delivery request submitted at the reference time point; and A reference resource allocation threshold corresponding to the reference time point, wherein the reference resource allocation threshold represents a threshold for the quantity of resources, and the reference resource allocation is lower than the reference resource allocation threshold; Obtain the total number of resource allocations corresponding to a predetermined time window including multiple time points, wherein the total number of resource allocations is the sum of multiple resource allocations corresponding to each of the multiple time points; Based on the total number of resource allocations, determine the current resource allocation corresponding to the current time point among the plurality of time points; and Based on the current resource allocation and the reference queue, a current resource allocation threshold corresponding to the current time point is determined, wherein the current resource allocation threshold represents the threshold of the current resource allocation.
2. The method according to claim 1, wherein the plurality of reference time points are within a predetermined time range prior to the current time point, and obtaining the reference queue comprises: In response to the reference queue length being lower than a predetermined threshold length, the reference queue is updated using the reference node corresponding to the reference time point among the plurality of reference time points.
3. The method according to claim 2, further comprising: In response to determining that the length of the reference queue is higher than a predetermined threshold length, a reference node corresponding to a target reference time point is removed from the reference queue, the target time point being earlier than other reference time points among the plurality of reference time points.
4. The method of claim 1, wherein determining the current resource allocation comprises: Receive resource allocation rates that describe the correlation between multiple resource allocations and the multiple time points; as well as The current resource allocation is determined based on the resource allocation rate and the position of the current time point within the time window.
5. The method according to claim 1, wherein determining the current resource allocation threshold includes: A first reference node and a second reference node that match the current resource allocation are selected from the reference queue, wherein the current resource allocation is higher than the first reference resource allocation in the first reference node and lower than the second reference resource allocation in the second reference node; as well as The current resource allocation threshold is obtained based on the first reference resource allocation and the second reference resource allocation.
6. The method according to claim 5, wherein obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation includes: Obtain the previous resource allocation threshold corresponding to a previous time point earlier than the current time point; as well as The current resource allocation threshold is determined based on the previous resource allocation threshold, the current resource allocation, the first reference resource allocation, and the second reference resource allocation.
7. The method according to claim 5, further comprising: Obtain a predetermined range of upper and lower thresholds associated with the current resource allocation threshold, wherein determining the current resource allocation threshold includes at least one of the following: In response to determining that the current resource allocation threshold meets the predetermined range, the current resource allocation threshold is output; or In response to determining that the current resource allocation threshold does not meet the predetermined range, the current resource allocation threshold is updated based on the predetermined range.
8. The method of claim 1, wherein obtaining the reference queue comprises: The multiple reference resources are allocated and sorted; as well as The reference queue is updated by performing a monotonic operation on the multiple reference resource allocation thresholds associated with the sorted multiple reference resource allocations.
9. The method of claim 1, wherein determining the current resource allocation threshold comprises: Determine a set of time points that are earlier than the current time point among the plurality of time points in the time window; as well as In response to determining that the sum of a set of resource allocations corresponding to the set of time points is less than the total number of resources, the current resource allocation threshold is determined.
10. The method according to claim 1, further comprising: Submit a data delivery request based on the current resource allocation threshold.
11. An electronic device comprising a computer processor coupled to a computer-readable storage unit, the storage unit including instructions that, when executed by the computer processor, implement a method for managing resource allocation, the method comprising: Obtain a reference queue, which includes multiple reference nodes corresponding to multiple reference time points. For each reference time point among the multiple reference time points, the reference node corresponding to that reference time point includes: A reference resource allocation corresponding to the reference time point, wherein the reference resource allocation represents the amount of resources actually consumed by the data delivery request submitted at the reference time point; and A reference resource allocation threshold corresponding to the reference time point, wherein the reference resource allocation threshold represents a threshold for the quantity of resources, and the reference resource allocation is lower than the reference resource allocation threshold; Obtain the total number of resource allocations corresponding to a predetermined time window including multiple time points, wherein the total number of resource allocations is the sum of multiple resource allocations corresponding to each of the multiple time points; Based on the total number of resource allocations, determine the current resource allocation corresponding to the current time point among the plurality of time points; and Based on the current resource allocation and the reference queue, a current resource allocation threshold corresponding to the current time point is determined, wherein the current resource allocation threshold represents the threshold of the current resource allocation.
12. The electronic device of claim 11, wherein the plurality of reference time points are within a predetermined time range prior to the current time point, and acquiring the reference queue comprises: In response to the reference queue length being lower than a predetermined threshold length, the reference queue is updated using the reference node corresponding to the reference time point among the plurality of reference time points.
13. The electronic device according to claim 12, further comprising: In response to determining that the length of the reference queue is higher than a predetermined threshold length, a reference node corresponding to a target reference time point is removed from the reference queue, the target time point being earlier than other reference time points among the plurality of reference time points.
14. The electronic device of claim 11, wherein determining the current resource allocation comprises: Receive resource allocation rates that describe the correlation between multiple resource allocations and the multiple time points; as well as The current resource allocation is determined based on the resource allocation rate and the position of the current time point within the time window.
15. The electronic device of claim 11, wherein determining the current resource allocation threshold comprises: A first reference node and a second reference node that match the current resource allocation are selected from the reference queue, wherein the current resource allocation is higher than the first reference resource allocation in the first reference node and lower than the second reference resource allocation in the second reference node; as well as The current resource allocation threshold is obtained based on the first reference resource allocation and the second reference resource allocation.
16. The electronic device of claim 15, wherein obtaining the current resource allocation threshold based on the first reference resource allocation and the second reference resource allocation comprises: Obtain the previous resource allocation threshold corresponding to a previous time point earlier than the current time point; as well as The current resource allocation threshold is determined based on the previous resource allocation threshold, the current resource allocation, the first reference resource allocation, and the second reference resource allocation.
17. The electronic device of claim 15, wherein the method further comprises: Obtain a predetermined range of upper and lower thresholds associated with the current resource allocation threshold, wherein determining the current resource allocation threshold includes at least one of the following: In response to determining that the current resource allocation threshold meets the predetermined range, the current resource allocation threshold is output; or In response to determining that the current resource allocation threshold does not meet the predetermined range, the current resource allocation threshold is updated based on the predetermined range.
18. The electronic device of claim 11, wherein acquiring the reference queue comprises: The multiple reference resources are allocated and sorted; as well as The reference queue is updated by performing a monotonic operation on the multiple reference resource allocation thresholds associated with the sorted multiple reference resource allocations.
19. The electronic device of claim 11, wherein determining the current resource allocation threshold comprises: Determine a set of time points that are earlier than the current time point among the plurality of time points in the time window; as well as In response to determining that the sum of a set of resource allocations corresponding to the set of time points is less than the total number of resources, the current resource allocation threshold is determined.
20. A non-transitory computer program product, the computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by an electronic device to cause the electronic device to perform a method for managing resource allocation, the method comprising: Obtain a reference queue, which includes multiple reference nodes corresponding to multiple reference time points. For each reference time point among the multiple reference time points, the reference node corresponding to that reference time point includes: A reference resource allocation corresponding to the reference time point, wherein the reference resource allocation represents the amount of resources actually consumed by the data delivery request submitted at the reference time point; and A reference resource allocation threshold corresponding to the reference time point, wherein the reference resource allocation threshold represents a threshold for the quantity of resources, and the reference resource allocation is lower than the reference resource allocation threshold; Obtain the total number of resource allocations corresponding to a predetermined time window including multiple time points, wherein the total number of resource allocations is the sum of multiple resource allocations corresponding to each of the multiple time points; Based on the total number of resource allocations, determine the current resource allocation corresponding to the current time point among the plurality of time points; and Based on the current resource allocation and the reference queue, a current resource allocation threshold corresponding to the current time point is determined, wherein the current resource allocation threshold represents the threshold of the current resource allocation.