joeyginorio / Explanation

Use counterfactuals to build an explanation of events.
2 stars 0 forks source link

a simple account of explanations #1

Open tobiasgerstenberg opened 6 years ago

tobiasgerstenberg commented 6 years ago

here is a simple way to get started:

let's say the only things in our vocabulary are:

some rules:

some applications:

  1. causal chain
    • explanation: "E went through the gate because A collided with B and B collided with E."
    • justification:
    • this is true since if A hadn't collided with B, B would not have moved, and A would not have been there anymore
    • if B hadn't collided with E, then E would not have moved since we remove B, and A is stationary at this time (since it already collided with B)

causal_chain_actual

  1. double prevention
    • explanation: "E went through the gate because B collided with A and A did not collide with E."
    • justification: we mention the negative event here (A not colliding with E) since that event would have made a difference to whether the outcome would have occurred

double_prevention

  1. preemption
    • explanation: "E went through the gate because A collided with E."
    • justification: we don't mention that B did not collide with E since this event would not have made a difference to the outcome

preemption_cause1

  1. causal chain 2
    • explanation: "E went through the gate because A collided with E."
    • justification: we don't mention that B collided with E since that event made no difference to whether or not the outcome happened

causal_chain2

Limitations:

overdetermination

joeyginorio commented 6 years ago

A few questions:

  1. For the causal chain, example 1, the explanation given is: --"E went through the gate because A collided with B and B collided with E."

Do we not want either of these as candidate explanations? --"E went through the gate because A collided with B." --"E went through the gate because B collided with E."

  1. If we only generate one explanation per clip, do we then not worry about scoring?
tobiasgerstenberg commented 6 years ago

Here are some qualitatively different kinds of explanations:

So, good explanations are true and contain only what's necessary for the listener to figure out what happened (no less, and no more). It's these pragmatic principles that we need to consider when scoring explanations.

For informativeness: how much does the explanation help cut down the space of possible things that could have happened. For simplicity: we prefer explanations with fewer cause

joeyginorio commented 6 years ago

So for the qualitatively different explanations, are we going to hand-craft those for each clip? Or should the model have a way to construct/score the whole space of explanations which include the qualitatively different kinds you mentioned?

tobiasgerstenberg commented 6 years ago

It should be fairly easy to generate these:

joeyginorio commented 6 years ago

Ok, so we want the model to construct/score the space of explanations, including the qualitatively different ones. I think what counts as an explanation is now clear.

I'll make updates to the doc, and follow up when questions come up.

tobiasgerstenberg commented 6 years ago

great! just to clarify: explanations are just statements of the sort "Ball E went through the gate because event 1 and event 2 and ... ." good explanations are those that include the right events.

different models differ in how the choose what events to include. for example, a useful baseline comparison model is one that just always states the events that actually happened. this model:

  1. doesn't care about whether the events played a causal role
  2. never mentions events that didn't happen

another model might construe events in the wrong way, e.g. when it records a collision that happened between A and B and A was faster than B, it records that "B collided with A". this will lead the model to generate a different counterfactual (it will simulate a counterfactual in which ball B is removed shortly before the collision with A) from a model that encodes the event as "A collided with B".