{"id":590071,"date":"2019-05-29T08:00:31","date_gmt":"2019-05-29T15:00:31","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?p=590071"},"modified":"2020-04-23T14:50:12","modified_gmt":"2020-04-23T21:50:12","slug":"machine-teaching-with-dr-patrice-simard","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/podcast\/machine-teaching-with-dr-patrice-simard\/","title":{"rendered":"Machine teaching with Dr. Patrice Simard"},"content":{"rendered":"
<\/p>\n
Machine learning is a powerful tool that enables computers to learn by observing the world, recognizing patterns and self-training via experience. Much like humans. But while machines perform well when they can extract knowledge from large amounts of labeled data, their learning outcomes remain vastly inferior to humans when data is limited. That\u2019s why Dr. Patrice Simard<\/a>, Distinguished Engineer and head of the Machine Teaching group<\/a> at Microsoft, is using actual teachers to help machines learn, and enable them to extract knowledge from humans rather than just data.<\/p>\n Today, Dr. Simard tells us why he believes any task you can teach to a human, you should be able to teach to a machine; explains how machines can exploit the human ability to decompose and explain concepts to train ML models more efficiently and less expensively; and gives us an innovative vision of how, when a human teacher and a machine learning model work together in a real-time interactive process, domain experts can leverage the power of machine learning without machine learning expertise.<\/p>\n Patrice Simard: A lot of people have thought that the key to AI is the learning algorithm. And I actually don\u2019t believe it\u2019s the learning algorithm. I think teaching is what makes the difference. So, from a philosophical standpoint, I believe that machine learning algorithm is almost the easy part, is the part that you can locally optimize. Teaching is the part that you have to optimize at a global level, at a societal level. And I think that may actually be the key to AI the same way it was the key to human development.<\/p>\n Host: You\u2019re listening to the Microsoft Research Podcast, a show that brings you closer to the cutting-edge of technology research and the scientists behind it. I\u2019m your host, Gretchen Huizinga.<\/strong><\/p>\n Host: Machine learning is a powerful tool that enables computers to learn by observing the world, recognizing patterns and self-training via experience. Much like humans. But while machines perform well when they can extract knowledge from large amounts of labeled data, their learning outcomes remain vastly inferior to humans when data is limited. That\u2019s why Dr. Patrice Simard, Distinguished Engineer and head of the Machine Teaching group at Microsoft, is using actual teachers to help machines learn, and enable them to extract knowledge from humans rather than just data.<\/strong><\/p>\n Today, Dr. Simard tells us why he believes any task you can teach to a human, you should be able to teach to a machine; explains how machines can exploit the human ability to decompose and explain concepts to train ML models more efficiently and less expensively; and gives us an innovative vision of how, when a human teacher and a machine learning model work together in a real-time interactive process, domain experts can leverage the power of machine learning without machine learning expertise. That and much more on this episode of the Microsoft Research Podcast.<\/strong><\/p>\n Host: Patrice Simard, welcome to the podcast.<\/strong><\/p>\n Patrice Simard: Thank you. This is a pleasure to be here.<\/p>\n Host: I have to start a little differently than I normally do because you and I are talking at a literal point for you. Until recently I would have introduced you as distinguished engineer, research manager and Deputy Managing director of Microsoft Research, but you are just moving, along with a stellar team, from Microsoft Research to Microsoft Office, right?<\/p>\n Patrice Simard: Yes, this is correct.<\/p>\n Host: Well, we\u2019re going to talk about that in a minute, but first I always like to get a general sense of what my guests do for a living and why. Sort of in broad strokes, what are the problems you\u2019re trying to solve, in general, and what gets you up in the morning, makes you want to come to work?<\/strong><\/p>\n Patrice Simard: I want to do innovation. I think this is where I have my background and talent. So, I am completely irreverent to the established wisdom and I like to go and try to solve problems. And since I want to change things, I want to have an impact in terms of change, then I pick the problem and try to reformulate it and solve it in a different way, or change the question. I think this is usually the best way to have an impact.<\/p>\n Host: So that irreverence, is that something you\u2019ve had since you were young? Is it part of your sort of DNA?<\/strong><\/p>\n Patrice Simard: Uh, yes. The issue there was that I was never really that good in classrooms, and I always somehow misunderstood the question, answered a different question. And since I didn\u2019t do my homework very well, I never knew what the standard answer was and so, I kept changing the problem. And that was not very successful in class, but when I moved to research, then changing the question was actually a part of the job. And so, I got far more successful after I got past the scholar program.<\/p>\n Host: That\u2019s actually hilarious because the school system rewards people who get answers right, but over in research, you want to turn things on their head, a little bit.<\/strong><\/p>\n Patrice Simard: Yes, that\u2019s right. I mean, changing the question is far more useful in research than coming up with a different answer or slightly better answer to an existing question.<\/p>\n Host: You know, that\u2019s just a perfect set-up for this podcast because the entire topic is turning a particular discipline or field on its head a little bit. So, let\u2019s set the stage for our conversation today by operationalizing the term \u201cmachine teaching.\u201d Some people have said it\u2019s just another way of saying machine learning, but you characterize it as, basically, the next new field for both programming and machine learning. So, tell us, how is machine teaching a new paradigm and what\u2019s so different about it that it qualifies as a new field?<\/strong><\/p>\n Patrice Simard: Okay, so, I\u2019m going to characterize machine learning as extracting knowledge from data. Machine teaching is different, and the problem it tries to solve is, what if you start and you have no data? And then the task is about extracting knowledge from the teacher. And this is very similar to programming. Programming is about extracting knowledge from the programmer, so this is where the two fields are very close. And it\u2019s a very different paradigm because now, it\u2019s all about expressivity, recognizing what the teacher meant, and because you focus on the teacher, this is why HCI is so important. HCI is human computer interaction, and so programming and teaching are absolutely the epitome of a human communicating with computers.<\/p>\n Host: Listen, I want to ask \u2013 because I\u2019m still a little fuzzy \u2013 when you say you have no data, but you have a teacher, is this teacher a human? Is this teacher a person?<\/strong><\/p>\n Patrice Simard: Yes. Yes, yes, yes.<\/p>\n Host: So, explain to me what that looks like with no data. Is the teacher giving the data to the machine?<\/strong><\/p>\n Patrice Simard: Yeah. Yes. So, let me give you a sample example.<\/p>\n Host: Good.<\/strong><\/p>\n Patrice Simard: Imagine I want to teach you how to buy a car. So, I want to give you my personal feeling for how you buy a good car. So, I could bring you to the parking lot and point to good cars and bad cars, and at some point, I may ask you, what is a good car? And you may say, oh, it\u2019s all the cars for which the second digit of the license plate is even. And that may fit the data perfectly. And obviously, this is not what I expected. But this is not the way we do it human-to-human. So the way we do it human-to-human is, I will tell you that you should look at the price, you should look at the crash test, you should look at the gas mileage, maybe you should buy electric. And these are features. They are what questions to ask to basically have the right answer about what a good car and a bad car are. And that\u2019s very different. It\u2019s a little bit like Socrates\u2019 teaching by asking the right question…<\/p>\n Host: Right<\/strong><\/p>\n Patrice Simard: …as opposed to enumerating positive and negative for the task. So, when humans teach other humans, they teach in a very different way than they teach a machine. Now, if you have millions and millions of labels, then the task is about extracting the knowledge from that data. But if you start with no data, then you find out that labels are not efficient at all. And this is not the way humans teach other humans, so there must be another language. And the other language is what I call machine teaching. This is like a programming language. And, just to give you an idea of how natural it is, what I see happen, over and over in industry, is that when people want to build a new machine-learning model, they start by collecting a whole bunch of data. They write labeling directives, and then they outsource it, and then they get back their 50,000 labels, and then they have a machine-learning algorithm try to extract that knowledge from those labels. But this is ironic because the labeling directives contain all the information to do the labeling. So, imagine now that the labeling directives could be inputted directly into the system. Now, when you look at the labeling directives, they\u2019re all features. They\u2019re all saying, oh, this is a cooking recipe because it has a list of ingredients. So, if we can make that the teaching language, then we can skip the middleman and get the machine to do the right thing.<\/p>\n Host: That\u2019s exactly that word I was going to use, is the middleman of the labelers, right?<\/strong><\/p>\n Patrice Simard: Yes.<\/p>\n Host: Drilling in a little, teachers are typically more expensive, in terms of hours and so on… So, what\u2019s the business model here? Except for the fact…<\/strong><\/p>\n Patrice Simard: Yes.<\/p>\n Host: …that you\u2019re missing the middleman, which usually marks up the price, how is it more efficient or less expensive?<\/strong><\/p>\n Patrice Simard: Okay, so this is exactly what happened with programming. At first, the programmers were scientists that would program in assembly code\u2026<\/p>\n Host: Yeah.<\/strong><\/p>\n Patrice Simard: \u2026and the name of the game, in those days, was performance, and the biggest machine you could get and the fastest machine you could get. And, over the years, the field has evolved to allow more and more people to program. And the cost became, really, the programmer. And so, we wanted to scale with a number of programmers. This was the mythical \u201cman-month\u201d and, you know, how to reduce the cost of programmers, how to scale a single task to multiple programmers, and if you look at the literature for programming, it moved from a literature of performance to a literature of productivity. And I believe that machine learning is still a literature of performance.<\/p>\n Host: Hmm.<\/strong><\/p>\n Patrice Simard: Generalization is everything. And if you have a lot of data, this is the right thing. Basically, what makes the difference is the machine learning algorithm and how many GPUs you\u2019re going to put on it, and this is what deep learning is. And I\u2019ve worked in that field for many years, and I absolutely love that game. But I believe that we changing, we are at a turning point, where productivity and the teacher\u2019s time becomes more and more important.<\/p>\n Host: Interesting.<\/strong><\/p>\n Patrice Simard: And for custom problems, you don\u2019t have a choice. You cannot extract the knowledge from the data because you don\u2019t have the data. It\u2019s too custom.<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: Or maybe it changes too fast. In that case, the more efficient way to communicate the knowledge is through features, through schemas, through other constraints, and I\u2019m not sure we yet know what language it will be. It will still evolve.<\/p>\n (music plays)<\/p>\n Host: As a former teacher myself, albeit teaching teens not machines, I\u2019m intrigued by your framework of what we in education call decomposition, or deconstructing down into smaller concepts, to help people understand. And then scaffolding, or using building blocks, to support underlying knowledge to build up for future learning. Talk about how those concepts would transfer from human teaching to machine teaching.<\/strong><\/p>\n Patrice Simard: So, in philosophy, there\u2019s a movement called behaviorist that says that with a stimuli-response, you can teach everything. And of course, you can\u2019t. You won\u2019t be able to learn very complex things if you just do stimuli-responses.<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: Well, in machine learning, I find that, very often, uh, machine learning experts are what I would call machine learning behaviorists. And basically, they believe that with a very large set of input label pairs, they can teach anything. And it turns out…<\/p>\n Host: To a machine.<\/strong><\/p>\n Patrice Simard: To a machine, right. And, if you have a tremendous amount of labels, and you have a tremendous amount of computation, you can go very far. But there are tasks that you will never be able to do. If I were to give you a scenario and ask you to write a book, you could fill buildings of scenario garbage and scenario book, yet you will not be able to learn that task. The space of functions that are bad is too big compared to the space of functions that actually fulfill the desired goal.<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: And because of that, there\u2019s absolutely no way you can select the right function from the original space in the time that\u2019s less than the length of the universe or something. So\u2026 but strangely enough, everyone in this building can perform that task. So, we must have learned it somehow.<\/p>\n Host: Interesting, yeah.<\/strong><\/p>\n Patrice Simard: Right? And the way we\u2019ve learned it is, we learn about characters, we learn about words, we learn about sentences, we learn about paragraphs, we learn about chapters. But we also learn about tenses. We learn about metaphors. We learn about character development. We learn about…<\/p>\n Host: Sarcasm.<\/strong><\/p>\n Patrice Simard: Sarcasm, right. So, with all these things that we\u2019ve learned in terms of skills, we were able to go to the next stage and learn new skills on top of the previous skills, and in machine learning, there\u2019s this thing that we call the hypothesis space, which is the space of functions from which we\u2019re looking to find the right function. If the hypothesis space is too big, then it\u2019s too hard to filter it down to get the right function. But if the space of functions is small enough, then, with a few labeled examples, you can actually find the right function. And the decomposition allows you to break the problem into these smaller subspaces, and once you\u2019ve learned that subtask, then you can compose it and keep going, build on top…<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: …of previous skills, and now you can do very complex tasks even though each of the subtasks was simple.<\/p>\n Host: So, it is really more similar to how humans teach humans than the traditional model of how we teach machines to learn?<\/strong><\/p>\n Patrice Simard: Yes, and decomposition is also the hallmark of programming.<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: So, the art of programming is decomposition and if you don\u2019t get it right, you refactor, and we\u2019ve developed all these design patterns to do programming right.<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: And I believe that there will be a complete one-to-one correspondence. There will be the design patterns, the teaching language will correspond to the programming language. I will even say that what corresponds to the assembly language is the machine learning models, and…<\/p>\n Host: Interesting.<\/strong><\/p>\n Patrice Simard: …they should be interchangeable, and if they are interchangeable, then the teachers are interchangeable, which is exactly what you want in terms of productivity, because you know how it works. The person that starts the project may not be the person that ends the project…<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: …or maintains the projects.<\/p>\n Host: There\u2019s been a lot of talk within the computer science community about Software 2.0. And the democratization of skills that usually require a significant amount of expertise. But you\u2019ve suggested that those terms don\u2019t do full justice to the kinds of things you\u2019re trying to describe or define. So, tell us why.<\/strong><\/p>\n Patrice Simard: So, if you say Software 2.0, it\u2019s an evolution thing, right?<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: And I believe that we need something far more radical in the way we view the problem. So, to me software is something that\u2019s intentional. Very often people in Software 2.0, they think about dealing with a large amount of labeled data. And labeled data can be collected in a non-intentional way. So, for instance, for click prediction, the labeled data is whether you got a click, or you didn\u2019t get a click, and you collect that automatically. So, it\u2019s not really intentional. When you write a program, it\u2019s very intentional. You decompose it, you write each of the functions with purpose, right? And I think, when you teach, and you decompose the problem into subparts, the labels are intentional, and they are costly because they come from a human. And now we need to manage that. So, if I decompose the problem, I want to be able to share the part that I\u2019ve decomposed. And now if I\u2019m going to share it, I need to version it. And this is a discipline that is very well-known in programming.<\/p>\n Host: Mm-hmm.<\/strong><\/p>\n Patrice Simard: So, how do we manage, as efficiently as possible, knowledge that was created intentionally? And now it will need to be maintained. It will need to be versioned. It will need to be shared. It will need to be specified. And now all the problems of sharing software will translate to sharing and maintaining models that are taught by humans. So, the parallel is very, very…<\/p>\n Host: Right.<\/strong><\/p>\n Patrice Simard: \u2026direct.<\/p>\n Host: What about this word \u201cdemocratization\u201d? You and I talked before and I actually inserted the word into our conversation, and you go, uh, I don\u2019t really like that word.<\/strong><\/p>\n Patrice Simard: Yes, so I started using that word at the beginning, and I felt like the problem with the word is that everyone wants to democratize. And I want machine teaching to be more ambitious. So, let\u2019s think about the guarantee you have when you program. If I ask you to code a function and you\u2019re a programmer, you\u2019ll tell me yes, I can do it, and then I\u2019ll say well, how long is it going to take? And you\u2019re going to say, let\u2019s say, three months. And your estimate may be off \u2013 people say that we\u2019re usually off by a factor of three \u2013 but you were able to know that it was possible and you can actually even specify the performance of your program and you can say how long it\u2019s going to take. Right now, we don\u2019t have that kind of guarantee when we talk about machine learning. And the strange thing is that we have all these tools of structural risk minimization that gives us guarantees on the accuracy given some distribution. But we don\u2019t really have guarantees on what the final performance is going to be before we have the data. And yet, in programming, we can have those guarantees. So, what\u2019s different, right? So, we have to think about the problem of teaching differently. And if you start thinking about the problem of teaching in terms of decomposition, then you\u2019ll be able to reason in exactly the same way that you reason for programming. We actually do this when we teach humans, right?<\/p>\nRelated:<\/h3>\n
\n
\nTranscript<\/h3>\n