CEP a Predictive Modeling facility? Myth!
-- 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...


Hi Carole-Ann. I actually agree with much of what you are saying there. Event processing has a role in decison management, and clearly "event processing" it is not equivalent to "decision management" as there are other technologies like: BRMS and various data related analytics. In some cases one of the technologies is enough, and in other cases, some combination of these technologies is required.
Posted by: Opher Etzion | September 03, 2009 at 12:38 PM
My thoughts here: http://jtonedm.com/2009/09/02/cep-event-correlation-decision-management/
.. and my contribution to the twitter discussion is at http://www.twitter.com/jamet123
JT
Posted by: James Taylor | September 03, 2009 at 03:01 PM