Scalable Modeling for Large Sets of Time Series
By grouping time series data into hierarchical partitions and performing parallel modeling tasks, the computational efficiency and accuracy of time series forecasting are enhanced, addressing scalability issues in large data sets.
Patent Information
- Application Number
- JP2023526040
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-04-15
- Filing Date
- 2021-10-26
- Publication Date
- 2025-11-05
- Estimated Expiration
- 2041-10-26
AI Technical Summary
Existing systems face computational challenges in handling large volumes of time series data, leading to inefficiencies in training and using models, especially with machine learning and deep learning, due to scalability issues and the need for complex models that require significant computational resources.
A computing device and method that groups time series data into hierarchical partitions, selecting an optimal partitioning level based on computational capability, and performing modeling tasks in parallel to improve efficiency and accuracy.
This approach enables scalable and accurate time series forecasting by distributing computational load, allowing for targeted models per group, reducing processing time, and improving forecasting accuracy.
Smart Images

Figure 0007764107000001 
Figure 0007764107000002 
Figure 0007764107000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to time series forecasting, and more particularly to improving the statistical accuracy and computational efficiency with which computing devices perform time series forecasting. [Background technology]
[0002] A time series is a sequence of data points indexed in chronological order, such as a sequence of data collected consecutively at fixed time intervals. Time series forecasting is the use of a model to predict future values of a time series based on previously observed values of the time series. Prediction across multiple related time series is a prominent aspect of many real-world industrial problems and applications. In fact, it can be a core component that drives subsequent decision, optimization, and planning systems and processes.
[0003] Today, data sets can have millions of correlated time series spanning thousands of time points. As non-limiting examples, electricity forecasting (e.g., predicting power usage across different geographies and times), road traffic analysis, etc., can involve extremely large numbers of time series, sometimes referred to as big data. Large numbers of time series, along with the increasing number of models, model complexity, variability, and possible ways to include external data that are automatically explored as part of the modeling process, pose unacceptable computational challenges when performing multi-time series modeling.
[0004] Existing systems and methods for forecasting cannot scale to accommodate such large volumes of time series, both in terms of data size (which may not fit within the memory capacity of computing architectures) and modeling across all available time series, creating situations where data is extremely large. Therefore, traditional computing systems cannot efficiently accommodate training and using models based on large volumes of time series data (if at all). Furthermore, using the entire available time series data to fit a model can involve large, complex models, further exacerbating scalability. Meanwhile, not using multiple time series still requires fitting numerous models, but fails to provide sufficient data to accommodate complex models, such as machine learning (ML) and / or deep learning (DL) models, and to learn relationships with large volumes of exogenous data. Summary of the Invention
[0005] Various embodiments provide a computing device, storage medium, and computer-implemented method for improving the computational efficiency of a computing platform in processing time series data. Time series data including a plurality of time series is received. The time series data is grouped into a hierarchy of a plurality of partitions of related time series. The hierarchy has a plurality of different partitioning levels. A computational capability of the computing platform is determined. A partitioning level from the plurality of different partitioning levels is selected based on the determined computational capability. One or more modeling tasks are defined, each modeling task including a time series group of the plurality of time series based on the selected partitioning level. The one or more modeling tasks are executed in parallel on the computing platform by training a model for each modeling task using all the time series in the time series group of the corresponding modeling task.
[0006] In one embodiment, each partition level includes multiple time series groups based on the time series data.
[0007] In one embodiment, each partition level includes a substantially similar number of time series.
[0008] In one embodiment, determining the computing power includes receiving the computing power from a reference database.
[0009] In one embodiment, determining the computational capacity includes performing an initial approximation by performing partial modeling at multiple partition levels on a computing platform.
[0010] In one embodiment, the selection of the partition level is based on the most time-efficient for a given accuracy.
[0011] In one embodiment, the selection of the partition level is based on the highest accuracy for a given time efficiency.
[0012] In one embodiment, for each modeling task, cross-time series modeling is performed in parallel at the selected level.
[0013] In one embodiment, the grouping of the time series is performed by domain-based grouping and / or semantic model-based grouping.
[0014] In one embodiment, the computing platform includes multiple computing nodes, and the determination of the computing capacity of the computing platform is performed separately for each node.
[0015] These and other features of the present invention will become apparent from the following detailed description of illustrative embodiments, which is to be read in connection with the accompanying drawings.
[0016] The drawings are of exemplary embodiments. The drawings do not depict every embodiment. Other embodiments may be used in addition or instead. Details that may be obvious or unnecessary may be omitted to save space or for a more effective illustration. Some embodiments may be practiced with additional components or steps, or without all of the components or steps shown, or both. When the same reference number appears in different drawings, it refers to the same or similar components or steps. [Brief explanation of the drawings]
[0017] [Figure 1] FIG. 1 illustrates an exemplary architecture that can be used to implement a system for scalable modeling of large sets of time series data. [Figure 2] FIG. 1 is a block diagram of a system for time series segmentation and task generation, consistent with an illustrative embodiment. [Figure 3]FIG. 1 is a conceptual block diagram of various prediction components and how they interrelate, consistent with an illustrative embodiment. [Figure 4] FIG. 1 is a conceptual block diagram of a toolkit high-level flow consistent with an illustrative embodiment. [Figure 5] FIG. 10 presents an exemplary process for partitioning time series data into groups at multiple different partitioning levels that can be accommodated by a computing platform, and the overall execution of multi-time series modeling, consistent with exemplary embodiments. [Figure 6] Figure 1 is a functional block diagram of a computer hardware platform that can be used to implement the functionality of the Efficiency Server. [Figure 7] FIG. 1 illustrates a cloud computing environment in accordance with an exemplary embodiment. [Figure 8] FIG. 1 illustrates abstraction model layers in accordance with an exemplary embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0018] Overview In the following detailed description, by way of example, numerous specific details are set forth in order to provide a thorough understanding of the present teachings involved. However, it should be apparent that the present teachings can be practiced without such details. In other instances, well-known methods, procedures, components, or circuits, or combinations thereof, have been described at a relatively high-level, without detail, to avoid unnecessarily obscuring aspects of the present teachings.
[0019] This disclosure relates to a system and method for scalable modeling for large collections of time series. Today, industries rely on forecasting to facilitate planning and management. However, the number of time series, along with the proliferation of data and model variants to incorporate and explore, creates unacceptable computational challenges that current forecasting systems cannot meet on computing platforms. For example, a computing platform may not have sufficient computational resources to perform the calculations, or the time it takes to receive forecast results may be too long, or both. This situation is exacerbated for modern ML / DL forecasting models, which may involve cross-series modeling, i.e., using data from all series fed into the model to fit forecast model parameters and collect forecasts from the model.
[0020] As industries seek to scale forecasting to the large number of time series that may be available, they typically sacrifice the accuracy of the forecasting model (e.g., in terms of pipeline / model and feature complexity, the model being explored, and the exogenous data involved) to enable traceable modeling, sometimes resulting in a degradation of the computational accuracy of the computing devices performing these calculations. Furthermore, today's industries often lack the ability to enable modern forecasting components, such as artificial intelligence (AI) / deep learning (DL) methods and forecasting techniques, to fully utilize large amounts of data (big data) to facilitate the forecasting task. In fact, the use of AI, and especially DL, in commercial forecasting is very limited, let alone cross-series or multivariate models that leverage information from all series in the model.
[0021] By way of example and not limitation, in demand planning / forecasting, the goal may be to predict future demand or sales given a history of observed sales or demand and other exogenous factors, where a time series is a series of sales at a predetermined resolution (e.g., daily sales). For example, in a supply chain, each entity may rely on downstream forecasts to determine the amount of product to prepare and / or ship to meet its demand, and on upstream forecasts to predict the amount of supply they can obtain from various sources. For example, a retailer may need to forecast demand for each of potentially millions of products at potentially thousands of different locations (e.g., stores) to determine the necessary quantities for the retailer to periodically reorder and to determine the amount of product to replenish at each location periodically (e.g., weekly, monthly, etc.). Each of these product-store combinations provides a time series. The result can be millions or even billions of time series data.
[0022] Other examples include traffic prediction (either physical, such as road traffic, or virtual, such as internet traffic) at different locations and times, electricity prediction (e.g., forecasting power usage across a region) at different times, and manufacturing and Internet of Things (IoT) sensor time series modeling (e.g., predictions for hundreds of thousands of different sensors and locations). There are many challenges associated with time series data from different nodes, or even from the same node. For example, time series may not be aligned, may be missing values, may contain large amounts of exogenous data (e.g., weather events), may be sparse, etc.
[0023] In one aspect, the teachings herein forecast multiple time series and large-scale data by automatically determining the appropriate partitioning level of time series to perform parallel cross-series modeling, where each partition forms a forecasting task that can be performed in parallel, using state-of-the-art forecasting techniques that are scalable and efficient (i.e., computationally feasible on a given computing platform and improves its accuracy). Additionally, the teachings herein facilitate the utilization of cross-time series machine learning algorithms that provide modern approaches to forecasting across time series and multi-task and / or multivariate models, as well as modeling or model parameter sharing, to improve forecast accuracy and include increasing amounts of exogenous data related to external factors such as weather, events, social media, etc.
[0024] The teachings herein enable entities to upload their data, specify a set of models to try, a time period for training and evaluation, and efficiently receive predictive model evaluation results and predictive models to deploy and use. The system automatically converts the specified predictive task into an appropriate, appropriately distributed / parallel computational task to accommodate available computing resources, thereby making it not only possible to process but also more accurate on a given computing platform. Data scientists can easily explore modeling flows and variants and determine results at scale without sacrificing accuracy to arrive at understanding. The architecture improves computational efficiency and processing speed by enabling time series data to be partitioned into groups that can be processed simultaneously (i.e., in parallel). Reference is now made in detail to the examples illustrated in the accompanying drawings and discussed below.
[0025] Exemplary Architecture FIG. 1 illustrates an exemplary architecture 100 that can be used to implement a system for scalable modeling of large sets of time-series data. The architecture 100 includes input data 104 from multiple nodes 103(1) through 103(N). The nodes may be within the same region or may be distributed. For example, nodes 103(1) and 103(2) may be within a first region 170 (e.g., San Francisco (SF)), nodes 103(3) and 103(4) may be within a second region 172 (e.g., New York City (NYC)), nodes 103(5) through 103(N) may be within a third region (e.g., Los Angeles (LA)), etc. As used herein, a node is a source of serial information. For example, a node may be a retail store providing information about various products, a sensor providing traffic or weather information, or both.
[0026] Network 106 may be, without limitation, a local area network ("LAN"), a virtual private network ("VPN"), a cellular network, the Internet, or a combination thereof. For example, network 106 may include a mobile network communicatively coupled to a private network, sometimes referred to as an intranet, that provides various ancillary services, such as communication with time-series data repository 114. For ease of discussion, network 106 is described, by way of example only and not by way of limitation, as a mobile network that may be operated by a carrier or service provider to provide a wide variety of mobile communication services and additional services or features to its subscribing customers and associated mobile device users.
[0027] In one embodiment, the time series data repository 114 is configured to store large amounts of time series data generated by the nodes 103(1)-103(N), i.e., each node corresponds to a time series. The time series data 115 in the time series data repository 114 can be provided to the efficiency server 130 at predetermined intervals or upon a trigger event (e.g., a request from the efficiency server 130). In some embodiments, the time series data 140 is received by the efficiency server 130 directly from the nodes 103(1)-103(N).
[0028] The architecture 100 includes a time series efficiency engine 103, which is a program running on an efficiency server 130. The efficiency engine 103 is configured to receive time series data 115 from a time series data repository 114, directly from nodes 103(1)-103(N), or both. The efficiency engine 103 is operable to perform hierarchical partitioning of large amounts of time series data. In various embodiments, domain-based grouping and / or database-based grouping, described in more detail below, may be used. Following this initial grouping, the grouping level is automatically determined by the efficiency engine 103. Each time series data group represents a modeling task to be processed by a computing device, represented by a computing node 150(1)-150(N). The task is distributed to one or more computing devices 150(1)-150(N) to execute the task in parallel. By distributing the computational load represented by time series groups, processing time is reduced, while accuracy may also be improved by enabling more targeted models per group. Each of these concepts is discussed in more detail below.
[0029] The efficiency engine 103 is configured to automatically partition time series data and generate tasks for parallel execution on one or more computing devices. In one embodiment, modeling across multiple series (e.g., versus training a single model per series) provides improvements in both scalability and performance for machine learning (ML) and deep learning (DL)-based modeling. A single time series may not have enough data to enable accurate training of a complex model. This situation is exacerbated when exogenous data is introduced, requiring leveraging multiple related time series to learn common patterns (both across time series and from exogenous data) and including relationships between related series, such as correlations and dependencies, in both multitask modeling and multivariate modeling.
[0030] However, including too many series for a single model also leads to a lack of scalability and unnecessary complexity: both the data size and the model size become too large, and the model must become large enough to encode multiple different types of relationships that would be more easily captured in separate models.
[0031] For example, a retailer may sell both electronics and clothing, but these genres generally do not have many common or interrelated relationships, and there may be enough data for each genre to capture more general patterns. In fact, training a model that spans both groups only adds complexity. Therefore, in such a scenario, it is better to train separate models for each genre. In this regard, the efficiency engine 103 can determine what partitions (partitions) of the time series should be performed to perform modeling for each group. Such partitioning allows for more effective modeling because each model is constrained to more relevant data, allowing the models to be more accurate. Furthermore, the models can be less complex because they do not need to deal with separate information. The entire pipeline (and all prediction steps) of the efficiency engine 103 can be tailored to specific partitions (because different groups may require entirely different settings for their components).
[0032] The partitioning of the efficiency engine 103 also allows for much higher scalability because each partition modeling task can be performed in parallel on each computing node (e.g., 150(1) to 150(N)), and each computing node receives a reduced time series data size. In one embodiment, information from other partitions can also be included in the modeling of each partition at an aggregate level (e.g., taking the average of the series from each other group).
[0033] For purposes of discussion, different computing devices (e.g., 150(1) through 150(N) and 130) are shown in the figures to represent some examples of devices that can be used to partition and process time series data. Today, computing devices typically take the form of tablet computers, laptops, desktops, personal digital assistants (PDAs), portable handsets, smart phones, and smart watches, but they may also be implemented in other form factors, including consumer and enterprise electronic devices. The efficiency engine provides technological improvements in configuring its host to be a specially configured computing device that can augment the capabilities of one or more computing devices so that they are capable of processing vast amounts of time series data. While the time series data repository 114 and the efficiency server 130 are shown as being on different platforms by way of example, in various embodiments, these platforms may be combined in various combinations. In other embodiments, one or more of these computing platforms may be implemented by virtual computing devices in the form of virtual machines or software containers hosted in the cloud 120, thereby providing a resilient architecture for processing and storage, as described in more detail below. Thus, the functionality described herein with respect to each of the time series data repository 114 and the efficiency server 130 may also be provided by one or more different computing devices.
[0034] Exemplary Block Diagram FIG. 2 is a block diagram of a system 200 for time series segmentation and task generation consistent with an illustrative embodiment. For purposes of discussion, the block diagram of FIG. 2 is described with reference to the architecture 100 of FIG. 1. The system 200 illustrates that there are three main operations for automatically segmenting a time series and performing time series modeling in parallel by the efficiency engine 103. First, time series data 202 is received by the efficiency engine 103, and hierarchical segmentation is performed. The segmentation is hierarchical in that there may be segments with larger group sizes (and fewer total groups) and sub-segments with smaller group sizes (and more total groups). For example, the largest group size segment 207 may include the loosest criteria for inclusion (e.g., same region, same store, etc.) and therefore may include the largest groups (i.e., time series (ts1-ts10) in this example). Tighter segmentation groupings represent sets of time series that are related and more likely to benefit from cross-series modeling 209. The tightest segmentation groupings are referred to herein as level 1 segmentation groups (or groupings), with levels increasing as the groupings introduce more time series. First level segments have stricter criteria for inclusion (e.g., same product line within a region) (e.g., 211, 213).
[0035] In various embodiments, different hierarchical partitioning strategies 204 may be used. In one embodiment, domain-based grouping, represented by block 206, or both may be used. In another embodiment, data-based grouping, represented by block 208, may be used to infer relationships between data. Data-based grouping is grouping based on time series history and characteristics itself, i.e., grouping that is automatically calculated based on the data itself (i.e., data-driven) rather than a pre-specified set of groupings. For example, one embodiment of data-based grouping may include clustering time series based on their historical patterns and magnitude, such as using similarity and distance measures, such as dynamic time-warping (DTW) distance or correlation, in combination with a hierarchical clustering algorithm, such as hierarchical agglomerative clustering or iterative k-means clustering, or using a time series distance metric. Another exemplary embodiment is to use attributes of time series, including summary statistics of historical series values such as mean, maximum, variance, naive / closing price forecast error, trend, and seasonal sensitivity, as features for applying hierarchical clustering, such as well-known attributes at the category level (e.g., product category, product class, market segment, number of stores, store state / region, etc. in the case of retail), as well as other attributes. Another embodiment can be to derive a graph with each time series as a node in the graph, and multiple types of relationships between time series represented as different links in the graph connecting the nodes, with different weights representing the strength of the relationship. These links can be derived from different relationships, including the previously mentioned correlations, time series distances, attribute similarities, etc. A hierarchical graph partitioning / clustering algorithm can then be applied to this graph to form different levels of partitioning. Other techniques for hierarchical partitioning are also supported by the teachings herein.Additionally, a constraint on group size can be included, enforcing that the size (i.e., number of time series) of each group at a given partitioning level not vary too much, so that the modeling task and its complexity and computational burden are similar for each group within the same partitioning level. This can be achieved through several different embodiments. For example, in one embodiment, hierarchical agglomerative clustering is used, so that cluster sizes at each hierarchical level always fall within a fixed size range. In other embodiments, such as algorithmic clustering, a size similarity constraint can be added to the clustering optimization problem. In some embodiments, post-processing of the clusters (such as merging clusters that are too small or splitting clusters that are too large) can be used.
[0036] In one embodiment, each group within a partition may also include one or more aggregate series from other groups, such as global aggregates (e.g., mean value series) from other groups, or aggregate series per group, to allow for scalable exploitation of any additional information from other groups. Such an approach may improve modeling at each hierarchical level.
[0037] Second, the efficiency engine 103 determines the partitioning level 210 to use. To that end, the efficiency engine can trade off modeling accuracy for modeling time. The goal is to find an appropriate partitioning level for training the model that provides a predetermined desired level of modeling accuracy while providing scalability in hierarchical partitioning. To that end, the efficiency engine can make an initial determination of the computational capabilities of the computing devices performing the calculations, referred to herein as an initial approximation. In various embodiments, the initial approximation may be received directly from each computing device or from a reference database that stores the capabilities of the computing devices (e.g., number of processors and cores, amount of memory, clock speed, current load, etc.). Based on the initial approximation, a partitioning level capable of processing the time series data within a predetermined time period is selected. In one embodiment, the computing nodes are assumed to be homogeneous, and the performance of one computing node is assumed to be representative of the other computing nodes. Alternatively, each computing node 150(1) through 150(N) is evaluated independently.
[0038] In one embodiment, the efficiency engine 103 performs testing by performing partial modeling (in parallel) on a subset (e.g., one or more groups) from each level from the candidate level set to test the accuracy and computation time of each. In this manner, computational capabilities are determined. Once the computational capabilities of the computing device performing the time series data processing are determined, a partitioning level is selected that can accommodate processing of the time series data for a predetermined time period and a predetermined threshold accuracy. In the example of FIG. 2, the efficiency engine 103 determines that the level 2 partition (including group 1 (e.g., 215) and group 2 (e.g., 209) as two distinct groups within the partition that are modeled separately and simultaneously) provides better accuracy. This can be based simply on first testing a subset of groups at that level (e.g., the level 2 being tested), such as only group 1 (e.g., 215), for a subset of modeling configurations, and comparing it to similar tests at other levels. For example, the partitioning level to be selected may be level 0, which includes each individual time series in its own group (in which case a model is fitted to each individual time series separately), level 1, which includes 211, 213, and 215 as three different groups (in which a separate model is fitted to each of the three groups in parallel), level 2, which includes 209 and 215 as two different groups within that level that can be modeled independently, and level 3=207, which corresponds to fitting one model across all time series (modeling the entire set of time series together). Moving up and down this hierarchy results in different results in terms of both accuracy and efficiency; for example, both may increase from level 0 to a point (e.g., level 1 or 2) and begin to decrease for higher levels.
[0039] A partitioning level is selected when it is determined that the computing device can support this level. Each group in the partitioning level is considered a task to be performed in parallel by a separate computing device. In one embodiment, each group in a partitioning level utilizes a similar amount of computational resources. In this way, all computations are completed within a predetermined time range.
[0040] Third, the efficiency engine executes each task in parallel on the corresponding computing node. At this point, the appropriate hierarchical level has been selected, and the entire modeling for all groupings at that level can be performed. As mentioned above, in some embodiments, computing nodes 150(1) through 150(N) are assumed to be homogeneous. However, in scenarios where the computing nodes are determined to be heterogeneous, in various embodiments, the work may be distributed in parallel based on the lowest-performing computing node, or tasks may be partitioned to correspond to the capabilities of the corresponding computing node. For example, the efficiency engine 103 may appropriately assign tasks to each node (assigning smaller / easier tasks to less powerful computing nodes) based on group size and estimated task complexity.
[0041] Exemplary Prediction Components Forecasting involves projecting multiple related time series and their uncertainties across multiple horizons at a scale to feed downstream decision and optimization systems. In this regard, reference is made to FIG. 3, which provides a conceptual block diagram 300 of various forecasting components and how they interrelate, consistent with an illustrative embodiment. Large amounts of time series data 302 are received by the efficiency engine. In block 304, the quality of the data may be assessed and cleaned accordingly. For example, outlier detection and correction may be performed (e.g., data that fluctuates more than a predetermined standard deviation may be filtered out or winsorized in a simple manner). In one embodiment, missing dates and values may be addressed by appropriately filling in these values and flagging them in the data. In block 306, the time series data is virtually aligned by assigning a time stamp to every time point value and filling in missing time points in the array data (which has a missing flag value), so that the data for each time point can be properly referenced and provided in a common interface, and possible time series data of different resolutions are resolved (e.g., by providing values at the highest resolution and either filling / interpolating values at lower resolutions, repeating, or flagging as missing high-resolution time points where values are missing).
[0042] In block 308, modeling is managed, preparing the series data for multiple tasks, each of which may have different characteristics, goals, settings, etc. Each task is a forecasting task that may include, for example, forecasting time series values for different horizons and time offsets. For example, one task may be forecasting the total number of shipments for the next day for a retail time series, another task may be forecasting the number of shipments for the week after next, another task may be forecasting the average number of shipments for the month after next, etc. This may also include sub-tasks that are part of making the final forecast, such as first filling missing values using a forecasting model and then using those filled values to forecast future values using a prediction model. In block 310, modeling of seasonal effects is addressed via transformations, models, etc. For example, seasonal effects may be regular, typically cyclical, patterns in a time series that are often common across a set of related time series, such as weekly patterns in which certain days of the week have larger values than other days, or hourly patterns. For example, in retail, there are often weekly seasonal patterns shared across stores in different regions, with sales increasing during weekends and decreasing midweek, and holiday seasonal patterns with sales much higher during those weeks around the Thanksgiving holiday. As another example, in electricity consumption, there are time patterns where energy use in different location types spikes at different times, such as household energy use typically spiking after work and decreasing toward late night hours. Modeling seasonal effects can result in these being done by fitting or decomposing a separate seasonal model as a prior step, or can be incorporated as part of the time series forecasting model itself. The efficiency engine can provide target generation 312, which involves calculating and generating forecast targets for each of the salient forecasting tasks (e.g., generating the sum of the values of each time series for each time point in the next week, corresponding to the next week total forecasting task).
[0043] In block 314, problem-specific features can be addressed with a different set of transformations. Time series data may have missing features, such as dates and / or values. To that end, in block 318, the missing features are restored. Time series data may be subject to drift. For example, the underlying nature and patterns of a time series may change over time. In other words, the distribution of a time series may be non-stationary, with elements that cause the distribution to gradually shift or change over time. For example, in the case of energy demand, the demand for energy may follow a regular cyclical seasonal pattern, but the base level of demand may slowly change over time, sometimes drifting randomly, or may slowly increase or decrease over time. In this regard, in block 316, drift is resolved. Various techniques can be used to address drift, such as weighting samples when training a model at the current time point to more heavily emphasize recent time points and to focus on time points that are more reflective of the current state.
[0044] Another consideration by the efficiency engine may be multiple different types of learning. For example, there may be multi-task learning modeling 320, univariate modeling 322, and model / hyperparameter optimization 324. Demand signals often have nonlinear relationships between different factors, so flexible machine learning / deep learning models may be used. Certain forecasts may use external data such as weather, planning, competitor information, event information, etc.
[0045] In one embodiment, the efficiency engine performs uncertainty modeling (i.e., block 330). For example, the efficiency engine can model (and evaluate) expected distributions that are salient for actual use and predictions to validate downstream systems. The uncertainty modeling 330, along with user control 326, can be used to perform meta-modeling 328. The meta-modeling 328 can then be used for decision optimization 332 and evaluation / interpretation of time-series data (i.e., 334). The evaluation / interpretation module 334 can use problem-specific performance metrics along with the meta-modeling information 328 and decision optimization 332 information to provide efficient, deployable and updatable models and data structures.
[0046] Figure 4 is a conceptual block diagram 400 of a high-level flow of the Efficiency Engine, consistent with an exemplary embodiment. There can be two main stages for any predictive modeling task: training 402, in which a model or modeling pipeline is adapted to available data, and inference or forecasting (not shown), in which a trained model or modeling pipeline is applied to some data to generate predictions. The modeling task and specification (e.g., configuration) are given by a task specification 404. This task specification 404 defines a set of components to be included in the modeling pipeline, such as filling missing dates, missing value imputation, aggregation, feature transformation, a specific predictive model set, etc., along with model settings that change the model's behavior, and a set or range of settings to try for each of these, such as imputation methods and hyperparameters, which are predictive model hyperparameters, e.g., the number of layers and neurons per layer of a deep neural net, and the learning rate.
[0047] Based on the task specification, a pipeline object 406 containing all of the specified modeling steps is instantiated. The pipeline is then trained 408 and evaluated 412 on training and evaluation data 420 in parallel, as computational resources allow, for different settings or hyperparameters to perform hyperparameter optimization (HPO), i.e., to find the best settings / hyperparameters for the pipeline and a given set of input data and time series. Thus, by partitioning the task to use different trained versions of the modeling pipeline (i.e., different settings) for different time series subset groups, it becomes possible to select the best hyperparameter settings for each group. With regard to hyperparameter optimization, each task and corresponding pipeline is run for many different settings, and as previously mentioned, a small subset of these settings can be used, either randomly sampled or to determine a partitioning level according to modeling complexity. The output is a trained pipeline 414 along with its performance metrics on the data. Test data 420 is then passed to the trained pipeline 422 to obtain usable expected outputs, i.e., predictions for each task, benchmark results, reports, etc. 424. In the general approach shown in the example of Figure 4, the input data is in a normalized form of a Spark dataframe with specific fields 430.
[0048] Example Process With the above overview of the system architecture 100 for scalable modeling of large collections of time series data and the block diagram discussion of the system 200 for time series partitioning and task generation, it may be useful to now consider a high-level discussion of an exemplary process. To that end, FIG. 5 presents an exemplary process 500 for partitioning time series data into partition levels that can be supported by a computing platform, consistent with an exemplary embodiment, and the overall execution of multi-time series modeling. This process may be performed by the efficiency engine 103 of the efficiency server 130. The process 500 is illustrated as a collection of blocks in a logical flowchart that represent a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the software context, the blocks represent computer-executable instructions that, when executed by one or more processors, perform the described operations. Generally, computer-executable instructions may include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and / or performed in parallel to implement a process. For purposes of discussion, process 500 will be described with reference to architecture 100 of FIG.
[0049] At block 502, time series data is received by the efficiency engine 103. In various embodiments, the time series data may be received directly from various nodes 103(1)-103(N) (i.e., 140), or from a time series data repository 114 (i.e., 115), or both. At block 504, hierarchical partitioning is performed on the series data.
[0050] In block 504, the efficiency engine 103 determines the optimal partition level of the hierarchy based on available computational resources. To that end, an initial determination of computational resources may be performed. In one embodiment, the efficiency engine 103 performs testing to verify computational capabilities by performing partial modeling (in parallel) for several groups from the levels in the candidate level set to test the accuracy and computation time of each.
[0051] Once the computational capabilities of the computing platform on which the processing of the time series data is to be performed are determined, a segmentation level is selected in block 506 that can accommodate processing of the time series data for a predetermined time period and a predetermined threshold accuracy.
[0052] In block 508, the efficiency engine 103 executes each task within the selected partition level in parallel on the corresponding computing nodes. For example, partitioning is the assignment of all time series to groups (also known as clusters), i.e., the division of time series into a set of distinct groups, so that the partition itself is a collection of all groups. The efficiency engine 103 performs modeling for each group within the partition, i.e., a different, separate forecasting model (e.g., a cross-time series or multivariate model) is fitted to each group within the partition. A different model is generated for each group. Thus, the number of models is equal to the number of groups within the partition. For example, consider time series IDs {1, 2, 3, 4, 5}. One partition would be {{1, 2}, {3, 4, 5}}. In this example, this partition has two groups (sometimes referred to herein as "parts," "blocks," or "cells") with two and three time series, respectively, and for each group, a separate model is trained using and based on all the time series within that group. The first group is {1,2} and the second group is {3,4,5}. Another partition would be {{1,3},{4,2},{5}}. In this example, the partition has three groups, and the modeling process results in three predictive models (or modeling pipelines).
[0053] In one embodiment, each cross-time series modeling task for each segment group includes identifying the best set of models and components for that segment by selecting one or more best hyper-parameters and settings in the modeling process that are specific to that segment group, including data transformation and preprocessing, exogenous data feature construction and inclusion, and time series modeling, thereby enabling greater modeling accuracy than using single segment or individual time series modeling by enabling the best settings for different subsets of related time series.
[0054] In one embodiment, each modeling task for cross-time series modeling for each group of related time series within a partition is executed in parallel by leveraging a distributed computing framework to enable scalability across a collection of time series and efficiently achieve time series modeling results. The time series hierarchical partitioning can be determined by domain knowledge and semantic modeling, and the resulting partitioning can be applied domain-agnostic.
[0055] In one embodiment, the time series hierarchical partitioning can be determined by scalable data analysis that determines the relationships between time series, such as the strength of matching different attributes / characteristics, the strength of historical correlations and dependencies between series, etc., which can be converted into a graph with time series as nodes and edges representing the relationships and their strengths. Scalable historical graph partitioning can be applied to determine the hierarchical partitioning.
[0056] In one embodiment, selecting levels in the hierarchical partitioning to perform modeling is performed by selecting a subset of levels that satisfy criteria for minimum and maximum data size based on modeling considerations, estimating the modeling accuracy and / or efficiency of those levels, and selecting the best level based on satisfying accuracy and efficiency requirements. For example, the most accurate level within the efficiency requirement or the most efficient level within the accuracy requirement can be selected.
[0057] In one embodiment, the accuracy and efficiency of modeling at each level within the subset is estimated by performing partial modeling tasks (e.g., training within a time budget, such as over a limited number of iterations and / or a subset of settings) on subsets of groups within each level in parallel across computational resources to estimate the time it takes to run each group at each level and how accurate the modeling is at each level by measuring the accuracy and efficiency for each of these test groups submitted and extrapolating to the entire set of groups within a level. Accuracy extrapolation can be performed by estimating the relationship between time budget and model accuracy by evaluating modeling accuracy at multiple different points during partial modeling to estimate the relationship and convergence.
[0058] In one embodiment, each group within each hierarchical partitioning level can include one or more additional aggregated time series from other groups to potentially improve cross-time series modeling per group without affecting scalability. The average (or other statistical or both) value aggregate series across all groups can be added as a series to each group to allow for capturing global series information when modeling within the group. In one embodiment, when the number of groups is relatively small, the average (or other statistical or both) value aggregate series of each other group within the same level can be added as a series to each group to allow for capturing cross-group relationships when modeling within the group.
[0059] Exemplary Computer Platform As described above, the functionality involved in implementing a system for determining appropriate partitions of time series for performing cross-series modeling in parallel, where each partition forms a forecasting task that can be performed in parallel, can be implemented using one or more computing devices connected for data communication via wireless or wired communication as shown in Figure 1 and according to the process of Figure 5. Figure 6 provides a functional block diagram of a computer hardware platform 600 that can be used to implement the functionality of the efficiency server 130 of Figure 1.
[0060] The computer platform 600 may include a central processing unit (CPU) 604, random access memory (RAM) and / or read-only memory (ROM) 606, a hard disk drive (HDD) 608, a keyboard 610, a mouse 612, a display 614, and a communication interface 616, connected to a system bus 602.
[0061] In one embodiment, HDD 608 has functionality that includes storing programs capable of executing various processes, such as efficiency engine 640, as described herein. Efficiency engine 640 can have various modules configured to perform various functions for determining parameter settings for each cluster of nodes. For example, there can be an interaction module 642 that is operable to receive time series data from various sources, including time series data 115 from time series data repository 114, time series data 140 from various input nodes that may be in multiple different locations, and / or other data that may be in cloud 120.
[0062] In one embodiment, there is a first grouping module 644 that is operable to perform domain-based / semantic model-based grouping. Alternatively, or in addition, there may be a database-based grouping module 646.
[0063] There may be a grouping levels module 648 operable to perform hierarchical segmentation of the time series data.
[0064] There may be a task definition module 650 operable to determine an optimal partitioning level based on available computational resources. Each time series data group represents a task to be processed by a computing device represented by a computing node 150(1) through 150(N).
[0065] Based on the selected partitioning level, there may be an execution module 652 that is operable to distribute the tasks to one or more computing devices 150(1)-150(N) so that the tasks are processed in parallel.
[0066] Exemplary Cloud Platform As described above, functionality related to the implementation of a system for determining appropriate partitions of time series for performing cross-series modeling in parallel, where each partition forms a forecasting task that can be performed in parallel, may involve a cloud. While this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present disclosure can be implemented in conjunction with any other type of computing environment now known or later developed.
[0067] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0068] The characteristics are as follows:
[0069] On-Demand Self-Service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without human interaction with the service provider.
[0070] Broad Network Access: The functionality is available over the network and is accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0071] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model in which various physical and virtual resources are dynamically allocated and reallocated according to demand. There is a sense of location independence in that consumers generally have no control or knowledge over the exact location of the resources provided, but may be able to specify a location at a higher abstraction (e.g., nation, state, or data center).
[0072] Rapid scalability: Features can be provisioned quickly and adaptively, sometimes automatically, to scale out quickly, release quickly, and scale in quickly. To the consumer, the features available to provision often appear unlimited, and any amount can be purchased at any time.
[0073] Services are meterable: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0074] The service model is as follows:
[0075] Software as a Service (SaaS): The functionality offered to the consumer is the use of a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application features, except in some cases for limited user-specific application configuration settings.
[0076] Platform as a Service (PaaS): The functionality offered to the consumer is the deployment of applications they are creating or acquiring, written using the programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does control the applications being deployed and, in some cases, the application hosting environment configuration.
[0077] Infrastructure as a Service (IaaS): The capability offered to consumers is the provision of processing, storage, network, and other underlying computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does control the operating systems, storage, deployed applications, and in some cases, limited control over the selection of network connectivity components (e.g., host firewalls).
[0078] The deployment model is as follows:
[0079] Private Cloud: Cloud infrastructure is operated solely for the organization. The infrastructure may be managed by the organization or a third party and may reside on-premise or off-premise.
[0080] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). The infrastructure may be managed by the organization or a third party and may reside on-premise or off-premise.
[0081] Public Cloud: Cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0082] Hybrid Cloud: A cloud infrastructure is a construct consisting of two or more clouds (private, community, or public) that retain their unique identity but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0083] Cloud computing environments are service-oriented, focusing on statelessness, low computational usage, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0084] Referring now to FIG. 7, an exemplary cloud computing environment 700 is shown. As shown, the cloud computing environment 700 includes one or more cloud computing nodes 710 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or mobile phone 754A, a desktop computer 754B, a laptop computer 754C, or an automotive computer system 754N, or any combination thereof, can communicate. The nodes 710 can communicate with each other. The nodes may be physically or virtually grouped into one or more networks (not shown), such as private, community, public, or hybrid clouds, or any combination thereof, as described above. This enables the cloud computing environment 750 to provide infrastructure, platform, and / or software as a service, thereby eliminating the need for cloud consumers to maintain resources on their local computing devices. It will be understood that the types of computing devices 754A-N shown in FIG. 7 are intended to be exemplary only, and that computing node 710 and cloud computing environment 750 can communicate (e.g., using a web browser) with any type of computerized device over any type of network and / or network-addressable connection.
[0085] Referring now to Figure 8, a set of functional abstraction layers provided by cloud computing environment 750 (Figure 7) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 8 are intended to be illustrative only, and embodiments of the present disclosure are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0086] Hardware and software layer 860 includes hardware and software components. Examples of hardware components include mainframe 861, RISC (reduced instruction set computer) architecture-based server 862, server 863, blade server 864, storage device 865, and network and network connectivity components 866. In some embodiments, software components include network application server software 867 and database software 868.
[0087] The virtualization layer 870 provides an abstraction layer that can provide the following examples of virtual entities: virtual servers 871, virtual storage 872, virtual networks including virtual private networks 873, virtual applications and operating systems 874, and virtual clients 875.
[0088] In one example, management layer 880 can provide the following functions: Resource provisioning 881 enables dynamic procurement of computing resources and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 882 enables cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security enables identity verification of cloud consumers and tasks and protection of data and other resources. User portal 883 enables consumers and system administrators to access the cloud computing environment. Service level management 884 enables cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 885 enables advance arrangement and procurement of cloud computing resources predicted to be needed in the future by SLAs.
[0089] The workload layer 890 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functionality that may be provided from this layer include a mapping and navigation component 891, a software development and lifecycle management component 892, a virtual classroom instruction delivery component 893, a data analytics processing component 894, a transaction processing component 895, and an efficiency engine 896.
[0090] conclusion The description of various embodiments of the present teachings is presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements over technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0091] While the above describes what is believed to be the best mode and / or example, it is understood that various modifications can be made therein, that the subject matter disclosed herein can be embodied in various forms and examples, and that the present teachings can be applied to numerous applications, only some of which are described herein. It is intended by the appended claims to claim all applications, modifications, and variations that fall within the true scope of the present teachings.
[0092] The components, steps, features, objects, benefits, and advantages discussed herein are merely exemplary. None of them, nor any discussion relating thereto, is intended to limit the scope of protection. While various advantages are discussed herein, it will be understood that not all embodiments necessarily include all advantages. Unless otherwise specified, all measurements, values, ratings, positions, dimensions, sizes, and other specifications set forth herein, including within the scope of the appended claims, are approximate and not exact. They are intended to have a reasonable range consistent with the function to which they relate and with that customary in the art to which they pertain.
[0093] Numerous other embodiments are contemplated, including those having fewer, additional, or different, or combinations of, components, steps, features, objects, benefits, and advantages, including those in which the components and / or steps are arranged and / or ordered differently.
[0094] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0095] These computer-readable program instructions can be provided to a processor of a computer, special purpose computer, or other programmable data processing apparatus to produce a machine, whereby the instructions executing via the processor of the computer or other programmable data processing apparatus create means for performing the functions / acts specified in one or more blocks of the flowchart illustrations and / or block diagrams. These computer-readable program instructions can also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, whereby a computer-readable storage medium having instructions stored thereon includes an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowchart illustrations and / or block diagrams.
[0096] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus, or other device perform the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0097] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing specified logical functions. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, depending on the functionality involved, or the blocks may sometimes be executed in the reverse order. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.
[0098] While the above has been described in connection with exemplary embodiments, it is understood that the term "exemplary" is intended as an example only, not as best or optimal. Except as stated immediately above, nothing stated or illustrated is intended to, or should be construed to, direct or direct the public to any component, step, feature, object, benefit, advantage, or equivalent, whether or not claimed.
[0099] It will be understood that the terms and expressions used herein have the ordinary meanings accepted for such terms and expressions in their corresponding respective fields of inquiry and study, unless a special meaning is otherwise stated herein. Relative terms such as first and second, etc., may be used only to distinguish one entity or act from another and do not necessarily require or imply any actual relationship or order between such entities or acts. The terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that, for example, a process, method, article, or apparatus that includes a list of elements does not necessarily include only those elements but may include other elements not expressly listed or inherent in such process, method, product, or apparatus. An element preceded by "a" or "an" does not, absent further constraints, exclude the presence of additional identical elements in a process, method, article, or apparatus that includes that element.
[0100] This Abstract of the Disclosure is provided to enable the reader to quickly ascertain the nature of the present technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Additionally, in the above Detailed Description, various features may be found grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed embodiments have more features than are expressly recited in each claim. Rather, as the appended claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Accordingly, the appended claims are hereby incorporated into the Detailed Description, with each claim standing on its own as separately claimed subject matter.
Claims
1. 1. A computing device comprising: a processor; a network interface coupled to the processor for enabling communication over a network; a storage device coupled to the processor; an engine stored in the storage device; Equipped with Execution of the engine by the processor causes the computing device to: receiving time series data including a plurality of time series; grouping the time series data into a hierarchy of partitions of related time series, the hierarchy having a plurality of different partition levels; determining the computational capabilities of a computing platform; selecting a partition level from the plurality of different partition levels based on the determined computational capacity; defining one or more modeling tasks, each including a time series group of the plurality of time series based on the selected partitioning level; executing the one or more modeling tasks in parallel on the computing platform by, for each modeling task, training a model using all of the time series in the time series group of the corresponding modeling task; 11. A computing device configured to perform operations including:
2. The computing device of claim 1 , wherein each partition level includes a plurality of time series groups based on the time series data.
3. 3. A computing device according to claim 1 or 2, wherein each partition level comprises a substantially similar number of time series.
4. The computing device of any one of claims 1 to 3, wherein said determining said computing capacity comprises receiving said computing capacity from a reference database.
5. 5. The computing device of claim 1, wherein the determining of the computing capabilities comprises performing an initial approximation by performing partial modeling at the plurality of partition levels on the computing platform.
6. A computing device according to any preceding claim, wherein the selection of the partitioning level is the most efficient selection of the partitioning level that meets an accuracy requirement.
7. The computing device of any one of claims 1 to 5, wherein the selection of the partitioning level is the most accurate selection of the partitioning level that meets efficiency requirements.
8. A computing device according to any one of claims 1 to 7, wherein for each modeling task, cross-time series modeling is performed in parallel at the selected level.
9. The computing device of any one of claims 1 to 8, wherein the grouping of the time series is performed by domain-based grouping and / or semantic model-based grouping.
10. the computing platform includes a plurality of computing nodes; The computing device of any one of claims 1 to 9, wherein said determining of said computational capabilities of a computing platform is performed separately for each node.
11. 1. A computer-readable storage medium tangibly embodying computer-readable program code having computer-readable instructions that, when executed, cause a computing device to perform a method for improving the computational efficiency of a computing platform in processing time-series data, the computer-readable instructions causing the computing device to: receiving the time series data including a plurality of time series; grouping the time series data into a hierarchy of partitions of related time series, the hierarchy having a plurality of different partition levels; determining the computational capabilities of a computing platform; selecting a partition level from the plurality of different partition levels based on the determined computational capacity; defining one or more modeling tasks, each including a time series group of the plurality of time series based on the selected partitioning level; executing the one or more modeling tasks in parallel on the computing platform by, for each modeling task, training a model using all of the time series in the time series group of the corresponding modeling task; 1. A computer-readable storage medium for causing a computer to perform operations including:
12. The computer-readable storage medium of claim 11 , wherein each partition level includes a plurality of time series groups based on the time series data.
13. 13. The computer-readable storage medium of claim 11 or 12, wherein the determining of the computing capacity comprises receiving the computing capacity from a reference database.
14. 14. The computer-readable storage medium of claim 11, wherein the determining of the computing capabilities comprises performing an initial approximation by performing partial modeling at the plurality of partition levels on the computing platform.
15. The computer-readable storage medium of any one of claims 11 to 14, wherein the selection of the partitioning level is the most efficient selection of the partitioning level that meets an accuracy requirement.
16. The computer-readable storage medium of any one of claims 11 to 14, wherein the selection of the partitioning level is the most accurate selection of the partitioning level that meets an efficiency requirement.
17. The computer-readable storage medium of any one of claims 11 to 16, wherein for each modeling task, cross-time series modeling is performed in parallel at the selected level.
18. The computer-readable storage medium of any one of claims 11 to 17, wherein the grouping of the time series is performed by domain-based grouping and / or semantic model-based grouping.
19. the computing platform includes a plurality of computing nodes; The computer-readable storage medium of any one of claims 11 to 18, wherein the determination of the computational capabilities of a computing platform is performed separately for each node.
20. 1. A computer-implemented method comprising: receiving time series data including a plurality of time series; grouping the time series data into a hierarchy of partitions of related time series, the hierarchy having a plurality of different partition levels; determining the computational capabilities of a computing platform; selecting a partition level from the plurality of different partition levels based on the determined computational capacity; defining one or more modeling tasks, each including a time series group of the plurality of time series based on the selected partitioning level; executing the one or more modeling tasks in parallel on the computing platform by, for each modeling task, training a model using all of the time series in the time series group of the corresponding modeling task; 11. A computer-implemented method comprising:
Citation Information
Patent Citations
Selecting forecasting models for time series using state space representations
US10318874B1
Method and system for model fitting to hierarchical time series cluster
US20190050763A1
Dynamic distributed data clustering
US20200004449A1