Welcome to the 38th edition of It Depends. Hope y’all are safe. I know NYC is back and all that, but here in India we are just starting the long road to recovery. So if you are reading this in India or any other places where things are not back to normal yet, please get your vaccine, keep your mask on, and be kind to your teams.
This newsletter just hit the 1600 subscriber mark (the podcast launched last week has 24 followers)! My heartfelt thanks to each one of you. Please keep offering your critique and spreading the word.
You can read this article directly on the website or listen to it on Spotify.
I was recently reading an article by Neal Lathia about how using machine learning is not always necessarily better than using rule-based systems. There are pros and cons to taking either approach, and you should take the one which suits the problem complexity, expected execution speed, and various other factors the best.
I am working on a project which I and my team believe is a great fit for applying ML techniques. However, we have also achieved some measure of success in achieving our goals using a rule-based system. Without sharing the details, I can say that while we have a long way to go, one thing that is increasingly clear is that rule-based and AI/ML-based approaches to building systems are not mutually exclusive. There are various ways in which these can be applied together effectively. I want to discuss some of these ideas.
The thing to remember is that every system is made up of many parts and each of them serves a different function. Most parts are simple and require little to no intelligence in the machine learning sense. So it only makes sense to slice the problem and the overall system into smaller parts and apply the technique most suited to it. The parts that require inferences made from lots of data can be built using machine learning techniques, and other parts can be built using rules or plain old application engineering.
In fact, acknowledging that these two types of parts exist in a system can have a dramatic impact on the architecture and technology choices being made.
Rule System output as ML feature
Machine Learning models work on sets of inputs called features. Features might already exist as first-class artifacts in some data store, or as is often the case, they are attributes derived from multiple other data points of the system. These derivations are often built using simple rules or heuristics and then consumed by ML models. Both steps of the process operate independently but play an important role in the final outcome.
Think of this as lower-level staff processing raw information into reports that can be consumed by upper management to make complex decisions.
ML Model output as input to rule engine
The inverse of the above process is also common. We can have ML models use various features to come to a conclusion which is then used as one of the inputs to a rule-based system. This again works by splicing a complicated into two parts – the more intelligent/complex part uses ML to process complex data patterns. Once the data is reduced to a simple conclusion, the rule-based system can jump in to make further, simpler decisions.
Think of this as upper management passing down the results of complex strategic analysis where the lower layer can make comparatively simpler decisions about how to execute things.
Rules as elements of AI
This last pattern of combining rule and AI/ML is especially fascinating for me because it blurs the lines of what is simple and what is complex.
A whole class of AI-based systems called Learning Classifier Systems (probably others too, I’m no expert) use rules as the building blocks of complex evolutionary hierarchies where rules mutate and evolve in such a way that we finally end up with rules that best fit the given application environment.
This is a complex way of applying either model but it shows that there is sufficient common ground between them.
Think of this as a brainstorming session with all levels of the company (autonomous team? 5 person startup?) where simple ideas are churned around till strategies and execution plans emerge together.
Since this is a real-life problem for me at work, I want to hear what you think about it and if you have used such a combination with good results. Drop a note with your experiences.
From the internet
I discovered systems thinking gold last week in the form of lectures and interviews by Dr.Russell Ackoff. This lecture talks about reductionist and expansionist modes of thinking in a way that I had never encountered. But please go ahead and listen to everything by this genius.
Evan Bottcher on what a platform and isn’t. This vibes strongly with a lot of my thoughts on platform systems.
Mark Greville shares his perspective of how technology architects make decisions.
That’s all for this week folks. Happy Weekend!