-- Posted by Carole-Ann
Despite my efforts to simplify the Decision Management picture, especially as it relates to CEP, BRMS and BPM, it seems that the CEP buzzword turned into an omnipotent ruler of the Decision Management world, at least in some discussions...
I have been exchanging a few tweets these past couple of days on this very subject with John Rymer, Mike Gualtieri and a few others. It became eventually clear that 140 characters were not enough...
Is CEP the best solution for predicting future behavior?
That's pretty much what got me started on this Twitter thread... My first reaction was amazement and incredulity. Why would anyone think that????
I am not going to go into the Predictive Modeling basics here. In order to create a predictive model, you need data. This seems to be generally admitted. In order to assemble a good data sample you need to put in place some mechanism to collect this data from your applications. CEP is one of the techniques being used to collect. This is not the only one -- keep in mind that Bill Fair and Earl Isaac came with the brilliant idea of creating risk models in 1956 when they founded FICO and they could do it without CEP ;-)
The goal of modeling is to deploy your predictive models of course. Today Enterprises use a BRMS such as Blaze Advisor to import their models (potentially from PMML -- Predictive Model Markup Language) and use them to score applicants or customers against risk, propensity to purchase or any other dimension you might be interested in. Please note here that they might do it themselves or have their solution provider do it for them transparently. Others implement the models directly into their databases or into the low-level code. One other possibility is to use CEP to deploy those predictive models.
Let me develop a bit those aspects.
CEP and Event Correlation
Complex Event Processing is a technology that receives data input (events) and has an opportunity to do something about it, hopefully really fast. You can squeeze there some logic to correlate events. The exciting part is that the system keeps some memory of the past so you can reason over time "if I received more than X alerts in the past hour...", "when this follows that...", etc.
CEP is one technique, there are other implementations of similar behavior. One could use BPM to do the very same thing. I would be concerned about performance though. When you go down the architecture layers, at the broker or bus layer, performance is much higher.
At FICO, we used our own C or C++ implementations for demanding Telecom systems like Roamex. Call detail records (CDR) come into the system real-time and need to be correlated. The mediation system modifies the events to collate 2 CDRs that start and end at the very same time for the same origin and destination for example. We are talking about huge volumes and extremely high performance needs. We could possibly have used CEP but at the time it was not performant enough.
Anyway, the point is that we should not confuse a usage of technology with one of its implementations.
CEP and Data Collection
I talked about data collection being a critical component of preparing for predictive modeling. Since CEP knows how to make sense of data coming in, CEP can be used to stream the application data into a datawarehouse. It would be an overkill but I can see this taking off if the collection logic becomes more complicated over time. With always increasing volumes, future systems may not want to collect everything and post-process, reduce and clean up the application data.
A similar usage is Business Activity Monitoring (BAM). You need to be able to extract data fast to expose valuable insights to business owners. A BAM system could take advantage of CEP to subscribe to data but it does not make CEP a BAM system.
Again, the point is that you can use CEP or you can use of mechanisms.
CEP and Predictive Models
Predictive modeling is obviously our forte at FICO. We deploy those via various methods: as part of Decision Management Suite (within top-of-the-line Apps such as Falcon for fraud detection or TRIADTM for account management), within credit bureaus (any way they want it) or custom when models are developed with Model Builder. We've seen our custom models going into all sorts of environments over time.
Deploying a model within a CEP system would make sense. Mike cited examples of stock trading monitoring apps. The reason they can be well-suited is that the time-sensitive logic applied at the time the event is received could very well be issuing red flags according to a predefined predictive model. Keep in mind that predictive models are typically a mathematical expression in the end -- not a complex ruleset.
For fraud detection, adaptive models are totally appropriate as the fraudsters keep coming up with new ideas that you want to prevent. Falcon uses neural nets that learn from consortium data as well as adaptive routines that learn yet more rapidly. CEP could theoretically been used but because of the more complex logic to be applied and high performance needs, we have opted for our own BRMS and profiling capabilities.
The point again is that CEP is one of the possible techniques but not the only one. In some instances, it is actually more performant to use another implementation.
Does CEP technology itself predict?
As far as I know it does not. Our Blaze Advisor BRMS can apply predictive models but it is not a predictive technology per se. Model Builder is. I would apply the same logic here.
Could you build an adaptive system using CEP and BAM? Of course. CEP could feed BAM and BAM could potentially update real time the logic within the CEP system. Because CEP is used inside doesn't mean that CEP is the predictive technology.
CEP = Decision Management?
Let's play with logic here...
To prove that A=>B is false, I will prove that (not B) does not => (not A)
A = Decision Management
B = CEP
Sorry I could not resist... Let's put it in simple terms. Can a Decision Management application not involve CEP?
Going with real life examples:
- Falcon: Fraud Detection
- TRIAD: Account Management
- Capstone: Originations...
That was easy of course... But let's focus on one use case in account management a minute. Those big Financial Services institutions run batch processes nightly to assess who should receive a credit line increase, who should be sent to a collection agency, etc. There is no triggering event. The bank just gets ready for the next day so that their call centers, collection teams or marketing department knows what to do with each one of their customers.
No triggering event, no event to process, just data management. Decision Management also covers those aspects that are totally foreign to CEP.
Definition, definition, definition...
We often run into similar confusion at FICO. Because one application or component embeds one technology, it does not mean that the underlying technology is equal to the higher level system. Xpress is not Decision Optimizer because it is embedded in there. Blaze Advisor is not TRIAD.
CEP has value and CEP can be used for Decision Management.
CEP is not Decision Management just because it is a part of it.
Let's not be victims of a buzzword fashion!
I am expecting heated reactions. Let's discuss...