4 ms·
Ask HN: Is natural language a good interface for AI?
All the mainstream AI platforms seem to bet on natural language as the interface with AI.
- Amazon's Alexa
- Microsoft's Cortana
- Google's Assistant
- Apple's Siri
- Samsung's Viv
I can't help but feel like these interfaces will continue to feel wrong short of perfect NLP and AI.
Even if they were on par with human assistants (which is a big if), that still wouldn't be optimal. Clearly, natural language is not the ultimate form of communication.
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.
Is there any reason to want natural language as an interface to AI, other than because that's all people know?
- sharemywin 10y agoI 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.
- Cozumel 10y agoThe 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 10y ago> 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.
- brudgers 10y agoMy 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 10y agoEven 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.