The basic claim is that through (weighted) abduction, one can explain a whole host of complex linguistic phenomena:
- Reference resolution ("John_1 saw himself_1 in the mirror" -- where "John" and "himself" co-refer)
- Interpretation of compound nominals ("computer science" versus "cs department")
- Syntactic ambiguity (eg., PP attachment)
- Metonymy ("The White House announced that..." really means that someone in the White House announced something)
- Etc....
Abduction is the type of inference we try to do in science. We observe something, and we try to posit what caused this to happen. For instance, we may observe that apples fall from trees. We can posit this is due to gravity. Or we can posit that this is due to little elves that hang out in apples and little pots of gold in the earth and the elves are trying to get to the pots of gold. One of these is a more plausible explanation than the other, since it requires us to invent fewer things. (Though as far as I know, no one really knows how gravity works... so maybe it's a bad example... maybe it is elves/gold.) This is often referred to as Occam's Razor: of all explanations, choose the "simplest."
The key idea to use abduction to do sentence interpretation is:
- Prove the logical form of the sentence
- together with the constraints that predicates impose on their arguments (eg., the subject of "run" must be animate)
- allowing for coercions (eg., we might coerce someone who works at the White House into the White House)
- Merging redundancies where possible
- Making assumptions where necessary
In weighted abduction, we assume that there is a cost for coercions and making assumptions, and that we want to find the set of things we can assume that have the least possible cost.
The idea is that our database might contain entries like:
- If P and Q then R
- If P / w1 and Q / w2 then R
If we have redundancy... eg., something like "blah blah q(x) and q(y) blah blah" and at some point we derive x=y, then we can merge this to just "blah blah q(x) blah blah" and the cost of q(x) is the minimum of the costs of q(x) and q(y).
For example, we might have:
- (forall x) car(x) / 0.8 AND notop(x) / 0.4 IMPLIES convertible(x)
One kind of cool outcome of this is that you can make "reverse" inferences fairly easily. For instance, maybe I want to be able to assume that sometimes when people talk about animals, they're actually talking about cats. But they're being vague. I can just add a rule:
- (forall x) animal(x) AND etc(x) IMPLIES cat(x)
It turns out (see section 6 in the paper) that you can actually handle all of syntax, semantics and pragmatics in this single framework!
No comments:
Post a Comment