Advanced Dynamic Programming in CL:
Theory, Algorithms, and Applications
Liang Huang
University of Pennsylvania
(S, 0, n) w0 w1 ... wn-1
Advanced Dynamic Programming in CL: Theory, Algorithms, and - - PowerPoint PPT Presentation
Advanced Dynamic Programming in CL: Theory, Algorithms, and Applications (S, 0, n) w 0 w 1 ... w n-1 Liang Huang University of Pennsylvania A Little Bit of History... Liang Huang (Penn) Dynamic Programming 2 A Little Bit of History...
University of Pennsylvania
(S, 0, n) w0 w1 ... wn-1
Liang Huang (Penn) Dynamic Programming
2
Liang Huang (Penn) Dynamic Programming
2
Liang Huang (Penn) Dynamic Programming
2
Andrew Viterbi Richard Bellman
Liang Huang (Penn) Dynamic Programming
2
Andrew Viterbi Richard Bellman
Liang Huang (Penn) Dynamic Programming
3
Liang Huang (Penn) Dynamic Programming
4
Liang Huang (Penn) Dynamic Programming
5
Liang Huang (Penn) Dynamic Programming
6
Liang Huang (Penn) Dynamic Programming
7
e1
e2 e3
d(π1) =
w(ei) = w(e1) ⊗ w(e2) ⊗ w(e3) d(t) =
w(πi) = w(p1) ⊕ w(p2) ⊕ · · ·
Liang Huang (Penn) Dynamic Programming
8
A monoid is a triple (A, ⊗, 1) where
A monoid is commutative if ⊗ is commutative.
Liang Huang (Penn) Dynamic Programming
8
A monoid is a triple (A, ⊗, 1) where
A monoid is commutative if ⊗ is commutative.
([0, 1], +, 0) ([0, 1], ×, 1) ([0, 1], max, 0)
Liang Huang (Penn) Dynamic Programming
8
A monoid is a triple (A, ⊗, 1) where
A monoid is commutative if ⊗ is commutative. A semiring is a 5-tuple R = (A, ⊕, ⊗, 0, 1) such that
(a ⊕ b) ⊗ c = (a ⊗ c) ⊕ (b ⊗ c), c ⊗ (a ⊕ b) = (c ⊗ a) ⊕ (c ⊗ b).
([0, 1], +, 0) ([0, 1], ×, 1) ([0, 1], max, 0)
Liang Huang (Penn) Dynamic Programming
8
A monoid is a triple (A, ⊗, 1) where
A monoid is commutative if ⊗ is commutative. A semiring is a 5-tuple R = (A, ⊕, ⊗, 0, 1) such that
(a ⊕ b) ⊗ c = (a ⊗ c) ⊕ (b ⊗ c), c ⊗ (a ⊕ b) = (c ⊗ a) ⊕ (c ⊗ b).
([0, 1], +, 0) ([0, 1], ×, 1) ([0, 1], max, 0) ([0, 1], max, ×, 0, 1) ([0, 1], +, ×, 0, 1)
Liang Huang (Penn) Dynamic Programming
8
A monoid is a triple (A, ⊗, 1) where
A monoid is commutative if ⊗ is commutative. A semiring is a 5-tuple R = (A, ⊕, ⊗, 0, 1) such that
(a ⊕ b) ⊗ c = (a ⊗ c) ⊕ (b ⊗ c), c ⊗ (a ⊕ b) = (c ⊗ a) ⊕ (c ⊗ b).
([0, 1], +, 0) ([0, 1], ×, 1) ([0, 1], max, 0) ([0, 1], max, ×, 0, 1) ([0, 1], +, ×, 0, 1)
Liang Huang (Penn) Dynamic Programming
9
Semiring Set ⊕ ⊗ 1 intuition/application Boolean {0, 1} ∨ ∧ 1 logical deduction, recognition Viterbi [0, 1] max × 1
Inside R+ ∪ {+∞} + × 1
Real R ∪ {+∞} min + +∞ shortest-distance Tropical R+ ∪ {+∞} min + +∞ with non-negative weights Counting N + × 1 number of paths
Liang Huang (Penn) Dynamic Programming
10
Liang Huang (Penn) Dynamic Programming
10
A semiring (A, ⊕, ⊗, 0, 1) is idempotent if for all a in A, a ⊕ a = a.
Liang Huang (Penn) Dynamic Programming
10
A semiring (A, ⊕, ⊗, 0, 1) is idempotent if for all a in A, a ⊕ a = a. (a ≤ b) ⇔ (a ⊕ b = a) defines a partial ordering. ({0, 1}, ∨, ∧, 0, 1) (R+ ∪ {+∞}, min, +, +∞, 0) ([0, 1], max, ⊗, 0, 1) (R ∪ {+∞}, min, +, +∞, 0)
Liang Huang (Penn) Dynamic Programming
10
A semiring (A, ⊕, ⊗, 0, 1) is idempotent if for all a in A, a ⊕ a = a. (a ≤ b) ⇔ (a ⊕ b = a) defines a partial ordering. A semiring is totally-ordered if ⊕ defines a total ordering. ({0, 1}, ∨, ∧, 0, 1) (R+ ∪ {+∞}, min, +, +∞, 0) ([0, 1], max, ⊗, 0, 1) (R ∪ {+∞}, min, +, +∞, 0)
Liang Huang (Penn) Dynamic Programming
11
Liang Huang (Penn) Dynamic Programming
11
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
B: b
C: c
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
B: b
C: c
B: b’ ≤ b
C: c
A: b’ ⊗ c ≤ b ⊗ c
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
B: b
C: c
B: b’ ≤ b
C: c
A: b’ ⊗ c ≤ b ⊗ c
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
B: b
C: c
B: b’ ≤ b
C: c
A: b’ ⊗ c ≤ b ⊗ c
Liang Huang (Penn) Dynamic Programming
11
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is monotonic if for all a, b, c ∈ A (a ≤ b) ⇒ (a ⊗ c ≤ b ⊗ c) (a ≤ b) ⇒ (c ⊗ a ≤ c ⊗ b)
B: b
C: c
B: b’ ≤ b
C: c
A: b’ ⊗ c ≤ b ⊗ c
Liang Huang (Penn) Dynamic Programming
12
w(u, v)
d(v) ⊕ = d(u) ⊗ w(u, v)
d(v) ← d(v) ⊕ (d(u) ⊗ w(u, v))
Liang Huang (Penn) Dynamic Programming
13
Liang Huang (Penn) Dynamic Programming
14
w(u, v)
d(v) ⊕ = d(u) ⊗ w(u, v)
Liang Huang (Penn) Dynamic Programming
15
d(u) ⊕ = d(v) ⊗ w(v, u)
w(v, u)
Liang Huang (Penn) Dynamic Programming
16
Liang Huang (Penn) Dynamic Programming
16
Liang Huang (Penn) Dynamic Programming
16
Liang Huang (Penn) Dynamic Programming
16
Liang Huang (Penn) Dynamic Programming
16
(R ∪ {−∞}, max, +, −∞, 0)
Liang Huang (Penn) Dynamic Programming
16
(R ∪ {−∞}, max, +, −∞, 0)
Liang Huang (Penn) Dynamic Programming
16
(R ∪ {−∞}, max, +, −∞, 0)
Liang Huang (Penn) Dynamic Programming
17
Liang Huang (Penn) Dynamic Programming
18
Liang Huang (Penn) Dynamic Programming
19
Liang Huang (Penn) Dynamic Programming
19
min-zhu
people-dominate
Liang Huang (Penn) Dynamic Programming
19
min-zhu
people-dominate
jiang-ze-min zhu-xi
... - ... - people dominate-podium
Liang Huang (Penn) Dynamic Programming
19
min-zhu
people-dominate
jiang-ze-min zhu-xi
... - ... - people dominate-podium
this was 5 years ago. now Google is good at segmentation!
Liang Huang (Penn) Dynamic Programming
19
min-zhu
people-dominate
jiang-ze-min zhu-xi
... - ... - people dominate-podium
this was 5 years ago. now Google is good at segmentation!
Liang Huang (Penn) Dynamic Programming
19
min-zhu
people-dominate
jiang-ze-min zhu-xi
... - ... - people dominate-podium
this was 5 years ago. now Google is good at segmentation!
Huang and Chiang Forest Rescoring
20
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
Huang and Chiang Forest Rescoring
20
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
_ _ _ _ _
Huang and Chiang Forest Rescoring
20
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
_ _ _ _ _ _ _●
Huang and Chiang Forest Rescoring
20
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
_ _ _ _ _ _ _●
Huang and Chiang Forest Rescoring
21
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
_ _ _ _ _ _ _●
Huang and Chiang Forest Rescoring
21
与 沙龙 举行 了 会谈
with Sharon held a talk talks Sharon held
with
_ _ _ _ _ _ _●
Huang and Chiang Forest Rescoring
22
与 沙龙 举行 了 会谈
_ _●
held a talk with Sharon
_ _ _ _ _
_ _●
source-side: coverage vector target-side: grow hypotheses strictly left-to-right
Huang and Chiang Forest Rescoring
23
(Held and Karp, 1962; Knight, 1999)
Huang and Chiang Forest Rescoring
23
(Held and Karp, 1962; Knight, 1999)
Huang and Chiang Forest Rescoring
24
_ _●
_ _ _ _ _
_ _●
_ _●
Huang and Chiang Forest Rescoring
24
_ _●
_ _ _ _ _
_ _●
_ _●
with Sharon
Huang and Chiang Forest Rescoring
24
_ _●
_ _ _ _ _
_ _●
_ _●
with Sharon
bigram
Huang and Chiang Forest Rescoring
24
_ _●
_ _ _ _ _
_ _●
_ _●
with Sharon
bigram
Liang Huang (Penn) Dynamic Programming
25
Liang Huang (Penn) Dynamic Programming
26
d(u)
d(u) ⊗ w(e) w(e)
Liang Huang (Penn) Dynamic Programming
26
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is superior if for all a, b ∈ A a ≤ a ⊗ b, b ≤ a ⊗ b.
d(u)
d(u) ⊗ w(e) w(e)
Liang Huang (Penn) Dynamic Programming
26
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is superior if for all a, b ∈ A a ≤ a ⊗ b, b ≤ a ⊗ b.
d(u)
d(u) ⊗ w(e) w(e)
Liang Huang (Penn) Dynamic Programming
26
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is superior if for all a, b ∈ A a ≤ a ⊗ b, b ≤ a ⊗ b.
d(u)
d(u) ⊗ w(e) w(e)
({0, 1}, ∨, ∧, 0, 1) ([0, 1], max, ×, 0, 1) (R+ ∪ {+∞}, min, +, +∞, 0) (R ∪ {+∞}, min, +, +∞, 0)
Liang Huang (Penn) Dynamic Programming
26
Let K = (A, ⊕, ⊗, 0, 1) be a semiring, and ≤ a partial ordering over A. We say K is superior if for all a, b ∈ A a ≤ a ⊗ b, b ≤ a ⊗ b.
d(u)
d(u) ⊗ w(e) w(e)
({0, 1}, ∨, ∧, 0, 1) ([0, 1], max, ×, 0, 1) (R+ ∪ {+∞}, min, +, +∞, 0) (R ∪ {+∞}, min, +, +∞, 0)
Liang Huang (Penn) Dynamic Programming
27
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
27
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
27
u
w(v, u)
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
28
Liang Huang (Penn) Dynamic Programming
28
Liang Huang (Penn) Dynamic Programming
28
Liang Huang (Penn) Dynamic Programming
28
many NLP problems
Liang Huang (Penn) Dynamic Programming
28
many NLP problems
forward-backward (Inside semiring)
Liang Huang (Penn) Dynamic Programming
28
many NLP problems
forward-backward (Inside semiring) non-probabilistic models
Liang Huang (Penn) Dynamic Programming
28
many NLP problems
forward-backward (Inside semiring) non-probabilistic models cyclic FSMs/ grammars
Liang Huang (Penn) Dynamic Programming
29
many NLP problems
(CLR, 1990; Mohri, 2002)
Liang Huang (Penn) Dynamic Programming
30
many NLP problems
Liang Huang (Penn) Dynamic Programming
31
s v u t
Liang Huang (Penn) Dynamic Programming
31
s v u t
Liang Huang (Penn) Dynamic Programming
31
s v u t
Liang Huang (Penn) Dynamic Programming
32
s v t
ĥ(v)
Liang Huang (Penn) Dynamic Programming
33 (Raphael, 2001)
Liang Huang (Penn) Dynamic Programming
33
U V U V
(Raphael, 2001)
Liang Huang (Penn) Dynamic Programming
34
Dijkstra d(v) pool d(t) A* d(v) ⊗ ĥ(v) pool d(t)
1 V
Liang Huang (Penn) Dynamic Programming
34
Dijkstra d(v) pool d(t) A* d(v) ⊗ ĥ(v) pool d(t)
1 V
Liang Huang (Penn) Dynamic Programming
35
Liang Huang (Penn) Dynamic Programming
35
Liang Huang (Penn) Dynamic Programming
36
(S, 0, n) w0 w1 ... wn-1
Liang Huang (Penn) Dynamic Programming
36
(S, 0, n) w0 w1 ... wn-1
Liang Huang (Penn) Dynamic Programming
37
(S, 0, n) w0 w1 ... wn-1
Liang Huang (Penn) Dynamic Programming
37
(S, 0, n) w0 w1 ... wn-1
Liang Huang (Penn) Dynamic Programming
38
u1 u2
simple case: fe(a, b) = a ⊗ b ⊗ w(e)
Xi,k
Liang Huang (Penn) Dynamic Programming
39
u1 u2
A→B C
Liang Huang (Penn) Dynamic Programming
39
u1 u2
A→B C
u1 u2
head
u1 u2
antecedents
consequent
Liang Huang (Penn) Dynamic Programming
40
u1 u2
e
u1 u2
e
AND-node OR-node OR-nodes
Liang Huang (Penn) Dynamic Programming
41
(Klein and Manning, 2001; Huang and Chiang, 2005)
0 I 1 saw 2 him 3 with 4 a 5 mirror 6
Liang Huang (Penn) Dynamic Programming
41
(Klein and Manning, 2001; Huang and Chiang, 2005)
0 I 1 saw 2 him 3 with 4 a 5 mirror 6
a hypergraph
Liang Huang (Penn) Dynamic Programming
42
u1 u2
uk
Liang Huang (Penn) Dynamic Programming
42
u1 u2
uk
Liang Huang (Penn) Dynamic Programming
42
u1 u2
uk
Liang Huang (Penn) Dynamic Programming
42
u1 u2
uk
Liang Huang (Penn) Dynamic Programming
42
u1 u2
uk
Liang Huang (Penn) Dynamic Programming
43
Liang Huang (Penn) Dynamic Programming
44
Liang Huang (Penn) Dynamic Programming
45
w(u, v)
d(v) ⊕ = d(u) ⊗ w(u, v)
Liang Huang (Penn) Dynamic Programming
46
u1 u2
d(v) ⊕ = fe(d(u1), · · · , d(u|e|))
Liang Huang (Penn) Dynamic Programming
47
(S, 0, n) (S, 0, n)
Liang Huang (Penn) Dynamic Programming
47
(S, 0, n) (S, 0, n)
Liang Huang (Penn) Dynamic Programming
47
(S, 0, n) (S, 0, n)
Liang Huang (Penn) Dynamic Programming
48
(S, 0, n) (S, 0, n) (S, 0, n)
Liang Huang (Penn) Dynamic Programming
48
(S, 0, n) (S, 0, n) (S, 0, n)
Liang Huang (Penn) Dynamic Programming
49
VP PP yu Shalong VP juxing le huitan VP VP held a meeting PP with Sharon
VP → PP(1) VP(2), VP(2) PP(1) VP → juxing le huitan, held a meeting PP → yu Shalong, with Sharon
Liang Huang (Penn) Dynamic Programming
50
PP1, 3 VP3, 6 VP1, 6
yu Shalong juxing le huitan
VP → PP(1) VP(2), VP(2) PP(1) VP → juxing le huitan, held a meeting PP → yu Shalong, with Sharon
Liang Huang (Penn) Dynamic Programming
50
PP1, 3 VP3, 6 VP1, 6
yu Shalong juxing le huitan
VP → PP(1) VP(2), VP(2) PP(1) VP → juxing le huitan, held a meeting PP → yu Shalong, with Sharon
Liang Huang (Penn) Dynamic Programming
50
PP1, 3 VP3, 6 VP1, 6
yu Shalong juxing le huitan
with Sharon held a talk held a talk with Sharon
VP → PP(1) VP(2), VP(2) PP(1) VP → juxing le huitan, held a meeting PP → yu Shalong, with Sharon
Liang Huang (Penn) Dynamic Programming
50
PP1, 3 VP3, 6 VP1, 6
yu Shalong juxing le huitan
with Sharon held a talk held a talk with Sharon
VP → PP(1) VP(2), VP(2) PP(1) VP → juxing le huitan, held a meeting PP → yu Shalong, with Sharon
complexity: same as CKY parsing -- O(n3)
Liang Huang (Penn) Dynamic Programming
51
PP1, 3 VP3, 6 VP1, 6
_ _●
_ _ _ _ _
_ _●
_ _●
with ... Sharon along ... Sharon with ... Shalong held ... talk held ... meeting hold ... talks
with Sharon
bigram
held ... talk
VP3, 6
with ... Sharon
PP1, 3
bigram
Liang Huang (Penn) Dynamic Programming
51
PP1, 3 VP3, 6 VP1, 6
_ _●
_ _ _ _ _
_ _●
_ _●
with ... Sharon along ... Sharon with ... Shalong held ... talk held ... meeting hold ... talks
with Sharon
bigram
held ... talk
VP3, 6
with ... Sharon
PP1, 3
bigram
held ... Sharon
VP1, 6
Liang Huang (Penn) Dynamic Programming
51
PP1, 3 VP3, 6 VP1, 6
_ _●
_ _ _ _ _
_ _●
_ _●
with ... Sharon along ... Sharon with ... Shalong held ... talk held ... meeting hold ... talks
with Sharon
bigram complexity: O(n3 V4(m-1) )
held ... talk
VP3, 6
with ... Sharon
PP1, 3
bigram
held ... Sharon
VP1, 6
Liang Huang (Penn) Dynamic Programming
52
Liang Huang (Penn) Dynamic Programming
53
u1 u2
d(v) ⊕ = fe(d(u1), · · · , d(u|e|))
Liang Huang (Penn) Dynamic Programming
54
h(e) u1
v
u2 =
h(e)
Liang Huang (Penn) Dynamic Programming
54
h(e) u1
v
u2 =
h(e)
Liang Huang (Penn) Dynamic Programming
54
h(e) u1
v
u2 = Q: how to avoid repeated checking? maintain a counter r[e] for each e: how many tails yet to be fixed? fire this hyperedge only if r[e]=0
h(e)
Liang Huang (Penn) Dynamic Programming
55
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
55
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
55
u
w(v, u)
s
d(u) ⊕ = d(v) ⊗ w(v, u) time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
Liang Huang (Penn) Dynamic Programming
56
s
time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
u1
Liang Huang (Penn) Dynamic Programming
56
s
time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
u1
v
Liang Huang (Penn) Dynamic Programming
56
s
time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
u1
v
h(e)
Liang Huang (Penn) Dynamic Programming
56
s
time complexity: O((V+E) lgV) (binary heap) O(V lgV + E) (fib. heap)
u1
v
h(e)
Liang Huang (Penn) Dynamic Programming
57
Liang Huang (Penn) Dynamic Programming
57
Liang Huang (Penn) Dynamic Programming
58
e
... ...
v v’
u
d(v)
s
v
t
d(v) h(v)
S0,n
d(v)
Liang Huang (Penn) Dynamic Programming
58
e
... ...
v v’
u
d(v)
s
v
t
d(v) h(v)
S0,n
d(v)
Liang Huang (Penn) Dynamic Programming
59
(Klein and Manning, 2003)
Liang Huang (Penn) Dynamic Programming
59
(Klein and Manning, 2003)
Liang Huang (Penn) Dynamic Programming
60
(Klein and Manning, 2003)
Liang Huang (Penn) Dynamic Programming
61
(Klein and Manning, 2003)
Liang Huang (Penn) Dynamic Programming
61
(Klein and Manning, 2003)
Liang Huang (Penn) Dynamic Programming
61
(Klein and Manning, 2003)
ĥ (VBD2,3) = h’ (V2,3)
Liang Huang (Penn) Dynamic Programming
62
Liang Huang (Penn) Dynamic Programming
62
Liang Huang (Penn) Dynamic Programming
63
Liang Huang (Penn) Dynamic Programming
63
Liang Huang (Penn) Dynamic Programming
63
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
PCFG parsing with CNF
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
Inside-Outside Alg. (Inside semiring) PCFG parsing with CNF
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
Inside-Outside Alg. (Inside semiring) non-prob. (discriminative) parsing PCFG parsing with CNF
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
Inside-Outside Alg. (Inside semiring) non-prob. (discriminative) parsing cyclic grammars PCFG parsing with CNF
Liang Huang (Penn) Dynamic Programming
64
many NLP problems
Inside-Outside Alg. (Inside semiring) non-prob. (discriminative) parsing cyclic grammars PCFG parsing with CNF generalized generalized Bellman-Ford (open)
Liang Huang (Penn) Dynamic Programming
65
66
(S, 0, n) w0 w1 ... wn-1
Questions? Comments?