What’s Up with Machine Learning?
4月 25, 2018
Everyone’s favorite new buzzword is ‘machine learning’ (or ‘ML’) but what exactly is ML and how is it already transforming everyday life and business? We chat with Microsoft engineers about machine learning and the significance of Windows ML, a new AI platform for developers available through the upcoming Windows 10 update. We cover how ML is changing the field of app development and how developers can get started with Windows ML. Finally, a Windows Insider gives us a tour under the hood of his app and discusses how machine learning is baked into the app’s evolution.
Windows Insider Podcast Ep 14
What's Up with Machine Learning?
Segment 1 interviewees: Clint Rutkas and Lucas Brodzinski of Microsoft
Segment 1 interviewer: Dona Sarkar
Segment 2 interviewee: (Insider) Irving Amukasa: I4G Fellow (creator of SophieBot)
Segment 2 interviewer: Jason Howard
JASON HOWARD: Welcome to the Windows Insider Podcast. I'm your host, Jason Howard, and you're listening to Episode 14, What's Up with Machine Learning? In this episode we chat about ML, its future influence on app development, and the impact of Microsoft's recent Windows machine learning announcement. Here in the studios with our first guests is Dona Sarkar.
DONA SARKAR: Hi. I'm Dona Sarkar, Chief Ninja Cat and head of the Windows Insider Program.
I'm here today in the studio with some special guests from Microsoft to talk all about everyone's favorite new buzzword, machine learning.
I would love for our guests to introduce themselves. Clint, would you like to go first?
CLINT RUTKAS: Hi. I'm Clint Rutkas. I am a Windows developer community champion. So if you guys have APIs you want in the system, please talk to me.
DONA SARKAR: Exactly. You'll see him on Twitter a lot talking about the Windows SDK. So for all of your Windows SDK needs, tweet @ClintRutkas.
And then Lucas.
LUCAS BRODZINSKI: Hi. I'm Lucas Brodzinski. I'm the program manager lead of the Windows AI platform team.
DONA SARKAR: That is awesome. What does that mean?
LUCAS BRODZINSKI: Well, we're teaching the robots how to think. You know, we've added capabilities to Windows for people to do machine learning inference on the edge. So we're introducing the intelligent edge to Windows.
DONA SARKAR: That is really cool. Thank you for joining us.
LUCAS BRODZINSKI: Thank you for having me.
CLINT RUTKAS: I actually think it's even more than that. Think about we're adding machine learning, the ability for every Windows device, not just desktop, device, to be able to do machine learning.
So I think the big question is like, what is machine learning and why do we care?
DONA SARKAR: That's exactly the very first question I have for both of you, which is let's go all the way back, back, back. What is machine learning and why is it different than AI?
LUCAS BRODZINSKI: Cool, totally. So the way to think about AI and machine learning is machine learning is a subset of AI. The whole concept of AI is you're trying to get a computer to act intelligently, kind of like a human would. So you can get a computer to do a function like a human would and get a response from the computer as a human would. Machine learning is a specific technique to try and do that.
So for instance, if I'm having a conversation with you guys in real life, like I am right now, you know, I can read your facial expressions and I can kind of change my approach to the conversation based on the facial expressions you guys are giving me.
So that's my intelligence. And we would love to teach computers to be able to react to human interaction in that way.
One potential technique to go about doing that is emotion detection, which there are machine learning models to do.
However, machine learning is this technique towards building out this larger intelligence, which is AI.
CLINT RUTKAS: So I think the question is, why would you use machine learning? Let's say for whatever reason you want to build out a vegetable detector. Let's say I wanted to detect a carrot versus broccoli versus cauliflower. So what is a carrot?
So would I do it based on color? So I have an if-statement that says, okay, well, if it's shaped kind of like a triangle, if it's orange and it's roughly this long in the photo, that's a carrot.
Well, there's purple carrots.
DONA SARKAR: Right.
CLINT RUTKAS: So now I have to add in an additional if-statement there.
And then, okay, well, now, what's the difference between a carrot and broccoli? That's a bit more easy. But what's the difference between broccoli and cauliflower? If you ask a kid that doesn't know, has never seen them, they might go like this is a baby version of that.
So all those things, once you start having to factor in more and more and more, that code becomes extremely unwieldy, and then that's when machine learning comes in, because now you can start giving -- start training your model, this is exactly what a carrot is. Here are all the different examples, all the different images we have of carrots, from different angles, different viewpoints, different coloring, different variants. Same thing with broccoli and cauliflower. And then magically now we can start getting high confidences with that model, and all I had to do was call a couple lines of code.
LUCAS BRODZINSKI: You hit it really on the nail there. There are some problems that what we face as developers, you know, our human intuition can solve that problem very, very easily and quickly. However, when we sit down to write code to fix that problem, it gets a little hard.
So, you know, to write the code to detect the difference between two different types of apples can get pretty challenging.
An example, the cool thinking about machine learning is, like you said, it creates this model that abstracts that problem away from the developer, so the developer can feed a model on input, an image of an apple. The model does a lot of computational work to figure out the small nuance differences between different species of apples based on all the training dataset that went into making that model, and the developer just gets an answer of what type of apple it is.
DONA SARKAR: So just to cut you both off for a second rudely, what is "the model?" You guys are saying, train the model, you know, give the developer the model. What is that?
CLINT RUTKAS: Okay, so I think maybe a good thing we should probably talk about machine learning is maybe how it works and what are the big components. So you have an engine, the inference engine, you have I'll say the training system, and then you have the model. The model is actually what is kind of evaluated. So if you said, is this an apple, you give the system the model of what is an apple. Is that a good way to think about it?
LUCAS BRODZINSKI: Yeah, the best way to think about it is, given this large set of data, you can train on that data, which basically means you apply a lot of math to it, and you come up with an algorithm that notices patterns, that can solve functions. And all of that is contained within this model. So the model is the thing that describes the data that you fed it during training.
DONA SARKAR: I see, okay.
CLINT RUTKAS: And then you have the inference engine, and the reason why it's called an inference engine is because we're not 100 percent confident. So we're inferring is this thing an apple. It may be an apple, we may be 99 percent sure it's an apple, but we're not 100 percent sure. So it's not a definitive answer, but you have to have a confidence that, yes, if it's, you know, let's say above 80 percent, we're pretty positive this is an apple.
Speech recognition is a great example of this where you may say, turn on the lights. It's going to give you a fairly high confidence rating if the model properly interpreted your natural language, but it's never 100 percent sure.
DONA SARKAR: That's right.
And do you feel like right now machine learning has already taking over our lives a little bit, that it's already kind of infiltrated tools and services that we use on a day-to-day? Do you feel that that is true? And if so, what are some examples that normal people will understand?
LUCAS BRODZINSKI: Yeah, totally. So, you know, the most recent example is if you look at the Windows photos app, you can actually go into the photos app and type in what you want to search for. So you can type in "dog" into the search field, and suddenly, all of your photo albums will be searched for what the computer thinks is a dog inside the picture. And as a user, you're presented with all the pictures that have a dog in it. And that's using machine learning to do image classification and find specific things and images, in this case being a dog.
DONA SARKAR: That's pretty awesome.
CLINT RUTKAS: Yeah, think about all the speech recognition that is in the world now. So if you have let's say an Amazon Echo Dot or a Harman Kardon Cortana device, if you talk to it, that's machine learning.
You have machine learning built directly into Windows. If you search as well, that's all machine learning. If you go to a search engine, that's machine learning. There's tons of areas in our lives that we have it, we just don't realize what's it's called yet.
DONA SARKAR: So we think of it more like computing rather than machine learning?
CLINT RUTKAS: Yeah. I mean, machine learning I view it as it's much more of a topic programmers care about, because it either benefits or hurts us the most when it comes to programming what we need to program.
As an end user you just want your answer. It's like going to a restaurant. You don't care how the food is made, as long as it's made sanitary, but you get the food and you're happy. You don't care if it's one person making it or 20 people making it, you just get your yummy food.
DONA SARKAR: Okay. So that phrase, machine learning, is quite buzzy these days. Everyone thinks they're working on machine learning or want to work on machine learning. And I think it was the most used term in job descriptions last year. That and AI. So why do you think people, who may not be technical, are so excited about this phrase? What do you think is the potential like going forward? We know it's been used a lot, but how can it be used to transform all these other somewhat old school industries, like think hotel, transportation, manufacturing, et cetera?
LUCAS BRODZINSKI: Sure. So, you know, I think we're living in this time where you really have two massive things coming together to kind of fuel all this. One of it is data. There's a lot of data out in the world. And the key thing for machine learning is you need a lot of data to be able to rationalize over. The other part of it is having access to a lot of compute. The process of training a machine learning model can be quite rigorous from a computation perspective. And we're at a point where these two technologies as a for instance having the data and having the compute power have come together.
And when you think about sort of all the cool end user scenarios that are possible, I mean, wouldn't it be great if we could have systems that, based on sort of the weather forecast, could predict what kind of hotel availability may be available in a specific city? That's just one example of how you can make sense of all this data that's around us in a way that could benefit a user.
CLINT RUTKAS: So think outside just the user, think about how this could benefit humanity. So with machine learning think about growing crops where you can directly use machine learning and models to determine is this a good area for that crop, is something bad happening, should we create targeted pesticide usage versus just blanketing everything.
Or disaster recovery potentially. Like there's so many different areas where you could do things smarter and faster with machine learning.
Manufacturing is another great example. We showed this at Windows Developer Day. Imagine you're building out a circuit board, and for whatever reason something hiccoughs and a single transistor is skipped. With machine learning you can quickly look at it and say, oh, this is missing. And it's the same model then that would detect if a capacitor was missing, for the most part.
I'm looking at Lukas to verify.
LUCAS BRODZINSKI: Yeah, no, that's exactly right.
CLINT RUTKAS: You can use that same thing, and then now rather than have to do a recall of, you know, 100,000 units, you caught it before it even shipped out.
DONA SARKAR: That's right.
LUCAS BRODZINSKI: Yeah, and, you know, to build on that example, there are cases where in order to make sense of the data that's available today requires a lot of specialized expertise in an area.
DONA SARKAR: That's right.
LUCAS BRODZINSKI: And sometimes, that expertise is not always available. With machine learning what you can do is offer the computer to make sense of all the data that a human expert would have accumulated over years, and make some predictions that, you know, the hope of machine learning is to create a model that is accurate enough to sort of mimic what a human would have done in that situation.
And that's the really cool part about it, too, because you're potentially unlocking a lot of scenarios where we just don't have enough human experts to do something, and the machine could help in those cases.
DONA SARKAR: That news article that just came out, like the farmers in India who are figuring out how to grow crops more efficiently using machine learning, because they definitely don't have the computational expertise to look at petabytes of data on crop growing, so they've been using machine learning to do that, I thought that was such a cool story.
CLINT RUTKAS: Yeah.
LUCAS BRODZINSKI: Yeah, totally.
DONA SARKAR: That applies in like every country in the world, agriculture as a thing, so yeah.
Okay, so recently, Microsoft, we made a big announcement about the next Windows 10 update and machine learning. Do you mind sharing with our listeners what the announcement was?
CLINT RUTKAS: So in Windows 10 Version 1803, Windows Machine Learning is built in. So that means every system that is running version 18.03 will have machine learning built-in. And it smartly takes over. If you're on a GPU, it will leverage the GPU. If your device only has a CPU, it will only leverage the CPU.
As a programmer you also have some toggle so you can pick and choose. This also runs on basically any system -- correct me if I'm wrong here, Lucas -- that runs 18.03, it will just work.
LUCAS BRODZINSKI: Yeah, and the cool thing about it is what we've announced that's going to ship in our next major update is a preview that solves a bunch of problems for developers.
So historically, when a developer has approached machine learning problems, there was a couple of barriers of entry that made the process a little hard. So first, as a developer you would have to figure out, hey, I have this model file that came from somewhere. And that somewhere could have been one of a handful of different training frameworks. And each one of them had its own sort of file format associated with it.
And the very first task you would have to do as a developer is to ask, well, given this model, I need the corresponding evaluation engine that ships with my software to be available to evaluate this model.
With Windows ML we've taken that pain point away, because every single version of Windows has Windows ML in it and is able to evaluate that model.
The other problem was having these handful of different training frameworks and different formats meant that as a developer you had this giant format issue of, hey, there's like, you know, six or plus different formats.
So, Windows ML has the ability to take an Onyx as a model an input format. Onyx is something that we're working with industry partners to standardize as the format exchange for ML models. So as a developer that problem's gone away, too.
CLINT RUTKAS: And we have conversion tools to get your existing models onto Onyx as well.
DONA SARKAR: Oh, that's nice.
LUCAS BRODZINSKI: Yeah, exactly. And there's already frameworks that can produce Onyx natively as well. So Azure machine learning can output Onyx today. CNTK has a (for in-sys?) to save files as Onyx as well. And more frameworks will be coming online and the converters are there.
But thirdly, and you touched upon this point, Clint, as a developer sometimes I need extra computational horsepower in order to evaluate a model. I want to be able to use the hardware that's on my clients' machines. And previously, as a developer I would have to target hardware specifically and not in an abstract manner. So I would have to know what hardware specific GPUs are available on my customer's machines and write code specific to those GPUs.
With Windows ML we've abstracted that hardware problem, and as Clint said, we can do model evaluation on any DirectX 12 GPU or the CPU, and the developer can choose or let Windows decide which one to use.
DONA SARKAR: That's pretty cool.
CLINT RUTKAS: And what's even cooler is it's built to be future proof, I guess future proof with quotes. So we announced this at Windows Developer Days is that it will also work on an MVPU.
LUCAS BRODZINSKI: Right, so what we want to do is we recognize there's a bunch of new ML silicon out in the world that's not exactly a GPU. But we want to be able to talk about to the silicon in a way where a developer doesn't have to make this decision about, well, how do I talk to that hardware specifically.
So at Windows Developer Day we showed an early engagement with Movidius, which is Intel's vision processing unit, to be able to do evaluations using this driver model that we're working on in order to bring these devices into Windows.
CLINT RUTKAS: So imagine in the future you have a device that has one of these chips. Windows ML will just leverage what the best item you have available on your system.
DONA SARKAR: Right, without you having to do a bunch of extra work and learn this new thing. Okay, that's cool.
So machine learning technology now in Windows, super exciting, but what made you guys on the team actually working on it decide to include it in the 18.03 update?
CLINT RUTKAS: So we've been working on this for years in various different ways, in various different subsystems.
So I think the better way to think about it is how long it takes to actually get a feature into Windows. Windows is everywhere. It's in servers, it's in desktops, it's in a plethora of devices. So we've been working on features like this and many others, and it takes years for it to actually get here.
So building out all the needed required items took a bit, and now it's finally in a state where we can ship it externally and allow developers to start getting their hands on it and really get their hands dirty, without us literally changing out the plumbing back and forth.
It's one thing for us inside of Microsoft to have to deal with some of this stuff, it's a totally another thing when an external developer has to deal with that kind of sausage making.
So now we feel that it's strong, it's in a shippable state, and we'd love to get feedback and developers to start using it.
LUCAS BRODZINSKI: Yeah, and on Clint's point, we've been doing this for a long time. We've had a lot of investments in our cloud solutions around AI. So Azure Machine Learning allows you to do machine learning training. We have Cognitive Services that allow you to use prebuilt AI in the cloud. And as Clint was saying, we've finally got it to a point where we were in need of allowing developers to make the edge intelligent as well and do some of these operations without necessarily being able to talk to the cloud.
DONA SARKAR: That's right. That is awesome. It sounds like this introduction to Windows machine learning is really going to change the game for app developers going forward.
LUCAS BRODZINSKI: Yeah, totally.
DONA SARKAR: So Windows machine learning is here, it's in the product by the time this podcast airs, any app developer can use it. It's in preview, so that's to be noted. But how do you foresee the field of app development changing as a result of introducing this technology?
LUCAS BRODZINSKI: Yeah. Well, just imagine the intelligence that you can introduce to your app if you had the ability to recognize patterns but not necessarily having to write all the code to do that.
So for instance, if you could, given a camera input, realize that, you know, there are these two people standing right in front of me, they're wearing maybe a red shirt, and I know if they're wearing a red shirt they're particularly a vendor at an event. So maybe I want to provide them with some information about the event. Imagine sort of all the code that you would have to write if you were going to do that without machine learning.
So one of the exciting things is developers will be able to take on these way more rich scenarios in a way that doesn't require them to write this code. Now, I think that's just going to unlock like a giant cloud of creativity around how devs approach this space.
CLINT RUTKAS: And I think that's one amazing example. The other amazing example to me is it allows developers to start doing AI computing on the edge. And when we say on the edge, it's the end developer system. There's still times where you're going to have to go up to the cloud and leverage that big horsepower availability in the cloud. But as a developer you can't do everything in the cloud because of latency for between calls. Imagine you're dealing with a $30 million device that must have micro-millisecond precision. I'm not sure if I just made up a term, but I just made up a term.
DONA SARKAR: That's cool.
LUCAS BRODZINSKI: And that roundtrip for going up to the cloud and back could be too big of a gap. But there are also times where, hey, I might have to make a decision, my model locally is unsure of what's going on. Then I can go send that query up and leverage that big, rich horsepower of the cloud and get a much more definitive answer. So you can start doing cost reductions and everything and just make the most of what you have available to you as a developer.
DONA SARKAR: That's really cool.
LUCAS BRODZINSKI: Yeah, totally. I'll totally sum it up as doing intelligence on the edge so machine learning evaluations on the edge gives you performance, it gives you scalability, and it also gives you flexibility. I mean, there's going to be times where you want to be able to do machine learning evaluations, but you can't send your data to the cloud, whether it's due to customer preferences, whether it's due to no connectivity. Having Windows ML allows you to do that on the edge in those cases where you couldn't do it otherwise.
DONA SARKAR: That is really, really awesome.
So these are all of the upsides and all the goodness. Are there any unknowns or challenges that you two can foresee?
Radio silence on the radio.
CLINT RUTKAS: Okay, so I would say an interesting thing is it's a new skillset for people to start thinking about. Some people may think of it as, okay, so I have this model. This model, I didn't code it, I don't know what's in it, I don't know how to debug it.
But at the same time, to me as a developer when I step back and I think about it, I'm okay with that. Because you can start verifying your inputs and your outputs. You can also to be sure like, hey, I've done enough unit testing, I trust this thing.
Also, think about all the APIs you call where you didn't code that thing. I got this external library from someone. I didn't code it. I can't directly debug it. But I'm okay with that.
To me it's the same concept; it's just another skill, it's another tool in your toolbox to make you a more productive developer.
LUCAS BRODZINSKI: Yeah, I think for me where there's a challenge there's an opportunity, and I think one of the coolest aspects of this is we're going to see two communities that in the past may not have had the closest collaboration start getting really, really close together.
And really what I'm talking about there is the data science community and the developer community.
DONA SARKAR: Ah, yeah.
LUCAS BRODZINSKI: And when you think about it, you know, historically, the data science community has made these like massive advancements in machine learning, and a lot of these advancements were geared at, hey, how do I get better accuracy out of a model, how do I create a new algorithm to do something that just wasn't possible before? And those are great.
From a developer perspective you may have some other concerns that you have to worry about. So, for instance, you might be worrying about, well, how do I get an answer within, you know, some small, little, tiny threshold of time to make my app useful, how do I do that in a way where, for instance, my install size is not massive?
And I think you're going to start seeing these two communities come together and start sort of cross-pollinating needs, wants, desires, and together being able to train and also operationalize, you're just going to see the space evolve huge.
DONA SARKAR: That is amazing.
So you guys can be super honest, do I need to call Sarah Connor on the phone? Are we going to be ruled by machine overlords?
LUCAS BRODZINSKI: You should always have Sarah Connor on speed dial.
DONA SARKAR: So guys, for a dev like me who has written UWPs and Win32s, how can I get started on machine learning the hell out of my app?
CLINT RUTKAS: So my opinion is go to some of the galleries with models already ready. This is how easy it is to start getting coded once you have an Onyx model, which you can download any model right now, convert it. All you have to do is take that Onyx file, drag it into Visual Studio, into your UWP, I believe also Win32.
LUCAS BRODZINSKI: We have Win32 and UWP APIs.
DONA SARKAR: That's cool.
CLINT RUTKAS: So you drag it in to your solution, it auto-creates the CS file for you. From there you get basically your input, your output and your engine. And basically, you load your model and you call evaluate and you parse your results. It's basically three lines of code, really.
LUCAS BRODZINSKI: Yeah, totally.
CLINT RUTKAS: I made it sound really simple.
LUCAS BRODZINSKI: No, but you know what, it actually is that simple. The great thing is with the (for in-sys?) that we added to Visual Studio, as a developer if you have this Onyx file, you don't have to worry about what's inside of it. We've done our best to expose sort of all the nitty-gritty in a way where you're kind of just plumbing your data types from your apps to data types that the model expects.
My way of getting started actually uses some of our other tech that we have in the cloud today. The easiest thing to remember is there's three steps to starting Windows ML. You have to load a model. So that means you have to have a model. You take some inputs from your application, you bind it to Windows ML. And then you call evaluate.
So how do you get that model? My favorite way of getting a model is using customvision.ai, which is a service that Microsoft offers to allow you to classify a bunch of images with labels and create a model that basically allows you to feed new images and detect whatever labels you added to the images in the training set.
Once you have that model, you bind your application data, whether, you know, it's a picture that you loaded or something from the camera, and you call evaluate.
If I wanted to make an app that, going back to the apple example, detects different types of fruit, I could feed a bunch of images of various types of fruit, each labeled with what fruit is in the image, into customvision.ai, and it will go off and do all the training for me, and just give me a model file that I can then go use in my application.
DONA SARKAR: That is cool. So say your family, you can take pictures of all of them, label who they are, and then build like some sort of family tree thing.
LUCAS BRODZINSKI: Exactly.
DONA SARKAR: That's really, really awesome.
CLINT RUTKAS: In all fairness, it's more than a couple photos.
LUCAS BRODZINSKI: Family reunions will never be the same.
DONA SARKAR: Yeah, all of them.
CLINT RUTKAS: I'm going to need to take a photo of every angle from you. That'd be great, yeah.
DONA SARKAR: Ah, okay, there you go.
Well, you guys, it's Friday night and I know what I'm going to do. I'm going to go home and ML the hell out of my UWP is what I'm going to do.
LUCAS BRODZINSKI: Awesome. Love to hear it.
DONA SARKAR: Because we are cool like that.
LUCAS BRODZINSKI: That is the way to spend a Friday evening.
CLINT RUTKAS: I know.
DONA SARKAR: Clint and Lucas, thank you so much for being here and talking to Windows Insiders about ML.
Many of them are coming to Build. They're going to be insanely excited about this.
CLINT RUTKAS: I cannot wait for Build.
DONA SARKAR: I am very excited for Build.
And I'm going to go and actually try to ML some stuff. And when I get stuck, I know who to call.
Thank you so much for being here.
LUCAS BRODZINSKI: Thanks for having us.
DONA SARKAR: Have a wonderful day.
CLINT RUTKAS: Thank you.
DONA SARKAR: Bye.
JASON HOWARD: As our previous guests have mentioned, machine learning is a pathway to achieving artificial intelligence or machines that can make decisions like humans, only faster and more efficiently.
Machine learning is built into the AI of so many everyday tools. For example, Cortana can chat with you about your favorite sports team, because its chitchat function is continually learning from users how to talk about a variety of topics.
How are developers from around the world tapping into the power of machine learning and AI? Up next, we take a tour under the hood of an AI bot built by a Windows Insider from Kenya.
Irving Amukasa was awarded an Insider's for Good fellowship from Microsoft for his innovative work with an artificial intelligence app.
IRVING AMUKASA: Yes!
JASON HOWARD: SophieBot answers user questions about sexual and reproductive health. Anything you've been curious about but too embarrassed to ask, SophieBot will happily answer.
Welcome to the show, Irving. Thanks for joining us.
IRVING AMUKASA: Thanks for inviting me. I'm really honored.
JASON HOWARD: So I'm going to ask you a tough one, because doing live demos is always a tricky proposition. Is it possible to open SophieBot and ask her a question so we can hear her?
IRVING AMUKASA: I hope the sound is good. Let's see if she can talk well.
SOPHIEBOT: Hi there. I'm Sophie. What would you like to know?
IRVING AMUKASA: What is sexual health?
SOPHIEBOT: Good health is considered to be a state of complete physical, mental, and social wellbeing, and not merely the absence of diseases or infirmity. The principles of sexual health are the same. Physical wellbeing means good health and hygiene for your genitals and related systems. Mental wellbeing means feeling okay about your sexual desires and needs and not guilty or depressed about them. Social wellbeing means not facing social discrimination because of your sexual desires and needs or because of any problem that may result from unsafe sex. The combination of all these factors makes for a sexually healthy you.
IRVING AMUKASA: You have the option to turn off that sound. Before, it is text, no sound.
JASON HOWARD: It sounded like she gave a very thorough answer.
IRVING AMUKASA: Yes.
JASON HOWARD: So let me ask you, what were the existing challenges that prompted you to design SophieBot?
IRVING AMUKASA: Yes, first thing first is this side of the world, it's awkward and hard to talk about sexual health openly. To even ask a question is even close to taboo. And sexual health workers and centers aren't as friendly. That was problem one. Problem two is the lack of verifiable information out there. So those two main problems helped us design SophieBot.
JASON HOWARD: So part of it was the stigma of actually asking those questions, but the other half of it is making sure that the answers you're getting are true and correct and will actually, you know, guide you in the right direction.
IRVING AMUKASA: Yes, that's it.
JASON HOWARD: Here at Microsoft we've found that a significant portion of user interactions with Cortana are actually like a social response or a silly joke type question. Which is super interesting because it shows users the human side of AI as a whole.
In your view, why is being able to interact with a humanlike bot appealing rather than using a digital encyclopedia or just a basic search engine?
IRVING AMUKASA: On SophieBot not everyone asks us about sexual health. Our most popular question we learned was people want to see Sophie's face. So we also get those questions that are socially type. So it's inherent in our nature to ask a question, send out a message, and get feedback and build on top of that. You can't do that with a blog, you can't do that with any other media, that directly instantly sending out a message and getting actual feedback. That element of communication is ingrained in us, and that's why messaging bots are big. And messaging apps are popular because they know that one little secret.
JASON HOWARD: So real quick for our listeners I want to talk a little bit about the difference between AI and machine learning.
IRVING AMUKASA: Yes.
JASON HOWARD: As you know, in this episode we're talking about machine learning. And as some of the other guests have discussed, the terms machine learning and AI, while they're used interchangeably sometimes, they're actually very different things. Machine learning is a particular method of achieving AI, which is of course allowing machines to have access to tons of data using algorithms and learning how to perform tasks rather than, you know, a developer hand-coding everything line by line.
Can you talk some about how SophieBot uses machine learning to become better?
IRVING AMUKASA: So let me go back to AI in general. SophieBot started off with like old technology that you had to provide everything. Now we just call the Artificial Intelligence Markup Language. It falls under something called rule-based AI. But that wasn't enough to provide answers to our users, so we had to move up on the learning curve.
Machine learning comes in two ways on SophieBot. First is us getting insights of the question they're asking. We don't know who you are but we keep track of the questions you ask and the answers we provide for you. So when users ask questions, it's insightful for us to know which topics are more prevalent and which is the most popular question.
So point one is us finding out which is the most popular question. We don't do a tally of each question, because people have asked similar questions but then in different ways. You can't do a tally and manually count. People have asked about STIs or people have asked about HIV and AIDS.
What we do instead is use a machine learning model that looks at the words in every single question, looks at the frequency of those words, and how much they weigh on each single question they've asked, so we can have a popularity graph of the most popular question and the most least popular question.
So that's how we use machine learning specifically on SophieBot. It isn't on answering questions, it's on getting insights on the questions already been asked.
JASON HOWARD: Yeah, so you're highlighting key words from what people say to make sure that, you know, even if somebody does ask it differently, that you know how to respond appropriately. But then because people are very different in how they address topics, they may not use the right words to get the answer they're actually looking for. So it sounds like you're going to use some of the machine learning to figure out what they're trying to ask, even if they're not asking the question the right way.
IRVING AMUKASA: Yes. Also including typos. If somebody doesn't know how to spell chlamydia or gonorrhea, machine learning points them in the right direction.
JASON HOWARD: So not only are you giving them the right answer, but you're helping take some of the human error out of it as well?
IRVING AMUKASA: Yes.
JASON HOWARD: That's brilliant.
See, that's one of the fun things about this whole concept of machine learning and AI in general. It's like even if we don't get it quite right, and we as humans are the ones that set up the constructs that we're working in, we can still use this cloud-based learning and machine learning and the whole concept of AI to correct ourselves to make sure we're going in the right direction still.
IRVING AMUKASA: Yes.
JASON HOWARD: So as machine learning becomes more and more sophisticated in the future, what's your vision for the next evolution of SophieBot?
IRVING AMUKASA: Interesting. So the next evolution of SophieBot is an end-to-end system that can take any dataset of questions and answers and be able to automate them. That's the next evolution of SophieBot. So rather than us elaborately designing full process flows or designing questions and answers, we go to someone who already has a huge dataset of questions and answers.
JASON HOWARD: So are you trying to take her further than answering questions about sexual health? Are you trying to expand her beyond that? Or are you trying to make her more adept and capable in the space that she's functioning in currently?
IRVING AMUKASA: We're doing both. In essence like that's our business model. We don't make money from you coming to us to ask questions. That's we fund it to do that by the native nation population.
But we are a business, we are going to make SophieBot sustainable. And the goal for that is to build that model and be able to monetize that end-to-end model in other domains rather than just sexual health.
JASON HOWARD: That's awesome.
Well, Irving, I've got to say, thank you so much for taking the time to be here with us today.
IRVING AMUKASA: No, thanks a lot, and thanks for having me and have a nice day.
JASON HOWARD: Cheers, man.
IRVING AMUKASA: Bless you.
JASON HOWARD: That's a wrap for Episode 14.
Get the Windows Insider Podcast automatically every month by subscribing on your favorite podcast app. You can also find all of our past episodes on the Windows Insider website.
Thanks for listening and until next time, Insiders.
NARRATION: The Windows Insider Podcast is produced by Microsoft Production Studios and the Windows Insider team, which includes Tyler Ahn -- that's me -- Michelle Paison, Ande Harwood, and Kristie Wang.
Visit us on the Web at insider.windows.com. Follow @windowsinsider on Instagram and Twitter.
Support for the Windows Insider Podcast comes from Microsoft, empowering every person and every organization on the planet to achieve more.
Please subscribe, rate, and review this podcast wherever you get your podcasts.
Moral support and inspiration come from Ninja Cat, reminding us to have fun and pursue our passions.
Thanks, as always, to our program's co-founders, Dona Sarkar and Jeremiah Marble.
Join us next month for another fascinating discussion from the perspectives of Windows Insiders.