Are you considering using Machine Learning (ML) in your organization but not sure what for nor how? Or maybe you are just getting around the idea of ML and realized that you don’t know enough about it in order to make an informed decision? If so, this blog post is for you.
Disclaimer for techies: sorry guys and gals… I’m not going to get technical here! This post is specially intended for non-technical people. Moreover, you techies might want to pardon me a couple of poetic licenses that I took for the sake of clarity.
In this post I’m going to address some of the questions and topics that first arise when clients start seriously considering using ML for their organizations, based upon our experience here at Marvik, and those things you ought to know before starting a ML project. First we are going to cover some basics about ML and use cases, as well as some important differences between ML projects and “traditional” software projects.
Machine Learning 101
Let’s start with some context and foundational elements. First of all, ML is not a hype anymore. According to Gartner (see figure below) it is just entering the “Trough of Disillusionment” which is the last phase before entering “Slope of Enlightenment”. Considering this chart is from mid-2020 and that the plateau of productivity is meant to be reached in 2 to 5 years, the stage is set for ML to get into the mainstream very soon.
Another angle of this same analysis is that the window of opportunity is still open to get into ML early on, and as this window closes, the more mainstream it will become, meaning that your competitors will be ahead of you.
Now that I (hopefully) got your attention, let’s reflect a little about what ML is all about in the most layperson-view that we can. One of the fundamental characteristics is that ML turns around the way we used to think about algorithms. Simply put, an algorithm is a set of rules that turn inputs into actionable outputs. Therefore the rules are embedded in the algorithm (rules like IF X HAPPENS THEN DO Y). This model performed great for decades, although it had a fundamental limitation that we recently recognized: you had to be able to fully embed all the rules in the algorithm beforehand. That is, the algorithm was pretty stupid and needed to know all the possibilities beforehand and wasn’t able to learn anything new.
And then ML came along… proposing a quite different and bold approach: what if we don’t hardwire the rules into the algorithm but instead let the algorithm deduce them? This is pretty groundbreaking, since it means that the algorithm will be able to actually come up with the rules as an output instead of something hardwired into it. This also means that it will be able to learn, since now the rules can change (because they are an output).
How can this be? Where’s the trick? In the data. It’s all about the data. Now the ML algorithm will take thousands and thousands of, say, human faces, and will internally deduce what rules are necessary in order to determine when a person looks happy or sad. Those rules will be deduced with the help of the carrot and stick metaphor: we must train the ML model with lots of data (human faces in this example) that must be annotated in order to let it know when someone looks happy or sad, so the ML model can start deducing the rules to determine when someone is happy or sad. After this training the model will continue to work autonomously, further learning and improving by itself, which is known as supervised learning.
In case you are wondering why it took so long (decades) to come up with this breakthrough, it’s not that computer scientists were dumb. As I pointed out, the key is in the data, which means first, the availability of lots of data, and second, the ability to process all this data. If we don’t have thousands or even millions of pictures to analyse, the ML models will produce untrustworthy results; or if it took two days to say whether a person is happy or sad because of all the heavy computing, this will probably undermine the chance of ML to help real-world problems and businesses.
So today, thanks to the advancements in data production (eg: IoT, cameras, analytics tools), storage and processing (eg: cloud computing), we are able to implement ML models that consume and process crazy amounts of data in seconds.
Ok now, but what is it good for? How can I use it to improve my business?
Glad you asked! Now let’s see some of the typical problems that we help our clients solve with ML. Before this, just a quick disclaimer: ML can help in very specific problems and situations, so please don’t take this as an exhaustive explanation of use cases:
- Improve a process: organizations are basically a group of people running processes as optimally as they can. Any improvement in a key process will result in a huge business gain. This is the case when working at the operational level helps improve the business as a whole. Be it to reduce the time and/or accuracy of certain key processes or even to leverage unused data that the organization is producing but not sure how to use it, improving a process with ML models is always a good starting point. As an example, we developed a recommendation engine for a client that recommends the best candidate for a job post from a pool of thousands, which greatly reduces the time needed to make a meaningful recommendation.
- Automate manual tasks: Andrew Ng, one of AI’s most respected gurus said that if it takes a person less than one second to do something, then probably that something could be automated with AI. Automating (either fully or partially) was the holy grail of traditional software development for decades. Now this push regains strength since ML models are able to automate tasks that were not possible with traditional algorithms. An example here is a computer vision project we’ve implemented for a retail client that scans the shelves and analyses the share of certain products in the store, replacing the human eye that was previously required.
- Gain competitive advantage: this is the case when we work at the business strategy level instead of at the operational level (as was the case in process improvements). Here, ML enables new business models and differentiators that will allow your business to gain a competitive advantage. As we discussed before, the window of opportunity is still open. As an example of this type of solution, we’ve helped an education firm gain a competitive edge by generating videos in multiple languages at a near zero cost, a feature that is unique to (therefore helps differentiate) our client within its segment.
These were typical use cases that we see with several of our clients at Marvik, but as noted, it shall not be taken as all the possible ways in which ML can help your business.
Furthermore, in many cases our clients don’t actually know how ML can (or cannot) improve their business. And that’s a perfectly valid question, since it’s not you that have to know how (if at all) ML can be of help. In these situations, we propose a product discovery phase in which we go deep into your business, pains and gains in order to learn how you could leverage ML to your advantage.
Some important considerations on ML
So now that you know what ML is all about and how it can help your business, let’s cover some important considerations to keep in mind before starting your first ML project:
- Data: as we saw before, data is probably the most important thing to keep in mind when considering a ML project. Be it the availability of data or the need to annotate it (eg: to determine whether the person in the picture is happy or sad, and doing this thousands of times!) data is definitely an important consideration. In some cases data annotation can also be performed by a ML model (it’s kind of like applying ML before applying ML) but sometimes manual work is the best option, so focusing on the data is one of the first things to do.
- Uncertainty: in some projects we can’t know beforehand if we will be able to come up with the accuracy and time that our client would like. This could happen since we might be looking for a pattern that doesn’t exist in our client’s data, or it might be the case that there’s not enough data to look for patterns in it.
- Humans: ML is not always about replacing people. In many cases it’s just a fenomenal tool to enhance what us humans do, taking all the repetitive work and leaving to the (human) experts just those cases where they are actually needed. This can take the form for example of automating 80% of the tasks that a skilled worker does, so he or she can focus on the other 20% to really add value, and being able to process more of those tasks per unit of time (since 80% is being taken care by the ML model).
- Agility: thankfully ML didn’t change all traditional software rules. Agile software development is fortunately live and well within the ML realm. Being able to come up with fast prototypes to validate/refute hypotheses and business questions is critical, as already introduced. Sometimes we suggest our clients to start with something small and test the waters (either a Minimum Viable Product or a Proof Of Concept), learn from that experience and if suitable, continue building the product. This is especially true (although not exclusive) when introducing ML for gaining a competitive advantage for your business, since time (i.e. time-to-market) is of the essence.
These considerations are commonly called “DUHA” and you can find plenty of information on the internet. Not really. I’ve just made up this term. They say humor is a good tool to keep your audience engaged right?
Some differences between ML and traditional software development
Assuming you have a basic understanding of traditional software development, here are some important differences between that and ML development. By the way… you can use these as a means of judging when someone from the IT industry tries to sell you something about ML (you’re welcome):
- Data: yes… yet again.. data! If you don’t spend quite some time talking about data on the first conversation about ML, you are probably not heading in the right direction.
- Consultants: consultants (including developers) from the ML world usually have different profiles than regular software consultants and developers. They not only have to know about the discipline (e.g. about different ML architectures, their pros and cons, how to implement, train and deploy them) but also need to understand business goals and objectives; they must be able to bridge the gap between business needs and software alternatives, and working closely with the client to accurately measure these alternatives and the impact they have on the business.
- Resources: in traditional software development the majority of the computing resources are used after the product is put into production. In ML this is usually the opposite: we need more computing power and resources in order to train the models and not quite as much after the models are deployed into production.
- Lifecycle: data is embedded into the system’s lifecycle. You usually train with data you gathered in the past but sometimes users change their behavior and your ML model needs to be constantly learning from that. Think of the user’s behavior before and after COVID and how it accelerated ecommerce trends. The new hype word that takes this into account for development is MLOps and you can read more about it here.
No, no acronym joke here, I hate to repeat myself.
Some final thoughts
Yes, we are getting to the end of this post, so I hope you now understand better this brave new world of ML and AI. Particularly that ML is no longer a hype but a very real alternative to almost all organizations and industries. Also that ML is indeed a different animal compared to traditional software development (and hopefully you now understand why this is) and that the window is still open, but not for long, so if you don’t want to be running behind your competitors, start now, at least learning how ML could improve your business and maybe putting aside a small budget to run some prototypes and learn how to move forward confidently in this new era. Oh… and data… don’t forget all we talked about it!