Scaling Semantic Parsers with On-the-Fly Ontology Matching Tom - - PowerPoint PPT Presentation

scaling semantic parsers with on the fly ontology matching
SMART_READER_LITE
LIVE PREVIEW

Scaling Semantic Parsers with On-the-Fly Ontology Matching Tom - - PowerPoint PPT Presentation

Scaling Semantic Parsers with On-the-Fly Ontology Matching Tom Kwiakowski, Eunsol Choi, Yoav Artzi, Luke Zettlemoyer. Semantic Parsing Q: How many people live in Seattle? Semantic Parser MR: 620,778 Open Domain QA Q Who managed Liverpool


slide-1
SLIDE 1

Scaling Semantic Parsers with On-the-Fly Ontology Matching

Tom Kwiakowski, Eunsol Choi, Yoav Artzi, Luke Zettlemoyer.

slide-2
SLIDE 2

Semantic Parsing

Semantic Parser Q: How many people live in Seattle? MR: 620,778

slide-3
SLIDE 3

Open Domain QA

7,000 What are the symptoms of prostate cancer? What architectural style is the Brooklyn Bridge? How many people ride the monorail in Seattle daily? Who managed Liverpool F.C. from 2004 to june 2010?

Q A Q A Q A Q A

Rafael Benitez Gothic Revival architecture {Hematuria, Nocturia, Dysuria, ... }

slide-4
SLIDE 4

Open Domain QA

7,000 What are the symptoms of prostate cancer? What architectural style is the Brooklyn Bridge? How many people ride the monorail in Seattle daily? Who managed Liverpool F.C. from 2004 to june 2010?

Q A Q A Q A Q A

Rafael Benitez Gothic Revival architecture {Hematuria, Nocturia, Dysuria, ... }

  • 40 Million Entities
  • 2 Billion Facts
  • 20,000 Relations
  • 10,000 Types
  • 100 Domains

is a community authored knowledge base with:

slide-5
SLIDE 5

How many people live in Seattle?

Query is Domain Dependent

slide-6
SLIDE 6

How many people live in Seattle?

Person Home Eunsol Seattle Luke Seattle Jane Boston

Query is Domain Dependent

slide-7
SLIDE 7

How many people live in Seattle?

City Population Seattle

620778

Boston

636479

Person Home Eunsol Seattle Luke Seattle Jane Boston

Query is Domain Dependent

slide-8
SLIDE 8

How many people live in Seattle?

City Population Seattle

620778

Boston

636479

Person Home Eunsol Seattle Luke Seattle Jane Boston

  • Requires different syntax for different domains

➡ Grammars do not generalize well ➡ Grammars are hard to learn

Query is Domain Dependent

slide-9
SLIDE 9

City Population Seattle 450,000 Boston 750,000

How many people live in Seattle?

Person Award Nelson M. Nobel P.P. Mother T. Nobel P.P. Leymah G. Nobel P.P.

How many people have won the Nobel peace prize?

Query is Domain Dependent

slide-10
SLIDE 10

City Population Seattle

620778

Boston

636479

How many people live in Seattle?

Person Award Nelson M. Nobel P.P. Mother T. Nobel P.P. Leymah G. Nobel P.P.

How many people have won the Nobel peace prize?

Query is Domain Dependent

slide-11
SLIDE 11

How many people live in Seattle?

2 Stage Semantic Parsing

slide-12
SLIDE 12

How many people live in Seattle?

2 Stage Semantic Parsing

  • 1. Domain independent, linguistically motivated parse.
slide-13
SLIDE 13

How many people live in Seattle?

2 Stage Semantic Parsing

Person Home Eunsol Seattle Luke Seattle Jane Boston

  • 2. Domain specific ontology match.
slide-14
SLIDE 14

City Population Seattle

620778

Boston

636479

How many people live in Seattle?

2 Stage Semantic Parsing

Person Home Eunsol Seattle Luke Seattle Jane Boston

  • 2. Domain specific ontology match.
slide-15
SLIDE 15

City Population Seattle

620778

Boston

636479

How many people live in Seattle?

2 Stage Semantic Parsing

Person Home Eunsol Seattle Luke Seattle Jane Boston

  • 2. Domain specific ontology match.
  • All domains use same syntax that generalizes well
  • Ontology match can be guided by the structure of

the underspecified logical form

slide-16
SLIDE 16
  • 2 stage semantic parsing

➡ Domain independent parsing ➡ Domain dependent ontology matching

  • Modeling and Inference
  • Learning from Question/Answer pairs
  • Experiments

Overview

slide-17
SLIDE 17

City Population Seattle

620778

Boston

636479

How many people live in Seattle?

2 Stage Semantic Parsing

Person Home Eunsol Seattle Luke Seattle Jane Boston

  • 1. Domain independent, linguistically motivated parse.
  • 2. Domain specific ontology match.
slide-18
SLIDE 18

Constant Matches for .

2 Stage Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.how many people live in(seattle, x) λx.how many people live in(seattle, x) λx.population(seattle, x) Structure Match

Ontology Match

slide-19
SLIDE 19

Constant Matches for .

2 Stage Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.how many people live in(seattle, x) λx.how many people live in(seattle, x) λx.population(seattle, x) Structure Match

Ontology Match

slide-20
SLIDE 20

Constant Matches for .

2 Stage Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.how many people live in(seattle, x) λx.how many people live in(seattle, x) λx.population(seattle, x) Structure Match

slide-21
SLIDE 21

CCG Lexicon

CCG Parsing

slide-22
SLIDE 22

CCG Lexicon

CCG Parsing

Do not have lexicon for every domain Use Wiktionary for syntactic cues Parse to underspecified semantics

➡ ➡

slide-23
SLIDE 23

49 domain independent lexical items:

Word Syntax Underspecified semantics

How many ` S/(S\NP)/N : λfλgλx.eq(x, count(λy.f(y) ^ g(y))) What ` S/(S\NP)/N : λfλgλx.f(x) ^ g(x) most ` NP/N : λf.max count(λy.f(y)) etc.

56 underspecified lexical categories:

proper noun ` NP : C noun ` N : λx.P(x) noun ` N/N : λfλx.f(x) ^ P(x) verb ` S\NP : λλev.P(x, ev) verb ` S\NP/NP : λxλyλev.P(y, x, ev) preposition ` N\N/NP : λfλxλy.P(y, x) ^ f(y) preposition ` S\S/NP : λfλx9ev.P(ev, x) ^ f(ev) etc.

Part-of-Speech Syntax Underspecified semantics

Domain Independent Parsing

slide-24
SLIDE 24

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

24

slide-25
SLIDE 25

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

25

Use Wiktionary to get part-of-speech set for words

slide-26
SLIDE 26

49 domain independent lexical items:

Word Syntax Underspecified semantics

How many ` S/(S\NP)/N : λfλgλx.eq(x, count(λy.f(y) ^ g(y))) What ` S/(S\NP)/N : λfλgλx.f(x) ^ g(x) most ` NP/N : λf.max count(λy.f(y)) etc.

56 underspecified lexical categories:

proper noun ` NP : C noun ` N : λx.P(x) noun ` N/N : λfλx.f(x) ^ P(x) verb ` S\NP : λλev.P(x, ev) verb ` S\NP/NP : λxλyλev.P(y, x, ev) preposition ` N\N/NP : λfλxλy.P(y, x) ^ f(y) preposition ` S\S/NP : λfλx9ev.P(ev, x) ^ f(ev) etc.

Part-of-Speech Syntax Underspecified semantics

Domain Independent Parsing

slide-27
SLIDE 27

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

slide-28
SLIDE 28

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

slide-29
SLIDE 29

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

slide-30
SLIDE 30

Domain Independent Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.P(x) λxλev.P(x, ev) λxλf∃ev.P(ev, x) ∧ f(ev) C λy.g(y) ∧ f(y)))

> >

S/(S\NP) S\S λgλx.eq(x, count(λy.g(y) ∧ P(y))) λf∃ev.P(ev, C) ∧ f(ev)

<B

S\NP λx∃ev.P(x, ev) ∧ P(ev, C)

>

S λx.eq(x, count(λy.P(y) ∧ ∃ev.P(y, ev) ∧ P(ev, C))) λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

String labels signify source words, not semantic constants.

slide-31
SLIDE 31

Constant Matches for .

2 Step Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.how many people live in(seattle, x) λx.how many people live in(seattle, x) λx.population(seattle, x) Structure Match

slide-32
SLIDE 32

Structural Match

Collapse and expand subexpressions in underspecified logical form with operators that:

  • 1. Collapse simple typed sub-expression
  • 2. Collapse complex typed sub-expression
  • 3. Expand predicate

New example

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

How many people ride the monorail in Seattle daily?

slide-33
SLIDE 33
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

Structural Match

slide-34
SLIDE 34
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e)))

entity typed subexpression

Structural Match

slide-35
SLIDE 35
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e)))

integer typed subexpression

λx.eq(x, how many people ride daily the monorail in seattle)

Structural Match

slide-36
SLIDE 36
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e)))

integer typed subexpression

λx.eq(x, how many people ride daily the monorail in seattle)

Structural Match

slide-37
SLIDE 37
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, ιz.monorail(z) ∧ in(z, seattle), e) ∧ daily(e)))

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e))) λx.eq(x, how many people ride daily the monorail in seattle)

Structural Match

slide-38
SLIDE 38
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e)))

Structural Match

slide-39
SLIDE 39
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e)))

Structural Match

slide-40
SLIDE 40
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e))) λx.eq(x, count(λy.people(y) ∧ ride daily(y, monorail in seattle)))

<e,<e,t>> typed subexpression

Structural Match

slide-41
SLIDE 41
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

<i,<e,t>> typed subexpression

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e))) λx.eq(x, count(λy.people(y) ∧ ride daily(y, monorail in seattle))) λx.how many people ride daily(the monorail in seattle, x)

Structural Match

slide-42
SLIDE 42
  • 1. Find subexpression with type allowed in KB
  • 2. Replace with new underspecified constant

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e))) λx.eq(x, count(λy.people(y) ∧ ride daily(y, monorail in seattle))) λx.how many people ride daily(the monorail in seattle, x)

Structural Match

slide-43
SLIDE 43
  • 1. Find subexpression with type allowed in KB

λx.eq(x, count(λy.people(y) ∧ ∃e.ride(y, monorail in seattle), e) ∧ daily(e))) λx.how many people ride daily(the monorail in seattle, x)

Structural Match

slide-44
SLIDE 44

λx.how many people ride daily(the monorail in seattle, x)

Structural Match

slide-45
SLIDE 45

Constant Match

Replace constants with constants from KB

λx.how many people ride daily(the monorail in seattle, x)

Assume constants have English string labels!

slide-46
SLIDE 46

Constant Match

Replace constants with constants from KB

λx.how many people ride daily(the monorail in seattle, x)

slide-47
SLIDE 47

Constant Match

Replace constants with constants from KB

λx.how many people ride daily(the monorail in seattle, x) λx.how many people ride daily(seattle monorail, x)

slide-48
SLIDE 48

Constant Match

Replace constants with constants from KB

λx.how many people ride daily(the monorail in seattle, x) λx.how many people ride daily(seattle monorail, x) λx.transit system/daily riders(seattle monorail, x)

slide-49
SLIDE 49
  • 2 stage semantic parsing

➡ Domain independent parsing ➡ Domain dependent ontology matching

  • Modeling and Inference
  • Learning from Question/Answer pairs
  • Experiments

Overview

slide-50
SLIDE 50

Constant Matches for .

2 Stage Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.how many people live in(seattle, x) λx.how many people live in(seattle, x) λx.population(seattle, x) Structure Match

z }| {

d

slide-51
SLIDE 51

Scoring Derivations

score(d) = φ(d)θ

Derivations are scored using a linear model:

d

with feature vector that decomposes over:

  • Constant match
  • Lexical features
  • Knowledge base features
  • Structural match
  • Domain independent parse

φ(d)

slide-52
SLIDE 52
  • Exact string match
  • Stemmed string match
  • Synonym match
  • Wiktionary gloss overlap

When did Prairie Home Companion first air?

λx.radio program.first broadcast(prairie home companion, x)

λx.when first air(prarie home companion, x)

How high is Niagara Falls?

λx.high(niagara falls, x) λx.location.geocode.elevation(niagara falls, x)

Lexical Features

slide-53
SLIDE 53
  • Exact string match.
  • Stemmed string match.
  • Synonym match.
  • Wiktionary gloss overlap.

When did Prairie Home Companion first air?

λx.radio program.first broadcast(prairie home companion, x)

λx.when first air(prarie home companion, x)

How high is Niagara Falls?

λx.high(niagara falls, x) λx.location.geocode.elevation(niagara falls, x)

Lexical Features

elevation (plural elevations)

  • 1. The act of raising from a lower place, condition, or quality to a higher; said of material

things, persons, the mind, the voice, etc.; as, the elevation of grain; elevation to a throne; elevation to sainthood; elevation of mind, thoughts, or character.

  • 2. The condition of being or feeling elevated; heightened; exaltation.

high (comparative higher, superlative highest)

  • 1. Being elevated in position or status, a state of being above many things. [quotations ▼]
slide-54
SLIDE 54

seattle_monorail 7000 monorail type daily_riders yamaha_motorsport motorbike_rider valentino_rossi

Test logical structure to see if it can exist in knowledge base.

Knowledge Base Features

slide-55
SLIDE 55

seattle_monorail 7000 monorail type daily_riders yamaha_motorsport motorbike_rider valentino_rossi

Predicted Logical Form

λx.daily riders(seattle monorail, x) λx.motorbike rider(seattle monorail, x)

Knowledge Base Features

Test logical structure to see if it can exist in knowledge base.

slide-56
SLIDE 56

seattle_monorail 7000 monorail type daily_riders yamaha_motorsport motorbike_rider valentino_rossi

Predicted Logical Form

λxλy.daily riders(x, y) ∧ monorail(x) λxλy.motorbike rider(x, y) ∧ monorail(x)

Knowledge Base Features

Test logical structure to see if it can exist in knowledge base.

slide-57
SLIDE 57

Inference

Ontology matching step is:

  • Exponential in arity of most complex predicate
  • Polynomial in number of logical symbols
  • Linear in the size of the knowledge base

➡ Use dynamic programming ➡ Prune heavily according to local score ➡ Call constant matching operators greedily

slide-58
SLIDE 58

2 Stage Semantic Parsing

How many people live in Seattle S/(S\NP)/N N S\NP S\S/NP NP λfλgλx.eq(x, count( λx.people(x) λxλev.live(x, ev) λxλf∃ev.in(ev, x) seattle λy.g(y) ∧ f(y))) ∧ f(ev)

> > <B >

S λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

Domain Independent Parse Ontology Match

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle))) λx.population(seattle, x)

z }| {

d

λx.eq(x, count(λy.∃ev.people(y) ∧ live(y, ev) ∧ in(ev, seattle)))

λx.how many people live in(seattle, x)

slide-59
SLIDE 59
  • 2 stage semantic parsing

➡ Domain independent parsing ➡ Domain dependent ontology matching

  • Modeling and Inference
  • Learning from Question/Answer pairs
  • Experiments

Overview

slide-60
SLIDE 60

Learning

{(xi, ai) : i = 1, . . . , n}

Q/A pairs Knowledge Base, Wiktionary, Underspecified Lexicon Input Algorithm

i = 1, . . . , n

For : θ = θ + 1 |C| X

c∈C

φ(c) − 1 |W| X

w∈W

φ(w) Max scoring correct parses of Margin violating incorrect parses of W ←

C ←

xi xi

slide-61
SLIDE 61
  • 2 stage semantic parsing

➡ Domain independent parsing ➡ Domain dependent ontology matching

  • Modeling and Inference
  • Learning from Question/Answer pairs
  • Experiments

Overview

slide-62
SLIDE 62

Experiments

Q/A from databases - evaluate on exact answer match

Freebase917

  • 642 training sentences, 275 test sentences
  • 135 million facts, 18 million entities, 2000 relations

GeoQuery

  • 600 training sentences, 280 test sentence
  • 14018 facts, 3839 entities, 12 relations
  • High degree of compositional complexity

Feature initialization:

Lexical - Prefer exact and partial string match Knowledge base - Prefer concepts in knowledge base

slide-63
SLIDE 63

Related Work

Learning From Q/A Pairs:

  • Clarke et.al. 2010
  • Goldwasser et.al. 2011
  • Liang et.al. 2011 (DCS)
  • Berant et.al. 2013

Learning CCG from Labelled Logical Forms:

  • Kwiatkowski et.al. 2011 (FUBL)
  • Cai &

Yates 2013

slide-64
SLIDE 64

Related Work

Learning From Q/A Pairs:

  • Clarke et.al. 2010
  • Goldwasser et.al. 2011
  • Liang et.al. 2011 (DCS)
  • Berant et.al. 2013

Learning CCG from Labelled Logical Forms:

  • Kwiatkowski et.al. 2011 (FUBL)
  • Cai &

Yates 2013

G G

slide-65
SLIDE 65

Experiments

Freebase 917

50 54 58 62 66 70 Cai & Yates Berant et.al. Our Approach

slide-66
SLIDE 66

Experiments

GeoQuery

70 75 80 85 90 95 100

FUBL DCS DCS with L+ Our Approach

slide-67
SLIDE 67

Example Parses

How many operating systems is Adobe Flash compatible with? λx.eq(x, count(λy.software compatibility .operating system(adobe flash, y)))

slide-68
SLIDE 68

Example Parses

Who is the CEO of Save-A-Lot?

λx.person(x)∧∃y.organization(y, savealot)∧ board member.leader of(x, y) ∧ leadership.role(y, ceo)

slide-69
SLIDE 69

Example Errors

How many children does Jerry Seinfeld have? λx.eq(x, count(λy.person.children(y, jerry seinfeld))) λx.eq(x, count(λy.person.children(jerry seinfeld, y)))

Target: Prediction:

slide-70
SLIDE 70

Example Errors

What programming languages were used for AOL instant messenger?

Target: Prediction:

λx.languages used(aol instant messenger, x) ∧programming language(x) λx.languages used(aol instant messenger, x)

slide-71
SLIDE 71

Future Work

Multiple databases:

Who’s going to play Batman in the next movie? When’s the next flight from Seattle to London? What’s the best restaurant near the Grand Hyatt?

Parser Information Extraction:

Alan Turing was a British mathematician, logician, cryptanalyst, and computer scientist.

nationality(AT, UK) ∧ notable for(AT, mathematian) ∧profession(AT, logic)) ∧ research(AT, cryptanalysm) ∧notable type(AT, compsci)

slide-72
SLIDE 72

Questions

?