Talks S2E3 (Merve Noyan): BYOB - Build Your Own Bot

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone and welcome to talks number three today we have with the smurf he's from turkey and works for i am why i am which was very difficult for me to pronounce but and she working in conversational ai for a long time now and today she's going to talk about conversational ai chatbots and by the end of the talk we will be able to build our own what's right murph yeah it's beginner and intermediate [Music] from scratch and also it contains some of the know-hows i gained from not having a senior around here i i have done some benchmarking and stuff and i want to share what i actually know yeah very excited to learn looking forward to the talk and if you have any questions feel free to ask in the youtube chat or the slide link that i will be sharing and we can interrupt you and ask questions right okay sure sure yeah okay without further ado the screen is all yours okay let me share my so today i'm going to talk a bit about conversational ai if you don't know about me i've been doing chat bots for living for two years over two years i guess i am a contributor at raza which is a chatbot framework and i'm a google developer expert in machine learning and so far i have done two chat bots um below i i am seeing some uh let me let me keep this uh yeah so so far i have done two uh chat bots one for one was for um automation of uh service companies chatbots like there are few actions that that life supports actually do it's like um canceling appointment rescheduling appointment or scheduling one so it's easy to automate and your domain is really narrow your world the world you are working in is really narrow your the the words that your customers are going to end user is going to use is very narrow that's why it's relatively easy to make and i have also made this a real field friend vehicle called sid it is more of a friend like chat spot like replica but it's more um it's it's it's not it doesn't use um generating models and it's is more focused on health and health based applications so i'm going to talk about the difference between two and how to make your own what are the different best practices on making them um but for starters conversational is the set of technologies behind automated and automated messaging and speech-enabled applications chatbot is just an uh subdomain of conversational ai there are siri alexa google home most popular ones and there are chat box and chatbots do have levels uh first level is uh notification assistance which is just like an sms that you get or like a push notification that you cannot answer it should it's it just talks to you but it doesn't you you cannot talk back um second level of conversational assistance is the faqs since i'm sorry the doors are just passing uh faq assistance which is more like um it doesn't provide you a personal experience uh you are just going to ask a question and there is this kb in the in the back end and it's going to extract the answer and send it back to you or you can define the answers to those questions this is basic nature language understanding um you know question answering application it doesn't really provide you a personalized experience and the level three which is what we are currently on is providing you a assistance that is personalized and customized for you and your uh background of that service of that website it is going to like you are going to ask i need to renew my renters insurance how much will it be and it is going to ask you a couple of questions or it is going to get some information from the back end and just going to calculate something for you and return it back to you uh so this is a bit more personal and there are a few use cases like you can use it for marketing uh you can use it for robotic process automation which is i feel like it's the mo it's mostly used for robots process automation uh you can just you know book up flights or you can you can cancel your cancel your flight you can do a check-in like klm uses facebook messenger for instance uh it it's also going to provide you a personal experience based on where you are going to fly for instance like this expedia spot if you are flying to barcelona for instance is going to provide you this uh place recommendations like restaurant hotel recommendations based on where we are flying uh there are also banking bots uh which is mostly like the divi by this use case i have seen of conversation layer is in banks um i have also seen some you know ecommerce websites around here at least um using uh chatbots most people call chat spots um like bots with buttons chat spots but it's actually it's not right because you cannot talk to it so not every chatbot in my opinion is actually a chatbot because most of them are actually you know redirecting you through buttons and stuff and you cannot express yourself and what is your problem which is actually annoying uh there are you know food ordering bots and stuff but where does the machine learning come in it's mostly the intense recognition entity recognition tasks that are going that i'm going to express explain later do not panic if you don't understand this you probably don't have any idea uh there is dialogue management ai and rule-based systems come in you know you extract some information and there are generated models that you can actually use but what is intended recognition so um there are are you going to say something abhishek so yeah um there are some people in the chat they're concerned about the cat is that your cat it might fall down jeez yes she never falls down she is like this really balanced bellows creature so she's she's a big beard yeah so one question that i had was the difference between chatbots and conversational ai and why there are so many different kinds of terms going around okay yeah so conversational ai is this wide um wide domain of different technologies but it generally means that you are actually speaking to that bots or technology you are expressing yourself it understands you and talks back to you it's that's why you know speech tech uh like uh siri alexa are also under conversational ai but chatbots is mostly you talk like you type something and it chats and it talks back to you uh the reason why they are called all conversational is i feel like it's mostly because they understand you and in the background they are going to automate some stuff so uh like the bot part i guess comes from there because it automates things like rpa you know but i mean there is probably a philosophical thing but this is a definition i have found is a set of technologies behind automated messaging and speech enabled applications that offer human-like interactions between computers and humans so we talk i guess but some of these they understand the context they understand different entities that you're talking about right yeah but you know like the button chatbots i mean all what's in chat bots i don't i don't think that they are actually conversational agents that's an opinion and it's completely controversial and i don't want anyone to be offended like if your button but is actually working then it's fine but most of the time it just doesn't work i just can't express myself and my use case is usually different so and it doesn't even let me express my um my my problem my trouble with that service or whatsoever yeah so anyway so intent recognition is actually a task that is solved in chatbots intent recognition is basically that you your bot is trying to understand the what you are talking about uh it's like for instance you say show me a mexican place in the center and what you are going to do is you are what your boat is going to do is to you know extract uh extract a mexican restaurant in the city center uh from the back end and prompt it back to your user so that you they can do whatever they want but there is tons of different way to say show me a mexican place in the center and these all have some common way of saying it you don't need to define every single way that the user has to say and do its rule in a rule-based way you just define an intent called restaurant search and below that you have your examples think about them like training example it's every single way that user can say it but it can extrapolate when the user says something different out of your training data so that's where machine learning comes in and these mexican and the center are actually uh the the entities that you need to extract from that conversation the context that you are you want to get so that you can actually send them to backhand and get the information that the user wants so these are these can be considered as entities and what you mean here like i could have made it um i don't know a generating model but your domain is very narrow and in your domain italian means something different than the nationality or mexican means something different than nationality it means uh the cuisine of that nationality it's different that's why you define your entities one by one and each of the entities match something in your back end and that you are trying to get so this is also called slot filling you have some slots to provide service for the user and those slots are filled with the entities that you are recognizing from the user's inputs so when you when the user says show me a mexican restaurant in the city center you take those entities the center and the mexican and then send it to backhand and get something back and then just prompt it and there is named entity recognition which is a quite popular task uh i can never define named entities by the way like there is these are entities that are unique i would say like um in here google is the organization obviously uh that's why it is called named and it is abhishek do you have any idea how to express named entity from you know like different than an entity i always say it's unique but i don't think that my definition is awesome okay so named entities are the entities that you want to extract also you know your email address your phone number your you know a date is a named entity that you want to extract and you can extract them through name density recognition models also there is this i didn't put this in a slide but there is this uh library developed by facebook called ducklink that is going to extract uh emails and stuff so that you don't have to train the whole model to you know extract emails because it's hard task to do in my opinion uh these are named entities and you need to just catch that catch them you know if you're going to do a booking or something you need to extract the dates and time uh also duckling recognizes uh when you say next monday it recognizes what date is it actually is mapped to that's very cool in my opinion you can use stacy you can use that thing whatever you want to extract named entity but it's not really so you shouldn't really solve it on your own that's that's another opinion so another problem here we have a question about the data and um it's about what are the recommended number of utterances required to train a custom machine learning entity and uh let's uh have one one more question alongside this like uh since i'd see that you are using spacey for named entity recognition and okay this is english language what would you do if you have to uh if you have to work in a different language since in europe there are so many different kinds of languages being spoken and all over the world right so how would you go about building your own custom entity recognition model how much data would you collect and would you label the data on your own i mean i just want to know the thought process there yeah and actually this is a really cool question i have never solved it but currently i my master's thesis is about morphology based language models and uh if you it's about questioning if you improve the morphology you know parsing part in morphologically rich languages like turkish can you improve the name the entity recognition task as well so i would say i if i were going to train it there are already models out there anyway like i don't know why i would have need to train it to be honest like some of them are universal as i have just told you like you know the ones that duck thing can uh exactly can extract but some of them are um you can you can get it through with language models fine tuned on name dentist recognition you don't have to i don't think you have to train it right i i wouldn't i wouldn't train it on my own i guess are you saying what if we don't have it or something yeah so my question was like if i'm working on a language which has very low resource which doesn't have a pre-trained uh model or pre-trained entity recognition model or if i'm working in a domain so if i'm building a chatbot for a domain um that has different kinds of entities than we know about i mean these are two different tasks one is one is the entity recognition and one is named recognition so name them for named recognitions what i have observed is that uh you in my in my uh in turkish like i speak i speak turkish and work in turkish what i have observed is that people actually scrape news because there is a lot of named entities in uh newspapers and people scrape it and then fine-tune you know like a birth model on uh those in that data and then just use it uh i don't know about the size of the data though but it's it's it's not that small uh for the na for the entity recognition uh parts there are actually a few tips and tricks let me just go like this like for instance in here you see you know ordering food the problem is that when you define too many uh examples for all of the entities that ex that exist in the world like for instance in my in the chatbot i'm working at the problem is that in health applications like we defined every single food on the earth uh every single action like you know yoga we have defined so many things that you know asking you know like defining them in the intent examples itself is actually a hard thing so we have defined few intent examples and we have done lookup entity lookup tables which actually uh prevents if it actually which actually helps you not flood your intent examples with entities because if you repeat this uh you know like i want to order this i want to order that i want to order x y uh it creates a bias i'm going to come to this later it creates a bias that's why uh you shouldn't flood your intent data with entities instead you use something called lookup tables which contains every single entity example and the entity group that it is that it is defined under that that might be a bit confusing i'm going to come to this later it's just i wanted to say it it doesn't answer your question i feel like i don't know if i have answered your question there is one more question and it's about uh entity and intent and how they are related to each other so the question the exact question is how do you handle an intent that is not sorry let's take this one later the question is does entity recognition has any impact on intent classification task or are they both completely different so at the state of arts and like raza uses this dual entity and intense recognition architecture which is from what i get from the paper it works like by easier like when you say it like moscone entity like i want to order x uh or you know like i i want to mask mask the word and then uh say pizza and like given that there is pizza it's a high probability that the masked word is actually order like think about it like this it's a bit sort of biasing in my opinion it's like given that the entity is x what is the probability that intent is y and the y's yourself i i don't know if this answers the question so like just just mask the word um a show here if you have it in the training examples and when the if the user is inputting something uh you know like if they make a typo or something for instance in the word show it it is still going to get that intent is actually ordering because you have the word mexican and the center which which helps with the uh recognition as well so they are not they are a bit intertwined uh so another thing we need to solve is dialogue management which is quite hard when it especially when it comes to making a human-like friend because you need to think about every single uh scenario that the user can type after one another so for instance in here the user is saying uh do i still have credit on credit on my account from that refund i got and you need to answer it and then you know like wait for user to say something and then they are going to say are you about you know changing context every every single turn but you need to get back to you know ordering process again which is a bit of mix of ux and also you know um they are handling it with um you know state manages estate machines and other uh ai and rule-based methods that i'm not going to touch today uh they are um they are also using transformers in this by the way because you can have a long sequence of um of uh conversation turns and it's good if you recognize the sequences so it makes sense to use transformation uh like like three turns ago i was going to order something and then both got back to it and then i still change the context and uh the bot needs to understand that you know cool place to order now thing is actually belonging to the about um you know 15 and a half dollar order if you know what i mean so you need to like get back to it that's why it's a it's actually you know like you are actually um getting help from the slots field as well and the you know information from the back end like this caused this and user hazard was going to order this and when you say you know cool placed order now you need to unders the bot needs to understand that it is that order not any other orders if you know what i mean i i cannot have a pointer like i cannot have my mouse i would have been more comfortable to shove it huh is my mouse miserable i cannot see it so like the the below green placed order now belongs to the above uh you know or there is order costs this should i place your order you know so it it it comes back uh so there are a few conversational design choices i have observed one is for automation bots one is for question answering button another one is for chat agents like replica so automation bots you can use frameworks like raza or google dialogflow you know build your intents and actions you know like the intent and what is going to be said or done when that intent is intent has arrived uh they are all based on intense entities slots and the backhand and the other one is you know question answering bots your slot feeling is minimal because you don't really need to do much um ordering and other stuff you you just um you recognize the entity and you get the you get the information related to that entity uh for the chat agents it's it's generally most of the chat agents are being done by generative models i'm going to explain why you shouldn't uh so how do you start on making a chat spot first you should define your problem is it a narrow domain box like you know that the previous one i have i have just uh shown you or the one that i have made for the service companies you know scheduling rescheduling canceling i i call them narrow domain because you don't need to recognize every single word that exists in life you just need few uh few training data or are you going to make a friend like both which is incredibly challenging and i wouldn't i wouldn't advise you to do that so if it's an error domain but define what you want to automate and see if there's a there's data available like i had data previously from the live support in the first spot that i have made uh it is if you have any that's actually relatively easy to other tasks if it's a friend like what you probably don't have much but there are conversation data sets available which i will show you in my next slides in both of the ways if you are not going to use generating models like go completely on generating models define intense entities slots for the information you'd like to extract and send to back end and the scenarios you know like the intent and action and intent and action sequences and creating your training data i'm going to i'm going to show you uh there is this survey for the uh data driven dialog systems there are machine to machine data there is human to human conversation data there is human to machine conversational data uh it's i have given the link below and the paper below uh you can you know use open subtitles if you're going to make a friend like chatbot that is actually useful uh you can what i have observed also is that if you don't think that your data is actually enough i have found a way that i have used like for instance in my chat spot i am using people like people can ask questions like what are the benefits of eating goji berry or what are the benefits of doing yoga or how many uh how many cups of water should i drink per day so if you have questions like these and you do you probably don't have it in the open subtitles or any other conversational data sets you can scrape them from surp api um like or you can simply google them and you know similar questions up here and then just i have used this t5 model with fine tuned on quora question pairs to paraphrase the questions like for instance in here i say what to do when basement floods which is a question for a service company and you can just generate data what should i do if my basement floods how can i repair a basement flood etc because the real people have actually said that once and it was trained on quora which actually is a nice way to augment your data if your data is small but use there are also um tools like markdown tools uh which generates you know you give a template um in here it can be what to do when and the basement flood is actually an entity so it replaces that basement flood with other entities and generates data but it creates a lot of bias when it comes to ex you know when it comes to inference and it um and it's not i don't really find it healthy you can still use it though but i don't really find it healthy so i don't really use it that much but it's good for you know um poc and uh mvp uh so you have to think tf idea what i mean by tfidf uh you need to you need your chatspot agent to make distinction between the intents as much as it can so what that means is that like reduced number of um common words between your intents and instead define entities like that i here i have given two different intents uh called order pizza and order pasta one is like i want to order this i want to order that you know pizza entities other one is pretty much the same so instead of doing this have one uh have one intent called order food so that your model is not going to get confused like and include all of the food entities under that one instead of just splitting it up over the types of entities uh that actually helps these these are just little things but you can overlook uh from time to time which is i which is something i also do but it helps like you need to make them less similar and less similar um so if you can also for the for the chatbots that don't have narrow domains i highly recommend you to use embeddings like birth embeddings are quite useful uh there are many uh embedding choices it the they don't you know like spacey for instance doesn't have much uh for the non-english languages fast x is a bit heavy uh i wouldn't recommend that but bite pair embeddings i i i kind of like them because they're lightweight but using birds actually helps a lot bird embeddings uh if use them if you have a white domain chatbots like a human friend this chatbot because like the word bank for instance like the easiest example ever can mean different things in different contexts uh it's better if you train your own model with no embeddings if you have a narrow domain like a bank or a food ordering chatbot or whatever uh with narrow domain so that your embeddings are more i feel like your embeddings will be more better i have benchmarked it and i have seen that it the embeddings narrow the the embeddings perform better when it comes to white domain chatbots and also there is this concept called handling fallback which probably most of you have observed when using a chatbot so fallback is when your bot cannot recognize things well or recognizes them with a really low confidence level so what i would suggest is to go you know like do a cross-validation after you train a model or train a model with cross-validation and then uh go over the misclassified intents and then analyze their confidences and determine a fallback threshold or you can simply you know improve your verse performing intense and uh and then train again and then analyze them again and determine a final fallback threshold what happens when your bot hits the fallback threshold is that it's going to say something like hey please rephrase your question i'm a bot you can express it in a better way you can um can you say it in simpler terms and stuff but it tends to get boring when your boat says says it a lot uh do you have a question of yeah so i guess this question fits um here uh so how do you handle an intent that is not in the classification output and how do you use this information as a feedback for model training next time it's it's a cool question i'm going to just touch on it um so after i deal with this so you have said something and bot didn't understand it both will ask you you know can you say it in a different way and if it's going to if if it still cannot understand then it's going to say hey can we try it one more time you know can you make it short and you say it again you know you can just uh redirect it to a human which is usually the case uh chatbots actually help you in times that you want to expand your capabilities with fewer human life support agents uh not get them out of the way completely but get them when your bot is actually struggling uh or you can just redirect to buttons which is actually useful but this one like ah there is this commercial airline in here uh that is quite professional and big and they're like they are one of the biggest airlines ever in here uh i have seen their chatbot asking the same thing again and again and again and it was it was really a bad experience you shouldn't do this like you should ask once and then ask in a different way and if it still doesn't work then redirect it to a human this is called two-phase fallback i guess like give them two chances and if it doesn't work then just redirect them to human uh so when it comes to this thing for the for the uh misclassified intents you know like if the user is not satisfied with what bot said what you can do is just put a thumbs up and thumbs down in ui next to the message and then you know a user can click it and it goes to your backend saying hey user didn't like the sensor and you can just um see what is going on over there if you don't want to log your user messages like logging is another thing you know there's gdpr constraints coming in you can anonymize your user data for this uh if especially if you're making a chatbot that is a really wide domain because people can express anything and it's if you are concerned with their privacy then uh it's a problem because you cannot look as much as you want uh there are different logging uh types for this but you usually log uh and you usually send the log confidence once uh to your backend and also send the thumbs down messages to your backhand so that you can have a look after uh why you shouldn't use generative model so i have you seen this uh this is kind of sensitive i have used i have seen this chat spot that is like a human like chat bots that was using generative models that i'm not okay it's using gpt two and three and it denies covet vaccine for instance because it's most you know like it's it's trained on reddit so it's going to be a bit sexist and racist it's it's really uncomfortable to speak about i love it i don't want anyone to take it out of it uh but it's it's a bit racist and you know also the western media used to be a bit you know woman is nurse and man is like computer science analyst ceo engineer stuff someone made this paper called manage to computer programmer as woman is to a homemaker division board and bed exam found out that you know women are more sassy and sassy and nurse and dancer and men are more journeyman genius i don't know better uh i wouldn't suggest you to use generative models like take the hard way and go intense action way instead use a lot of markdown when you are crafting your answers like there are answers you define in the in the action chatbots for each intent like make them make a lot of answers that are in context but it's make them a lot and your bot can pick them randomly so that it doesn't seem seem repetitive do not make one answer for one intent for instance and plug plug things in you know like you know username and other stuff in the answer so that user will think that is actually a personal thing or do you know information you have gathered like field slots you know a movie that user has has a fan of whatever so that user will think it's actually a personal you know nice friend i wouldn't suggest you to use um generated models they are a bit biased they are best if you are if they are not used in customer facing applications like codex codex is actually customer facing but it's a different domain i mean that's my opinion and you are working in hugging face like you probably have a better opinion it's a transformer api yeah it's about do you do you think these kind of generating generative models can be combined with the intent classification model and the response that we have to generate something better so like we don't use the generative models directly to respond to the questions but we combine it with the intent classification model in some way and try to produce better responses yeah like it was a project we were developing like if the user likes um star wars for instance let's make it a general you know fine-tune a generative model to talk about star wars that's why i said do not go completely on generative models when you are making it but you know refer to it from time to time instead which is in my opinion better like if you receive this intent on you know i want to talk about star wars with you then just go for the generating model and then just conversate and come back but i don't know if if it would create you know uh any uh anything that is going to put the bots image to jeopardy like they they made this hospital boat and the user was saying hey i feel bad about my life and stuff and it said go kill yourself or something did you see it it was fine it was by gpt3 i guess did you see that one okay so what you're saying is generative models are good but like when you're working in an industry probably your intent based bots will perform much better and give rather than generative models and then there is also something called a liability yeah right so probably that's why we should not use generative models at this stage but yeah i share the same opinion as you so we are going to hit the q a uh and then that's all but i want to like receive the questions as well so how can i receive the questions do you know are you going to ask to me i also want to see you because i feel like i'm talking to a wall and i really don't like it can i can i thank you very much for the talk it was it was really very good uh lots of things to learn and people also liked it a lot i have already asked you uh many questions so i think one of the questions i have here is is instead of like you talked about the feedback mechanism when people give thumbs up or thumbs down but we all know that when you when you get a survey when someone asks you to fill the survey do you always feel a survey you don't so a lot of people don't give thumbs up or thumbs down so how would you is there any automated way in which you know that okay this answer was not good how would you approach this i would directly take the fallback the ones that fall into fallback but the ones that are not falling into fallback let me heal everything i don't know they also fall into sometimes um core something we call dialogue management threshold in which your body is not sure which action to bring next meaning that the user might have gone far from the context maybe that's that's when you might think that the yes this intent is misclassified so this might be another case um i these are the three things i can think about do you have any you know so one of the examples i that i have here is uh some something like a use case that uh the chatbot returns i will i will bring you a core drink for order pizza intent so intent should be order pizza so if i understand it correctly so if you have to like analyze these kind of issues uh in an automated manner i don't know this is what i have observed so far from i have also talked to many other chatbots making folks and this is what i get there is probably a better way there is a simpler way but this is what i have observed and what i've been doing i forgot like the there might be problems that makes your bots uh give a fall back um might be like doing a spell checking problem usually we use like n grams to prevent spell errors but i have seen you know levenshtein distance with fuzzy matching which is i think that it takes a while if you have a lot of training data and you can use it for entity uh entity recognition i have also in my previous job i have worked on uh spell correction really closely it is a hard problem to solve i forgot to mention about this so i just just i i just remembered it and i just want to say there are like two different um approaches one is like frequency based another one is the contact space and each have different problems so yeah true i have i i know about this problem so like one one question is um uh let me let me take a look at the question again i forgot so the question is uh it's it's about how you got started with chatbots and what excites you the most about it and what do you think is the trickiest part of working with chatbots i might sound like a nerd but i love machine learning in general and making machines do things it excites me but the one thing i really liked is the movie her from scarlett johnson and joking phoenix where the man falls in love with this voice assistant uh like ever since i watched it i really wanted to become a you know like i need to develop this at some point i loved it but more i got into it how that's how i realized it's a hard problem like when you are making a generic bot for instance one problem i have seen is that you know pronouns like you need to get pronouns normally in document classification most of the time internet recognition is actually a document classification problem at core but for the document cross classification problem you need to get rid of the stop words and that's where i have seen that in generic bots most of the stoppers aren't actually stoppers like pronouns for instance um and i have seen that you know when doing a generic chatbot positional embeddings increase that you know all of your metrics by 20 because pronouns are making a lot of difference like the way i say i love you and you love me like the response you need to give are two different things and it's hard to make a distinction between them like distinguish them and you know position their embeddings and other stuff you know you know transformers architectures and they really helped i just wanted to say that it's another thing i have observed in uh when making different types of chatbots the the stop how you pick your stop worries actually matter a lot how how to go so stop words like uh not is also a stop word right so you know in most of the document classification problems like spacey have has this stop word list and most of the people actually use it in document classification we were also using it but i have realized that it gets rid of pronouns it gets it's um it gets rid of some of the meaning actually meaningful words like alone i don't know um there are actually useful words in there but we were getting rid of it and then i have refined it and just seen that it actually helped to refine one one question that i have is like negations so [Music] how what would you suggest about like how to take care of negations so in raza what they are doing is this there is multiple intense something called multiple intense in which you know intent is about eating for instance and you have a positive like a positive extension and a negative extension and a neutral extension if you define it as a mouth line really sorry for noise there is let me show it [Music] probably other um other frameworks have it as well like a sentence does not necessarily have to mean only one thing the user might have written a long sentence that contains many different things that you need to take action uh in a different way let me show you this uh i'm gonna share my screen again i just don't want to you to see the link of the talk uh okay you see um for instance the user says to a question can you can you see my screen okay yeah sure so user says yes can you give me q suggestions on how to get there so you have three different in two different intents in here actually one is yes the affirmation like there's the separate uh thing called affirmation is like yes i agree yes do it etc and there is this another thing can you give me suggestions on how to get there you have a transportation boat so if you do not define it like affirmation plus ask transport then it is going to be confused like you see in here we have intent confidence rankings okay and the best prediction is the affirm plus ask transport the other one is ask transport and the last one is thanks goodbye so it's not only this but if you for instance let's say you have defined your um and fallback threshold to be below 0.4 then it's going to fall into fallback this one maybe it's not because this intent exists but this might fall into fallback because this word called yes exists it can be for anything it can be for negation so you need to i feel like you need to define uh every intent with effort both affirmation and the negation and neutrality like for instance about food or about health in in my context you you can say i want to do yoga how can i do it you can say you know it's a positive thing user wants to do yoga there you can say uh i want to know more about yoga can you tell me about yoga which is a neutral thing user wants to know something and you need to bring something from the kb and the negative thing user hates yoga so if you define multiple intents then it then it's going to make your life easier in you know handling negations and other stuff but also um because it's a multiple intent you know the affirmation you know like the positiveness and the separate natural intent have come you know like have so much in common it actually recognizes multiple intents easier than any other instance because there are two different things defined already and you put them together in separate intent yet it still recognizes it let's let's take a couple more questions we are here about time so uh this is a simple one um can we get the slides of the presentation okay i feel like sometimes i feel like when i'm on these talks i'm going to be asked something that i don't i cannot answer and i feel i don't know mean confidence but let's hit me just hit me which slide is that the question was if we if you can share the slides with everyone [Music] uh okay of course i can by the way how do you handle negations see how the tables yeah i'm not i'm not going to answer that right now it's it's it's a it's a difficult thing obviously you cannot have negations for all the intents that you create but probably you can do something with some kind of word list something i don't know i don't know everything yet so i'm learning from your talk so okay let's take one last question uh or do we do we have so you have already discussed a little bit about rasa and dialog flow uh are there any situations in which you should prefer one over the other raza has this razor open source and rather enterprise raza open source is completely free and you can also contribute uh what i have observed is that if your core product is actually a chat but like i don't know i i hope you don't hear there is a background noise with you know call to prayer and stuff uh so if you if you if your core product is actually a chatbot i don't know um then companies tend to spend more effort on with their engineers on doing it and gather as much flexibility over the chatbot as they can uh that's why they are using raz open source like there is this banking bot called n26 you probably have used that they are using raza there is this bot in us called lemonade uh it's also the core product is the chat spot but if your core product is not the chatbot and you don't want to spend too much time on engineering effort uh you can use dialogflow because it is it enco in it encapsulates many things you know you just press you know train and it trains in browser open source you can edit your hyper parameters do hyper parameter tuning uh do cross validation like there is a lot of options in the nlu parts and the dialog management parts i think that it's more flexible that's why i would prefer rasa open source other than other frameworks that are paid and they that encapsulate many things and engineering depth from you so if you're a developer then you would go for rasa okay uh great uh let's take this last question and uh this is more often i don't want to take time from your have free time so you can ask me we usually keep the talk to one hour um so the last question that we have for today is what and if if you guys have any more questions you can follow merv on twitter and uh hopefully she will respond so the last question is what kind of advice do you have to give for beginners if they want to go for building chatbots so depending on the framework you would like to learn if you are going to be a developer of this like this means that you are going to be the owner of it like you need to do in startups like what i do right now is both the back end of the chat bot the the nlu parts like many things at once if you are going to be working at a startup you probably need many skills and if you are going to do this as a developer i would suggest you to learn razor open source so there are master class uh series of raza online in youtube uh you can learn it from there if you are not if you if you want to make a simple button there are limited number of requests you just want to experience uh you can also take the google dialog flow uh courses on coursera i think there is uh auditing available or you can i don't know pay for it up to you there is a lot of online resources out there but first define what you want to learn but they usually provide an abstraction like you know intents and entities and dialogue management are all the same thing it's just the the mechanism in working in the back like uh the nlu neural nets architecture or the dialogue management architecture are different if you want to get to it then learn in a platform specific way but usually they all work the same some encapsulate functionalities and some don't okay then yeah that's a great answer and uh with this i would uh i won't take any more time of yours and i think people you can also ask me from twitter if you want sure so what i'm going to do is i'm going to take i'm going to share your social media links and uh if you can send me the link to the presentation i will also share that in the pin comment so if you have any further questions you can connect with merv on twitter or on linkedin and you can ask her and with that with that i would like to thank marv for joining today and thank you so much for taking the time out and i love the talk and everyone else also loved the talk and see you guys next time
Info
Channel: Abhishek Thakur
Views: 3,025
Rating: 4.8816566 out of 5
Keywords: machine learning, deep learning, artificial intelligence, kaggle, abhishek thakur, dall e, dall e mini, boris dayma, dall e implementation, dall-e architecture
Id: XAeKxLHrt_s
Channel Id: undefined
Length: 62min 42sec (3762 seconds)
Published: Fri Aug 27 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.