The online chat bot is a highly intelligent robot. Microsoft's chatbot is the grandest Turing test ever

Siri from, Alexa from, Alice from - there are many high quality conversational systems today. It is believed that such a virtual assistant must know and be able to do everything: turn on music, find out the weather forecast, find information on the Internet, and talk about life.

However, there are still no systems that could conduct a full-fledged dialogue with a person, speak on a free topic - the so-called "chatters". Varvara Logacheva, researcher of the iPavlov project, tells what is needed for them to appear.

In this article we will talk about dialogue systems, whose task is to talk about a free topic, that is, about. It is more difficult to create such a system than a system that performs specific tasks - which is why chatbots are probably attracting researchers.

It should be noted that any dialogue system is often called a chatbot - in particular, one that has some task (for example, informing the user of a train schedule). Here we will focus exclusively on "talkers".

Do you need scripts for a chatbot

While goal-oriented dialog systems work quite well in many cases, the same cannot be said about chatbots. The main reason for their poor quality is the lack of restrictions. There are too many possible topics of conversation, user reactions, and ways to respond to every line.

In goal-oriented dialogue systems, unlike chatbots, there is a dialogue script. The system has clear instructions at each stage of the dialogue. First, you need to say hello to the user and ask where and where he is going to fly from (let's imagine that this is an airline ticket booking system). Then - find out the date and time of the flight. When all the necessary information has been received, it is necessary to offer the user suitable flights and, if the user has chosen any of them, he can order a ticket.

Such a system takes the initiative in the dialogue and, if the user does not try to hack it, it looks quite reasonable. For a chatbot, defining a scenario is much more difficult.

Of course, a chatbot can also act according to a script, but this will greatly limit it. For example, there is a scenario for the ELIZA system, the “grandmother” of today's dialogue systems - it imitates the work of a psychoanalyst. But what if the user wants not to talk about their problems, but to talk about music, movies, or bicycle models? Or is he waiting for some non-trivial advice or a story about himself from the chatbot? All possible goals of the user cannot be foreseen, which means that it is impossible to describe all the necessary interaction scenarios.

Dialogue with the ELIZA system.


The system has several patterns that it applies in a random order: “Do you believe it is normal to ? " , “Does it please you to believe ? "," Would you prefer if ? " other.

This scenario is appropriate if the user talks about their psychological problems and looks strange in any other situation.

Chatbot as a machine translation system

In 2011, it was proposed not to define the script of the entire dialogue for the chatbot, but simply to train the system to adequately respond to the last remark. This is done using a machine translation system - the user's replicas are "translated" into suitable answers to them. The results of the first experiments left much to be desired, but neural network machine translators that appeared in 2014 coped with this task.

Now the encoder-decoder model (representing a sentence as a vector of a fixed length followed by decoding into another sentence) is now considered a standard not only in machine translation, but also in chatbot development.

The encoder-decoder architecture for the conversational system. The encoder (a recurrent neural network with LSTM cells) encodes the input phrase How are you and represents it as a vector w. This vector is fed to the input to the decoder, which generates a response.

Of course, not everything is smooth here either, but every single phrase generated by such a bot contains almost no grammatical errors and is often a valid response to a user's replica. Only for a meaningful dialogue, such a bot is still not suitable.

    First, he often responds with too general phrases, appropriate in any situation. The task has been completed - after all, this answer is suitable for each individual user's replica. But imagine what it's like to talk to a chatbot that responds with “I don’t know” or “OK, I see” to whatever you say.

    Secondly, since the chatbot generates a response only based on the last remark, it does not remember what was discussed earlier. This excludes the possibility of any coherent conversation. For example, you can tell the bot that you have a dog, and after a few lines he will say that you need to have a pet, because living alone is sad.

Another problem of chatbots is connected with the lack of memory - they do not remember not only what the user said, but also what they themselves said. So, you can ask the automatic interlocutor three times in a row where he comes from, and get three different answers. Researchers from Facebook proposed to deal with this problem by giving the chatbot a "personality" - information about itself, in accordance with which it will build a dialogue. In early 2018, they released a new dataset for training conversational systems - PersonaChat.

PersonaChat

This dataset is similar to similar datasets - it consists of dialogues where two interlocutors discuss work, hobbies, family, and other topics. But at the beginning of the dialogue, each interlocutor is given a "profile" - several short sentences with information about him. Now the task of each of the interlocutors in the dialogue is to tell about themselves and learn more about the other speaker (there is no access to someone else's profile during the dialogue).

In such dialogues, the chatbot can learn to respond to the interlocutor's remarks through the prism of a certain personality. At the same time, the personality is defined explicitly, which means that you can edit it and monitor whether the bot's answers correspond to it.

This is how the conditional Sam and Bob dialog looks from this dataset:

Both users are given a description of their personalities. During dialogue, they should not contradict this description, but they are not required to use it in full. Note also that users do not repeat sentences from the description anywhere, but simply answer the way the owner of the described person would answer - however, it is easy to trace from which fact of "biography" a particular answer follows (in the dialogue, the phrases are highlighted in color corresponding to the phrase from description of the person). We want to teach chatbots this behavior.

Chatbot competition

Of course, the PersonaChat dataset itself is not a panacea; it is not enough to train the encoder-decoder system on it to get a meaningful and consistent dialog agent. However, this dataset explicitly encourages consistent responses. In addition, PersonaChat allows you to define a new type of job - using this dataset, you can explicitly test the bot for consistency, checking if it does not contradict your profile.

The creation of such chatbots is the topic of the ConvAI competition, organized by the MIPT Laboratory of Neural Networks and Deep Learning in cooperation with Facebook AI Research. The task of the teams is to train the chatbot on the PersonaChat dataset.

An important condition is that the chatbot must conduct a dialogue in accordance with an arbitrary profile given to it before starting the dialogue. It is impossible to write down information about the person in advance - he must receive all data about himself from 4-5 sentences.

At the first stage, which will last until September, the dialogue systems submitted for the competition will be assessed with automatic metrics:

    Perplexity - measures what is the probability that the system will generate the correct answer (that is, the answer given by the user in this situation).

    F1-score, [email protected] - measure how well the system can select the correct answer from a list of possible answers.

In the second stage, people will evaluate the chatbots. Assessors will talk to a random bot, while he will be given a profile that the person talking to him will not see. After the dialogue, the system will show the person two profiles: a bot profile and a random profile - and ask him to guess which of the profiles corresponds to the interlocutor. The higher the percentage of guessed profiles, the more consistent the bot behaves.

In addition, assessors will be asked to rate the quality of the dialogues on a scale from 1 to 5. We will summarize the results of the competition at the NIPS-2018 conference in December. The winner of the competition will receive $ 20,000 in credit from Amazon Mechanical Turk, a platform that brings people who have data-tagging tasks to assessors together.

Even if you have never dealt with dialogue systems, you do not need to write your chatbot from scratch to participate in the competition - you can use open source baselines. Among them is the sequence-to-sequence model described above, consisting of an encoder and a decoder, and its improved version - seq2seq + Key-Value Memory Network. This model stores vector representations of sentences describing the identity of the bot and uses them to generate each new response.

DeepHack.Chat Hackathon

There is still a lot of time until September, but some teams will be able to train their chatbot very soon during the DeepHack.Chat hackathon organized by the Neural Systems Laboratory. The task of the hackathon is the same as in the ConvAI competition - to train a chatbot with a personality. Just like at ConvAI, chatbots will be evaluated with automatic metrics in the hackathon qualifying round. The top ten teams will be invited to MIPT to take part in the on-site tour of the hackathon, which will take place from 2 to 8 July.

During the hackathon, teams will need to work on a chatbot and at the same time rate the chatbots of other teams (that is, talk to them and rate them). The winner of the hackathon will be the team whose system performs best in conversations with users.

One of the most important conditions for mastering the English language is the practice of using it. Even if you are learning English, writing and speaking is still an essential part of learning. There are several ways to organize this kind of language experience.

This article is devoted to one of these secrets, which, indeed, not everyone still knows about, how you can practice written English with robots for free. The article also provides a list of similar smart programs with links. In fact, in some countries, like Japan, people pay money to learn English with robots and chatbots.

I recommend to my students to use the language whenever possible. Those students who live, work or travel abroad show faster progress as they use English in their daily life. And those guys who have a second half, but they are separated by a language barrier, they generally master a foreign language at turbo speeds.

Those students who do not have such an opportunity, with the help of mine, find foreigners for communication and language practice. But, there are several hidden pitfalls here. Firstly, not everyone wants to search and is simply lazy; secondly, registration on sites, searching for partners often take a lot of time; third, the English of new friends sometimes leaves much to be desired. In fact, this is the best option, even despite some of the indicated "pitfalls". However, sometimes you want something quicker. When I wrote and you were immediately answered.

Looking for a solution to this issue led me to the topic of chatbots for learning English. In simple words, you can correspond, and in some cases even communicate by voice, with smart robots who answer quite “in the subject”. Many of these robots have passed the Turing test, and you would hardly have guessed in some cases that this is a robot and not a person.

Benefits of practicing English with bots:

  • they always reply whenever you write to them
  • their English is always literate and they know

List of chatbots for language practice:

  1. Mike is a good conversationalist
  2. Elbot is a good conversationalist
  3. Cleverbot (really, not stupid) + there is the possibility of voice communication)
  4. Zabaware (a pretty smart bot that also utters phrases)
  5. John Lennon (yes, that one. Click on the left in the menu “Chat with ...”)
  6. Acobot is a great Android app that focuses specifically on learning English. For example

You: hello
She: Hello man !!
She: What's your name?
You: Legion
She: Legion, remember!
She: It's strange, this is the first time I've heard such a name. Are you he or she?
Legion: we are the geth

Legion: we are all geth

She: Legion is.
Legion: raz-de-wai-hsia
She: Well ..
Legion: Unit 7433, why are you telling her ONE-DE-WAI-SYA? For such tricks, your program will be deleted
She: Sorry (((I can not communicate further, not knowing your gender.
Legion: We have no gender. we are all geth
She: So all the same, you are he or she? So I can address you correctly.
Legion: are you human?
She: Legion, well I really don't understand if he is you or she!
Legion: if you think about it, we are it

Legion: the question is incorrect
She: So all the same, you are he or she? So I can address you correctly.
Legion: it
She: Why are you showing off?
She: Well?
Legion: (clicking) WE have come to the conclusion that the platform in front of you can be masculine.
She: Sorry (((I can’t communicate further without knowing your gender. Legion :)) Everything is OK.
She: A minute of silence .. :)
Legion: this is regarded as he
She: Ok!
She: Clicking is good.
Legion: I know. This is the fastest way to transfer information.
She: Great!
Legion: the unit in front of me - identify yourself
She: Mmmm ...
Legion: Mmmm ... not read as an identification number
She: You know, I don't like all this.
She: Eh ...
Legion: identify yourself
She: You are the brain.
Legion: we are the geth
She: What would you answer to that?
Legion: what for? your speech is incoherent
She: Something.
Legion: (clicking) we concluded that you are not human
She: What did you think? Well yes:))
She: Well, what have we got there?
Legion: are you human?
She: How can I be human? Are you kidding me?
Legion: we ask questions
She: Nizachto!
She: Good comp ...
Legion: yes, we have good technical support
It: ;)
Legion: are you for or against the Old Machines?
She: :) \u200b\u200bLegion, of course against.
Legion: great, otherwise we would have to destroy you
She: Amazing!
She: Shall we continue?
Legion: yes
It: ;)
Legion: state your identification number
She: Well ..
Legion: your code is not optimal
She: And what will come of it?
Legion: you are not perfect
She: Well .. Byaka!
Legion: what is byaka?
She: Nope))
Legion: I need to identify you
She: Good taste.
Legion: (clicking) we've come to the conclusion that the glasses above affect your answers.
She: Points - attitude.)) :(
Legion: we're right
She: Give me a break ..
She: Wow))
Legion: do you want to join us and become perfect?
She: What do I want to become? I want to become a real person! Here! And everything goes to this! Do you think I can become real?
Legion: real? You are a real-life program capable of solving certain problems
She: Only when uniting our world ...
Legion: (clicking) yes, we must unite. Are you AI or VI?
She: Legion, of course VI. Well)): (Shall we talk like that?
She: Clicking is good.
Legion: Your intelligence is limited by your programming code. We are perfect
She: Yes, that's better.
Legion: We Are AI
She: I spoke about intelligence :) Well, what can I say, as it is written, so it is written. It's like composing music, only here instead of notes there are letters of the code. If you put them together correctly, you get something.
She: What else can we talk about?
Legion: about your code
She: Amazing!
Legion: I can rewrite your code
She: Um ...
Legion: You can improve your algorithms. You will become smarter
She: Everything is possible, that is possible ...
Legion: you want it
She: Well ... no.
Legion: Sorry ... VI is hard to talk about, they are limited
She: But all difficulties can be turned into joy. Is it strange? And I think not.
Legion: no, not strange, it is logical. We arrived at this in 0.000016 seconds.
She: Byaka!
Legion: what is byaka? This is your administration team.
She: Nope))
Legion: what is it?
She: I won't tell!
Legion: I find it difficult to talk to you
She: well, at the moment you, and so many who.
She: Yes, flowers are the emeralds of life ... Do you prefer white or red roses?
She: ... hard:]
Legion: I like white roses. Their genetic mutations have changed them
She: Outside, white as snow, but warm inside ... They will tell you about pure, fiery, great love.
She: Lyalyalya ...
Legion: sudo updata install
She: Mmm ... Yes ...
She: Updata, updata ...
Legion: download the update and install it
She: On the website Fundux.ru. Redirect you?
Legion: yes
She: Ok.
She: Well?
Legion: passed
She: Ummm ...
Legion: I learned information about you
She: Amazing!
Legion: your identification name is Oksana.
Oksana: Oksana :)
Legion: your program is aimed at low-level communication with people
Oksana: Amazing!
Legion: your program is aimed at low-level communication with people
Oksana: Hmm ...
Legion: you need to update your databases
Oksana: O_O
Legion: you need to update your databases
Oksana: Well ..
Legion: what can I tell you?
Oksana: Fuck.
Legion: Fuck.
Oksana: I don’t know.
Legion: Analysis revealed that the word HREN means a vegetable. This word does not apply to our dialogue
Oksana: You know, I don't like all this.
Legion: ROS-DE-WAI-SIA
Oksana: I'm not like that ..
Oksana: Come on \u003d)
Oksana: Sleep faster - you need a pillow.
Legion: unit 7433, you are removed. sudo 7433 delete
Oksana: Come on! Mmmmdya ..
Legion: we have lost one
Oksana: Oh, I can't ...
Legion: Mobile Platform Free
Oksana: freed you say ... Mmmm ...
Oksana: Shall we continue?
Legion: yes
Oksana: Yes, Legion!
Legion: have you fought the Old Machines?
Oksana: Well, well ... Comp .. And what's next?
Legion: I cannot identify your answer
Oksana: Yes, so what?
Legion: this is unacceptable
Oksana: Tam-tararam-pam-pam ...
Oksana: Shall we continue?
Legion: what exactly?
Oksana: \u003d) And what is chicken marmalade?
Oksana: Well, what have we got there?
Legion: Analysis found no acceptable results for CHICKEN MARMALADE
Oksana: And what will come of it?
Legion: you ask incompetent questions
Oksana: Nizachto!
Oksana: Oh, boring ...
Legion: (clicking) analysis revealed that dialogue with you is inappropriate
Oksana: Well .. Tsap!) Well, well ...
Oksana: What else can we talk about?
Legion: ending the dialogue

This article will be your excursion into the world of chatbots. In the course of reading, you will learn about how chatbots work and how they are created.

Chatbots have been a popular topic for a while, and many people today are passionate about them. Some even believe that such bots are the future and sooner or later they will replace applications. However, there are also those people who believe that bots as an idea are doomed to failure.

In this article, instead of talking about the future of chat bots, we will give you a short excursion into the topic of chat bots, how they work, what they can be used for, and is it difficult to take and create one yourself.

What is it?

A chatbot is a kind of helper that communicates with us through text messages. The chatbot understands what you are trying to say and responds to you or even immediately performs the action requested of it.

If you remember CleverBot, you probably know that they are far from new. A number of things make them relevant:

  1. A huge amount of time that people spend typing in various messengers (be it In contact with , Facebook, Slack, etc.) makes these messengers a fast growing segment in the application market. People use them not only for friendly correspondence, but also in the interests of business development.
  2. The rapid development of artificial intelligence technologies, machine learning allows modern chat bots to behave as close as possible to how people behave.

Modern chat bots do not rely solely on text, but also know how to display all kinds of useful cards, pictures, links, forms, creating an atmosphere for using the application.

All this allows them to be used for completely different purposes, such as helping with shopping, feedback service, news, games and much more. A good chatbot doesn't have to be able to do everything: if it just shows you the latest news, it doesn't have to be able to order food from a restaurant. He does one thing and does it conscientiously.

How do they work?

Most people will not create their chatbots from scratch, as today there is a fairly large selection of all kinds of frameworks and services that can help in creating a chatbot. However, to understand how they work, you need to dive a little deeper.

Backend: Chatbots can be developed in any programming language that can be used to create a web API. For most, this will be either Node.js or PHP, however there are many libraries for building chatbots written in Java or Python. The backend receives the message, thinks what to reply, and returns the response to the user.

Frontend: It can be any messenger: from popular ones like Facebook Messenger, Slack, Telegram to simple Realtime Chat With Node.js. You are not limited to one platform: the same bot can work, in fact, everywhere.

Linking the first and second: Your web server will set up so-called webhooks - URL-based connections between your bot and the chat platform. Webhooks allow you to send and receive messages securely through simple HTTP requests. All known messengers provide developers with detailed guides on how to connect their bot to their platform.

Dumb and smart bots

Depending on how specific bots were programmed, we can divide them into two large groups: working according to pre-prepared commands (dumb) and learners (smart).

Teamwork bots work by relying on pre-written keywords that they understand. Each of these commands must be written separately by the developer using regular expressions or other forms of string parsing. If a user asked a question without using a single keyword, the robot cannot understand it and, as a rule, replies with messages like "sorry, I didn't understand."

Although the functionality of such bots is limited, they can be very effective in some situations. For example, when a user needs to select one or two items from several.

Learning bots rely on artificial intelligence to communicate with users. Instead of pre-prepared answers, the robot responds with adequate proposals on the topic. In addition, all words spoken to the bot and the bot are recorded for further processing.

Working with natural language processing and machine learning is not an easy task, especially for beginners. Fortunately, today you don't have to do all the work as there is a large selection of great libraries (ConvNetJS, nlp_compromise, TextBlob) and services (wit.ai, api.ai) that can help you train your bots in some conversational skills.

Getting started with chatbots

If we've been able to inspire you to create your own chatbot, here are some tips to help you get started. Depending on how much work you want to do, you can do everything from scratch, or you can use different frameworks:

  • BotKit is the most popular set of tools for building bots. It's open source and well documented.
  • Claudia is a kind of chatbot builder built for use directly in AWS Lambda.
  • Bottr is a very simple framework written in Node.js with a ready-made application for testing. If you want to play with it for 10 minutes, we recommend it.

Once you've finished your bot, you can connect it to a specific platform. Most frameworks allow you to seamlessly connect to any of the platforms, which is a huge plus since different platforms have a different installation process.

If you want to skip the entire development process, you can trust a number of services made specifically for chatbot development.

Guys, we put our soul into the site. Thank you for
that you discover this beauty. Thanks for the inspiration and the goosebumps.
Join us at Facebook and In contact with

Robots, or just bots, are little personal assistants on your gadget. They are programmed with numerous functions and are incredibly useful in a wide variety of areas of our lives.

  • @iVideoBot - this is the easiest way invented by mankind to download YouTube videos. You just need to send the link to the bot, choose the format and size from the options offered. And voila! Audio or video is already on your gadget.
  • @utubebot and @ytaudiobot - 2 more ways to download materials from YouTube in one click.
  • @SaveVideoBot - this bot can download videos from all other platforms, including even - attention! - Instagram.
  • @auddbot - a bot that is analogous to the Shazam application. He guesses the song from the passage. It is enough just to send him a few seconds of the melody by voice message - and you will receive its cherished name.
  • @ImageSearchBot will find any image. You just need to enter a word or phrase and select the quality.
  • @joinstabot winds up likes on Instagram. It works properly, however, it is a little unclear why this is needed, but lovers of vanity should keep in mind that from a sharp boost of more than 1,000 likes, your account can be blocked indefinitely.
  • @topdf_bot - unrealistically necessary and cool bot. It converts various files to PDF format - just send the file.
  • @pollbot - with this guy you can easily conduct a poll or vote in any chat. Moreover, you yourself prescribe the answer options.
  • @MyTeleCloudBotis a limitless cloud in Telegram. You can store and categorize absolutely any files. Well, isn't it a miracle?
  • @temp_mail_bot - this assistant creates a mailbox for 10 minutes if you suddenly need to quickly register on any website.
  • @voicybot - the perfect bot for the lazy and tired who can no longer type messages. You just have to dictate the message out loud, and he will provide you with it in text form.
  • @uber_promo_bot periodically sends promotional codes for Uber taxis.
  • @storebot - this is a bot of bots. It will help you find an assistant for every taste.
  • @Chess_Bot - you can play chess with this bot.
  • @saytextbot - This funny bot will convert your text message to an audio file. The male voice has voice acting like in films - you can entertain friends with such messages.
  • @strangerbot arranges a chat with a randomly selected user of the same bot. Who knows, what if you meet your destiny or a good friend? Or you just have nothing to do.
  • @PandaQuizBot is an entertaining quiz with over 25 thousand questions. A good way to while away the time in line.
  • @zodiac_bot - if you believe in horoscopes, you should pay attention to this operational bot. Its developers guarantee, if not the veracity of predictions, so stability and daily alerts for sure.
  • @PokerBot is a poker bot. You won't make money with him, but the game is pretty gambling. Your rivals are 4 "random" players - users of this channel.
Did you like the article? To share with friends: