Conversational Software Development: Scaling to Multiple Use Cases and Beyond
The field of conversational software development has made significant progress in recent years, with advancements in natural language understanding (NLU) and dialogue management. One of the most exciting developments is the deployment of conversational AI at scale, as seen in applications such as Google Duplex, which demonstrated impressive text-to-speech capabilities and a functioning dialogue system that can handle complexity. However, scaling these technologies to multiple use cases remains a significant challenge.
The biggest challenge facing conversational software developers is extending their technology from one domain to another. As Alan noted, having something work in one domain does not automatically translate to success in another. The example of Google Duplex's demo highlighted this challenge, as the system only works for specific domains such as restaurants and hairdresser appointments. To build upon these successes and create conversational AI that can handle a wide range of use cases, developers must overcome significant technical and conceptual hurdles.
One of the primary technical challenges is developing software that can learn from data to form core logic. This is in contrast to traditional programming approaches that rely on pre-defined rules and APIs. Conversational AI requires learning from real conversations, which involves managing large amounts of training data. As Alan noted, this is a "way of programming" that requires significant investment in product management and development.
The conceptual challenge lies in understanding how to program software that can learn from data. This involves developing new tools and techniques for managing and annotating training data, as well as creating new algorithms and models that can handle the complexities of conversational AI. As Alan emphasized, this is not a trivial task, requiring significant investment of time and resources.
The future of conversational software development holds much promise, with ongoing efforts to develop new technologies and applications. One exciting area of research is the development of specialized algorithms that can solve specific challenges in areas such as healthcare and finance.
In addition to scaling technology to multiple use cases, another pressing challenge facing the conversational AI community is dissolving the misconception of artificial general intelligence (AGI) as a silver bullet for solving these problems. AGI has been touted as the key to unlocking significant advances in conversational AI, but history has shown that this is often overhyped.
Instead, many of the algorithms and techniques developed to solve specific challenges will remain specialized, tailored to address particular issues. This highlights the need for a more nuanced understanding of the limitations and capabilities of conversational AI.
As the field continues to evolve, it's essential to acknowledge these challenges and push forward with innovation and experimentation. One way to engage with this research is by exploring open-source projects such as Rasa NL, which provides a range of tools and resources for developing conversational AI applications.
For those interested in getting started with conversational AI development, the Rasa community offers a wealth of resources, including documentation, GitHub repositories, and build instructions. The platform allows developers to create their own chatbots using natural language processing (NLP) and machine learning techniques.
Ultimately, the success of conversational software development will depend on our ability to tackle these challenges head-on, investing time and resources in developing new technologies and approaches. By doing so, we can unlock the full potential of conversational AI and create applications that truly transform industries and improve lives.
In addition to its technical merits, conversational AI has also been shown to have significant social implications, particularly in areas such as customer service and healthcare. One notable example is an insurance chatbot developed by a company called NextGen, which successfully helped a 55-year-old customer purchase an insurance policy. This highlights the potential for conversational AI to bridge the gap between technology and human interaction.
By exploring these frontiers and pushing the boundaries of what's possible with conversational software development, we can unlock new possibilities for innovation and progress in various fields. Whether you're a seasoned developer or just starting out, there are many opportunities to engage with this exciting field and contribute to its ongoing evolution.
"WEBVTTKind: captionsLanguage: enin this episode of data framed a data camp podcast I'll be speaking with Alan Nicol about chatbots conversational software and data science Alan is co-founder and CTO of rasa who build open-source machine learning tools for developers and product teams to expand BOTS beyond answering simple questions which verticals are conversational software currently having the biggest impact on what are the biggest challenges facing the fields of chat bots and conversational software what misapprehensions do we as a society have about these technologies that experts such as Alan would like to correct and how can we all build chat BOTS and conversational software ourselves that's enough questions it's now time for some answers I'm Hugo Bound Anderson a data scientist that data camp and this is data frame welcome to data from a weekly data count podcast exploring what data science looks like on the ground or working data scientists and what problems are consult I'm your host you go down and you can follow me on Twitter actually go down and data count at data cap you can find all our episodes and show notes at data camp comm slash community slash podcast hi there Allen and welcome to data framed hey it's great to be here it's great to have you on the show I want to jump in and discuss your og medium posts from April 2016 which really got the ball rolling for everything you're working in now you open this post with the following statement we don't know how to build conversational software yet I feel like you meant we as a society and community of tool builders conversational software includes chat BOTS I'm wondering now two odd years later is it still the case that we don't know how to build these types of things yet I would say probably yes I still agree with that statement but we definitely made some progress but it's still very much early days for building you know great natural language interfaces for computers tell me a bit about the progress you've seen in the past two years yeah I mean maybe a bit of context as well where that blog post came from so we built a few slight BOTS and because mark was one of the first platforms that opened for this and Alex from a co-founder and I had actually had a couple of slack boards that companies were paying for and they were both around actually making down to science more accessible so turning you know natural language queries into SQL and then you know running those queries on a database anyway should we had some experience with building these things and just looked around and thought wow there really aren't any great developer tools for how to build conversational software and then we saw that the Facebook messenger platform was about to open up and that was right around this time and we thought this is just this is not going to go well and what you mean by Facebook message your platform opening up is opening up in in order to have conversational software in it exactly so letting people letting developers build chat BOTS and that anyone with a Facebook account could then chat and and we thought well you know we have know quite a bit of experience we know that it's really hard to do this well and and this is just gonna the these are not gonna be great experiences for people and I think that is actually pretty much how it panned out there's a lot of hard work involved in getting things working well even in a narrow domain and you know doing something which is kind of open-ended conversation is definitely nowhere in sight but I think we've made some good progress in terms of libraries and tools that people can use that make it easier to build something that does work even though you know we've definitely not crack this problem by any means and what what are the most pressing things that we we haven't cracked with respect to building conversational software so there are a number of things so one is the kind of two things you need for building conversational software so the first is understanding the messages that people are sending to you right and that's called NLU or natural language understanding and what that usually means is like classifying a short piece of text that's belonging to one of you know and intense so those are kind of cost labels for things like a creasing or saying goodbye or asking for some specific things that that your child book can do like looking for a hotel a little something like that exactly hotel and then the other part is is pulling out some structured data so that's usually called entities so you know I'm looking for a hotel in San Francisco and then knowing that San Francisco is is what you want to use in your query and that's NLU and I think it's fine to call it that as so long as you remember it's absolutely not true the computer doesn't understand anything right it's just able to cross by text into one of these buckets and then pull out some it's an entities yeah and just this is a large concern in general with terms like artificial intelligence - the kind of anthropomorphism involved in nomenclature and the way the way we name stuff right it's it's it's dangerous especially when it permeates our common language definitely and I think there are lots of complications and and limitations to that even that simple model right of the intention of what a short message means being a universal single label right so this always means this and you can only represent its meaning by a single sort of one heart vector let's say that's obviously a very limited model of understanding what people can express and and it's a good starting point and and it lets you build on top of that but of course it's not kind of when we think about the future I think that's not how we're gonna represent the meaning of short messages no so we have NLU as being a huge challenge what was the other one you were gonna speak to yes so the other one is then dialogue management so if somebody says yes in the middle of a conversation the way you respond of course depends on on the context right it depends on what happened before so it's not enough to just map each of these intense or each of the kind of outputs of your NLU system to the same action right you need to always build up some kind of statefulness and then the question is how do you handle that in a way that that doesn't break and is actually maintainable and that's a big part of what we've been working on for the last couple of years and that's actually I think the part the biggest part that was really missing back in in 2016 was a reasonable way of dealing with that complexity because the way that people who are doing it basically manually writing a lot of rules just you know doesn't work and it doesn't scale and it it causes a lot of headaches right and I like this idea of scaling because as you say writing a bunch of rules is I suppose the most bare-bones naive way to think about writing conversational software I mean I imagine you can have a set of like nested if else's to try and deal with every everything or a subset of everything and then as soon as a new use case comes up you then need to Ness them even further and this is something which definitively does not scale right exactly I mean maybe if you nest them deep enough then then it counts as deep learning but and that's a little you in in general right you have so I mean I've tried this plenty of times right and even building like a relatively simple thought that just does it was it was a banking chatbot right that we just built for fun to see okay how badly does this work if you really just do it with rules and you know can just do a couple of things like you know check your balance and transfer some cash to people and everything and I think it came out at over 500 rules just for doing this kind of simple stuff and of course then when you you know want to update something or something goes wrong and you add a new rule it clashes with the old ones right let me go I need to go and try and reason about all these rules and figure out why it is that something broke or something clashed and there's an asymmetry there which is really interesting because in the middle of conversation right I mean the kind of cliche example by now is you know what do we want chat bots when do we want them sorry I didn't understand requests haha okay that's provided a great teaser into a lot of the through lines that we're going to talk about with respect to NLU scaling a lot of different use cases of this these types of chat BOTS and conversational software but before all of that I'd like to find out a bit about about you and and Raza so maybe you can tell me a bit about yourself what you do and what Raza does and what Raza is yes so rather is two different things so rather is a company it's a start-up and it's also a pair of open-source libraries but there's Raza and all you which does language understanding so parsing short messages and then there's rouser core which does dialog management and I'm a maintainer of both of those libraries and the aim of them is really to expand chat BOTS and conversational software beyond just the kind of answering simple questions FAQ style you know one input one output kind of turning it into a real conversation and building that in a way that scales and so where I see us as a company and also where we come from was around 2016 when we said okay you know nobody knows how to do this actually there's a lot of research right on how to use machine learning to overcome some of these problems and there's a lot of great papers written on it but there weren't any libraries that developers could use to actually implement those ideas and so where we see our role is really big gap between archives and github let's say so something that's actually you know well-maintained has lots of tests has people responding to issues has support gets updated regularly and and so we do a lot of applied research in this field and we publish papers and we work together with with universities but it's always you know very strictly applied and then we always the primary output is always to put out some new code that people can do that does something better that it couldn't do before right so you know one recent example was we we completely changed how we do intent classification and we shipped a new model which through all the old assumptions of the window and just said okay now we're gonna learn word embeddings in a supervised way for this task and that lets us do things like building a pyro Cobra presentations of meaning understanding that a message can contain multiple meanings because sometimes people just say multiple things and so we do a lot of that and then the primary output is a piece of code that people can use and then if we write up a paper that's a nice bonus so this speaks to the open source side of Raza but you see that Raza is is two things yes the other side is a company and the first year that we operated we basically did a bunch of consulting work on top of the open source and that was really great because building stuff with it yourself you know it keeps you really honest about its limitations and helps you understand your customers and then you know after we did that for a year that was obviously very nice and we kind of bootstrap the company then we said okay actually you know we think there's a scalable product that we can build here for an enterprise version we talk to a lot of these big companies that we've been consulting for and there was a clear need for like an enterprise package with more features and and a different product and so we thought ok that's that that's something we want to take a bet on and so for the last sort of six months now we kind of stopped all the consulting work we raced in venture capital and really just went full-on on building out the Enterprise version but then still all the machine learning stuff goes into the open source right so big part of what we believe in is that you know you can't build up a competitive advantage by having kind of secret implementations of algorithms lurking around the the machine learning stuff needs to be open it needs to be tweakable and people need to be able to play with it and there's just so much nonsense around in the AI space that it's better to just say okay no fairy dust you know there's no magic it's just stats go look at the code all the machine learning is open source and you can see exactly what it does and you can tweak it for your own yeah and I'm sure all the different interplays between your company and the open source development are really exciting so for example correct me if I'm wrong but you've recently hired to machine learning researchers yeah so we're only ten full time people and but two of those are full-time on ml research and the measure that we really care about is how quickly can we take a new idea like oh this you know a little trick actually works and then put it in production and the great thing about having the open-source community is that whenever we have a new idea or we have something that kind of works they're just thousands of people which is ready to check out the master branch and and see what it does on their data sets and so that's that feedback loop is really awesome and you know you can't do that if you if you build things in a closed source product you don't get that kind of insight that's really awesome and I suppose we should say that also it's a Python library right it is yeah yeah it's written in Python but also we obviously work a lot with large companies right so our main enterprise customers with a fortune 500 and their let's say not mostly on Python right so they're mostly right in Internet or Java or C sharp and then there's a large sort of chat boat developer community which uses JavaScript and so what we did was we made sure that the libraries even though they're written in Python you can use them without writing any Python and you can consume everything over HTTP API and that means that you know you don't have to be running a Python stack yourself he gives these libraries so you can kind of just you know spin them up in docker containers and just use them and deploy them to production without having to actually write any pies in yourself that's really cool and I may be putting the cart before the horse or the chat bot before the the company to extend the analogy into absurdity but there is a fantastic data camp course that you've created and that I I facilitated last year on building conversation with software with Python and using Raza and there's also a lovely interplay between arm for those people who know a bit about the Python data science landscape lovely interplay between Raza scikit-learn and spicy for fruits yeah exactly and you know there's no point in reinventing the wheel right so there's a lot of really great libraries out there for doing different things you know for example in our in in browser core which is the dialog manager you can plug in like different backends to implement your model in and actually do the machine learning part right so one way you can think about reservoir is it does all the hard work to get that conversation into the kind of XY pair format that you think about when you think about machine learning and then you can plug in like whatever classifier you like of course we have some good ones implemented already but then you can you know you can implement your stuff intensive flow or Kerris and actually the Charis api was a big inspiration for that i'm just saying okay can we just abstract over all the things that aren't important for understanding the problem and really just present the api that that makes sense to you right and then you know we don't need to build our own also dip library because why should we you can use ten support for that and that also remember GPU etc and similarly for you know doing things like part of speech tagging the most of things that that you can do with Spacey and and it makes more sense to build on top of libraries like that so you can kind of choose different backends that you want to use and to implement some let's say lower level functionality for both raza NLU and rather core that's fantastic so I want to get in in a second to think about what type of use cases which verticals and industries you see most interested in conversation or software but before that I just want to step back a bit and do what what's a good working definition of a chat bot or conversational software are they the same thing that's a relatively bill formed question but maybe you can speak to that bit yeah so the things that we're interested in are not just let's say strictly chat boards some people would call some of these things virtual assistants I actually think that voice is also extremely important so anything where you interact with the computer through natural language is something that we're interested in and I would call all of that conversational software and it's so that's different to just a chat book right I think chat boards mean different things so in in some groups of people a chat bot strictly means actually just something that does chitchat so you know can't actually do anything for you it's just there for having an interesting conversation that's actually less what we're interested in small talk is not something that we really focus on we're more interested in you know purposeful conversations that actually do something but then there's another kind of definition which says that a chat bot is on these mobile messaging apps right so on facebook Messenger or slack or whatsapp or something or telegram and that any kind of application that lives inside one of those apps even whether it's chat or you know button based or it shows you a little webview and that all of those are also chaplains so it's yeah he'll define as most terms are will jump right back into our interview with Alan nickel after a short segment it's now time for a segment called freelance data science with Susan Sun a freelancer who has worked with the New York Times Cooney Google and General Assembly Susan we're here today to talk about the legal side of freelance data science right yup we sure there seems to be a riddle as a freelancer you'll need to build a portfolio but as a data scientist working for private enterprise I'm sure you need to be constantly signing non-disclosure agreements otherwise known as NDA's how does this trade-off play out for you in practice I prefer to err on the side of caution even if the client doesn't specifically asked me to sign an NDA I rather treat every client and situation as though I've already signed an NDA India is actually being a lot more than simply promising not to take a code I wrote for one client and using it for another ideas concepts strategies they're all considered intellectual property and can and should be restricted by NDA's on top of that some clients don't want the public to know that they are contracting work out your freelancers and that is their right so if you sign an NDA like that you can't mention that you're working for certain clients and finally considered this if the client you're working for is international you also have to think about the data privacy laws that differ by country and most relevant one that's on top of everyone's mind right now are the gdpr compliance rules absolutely so what implications does this then have the portfolio building as a freelance data scientist it definitely puts a restriction on showcasing some of your best work it's pretty difficult if you're just starting to freelance and you don't have the history of past clients to help vouch for your work the only thing you really have is your github repo to prove yourself I see this problem a lot and my students whether they just finished a data science bootcamp or they just graduated from University with that master's in data science my advice to them is usually one to participate in some data science hackathons and to contribute to some open-source projects right so both of these are perfectly legal ways to showcase your work publicly right and as a freelancer do you have to form an actual company such as an LLC or can you just operate independently absolutely yes there aren't that many rules that will say are absolutes in freelance but this is definitely one of them you must protect yourself under LLC not only does it make you look more professional to your clients but also from a legal and accounting perspective you want to separate your business expense from your personal expense and finally being incorporated under LLC gives you an extra layer of protection in case of any legal disputes and can you do this yourself or do you need to hire some expert help like a lawyer for me personally it was much easier for me to work with a lawyer and my lawyer specializes in business law all right so he helped me write my LLC Charter and he filed appropriate paperwork for me as well I still consult with him from time to time every time when I pick up a new client just in case there are any clauses in the contract since I need that have any conflicts of interest thanks Susan that was an informative and practical introduction to the legal aspects of freelance data science I'm looking forward to speaking again soon after that interlude it's time to jump back into our chat with Alan Nichol this may be a relatively naive question but I think naive questions can give us a lot of insight why should we care about chatbots or conversational software I think it's a great question I think one of the the main reasons I'm really excited about it is that it makes computers usable but people aren't experts and that can be on a very sort of banal level or it could be on a more sophisticated level so for example my grandfather never used the computer in his life I you know he knew what the word internet was but he didn't know what it meant and he never had any experience of it and then I think about my parents who are you know to some degree computer literate but also certainly not you know the same as my generation and then I think of how quickly technology is progressing right so if we all believe that tech goes sort of exponentially fast then if my grandfather was behind imagine how far behind we're gonna fade one world so I think a big step that we need to take is okay how do we rather than have the need for computer literacy how does the computer attack to deal with how we already think about things and it's sometimes a really simple stuff right just asking a simple question and getting an answer rather than having to you know open up a document and find where it is or something and then sometimes it's for more sophisticated things right I was like to think how many Google searches do you think there are every year for how do I do eggs in software why and then imagine that you didn't have to google that you just said to the software how do I do X right so Photoshop is something I know is very powerful I have no idea how to use it but I could express some of the simple things I'd like to get done right yeah out of blue border around this image or something you know why can't I just engage with computers by by saying what I want and just having it happen so I think it's it's it's powerful in a lot of different ways and especially for making tech more inclusive it's really important that's great because that also speaks to a very personal individual power not the type of power that you know when you're working with corporations or businesses achieving you know business goals but really on on the ground empowering yeah yeah absolutely which verticals and industries are currently most interested in using conversational software so my sample is definitely biased because you know I work on Raza so the companies that we know about and that approach us are the ones that find this important enough that they want to invest their own engineers into building this out and they realize it's strategically important and they want to build up these capabilities and I'm sure there are other industries that where it's really relevant but you know the considerations are different and they you know they don't want to necessarily run the tech or owned the tech in-house but what we see the kind of strongest pull from industries in financial services so insurance and banking and then another one which is automotive and I think that makes a lot of sense I remember when I had when I got that Amazon echo I had it for about six months and you know I thought it was it was cool it was kind of fun but wasn't game changer and then I went to conference in the south of Spain and I rented a car and I had to drive like three hours from the airport and I remember just driving you know on the motorway in a foreign country and then I had my phone clipped to the dashboard and I was kind of tapping on it to change the map and like to change the song on Spotify and I show this is so dangerous why can't I just talk to the car and say play this song right the same way I was used to doing with the echo at home so I think automotive is also a really valid use case for especially for voice interactions for sure and that's very clear where the value can be delivered as the example you just gave was a paradigm I think how about in insurance and banking what type of value can conversational software deliver there I think it's on different levels if you think about what is your main interface to your bank to the data that you have at the bank and how do you engage with it you know some banks have really nice mobile apps and you can just do everything there but one other interface that a lot of people fall back to is just going to the branch right and talking to a human and why do you do that because you have questions right and you can't ask a question of an app generally right you can do the things that work that were suggested to you that the developers decided to implement but you can't say the things that you don't know right or that or ask for the things that haven't been implemented and so kind of asking for advice understanding things at a bit more depth those are all things where there's a lot of value to be added especially on insurance whether you know the actual product that you buy the policy can be very complicated and hard to understand and and you know talking to a human is also kind of tedious you have to make time take time out of your day to engage with them and so you know if you have a kind of 24/7 agent that you can chat with and can answer most of your questions it's actually pretty powerful and having some sort of intelligent conversational software for banking in that sense for you know questions and FAQ isn't that that type of stuff would stop me becoming infuriated when I call the bank I'm on you know you end up in one of those graphs that directs you downwards and you just keep shouting representative like 15 times you know like press zero for whatever because it actually makes no sense I also have the added challenge and maybe you can speak to this that I'm an Australian living in the United States most of the year round so that I I have to like put on a fake American accent to be understood by the automated telephone system of Bank of America my girlfriend's from Scotland and you know her accent can be misunderstood both by humans and by software also non-native English speakers right understanding language I'll definitely you know understanding speech there's been some great successes but it's certainly not a solved problem or commodity by any means and that's not something where we try and compete you know you got to focus on something and that's not something that we do but it's a certainly a really interesting problem no I I remember you telling me some time ago about an insurance chat book but it wasn't it wasn't voice it was an SMS chat bot maybe you could tell us a bit about you know these these types of use cases yeah and that actually was a really interesting one so it's a it's a large insurance company in Switzerland called Helvetia really big company it's like 160 years old and they wanted to do something to engage people whose house insurance policies were about to expire so these are five-year policies and they run out and you know they have a large customer base but because employing people in Switzerland is very expensive it actually literally wasn't worth their time to have an agent call up all these people and ask if they want to renew their policy and so what they did was they they built a chapel actually with Raza and it went out over SMS and engaged with these people and I said hey you know your policy is due to expire and is is your living situation still to say it would have some questions you know has anything changed maybe you've moved maybe dog or you got more expensive car or whatever it is and then if everything you know what the person wanted to renew and they collected all the deaths that they needed they'd say okay you know here's your quote is that cool if they agree to it it would just you know actually finalize the policy and the policy would be in the post with them but in a couple of days so it's really kind of end-to-end automated right so that's also what I mean by conversations that really do something it's nice to answer questions but it's a lot more powerful you can say okay it's not done right and it's on the way and I think one of the interesting things is it challenged a lot of assumptions around what chapels are what they're useful for so people think about it firstly as a customer service thing and kind of saving costs which is certainly relevant but if you can actually increase revenue right and that's that's really compelling so this was actively reaching out to these people over SMS and it was a 30% conversion rate which is really astonishing in terms of getting people to buy a new five-year policy and then you know the other thing was that people think about chapels and they think about you know generations ed and and messaging apps when actually the first person to buy an insurance policy of this chatbot was a 55 year old Swiss lady and so that's all yeah a really interesting and I think also speaks to the fact that it does make tech more accessible for a larger group of people right you can just speak to these systems and and you know you let your customers speak to you how they think about the problem rather than forcing them into your paradigm which is the software that you've built for them to engage with your company exactly so you've spoken to some really interesting use cases in Insurance Bank the automotive industry other industries that aren't as interested in conversational software as you think they should be that's a really good question I I'm not sure I have a good answer to it I mean I've personal frustrations with things like you know telecom companies getting internet set up in your flat and all that kind of stuff where it would certainly be a lot more useful if you could have a kind of 24/7 automated support that you could chat to and get things done but I'm not sure if I can think of off the shelf examples of industries that are really neglecting this we see a really big actually a really big variety of companies reaching out telling us that they're using browser sometimes asking about the enterprise or sometimes just have some questions it's actually much more diverse than the use cases I listed but definitely the dominant ones are are things like financial services and automotive okay great and as you mentioned express your frustrations with you know calling up telcos for example I actually remembered you know government I think it's probably a great area the IR the IRS and the tax system I actually ended up I mentioned my frustration with um those graph those telephone trees that you get sent down like press one for whatever and I ended up somehow when I called the IRS several years ago on a loop I was somehow I thought they beat you wouldn't be allowed loops in these graphs but I ended up on a I was about to swear I ended up on a loop in one of these these conversations and I ended up hanging up so there's definitely room for for a lot more aspects of conversational software in these types of places yeah I think when you're the the experience as someone who's in a phone tree is how do I most quickly get to speak to a human and it's not how do I most quickly get the thing done just because there's such low expectations of these things actually because they're mostly just pre-qualifying what your problem is right to send you to the correct person or that when the person talk to you they already know half the information that they need and they don't have to collect that so it's really optimization on their part and it's really not optimization on the point of you as a as a as a customer you know getting your problem solved quickly for sure so I think this has provided a lot of insight for our listeners into conversational software where it's being used the ins and outs and I'm sure a lot of them are kind of eager to hear about where they can get started so I think both technical and non-technical listeners alike would be interested in in hearing about how they could get started with conversational software so maybe you can give a few a few pointers yeah definitely so also partly because you know there was this big boom when Facebook messenger opened up they're actually some really nice online tools that you can just point and click and build a little prototype of a chat bot all right so dialogue flow is one example it's owned by Google Chat fuel is another and you don't have to really write any code and you can just kind of you know design a prototype of your chat but you don't have to set up a server or anything and you can you can very quickly get something that you can you can try out and just kind of get a feel for how something like that would work and then if you want to go beyond that there's lots of good resources on you know understanding the tech behind a building something that you know you can really maintain and scale this is of course the data count course that we created which really covers the fundamentals right what are you really doing what are you really going on kind of demystifying this concept which if you've never worked in NLP or anything it seems really kind of bizarre and almost impossible right how do you build computer programs that understand language seems so sort of inconceivably hard code we go into the little fundamentals there and then if you want to build more advanced things you can either then you know build everything from the ground up which is always an interesting especially for learning experience interesting approach or you can use something like Raza you know an open source library where a lot of the heavy lifting is done for you and and you can then kind of get started build something out and then you know really tweak parameters to get better performance on your dad said give it to real people and it's right but I'd say that the the best way if you just think if you want to tinker then okay build the chat boat first and give the some people but if you want to actually solve a problem and and you actually want to understand what people do then the best way is not to have a chat pod but just to pretend to be a child by yourself and just happen you know say that it's about and ask people to talk to it and and and then you know answer them yourself right and if people don't like the experience with your brain behind it then they're definitely not gonna like the experience with with a sort of artificial machine learning system behind it so there's a great way to kind of validate if what you're doing actually makes sense and really get some inspiration for all the things that you didn't think about and so one mantra that we have and it's really one of the principles that we used to build our products is that real conversations are more important than hypothetical ones so I'm less interested in giving people tools to design hypothetical situations and think about all possible conversations that people could have it so much more important to look at real conversations that people do have and learning from them and that's what browser core is all about is learning how to have conversations from real data absolutely there's so much in there and I just want to kind of recap a couple of the takeaways the first takeaway for me of course is take this data camp course I do think it provides a wonderful introduction I mean in the first chapter you get to build a chatbot which is based around one of the early chat BOTS Eli's a chat bot which is which is incredible you do a bunch of our natural language understanding and then you get to build a virtual assistant that it's a personal assistant that helps you plan trips which is which is really cool I think you get a lot of insight in this course into everything everything we've been talking about the second takeaway I think is that you need to think about what the purpose of your chat bodies for example a lot of people I think have a have a misconception that you know chat BOTS need to sound like humans for example but the question is if you're if you've got a virtual assistant who's gonna help you build a trip do you care whether it sounds like a human or at all or do you want it to do the job you want it to do right yeah I do think there's a big important topic as well around design and writing good copy and being empathetic and doing things like active listening and that's a whole kind of you know orthogonal set of problems kind of to what we're really tackling it is important but of course yeah do you actually solve a problem right do you actually do something for people you know I end up using at least a couple times a month some product that I just completely hate but I have to use it because it's the only thing that gets the job done what I need right and so I think also in startups you know if you think about product market fit you almost want to put buyers in people's way you almost want to have your product your first version of your product you really crappy maybe even intentionally so just to see if you will persevere because it really solves a problem for them right we'll jump right back into our interview with Al Nikhil after a short segment now it's time for a segment called data science best practices in this segment Justin Boyce from Caltech is back to tell us about when we should use logarithmic scales in plotting Justin you seem to be talking a lot about plotting in these segments yes I have been clear informative plots are really one of the most important products a data scientists can produce so I guess I talk about a lot because it's important before we hear what you have today I'll remind our listeners that they can check out the plots you're describing here by clicking the links in the notes for this podcast that said what have you got for us Justin today I want to talk about using logarithmic scales also known as log scales when constructing plots when we first make a plot we usually choose a linear scale to be clear on what this means imagine we have three evenly spaced ticks on a linearly scaled axis say at 5 10 and 15 the difference between the value of the second tick and the first tick is the same as a difference between the value at the third and at the second the difference is 5 in both cases now conversely if we have three evenly spaced ticks on an axis with a log scale they could be at 5 10 and 20 the ratio of the value of the second tick to that is the first is the same as the ratio of the value of the third tick to that of the second in this case that ratio is 2 so a log scale is used when the data you are plotting vary over orders of magnitude right so can you give us an example of where we might use a log scale instead of a lineal one we often use them in scatter plots say we suspect that more populous places have higher home prices we want to plot the county level median home price per square foot versus the county populations County populations in the u.s. vary over several orders of magnitude from under 100 people in Callaway County in Hawaii to over 10 million people in Los Angeles County and everything in between so we should choose a logarithmic scale for the population axis of this scatter plot but what about the home prices don't those vary over orders of magnitude too I live in New York and it sure feels like people are paying a lot less in other parts of the country that's true they are you could also plot the price axis on a logarithmic scale but here you might consider what you want to learn from the plot choosing a logarithmic scale will nicely stretch the data at the lower prices to visualize them better and we should probably perform a regression using a log-log scale if we wanted to quantify the relationship between the two variables however plotting things on a log scale visually dulls the magnitude of outliers for example the median price per square foot of a home in Manhattan is over $1,600 while that in San Francisco is just over a thousand this is a big difference and it is not as striking when plotted on a log scale so it is in many ways about what you're looking to discover in the data yes I would say so but it is important you don't choose log or linear scales to help with some sort of confirmation bias when in doubt just show it plotted both ways other situations where you use a log scale that's not in scatter plot say with empirical cumulative distribution function plots which I know you love yeah it's often a good idea to have your x axis on a log scale if you are plotting an e CDF of a variable that varies over several orders of magnitude interestingly if you are trying to see if a variable is power law distributed you can plot the empirical complementary cumulative distribution function the EC CDF with both axes on log scales if you see a strong linear trend on the log log plot you very likely have yourself a power-law this is fun to do with the population of metropolitan areas in the US which follow a power law known as zip slaw thanks Justin no problem you know I wonder if you plot the number of weekly listeners of data framed with the y axis having a log scale does it look linear with positive slope if so you've got exponential growth my friend huh I'll go do that now see you next on Justin always a pleasure here we go time to get straight back into our chat with Alan so what are the most common misconceptions surrounding conversational software that that that you want to correct is that it's kind of really artificial intelligence maybe even artificial general intelligence and that you need to wait for you know deepmind or opening I to solve these grand problems and then you'll be able to download a brain from the internet and that's gonna magically solve all your problems you can build stuff now with the techniques that exist and you just got to put in a bit of work right and you don't need a degree in statistics or computer science or anything like that to build these things you can definitely self teach and you can build something that's really useful and adds a lot of value with what's out there now and you shouldn't even try I think to to build a kind of do everything the kind of system and then I think another one is that only you know Facebook Google Amazon Apple have the tank to build conversational AI it's just not true and we see that a lot you know there's also some academic papers published where they compare Raza to some of these close source tools from from Google or Microsoft and it actually it does very well right because it's not there's no fairy dust there I mean this is I don't wanna pitch browser too much but you know the way Microsoft sinned and IBM think about this program is we have magical algorithms in the cloud upload your data here and we will turn it into gold and I think that's just nonsense you can build a lot of great things even better things with open source tools because you don't have to you have full control right you can tweak things you can customize things for your use case and so it's definitely not something that's only in the domain of the big tech companies and an another one that we already spoke to a little bit is that this kind of generational bias that it's only something kind of fun and light and for Millennials it's actually something especially for you know maybe the boomers and and all the generations as well as it's a really important piece of tech now so one thing you mentioned was this idea of product market fit and I kind of want to zoom in on where rahzar core came from how it emerged and I I want to approach it from I suppose the idea that we discussed at the start of this conversation about needing to have conversational software that that scales so maybe you could tell us a bit about the landscape before rahzar call and then how rosa core emerged in relation to the idea of scaling this software yeah definitely there was a before rounds of core came out and there was some nice sort of cloud API as for doing the NLU part right so you send in a sentence that it sends you back you're its interpretation of what that means what's the intent what entities are in there and then the question is putting you to in response to that right so you have things like yes and no and of course the response to that depends on what happened before and so what do you do well you write out some rules right so you write a rule for okay if we currently if the last thing we asked was this and the person says yes then proceed down this direction if the last person said was no then go down this path right and that's great and then you say okay well we now need to maintain that state over multiple terms in a conversation so you don't just build kind of point A to point B you build a state machine alright you say okay this person is currently in this state and now they've said this I've moved into this state where they're now kind of maybe ready to make a purchase or they're asking about this topic or whatever and then of course you know works to an extent but then you know you you deploy this and you give it to people and and you ask them in yes or no question right like you know one example is a oh where should we just send that to your home address and then you've maybe built a branch for yes and you build a branch for no and that the person responds oh what home address do you have on record for me alright there's always an edge case that you haven't thought of right which is fine and of course like all software has edge cases but then the question is how do you do with that right if that's an important thing that looks people say you need to answer that to them you can either then add another nested if statement in your logic or you can add in the other state to state machine which then is kind of explaining some deeper information which then probably you can get into that state from multiple different other states so you have kind of one new state but they have order n-squared ways of getting in and out right because you have all the other states and that very very quickly becomes unmanageable so you you have this kind of bag of rules about how people navigate the state space and then whenever you want to change something it clashes with old rules or break something else and the thing is that you know mid-conversation it's absolutely trivial to know if the chat board said the wrong thing right you can give that to a four-year-old and all its nonsense that this make sense but it's really hard to then figure out like from that big state machine why why did that happen right what did I go wrong kind of reversing the logic and so we said okay why don't we do it completely differently we don't build up that same machine at all and we just say okay here's a conversation that went wrong right say what should have happen instead add that to your training data and then train the machine learning model that learns how to have these conversations and so rather than having a sixth solid representation of the state machine you learn a continuous fuzzy representation like a continuous vector that represents that state and you learn that such that you can do these conversations that you've you've had you've seen and then you can measure how well it can generalize some of these patterns so there's a recent paper that we just finished I'll make public very soon where we actually study how well you can take these general patterns like you know answering a clarification question like Oh which address you have on file for me and then reusing that in different contexts and even in different domains and that's kind of you know what we've always wanted to do with Roger core and say okay you know throw away your state machine don't try and anticipate and and write rules for every possible conversation because it's basically impossible to build a flowchart and reason about every conversation that somebody could have because it's just a combinatorial a big space but it just don't do that just have real conversations and learn from them that's kind of where as a core came from and there was lots of research on doing machine learning based dialogue management we certainly didn't invent that but we had to do things a little differently from have a sort of academic world was doing it they were doing a lot of work um reinforce we're learning there was some technical reasons why that didn't make sense for people getting started with rounds of core I mean the short version is basically you have to implement a reward function and that's not a trivial thing to do and so you know we said okay we don't go for reinforcement learning we do everything with supervised learning and we let people build up these conversations interactively by talking to the system and that's kind of what we've been been doing with rounds of core is taking some of the ideas from the literature other ones that we think are most applicable and then kind of you know straying from the literature where we think it makes sense to and then building a library that lets people who don't have a PhD in statistical dialogue systems to actually build machine learning based dialogue and not have to have to you know build these kind of unmaintainable state machines that's great and this movement from state machines to the importance of real conversations and you know machine learning implementations of machine learning algorithms which which learn from more and more conversations and more more training data real data is incredible so what happens next what is the future of conversational software look like thinking about it in these terms that's really I think for developers it's a really cool time to be in this and we engage a lot with our community that's probably my favorite thing about open source is we have you know literally thousands and thousands and developers who user so far we have a you know over 100 contributors to the codebase who are just you know people who are using it for their own purposes and contribute back and this is real sense of excitement right people are building and inventing new things and I kind of think of it like being a webs about in the 90s you know if you build you know websites now are you doing friends and development it's well understood what you have to do building like a crud app but none of that's really been invented yet for conversationally I I mean some of the kind of early versions of it are there but for as a developer it's like okay this is you know kind of Greenfield I get to invent a lot of stuff so that's really fun but there's still lots of challenges so it's not by any means a solved problem and so that's why you know we we invest so heavily in research in in kind of you know shipping and breaking through the limitations of what we see currently in our libraries and in what people do in academia and kind of pushing beyond that and shipping that into the libraries and I think on the consumer side the future is lots of little magical moments where something just works and so I had a great one literally yesterday I was on Google Analytics and it's not something I look at very often you know maybe once every few months just because I was actually I was working on our documentation and I wanted to know how many people view our documentation on a mobile device and and you know I'm not an expert in google analytics so I would have had to you know go and build some filter but they have this cool feature where you can just ask a question and I'm literally just typed it into the box how many of our users it at NL URLs at home our documentation are on a mobile client and it just answered you know 6% I thought amazing I didn't have to do anything and it worked the first time right and those kind of magical moments that occur are really cool especially fun because that was one of the first use cases that we worked on back in in early 2016 that we had some a chance and some paying customers for and then to see that kind of deployed at scale in the wild was really exciting so I think that's amazing a lot of really magical moments and that we'll all experience over the following years and what we won't have anytime soon is the kind of do everything in magical assistant that replaces a human Butler or something yeah and it's great to hear your experience as a user as well as someone who develops a lot of these things also so you spoke to um you know the the future challenge or current and future challenge of scaling to multiple use cases are there any other big challenges facing conversational software development yes I do think I do think the biggest one is okay you have something which works and in our domain and then how do you extend it to more domains and I think you know we recently sold this demo from Google duplex where they showed I mean primarily very very impressive text-to-speech you know the speech synthesis but also like a very nice functioning dialogue system that can handle quite a bit of complexity and they're very open in their in their posts about about the software that it's only works because it's very limited right and it works on on restaurants and hairdresser appointments and then the question is okay how do you build you know the next hundred use cases and you know if you look at Amazon you know I think there's 6,000 engineers working on Alexa so it's a it's a big effort right it's not something you can you can just do without a lot of hard graft and then the other part is really not just around the technical challenge of building it but it's really also the conceptual challenge for programmers to build software where the kind of core logic is learned from data right so that's that's very different from calling an image recognition API and you said it a picture and then it tells you that there's an apple in the picture and you have statements the Apple say Apple or something the way that compositions go is learn from real conversations that people have had that you've checked and annotated and fixed and learned from and so managing that training data becomes a way of programming and a lot of product management needs to be invented there in terms of how do you how do you actually do that and that's really interesting and that's obviously something that we spend a lot of time thinking about and and I think we have some some cool things at the pipeline as well so have some great things to show there in the future great I look forward to hearing about those future developments so Ellen my last question for you is you have a final call to action for all our listeners out there yeah I mean all of us has open source so go check it out and browser comm is the website if you search rouser core or rosa NL you google should show you the the documentation the github repos and build something try it out let us know how it goes I really curious people always come up with infinitely creative use cases and yeah if you have any problems you know let us know fantastic alan has been an absolute pleasure having you on the show thanks for joining our conversation without and about conversational software and chat bots we saw that two major verticals that are currently being disrupted by these technologies are the automotive and finance industries we also saw a wonderful illustration of how chat BOTS aren't merely for Millennials in the example of an insurance chat bot helping a 55 year old to buy insurance we saw that the biggest challenge facing the conversational software developer community is scaling the software both in terms of natural language understanding otherwise known as NLU and dialogue management and the impact that moving from state machines to machine learning can have on this Alan also made clear and I cannot stress this enough that we need to dissolve the misconception of artificial general intelligence being the key to solving these problems we've seen this before and we'll see it again that many of the algorithms to solve many of these challenges are and will be specialized also make sure to check out our next episode a conversation with Derek Johnson an epidemiologist with Doctors Without Borders who leverages data science to investigate the barriers impeding people from accessing health in llaha Township my an MA if you thought data science was all sequel databases a B tests and product management this is gonna be a real trip as to get the data for their baseline health assessments Derek and his team ride motorcycles into villages in northern Myanmar for weeks on end to perform in-person surveys equipped with translators and pens and paper because they can't be guaranteed of electricity Derek also uses data scientific techniques to research the factors associated with the transmission of hepatitis C between family members and has helped to conduct studies in Uganda Nepal and India all this and more in next week's episode I'm your host Hugo Bound Anderson you can follow me on Twitter as you go about and day at daily camp you can find all our episodes and show notes at date account.com slash community slash podcastin this episode of data framed a data camp podcast I'll be speaking with Alan Nicol about chatbots conversational software and data science Alan is co-founder and CTO of rasa who build open-source machine learning tools for developers and product teams to expand BOTS beyond answering simple questions which verticals are conversational software currently having the biggest impact on what are the biggest challenges facing the fields of chat bots and conversational software what misapprehensions do we as a society have about these technologies that experts such as Alan would like to correct and how can we all build chat BOTS and conversational software ourselves that's enough questions it's now time for some answers I'm Hugo Bound Anderson a data scientist that data camp and this is data frame welcome to data from a weekly data count podcast exploring what data science looks like on the ground or working data scientists and what problems are consult I'm your host you go down and you can follow me on Twitter actually go down and data count at data cap you can find all our episodes and show notes at data camp comm slash community slash podcast hi there Allen and welcome to data framed hey it's great to be here it's great to have you on the show I want to jump in and discuss your og medium posts from April 2016 which really got the ball rolling for everything you're working in now you open this post with the following statement we don't know how to build conversational software yet I feel like you meant we as a society and community of tool builders conversational software includes chat BOTS I'm wondering now two odd years later is it still the case that we don't know how to build these types of things yet I would say probably yes I still agree with that statement but we definitely made some progress but it's still very much early days for building you know great natural language interfaces for computers tell me a bit about the progress you've seen in the past two years yeah I mean maybe a bit of context as well where that blog post came from so we built a few slight BOTS and because mark was one of the first platforms that opened for this and Alex from a co-founder and I had actually had a couple of slack boards that companies were paying for and they were both around actually making down to science more accessible so turning you know natural language queries into SQL and then you know running those queries on a database anyway should we had some experience with building these things and just looked around and thought wow there really aren't any great developer tools for how to build conversational software and then we saw that the Facebook messenger platform was about to open up and that was right around this time and we thought this is just this is not going to go well and what you mean by Facebook message your platform opening up is opening up in in order to have conversational software in it exactly so letting people letting developers build chat BOTS and that anyone with a Facebook account could then chat and and we thought well you know we have know quite a bit of experience we know that it's really hard to do this well and and this is just gonna the these are not gonna be great experiences for people and I think that is actually pretty much how it panned out there's a lot of hard work involved in getting things working well even in a narrow domain and you know doing something which is kind of open-ended conversation is definitely nowhere in sight but I think we've made some good progress in terms of libraries and tools that people can use that make it easier to build something that does work even though you know we've definitely not crack this problem by any means and what what are the most pressing things that we we haven't cracked with respect to building conversational software so there are a number of things so one is the kind of two things you need for building conversational software so the first is understanding the messages that people are sending to you right and that's called NLU or natural language understanding and what that usually means is like classifying a short piece of text that's belonging to one of you know and intense so those are kind of cost labels for things like a creasing or saying goodbye or asking for some specific things that that your child book can do like looking for a hotel a little something like that exactly hotel and then the other part is is pulling out some structured data so that's usually called entities so you know I'm looking for a hotel in San Francisco and then knowing that San Francisco is is what you want to use in your query and that's NLU and I think it's fine to call it that as so long as you remember it's absolutely not true the computer doesn't understand anything right it's just able to cross by text into one of these buckets and then pull out some it's an entities yeah and just this is a large concern in general with terms like artificial intelligence - the kind of anthropomorphism involved in nomenclature and the way the way we name stuff right it's it's it's dangerous especially when it permeates our common language definitely and I think there are lots of complications and and limitations to that even that simple model right of the intention of what a short message means being a universal single label right so this always means this and you can only represent its meaning by a single sort of one heart vector let's say that's obviously a very limited model of understanding what people can express and and it's a good starting point and and it lets you build on top of that but of course it's not kind of when we think about the future I think that's not how we're gonna represent the meaning of short messages no so we have NLU as being a huge challenge what was the other one you were gonna speak to yes so the other one is then dialogue management so if somebody says yes in the middle of a conversation the way you respond of course depends on on the context right it depends on what happened before so it's not enough to just map each of these intense or each of the kind of outputs of your NLU system to the same action right you need to always build up some kind of statefulness and then the question is how do you handle that in a way that that doesn't break and is actually maintainable and that's a big part of what we've been working on for the last couple of years and that's actually I think the part the biggest part that was really missing back in in 2016 was a reasonable way of dealing with that complexity because the way that people who are doing it basically manually writing a lot of rules just you know doesn't work and it doesn't scale and it it causes a lot of headaches right and I like this idea of scaling because as you say writing a bunch of rules is I suppose the most bare-bones naive way to think about writing conversational software I mean I imagine you can have a set of like nested if else's to try and deal with every everything or a subset of everything and then as soon as a new use case comes up you then need to Ness them even further and this is something which definitively does not scale right exactly I mean maybe if you nest them deep enough then then it counts as deep learning but and that's a little you in in general right you have so I mean I've tried this plenty of times right and even building like a relatively simple thought that just does it was it was a banking chatbot right that we just built for fun to see okay how badly does this work if you really just do it with rules and you know can just do a couple of things like you know check your balance and transfer some cash to people and everything and I think it came out at over 500 rules just for doing this kind of simple stuff and of course then when you you know want to update something or something goes wrong and you add a new rule it clashes with the old ones right let me go I need to go and try and reason about all these rules and figure out why it is that something broke or something clashed and there's an asymmetry there which is really interesting because in the middle of conversation right I mean the kind of cliche example by now is you know what do we want chat bots when do we want them sorry I didn't understand requests haha okay that's provided a great teaser into a lot of the through lines that we're going to talk about with respect to NLU scaling a lot of different use cases of this these types of chat BOTS and conversational software but before all of that I'd like to find out a bit about about you and and Raza so maybe you can tell me a bit about yourself what you do and what Raza does and what Raza is yes so rather is two different things so rather is a company it's a start-up and it's also a pair of open-source libraries but there's Raza and all you which does language understanding so parsing short messages and then there's rouser core which does dialog management and I'm a maintainer of both of those libraries and the aim of them is really to expand chat BOTS and conversational software beyond just the kind of answering simple questions FAQ style you know one input one output kind of turning it into a real conversation and building that in a way that scales and so where I see us as a company and also where we come from was around 2016 when we said okay you know nobody knows how to do this actually there's a lot of research right on how to use machine learning to overcome some of these problems and there's a lot of great papers written on it but there weren't any libraries that developers could use to actually implement those ideas and so where we see our role is really big gap between archives and github let's say so something that's actually you know well-maintained has lots of tests has people responding to issues has support gets updated regularly and and so we do a lot of applied research in this field and we publish papers and we work together with with universities but it's always you know very strictly applied and then we always the primary output is always to put out some new code that people can do that does something better that it couldn't do before right so you know one recent example was we we completely changed how we do intent classification and we shipped a new model which through all the old assumptions of the window and just said okay now we're gonna learn word embeddings in a supervised way for this task and that lets us do things like building a pyro Cobra presentations of meaning understanding that a message can contain multiple meanings because sometimes people just say multiple things and so we do a lot of that and then the primary output is a piece of code that people can use and then if we write up a paper that's a nice bonus so this speaks to the open source side of Raza but you see that Raza is is two things yes the other side is a company and the first year that we operated we basically did a bunch of consulting work on top of the open source and that was really great because building stuff with it yourself you know it keeps you really honest about its limitations and helps you understand your customers and then you know after we did that for a year that was obviously very nice and we kind of bootstrap the company then we said okay actually you know we think there's a scalable product that we can build here for an enterprise version we talk to a lot of these big companies that we've been consulting for and there was a clear need for like an enterprise package with more features and and a different product and so we thought ok that's that that's something we want to take a bet on and so for the last sort of six months now we kind of stopped all the consulting work we raced in venture capital and really just went full-on on building out the Enterprise version but then still all the machine learning stuff goes into the open source right so big part of what we believe in is that you know you can't build up a competitive advantage by having kind of secret implementations of algorithms lurking around the the machine learning stuff needs to be open it needs to be tweakable and people need to be able to play with it and there's just so much nonsense around in the AI space that it's better to just say okay no fairy dust you know there's no magic it's just stats go look at the code all the machine learning is open source and you can see exactly what it does and you can tweak it for your own yeah and I'm sure all the different interplays between your company and the open source development are really exciting so for example correct me if I'm wrong but you've recently hired to machine learning researchers yeah so we're only ten full time people and but two of those are full-time on ml research and the measure that we really care about is how quickly can we take a new idea like oh this you know a little trick actually works and then put it in production and the great thing about having the open-source community is that whenever we have a new idea or we have something that kind of works they're just thousands of people which is ready to check out the master branch and and see what it does on their data sets and so that's that feedback loop is really awesome and you know you can't do that if you if you build things in a closed source product you don't get that kind of insight that's really awesome and I suppose we should say that also it's a Python library right it is yeah yeah it's written in Python but also we obviously work a lot with large companies right so our main enterprise customers with a fortune 500 and their let's say not mostly on Python right so they're mostly right in Internet or Java or C sharp and then there's a large sort of chat boat developer community which uses JavaScript and so what we did was we made sure that the libraries even though they're written in Python you can use them without writing any Python and you can consume everything over HTTP API and that means that you know you don't have to be running a Python stack yourself he gives these libraries so you can kind of just you know spin them up in docker containers and just use them and deploy them to production without having to actually write any pies in yourself that's really cool and I may be putting the cart before the horse or the chat bot before the the company to extend the analogy into absurdity but there is a fantastic data camp course that you've created and that I I facilitated last year on building conversation with software with Python and using Raza and there's also a lovely interplay between arm for those people who know a bit about the Python data science landscape lovely interplay between Raza scikit-learn and spicy for fruits yeah exactly and you know there's no point in reinventing the wheel right so there's a lot of really great libraries out there for doing different things you know for example in our in in browser core which is the dialog manager you can plug in like different backends to implement your model in and actually do the machine learning part right so one way you can think about reservoir is it does all the hard work to get that conversation into the kind of XY pair format that you think about when you think about machine learning and then you can plug in like whatever classifier you like of course we have some good ones implemented already but then you can you know you can implement your stuff intensive flow or Kerris and actually the Charis api was a big inspiration for that i'm just saying okay can we just abstract over all the things that aren't important for understanding the problem and really just present the api that that makes sense to you right and then you know we don't need to build our own also dip library because why should we you can use ten support for that and that also remember GPU etc and similarly for you know doing things like part of speech tagging the most of things that that you can do with Spacey and and it makes more sense to build on top of libraries like that so you can kind of choose different backends that you want to use and to implement some let's say lower level functionality for both raza NLU and rather core that's fantastic so I want to get in in a second to think about what type of use cases which verticals and industries you see most interested in conversation or software but before that I just want to step back a bit and do what what's a good working definition of a chat bot or conversational software are they the same thing that's a relatively bill formed question but maybe you can speak to that bit yeah so the things that we're interested in are not just let's say strictly chat boards some people would call some of these things virtual assistants I actually think that voice is also extremely important so anything where you interact with the computer through natural language is something that we're interested in and I would call all of that conversational software and it's so that's different to just a chat book right I think chat boards mean different things so in in some groups of people a chat bot strictly means actually just something that does chitchat so you know can't actually do anything for you it's just there for having an interesting conversation that's actually less what we're interested in small talk is not something that we really focus on we're more interested in you know purposeful conversations that actually do something but then there's another kind of definition which says that a chat bot is on these mobile messaging apps right so on facebook Messenger or slack or whatsapp or something or telegram and that any kind of application that lives inside one of those apps even whether it's chat or you know button based or it shows you a little webview and that all of those are also chaplains so it's yeah he'll define as most terms are will jump right back into our interview with Alan nickel after a short segment it's now time for a segment called freelance data science with Susan Sun a freelancer who has worked with the New York Times Cooney Google and General Assembly Susan we're here today to talk about the legal side of freelance data science right yup we sure there seems to be a riddle as a freelancer you'll need to build a portfolio but as a data scientist working for private enterprise I'm sure you need to be constantly signing non-disclosure agreements otherwise known as NDA's how does this trade-off play out for you in practice I prefer to err on the side of caution even if the client doesn't specifically asked me to sign an NDA I rather treat every client and situation as though I've already signed an NDA India is actually being a lot more than simply promising not to take a code I wrote for one client and using it for another ideas concepts strategies they're all considered intellectual property and can and should be restricted by NDA's on top of that some clients don't want the public to know that they are contracting work out your freelancers and that is their right so if you sign an NDA like that you can't mention that you're working for certain clients and finally considered this if the client you're working for is international you also have to think about the data privacy laws that differ by country and most relevant one that's on top of everyone's mind right now are the gdpr compliance rules absolutely so what implications does this then have the portfolio building as a freelance data scientist it definitely puts a restriction on showcasing some of your best work it's pretty difficult if you're just starting to freelance and you don't have the history of past clients to help vouch for your work the only thing you really have is your github repo to prove yourself I see this problem a lot and my students whether they just finished a data science bootcamp or they just graduated from University with that master's in data science my advice to them is usually one to participate in some data science hackathons and to contribute to some open-source projects right so both of these are perfectly legal ways to showcase your work publicly right and as a freelancer do you have to form an actual company such as an LLC or can you just operate independently absolutely yes there aren't that many rules that will say are absolutes in freelance but this is definitely one of them you must protect yourself under LLC not only does it make you look more professional to your clients but also from a legal and accounting perspective you want to separate your business expense from your personal expense and finally being incorporated under LLC gives you an extra layer of protection in case of any legal disputes and can you do this yourself or do you need to hire some expert help like a lawyer for me personally it was much easier for me to work with a lawyer and my lawyer specializes in business law all right so he helped me write my LLC Charter and he filed appropriate paperwork for me as well I still consult with him from time to time every time when I pick up a new client just in case there are any clauses in the contract since I need that have any conflicts of interest thanks Susan that was an informative and practical introduction to the legal aspects of freelance data science I'm looking forward to speaking again soon after that interlude it's time to jump back into our chat with Alan Nichol this may be a relatively naive question but I think naive questions can give us a lot of insight why should we care about chatbots or conversational software I think it's a great question I think one of the the main reasons I'm really excited about it is that it makes computers usable but people aren't experts and that can be on a very sort of banal level or it could be on a more sophisticated level so for example my grandfather never used the computer in his life I you know he knew what the word internet was but he didn't know what it meant and he never had any experience of it and then I think about my parents who are you know to some degree computer literate but also certainly not you know the same as my generation and then I think of how quickly technology is progressing right so if we all believe that tech goes sort of exponentially fast then if my grandfather was behind imagine how far behind we're gonna fade one world so I think a big step that we need to take is okay how do we rather than have the need for computer literacy how does the computer attack to deal with how we already think about things and it's sometimes a really simple stuff right just asking a simple question and getting an answer rather than having to you know open up a document and find where it is or something and then sometimes it's for more sophisticated things right I was like to think how many Google searches do you think there are every year for how do I do eggs in software why and then imagine that you didn't have to google that you just said to the software how do I do X right so Photoshop is something I know is very powerful I have no idea how to use it but I could express some of the simple things I'd like to get done right yeah out of blue border around this image or something you know why can't I just engage with computers by by saying what I want and just having it happen so I think it's it's it's powerful in a lot of different ways and especially for making tech more inclusive it's really important that's great because that also speaks to a very personal individual power not the type of power that you know when you're working with corporations or businesses achieving you know business goals but really on on the ground empowering yeah yeah absolutely which verticals and industries are currently most interested in using conversational software so my sample is definitely biased because you know I work on Raza so the companies that we know about and that approach us are the ones that find this important enough that they want to invest their own engineers into building this out and they realize it's strategically important and they want to build up these capabilities and I'm sure there are other industries that where it's really relevant but you know the considerations are different and they you know they don't want to necessarily run the tech or owned the tech in-house but what we see the kind of strongest pull from industries in financial services so insurance and banking and then another one which is automotive and I think that makes a lot of sense I remember when I had when I got that Amazon echo I had it for about six months and you know I thought it was it was cool it was kind of fun but wasn't game changer and then I went to conference in the south of Spain and I rented a car and I had to drive like three hours from the airport and I remember just driving you know on the motorway in a foreign country and then I had my phone clipped to the dashboard and I was kind of tapping on it to change the map and like to change the song on Spotify and I show this is so dangerous why can't I just talk to the car and say play this song right the same way I was used to doing with the echo at home so I think automotive is also a really valid use case for especially for voice interactions for sure and that's very clear where the value can be delivered as the example you just gave was a paradigm I think how about in insurance and banking what type of value can conversational software deliver there I think it's on different levels if you think about what is your main interface to your bank to the data that you have at the bank and how do you engage with it you know some banks have really nice mobile apps and you can just do everything there but one other interface that a lot of people fall back to is just going to the branch right and talking to a human and why do you do that because you have questions right and you can't ask a question of an app generally right you can do the things that work that were suggested to you that the developers decided to implement but you can't say the things that you don't know right or that or ask for the things that haven't been implemented and so kind of asking for advice understanding things at a bit more depth those are all things where there's a lot of value to be added especially on insurance whether you know the actual product that you buy the policy can be very complicated and hard to understand and and you know talking to a human is also kind of tedious you have to make time take time out of your day to engage with them and so you know if you have a kind of 24/7 agent that you can chat with and can answer most of your questions it's actually pretty powerful and having some sort of intelligent conversational software for banking in that sense for you know questions and FAQ isn't that that type of stuff would stop me becoming infuriated when I call the bank I'm on you know you end up in one of those graphs that directs you downwards and you just keep shouting representative like 15 times you know like press zero for whatever because it actually makes no sense I also have the added challenge and maybe you can speak to this that I'm an Australian living in the United States most of the year round so that I I have to like put on a fake American accent to be understood by the automated telephone system of Bank of America my girlfriend's from Scotland and you know her accent can be misunderstood both by humans and by software also non-native English speakers right understanding language I'll definitely you know understanding speech there's been some great successes but it's certainly not a solved problem or commodity by any means and that's not something where we try and compete you know you got to focus on something and that's not something that we do but it's a certainly a really interesting problem no I I remember you telling me some time ago about an insurance chat book but it wasn't it wasn't voice it was an SMS chat bot maybe you could tell us a bit about you know these these types of use cases yeah and that actually was a really interesting one so it's a it's a large insurance company in Switzerland called Helvetia really big company it's like 160 years old and they wanted to do something to engage people whose house insurance policies were about to expire so these are five-year policies and they run out and you know they have a large customer base but because employing people in Switzerland is very expensive it actually literally wasn't worth their time to have an agent call up all these people and ask if they want to renew their policy and so what they did was they they built a chapel actually with Raza and it went out over SMS and engaged with these people and I said hey you know your policy is due to expire and is is your living situation still to say it would have some questions you know has anything changed maybe you've moved maybe dog or you got more expensive car or whatever it is and then if everything you know what the person wanted to renew and they collected all the deaths that they needed they'd say okay you know here's your quote is that cool if they agree to it it would just you know actually finalize the policy and the policy would be in the post with them but in a couple of days so it's really kind of end-to-end automated right so that's also what I mean by conversations that really do something it's nice to answer questions but it's a lot more powerful you can say okay it's not done right and it's on the way and I think one of the interesting things is it challenged a lot of assumptions around what chapels are what they're useful for so people think about it firstly as a customer service thing and kind of saving costs which is certainly relevant but if you can actually increase revenue right and that's that's really compelling so this was actively reaching out to these people over SMS and it was a 30% conversion rate which is really astonishing in terms of getting people to buy a new five-year policy and then you know the other thing was that people think about chapels and they think about you know generations ed and and messaging apps when actually the first person to buy an insurance policy of this chatbot was a 55 year old Swiss lady and so that's all yeah a really interesting and I think also speaks to the fact that it does make tech more accessible for a larger group of people right you can just speak to these systems and and you know you let your customers speak to you how they think about the problem rather than forcing them into your paradigm which is the software that you've built for them to engage with your company exactly so you've spoken to some really interesting use cases in Insurance Bank the automotive industry other industries that aren't as interested in conversational software as you think they should be that's a really good question I I'm not sure I have a good answer to it I mean I've personal frustrations with things like you know telecom companies getting internet set up in your flat and all that kind of stuff where it would certainly be a lot more useful if you could have a kind of 24/7 automated support that you could chat to and get things done but I'm not sure if I can think of off the shelf examples of industries that are really neglecting this we see a really big actually a really big variety of companies reaching out telling us that they're using browser sometimes asking about the enterprise or sometimes just have some questions it's actually much more diverse than the use cases I listed but definitely the dominant ones are are things like financial services and automotive okay great and as you mentioned express your frustrations with you know calling up telcos for example I actually remembered you know government I think it's probably a great area the IR the IRS and the tax system I actually ended up I mentioned my frustration with um those graph those telephone trees that you get sent down like press one for whatever and I ended up somehow when I called the IRS several years ago on a loop I was somehow I thought they beat you wouldn't be allowed loops in these graphs but I ended up on a I was about to swear I ended up on a loop in one of these these conversations and I ended up hanging up so there's definitely room for for a lot more aspects of conversational software in these types of places yeah I think when you're the the experience as someone who's in a phone tree is how do I most quickly get to speak to a human and it's not how do I most quickly get the thing done just because there's such low expectations of these things actually because they're mostly just pre-qualifying what your problem is right to send you to the correct person or that when the person talk to you they already know half the information that they need and they don't have to collect that so it's really optimization on their part and it's really not optimization on the point of you as a as a as a customer you know getting your problem solved quickly for sure so I think this has provided a lot of insight for our listeners into conversational software where it's being used the ins and outs and I'm sure a lot of them are kind of eager to hear about where they can get started so I think both technical and non-technical listeners alike would be interested in in hearing about how they could get started with conversational software so maybe you can give a few a few pointers yeah definitely so also partly because you know there was this big boom when Facebook messenger opened up they're actually some really nice online tools that you can just point and click and build a little prototype of a chat bot all right so dialogue flow is one example it's owned by Google Chat fuel is another and you don't have to really write any code and you can just kind of you know design a prototype of your chat but you don't have to set up a server or anything and you can you can very quickly get something that you can you can try out and just kind of get a feel for how something like that would work and then if you want to go beyond that there's lots of good resources on you know understanding the tech behind a building something that you know you can really maintain and scale this is of course the data count course that we created which really covers the fundamentals right what are you really doing what are you really going on kind of demystifying this concept which if you've never worked in NLP or anything it seems really kind of bizarre and almost impossible right how do you build computer programs that understand language seems so sort of inconceivably hard code we go into the little fundamentals there and then if you want to build more advanced things you can either then you know build everything from the ground up which is always an interesting especially for learning experience interesting approach or you can use something like Raza you know an open source library where a lot of the heavy lifting is done for you and and you can then kind of get started build something out and then you know really tweak parameters to get better performance on your dad said give it to real people and it's right but I'd say that the the best way if you just think if you want to tinker then okay build the chat boat first and give the some people but if you want to actually solve a problem and and you actually want to understand what people do then the best way is not to have a chat pod but just to pretend to be a child by yourself and just happen you know say that it's about and ask people to talk to it and and and then you know answer them yourself right and if people don't like the experience with your brain behind it then they're definitely not gonna like the experience with with a sort of artificial machine learning system behind it so there's a great way to kind of validate if what you're doing actually makes sense and really get some inspiration for all the things that you didn't think about and so one mantra that we have and it's really one of the principles that we used to build our products is that real conversations are more important than hypothetical ones so I'm less interested in giving people tools to design hypothetical situations and think about all possible conversations that people could have it so much more important to look at real conversations that people do have and learning from them and that's what browser core is all about is learning how to have conversations from real data absolutely there's so much in there and I just want to kind of recap a couple of the takeaways the first takeaway for me of course is take this data camp course I do think it provides a wonderful introduction I mean in the first chapter you get to build a chatbot which is based around one of the early chat BOTS Eli's a chat bot which is which is incredible you do a bunch of our natural language understanding and then you get to build a virtual assistant that it's a personal assistant that helps you plan trips which is which is really cool I think you get a lot of insight in this course into everything everything we've been talking about the second takeaway I think is that you need to think about what the purpose of your chat bodies for example a lot of people I think have a have a misconception that you know chat BOTS need to sound like humans for example but the question is if you're if you've got a virtual assistant who's gonna help you build a trip do you care whether it sounds like a human or at all or do you want it to do the job you want it to do right yeah I do think there's a big important topic as well around design and writing good copy and being empathetic and doing things like active listening and that's a whole kind of you know orthogonal set of problems kind of to what we're really tackling it is important but of course yeah do you actually solve a problem right do you actually do something for people you know I end up using at least a couple times a month some product that I just completely hate but I have to use it because it's the only thing that gets the job done what I need right and so I think also in startups you know if you think about product market fit you almost want to put buyers in people's way you almost want to have your product your first version of your product you really crappy maybe even intentionally so just to see if you will persevere because it really solves a problem for them right we'll jump right back into our interview with Al Nikhil after a short segment now it's time for a segment called data science best practices in this segment Justin Boyce from Caltech is back to tell us about when we should use logarithmic scales in plotting Justin you seem to be talking a lot about plotting in these segments yes I have been clear informative plots are really one of the most important products a data scientists can produce so I guess I talk about a lot because it's important before we hear what you have today I'll remind our listeners that they can check out the plots you're describing here by clicking the links in the notes for this podcast that said what have you got for us Justin today I want to talk about using logarithmic scales also known as log scales when constructing plots when we first make a plot we usually choose a linear scale to be clear on what this means imagine we have three evenly spaced ticks on a linearly scaled axis say at 5 10 and 15 the difference between the value of the second tick and the first tick is the same as a difference between the value at the third and at the second the difference is 5 in both cases now conversely if we have three evenly spaced ticks on an axis with a log scale they could be at 5 10 and 20 the ratio of the value of the second tick to that is the first is the same as the ratio of the value of the third tick to that of the second in this case that ratio is 2 so a log scale is used when the data you are plotting vary over orders of magnitude right so can you give us an example of where we might use a log scale instead of a lineal one we often use them in scatter plots say we suspect that more populous places have higher home prices we want to plot the county level median home price per square foot versus the county populations County populations in the u.s. vary over several orders of magnitude from under 100 people in Callaway County in Hawaii to over 10 million people in Los Angeles County and everything in between so we should choose a logarithmic scale for the population axis of this scatter plot but what about the home prices don't those vary over orders of magnitude too I live in New York and it sure feels like people are paying a lot less in other parts of the country that's true they are you could also plot the price axis on a logarithmic scale but here you might consider what you want to learn from the plot choosing a logarithmic scale will nicely stretch the data at the lower prices to visualize them better and we should probably perform a regression using a log-log scale if we wanted to quantify the relationship between the two variables however plotting things on a log scale visually dulls the magnitude of outliers for example the median price per square foot of a home in Manhattan is over $1,600 while that in San Francisco is just over a thousand this is a big difference and it is not as striking when plotted on a log scale so it is in many ways about what you're looking to discover in the data yes I would say so but it is important you don't choose log or linear scales to help with some sort of confirmation bias when in doubt just show it plotted both ways other situations where you use a log scale that's not in scatter plot say with empirical cumulative distribution function plots which I know you love yeah it's often a good idea to have your x axis on a log scale if you are plotting an e CDF of a variable that varies over several orders of magnitude interestingly if you are trying to see if a variable is power law distributed you can plot the empirical complementary cumulative distribution function the EC CDF with both axes on log scales if you see a strong linear trend on the log log plot you very likely have yourself a power-law this is fun to do with the population of metropolitan areas in the US which follow a power law known as zip slaw thanks Justin no problem you know I wonder if you plot the number of weekly listeners of data framed with the y axis having a log scale does it look linear with positive slope if so you've got exponential growth my friend huh I'll go do that now see you next on Justin always a pleasure here we go time to get straight back into our chat with Alan so what are the most common misconceptions surrounding conversational software that that that you want to correct is that it's kind of really artificial intelligence maybe even artificial general intelligence and that you need to wait for you know deepmind or opening I to solve these grand problems and then you'll be able to download a brain from the internet and that's gonna magically solve all your problems you can build stuff now with the techniques that exist and you just got to put in a bit of work right and you don't need a degree in statistics or computer science or anything like that to build these things you can definitely self teach and you can build something that's really useful and adds a lot of value with what's out there now and you shouldn't even try I think to to build a kind of do everything the kind of system and then I think another one is that only you know Facebook Google Amazon Apple have the tank to build conversational AI it's just not true and we see that a lot you know there's also some academic papers published where they compare Raza to some of these close source tools from from Google or Microsoft and it actually it does very well right because it's not there's no fairy dust there I mean this is I don't wanna pitch browser too much but you know the way Microsoft sinned and IBM think about this program is we have magical algorithms in the cloud upload your data here and we will turn it into gold and I think that's just nonsense you can build a lot of great things even better things with open source tools because you don't have to you have full control right you can tweak things you can customize things for your use case and so it's definitely not something that's only in the domain of the big tech companies and an another one that we already spoke to a little bit is that this kind of generational bias that it's only something kind of fun and light and for Millennials it's actually something especially for you know maybe the boomers and and all the generations as well as it's a really important piece of tech now so one thing you mentioned was this idea of product market fit and I kind of want to zoom in on where rahzar core came from how it emerged and I I want to approach it from I suppose the idea that we discussed at the start of this conversation about needing to have conversational software that that scales so maybe you could tell us a bit about the landscape before rahzar call and then how rosa core emerged in relation to the idea of scaling this software yeah definitely there was a before rounds of core came out and there was some nice sort of cloud API as for doing the NLU part right so you send in a sentence that it sends you back you're its interpretation of what that means what's the intent what entities are in there and then the question is putting you to in response to that right so you have things like yes and no and of course the response to that depends on what happened before and so what do you do well you write out some rules right so you write a rule for okay if we currently if the last thing we asked was this and the person says yes then proceed down this direction if the last person said was no then go down this path right and that's great and then you say okay well we now need to maintain that state over multiple terms in a conversation so you don't just build kind of point A to point B you build a state machine alright you say okay this person is currently in this state and now they've said this I've moved into this state where they're now kind of maybe ready to make a purchase or they're asking about this topic or whatever and then of course you know works to an extent but then you know you you deploy this and you give it to people and and you ask them in yes or no question right like you know one example is a oh where should we just send that to your home address and then you've maybe built a branch for yes and you build a branch for no and that the person responds oh what home address do you have on record for me alright there's always an edge case that you haven't thought of right which is fine and of course like all software has edge cases but then the question is how do you do with that right if that's an important thing that looks people say you need to answer that to them you can either then add another nested if statement in your logic or you can add in the other state to state machine which then is kind of explaining some deeper information which then probably you can get into that state from multiple different other states so you have kind of one new state but they have order n-squared ways of getting in and out right because you have all the other states and that very very quickly becomes unmanageable so you you have this kind of bag of rules about how people navigate the state space and then whenever you want to change something it clashes with old rules or break something else and the thing is that you know mid-conversation it's absolutely trivial to know if the chat board said the wrong thing right you can give that to a four-year-old and all its nonsense that this make sense but it's really hard to then figure out like from that big state machine why why did that happen right what did I go wrong kind of reversing the logic and so we said okay why don't we do it completely differently we don't build up that same machine at all and we just say okay here's a conversation that went wrong right say what should have happen instead add that to your training data and then train the machine learning model that learns how to have these conversations and so rather than having a sixth solid representation of the state machine you learn a continuous fuzzy representation like a continuous vector that represents that state and you learn that such that you can do these conversations that you've you've had you've seen and then you can measure how well it can generalize some of these patterns so there's a recent paper that we just finished I'll make public very soon where we actually study how well you can take these general patterns like you know answering a clarification question like Oh which address you have on file for me and then reusing that in different contexts and even in different domains and that's kind of you know what we've always wanted to do with Roger core and say okay you know throw away your state machine don't try and anticipate and and write rules for every possible conversation because it's basically impossible to build a flowchart and reason about every conversation that somebody could have because it's just a combinatorial a big space but it just don't do that just have real conversations and learn from them that's kind of where as a core came from and there was lots of research on doing machine learning based dialogue management we certainly didn't invent that but we had to do things a little differently from have a sort of academic world was doing it they were doing a lot of work um reinforce we're learning there was some technical reasons why that didn't make sense for people getting started with rounds of core I mean the short version is basically you have to implement a reward function and that's not a trivial thing to do and so you know we said okay we don't go for reinforcement learning we do everything with supervised learning and we let people build up these conversations interactively by talking to the system and that's kind of what we've been been doing with rounds of core is taking some of the ideas from the literature other ones that we think are most applicable and then kind of you know straying from the literature where we think it makes sense to and then building a library that lets people who don't have a PhD in statistical dialogue systems to actually build machine learning based dialogue and not have to have to you know build these kind of unmaintainable state machines that's great and this movement from state machines to the importance of real conversations and you know machine learning implementations of machine learning algorithms which which learn from more and more conversations and more more training data real data is incredible so what happens next what is the future of conversational software look like thinking about it in these terms that's really I think for developers it's a really cool time to be in this and we engage a lot with our community that's probably my favorite thing about open source is we have you know literally thousands and thousands and developers who user so far we have a you know over 100 contributors to the codebase who are just you know people who are using it for their own purposes and contribute back and this is real sense of excitement right people are building and inventing new things and I kind of think of it like being a webs about in the 90s you know if you build you know websites now are you doing friends and development it's well understood what you have to do building like a crud app but none of that's really been invented yet for conversationally I I mean some of the kind of early versions of it are there but for as a developer it's like okay this is you know kind of Greenfield I get to invent a lot of stuff so that's really fun but there's still lots of challenges so it's not by any means a solved problem and so that's why you know we we invest so heavily in research in in kind of you know shipping and breaking through the limitations of what we see currently in our libraries and in what people do in academia and kind of pushing beyond that and shipping that into the libraries and I think on the consumer side the future is lots of little magical moments where something just works and so I had a great one literally yesterday I was on Google Analytics and it's not something I look at very often you know maybe once every few months just because I was actually I was working on our documentation and I wanted to know how many people view our documentation on a mobile device and and you know I'm not an expert in google analytics so I would have had to you know go and build some filter but they have this cool feature where you can just ask a question and I'm literally just typed it into the box how many of our users it at NL URLs at home our documentation are on a mobile client and it just answered you know 6% I thought amazing I didn't have to do anything and it worked the first time right and those kind of magical moments that occur are really cool especially fun because that was one of the first use cases that we worked on back in in early 2016 that we had some a chance and some paying customers for and then to see that kind of deployed at scale in the wild was really exciting so I think that's amazing a lot of really magical moments and that we'll all experience over the following years and what we won't have anytime soon is the kind of do everything in magical assistant that replaces a human Butler or something yeah and it's great to hear your experience as a user as well as someone who develops a lot of these things also so you spoke to um you know the the future challenge or current and future challenge of scaling to multiple use cases are there any other big challenges facing conversational software development yes I do think I do think the biggest one is okay you have something which works and in our domain and then how do you extend it to more domains and I think you know we recently sold this demo from Google duplex where they showed I mean primarily very very impressive text-to-speech you know the speech synthesis but also like a very nice functioning dialogue system that can handle quite a bit of complexity and they're very open in their in their posts about about the software that it's only works because it's very limited right and it works on on restaurants and hairdresser appointments and then the question is okay how do you build you know the next hundred use cases and you know if you look at Amazon you know I think there's 6,000 engineers working on Alexa so it's a it's a big effort right it's not something you can you can just do without a lot of hard graft and then the other part is really not just around the technical challenge of building it but it's really also the conceptual challenge for programmers to build software where the kind of core logic is learned from data right so that's that's very different from calling an image recognition API and you said it a picture and then it tells you that there's an apple in the picture and you have statements the Apple say Apple or something the way that compositions go is learn from real conversations that people have had that you've checked and annotated and fixed and learned from and so managing that training data becomes a way of programming and a lot of product management needs to be invented there in terms of how do you how do you actually do that and that's really interesting and that's obviously something that we spend a lot of time thinking about and and I think we have some some cool things at the pipeline as well so have some great things to show there in the future great I look forward to hearing about those future developments so Ellen my last question for you is you have a final call to action for all our listeners out there yeah I mean all of us has open source so go check it out and browser comm is the website if you search rouser core or rosa NL you google should show you the the documentation the github repos and build something try it out let us know how it goes I really curious people always come up with infinitely creative use cases and yeah if you have any problems you know let us know fantastic alan has been an absolute pleasure having you on the show thanks for joining our conversation without and about conversational software and chat bots we saw that two major verticals that are currently being disrupted by these technologies are the automotive and finance industries we also saw a wonderful illustration of how chat BOTS aren't merely for Millennials in the example of an insurance chat bot helping a 55 year old to buy insurance we saw that the biggest challenge facing the conversational software developer community is scaling the software both in terms of natural language understanding otherwise known as NLU and dialogue management and the impact that moving from state machines to machine learning can have on this Alan also made clear and I cannot stress this enough that we need to dissolve the misconception of artificial general intelligence being the key to solving these problems we've seen this before and we'll see it again that many of the algorithms to solve many of these challenges are and will be specialized also make sure to check out our next episode a conversation with Derek Johnson an epidemiologist with Doctors Without Borders who leverages data science to investigate the barriers impeding people from accessing health in llaha Township my an MA if you thought data science was all sequel databases a B tests and product management this is gonna be a real trip as to get the data for their baseline health assessments Derek and his team ride motorcycles into villages in northern Myanmar for weeks on end to perform in-person surveys equipped with translators and pens and paper because they can't be guaranteed of electricity Derek also uses data scientific techniques to research the factors associated with the transmission of hepatitis C between family members and has helped to conduct studies in Uganda Nepal and India all this and more in next week's episode I'm your host Hugo Bound Anderson you can follow me on Twitter as you go about and day at daily camp you can find all our episodes and show notes at date account.com slash community slash podcast\n"