{"id":690276,"date":"2020-09-21T12:33:26","date_gmt":"2020-09-21T19:33:26","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/?p=690276"},"modified":"2020-10-06T16:26:57","modified_gmt":"2020-10-06T23:26:57","slug":"dialogue-as-dataflow-a-new-approach-to-conversational-ai","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/blog\/dialogue-as-dataflow-a-new-approach-to-conversational-ai\/","title":{"rendered":"Dialogue as Dataflow: A new approach to conversational AI"},"content":{"rendered":"\n<p><em>By the Semantic Machines research team<\/em><\/p>\n\n\n\n<p>\u201cEasier said than done.\u201d These four words reflect the promise of conversational AI. It takes just seconds to ask <em>When are Megan and I both free?<\/em> but much longer to find out manually from a calendar. Indeed, almost everything we do with technology can feel like a long path to a short goal. At <a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/project\/semantic-machines\/\">Microsoft Semantic Machines<\/a>, we&#8217;re working to bridge this gap\u2014to build conversational AI experiences where you can focus on saying what you want and the system will worry about how to get it done. You should be able to speak as you speak to a friend: naturally, contextually, and collaboratively.<\/p>\n\n\n\n<p>A truly powerful conversational AI needs to do more than deeply understand <em>language<\/em>. To be contextual, flexible, and robust, the AI must also deeply understand <em>actions<\/em>\u2014most goals involve multiple steps and multiple sources of information. Representing goals, actions, and dialogue states is one of the central challenges in conversational AI systems. Our new paper in <em>Transactions of the Association for Computational Linguistics (TACL)<\/em>, titled \u201c<a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/publication\/task-oriented-dialogue-as-dataflow-synthesis\/\">Task-Oriented Dialogue as Dataflow Synthesis,<\/a>\u201d describes a new representation and modeling framework that interprets dialogues as dataflow graphs, enabling conversations about complex tasks that span multiple domains. We\u2019re also releasing a <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/microsoft.github.io\/task_oriented_dialogue_as_dataflow_synthesis\/\">dataset of over 40,000 dialogues annotated with dataflow graphs and a public leaderboard<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, to help the AI community work on challenging and realistic problems in multi-turn, task-oriented dialogue.<\/p>\n\n\n\n<div class=\"annotations \" data-bi-aN=\"margin-callout\">\n\t<article class=\"annotations__list card depth-16 bg-body p-4 annotations__list--left\">\n\t\t<div class=\"annotations__list-item\">\n\t\t\t\t\t\t<span class=\"annotations__type d-block text-uppercase font-weight-semibold text-neutral-300 small\">PUBLICATION<\/span>\n\t\t\t<a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/publication\/task-oriented-dialogue-as-dataflow-synthesis\/\" data-bi-cN=\"Task-Oriented Dialogue as Dataflow Synthesis\" data-external-link=\"false\" data-bi-aN=\"margin-callout\" data-bi-type=\"annotated-link\" class=\"annotations__link font-weight-semibold text-decoration-none\"><span>Task-Oriented Dialogue as Dataflow Synthesis<\/span>&nbsp;<span class=\"glyph-in-link glyph-append glyph-append-chevron-right\" aria-hidden=\"true\"><\/span><\/a>\t\t\t\t\t<\/div>\n\t<\/article>\n<\/div>\n\n\n\n<p>Our new dataset illustrates the incredible diversity of user requests:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Diverse goals. <\/strong>A user might want to <em>Book a meeting with Megan<\/em>. They might also want to <em>Book a meeting with Megan on Tuesday<\/em>, or even <em>Book a meeting with Megan the first morning she\u2019s free after Labor Day.<\/em><\/li><li><strong>Diverse language.<\/strong> A request for information might show up as <em>What\u2019s tomorrow\u2019s weather?<\/em> This same request might also appear as <em>What\u2019ll it be like out tomorrow<\/em>, or as <em>Do I need a jacket for the hike?<\/em><\/li><li><strong>Diverse contexts.<\/strong> The sentence <em>How about three? <\/em>means something totally different depending on what the agent just said. Following <em>Megan is busy at 2:00, do you have other suggestions?<\/em>, it&#8217;s a proposal to move a meeting. Following <em>The forecast for noon is cloudy<\/em>, it\u2019s a query about the weather. Following <em>Rivoli has a table for two available<\/em>, it\u2019s a request to increase the size of a dinner reservation.<\/li><\/ul>\n\n\n\n<p>Traditional &#8220;slotfilling&#8221; dialogue systems ignore much of this diversity. They support only a stock set of goals, and they have no representation of context beyond a list of arguments missing from the current goal. At the other extreme, recent &#8220;end-to-end&#8221; neural dialogue systems are free in principle to learn arbitrary context-dependent responses, but it\u2019s not enough to be flexible in the words used because dialogue also requires flexibility in the actions performed. Deployed systems also have requirements of controllability and truthfulness that are challenging in unstructured systems.<\/p>\n\n\n\n\t<div class=\"border-bottom border-top border-gray-300 mt-5 mb-5 msr-promo text-center text-md-left alignwide\" data-bi-aN=\"promo\" data-bi-id=\"999693\">\n\t\t\n\n\t\t<p class=\"msr-promo__label text-gray-800 text-center text-uppercase\">\n\t\t<span class=\"px-4 bg-white display-inline-block font-weight-semibold small\">Spotlight: Event Series<\/span>\n\t<\/p>\n\t\n\t<div class=\"row pt-3 pb-4 align-items-center\">\n\t\t\t\t\t\t<div class=\"msr-promo__media col-12 col-md-5\">\n\t\t\t\t<a class=\"bg-gray-300 display-block\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/event\/microsoft-research-forum\/past-episodes\/?OCID=msr_researchforum_MCR_Blog_Promo\" aria-label=\"Microsoft Research Forum\" data-bi-cN=\"Microsoft Research Forum\" target=\"_blank\">\n\t\t\t\t\t<img decoding=\"async\" class=\"w-100 display-block\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2025\/05\/Research-Forum-hero_1400x788.jpg\" alt=\"Research Forum | abstract background with colorful hexagons\" \/>\n\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"msr-promo__content p-3 px-5 col-12 col-md\">\n\n\t\t\t\t\t\t\t\t\t<h2 class=\"h4\">Microsoft Research Forum<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t<p id=\"microsoft-research-forum\" class=\"large\">Join us for a continuous exchange of ideas about research in the era of general AI. Watch the latest episodes on demand.<\/p>\n\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"wp-block-buttons justify-content-center justify-content-md-start\">\n\t\t\t\t\t<div class=\"wp-block-button\">\n\t\t\t\t\t\t<a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/event\/microsoft-research-forum\/past-episodes\/?OCID=msr_researchforum_MCR_Blog_Promo\" aria-describedby=\"microsoft-research-forum\" class=\"btn btn-brand glyph-append glyph-append-chevron-right\" data-bi-cN=\"Microsoft Research Forum\" target=\"_blank\">\n\t\t\t\t\t\t\tWatch on-demand\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div><!--\/.msr-promo__content-->\n\t<\/div><!--\/.msr-promo__inner-wrap-->\n\t<\/div><!--\/.msr-promo-->\n\t\n\n\n<p>Our third way uses deep learning to produce and consume powerful &#8220;dataflow&#8221; representations that go beyond slot-filling, providing both flexible actions and controllable semantics. Dataflow aims to support the natural, flexible, open-ended dialogues humans have in everyday conversation. Our approach is based on five key ideas:<\/p>\n\n\n\n<h3 id=\"1-user-requests-are-programs\">1. User requests are programs.<\/h3>\n\n\n\n<p>Established approaches to dialogue are great at interpreting requests for fixed, pre-defined tasks like <em>turn on the lights<\/em> or <em>set a timer called pasta for 5 minutes<\/em>. In these approaches, a dialogue system designer defines a fixed set of intents, each with a fixed set of arguments. The system labels each user request with the intent it expresses and the arguments to that intent:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_UpdatedResFigure1-1024x317.jpg\" alt=\"\" class=\"wp-image-693525\" width=\"591\" height=\"183\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_UpdatedResFigure1-1024x317.jpg 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_UpdatedResFigure1-300x93.jpg 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_UpdatedResFigure1-768x238.jpg 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_UpdatedResFigure1.jpg 1224w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/figure><\/div>\n\n\n\n<p>But what about more complicated requests, like <em>What\u2019s the temperature going to be like when I get coffee with Megan?<\/em> Answering this question requires a dialogue agent to do a series of different things: figure out who Megan is, look up the event with Megan in a calendar application, figure out its start time, and use the time to query a weather service. Rather than requiring system builders to create a specialized <code>weather_during_event_with_person<\/code> intent, we translate the natural-language request into a program that ties all of these calls together. We represent this program as a <strong>dataflow graph<\/strong> that explicitly defines data dependencies (<strong>edges<\/strong>) between the steps (<strong>nodes<\/strong>) in the dialogue agent\u2019s plan:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SMBlog_updatedfig2.jpg\" alt=\"\" class=\"wp-image-693528\" width=\"356\" height=\"517\"\/><\/figure><\/div>\n\n\n\n<p>Once this program has been predicted by a neural net, the dialogue agent executes it, replies to the user based on the result, and stores the result in the dataflow graph.<\/p>\n\n\n\n<h3 id=\"2-task-oriented-dialogue-is-interactive-programming\">2. Task-oriented dialogue is interactive programming.<\/h3>\n\n\n\n<p>One of the nice things about using dataflow as a representation of user intents is that it very naturally generalizes to interactions that unfold over multiple rounds of back-and-forth communication. If the user starts by asking <em>When is my next meeting with Megan?<\/em>, then the dialogue agent initially predicts a small graph fragment:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog_UpdatedFig3.jpg\" alt=\"\" class=\"wp-image-693531\" width=\"300\" height=\"342\"\/><\/figure><\/div>\n\n\n\n<p>If the user follows up on the next turn with <em>What\u2019s the weather going to be like then?<\/em>, most of the work needed to answer the new question has already been done. The dialogue agent refers back to the program fragment from the previous turn, feeds its output into a new API call, and then describes that result:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Fig-4.jpg\" alt=\"\" class=\"wp-image-693534\" width=\"385\" height=\"460\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Fig-4.jpg 722w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Fig-4-251x300.jpg 251w\" sizes=\"auto, (max-width: 385px) 100vw, 385px\" \/><\/figure><\/div>\n\n\n\n<p>The result of this process is exactly the same program we generated for the single complex question earlier! This kind of reuse is a central feature of our framework\u2014complex actions are built by <strong>composing <\/strong>simpler ones rather than defining a large set of top-level behaviors. This composition can happen all at once or gradually over multiple turns that successively extend the dataflow graph.<\/p>\n\n\n\n<h3 id=\"3-meanings-depend-on-context\">3. Meanings depend on context.<\/h3>\n\n\n\n<p>The extended graph serves as the dialogue state. It records all the computations the agent has performed so far to understand, serve, and reply to the user. Subsequent utterances are interpreted in this context (via deep learning), and they can refer back to these earlier computations and their results. As we show in our <a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/publication\/task-oriented-dialogue-as-dataflow-synthesis\/\">paper<\/a>, explicit mechanisms for referencing and reusing earlier computations improve the data efficiency and accuracy of machine learning for dialogue agents. They also make it easier for engineers to reason about and control the behavior of dialogue agents.<\/p>\n\n\n\n<p>In the previous example, the user referred back to an earlier node in the dataflow graph using the word then. Other referring expressions, like <em>that, her, <\/em>or<em> the second meeting you mentioned<\/em> can also indicate a request to re-use values or entities mentioned earlier in the dialogue.<\/p>\n\n\n\n<p>Such <strong>references <\/strong>can also happen implicitly. Imagine asking your device <em>What\u2019s the weather going to be like?<\/em> Normally you mean the weather in the near future. But if you asked the same question after a future event has been mentioned, you\u2019d likely be inquiring about the weather during that event and at the event\u2019s location. Ultimately, these two cases require two different computations. Below, the computation on the left would be used for the near-future interpretation presented above. The computation on the right would be used for the latter event-specific interpretation:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Sm-Blog-Updated-Fig-5-1024x258.jpg\" alt=\"\" class=\"wp-image-693537\" width=\"607\" height=\"151\"\/><\/figure><\/div>\n\n\n\n<p>Figuring out how to distinguish these uses (not to mention other interpretations of the question) is a challenging machine learning problem. But intuitively, <em>What\u2019s the weather going to be like?<\/em> means the same thing in both cases\u2014the user wants to know the weather at the time and place that are most relevant to the conversational context.<\/p>\n\n\n\n<p>In our approach, this kind of reasoning is made explicit: when interpreting user input in context, our dialogue agent explicitly predicts programs that refer to pieces of existing computation, including pieces like <em>here <\/em>and <em>now <\/em>that are implicitly available from the beginning of the conversation. For the two examples above, this looks like:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Figure-6-1024x441.jpg\" alt=\"\" class=\"wp-image-693540\" width=\"621\" height=\"272\"\/><\/figure><\/div>\n\n\n\n<p>In other words, the dialogue agent interprets <em>What\u2019s the weather going to be like?<\/em> the same way in both dialogues. It predicts the same dataflow graph fragment, with calls to <code>refer(Time)<\/code> and <code>refer(Place)<\/code>, but the interpretation of this fragment changes based on the preceding context.<\/p>\n\n\n\n<p>A question that interacts even more strongly with context is <em>What about during the company retreat?<\/em> Here, the user isn\u2019t just referring to an existing entity but is instead asking the dialogue agent to compute a new answer to an earlier question, with some of the details changed. We call this kind of transformation a <strong>revision<\/strong>. Like references, revisions provide a powerful mechanism for performing complex graph transformations in response to simple requests. Here\u2019s a schematic representation of the revision that the agent predicts when a user asks <em>What\u2019s the weather going to be like during my coffee with Megan?<\/em> and then <em>What about during the company retreat?<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Figure-7.jpg\" alt=\"\" class=\"wp-image-693543\" width=\"458\" height=\"420\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Figure-7.jpg 936w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Figure-7-300x275.jpg 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/SM-Blog-Updated-Figure-7-768x704.jpg 768w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure><\/div>\n\n\n\n<p>Here, the constraints on the first event search (for an event called <em>coffee <\/em>that includes <em>Megan<\/em>) are replaced with a new constraint (specifying an event called <em>company retreat<\/em>). See the <a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/publication\/task-oriented-dialogue-as-dataflow-synthesis\/\">paper <\/a>for more details.<\/p>\n\n\n\n<h3 id=\"4-things-will-go-wrong\">4. Things will go wrong.<\/h3>\n\n\n\n<p>In any complicated dialogue, there are many ways for unexpected events to occur. A request to book a meeting with Megan might fail because no one in the user\u2019s contact list is named Megan; because multiple people are named Megan; because there&#8217;s no free time for a meeting; or even because the internet is out and the dialogue agent can\u2019t contact the server. Each of these circumstances requires a different response, and existing dialogue systems often use complicated, hard-coded logic to recover from errors.<\/p>\n\n\n\n<p>We handle all these failures by throwing an exception from some node of the dataflow graph. Our dialogue agent reacts to this unfortunate \u201cresult\u201d by generating an appropriate warning or question for the user. The user can respond freely, perhaps by correcting the problem; for example, <em>I meant Megan Bowen<\/em> would be interpreted in this context as a revision that refines the original request. This approach lets the system and the user deal with errors as they show up\u2014flexibly, contextually, modularly, and collaboratively.<\/p>\n\n\n\n<h3 id=\"5-language-generation-depends-on-dialogue-context\">5. Language generation depends on dialogue context.<\/h3>\n\n\n\n<p>To be an effective teammate, a conversational AI system needs to be able to generate language, not just interpret it. Most existing approaches to dialogue either hard-code generation rules (leading to robotic-sounding outputs that don\u2019t change in response to different contexts) or unstructured neural language models (which sometimes fail to tell the truth!). In our approach, language generation is modeled as a neurally guided process of compositional program transformation, in which the agent takes its turn to extend the dataflow graph. The agent can talk about anything that\u2019s shown up in the graph, not just the last result it computed. It can even add new computations and results to the graph, which the user is free to refer to in subsequent turns:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Figure_SM_Blog-1024x586.jpg\" alt=\"\" class=\"wp-image-693444\" width=\"603\" height=\"345\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Figure_SM_Blog-1024x586.jpg 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Figure_SM_Blog-300x172.jpg 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Figure_SM_Blog-768x439.jpg 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/Figure_SM_Blog.jpg 1311w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"resources-for-researchers-code-data-and-a-new-competition\">Resources for researchers: code, data, and a new competition<\/h3>\n\n\n\n<p class=\"has-text-align-left\">We believe that this approach is the first step toward a new generation of automated dialogue agents that can interact with people the way people interact with each other. However, solving the problem will require the whole community. To facilitate open research on dataflow-based dialogue agents, we\u2019re releasing the largest and most complex task-oriented dialogue dataset to date: a new dataset called <a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/project\/smcalflow-dataset-0\/\">SMCalFlow<\/a>, featuring 41,517 conversations annotated with dataflow programs. This dataset resulted from open-ended conversations among humans about calendars, weather, people, and places. In contrast to existing dialogue datasets, our dialogue collection was not based on pre-specified scripts, and participants were not restricted in terms of what they could ask for and how they should accomplish their tasks. As a result, SMCalFlow is qualitatively different from existing dialogue datasets, featuring explicit discussion about agent capabilities, multi-turn error recovery, and complex goals.<\/p>\n\n\n\n<p>The dataset, code, and leaderboard are available at our <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/microsoft.github.io\/task_oriented_dialogue_as_dataflow_synthesis\/\">GitHub page<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. We look forward to seeing what the natural language processing community does with this new resource.<\/p>\n\n\n\n<p>At Semantic Machines,&nbsp;we\u2019re continuing to push the boundaries of&nbsp;conversational AI. Come <a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/project\/semantic-machines\/\">work with us<\/a>!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By the Semantic Machines research team \u201cEasier said than done.\u201d These four words reflect the promise of conversational AI. It takes just seconds to ask When are Megan and I both free? but much longer to find out manually from a calendar. Indeed, almost everything we do with technology can feel like a long path [&hellip;]<\/p>\n","protected":false},"author":38838,"featured_media":693474,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":[],"msr_hide_image_in_river":0,"footnotes":""},"categories":[1],"tags":[],"research-area":[13556],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-690276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-research-blog","msr-research-area-artificial-intelligence","msr-locale-en_us"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[],"related-projects":[],"related-events":[],"related-researchers":[],"msr_type":"Post","featured_image_thumbnail":"<img width=\"960\" height=\"540\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-960x540.png\" class=\"img-object-cover\" alt=\"a screenshot of a cell phone\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-960x540.png 960w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-300x169.png 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-1024x577.png 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-768x433.png 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-1066x600.png 1066w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-655x368.png 655w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-343x193.png 343w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-640x360.png 640w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog-1280x720.png 1280w, https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-content\/uploads\/2020\/09\/FeaturedImageSite_SMBlog.png 1479w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/>","byline":"","formattedDate":"September 21, 2020","formattedExcerpt":"By the Semantic Machines research team \u201cEasier said than done.\u201d These four words reflect the promise of conversational AI. It takes just seconds to ask When are Megan and I both free? but much longer to find out manually from a calendar. Indeed, almost everything&hellip;","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/posts\/690276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/users\/38838"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/comments?post=690276"}],"version-history":[{"count":10,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/posts\/690276\/revisions"}],"predecessor-version":[{"id":696483,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/posts\/690276\/revisions\/696483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/media\/693474"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/media?parent=690276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/categories?post=690276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/tags?post=690276"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=690276"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=690276"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=690276"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=690276"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=690276"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=690276"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=690276"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=690276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}