The present invention relates to the electrical, electronic and computer arts, and, more particularly, to demand forecasting and the like.
Demand forecasting is the process of determining what products or services are needed in the future, in what quantities and at what time. It is quite important for effective planning of resources. For example, a contact center needs to forecast the call volume on an hourly basis for effective scheduling of agents.
U.S. Pat. No. 7,080,026 of Singh et al. discloses systems and methods for demand forecasting that enable multiple-scenario comparisons and analyses by letting users create forecasts from multiple history streams (for example, shipments data, point-of-sale data, customer order data, return data, etc.) with various alternative forecast algorithm theories. The multiple model framework of Singh et al. enables users to compare statistical algorithms paired with various history streams (collectively referred to as “models”) so as to run various simulations and evaluate which model will provide the best forecast for a particular product in a given market. Once the user has decided upon which model it will use, it can publish forecast information provided by that model for use by its organization (such as by a downstream supply planning program). Embodiments provide a system and method whereby appropriate demand responses can be dynamically forecasted whenever given events occur, such as when a competitor lowers the price on a particular product (such as for a promotion), or when the user's company is launching new sales and marketing campaigns. Preferred embodiments use an automatic tuning feature to assist users in determining optimal parameter settings for a given forecasting algorithm to produce the best possible forecasting model.
Principles of the invention provide techniques to enhance forecasting systems to take into account the effects of external events in the context of resource planning. In one aspect, an exemplary method for forecasting (which can be computer-implemented) includes the steps of obtaining as input at least a first future external event; and predicting at least one future effect of the at least one future external event. The at least first future external event is similar to at least a first past external event. Also included is forecasting future utilization of at least one tangible resource by superimposing events-normalized forecasted data and the at least one predicted future effect of the at least one future event similar to the at least first past external event.
One or more embodiments of the invention or elements thereof can be implemented in the form of a computer product including a tangible computer readable storage medium with computer usable program code for performing the method steps indicated. Furthermore, one or more embodiments of the invention or elements thereof can be implemented in the form of an apparatus including a memory and at least one processor that is coupled to the memory and operative to perform exemplary method steps. Yet further, in another aspect, one or more embodiments of the invention or elements thereof can be implemented in the form of means for carrying out one or more of the method steps described herein; the means can include (i) hardware module(s), (ii) software module(s), or (ii) a combination of hardware and software modules; any of (i)-(iii) implement the specific algorithms set forth herein.
One or more embodiments of the invention may offer one or more of the following technical benefits:
These and other features, aspects and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
Our analysis of historical call data revealed several interesting patterns, such as sporadic increases in call volume, zero or almost no calls on certain days, and so on. A further analysis showed that there is a strong correlation between sporadic increase in call volumes and new product releases, and similar correlation between football (i.e., soccer) matches in Europe and zero or no calls during those periods. One or more embodiments of the invention are able to effectively address these kinds of phenomena, unlike out-of-the-box forecasting approaches.
The pattern of demand seen by service providers that have a significant fraction of their volume realized by individual customers is very different from those that deal only with large organizations with long-term contracts. Examples of such service providers are contact centers, various rental agencies, the retail sector, and the like. Typically, their demand is impacted by various external events such as holiday season, sports season, weather seasons, disastrous events, political events, and so on. One or more embodiments of the invention account for the effects of external events during demand forecasting.
Traditionally, time series modeling, analysis and forecasting methods assume that all the information is contained in the observed sample points. Typically, a generative function is derived from such sample points. This is illustrated in
One or more instances of the invention advantageously provide, for example, savings through improved operational efficiencies and better resource planning, and/or can be tailored to provide per-item recommendations to manage inventories for retail stores in the presence of events such as holidays and back-to-school.
An exemplary apparatus, according to an aspect of the invention, enhances forecasting systems to take into account the effects of external events in the context of resource planning. In particular, with reference to
From the observed effects of past-events and those of newly identified events, the system learns, for each type of event T, a parameterized function in the form f(T), which captures the “typical” effect of events of type T. The system decomposes the historical data into two parts: those that are induced as the effects of the past-events (known and identified) and the remaining data capturing the evolution of the time-series in the absence of events. The system constructs the forecast by superimposing the forecast of the time-series analysis with the typical effects corresponding to the events labeled in the future.
Aspects of the invention thus provide an apparatus 204 to enhance forecasting systems (such as 202) to take into account the effects of external events in the context of resource planning. One input is the historical data. Furthermore, one or more embodiments implement automatic and/or semi-automatic event detection from the historical data; for example, using an events detector 310 to be discussed further below. In addition, one or more instances employ an events learner 312, to be discussed further below, for learning of representative event models. Apparatus 204 supplies the normalized historical data to the forecasting system 202, takes the forecasted normalized data from the forecasting system 202, and reconstructs the forecasted data by superimposing the future events on the normalized forecasted data supplied by the forecasting system 202. In one or more embodiments, an events re-constructor 314, to be discussed below, is employed. The event-augmented forecasted data is output from apparatus 204 as the forecast data.
Note block 202 is referred to herein equivalently as a forecasting system and as a forecasting engine. The forecasting system or engine 202 can be implemented, for example, using known systems such as autoregressive models. There are many statistical forecasting systems based on AR (auto-regression), ARMA (auto-regression moving average), ARIMA (auto-regression integrated moving average) models. There are also forecasting models based on neural networks and other techniques in the literature. Given the teachings herein, the skilled artisan will be able to adapt one or more known techniques to implement aspects of the invention.
Note that aspects of the invention contemplate both the system 204 per se and the system 204 together with the forecasting engine 202.
Events learner 312 and events re-constructor 314 also interact with the user via user interface 320; re-constructor 314 also interacts with database 318 via query server 316. In addition to such interaction with the user and the database 318, re-constructor 318 also takes learned events as inputs from events learner 312 (and as noted above, receives events-normalized forecasted data from engine 202), and outputs the forecasted data which, as noted, is obtained by superimposing the future events on the normalized forecasted data supplied by the engine 202. In one or more embodiments, future events are derived from the stored annotated event models and the physical future events (M) as supplied by the user.
With reference to
Filter 430 and event modeler 434 provide input to event marker 432, which communicates the detected events to the user interface 320 for optionally obtaining user input for the purpose of further refinement of the detected regions, as indicated at feedback marker 436. In match computation block 438, the automatically detected regions are compared with any user input. The necessary parameter(s) (for example, window size) for detecting the regions can be refined to enhance functionality of filter 430 in filtering the historical data. Thus, control block 440 can receive input from match computation block 438, and can interact with window selector 444 to obtaining the optimal window size, by comparing user feedback and the automatically detected regions; selector 444 then updates filter 430. In addition, residue computation block 442 further models the residue (the difference between user feedback and the automatically detected regions) using semi-parametric models; its output may be added to that of filter 430 which sum is then taken as the input to event modeler 434.
After the time-series is filtered, the semi-parametric models are fitted on the filtered output to model the events. The semi-parametric curve is then matched with the original filtered output. The first filtered output is obtained with a certain larger window size. The window size is then reduced to capture finer level details. The finer level output is then compared with a first semi-parametric model, and the residue is further modeled by the same procedure (semi-parametric modeling). At every step, a user can provide feedback about his or her satisfaction and the residue computation stops when the user agrees. In this process, certain events with very short durations may not be captured automatically because that may result in noisy models. In such a scenario, the user can manually add those relevant regions and those specific regions are then modeled further by the apparatus.
The event models are output from match computation block 438 and stored in the events database 318 as well as being sent to the events learner 312. In event normalization block 446, the historical data is normalized with respect to the modeled events, and such normalized data is then sent to the forecasting engine 202.
Events detector 310 can be configured with a variety of capabilities. For example, outlier detection capability may be provided in one or more embodiments. Detector 310 may assume and/or learn a distribution of “normal behavior.” Outliers are detected based on the assumption that the underlying generative model of the distribution is not perturbed. The presence of events can change the underlying model itself. A Survey of Outlier Detection Methodology, Hodge and Austin, Artificial Intelligence Review, 2004 is a survey that points to some existing outlier detection algorithms. The outlier detection methods can be used as a special instantiation of detector 310.
In another example, change point detection capability may be provided in detector 310, in one or more embodiments. Such capability detects points of change in time series, and can be used to segment the series into homogenous sub-segments. Each sub-segment can be further analyzed to learn the effect of external events. Detection of Abrupt Change: Theory and Application, Michele Basseville and Igor V. Nikiforov, ISBN 0-13-126780-9, previously published by Prentice Hall, Inc. points to some existing change point detection algorithms. The change point detection methods can be used as a special instantiation of detector 310.
In yet another example, concept drift capability may be provided in detector 310, in one or more embodiments. Such capability detects changes in underlying data distribution, and typically assumes that the signal is short term stationary, and uses some form of windowing mechanism. Given the right window size, the method can be used to detect parts of a signal which get impacted by external events. The Problem of Concept Drift: Definitions and Related Work, Alexey Tsymbal, Technical Report# TCD-CS 2004-15, Computer Science Department, Trinity College, Dublin points to some existing concept of drift detection algorithms. The rift detection methods can be used as a special instantiation of detector 310.
In yet another example, unusual and/or rare pattern detection capability may be provided in detector 310, in one or more embodiments. Such capability uses a sliding window over the whole signal and finds the sub-sequence which is farthest away from all sub-sequences. This type of capability may not be suitable for all embodiments of the invention, inasmuch as it assumes a stationary signal, and also assumes that after an “unusual” sub-sequence, the signal starts to behave similarly as it was before the occurrence of the sub-sequence. HOT SAX: Finding most unusual time series subsequence: Algorithms and Applications, Keogh et al. ICDM 2005. points to some existing shape/pattern detection algorithms. The shape and/or pattern detection methods can be used as a special instantiation of detector 310.
With reference to
With reference to
In one or more embodiments of the invention, region detection is advantageous. As noted, events are deterministic and can change the characteristics of the underlying generative model. Events can be viewed as phenomena causing different regions of activities in the time-series. Events can, in at least some instances, be detected by identifying different regions in the time-series. For example, one possibility is to segment the time-series such that each segment is homogeneous in the sense that each segment has one invariant generative model.
When events detector 310 carries out region detection, it identifies different regions of activities. For example, median filtering (popular in the image processing domain) can be applied to time-series, by the skilled artisan, given the teachings herein.
With reference to
where:
g(t) is the underlying event,
α is a constant representing the baseline activity,
β is a constant to represent the linear trend, and
hi are the scaling factors of the kernel events.
The observed time-series (z(t)) can be represented as:
z(t)=f(x(t−1), x(t−2), . . . , x(t−w);Q)*g(t) (2)
As shown in
Additional comments will now be presented re modeling with events detector 310. Once the output of median filtering is modeled by the kernel events, each region modeled by a piecewise linear event can be identified. A user can be queried about the specific event. The parameters a,b,c,d represent the duration and nature of the event. The parameter h represents the severity of the event. As in the previous example, it may not be possible to represent a single event by one kernel event model; rather it can be represented by cascading more than one kernel event model. From the feedback of the user, the parameter values a,b,c,d,h or the set of parameter values for a specific event can be estimated. If the only instance of a particular event is available in the history, then these parameters define the nature; if more than one instance of a particular event is available then the average or mean characteristics of these parameters can approximate that particular event.
An automatic event modeling process can be initiated by estimating the parameters with respect to minimizing the discrepancy between the observed median and fitted model. Mathematically, let y(t) represent the observed median. The task is to estimate the parameters by minimizing the functional:
This is a complex, non-convex optimization problem, to which existing deterministic optimization algorithms cannot be applied. Appropriate approaches include meta-heuristics, randomized search (simulated annealing, evolutionary algorithms) and the like. Standard solvers exist in the market and/or in open source, which, given the teachings herein, can be used to solve such systems to implement aspects of the invention.
Alpha (α), in one or more embodiments, is determined by using support vector regression; and beta (β) is assumed to be zero; that is, there is no trend. Once alpha is determined, each event is modeled locally using stochastic optimization. The entire process of determining alpha, beta, and the event parameters can be found together by using stochastic optimization.
Additional comments will now be presented re normalization with events detector 310. Once the events are modeled, the observable time-series can be normalized with respect to the modeled events such that in the normalized outcome the modeled events are not present. In the data, assume for illustrative purposes that there is no inherent trend, that is, beta (β)=0, such that the normalized observable can be obtained as:
Modeled events at window=30 are normalized, and the outcome shown in
Additional comments will now be presented re events learner 312. In a non-limiting example, learner 312 can be implemented as a table look-up. Such an approach may be particularly advantageous, for example, where there is limited data availability. In at least some cases, each physical event is associated with only one modeled event.
Additional comments will now be presented re events re-constructor 314. The future events are superimposed on the forecasted normalized data, subject to the fact that the future event models are estimated from the past history. The events are superimposed subject to the mathematical form:
It should be noted that unlike prior art general demand forecasting techniques, one or more embodiments of the invention consider the effect of external events. Aspects of the invention provide automatic detection of different time spans in the history where some possible events have occurred, and associate these possible events with the actual physical events by querying the user. Additional aspects include learning the possible event effects, that is, if some physical event had happened (say a long vacation or lowering the price by a competitor) then how the event (in the mathematical form) will look. This information can be used for the future forecast where a user provides input that a physical event has happened. In addition, aspects of the invention also include the utility of identifying certain events in the history manually which can play a causal role in changing the forecast. In short, one or more embodiments of the invention require much less knowledge from the user about the changeability of the forecasted data; rather, a more generic specification of the physical event is employed, which a user can flexibly change to make different kinds of forecasts. Further, in some instances, the user is relieved of providing all possible physical events that happened in the past; the user provides information about physical events in the past only when queried by the system.
Reference should now be had to flow charts 1800 and 1900 of
In an optional but preferred approach, the method includes step 1804 of obtaining historical time series data indicative of past utilization of at least one tangible resource, step 1808 of identifying at least one effect of the at least first past external event in the historical time series data, and step 1812 of developing a first representative event model for the at least first past external event (for example, with events detector 310). The first representative event model captures at least one typical effect of events similar to the at least first past external event, and the predicting of the at least one future effect in step 1818 is carried out with the first representative event model. A further optional step 1814 includes decomposing the historical time series data into (i) a first part induced as the at least one typical effect of the at least first past external event identified in the identifying step 1808 and (ii) a second part capturing evolution of the time series absent the at least first past external event. The second part includes events-normalized historical data. This can also be carried out with detector 310. Yet a further optional step 1816 includes obtaining, from a forecasting engine 202, based on the events-normalized historical data of step 1814, events-normalized forecasted data. This can be carried out with reconstructor 314.
In at least some embodiments, a further step 1822 includes configuring the at least one tangible resource in accordance with the forecast future utilization. This could be carried out, for example, by a human manager or operator, and could be facilitated by suitable display of the forecast future utilization.
In some cases, step 1806 includes obtaining user labeling of the at least first past external event, such as with interface 320, and the identifying of the at least one effect of the at least first past external event in step 1808 is carried out by detector 310 based on the user labeling of the at least first past external event. Furthermore, in some cases step 1806 includes obtaining user labeling of the at least first future external event similar to the at least first past external event; for example, using user interface 320 interacting with M portion of block 314.
Additional optional steps include steps 1810 and 1812, which can also be carried out with detector 310. Step 1810 includes detecting at least a second past external event in the historical time series data. Step 1806 can include, in such case, obtaining user labeling for the at least second past external event. Step 1812 includes developing a second representative event model for the at least second past external event. The second representative event model captures at least one typical effect of events similar to the at least second past external event. In such case, step 1806 can also include obtaining input indicative of at least a second future external event similar to the at least second past external event; and step 1818 can include predicting, with the second representative event model, at least one future effect of the at least second future external event similar to the at least second past external event. In such cases, step 1814 includes decomposing the historical time series data into (i) the first part, the first part being induced as the at least one typical effect of the at least first past external event and the at least one typical effect of the at least second past external event and (ii) the second part, the second part capturing evolution of the time series absent the at least first past external event and the at least second past external event. Furthermore, in such instances, step 1820 includes superimposing the events-normalized forecasted data, the predicted at least one future effect of the at least first future event similar to the at least first past external event, and the at least one future effect of the at least second future external event similar to the at least second past external event.
In one or more embodiments, steps 1810 and 1812 can be carried out with event detector 310, and can include carrying out subroutine 1900 in
Step 1906 can be carried out, for example, with equation (1). Step 1814 can be carried out, for example, with equation (4).
In some instances, step 1812 of developing and storing models can include using events learner 312 to update an event database 318 to reflect, for example, the second representative event model.
This paragraph addresses various aspects that can be implemented, for example, with event re-constructor 314. In at least some instances, step 1806 can be repeated to obtain input indicative of a plurality of additional future external events. Furthermore, step 1818 can be repeated as follows: for those of the plurality of additional future external events similar to the at least first past external event, predict, with the first representative event model, at least one future effect of each of the plurality of additional future external events similar to the at least first past external event. For those of the plurality of additional future external events that are not similar to the at least first past external event, repeat step 1812 to develop at least one additional representative event model. The at least one additional representative event model captures at least one typical effect of events similar to the at least one of the plurality of additional future external events not similar to the at least first past external event. Repeat step 1818 to predict, with the at least one additional representative event model, at least one future effect for the at least one of the plurality of additional future external events not similar to the at least first past external event. As noted, a model can be developed for a future physical event not in the events database using, for example, a user interface such as a graphical user interface (GUI).
A variety of techniques, utilizing dedicated hardware, general purpose processors, firmware, software, or a combination of the foregoing may be employed to implement the present invention or components thereof. One or more embodiments of the invention, or elements thereof, can be implemented in the form of a computer product including a computer usable medium with computer usable program code for performing the method steps indicated. Furthermore, one or more embodiments of the invention, or elements thereof, can be implemented in the form of an apparatus including a memory and at least one processor that is coupled to the memory and operative to perform exemplary method steps.
One or more embodiments can make use of software running on a general purpose computer or workstation. With reference to
Accordingly, computer software including instructions or code for performing the methodologies of the invention, as described herein, may be stored in one or more of the associated memory devices (for example, ROM, fixed or removable memory) and, when ready to be utilized, loaded in part or in whole (for example, into RAM) and executed by a CPU. Such software could include, but is not limited to, firmware, resident software, microcode, and the like.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium (for example, media 2018) providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer usable or computer readable medium can be any apparatus for use by or in connection with the instruction execution system, apparatus, or device. The medium can store program code to execute one or more method steps set forth herein.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a tangible computer-readable storage medium include a semiconductor or solid-state memory (for example memory 2004), magnetic tape, a removable computer diskette (for example media 2018), a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor 2002 coupled directly or indirectly to memory elements 2004 through a system bus 2010. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards 2008, displays 2006, pointing devices, and the like) can be coupled to the system either directly (such as via bus 2010) or through intervening I/O controllers (omitted for clarity).
Network adapters such as network interface 2014 may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Embodiments of the invention have been described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. 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 program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a tangible computer-readable storage medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart 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 invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Furthermore, it should be noted that any of the methods described herein can include an additional step of providing a system comprising distinct software modules embodied on a tangible computer readable storage medium; the modules can include any or all of the components shown in
In any case, it should be understood that the components illustrated herein may be implemented in various forms of hardware, software, or combinations thereof; for example, application specific integrated circuit(s) (ASICS), functional circuitry, one or more appropriately programmed general purpose digital computers with associated memory, and the like. Given the teachings of the invention provided herein, one of ordinary skill in the related art will be able to contemplate other implementations of the components of the invention.
It will be appreciated and should be understood that the exemplary embodiments of the invention described above can be implemented in a number of different fashions. Given the teachings of the invention provided herein, one of ordinary skill in the related art will be able to contemplate other implementations of the invention. Indeed, although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention.