Machine learning is hot. If my colleague Ad and where not aware before we decided to do our Exact TechTalks 2016 about applying this on the Exact Online (EOL) domain, we would have been afterwards. Half the board entered our talk, including the CEO at the first session. Zillions of questions by the attendees, and full-house 5 times in row.
Background
It might be wise to point out what these Exact TechTalks where about in the first place. It was an internal event where the different development teams could give 20 minute presentations on a subject they are currently working on. Ad and I represented the EOL System team (responsible for the core libraries and framework of EOL).
So what is Machine Learning?
Specially since AlphaGo beat a human Go player, machine learning and AI became both hot and mythical. So, our main goal was to demystify it, and show with an simple example that it can be easily applied, if you have (good) data.
Machine Learning:
Writing a program to perform a task
With more information, the program performs the task better
Without having to change the code
That’s all. Yes, you can apply it by building complex neural networks, and dedicated server parks, but in most cases, you don’t have to go down that road. A consequence of this is also that without proper data, you will not be able to learn your machine anything.
Allocating bank statements
We showed some functionality that can take up a lot of time while bookkeeping: allocating bank statements. By comparing new imported statements with historical data that was already assigned to a GL-account and an account, in a lot of cases new statements can be matched automatically. A developer has to build some specific matching algorithm to determine which historical record is the closed match. This is called statistical classification.
User experience
Speed is important in this scenario, as a user does not like to wait. In our test set-up we where able to test a new entry against 450 historical records within 0.29 milliseconds, so 1.5 million matches per second. But even more important is how to present the findings of the algorithm to the user. Does a user like to be bothered with poor and potential wrong matches? Or with (almost) identical matches? Not per se. And which options should there be to show the user what was allocated automatically?
Food for thought
Ad and I split our talk in two parts: 10 minutes of talking/presenting, 10 minutes of discussion. Although stated clearly during the talk, still quite some people thought it hard to believe that machine learning could be that simple. Some of them where searching for the silver bullet to solve all issues at once. Spoiler alert: such a bullet does not exist in this case. But most questions and remarks where about the potential issues of matching automatically and by that making mistakes. And that is good! Because how brilliant your algorithm might be, there will be inconsistencies, exceptions, on previous decisions. If you don’t understand the data and/or the domain, you will not be able to come up with a solution.
What’s next?
As members of the EOL System team, this part is not our responsibility. The functional team that is responsible is, guided by us, now working on shipping it. Besides that, a lot of awareness is raised throughout Exact. You should not be surprised if the customer will benefit from that in the near future.