Genie Community Forum

Chatting with the virtual assistant

Do you like to chat to your assistant?
Would you treat it like a companion or embodied agent, or just a box that does things?

For example, questions and commands like these are supported by other assistants:

  • “who are you?”
  • “how old are you?”
  • “i love you”
  • “are you smart?”
  • “are you happy?”

Would you use these (for fun, curiosity, etc.)? Are they meaningful?
Please give us comments below!

Hi Giovanni,

Short answer:
They are meaningful.

Long answer:
An assistant always has a “botpersona”, even where assistant developers consider it as a medium to just “does things”. See splendid intro on that by Wally Brill (now in Google Conversational Design Team) https://www.youtube.com/watch?v=tUbB_FbIqPw

“who are you?”
“how old are you?”
“i love you”
“are you smart?”
“are you happy?”

These are all examples of “chit-chat” (in conversational design parlance). Google Assistant/Home and Amazon Alexa have thousands of these. Just about these “useless” chitchats, I personally appreciate the Google (Home) humor (very well done also in our language localization, see my and my wife dated thoughts: https://convcomp.it/lumorismo-del-sasso-parlante-di-google-15b73d1f0a6c, https://convcomp.it/oggi-piove-senza-pioggia-non-ci-saranno-arcobaleni-9e958249911f ).

About how to implement chichats (single-turn / “back and forth”), a basic solution is to have a big question/answering lookup ( :/) . You have your sentence classifier (Baysian, regexp, neural, whatever). I reckon Google & Amazon act in that way. They have people statically create a unique botpersona.
For insiparations, see how dialogflow.com and ChatScript realize chitchats.

Now
the next more interesting step, a challenging research topic, is about how to realize an assistant that adapts his bot persona to the “psychological profile” of each user… in a private & personal way :wink:

giorgio

Thanks for all the references.
I’m not really worried about the implementation (some intent classifier will suffice, because these commands do not combine compositionally and don’t carry much context), but I worry about the amount of chit-chat that needs to be programmed, and how much to prioritize.

I do wonder though if there is a way to avoid heavy implementation efforts. True chit-chat agents use a different tech, end-to-end neural dialog generation trained on some large dialog corpus like Reddit. On one hand end-to-end training is easy to build and on the other hand is hard to control (if you don’t control it, you get Tay, the Microsoft tweetbot that went off the rails). This is more of a research question though.

I’m not really worried about the implementation (some intent classifier will suffice,

yes

because these commands do not combine compositionally true and don’t carry much context),

almost true. But to be honest context is KEY, but I agree if we assume that we’ll settle for a a single-turn no-context back and forward like

how are you?
I’m fine, thank you.


but I worry about the amount of chit-chat that needs to be programmed, and how much to prioritize.
I do wonder though if there is a way to avoid heavy implementation efforts.

the good news is that a static look up table (let me simplify) is “just” a data entry/for designer job :slight_smile:

True chit-chat agents use a different tech, end-to-end neural dialog generation trained on some large dialog corpus like Reddit.

hmmm, I give you two famous examples where there is not machine learning involved:

  1. Google / Amazon assistants maybe (not fully sure, to be honest) use hard-coded back and forward question/answer chitchats:
  2. Mitsuku https://www.pandorabots.com/mitsuku/ (Leibner prize winner, etc,) here is all about contextual chitchats! It’s handcrafted by a single author, in more than 10 years of authoring.

On one hand end-to-end training is easy to build and on the other hand is hard to control (if you don’t control it, you get Tay, the Microsoft tweetbot that went off the rails). This is more of a research question though.

But wait :slight_smile: Tay was a fully chatbot published as an open account on twitter (with bad crowdsoursing filtering). The good news for Almond is that your creature is private and it sustains 1-to-1 private conversations, right?

So the research I was mentioning is about this idea:

As I well understood, on Almond you are doing great job with LUINet+ThingTalk, following the concept of an assistant in the “agentive technology” meaning (Google would call this: “to get things done”). I really love the natural language programming by user! That’s amazing.

Beside that, one could explore the way to build-up the Almond botpersona. Chitchats a part, a possible idea is to let the user to program (bad term), say to share with the bot personal / user “facts” to build the Almond personality perfect for the user. You mentioned Tay and come in my mind that is maybe not so hard to teach to Almond facts in natural language… in the simplest way:

Almond, learn that I’m born in 1963. I’m Italian and I’m living in Genova, Italy.
blablabla

time after time Almond could set-up a knowledge graph of user facts (to be used also as thingtalk ingredient…)

Does it make sense for you?