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 F.C. from 2004 to june 2010? A Rafael Benitez Q What architectural style is the Brooklyn Bridge? A Gothic Revival architecture Q What are the symptoms of prostate cancer? A {Hematuria, Nocturia, Dysuria, ... } Q How many people ride the monorail in Seattle daily? A 7,000
Open Domain QA Q Who managed Liverpool F.C. from 2004 to june 2010? is a community authored A Rafael Benitez knowledge base with: Q What architectural style is the Brooklyn Bridge? ‣ 40 Million Entities A Gothic Revival architecture ‣ 2 Billion Facts ‣ 20,000 Relations Q What are the symptoms of prostate cancer? ‣ 10,000 Types A {Hematuria, Nocturia, Dysuria, ... } ‣ 100 Domains Q How many people ride the monorail in Seattle daily? A 7,000
Query is Domain Dependent How many people live in Seattle?
Query is Domain Dependent How many people live in Seattle? Person Home Eunsol Seattle Luke Seattle Jane Boston
Query is Domain Dependent How many people live in Seattle? Person Home Eunsol Seattle Luke Seattle Jane Boston City Population Seattle 620778 Boston 636479
Query is Domain Dependent How many people live in Seattle? • Requires different syntax for different domains ➡ Grammars do not generalize well Person Home ➡ Grammars are hard to learn Eunsol Seattle Luke Seattle Jane Boston City Population Seattle 620778 Boston 636479
Query is Domain Dependent How many people live in Seattle? City Population Seattle 450,000 Boston 750,000 How many people have won the Nobel peace prize? Person Award Nelson M. Nobel P.P. Mother T. Nobel P.P. Leymah G. Nobel P.P.
Query is Domain Dependent How many people live in Seattle? City Population Seattle 620778 Boston 636479 How many people have won the Nobel peace prize? Person Award Nelson M. Nobel P.P. Mother T. Nobel P.P. Leymah G. Nobel P.P.
2 Stage Semantic Parsing How many people live in Seattle?
2 Stage Semantic Parsing 1 . Domain independent, linguistically motivated parse. How many people live in Seattle?
2 Stage Semantic Parsing 2 . Domain specific ontology match. How many people live in Seattle? Person Home Eunsol Seattle Luke Seattle Jane Boston
2 Stage Semantic Parsing 2 . Domain specific ontology match. How many people live in Seattle? Person Home Eunsol Seattle Luke Seattle Jane Boston City Population Seattle 620778 Boston 636479
2 Stage Semantic Parsing 2 . Domain specific ontology match. How many people live in Seattle? • All domains use same syntax that generalizes well • Ontology match can be guided by the structure of the underspecified logical form Person Home Eunsol Seattle Luke Seattle Jane Boston City Population Seattle 620778 Boston 636479
Overview • 2 stage semantic parsing ➡ Domain independent parsing ➡ Domain dependent ontology matching • Modeling and Inference • Learning from Question/Answer pairs • Experiments
2 Stage Semantic Parsing 1 . Domain independent, linguistically motivated parse. 2 . Domain specific ontology match. How many people live in Seattle? Person Home Eunsol Seattle Luke Seattle Jane Boston City Population Seattle 620778 Boston 636479
2 Stage Semantic Parsing Domain Independent Parse How many people live in Seattle S/ ( S \ NP ) /N N S \ NP S \ S/NP NP Domain Independent Parse λ 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 ))) Ontology Match λ x.eq ( x, count ( λ y. ∃ ev.people ( y ) ∧ live ( y, ev ) ∧ in ( ev, seattle ))) Structure Match λ x.how many people live in ( seattle, x ) Ontology Match λ x.how many people live in ( seattle , x ) Constant Matches for . λ x. population ( seattle , x )
2 Stage Semantic Parsing Domain Independent Parse 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 ))) Ontology Match λ x.eq ( x, count ( λ y. ∃ ev.people ( y ) ∧ live ( y, ev ) ∧ in ( ev, seattle ))) Structure Match λ x.how many people live in ( seattle, x ) Ontology Match λ x.how many people live in ( seattle , x ) Constant Matches for . λ x. population ( seattle , x )
2 Stage Semantic Parsing Domain Independent Parse 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 ))) Ontology Match λ x.eq ( x, count ( λ y. ∃ ev.people ( y ) ∧ live ( y, ev ) ∧ in ( ev, seattle ))) Structure Match λ x.how many people live in ( seattle, x ) λ x.how many people live in ( seattle , x ) Constant Matches for . λ x. population ( seattle , x )
CCG Parsing CCG Lexicon
CCG Parsing Do not have lexicon for every domain Use Wiktionary for syntactic cues ➡ Parse to underspecified semantics ➡ CCG Lexicon
Domain Independent Parsing 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: Part-of-Speech Syntax Underspecified semantics 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 λ x 9 ev.P ( ev, x ) ^ f ( ev ) ` etc.
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
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 ))) Use Wiktionary to get part-of-speech set for words 25
Domain Independent Parsing 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: Part-of-Speech Syntax Underspecified semantics 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 λ x 9 ev.P ( ev, x ) ^ f ( ev ) ` etc.
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 )))
Recommend
More recommend