
We don’t know how to build conversational software yet - guifortaine
https://medium.com/lastmile-conversations/we-don-t-know-how-to-build-conversational-software-yet-a18301db0e4b
======
overgard
I think the bigger question is: why would I want to converse with software? Is
that actually a good interface? People imagine the computer from star trek,
but that was a plot device. The character was talking to the viewer with the
computer as a proxy.

~~~
faitswulff
It's easy to imagine a large proportion of the population wanting to use
natural language to achieve complex technical tasks. It is, after all, the
same API that people use with each other. Someone could then describe what
they want out of a spreadsheet instead of manually editing it.

What interface would you prefer?

~~~
mmm123456789
I just built a very rudimentary version of this "speak to spreadsheet" idea:

[https://github.com/diesendruck/ggspeak](https://github.com/diesendruck/ggspeak)

Or for the demo video:
[https://www.youtube.com/watch?v=xmtrGxVvVyg](https://www.youtube.com/watch?v=xmtrGxVvVyg)

If you're interested in working on it together, get in touch.

------
lfowles
* level 1 — command & response

Functions?

* level 2 — hard-coded conversation flows

Scripts?

* level 3 — fuzzy/continuous/fluid state.

Threading?

I can't shake the feeling that deep learning is being shoehorned into a bot
with a specific purpose (ShoeBot, etc). Talking to a ShoeBot, I would expect
it to have predictable responses or state changes. I don't want it to suddenly
infer that I'm looking for shoes for my wife because of an opaque model it's
formed from an insufficient set of training data. Many applications of deep
learning seem to be just a lazy way to have the machines do the work
automagically.

~~~
kastnerkyle
As you say, if your only goal is ShoeBot this (scripts, functions, etc.) is a
great way to go. One of the key points of deep learning approaches is that you
have this abstract, powerful computational device that is trained to extract
the necessary features and also perform the task jointly - and it just happens
to be a ShoeBot due to the training data.

This usually results in improved performance along with "ease of use" in
transitioning to new but related applications. A model just happens to be a
ShoeBot when trained on specific data, but ostensibly a person or company
could make ShoeBot, CarBot, ApartmentBot, etc with the exact same approach,
given enough data. This is very different than a workflow of "craft tons of
features for domain X, write custom scripts/conversation logic for domain X,
etc.".

These choices between feature based approaches and "deep" techniques are
tradeoffs reminiscent of "you aren't gonna need it" versus "room to scale",
but in the ML algorithms you choose rather than the software
stack/implementation.

It depends on things like how much data you have, how much compute you are
willing to pay for, how many users you expect, and so on - but neither
approach is necessarily wrong.

In general if deep learning approaches don't roundly beat feature engineered
or hand crafted approaches, you don't have enough data or are trying to
shoehorn (pardon the pun) a solution that doesn't fit. Right tool for the job
and all that.

~~~
lfowles
Like Google Photos, this might just be something I have to see to believe.
However... Google Photos routinely categorizes pictures of my dog as Bear or
Cat. My greatest concern is about being able to acquire the conversations
necessary to train these niche applications beyond a laughable state.

------
edwhitesell
I'd venture a bet that most of the advancement of levels 2 & 3 happen in
private and/or are in use in areas you aren't already thinking of.

Have a look at the conversational examples Voicebox lists on their website:
[http://www.voicebox.com/technology/](http://www.voicebox.com/technology/)
(disclosure: I worked there for a while.)

The wide-open "talk about anything" software is still a few years out, I
think. But, having a "human-like" conversation/interaction with a bot/AI
already happens today.

------
ommunist
Perhaps we forgot. Eliza bot written in PROLOG by Joseph Weizenbaum circa 1964
at MIT was quite up for the task. I am sure it is still about 90% more
conversational than 80% of the current online English-speaking audience.

------
voltagex_
This mentions being able to build very simple faux-conversational interfaces
within a hackathon. I've got one such hackathon coming up in a few months,
could I go from zero knowledge to working proof-of-concept?

~~~
mmitchell
I believe he was talking about using an existing tool to add a 'level 1 —
command & response' style interface to whatever your project is. So yeah,
using something like wit.ai you could likely integrate that style of interface
with zero prior knowledge fairly quickly.

------
vpkaihla
Should we come up with a language that's easy to teach for both computers and
humans? A sort of generic human/machine DSL?

------
jonbaer
It was all done years ago ...
[https://en.wikipedia.org/wiki/AIML](https://en.wikipedia.org/wiki/AIML)

~~~
kzhahou
If by done, you mean "a team designed a rigid flow-chart and rules-based
engine where you can painfully map out every specific interaction in your
system"... then yes!

------
awinter-py
surprising that 'theory of mind' doesn't appear in the article.

