Skip to main content

What Can Artificial Intelligence Do For Me? (Part 1)

 

“We are stuck with technology when what we really want is just stuff that works.”

-Douglas Adams, The Salmon of Doubt (2002)

So far, I’ve managed to avoid talking about anything very definite in this blog series. Sure, I’ve raised plenty of interesting questions and told a few interesting stories, but some readers may rightly be wondering: where’s the beef? Is this guy all hat and no cattle? Anybody who’s read this far into the series has waited long enough without further ado, I will endeavor in this month’s and next month’s installments to survey some of the most applicable techniques from the history of artificial intelligence (AI) and opine on some of the ways those techniques could be profitably used by companies like Vergent LMS to improve its business.

Early approaches to AI focused on the automated manipulation of symbolic information by formal logic. The early goal of AI research was to create artificial general intelligence; that is, rather than recreating specific aspects or kinds of intelligence limited to specific narrow functions or domains, the idea was to reproduce the sort of intelligence we human beings like to think we possess: the ability to perceive, reason about and adapt to a wide variety of stimuli we receive from the real world.

This goal gave rise to what we refer to nowadays as expert systems: systems which encode knowledge in some domain of interest as a catalog of facts and use some predefined rules of logical inference to automatically derive new facts from accepted premises. For instance, our catalog of facts may include both Socrates is a man, and Man is mortal. If we attach to this catalog of facts the rule of logical inference modus ponens (given that X is a true statement and given that X being true implies Y must be true, we can safely deduce Y must be true), we can program a computer system to answer the question Is Socrates mortal? The basic idea is that the user of the system would encode this question in a way the system understands (for our purposes, we can assume the system understands the English language; more on that later) and the system would then begin searching the web of facts in its catalog for a logical deduction that answers the question.

In our case, the system may first look for all statements regarding Socrates, in which case it could find the fact Socrates is a man. The system could then continue looking for any facts about the entity man and may find the fact Man is mortal. At this point, the system could recognize that the sub-catalog of facts Socrates is a man, and Man is mortal, along with modus ponens, can be used to answer the question in the affirmative. Similarly, had the question been, is Socrates immortal? instead, the system could recognize (again, assume it understands the English language) that the question can be answered in the negative. By creating a sufficiently large catalog of facts and admitting a sufficiently flexible set of rules of deduction and inference or at least so the thinking goes expert systems could solve all the kinds of problems humans solve using human intelligence. Moreover, because the catalog of facts is represented symbolically in a way humans have defined, the facts the system can deduce or infer are recognizable to us (even if the relationship between them was previously unclear).

Expert systems have lots of useful commercial applications. For companies like Vergent, which provide business-to-business services (B2B) to clients, there is an opportunity to reduce the customer support burden by providing a useful system for resolving commonly encountered issues which may have otherwise required speaking to a knowledgeable human being. For instance, imagine a catalog of facts which encode our business knowledge of how the automated clearing house (ACH) system works in our software for scheduling, sending, returning and clearing bank payments. The facts may include statements like, the ACH tools page can be accessed from the top navigation menu under the Tools heading, the Sent ACH grid can be accessed from the ACH tools page, and sent ACHs can be manually returned from the Sent ACH grid.

The Sent ACH grid can be accessed from the ACH Tools page. The ACH tools page can be accessed from the top navigation menu under the Tools heading, by crawling the web of facts to find strings of logically related statements. Automating aspects of client training are a closely related application area; more generally, job aides for Vergent’s own employees could usefully assist with performing root-cause analysis of emergent production issues or avoiding regression defects during the development and quality assurance processes, by recording the business knowledge of how parts of the software affect each other and automating the process of finding and refining lists of possible causes.

A competing approach to developing artificially intelligent systems which gained traction in the early 1980s sought to overcome some of the limitations inherent to purely symbolic AI by embodying the computer system in a way that places it in a definite real-world environment. Rather than merely encoding a fixed set of facts we can write down in the catalog, the system is given access to sensors which provide constant streams of new information the system can use to react and adapt to its environment. For example, imagine a robot equipped with pressure sensors. By moving around its environment and recording data from its pressure sensors, it can detect when it’s encountering obstacles. By adding this stream of knowledge to its catalog in this case, you might imagine a sort of map the robot can learn the arrangement of obstacles in its environment. With that knowledge, and by keeping track of its current position inside the environment it has explored, the robot can start to plan what parts of the environment remain unexplored? What’s a good way to get from my current position to some other location in my environment? What’s the best way to get there?

Clearly, autonomous robots have lots of commercial uses, generally speaking; for software-as-a-service providers like Vergent, maybe not so much. However, the same basic idea creating software that is situated in an environment and which learns to react to stimuli from those environments is very much applicable. If we take the client’s browser to be a (virtual) environment and consider the stream of user-interface actions (button clicks, scrolls, navigation, etc.) and server responses (time to respond, error codes, etc.) to be the stimuli, then the ideas from behavior-based and nouvelle AI have applications in improving the end-user experience anticipating or responding to users’ actions and taking appropriate responses (suggesting actions the user is likely to want to perform, pre-loading what is likely to be the next required dataset, etc.) If the (virtual) environment is, in another example, the set of web servers handling requests and the set of stimuli the stream of requests, responses and performance data emitted from the serves, these same ideas could allow a system automatically to respond to changing (and, unpredictable in advance) system loads, to effect a better allocation of system resources. These techniques make it possible to have systems response automatically to situations which we can’t fully predict ahead of time, in a way that’s potentially better than just sticking to the default behavior.

In Part 2, I will move on to more recent techniques in AI, including evolutionary computation, support vector machines, decision trees and neural networks, and some of the problems these techniques can help solve. These are of particular interest to companies like Vergent LMS since, as we will see, they can leverage the huge amounts of user-generated data created by using our software. Stay tuned!