Priocept was recently invited by Barclays to participate in its “hackathon” event in Manchester, UK. The event was organised by Barclays and its partner organisations, which included Google, Amazon, Microsoft and IBM. Hundreds of competing teams were tasked with prototyping technologies that would drive innovation in banking and “fintech”, and in the areas of open banking and Directive on Payment Services (PSD) in particular.
In 2018 the European Commission’s PSD initiative is set to mandate that banks open up their customers’ transaction data to third party service providers, allowing the delivery of aggregated cross-bank services to customers. A primary aim of the Barclays hackathon was to drive innovation in this area.
The hackathon was run over a 48-hour period, from 6pm on a Friday to 6pm on the Sunday, with sleep being an optional extra! This environment provided the perfect opportunity for Priocept to demonstrate its rapid prototyping capabilities, and general software development expertise.
By the end of the hackathon, Priocept were announced the winner of the “Corporate Treasurer” competition. This case study describes our winning solution.
The Priocept hackathon team chose to build a prototype application for the “corporate treasurer” competition, focusing on the need for improved cash flow forecasting tools. The Priocept team quickly defined a set of requirements for a prototype which would then be built during the 48-hour hackathon.
After analysing the cash flow forecasting requirements, Priocept identified the potential to apply “machine learning” technologies to the solution. Since Google Cloud Platform was a key partner of the event, and since Priocept has developed expertise across a range of Google Cloud Platform products in recent years on other client projects, it was decided that this platform would be used exclusively. In particular, Google’s TensorFlow technology would be used to implement the machine learning functionality.
Introduction to Machine Learning
Machine learning is a technology and approach to software development that allows the creation of “self-learning” platforms. It is a form of artificial intelligence which avoids the need for detailed business analysis to identify granular business rules, and as a result also avoids prescriptive and inflexible coding of these rules into software algorithms. Instead a framework is used which allows a system to learn the necessary rules and algorithms for itself.
Machine learning achieves this by implementing “neural networks” within software. Neural networks are a foundation of the human brain, and can be recreated in software to emulate the human’s ability to learn and to recognize patterns. Google TensorFlow technology provides a rapid development framework for building neural networks and applying them to real-world problems.
Once a neural network has been implemented in software, it is fed a set of “learning data”, which consists of a known set of inputs, and the desired set of outputs. The neural network is then set to work on this data. The neurons within the network individually and incrementally adjust themselves to learn the best solution based on the learning data provided.
By applying machine learning to the cash flow prediction challenge, it was possible to build a solution that would automatically predict future cash flows for a given business, through automatic learning of historic trends in previous cash flows. No manual coding of logic, or individual configurations for different companies, would be required.
Google Cloud Platform Architecture
The prototype application made extensive use of Google Cloud Platform technologies, including:
- Google TensorFlow – a machine learning framework which allows design, development, testing and optimisation of neural networks using a high-level API and the Python programming language.
- Google Compute Engine – the basic virtual machine technology behind Google Cloud Platform, this was used to run TensorFlow learning and prediction algorithms.
- Google BigQuery – a component of Google’s big data platform, BigQuery is a serverless data warehousing platform that provides virtually unlimited scaling, and was used to store large amounts of historic financial data that was fed in to the TensorFlow self-learning process.
- Google App Engine – a Platform-as-a-Service (PaaS) technology, App Engine was used to build the front end web application for display of cash flow predictions, on “serverless” or “no-ops” infrastructure.
- Google Cloud Datalab – a data science platform, Cloud Datalab provides a user interface for data analytics and prototyping, and was used by Priocept for initial modelling and testing of the machine learning models.
- Barclays APIs – these APIs were used to extract financial data from Barclays core systems and feed them into the BigQuery data warehouse, for use by the TensorFlow machine learning process.
Using a range of Google Cloud Platform technologies, a Priocept team of just four software engineers, over a period of only 48 hours and corresponding to no more than 16 man days of development effort, was able to deliver a highly sophisticated technology solution. The solution encompassed the cutting-edge fields of both machine learning and big data, combined with a highly scalable web application.
This project showcases not only Google Cloud Platform and Priocept’s expertise in this area, but also highlights the rapidly changing landscape of software development, and the ability for both cloud-based architectures and machine learning to deliver new types of technology solution that only a few years ago would have been impenetrable without well-funded large scale research projects.
Please get in touch with Priocept at firstname.lastname@example.org if you would like to discuss how machine learning in general, or Google Cloud Platform in particular, could be applicable to your business and could help you drive both innovation and lower costs.