Learning to Map Context- Dependent Sentences to Executable Formal - - PowerPoint PPT Presentation

learning to map context dependent sentences to executable
SMART_READER_LITE
LIVE PREVIEW

Learning to Map Context- Dependent Sentences to Executable Formal - - PowerPoint PPT Presentation

Learning to Map Context- Dependent Sentences to Executable Formal Queries Alane Suhr, Srinivasan Iyer, Yoav Artzi Context-Dependent Language Understanding Our goal: language understanding in long interactions Prior work in semantic


slide-1
SLIDE 1

Learning to Map Context- Dependent Sentences to Executable Formal Queries

Alane Suhr, Srinivasan Iyer, Yoav Artzi

slide-2
SLIDE 2

Context-Dependent Language Understanding

  • Our goal: language understanding in long

interactions

  • Prior work in semantic parsing, language to code

focuses on sentences in isolation

  • How can we make use of interaction history when

interpreting later utterances?

slide-3
SLIDE 3

Show me flights from Seattle to Boston next Monday User

Context-Dependent Language Understanding

slide-4
SLIDE 4

User

Context-Dependent Language Understanding

Show me flights from Seattle to Boston next Monday

slide-5
SLIDE 5

SQL Query User

Context-Dependent Language Understanding

Show me flights from Seattle to Boston next Monday

(SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = 'SEATTLE'))) AND (flight.to_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = 'BOSTON'))) AND (flight.flight_days IN (SELECT days.days_code FROM days WHERE days.day_name IN (SELECT date_day.day_name FROM date_day WHERE date_day.year = 1993 AND date_day.month_number = 2 AND date_day.day_number = 8))));

slide-6
SLIDE 6

✈✈✈✈✈✈✈✈✈✈✈✈✈✈ Found 31 Flights: Result User Show me flights from Seattle to Boston next Monday

Context-Dependent Language Understanding

slide-7
SLIDE 7

Found 2764 Flights: ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ ✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈ Result User On American Airlines

Context-Dependent Language Understanding

slide-8
SLIDE 8

✈✈✈✈✈✈✈✈✈✈✈✈✈✈ Found 31 Flights: Result Found 5 Flights: ✈✈✈✈✈ Result User User On American Airlines

Context-Dependent Language Understanding

Show me flights from Seattle to Boston next Monday

slide-9
SLIDE 9

✈✈✈✈✈✈✈✈✈✈✈✈✈✈ Found 31 Flights: Result Found 5 Flights: ✈✈✈✈✈ Result No flights found. Result User User On American Airlines User Which ones arrive after 7pm?

Context-Dependent Language Understanding

Show me flights from Seattle to Boston next Monday

slide-10
SLIDE 10

✈✈✈✈✈✈✈✈✈✈✈✈✈✈ Found 31 Flights: Result Found 5 Flights: ✈✈✈✈✈ Result No flights found. Result Found 5 Flights: ✈✈✈✈✈ Result User User On American Airlines User Which ones arrive after 7pm? User Show me Delta flights

Context-Dependent Language Understanding

Show me flights from Seattle to Boston next Monday

slide-11
SLIDE 11

Context-Independent Prior Work

Popescu et al. 2004, Giordani and Moschitti 2012, Poon 2013, Ling et al. 2016, Zhong et al. 2017, Xu et al. 2017, Yin and Neubig 2017, Rabinovich et al. 2017, Krishnamurthy et al. 2017, Chen et al. 2017, Iyer et al. 2017 Zelle and Money 1996, Clarke et al. 2010, Zettlemoyer and Collins 2005, Zettlemoyer and Collins 2007, Kwiatkowski et al. 2011, Artzi and Zettlemoyer 2011, Kushman and Barzilay 2013, Liang et al. 2011, Berant et al. 2013, Wang et al. 2014, Dong and Lapata 2016, Jia and Liang 2016

  • Semantic parsing
  • Language to code
  • Our approach: language understanding in

interaction context

slide-12
SLIDE 12

Context-Dependent Prior Work

SCONE (Long et al. 2016): micro domains focused on specific interaction phenomena

Guu et al. 2017, Fried et al. 2018, Suhr et al. 2018

ATIS (Hemphill et al. 1990, Dahl et al. 1994): Miller et al. 1996, Zettlemoyer and Collins 2009

Use different representations; extra training & annotation.

  • Our approach: single end-to-end model using
  • nly interaction data
slide-13
SLIDE 13

Interaction History

  • As an interaction progresses, the meaning of an

utterance becomes highly dependent on the history of the interaction

  • History includes both previous requests and

generated SQL queries

  • Two mechanisms
slide-14
SLIDE 14

User User Show the cost of tickets on flight US 345

Incorporating Previous Requests

User Please describe the class of service Y Show me all flights from Boston to Pittsburgh on Wednesday of next week which depart from Boston after 5pm

⋮ (3 turns) ⋮ (5 turns)

slide-15
SLIDE 15
  • Relevant but elided information was mentioned

many turns before

  • User may change focus during interaction
  • Solution: implicit mechanism for carrying

information from beginning to end of interaction

Incorporating Previous Requests

slide-16
SLIDE 16

SQL Query User

Incorporating Previous Queries

Show me flights from Seattle to Boston next Monday

(SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = 'SEATTLE'))) AND (flight.to_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = 'BOSTON'))) AND (flight.flight_days IN (SELECT days.days_code FROM days WHERE days.day_name IN (SELECT date_day.day_name FROM date_day WHERE date_day.year = 1993 AND date_day.month_number = 2 AND date_day.day_number = 8))));

slide-17
SLIDE 17

SQL Query User On American Airlines

Incorporating Previous Queries

(SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.airline_code = 'AA') AND (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = ‘SEATTLE'))) AND (flight.to_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name = 'BOSTON'))) AND (flight.flight_days IN (SELECT days.days_code FROM days WHERE days.day_name IN (SELECT date_day.day_name FROM date_day WHERE date_day.year = 1993 AND date_day.month_number = 2 AND date_day.day_number = 8))));

slide-18
SLIDE 18
  • Segments corresponding to earlier constraints

appear in later queries

  • Solution: explicit mechanism for composing later

SQL queries from segments of previous ones

Incorporating Previous Queries

slide-19
SLIDE 19

Decoder

SQL query

Show me flights from Seattle to Boston next Monday Encoder

Model Overview

slide-20
SLIDE 20

Decoder

SQL query

Decoder

SQL query

Encoder On American Airlines Show me flights from Seattle to Boston next Monday Encoder

Model Overview

slide-21
SLIDE 21

Turn-Level Encoder

Previous Requests: Turn-level Encoder

Turn-Level Encoder Decoder

SQL query

Decoder

SQL query

Encoder On American Airlines Encoder

Model Overview

Show me flights from Seattle to Boston next Monday Mechanism 1

slide-22
SLIDE 22

Turn-Level Encoder Turn-Level Encoder Query Segment Copying

Previous Queries: Query Segment Copying

Model Overview

Decoder

SQL query

Decoder

SQL query

Encoder On American Airlines Encoder Show me flights from Seattle to Boston next Monday

Previous Requests: Turn-level Encoder

Mechanism 1 Mechanism 2

slide-23
SLIDE 23

Turn-level Encoder

Encoder On American Airlines Turn-Level Encoder Encoder Turn-Level Encoder Show me flights from Seattle to Boston next Monday

Previous Requests: Turn-level Encoder

Mechanism 1

slide-24
SLIDE 24

RNN Update New discourse-level vector state

Turn-level Encoder

Discourse-level vector state

  • 1. State Update

Encoded request

Turn-Level Encoder Show me flights from Seattle to Boston next Monday Encoder

slide-25
SLIDE 25

Turn-level Encoder

On American Airlines

Word embeddings Discourse- level state

  • 2. Using

State

Turn-Level Encoder Show me flights from Seattle to Boston next Monday Encoder Encoder On American Airlines

slide-26
SLIDE 26

Turn-level Encoder

  • Persistent vector state, updated

throughout interaction

  • Encode information from

beginning to end of interaction

  • Completely learned

Turn-Level Encoder Turn-Level Encoder Show me flights from Seattle to Boston next Monday Encoder Encoder On American Airlines

slide-27
SLIDE 27

Query Segment Copying

Query Segment Copying

Decoder

SQL query

Decoder

SQL query

Encoder On American Airlines Encoder Show me flights from Seattle to Boston next Monday

Previous Queries: Query Segment Copying

Mechanism 2

slide-28
SLIDE 28

Query Segment Copying

  • 1. Segment Extraction

city.city_name = 'SEATTLE'
 city.city_name = 'BOSTON' date_day.year = 1993 date_day.month_number = 2 date_day.day_number = 8

Deterministic,

  • perates on

the SQL tree

Decoder

Previous Query: (SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name =

slide-29
SLIDE 29

Query Segment Copying

  • 2. Segment Encoding

Decoder

city.city_name = 'SEATTLE'


) WHERE city.city_name = 'SEATTLE'

Previous Query: (SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name =

... ...

slide-30
SLIDE 30

Query Segment Copying

  • 3. Generating

Query Segments

Decoder

SQL query

Encoder On American Airlines Decoder Query Segment Copying

Probability of query segment computed using its vector state

Previous Query: (SELECT DISTINCT flight.flight_id FROM flight WHERE (flight.from_airport IN (SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN (SELECT city.city_code FROM city WHERE city.city_name =

slide-31
SLIDE 31

Query Segment Copying

  • Explicit mechanism for copying

previous constraints

  • Encoding and generating segments

learned with the rest of the model

Decoder

SQL query

Encoder On American Airlines Decoder

SQL query

Query Segment Copying

slide-32
SLIDE 32

Inference

Turn-Level Encoder Encoder Show me flights from Seattle to Boston next Monday

slide-33
SLIDE 33

Inference

Decoder

SQL query

Turn-Level Encoder Encoder Show me flights from Seattle to Boston next Monday

slide-34
SLIDE 34

Inference

Decoder

SQL query

Encoder On American Airlines Turn-Level Encoder Encoder Show me flights from Seattle to Boston next Monday

slide-35
SLIDE 35

Turn-Level Encoder Query Segment Copying Decoder

SQL query

Inference

Decoder

SQL query

Encoder On American Airlines Turn-Level Encoder Encoder Show me flights from Seattle to Boston next Monday

slide-36
SLIDE 36

Learning

  • Training data: interactions with request-SQL pairs
  • Objective: minimize token-level cross-entropy loss
  • All learned components updated together
slide-37
SLIDE 37

ATIS

  • Flight information, 27 tables, 162K entries
  • Small corpus: <2000 interactions
  • Long interactions: average 7 turns; maximum: 64
  • Complex queries: average 102.9 tokens each;

93% reference >3 tables

(Hemphill et al. 1990, Dahl et al. 1994)

slide-38
SLIDE 38
  • Need to generalize to rare or unseen constraints
  • Can take advantage of database context
  • Apply entity identification, anonymization

techniques

Handling Entities

slide-39
SLIDE 39

... city.city_name = 'SEATTLE' ...

Handling Entities

SQL Query User User

⬇ ⬇ ⬇

Show me flights from Seattle to Boston next Monday

... city.city_name = CITY1 ...

Show me flights from CITY1 to CITY2 YEAR MONTH DAY SQL Query

slide-40
SLIDE 40

Experiments

  • Seq2Seq w/o history 


seq2seq on current utterance only

  • Seq2Seq + history 


seq2seq by concatenating last four utterances

  • Full model 


use turn-level encoder 
 and query segment copying

  • Measure effect of error propagation: 


full model with access to gold previous query

Evaluation metric: Denotation accuracy (compare tables)

slide-41
SLIDE 41

Results

72.0 69.2 65.8 53.8

Seq2Seq w/o history Seq2Seq + history Full model Full model (with gold previous query)

Denotation accuracy (test)

  • Using interaction history is

critical

  • Error propagation contributes

about 3% performance drop

slide-42
SLIDE 42

Performance as Interactions Progress

35 45 55 65 75 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Seq2Seq w/o history Seq2Seq + history Full model Full model (with gold previous query) Denotation accuracy (dev) Turn index in interaction

  • Without interaction

history, performance drops immediately

  • Our model: relatively

stable

slide-43
SLIDE 43

Ablation Results

58.3 61.4 62.5

Full model w/o turn-level encoder w/o query segment copying

Denotation accuracy (dev)

slide-44
SLIDE 44

( SELECT DISTINCT flight.flight_id FROM flight WHERE ( flight.from_airport IN ( SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN ( SELECT city.city_code FROM city WHERE city.city_name = 'ATLANTA' ) ) AND ( flight.to_airport IN ( SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN ( SELECT city.city_code FROM city WHERE city.city_name = 'BALTIMORE' ) ) AND ( flight.flight_days IN ( SELECT days.days_code FROM days WHERE days.day_name IN ( SELECT date_day.day_name FROM date_day WHERE date_day.year = 1991 AND date_day.month_number = 9 AND date_day.day_number = 6 ) ) AND ( flight.arrival_time >= 1630 AND flight.arrival_time <= 1730 ) ) ) ) ) ;

Which ones arrive around 7pm? SQL Query User

Error Propagation

slide-45
SLIDE 45

( SELECT DISTINCT flight.flight_id FROM flight WHERE ( flight.from_airport IN ( SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN ( SELECT city.city_code FROM city WHERE city.city_name = 'ATLANTA' ) ) AND ( flight.to_airport IN ( SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN ( SELECT city.city_code FROM city WHERE city.city_name = 'BALTIMORE' ) ) AND ( flight.flight_days IN ( SELECT days.days_code FROM days WHERE days.day_name IN ( SELECT date_day.day_name FROM date_day WHERE date_day.year = 1991 AND date_day.month_number = 9 AND date_day.day_number = 6 ) ) AND ( flight.arrival_time >= 1630 AND flight.arrival_time <= 1730 ) ) ) ) ) ;

Which ones arrive around 7pm? SQL Query User

Error: looking for flights around 5pm

Error Propagation

slide-46
SLIDE 46

Which kind of airplane is that?

( SELECT DISTINCT aircraft.aircraft_code FROM aircraft WHERE aircraft.aircraft_code IN ( SELECT equipment_sequence.aircraft_code FROM equipment_sequence WHERE equipment_sequence.aircraft_code_sequence IN ( SELECT flight.aircraft_code_sequence FROM flight WHERE ( flight.arrival_time >= 1630 AND flight.arrival_time <= 1730 AND ( flight.from_airport IN ( SELECT airport_service.airport_code FROM airport_service WHERE airport_service.city_code IN ( SELECT city.city_code FROM city WHERE city.city_name = 'ATLANTA' ) )

SQL Query User

Error Propagation

slide-47
SLIDE 47
  • Selecting an incorrect segment
  • Previous generated query didn’t contain a

necessary segment Future work: how to mitigate error propagation? New training procedures?

Error Propagation

slide-48
SLIDE 48
  • Language understanding in long, complex

interactions

  • Turn-level encoder: implicit mechanism for

reasoning about previous requests

  • Query segment copying: explicitly derive meaning
  • f request (SQL query) from interaction history

Thank you!

https://github.com/clic-lab/atis