knowledge compilation
play

Knowledge Compilation Guy Van den Broeck Beyond NP Workshop Feb - PowerPoint PPT Presentation

On First-Order Knowledge Compilation Guy Van den Broeck Beyond NP Workshop Feb 12, 2016 Overview 1. Why first-order model counting? 2. Why first-order model counters? 3. What first-order circuit languages? 4. How first-order knowledge


  1. What's Going On Here? ... ? Probability that Card52 is Spades 13/51 given that Card1 is QH? [Van den Broeck 2015]

  2. What's Going On Here? ... ? Probability that Card52 is Spades given that Card2 is QH? [Van den Broeck 2015]

  3. What's Going On Here? ... ? Probability that Card52 is Spades 13/51 given that Card2 is QH? [Van den Broeck 2015]

  4. What's Going On Here? ... ? Probability that Card52 is Spades given that Card3 is QH? [Van den Broeck 2015]

  5. What's Going On Here? ... ? Probability that Card52 is Spades 13/51 given that Card3 is QH? [Van den Broeck 2015]

  6. Tractable Reasoning ... What's going on here? Which property makes reasoning tractable? [Niepert 2014, Van den Broeck 2015]

  7. Tractable Reasoning ... What's going on here? Which property makes reasoning tractable?  High-level (first-order) reasoning  Symmetry ⇒ Lifted Inference  Exchangeability [Niepert 2014, Van den Broeck 2015]

  8. What are first-order circuit languages ?

  9. Negation Normal Form [Darwiche 2002]

  10. Decomposable NNF Decomposable [Darwiche 2002]

  11. Deterministic Decomposable NNF Deterministic [Darwiche 2002]

  12. Deterministic Decomposable NNF Weighted Model Counting [Darwiche 2002]

  13. Deterministic Decomposable NNF Weighted Model Counting and much more! [Darwiche 2002]

  14. First-Order NNF [Van den Broeck 2013]

  15. First-Order Decomposability Decomposable [Van den Broeck 2013]

  16. First-Order Decomposability Decomposable [Van den Broeck 2013]

  17. First-Order Determinism Deterministic [Van den Broeck 2013]

  18. Deterministic Decomposable FO NNF Weighted Model Counting [Van den Broeck 2013]

  19. Deterministic Decomposable FO NNF Weighted Model Counting Pr(belgian) x Pr(likes) + Pr(¬belgian) [Van den Broeck 2013]

  20. Deterministic Decomposable FO NNF Weighted Model Counting |People| ( ) Pr(belgian) x Pr(likes) + Pr(¬belgian) [Van den Broeck 2013]

  21. How to do first-order knowledge compilation ?

  22. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2013]

  23. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2013]

  24. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2013]

  25. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2013]

  26. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) Deterministic [Van den Broeck 2013]

  27. Deterministic Decomposable FO NNF Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2013]

  28. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y)) [Van den Broeck 2015]

  29. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  30. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  31. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  32. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  33. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  34. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  35. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  36. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  37. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k [Van den Broeck 2015]

  38. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k → models [Van den Broeck 2015]

  39. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k → models  If we know that there are k smokers? [Van den Broeck 2015]

  40. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k → models  If we know that there are k smokers? → models [Van den Broeck 2015]

  41. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k → models  If we know that there are k smokers? → models  In total… [Van den Broeck 2015]

  42. First-Order Model Counting: Example Δ = ∀ x ,y ∈ People , (Smokes(x) ∧ Friends(x,y) ⇒ Smokes(y))  If we know D precisely: who smokes, and there are k smokers? Database: Smokes Friends Smokes Smokes(Alice) = 1 Smokes(Bob) = 0 Smokes(Charlie) = 0 k k Smokes(Dave) = 1 Smokes(Eve) = 0 ... n-k n-k → models  If we know that there are k smokers? → models → models  In total… [Van den Broeck 2015]

  43. Compilation Rules • Standard rules – Shannon decomposition (DPLL) – Detect decomposability – Etc. • FO Shannon decomposition: Δ [Van den Broeck 2013]

  44. Playing Cards Revisited Let us automate this: ... ∀ p, ∃ c, Card(p,c) ∀ c, ∃ p, Card(p,c) ∀ p, ∀ c, ∀ c’, Card( p,c) ∧ Card(p,c ’) ⇒ c = c’ [Van den Broeck 2015]

  45. Playing Cards Revisited Let us automate this: ... ∀ p, ∃ c, Card(p,c) ∀ c, ∃ p, Card(p,c) ∀ p, ∀ c, ∀ c’, Card( p,c) ∧ Card(p,c ’) ⇒ c = c’ [Van den Broeck 2015]

  46. Playing Cards Revisited Let us automate this: ... ∀ p, ∃ c, Card(p,c) ∀ c, ∃ p, Card(p,c) ∀ p, ∀ c, ∀ c’, Card( p,c) ∧ Card(p,c ’) ⇒ c = c’ Computed in time polynomial in n [Van den Broeck 2015]

  47. Perspectives…

  48. What I did not talk about… in KC • Other queries and transformations (see Dan Olteanu poster) • Other KC languages (FO-AODD) • KC for logic programs (see Vlasselaer poster) [Gogate 2010, Vlasselaer 2015]

Recommend


More recommend