In my previous post we looked at alerting staff members about certain event sequence patterns indicative of a potential negative business impact and providing them with an opportunity to act to avert the negative result. The specific example involved a bank identifying a sequence of events that presage customer attrition to enable customer support personnel to make offers to retain the customer.
Actually, we don’t have to limit the challenge to anticipating negative events. Rather, let’s look at it more abstractly. Here are the basic constraints:
- There is a specific outcome that is the culmination of some sequence of some events (i.e., some recognized desired or undesired result as a byproduct of a set of events).
- A minimal subset of the events are necessary for the outcome (that is, some of the events have to happen, but not necessarily all of them).
- The transactions are not required to be executed in a particular order.
The challenge becomes twofold:
1) How can you figure out that minimal set of events?
2) How can you monitor for that specific set of events among a myriad of other events that take place simultaneously?
While both of these facets of the challenge are necessary, they are actually very different from the algorithmic perspective. The first is an analytics problem, depending on an analysis of many (hundreds of thousands, millions or even greater orders of magnitude) transactions to determine some sequences of events that precede the specific outcome. The second involves the ability to monitor a huge number of simultaneous events to determine when a relevant collection of events has taken place. Both are complex problems involving massive amounts of data, and we will delve into some details in the next two entries.