Smart Apps

“This [AI] is by far the fastest moving technology that we’ve ever tracked in terms of its impact and we’re just getting started.”
– Paul Daugherty, Chief Technology and Innovation Officer, Accenture.

Business are increasingly defined by their apps.  They must ensure the success of the business while guaranteeing high end-user satisfaction in their apps.  We have a huge and yet unrealized opportunity to use AI and machine learning to make apps more intelligent.  Intelligent apps enable a business to position its apps for success when competing for customers’ attention.  Business practice shows us that customers today are informed and stick with apps that provide them with the best possible experience and increasingly, customers expect a high degree of intelligence from apps.  We’ve reached a time when customers seek apps that correctly anticipate needs and increase usability, utility, and speed.

Barriers to Success

“Data scientists spend 60% of their time on cleaning and organizing data. Collecting data sets comes second at 19% of their time, meaning data scientists spend around 80% of their time on preparing and managing data for analysis.”
– Gil Press, Forbes.

There are compelling reasons to leverage AI and ML in apps, but there are many barriers to success:

  • Relevant, high quality data is often difficult to get.
  • Models provided by ML often don’t provide actionable output.
  • Apps are event driven, so it may be difficult to understand how to apply models to get the desired results.
  • There are many different roles involved in making an app smarter.

More Control

“Every business will become a software business.”
– Satya Nadella, Microsoft CEO.

Many business people defer to software developers and IT departments for the development of apps.  Smart apps can provide a mechanism by which business people can have more control of key behaviors of their software applications.

Instrumentation (real time data collection inside apps) and controls (mechanisms whereby external processes can control the actions of applications) can provide the business with better insights into customer behaviors and can also provide the means to respond to those behaviors with agility.  And AI and ML have the potential to help businesses achieve their goals, rather than simply being purely autonomous agents that act independently.

Training Versus Inference

When people talk about ML, they focus almost entirely on training, the processes and algorithms used to obtain the models that can then be used to do things like locate faces in photos. Training can be extremely expensive computationally, and often requires extremely large amounts of data.

When we make decisions in real time using ML, like trying to locate faces in a photo someone has just uploaded, we aren’t doing training. Instead, we apply the models obtained through previous training, a process called inferencescoring, or prediction.  Inference typically takes far less time than training, and often can be done in milliseconds.

The distinction between training and inference is crucial. Because inference can be done much more quickly than training, we can easily use inference in real time to make apps smarter.

Approach

To approach the problem of making apps smarter, we must first recognize that applying AI and ML to apps is difficult and different.  A first step is to use an application centric approach.  More specifically, we need to use instrumentation and control mechanisms to capture data and convert outputs of AI and ML into actions.  And we need to provide a simple API that works for all apps and all ML platforms.

We can’t just view data reactively, but instead must adopt a data driven mindset. This includes constant experimentation like A/B testing.  

We need to capture the data at the point at which action is to be taken.  And because the data captured by apps can be complex, it helps to be able to automatically discover the structure of the data that the application has.  

Software and Services

Open source software has exploded in popularity in recent years.  The reasons are clear:  Open source has a lower cost of ownership, is widely viewed as having fewer defects and being more secure.  Furthermore, the best developers expect to be able to use open source, and open source fosters a climate of innovation.

Little has been done to address the issue of how to apply ML to apps. We seek to foster the development of open source software and services that make apps smarter.

Cloud services increasingly act as the platform for both the apps and the machine learning processes and services needed to make them more intelligent. And we believe that with the right cloud services, building smart apps could become much easier.