non-generative AI should not be forgotten

I have been working on virtual assistants for 15 years now. The first ones I started with were IVR (interactive voice response). These were the phone systems with complicated dialogues. When I would mention it at a party, people would always respond “I hate those!”. Then Siri came out right around the same time, and everyone loved it. They did not see the similarities. In many ways, I think that Siri came out at a time when the technology was finally good enough that it worked most of the time. The speech recognition worked quite well, and so did the natural language understanding. These systems were built with a combination of machine learning and traditional deterministic software engineering. Given the same question, you would always get the same response. Perhaps boring, but reliable. Compare that to generative AI today, where most systems will give slightly different responses if you ask the same question five times in a row. That is more human like, but in this case, is that a good thing? 

Yesterday I noticed that something I had ordered from Amazon did not arrive. I logged into amazon.de and looked at my orders. It said that “this package may be lost”. Oh, what do I do? I clicked on a button for more information and was given the option of a refund or having Amazon send it again. I chose to send it again. That opened up Amazon’s virtual assistant. I followed along with the virtual assistant and within a minute or two, the task was completed. They are sending me the product again. I probably could have done it even faster, except I was studying the user interface and taking screenshots, so that I could blog about it.

The bot started with confirming if I needed help with the product in question. It gave me the option of two different buttons to click on to provide my response.

Bildschirmfoto 2025-01-30 um 08.58.49
08.58.49

After I replied yes, it asked a follow-up question, whether or not it had arrived. I clicked on the button that it hasn’t.

Bildschirmfoto 2025-01-30 um 08.59.10
08.59.10

Next the assistant told me that my order included more than one item, and asked me to wait for a bit. I did not have to wait more than a few seconds before it asked me if I would rather have a replacement or a refund. I clicked on the replacement option.

Bildschirmfoto 2025-01-30 um 08.59.35
08.59.35

Finally, the assistant outlined the details of what it was going to do, namely to send me a replacement to my home address, and it asked me to confirm if that was correct. It gave me four different options for responding, including

  1. confirm it is correct
  2. change something
  3. cancel
  4. need more help

Everything was correct so I confirmed.

amazon-response09.00.02
09.00.02

Next the bot told me that it set up the replacement, and once again mentioned where they are going to send it. I was then given the option to go back to my orders, or “I’m all set”. I chose “I’m all set”

amazon-response-09.00.19
09.00.19

Then the assistant asked me if I needed help with anything else. I chose the option no.

In one final step, the assistant told me that any updates would be shown in my orders (with a link to that page), and it asked me if it solved my problem. I chose yes. It told me that it was glad that it helped, and gave me the option to leave a comment, which I did not.

Bildschirmfoto 2025-01-30 um 09.00.51
09.00.51

I was very happy with this experience. While I was doing it, I was thinking about how the experience might be different if it were more of a ChatGPT style conversation, which many companies are now adopting for these sorts of virtual assistants. For one thing, many of these assistants start with an open-ended question “how can I help you?”. It is up to me to formulate a question which it can hopefully understand. In many cases, the system probably already has a good idea of what I might want to do, or what many customers want to do. Instead of just displaying a text box, offering a discrete set of options to choose from makes it much easier for the customer. In this case, I had already indicated that I had a problem with a particular order, so it knew where to start. It also pulled in information from the order, such as where it was being shipped. The assistants replies were short, easy to understand, and delivered very quickly, usually in less than one second. I am 99% certain that they are templatized, not being crafted on the fly with generative AI. If they were using generative AI, each response would have likely taken 5-10 seconds, based on my experience with tools like ChatGPT, and the responses would have likely been much longer. There were a number of follow-up questions and confirmations along the way. It could have presented me with a text box to answer those, but instead it gave me pre-defined options. This saved me time typing, and also ensured that it would understand my reply with 100% certainty. I thought it was interesting that it inserted the pre-defined replies I chose into the chat history, as if I had typed them myself.

I think this is an example of a really well done virtual assistant. Had this interaction been with a person, it would have taken much longer. Maybe it would have felt more personal, but in this case, I am fine with that. With the trends in generative AI in the past several years, there has been an emphasis on getting computers to act like humans. That is often a good goal, but not always. In situations like this, where there are well-known tasks which can be accomplished by a computer faster than a human, our goal should not be to have the computer act like a human.

I am not saying that we should abandon generative AI. There are many cases where it works very well, including in virtual assistants. However, I think that by using a mixture of generative AI and other machine learning as well as deterministic programming techniques one can achieve the best user experience.

To go back to the IVR example, these telephone systems had very complicated tree-based dialogues, and one had to go through each step along the way, which was very slow and tedious. One of the projects I worked on was to replace the first step with a general “how can I help you” open-ended response. We then trained a classifier to interpret the utterance, and in most cases, could direct the person to the exact leaf of the complicate dialogue tree that they wanted, which saved much time.

Generative AI can give an infinite number of response to an infinite number of questions (and is often right, though often just makes things up, not unlike humans). But most businesses do not provide infinite choices. A car dealership cannot help you with your washing machine. So when we design virtual assistants, we should keep in mind what functions we need to support, and what not. For some companies, there does seem to be infinite possibilities, but even in those cases, there are usually a relatively finite number of possibilities which occur frequently. Let’s design deterministic systems for those frequent use cases, while also leveraging generative AI to try to help with the edge cases, and in all cases, have a human expert at the ready to help when the AI cannot.

Join 164 other subscribers

archives

  • 2025 (3)
  • 2024 (10)
  • 2023 (8)
  • 2022 (15)
  • 2021 (19)
  • 2020 (1)
  • 2019 (1)
  • 2018 (2)
  • 2017 (1)
  • 2016 (2)
  • 2015 (5)
  • 2014 (5)
  • 2013 (2)
  • 2011 (7)
  • 2010 (10)
  • 2009 (50)
  • 2008 (28)
  • 2007 (31)
  • 2006 (8)

Category