Month: November 2018

What Are Intelligent Apps?

The Enterprise world is chock full with all kinds of marketing terminology attempting to capture the latest trends and hype. Not to minimize the terms or imply that it is all hype; the terms, in fact, capture some important trends and patterns in the industry. The term Modern Apps is an example. At the time, it was easy to ask, well if we aren’t developing modern apps, what are we developing? Good question. Old school apps were monolithic logic hogs. Much of the business logic executed on the app itself and the app was most likely designed uniquely for a desktop experience. Modern Apps treat web, desktop and mobile as first class citizens, a nod to the proliferation of non-desktop devices in our lives, and take heavy advantage of server-side (read: cloud-based) logic.

Recently, a new term has crossed my path: Intelligent Apps. Where did this come from and what does it even mean?

An Abbreviated History

In recent years we have seen a huge uptick in the interest in applied Deep Learning algorithms. With tools like Tensor Flow, any developer can write custom Machine Learning algorithms to perform tasks such as image classification or even create components of a self driving car. Part of why Deep Learning has become so prevalent is that the big tech companies have amassed tremendous experience managing and manipulating large sets of data. Given this scale, research and development efforts have been able to explore new Artificial Neural Network architectures that perform very well on certain tasks (see ConvNet for image classification).

Not only are developers equipped with great tools to create their own neural network architectures and algorithms, but the big tech companies have created REST APIs that implement some of the most common algorithms such as NLU (Natural Language Understanding), speech recognition, machine translation and sentiment analysis to name a few. These APIs have been honed by years of research and, some, have been integrated into the companies’ products. Facebook, Google, Amazon and Microsoft products are full of Machine Learning-based features. Facebook recognizes faces in images and recommend tagging friends in photos. Google’s Gmail makes response recommendations and recently added an autocomplete functionality. Google’s Translate app uses machine learning for speech recognition, image recognition and machine translation. Amazon’s Alexa is machine learning in the home using speech recognition and NLU most obviously. Apple’s iOS includes many machine learning features, even an ability to integrate trained models into an iOS app via CoreML. This also applies to Enterprise Software. Microsoft’s Dynamics 365 CRM for example, provides numerous insights based on historical data.

Tech is investing in this space at high rates. They are performing heavy research & development in the quality of neural network architectures, model efficiencies and development tooling. It’s an arms race! Because the techniques and algorithms are easily available for us to use, integrating them into an application is not an option, but a must-have, to enhance customer experiences or optimize business decisions.

Enter Intelligent Apps

An Intelligent App, is then, any application that utilizes machine learning techniques, especially cognitive ones that mimic human intelligence tasks, to help users accomplish their goals more efficiently. The laziest example that usually comes to mind is chat bots, but that is a very limiting view. Let’s start with another example: computer vision. Computer vision is also an incredibly fast growing field. Think about inspecting water treatment facilities using drones and machine learning. Think analyzing call center logs using speech recognition and natural language understanding. Think of the value of having up to date information about each customer’s phone call sentiment. All of these are possibilities and the future of our applications.

Part of the reason I wrote my book was not only to educate others on how to build chat bots, but to also teach developers on how to begin using LUIS to build any NLU-enabled applications. In addition, I dedicate an entire chapter to integrating chat bots with Microsoft’s Cognitive Services. I believe that the end result is a robust introduction to creating intelligent applications, through the lens of chat bots and digital assistants. There is really no better time to learn about this new category of apps than now. You can find Practical Bot Development on the Apress site here or wherever Apress books are sold.

In parallel, developers should become familiar with how machine learning works in general. The brave new AI world may not mean that each of us becomes a professional data scientist, but a deeper understanding of machine learning goes a long way in building the right context and frame of mind for building these apps. The Chairman of Nokia certainly thinks so. As for myself, I took a number of data science in Python courses on DataCamp to become more familiar with the many topics in this space. This kind of knowledge will pay off dividends when developers need to integrate an application with an existing cognitive service or a in-house developed deep learning model.

Posted by Szymon in General