You are on page 1of 3

Fast and easy language understanding for dialog systems with

Microsoft Language Understanding Intelligent Service (LUIS)


Jason D. Williams, Eslam Kamal, Mokhtar Ashour, Hani Amr, Jessica Miller, Geoff Zweig
Microsoft Research
One Microsoft Way
Redmond, WA 98052, USA
jason.williams@microsoft.com

Abstract Handcrafted rules are accessible for general soft-


ware developers, but they are difficult to scale up,
With Language Understanding Intelligent and do not benefit from data. ML-based models
Service (LUIS), developers without ma- are trained on real usage data, generalize well to
chine learning expertise can quickly build new situations, and are superior in terms of robust-
and use language understanding models ness. However, they require rare and expensive ex-
specific to their task. LUIS is entirely pertise, and are therefore generally employed only
cloud-based: developers log into a web- by organizations with substantial resources.
site, enter a few example utterances and Microsoft’s Language Understanding Intelli-
their labels, and then deploy a model to gent Service (LUIS) aims to enable software de-
an HTTP endpoint. Utterances sent to the velopers to create cloud-based machine-learning
endpoint are logged and can be efficiently language understanding models specific to their
labeled using active learning. Visualiza- application domain, without ML expertise. LUIS
tions help identify issues, which can be re- is built on prior work in Microsoft Research on in-
solved by either adding more labels or by teractive learning (Simard et al, 2014), and rapid
giving hints to the machine learner in the development of language understanding models
form of features. Altogether, a developer (Williams et al., 2015).
can create and deploy an initial language
understanding model in minutes, and eas- 2 LUIS overview
ily maintain it as usage of their application
Developers begin by creating a new LUIS “ap-
grows.
plication”, and specifying the intents and entities
1 Introduction and Background needed in their domain. They then enter a few ut-
terances they would like their application to han-
In a spoken dialog system, language understand- dle. For each, they choose the intent label by
ing (LU) converts from the words in an utter- choosing from a drop-down, and specify any en-
ance into a machine-readable meaning represen- tities in the utterance by highlighting a contiguous
tation, typically indicating the intent of the ut- subset of words in the utterance. As the developer
terance and any entities present in the utter- enters labels, the model is automatically and asyn-
ance (Wang et al., 2005; Tur and Mori, 2011). chronously re-built (requring 1-2 seconds), and
For example, consider a physical fitness do- the current model is used to propose labels when
main, with a dialog system embedded in a wear- new utterances are entered. These proposed labels
able device like a watch. This dialog system serve two purposes: first, they act as a rotating test
could recognize intents like StartActivity set and illustrate the performance of the current
and StopActivity, and could recognize enti- model on unseen data; second, when the proposed
ties like ActivityType. In the user utterance labels are correct, they act as an accelerator.
“begin a jog”, the goal of LU is to identify the ut- As labeling progresses, LUIS shows several
terance intent as StartActivity, and identify visualizations which show performance, includ-
the entity ActivityType=’’jog’’. ing overall accuracy and any confusions – for
Historically, there have been two options for example, if an utterance is labeled with the in-
implementing language understanding: machine- tent StartActivity but is being classified
learning (ML) models and handcrafted rules. as StopActivity, or if an utterance was la-
{
beled as containing an instance of the entity "query": "start tracking a run",
ActivityType, but that entity is not being de- "entities": [
tected. These visualizations are shown on all the {
"entity": "run",
data labeled so far; i.e., the visualizations show "type": "ActivityType"
performance on the training set, which is impor- }
tant because developers want to ensure that their ],
"intents": [
model will reproduce the labels they’ve entered. {
When a classification error surfaces in a visual- "intent": "StartActivity",
"score": 0.993625045
ization, developers have a few options for fixing },
it: they can add more labels; they can change a la- {
bel (for example, if an utterance was mis-labeled); "intent": "None",
"score": 0.03260582
or they can add a feature. A feature is a dic- },
tionary of words or phrases which will be used {
"intent": "StopActivity",
by the machine learning algorithm. Features are "score": 0.0249939673
particularly useful for helping the models to gen- },
eralize from very few examples – for example, {
"intent": "SetHRTarget",
to help a model generalize to many types of de- "score": 0.003474009
vices, the developer could add a feature called }
ActivityWords that contains 100 words like ]
}
“run”, “walk”, “jog”, “hike”, and so on. This
would help the learner generalize from a few ex- Figure 1: Example JSON response for the utter-
amples like “begin a walk” and “start tracking a ance “start tracking a run”.
run”, without needing to label utterances with ev-
ery type of activity.
In addition to creating custom entities, devel- phrasings. Second, LUIS can suggest the most
opers can also add “pre-built” ready-to-use enti- useful utterances to label by using active learning.
ties, including numbers, temperatures, locations, Here, all logged utterances are scored with the cur-
monetary amounts, ages, encyclopaedic concepts, rent model, and utterances closest to the decision
dates, and times. boundary are presented first. This ensures that the
At any point, the developer can “publish” their developer’s labeling effort has maximal impact.
models to an HTTP endpoint. This HTTP end-
3 Demonstration
point takes the utterance text as input, and returns
an object in JavaScript Object Notation (JSON) This demonstration will largely follow the presen-
form. An example of the return format is shown tation of LUIS at the Microsoft //build developer
in Figure 1. This URL can then be called from event. A video of this presentation is available at
within the developer’s application. The endpoint www.luis.ai/home/video.
is accessible by any internet-connected device, in- The demonstration begins by logging into
cluding mobile phones, tablets, wearables, robots, www.luis.ai and inputting the intents and enti-
and embedded devices; and is optimized for real- ties in the domain, including new domain-specific
time operation. entities and pre-built entities. The developer then
As utterances are received on the HTTP end- starts entering utterances in the domain and label-
point, they are logged, and are available for la- ing them. After a label is entered, the model is
beling in LUIS. However, successful applications re-built, and the visualizations are updated. When
will receive substantial usage, so labeling every ut- errors are observed, a feature is added to address
terance would be inefficient. LUIS provides two them. The demonstration continues by publish-
ways of managing large scale traffic efficiently. ing the model to an HTTP endpoint, and a few
First, a conventional (text) search index is created requests are made to the endpoint by using a sec-
which allows a developer to search for utterances ond web browser window, or by running a Python
that contain a word or phrase, like “switch on” or script to simulate more usage. The demonstration
“air conditioning”. This lets a developer explore then shows how these utterances are now available
the data to look for new intents or entirely new for labeling in LUIS, either through searching, or
Figure 2: Microsoft Language Understanding Intelligent Service (LUIS). In the left pane, the developer
can add or remove intents, entities, and features. By clicking on a feature, the developer can edit the
words and phrases in that feature. The center pane provides different ways of labeling utterances: in the
“New utterances” tab, the developer can type in new utterances; in the “Search” tab, the developer can
run text searches for unlabeled utterances received on the HTTP endpoint; in the “Suggest” tab, LUIS
scans utterances received on the HTTP endpoint and automatically suggests utterances to label using
active learning; and in the “Review labels” tab, the developer can see utterances they’ve already labeled.
The right pane, shows application performance – the drop-down box lets the developer drill down to see
performance of individual intents or entities.

by using active learning. After labeling a few ut- problems. http://arxiv.org/ftp/arxiv/


terances using these methods, the demonstration papers/1409/1409.4814.pdf.
concludes by showing how the updated applica- G Tur and R De Mori. 2011. Spoken Language Un-
tion can be instantly re-published. derstanding — Systems for Extracting Semantic In-
formation from Speech. John Wiley and Sons.
4 Access
Y Wang, L Deng, and A Acero. 2005. Spoken lan-
LUIS is currently in use by hundreds of develop- guage understanding. Signal Processing Magazine,
ers in an invitation-only beta – an invitation may IEEE, 22(5):16–31, Sept.
be requested at www.luis.ai. We have begun JD Williams, NB Niraula, P Dasigi, A Lakshmiratan,
in an invitation-only mode so that we can work CGJ Suarez, M Reddy, and G Zweig. 2015. Rapidly
closely with a group of developers of a manage- scaling dialog systems with interactive learning. In
able size, to understand their needs and refine the International Workshop on Spoken Dialog Systems,
Busan, Korea.
user interface. We expect to migrate to an open
public beta in the coming months.

References
P Simard et al. 2014. ICE: Enabling non-experts to
build models interactively for large-scale lopsided

You might also like