How to Incorporate AI into Your Next App 🤖
The world of Artificial Intelligence (AI) is a fascinating and rapidly growing sector of the software development industry. You’ve probably heard of AI being used for smart home assistants, self-driving cars, and even on Jeopardy, not to mention in dozens of other industries. When used well, AI-powered solutions can make software easier to use, save time, and help companies better understand and assist their customers. What’s more, current cloud-based AI solutions make it simple and cost effective for anyone with a bit of software knowledge to incorporate these powerful algorithms into their application, no huge engineering team required.
Before diving into the use cases for AI, let’s start with a few definitions.
An Introduction to AI, Machine Learning, NLP: What’s the Difference?
Put simply, AI (or Artificial Intelligence) is the overarching term for machines, computers, and software systems that are built to mimic human intelligence. This means that they can make decisions and learn new information based on user inputs. A common, everyday example of this system is the interest recommendation algorithms built into most streaming services, online shopping platforms, and social media sites. As you watch content on Netflix, for example, the application keeps track of what you’ve started watching, and stores details about the content, such as the genre, the director, and any keywords, in your “interest profile”. Then, when you go looking for a new movie to watch, the algorithm can use your interest profile to match other content with a similar genre or theme that you haven’t watched yet, and suggest them to you. This kind of recommendation system is extremely useful for building a “sticky” software product, as it automatically curates a unique content niche for each user.
AI has many fields within it, including Machine Learning (ML), and Natural Language Processing, or NLP. Let’s look at each of these in turn.
The process of Machine Learning takes AI design one step further by developing software algorithms that learn and improve on their own, without explicit input from a human operator. Building these ML “models” that learn on their own is a resource-intensive process that requires data tagging, training, and validation to produce a useful model. Fortunately, many of these models have been open-sourced or developed into inexpensive, transactional products for developers to utilize to build their own products.
Natural Language Processing is a set of methods used to help software systems understand human language. These methods break down sentences into their core grammatical components, classify each component, and derive meaning by comparing them to known structures and definitions. Using these techniques, NLP can be used to determine an action or intent desired by a user, such as asking a virtual assistant “Please set an alarm for 8 AM tomorrow morning”. NLP can also be used to perform Sentiment Analysis, which is the process of determining a user’s emotional state or feeling from written or spoken content.
Why is AI Useful in Building a User Experience?
In short, an ideal user experience provides the content, actions, or tasks that are most useful to a user while requiring the minimum number of actions required by the user. With this in mind, it’s clear that instead of having the same static experience for all users, curating the content or actions seen by each individual user in response to their needs at a given moment would create the best experience for each individual. Much like our Netflix example above, AI is a powerful tool to handle these predictive tasks. You might curate a newsfeed for your users based on their interests or automatically set a user’s morning alarm based on their typical wake-up time. The possibilities are endless, but the rule of thumb is to look for tasks a user completes frequently (like viewing their newsfeed or setting an alarm) and use gathered interests, historical usage data, and other metrics to automate one or more of these tasks.
Use Cases & Examples
There are countless ways to use AI to improve your apps’ user experience. To provide a bit of inspiration, we’ve included a few examples below of use cases we have encountered during our product development work. Many of the services mentioned in the next two sections offer generous free tiers to experiment with AI in your application.
Curate Your Users’ Interests
Does your app allow users to browse through large amounts of content? Whether these are news stories, videos, or even lessons, it is important to keep users engaged in the content they are receiving. Just like the Netflix example above, begin by keeping track of the content each user interacts with, and if possible, a measure of how they felt about it. For example, if a user starts a new movie but never finishes watching, you could deduce that they enjoyed it less than a user that both started and finished watching the movie. Other methods of feedback can be more explicit, like asking a user if they enjoyed a lesson or how many stars they would rank a TV show. Create a map of the most “liked” and “disliked” interests for each user, and feed it into an ML tool like Amazon Personalize. This API will provide back parameters to create a personalized content feed for the user.
Perform Sentiment Analysis (How Do Your Users Feel?)
Do you receive support requests or contact forms from users on a regular basis? Sentiment Analysis provides a powerful tool to determine whether an incoming message is positive (the user is happy), or negative (the user is unhappy). This can help you prioritize your requests and messages based on maintaining customer satisfaction. Both AWS and Google Cloud have real-time APIs to determine sentiment.
Autofill To Save Your Users Time
Do your users frequently fill out the same form or create the same kind of content on a regular basis? Consider comparing the form data created by each user over time to determine patterns, then autofill common information for the user the next time they open the form. This will save your users huge amounts of time and energy in the long run. Similarly, if your users spend time organizing items like calendar events or travel content into categories, run each piece of content through an NLP service beforehand in order to pre-select the category most likely to be chosen.
Translate Your App Into Another Language
Interested in translating your content into another language? Both AWS and Google Cloud have efficient APIs to translate content in real-time across dozens of languages. You can even have a customized NLP model trained for domain-specific terms.
How Can I Get Started With AI?
When thinking about incorporating AI into your app, you might be thinking of complex algorithms and large teams of developers to get the job done. In reality, current cloud-based solutions make it easy to plug in AI tools to fit your needs, no head-scratching architecture required. Amazon Web Services (AWS), Microsoft Azure AI, and Google Cloud all have AI services and APIs, NLP tools, and pre-trained ML models to experiment with in your app. Here are a few of our favorite AI tools to build innovative user experiences:
- Amazon Personalize: A toolset to automatically create real-time personalized user experiences
- Google Document AI: Automatically pull useful information from PDFs of invoices, pay slips, and drivers’ licenses
- Amazon Comprehend: The AWS powerhouse for pulling insights from natural language using NLP
- Amazon Transcribe: Automatically convert speech to text
- Google Media Translation: While still in beta at time of writing, this service offers real-time translation of recorded or streaming audio in 12 languages
Here at Lithios, we consult closely with our clients and development teams to add predictive features throughout the product development process that engage and delight our clients’ users and support future growth. If you have any questions about our product design and development process or want to get in touch, drop us a line here.
Brendan Michaelsen is the Director of Technology at Lithios. He enjoys designing and implementing complex technical systems. A fun fact about Brendan, he sleeps on textbooks to absorb knowledge while dormant.