2021-12-08 12:44:45 +01:00
|
|
|
It is widely known that most Machine Learning projects never deliver anything
|
|
|
|
|
to production. Simplifying the message, they fail. There might be useful
|
2021-12-08 20:11:53 +01:00
|
|
|
by-products of running the project, but if it is never turned into a service
|
2021-12-08 12:44:45 +01:00
|
|
|
that is used by people or other pieces of software, it failed to deliver.
|
|
|
|
|
|
|
|
|
|
There are many reasons that can make Machine Learning projects fail, and
|
|
|
|
|
discussing all of them is not what I want to do here. Instead, I want to focus
|
|
|
|
|
on a specific one which bothers me a lot: the fact that business profiles never
|
|
|
|
|
own loss functions.
|
|
|
|
|
|
|
|
|
|
## The business case
|
|
|
|
|
|
|
|
|
|
Let me take this step by step. When you start a Machine Learning project (which
|
|
|
|
|
in my mind, covers the scope of designing, implementing and deploying a Machine
|
|
|
|
|
Learning algorithm), you should write a business case. It might be a more or
|
|
|
|
|
less detailed one. The utility of the predictions will sometimes be naturally
|
|
|
|
|
easy to translate into financial results, and sometimes you will have to get
|
|
|
|
|
more creative to link the two worlds. But in any case, not doing the business
|
2021-12-08 20:11:53 +01:00
|
|
|
case exercise means you are commiting to a line of work without thinking first
|
|
|
|
|
if it makes any sense to pursuit it. In my humble opinion, not a wise choice.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
At some point, while you find yourself drafting the business case, you will
|
|
|
|
|
have to deal with an inevitable fact: the algorithm will make errors. And
|
|
|
|
|
these errors will have an impact on business results. This means, that, as part
|
|
|
|
|
of the business case, you will have to define how do different levels of
|
|
|
|
|
accuracy affect business results.
|
|
|
|
|
|
|
|
|
|
## An example
|
|
|
|
|
|
|
|
|
|
Let's discuss an example of this to make things clearer. You are drafting the
|
2021-12-08 20:11:53 +01:00
|
|
|
business case for a project in a motorcycle manufacturing company, let's call
|
|
|
|
|
it Hamaya. Repair shops affiliated with Hamaya will attend customers that have
|
|
|
|
|
Hamaya motorcycles under warranty. When the shop considers that the needed
|
|
|
|
|
repair is covered by the warranty, they will post a request to Hamaya to obtain
|
|
|
|
|
the required materials. Hamaya must judge the request and accept it if all
|
|
|
|
|
looks good or reject it if it considers the repair should not be covered by the
|
|
|
|
|
warranty or the material request does not fit with the repair that needs to be
|
|
|
|
|
done (the repair shope is trying to sneak some extra materials in the request).
|
|
|
|
|
Currently, all claims are reviewed manually by a team of customer care
|
|
|
|
|
associates at Hamaya. The goal of the project is to deliver a classification
|
|
|
|
|
algorithm that will automatically classify requests as either accepted or
|
|
|
|
|
"needs review", which will make the request enter the already in place process
|
|
|
|
|
where the customer care associate will review it.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
Again, we know that whatever algorithm we come up with, it will make mistakes.
|
|
|
|
|
What do the mistakes look like in this case?
|
|
|
|
|
|
|
|
|
|
| The request is ... | The algorithm labels it as ... | Business outcome |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Valid | Accepted | Good job. Human effort saved, everyone is happy. |
|
|
|
|
|
| Invalid | Accepted | Hamaya has given away materials it should not have. The cost of these materials has been lost. |
|
|
|
|
|
| Whatever | Needs Review | Valuable customer care time will need to be spent on the case. |
|
|
|
|
|
|
2021-12-08 20:11:53 +01:00
|
|
|
So now we know that we can screw up in two ways: by giving away materials when
|
|
|
|
|
we should not or by consuming time for the customer care team for cases that
|
|
|
|
|
could have been marked accepted by the classification algorithm.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
## The choice
|
|
|
|
|
|
|
|
|
|
If you are a data scientist, I am sure you already knew that some degree of
|
|
|
|
|
error in a Machine Learning algorithm is inevitable in almost all cases. You
|
|
|
|
|
probably also know that you, although errors are inevitable, you have several
|
|
|
|
|
levers and knobs in your toolkit to modify _what_ errors your algorithm will
|
|
|
|
|
make. Going back to the Hamaya example: you can tune how conservative will the
|
|
|
|
|
algorithm be, as in, where is the boundary to decide that a case is too unclear
|
|
|
|
|
to mark it accepted and instead send it to the customer care team.
|
|
|
|
|
|
|
|
|
|
And here is where the loss function comes in. As a data scientist, you have the
|
|
|
|
|
power of adjusting the loss function you are training on to influence what kind
|
|
|
|
|
of mistakes will be punished harder, therefore determining _what_ kind of
|
|
|
|
|
mistakes will take place in production.
|
|
|
|
|
|
|
|
|
|
So you just go and adjust that with your best judgement, right? Stop right here
|
|
|
|
|
and read the title of this post again.
|
|
|
|
|
|
|
|
|
|
Now that you are back here, repeat with me: _I do not own the loss function._
|
|
|
|
|
|
|
|
|
|
Who does? Business. Who is business? I can't tell exactly, because it looks
|
|
|
|
|
different in every project and organization. But most probably, it is not you,
|
|
|
|
|
the data scientist. The business person that should be making the call on how
|
|
|
|
|
the loss function behaves usually is:
|
|
|
|
|
- A non-technical person.
|
|
|
|
|
- Either owns or reports to the owner of the P&L that will be most impacted by
|
|
|
|
|
the deployment of this algorithm.
|
|
|
|
|
- Should be pretty enthusiastic about putting this algorithm in production and
|
|
|
|
|
using it.
|
|
|
|
|
|
|
|
|
|
In the hypothetical Hamaya case, some role like director of customer care would
|
|
|
|
|
be a good fit for this description.
|
|
|
|
|
|
|
|
|
|
Now, look for this person in your project. If you can't find it, there is
|
2021-12-08 20:11:53 +01:00
|
|
|
something smelly about your project, and you should probably take some time to
|
|
|
|
|
reflect on what the hell is going on and fix some stuff.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
Once you find it, you need to make a nice ritual to take the ownership of the
|
|
|
|
|
design of the loss function and transfer it to the business person. This means:
|
|
|
|
|
- You help them understand that the algorithm you will develop will have
|
|
|
|
|
errors, that this is a normal thing in the industry and not a result of you
|
|
|
|
|
being incompetent.
|
|
|
|
|
- You help them understand the trade-offs between the different errors. They
|
|
|
|
|
might even know the business impact of the errors better than you since,
|
|
|
|
|
after all, they are the domain experts. But help them structure things
|
|
|
|
|
clearly anyway.
|
|
|
|
|
- You show them what kind of power you have over which errors are made. If you
|
|
|
|
|
have some baseline or prototype model, this is a great moment to train it
|
|
|
|
|
with some different loss functions and show how it modifies the kind of
|
|
|
|
|
errors taking place.
|
|
|
|
|
- You make it crystal clear that you need their decision on how to tune the
|
|
|
|
|
loss function. Write things down, help them structure their ideas, but at the
|
|
|
|
|
end of the day ensure it is them, not you, deciding on this matter.
|
|
|
|
|
- You receive the decision from the business. The level of detail can vary a
|
|
|
|
|
lot, ranging from simple but clear statements ("We want the model to never
|
|
|
|
|
classify an invalid request as accepted. We don't mind sending more work to
|
|
|
|
|
the customer care team.") to quantified, detailed policies. But they decided
|
2021-12-08 20:11:53 +01:00
|
|
|
it, not you.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
## Why
|
|
|
|
|
|
|
|
|
|
Because they know better than you. Because all of this is truly a business
|
|
|
|
|
decision and not a technical one and therefore, it is not a data science team
|
|
|
|
|
but rather the business team that should be in charge.
|
|
|
|
|
|
|
|
|
|
Let's come back to the Hamaya example. The loss function and the errors made by
|
|
|
|
|
the classification algorithm will have impact on business matters that are
|
|
|
|
|
clearly beyond the scope of the data scientist work. Let's think about the two
|
|
|
|
|
extremes: you either tune the algorithm to be very agressive in labeling
|
|
|
|
|
requests as accepted, assuming the higher risk of incorrectly classifying
|
|
|
|
|
invalid requests as accepted, or you tune it to be conservative and send the
|
2021-12-08 20:11:53 +01:00
|
|
|
request to the customer care team unless the case should obviously be
|
|
|
|
|
accepted.
|
2021-12-08 12:44:45 +01:00
|
|
|
|
|
|
|
|
If you go for the aggressive option, at least the following will happen:
|
|
|
|
|
- You will take much more work out of the customer care team. This means that
|
2021-12-08 20:11:53 +01:00
|
|
|
the ratio of #requests/#customer care associates will go down since more
|
2021-12-08 12:44:45 +01:00
|
|
|
requests are handled automatically.
|
|
|
|
|
- There will be more mistakes. Hamaya will be giving away more materials that
|
|
|
|
|
should not be. This translates into money lost.
|
|
|
|
|
- The latency in responding to requests will go down since more of them will be
|
|
|
|
|
handled automatically. This will make customers and repair shops happier.
|
|
|
|
|
|
|
|
|
|
On the other hand, if you go for the conservative option:
|
|
|
|
|
- You will need more customer care associates than in the agressive scenario,
|
|
|
|
|
since less requests will be handled automatically.
|
|
|
|
|
- Assuming customer care associates are flawless in judging cases, you will
|
|
|
|
|
have less mistakes in which you end up giving away materials when you should
|
|
|
|
|
not.
|
|
|
|
|
- Requests will take longer to get processed, with customers and repair shops
|
|
|
|
|
waiting for the decision to be made to get things started.
|
|
|
|
|
|
|
|
|
|
Despite the case being so simple and the comparison between both options so
|
|
|
|
|
brief, we can see plenty of impacts on business in this choice: we have hiring
|
|
|
|
|
and staffing (since the sizing of the customer care team will change),
|
|
|
|
|
customer satisfaction (speed of requests being handled), supply chain (the
|
2021-12-08 20:11:53 +01:00
|
|
|
need for materials must be planned and served) and financial and cost structure
|
|
|
|
|
matters (what is cheaper, incorrectly giving away more material or hiring more
|
|
|
|
|
customer care profiles? Also, both options lead to different cost structures.
|
2021-12-08 12:44:45 +01:00
|
|
|
Which one fits better with Hamaya's business and finance strategy?).
|
|
|
|
|
|
|
|
|
|
So, do you think a data scientist is the right person to make this call?
|
|
|
|
|
|
|
|
|
|
## Why does this always go wrong
|
|
|
|
|
|
|
|
|
|
By now you might be as bothered as I am by the fact that loss functions are
|
|
|
|
|
usually owned by data scientists. I have made a commitment to myself that I
|
|
|
|
|
will prevent this from happening in my projects. If we want to succeed in doing
|
|
|
|
|
so, it is probably a good idea to try to understand _why_ loss functions remain
|
|
|
|
|
in the hands of data scientists. I have a few thoughts on this:
|
|
|
|
|
|
|
|
|
|
- A common and simple one: the business team has no clue on how Machine
|
|
|
|
|
Learning works. To them, it is just a magic prediction black box . I don't
|
|
|
|
|
blame them. Instead, I would suggest that data scientists need to take their
|
|
|
|
|
time and creativity to teach just enough to the business team so that they
|
|
|
|
|
understand the important topics and why their involvement is needed at some
|
|
|
|
|
parts of the project.
|
|
|
|
|
- Business has an excessively hands-off management style. They don't want to
|
2021-12-08 20:11:53 +01:00
|
|
|
know anything about the inner workings of the project, "because it is the
|
|
|
|
|
data scientists' job and we want results, not problems". This is the kind of
|
|
|
|
|
management style that also ruins software projects because they are never
|
|
|
|
|
accessible during the project and then get pissed off at the end because the
|
|
|
|
|
result does not match some arbitrary expectation. This is a purely cultural
|
|
|
|
|
and people issue, so I won't even try to provide ideas here. Either try
|
|
|
|
|
something to change their mindset or just run away.
|
2021-12-08 12:44:45 +01:00
|
|
|
- Your project has no clear purpose, which probably translates to no clear
|
|
|
|
|
business ownership. It might be seen as an initiative where only the data
|
|
|
|
|
science team participates. Or maybe some C-level executive sent an email
|
|
|
|
|
three weeks ago requesting that "we leverage AI to gain business value" and
|
|
|
|
|
people are just running around scared, trying to get something done without a
|
|
|
|
|
clear direction. In this situation, nobody owns the loss function because
|
|
|
|
|
things are just confusing as hell. I bet you don't have a business case, so
|
|
|
|
|
trying to get someone to do one might make the problem obvious enough so that
|
|
|
|
|
the chaos will stop. If you have enough power, a possible course of action is
|
|
|
|
|
to stand firm and announce that neither you nor your team will move a finger
|
|
|
|
|
unless the business case is built.
|
|
|
|
|
|
|
|
|
|
## Wrapping up
|
|
|
|
|
|
|
|
|
|
That was long. Let's make a simple recipe:
|
|
|
|
|
|
|
|
|
|
- If you are starting a Machine Learning project, build a business case. Use it
|
|
|
|
|
to describe how errors in the final algorithm link to business/financial
|
|
|
|
|
impact.
|
|
|
|
|
- Educate the business team to understand that prediction errors are
|
|
|
|
|
inevitable, but that you have a certain degree of control over _which_ errors
|
|
|
|
|
happen.
|
|
|
|
|
- Work together with the business team to assess how different errors link to
|
2021-12-08 20:11:53 +01:00
|
|
|
business impacts, and provide them with the range of available options in
|
|
|
|
|
terms of how can error behaviour be modified.
|
|
|
|
|
- Get a decision from them which is clear, defined and you can translate into
|
|
|
|
|
the loss function.
|
2021-12-08 12:44:45 +01:00
|
|
|
- Go ahead and deliver!
|
|
|
|
|
|