Over the past couple of years, there has been an explosion of interest in machine learning and in using neural networks to enhance the capabilities of various products and services.
Perhaps the biggest moment so far in the machine learning field was when Google’s DeepMind AI beat Lee Sedol, an 18-time world Go champion. Go is a highly complex game even for humans, and machines weren’t supposed to start winning against professionals for at least another decade. DeepMind winning against a Go world champion sent shockwaves through the technology industry.
Suddenly the idea of “artificial intelligence” didn’t seem something that was so far off, but something that, within a matter of a few years, could become highly useful when applied to real-world problems. Advanced machine learning holds the promise of curing many diseases, inventing new materials that can enhance and extend the capabilities of physical products, and making us all more productive.
Rise Of Neural Network-Enhanced Apps
Neural networks, which are roughly inspired by the biological networks in the human brain, are the core components in machine learning systems. They can have one or two layers and can even go up to hundreds of layers in deep learning systems.
The neural networks are used to approximate functions that depend on a large number of inputs that are not typically known. For instance, a neural network may be fed with millions of images with all kinds of animals in them, and the expected result would be for it to figure out what kind of parameters belong to a cat, or to a dog, and so on. By analyzing millions of random images, the neural networks can “learn” which animal is which.
Other than academics, some of the first users of machine learning have been large companies such as Google, which take in significant amounts of data from their users and then analyze that data to improve their services. This is how we get better search results, better YouTube recommendations, Gmail AI-enhanced clients such as Inbox, or apps such as Allo that allow the AI to learn from a conversation and have responses ready when new questions are posed by other parties.
However, we’re now starting to see smaller companies adopt machine learning and give their apps or services their own artificial “brain,” essentially, so they can also learn from users and get better with time.
SwiftKey’s Neural Network-Powered Engine
Swiftkey has always been one of the best third-party keyboard applications in terms of how well it could predict what you’re trying to type next. That was an especially necessary capability for a keyboard app that allows users to “slide” words on the screen rather than type them out.
For the first time in six years, SwiftKey has overhauled its language engine from the ground up using neural network technology. Unlike apps such as Inbox or Allo where all the “magic” happens far away from the user on Google’s servers, the new SwiftKey app utilizes the neural network locally on the device.
This is part of a new trend, where machine learning (at least the inference part) happens locally on the device. This way, the app is able to deliver the results in real-time (no network latency) while also maintaining the users’ privacy (the data doesn’t have to first go to a company’s servers to be analyzed).
How The New Swiftkey Works
The new SwiftKey app can capture the relationship between similar words. For instance, if it has previously seen the sentence “Let’s meet at the airport,” it can then infer that the words “hotel” and “office” are similar within this context, and that a new phrase “Let’s meet at” could be completed by either of the three words.
The new neural network-enhanced language engine also understands that the sentence structure of “Let’s meet at the airport” is similar to that of the sentence “Let’s chat at the office.” Because it can better understand the context of a discussion, it can also make better predictions for what the next words should be.
For a prediction to be accurate using the old “n-gram” language engine, it would have first needed to see the word in the same sentence. The new neural network-powered engine can accurately predict the words that should come next without having seen that sentence before.
For now, the new engine supports only U.S. English and UK English, but because the fundamentals of the technology have already been established, support for new languages should arrive more rapidly. Users of Swiftkey in English should be automatically upgraded to the new engine.
The new SwiftKey is one of the first apps to run neural networks locally on the devices. However, as neural network accelerators make their way into PCs, mobile devices, and other embedded systems, we should be seeing even more applications that prefer to use machine learning locally for real-time results and stronger privacy.
Considering that swiftkey is only working with "simple" processors at the moment and more complex reasoning would be taxing/result in slower responses, that they can achieve better results than what they were getting is a win in my book. In the future when stronger or dedicated neural style hardware is available they will be ahead of the curve. Or they'll get crushed by a startup.
I'm just happy that someone is leveraging these tools to increase privacy. Of course I'm sure that while my typing patterns are securely processed locally it's not stopping Google or Cortana from scanning the finished text and sending that data off to non-local servers for processing.
I think the best solution would be for the adaptation to occur on your phone (cloud computing is cheap, but it ain't free), while it's plugged in to an external power source. This would also protect your privacy. Of course, your input would at least need to be stored on your phone, which potentially creates a vulnerability.