
Ask HN: Is natural language a good interface for AI? - miguelrochefort
All the mainstream AI platforms seem to bet on natural language as the interface with AI.<p>- Amazon&#x27;s Alexa<p>- Microsoft&#x27;s Cortana<p>- Google&#x27;s Assistant<p>- Apple&#x27;s Siri<p>- Samsung&#x27;s Viv<p>I can&#x27;t help but feel like these interfaces will continue to feel wrong short of perfect NLP and AI.<p>Even if they were on par with human assistants (which is a big if), that still wouldn&#x27;t be optimal. Clearly, natural language is not the ultimate form of communication.<p>Natural language interfaces are slow, they do not challenge you, they do not allow auto-completion, they are linear, they are not very visual, they vary across cultures, etc.<p>Is there any reason to want natural language as an interface to AI, other than because that&#x27;s all people know?
======
brudgers
My first thought is _A programmer has an AI interface problem. The programmer
decides to use natural language processing. Now they have two problems._

Natural Language Processing adds a layer of complexity on top of the
complexity of the domain model due to the ambiguity of natural language versus
the logical or statistical structure of the underlying algorithms and data
structures. If those are right and working then adding a natural language
interface can be a layer on top of the API. But it means getting two things
right instead of one.

The use of natural language processing in commercial products is more in the
nature of well refined consumer products than something inherent in AI. And
it's probably worth keeping in mind that NLP has traditionally been an AI
problem. It's just that like many AI problems, once it kind of worked most of
the time, it stopped being considered AI and became a library programmers
could use.

------
enkiv2
Even with perfect NLP, natural language is a poor interface for performing
most of the tasks we want to do. The absolute best case for a natural language
interface is to start off like trying to explain how to use a computer to your
grandparents and end up evolving into something like a command line interface
(only totally unstandardized).

Natural language interfaces are flashy and they have a shallow learning curve,
but their upper limit on utility is extremely low. Current implementations
don't evolve in the course of conversations with users, but in order to be
even minimally useful for long-term intensive use, they would need to be able
to learn words from non-technical users (who would essentially be creating
macros by explaining what things mean) and learn aliases and priority patterns
from context. Ultimately, we're talking about a programming language here, and
this isn't a coincidence: if you want to be specific with another (human)
programmer, you speak in a kind of creole formed of a combination of code,
english, and extremely specific technical definitions of terms that bear many
other meanings in other contexts. Adding strong AI will just bring this
machine up to the level of a human programmer, and we've all had the
experience of failing to explain something to a human programmer.

For users who have to perform a bunch of simple tasks frequently, a minimally
flexible language composed of a bunch of very short aliases is desirable. For
users who are unfamiliar with computers, natural language makes sense for
onboarding, but making smalltalk with an AI as though you were chatting with a
stranger has no benefits over actually chatting with a stranger, so who will
continue to do it when they could spend a fraction of the time reading a
manual in order to learn specific commands? And, long term users with complex
work to do will always want something as flexible and unambiguous as a
programming language, without the boilerplate and ego-stroking we find in
natural language.

------
Cozumel
The limits you specified are all (currently) just small technical constraints,
they'll be better in time.

Short of a direct neural interlink, natural communication is the way to go.
There's no other realistic option, you can't type to your AI if you're walking
in the street or driving your car etc and people finish each others sentences
all the time (auto completion)

What kind of interface would you have?

~~~
miguelrochefort
> What kind of interface would you have?

The best interface is no interface. In a perfect world, we wouldn't need to
request anything from machines. Things would get done before we realize they
need to be. This is what we should aim for.

One way to do that is to get machines to learn what we want and why. I'm
surprised there isn't some kind of repository where I can store all my
specifications and preferences, for example. When I shop online, I don't want
to see women clothes, I don't want to see extra large clothes, I don't want to
see pink hardware, I don't want to see a book written in German, I don't want
to see things that don't ship to Canada, I don't want to see snacks with
peanuts (if I'm allergic to them), I don't want to see accessories for
products I don't own (or plan to own), I don't want to see shoes made by kids
in Bangladesh, etc.

I'm expecting the interface to guess what I want, and present an option to me.
If the system guesses correctly, perfect. If the system guesses wrong, that's
an opportunity for it to learn from you. You tell the system why an option is
not adequate (i.e., "I don't like the color") by pointing at it ("it" being
the part of the UI that communicated this feature you don't like to you), and
the process continues. Basically, you're only reacting to being presented a
version of the world that you disagree with.

A lot of what we use software for, is not triggered by some random inner
desire. When I look for a way to get to destination X, it's usually because
this destination has been recommended to me (likely through the system). I
should not have to launch Google Maps or Uber and input my destination. It
should be the other way around, the destination should trigger the search for
a solution.

Basically, any trigger that would cause me make a request to the system,
should be directly interactive so that it's done in one step. If I see some
interesting sculpture, I should be able to directly get information about it.
If I see a product I would like to acquire, I should be able to do it
directly. If I see a full trash can, I should be able to notify the
janitor/city instantly. If I hear a song, I should be able to capture it and
identify it instantly. If my door is locked, I should be able to unlock it
directly. If the volume is too light, I should be able to adjust it directly.

I'm sure this is confusing and hand wavy.

------
sharemywin
I would assume eventually the AI ties into other devices. If you had an AR set
most of the data could be presented on hovering screens. you could have a VR
version of just about any kind of control.

