lecture 16 natural language programming with virtual ...courses/cs243/lectures/l16-handout.pdf ·...
TRANSCRIPT
![Page 1: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/1.jpg)
STANFORDLAM
Lecture 16
Natural Language Programming with Virtual Assistants
I. Motivation II. Two challenges
• Capability + Training data acquisition III. Key concepts
• Virtual assistant programming language (DSL) • Grammar-based training data synthesis
IV. Privacy
![Page 2: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/2.jpg)
STANFORDLAM
Virtual Assistants
• Voice interface to our web accounts and IoTs
• Sees all account data & intermediates access
• Potential threat to our privacy & open competition
![Page 3: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/3.jpg)
STANFORDLAM
Virtual Assistant Oligopoly• Alexa: 70% of the 76M installed base of owners in the US
• 100,000 3rd-party skills
• 60,000 compatible IoT devices
• 10,000 employees
A proprietary linguistic web is in the making!
https://voicebot.ai/2019/08/09/us-smart-speaker-installed-base-reaches-76-million-according-to-cirp-with-52-one-year-growth/
![Page 4: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/4.jpg)
STANFORDLAM
Goal: Disrupt Surveillance Capitalism
1. Democratize voice assistant technology
2. Thingpedia: the best skill repository for all languages, open to all assistants.
3. Genie: A best and trustworthy virtual assistant
![Page 5: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/5.jpg)
STANFORDLAM
II. Two Challenges (1) Beyond simple commands
![Page 6: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/6.jpg)
STANFORDLAM
Example: Asthma Patient
people Dr. Smith: “if Bob’s peak flow-meter drops below 180L/min let me know”
environment Dr. Smith: “when the air quality index is above 500 and Bob is running, warn him”
location “Let my Dad know if I am at the hospital”
devices “when I use my inhaler, record my GPS location in logfile on Box”
Bob
![Page 7: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/7.jpg)
STANFORDLAM
More General than IFTTT
•Event-driven program •Multiple function calls
•Parameter passing •Filters on values
“When I use my inhaler, get my GPS location, if it is not home, write it to logfile in Box.”
Programming in natural language!Users have their own combination of interest.
![Page 8: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/8.jpg)
STANFORDLAM
II. Two Challenges (2) Acquisition of training data
![Page 9: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/9.jpg)
STANFORDLAM
Alexa’s Approach
Natural Language
CommandsNeural
NetworkAlexa MeaningRepresentation
Language (AMRL)Step 1
Step 1Alexa MeaningRepresentation
Language (AMRL)Interpreter Execute
![Page 10: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/10.jpg)
STANFORDLAM
Alexa: Syntax-Dependent RepresentationSearch for an upscale restaurant and then make a reservation for it
Reserve a high-end restaurant for me
Can you reserve a restaurant for me? I want an upscale place.
我想预约⼀一个⾼高级餐厅
找⼀一家⾼高档餐厅,然后帮我预约
یک رستوران خوب پیدا کنید و برای من قرار مالقات بگذارید
AMRL
![Page 11: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/11.jpg)
STANFORDLAM
Conventional Wisdom• Natural language processing needs a neural network
• Neural network needs well annotated real users’ training data
• Pre-requisite: Millions of real user
• Coverage: Millions still don’t have enough coverage
• Cost: 10,000 Alexa employees annotating real user data
• Accuracy: 30% errors (Multi-Oz)
![Page 12: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/12.jpg)
STANFORDLAM
To address the challengesWe need a new methodology
1. Teach neural networks compositionalityfor natural language programming
2. Efficient acquisition of training data so we can scale to ask APIs and internet data
![Page 13: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/13.jpg)
STANFORDLAM
III. Key Concepts: (1) Virtual Assistant Programming Language
![Page 14: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/14.jpg)
STANFORDLAM
Natural Language Programming
now => @com.yelp.Restaurant(), price == enum(expensive) => @com.yelp.reserve(restaurant=id)
Search for an upscale restaurant and make a reservation for it
Text
Meaning: Executable code
An End-to-End Neural Network
• Human Computer Interface is easier than NLP
• ThingTalk: Virtual Assistant (VA) programming language
• Captures full capability of VA
• A high-level language
• Amenable to translation from natural language
• An open, non-proprietary languagefosters collaboration
• Can be extensible
ThingTalk
![Page 15: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/15.jpg)
STANFORDLAM
Compositionality: Construct + API calls
Natural Language Commands LUInet
Linguistic User Interface (LUI) Neural Network
ThingTalk constructsThingpedia operations
Formal Language
monitor @Inhaler-use(), => @GPS(), location <> “home” => @Box-write(file=“logfile”, data=location)
“When I use my inhaler, get my GPS location, if it is not home, write it to logfile in Box.”
![Page 16: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/16.jpg)
STANFORDLAM
ThingTalk Grammar WHEN [FILTERS] → GET [FILTERS] → DO
When the air quality index is above 500, and I am running, send me an SMS.
If I get taken to a hospital, let my dad know.
When I use my inhaler, get my location, save them to Dropbox.
FILTERS: =, <, >, <=. >=, <>, contains, starts with, ends with
If my heart rate is above 130, and I am not running, remind me to take a deep breath.
![Page 17: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/17.jpg)
STANFORDLAM
Thingpedia: Encyclopedia of Things
Natural Language API SignaturesWHEN @Stanford tweets Monitor (@home_timeline(), …) author==“Stanford”)
GET tweets matching “#Cardinal” search(…), contains (hashtag, …)
DO tweet “Stanford won!” post (status)
• Interoperability
• API signatures + corresponding NL
• Not just intents
• Open repository
![Page 18: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/18.jpg)
STANFORDLAM
Real Natural Language (NL) Input
Remind me if my car is not plugged in at home.If I am not charging my car when it is home, let me know.Remind me to charge my car whenever I’m home.
When my car is at home, and it is not plugged in, send me a reminder email
![Page 19: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/19.jpg)
STANFORDLAM
III. Key Concepts: (2) Training data synthesis
![Page 20: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/20.jpg)
STANFORDLAM
Search for an upscale restaurant and then make a reservation for it
Reserve a high-end restaurant for me
Can you reserve a restaurant for me? I want an upscale place.
Genie: A Formal Language Approach
ThingTalk
now => @com.yelp.Restaurant(), price == enum(expensive) => @com.yelp.reserve (restaurant=id)
![Page 21: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/21.jpg)
STANFORDLAM
Could you please get me a restaurant that is upscale?
want to reserve one.
Reserve me a luxury restaurant
给我找⼀一家⾼高级餐厅并预约
E ʻimi i kahi hale ʻaina hulahula a laila hana iā ia no ka mālama ʻana iā ia
یک رستوران مجلل جستجو کنید و سپس برای آن رزرو کنید
⾼高級レストランを検索してから予約する Cerca un ristorante di lusso e dammi la prenotazione
Prenotami un ristorante da lussoPer favore riesci a trovarmi un ristorante? Ho bisogno di qualcosa di lussoso.
Genie Synthesizes Training Data
now => @com.yelp.Restaurant(), price == enum(expensive) => @com.yelp.reserve (restaurant=id)
![Page 22: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/22.jpg)
STANFORDLAM
Semantic Parser GenerationNatural Language API Signatures
WHEN @Stanford tweets Monitor (@home_timeline(), …) author==“Stanford”)GET tweets matching “#Cardinal” search(…), contains (hashtag, …)
DO tweet “Stanford won!” post (status)
Thingpedia
22
Paraphrase
Training Data
Parameter & data augmentation
LUInetNatural Language Code
NL TemplatesThingTalk Grammar Synthesize programs
When <> get <>Get <> when <>
Validate & Test: Real User Input
![Page 23: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/23.jpg)
STANFORDLAM
Attention
BERT
[CLS] find restaurants
LSTM
Final Vocabulary Distribution
γ
Embedding
... [SOS] Restaurant ( ...
Feed Forward
Natural Language DBTalk
Pool
Pointer Switch
Neural Network
Natural Language ThingTalk
![Page 24: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/24.jpg)
STANFORDLAM
Event-driven Commands
• 62% on real data
• Compositional sentences
• No training with real data
• Accuracy can be improved with more templates + paraphrases
• Extensions
• Thingpedia + new constructs
Test data
![Page 25: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/25.jpg)
STANFORDLAM
Applying Genie to QueriesQueries Alexa Google Siri Genie
Show me restaurants rated at least 4 stars with at least 100 reviews ✓Show restaurants in San Francisco rated higher than 4.5 ✓What is highest rated Chinese restaurant in Hawaii? ✓ ✓ ✓How far is the closest 4 star and above restaurant? ✓Find a W3C employee that went to Oxford ✓Who worked for both Google and Amazon? ✓Who graduated from Stanford and won a Nobel prize? ✓ ✓Who worked for at least 3 companies? ✓Show me hotels with checkout time later than 12PM ✓Which hotel has a swimming pool in this area? ✓ ✓
![Page 26: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/26.jpg)
STANFORDLAM
Compound Restaurant Questions
0
25
50
75
100
Alexa Google Siri Genie
%
415 Complex Questions
![Page 27: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/27.jpg)
STANFORDLAM
An Open AssistantRetail
Banks
SmartNewsMusic
1.8B Webpagesschema.org data 1 domain a week
1000 Different Iot Devices
withHome Assistant
Thingpedia
Telcos Cable Co
Autos Hotels
Messengers: Slack
FB Whatsapp
Genie
Company’s Website
App Phone
![Page 28: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/28.jpg)
STANFORDLAM
IV. Privacy
![Page 29: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/29.jpg)
STANFORDLAM
Protect Privacy with an Open Federated Architecture
User1
Natural Language
LUInet
Genie
• ThingTalk: virtual-assistant programming language
• LUInet: open NLP neural network
• training in the cloud (currently)
• inference locally (in the future)
• Genie: Privacy-preserving assistant
• Keeps users accounts & data local
• Communicate/share with each other (like email)
• Users share in natural language
Campagna, Xu, Ramesh, Fischer, Lam, Ubicomp 2018
“My dad can monitor my security cameraonly if I am not home.”
A fully-functional research prototype is available as Almond for Android/web.
ThingTalk
Natural Language
LUInet
Genie
User2
Standard Communication
Protocol
ThingTalk
![Page 30: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/30.jpg)
STANFORDLAM
Sharing with Control in Natural Language
FILTERS: =, <, >, <>, <=. >=, contains, starts with, ends with WHEN [FILTERS] → GET [FILTERS] → DO Requester:
Let CDC see any of my health records, provided my name is not included. Let my secretary, whenever I am out of town, read email messages whose subject is marked urgent.Let Dr. Smith monitor my peak-flow-meter, if it drops below 180L/min.
Campagna, Xu, Ramesh, Fischer, Lam, Ubicomp 2018
Protect privacy → Select data available for research
Let Websites know I am under 13 years old.
![Page 31: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/31.jpg)
STANFORDLAM
Remote Execution
Dad AliceAlice’s Assistant
(e) Save
σ=@dad, ϵ=SELF: monitor @security_camera.event(), has_motion=true && @phone.get_gps() {location≠home} ⇒ return
Policy Database
(f) Return detected events
“Notification from monitor security camera: motion detected ...”
“Only if I’m not home.”
(d) Respond
(b) Check
σ=@dad, ϵ=SELF: monitor @security_camera.event(), has_motion=true ⇒ return
“Ask @alice to notify me when her security camera detects motion.”
(a) Request
“@dad wants to get notified when any event is detected on your security camera and has motion is equal to true.”
(c) Ask for permission
![Page 32: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/32.jpg)
STANFORDLAM
Conformance of Access Controls
SMT Formula L[p], L[c]
Remote Program p Access control c
p ⪯ c ≡ L[p] ⊨ L[c] ≡ ¬ SAT(L[p] ∧ ¬ L[c])
Static conformancep conforms to c if
The program p’= p ∧ c is the least restrictive conforming program, provided p’ ≠ null.
Dynamic conformance
Natural Language
Satisfiability Modulo Theories
![Page 33: Lecture 16 Natural Language Programming with Virtual ...courses/cs243/lectures/l16-handout.pdf · SmartNews Music 1.8B Webpages schema.org data 1 domain a week 1000 Different Iot](https://reader030.vdocuments.mx/reader030/viewer/2022041015/5ec619e6cf876611c2687f5f/html5/thumbnails/33.jpg)
STANFORDLAM
Conclusions• Highest programming language: natural language
• Target formal language: ThingTalk (a DSL)
• Extensible: about 100 constructs?
• Current research: schemas to dialogues
• Replace naive annotations with developer tools
• Support millions of domain experts
• Use grammar to generate training data to increase coverage
• Open-world collaboration to create an open linguistic web