structured prediction with perceptrons and crfsjason/465/pdfslides/lect34-crf.pdf · 4 n 8 1 s np...

129
600.465 - Intro to NLP - J. Eisner 1 Structured Prediction with Perceptrons and CRFs Time flies like an arrow N PP NP V P D N VP S Time flies like an arrow N VP NP N V D N S NP Time flies like an arrow V PP NP N P D N VP VP S Time flies like an arrow V NP V V D N V V S S ?

Upload: others

Post on 13-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 1

Structured Prediction withPerceptrons and CRFs

Time flies like an arrowN

PPNP

V P D N

VPS

Time flies like an arrowN

VPNP

N V D N

S

NP

Time flies like an arrowV

PPNP

N P D N

VP

VP

S

Time flies like an arrowV

NPV V D N

VV

SS

…?

Page 2: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 2

Structured Prediction withPerceptrons and CRFs

But now, modelstructures!

Back to conditionallog-linear modeling …

Page 3: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 3

p(fill | shape)

Page 4: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 4

p(fill | shape)

Page 5: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Reply today to claim your … Reply today to claim your …goodmail spam

Wanna get pizza tonight? Wanna get pizza tonight?goodmail spam

Thx; consider enlarging the … Thx; consider enlarging the …goodmail spam

Enlarge your hidden … Enlarge your hidden …goodmail spam

p(category | message)

Page 6: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 6

…S

S

NP VP NP[+wh] V S/V/NP

VP NP PP P

S

S

N VP

Det N

S

S

p(RHS | LHS)

Page 7: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 7…

…S

S

NP VP NP[+wh] V S/V/NP

VP NP PP P

S

S

N VP

Det N

S

S

…NP

NP

NP VP NP CP/NP

VP NP NP PP

NP

NP

N VP

Det N

NP

NP

p(RHS | LHS)

Page 8: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 8

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

p(parse | sentence)

Page 9: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 9

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

p(tag sequence | word sequence)

Page 10: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Structured prediction

Today’s general problem

Given some input x Occasionally empty, e.g., no input needed for a generative n-

gram or model of strings (randsent)

Consider a set of candidate outputs y Classifications for x (small number: often just 2) Taggings of x (exponentially many) Parses of x (exponential, even infinite) Translations of x (exponential, even infinite) …

Want to find the “best” y, given x600.465 - Intro to NLP - J. Eisner 10

Page 11: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

11

Remember Weighted CKY …(find the minimum-weight parse)

time 1 flies 2 like 3 an 4 arrow 50 NP 3

Vst 3NP 10S 8

NP 24S 22

1NP 4VP 4

NP 18S 21VP 18

2P 2V 5

PP 12VP 16

3 Det 1 NP 104 N 8

1 S NP VP6 S Vst NP2 S S PP1 VP V NP2 VP VP PP1 NP Det N2 NP NP PP3 NP NP NP0 PP P NP

Page 12: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

12

So far, we used weighted CKY only toimplement probabilistic CKY for PCFGs

time 1 flies 2 like 3 an 4 arrow 50 NP 3

Vst 3NP 10S 8

NP 24S 22

1NP 4VP 4

NP 18S 21VP 18

2P 2V 5

PP 12VP 16

3 Det 1 NP 104 N 8

1 S NP VP6 S Vst NP2 S S PP1 VP V NP2 VP VP PP1 NP Det N2 NP NP PP3 NP NP NP0 PP P NP

2-8

2-12

2-2

multiply to get 2-22

But is weighted CKY good for anything else??

Page 13: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

13

We set the weights to log probsS

NPtime

VP

VPflies

PP

Plike

NP

Detan

Narrow

w( | S) = w(S NP VP) + w(NP time)

+ w(VP VP NP)

+ w(VP flies) + …

Just let w(X Y Z) = -log p(X Y Z | X)Then lightest tree has highest prob

But is weighted CKY good for anything else??Do the weights have to be probabilities?

Page 14: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 14

Probability is Useful We love probability distributions! We’ve learned how to define & use p(…) functions.

Pick best output text T from a set of candidates speech recognition (HW2); machine translation; OCR; spell correction... maximize p1(T) for some appropriate distribution p1

Pick best annotation T for a fixed input I text categorization; parsing; part-of-speech tagging … maximize p(T | I); equivalently maximize joint probability p(I,T) often define p(I,T) by noisy channel: p(I,T) = p(T) * p(I | T)

speech recognition & other tasks above are cases of this too: we’re maximizing an appropriate p1(T) defined by p(T | I)

Pick best probability distribution (a meta-problem!) really, pick best parameters : train HMM, PCFG, n-grams, clusters … maximum likelihood; smoothing; EM if unsupervised (incomplete data) Bayesian smoothing: max p(|data) = max p(, data) =p()p(data|)

summary of half of the course (statistics)

Page 15: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 15

Probability is Flexible

We love probability distributions! We’ve learned how to define & use p(…) functions.

We want p(…) to define probability of linguistic objects Trees of (non)terminals (PCFGs; CKY, Earley, pruning, inside-outside) Sequences of words, tags, morphemes, phonemes (n-grams, FSAs,

FSTs; regex compilation, best-paths, forward-backward, collocations) Vectors (decis.lists, Gaussians, naïve Bayes; Yarowsky, clustering/k-NN)

We’ve also seen some not-so-probabilistic stuff Syntactic features, semantics, morph., Gold. Could be stochasticized? Methods can be quantitative & data-driven but not fully probabilistic:

transf.-based learning, bottom-up clustering, LSA, competitive linking But probabilities have wormed their way into most things p(…) has to capture our intuitions about the ling. data

summary of other half of the course (linguistics)

Page 16: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 16

An Alternative Tradition

Old AI hacking technique: Possible parses (or whatever) have scores. Pick the one with the best score. How do you define the score? Completely ad hoc! Throw anything you want into the stew Add a bonus for this, a penalty for that, etc.

Page 17: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Given some input x Consider a set of candidate outputs y Define a scoring function score(x,y)

Linear function: A sum of feature weights (you pick the features!)

Choose y that maximizes score(x,y)

Scoring by Linear Models

600.465 - Intro to NLP - J. Eisner 17

Ranges over all features,e.g., k=5 (numbered features)

or k=“see Det Noun” (named features)

Whether (x,y) has feature k(0 or 1)Or how many times it fires ( 0)Or how strongly it fires (real #)

Weight of feature k(learned or set by hand)

Page 18: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Given some input x Consider a set of candidate outputs y Define a scoring function score(x,y)

Linear function: A sum of feature weights (you pick the features!)

Choose y that maximizes score(x,y)

Scoring by Linear Models

600.465 - Intro to NLP - J. Eisner 18

(learned or set by hand)

This linear decision rule is sometimes called a “perceptron.”It’s a “structured perceptron” if it does structured prediction

(number of y candidates is unbounded, e.g., grows with |x|).

Page 19: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Linear regression predicts a real number y:

Binary classification:

Predict “spam” if θ ∙ f(x) > 0 Our multi-class classification uses f(x,y), not f(x):

Predict y that maximizes score(x,y) If only 2 possible values of y, equivalent to binary case

Related older ideas

600.465 - Intro to NLP - J. Eisner 19

Page 20: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 20

An Alternative Tradition Old AI hacking technique: Possible parses (or whatever) have scores. Pick the one with the best score. How do you define the score? Completely ad hoc! Throw anything you want into the stew Add a bonus for this, a penalty for that, etc.

“Learns” over time – as you adjust bonuses andpenalties by hand to improve performance. Total kludge, but totally flexible too … Can throw in any intuitions you might have

Could we make it learn automatically?

Page 21: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Perceptron Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y) Model predicts y that maximizes score(x,y) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – f(x,y))

If model prediction was correct (y=y), θ doesn’t change.So once model predicts all training examples correctly, stop.If some θ can do the job, this eventually happens!

(If not, θ will oscillate, but the average θ from all stepswill settle down. So return that eventual average.)

Page 22: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Perceptron Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y) Model predicts y that maximizes score(x,y) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – f(x,y))

If model prediction was wrong (y≠y), then we must havescore(x,y) ≤ score(x,y) instead of > as we want.

Equivalently, θ·f(x,y) ≤ θ·f(x,y) but we want it >Equivalently, θ·(f(x,y) - f(x,y)) = θ· ≤ 0 but we want it > 0.So update increases θ·, to (θ+ε∙)· = θ· + ε∙||||2

call this

≥ 0

Page 23: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 23

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

p(parse | sentence) score(sentence, parse)

Page 24: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

At both training & test time, given input x,perceptron picks y that maximizes score(x,y)

How do we compute that crucial prediction?? Easy when only a few candidates y (text classification, WSD, …) Just try each y in turn.

Harder for structured prediction: but you now know how! Find the best string, path, or tree … That’s what Viterbi-style or Dijkstra-style algorithms are for. That is, use dynamic programming to find the score of the best y. Then follow backpointers to recover the y that achieves that score.

Finding the best y given x

600.465 - Intro to NLP - J. Eisner 24

Page 25: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 25

An Alternative Tradition Old AI hacking technique: Possible parses (or whatever) have scores. Pick the one with the best score. How do you define the score? Completely ad hoc! Throw anything you want into the stew Add a bonus for this, a penalty for that, etc.

“Learns” over time – as you adjust bonuses andpenalties by hand to improve performance. Total kludge, but totally flexible too … Can throw in any intuitions you might have

Exposé at 9

Probabilistic RevolutionNot Really a Revolution,

Critics SayLog-probabilities no more

than scores in disguise

“We’re just adding stuff up likethe old corrupt regime did,”

admits spokesperson

really so alternative?

Page 26: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 26

Nuthin’ but adding weights

n-grams: … + log p(w7 | w5, w6) + log p(w8 | w6, w7) + …

PCFG: log p(NP VP | S) + log p(Papa | NP) + log p(VP PP | VP) …

HMM tagging: … + log p(t7 | t5, t6) + log p(w7 | t7) + …

Noisy channel: [log p(source)] + [log p(data | source)] Cascade of composed FSTs:

[log p(A)] + [log p(B | A)] + [log p(C | B)] + …

Naïve Bayes:log p(Class) + log p(feature1 | Class) + log p(feature2 | Class) …

Note: Here we’re using +logprob not –logprob:i.e., bigger weights are better.

Page 27: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 27

Nuthin’ but adding weights

n-grams: … + log p(w7 | w5, w6) + log p(w8 | w6, w7) + …

PCFG: log p(NP VP | S) + log p(Papa | NP) + log p(VP PP | VP) … Score of a parse is its total weight The weights we add up have always been log-probs ( 0) but what if we changed that?

HMM tagging: … + log p(t7 | t5, t6) + log p(w7 | t7) + …

Noisy channel: [log p(source)] + [log p(data | source)] Cascade of FSTs:

[log p(A)] + [log p(B | A)] + [log p(C | B)] + …

Naïve Bayes:log(Class) + log(feature1 | Class) + log(feature2 | Class) + …

Page 28: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Change log p(this | that) to (this ; that)

600.465 - Intro to NLP - J. Eisner 28

What if our weights were arbitrary real numbers?

n-grams: … + log p(w7 | w5, w6) + log p(w8 | w6, w7) + …

PCFG: log p(NP VP | S) + log p(Papa | NP) + log p(VP PP | VP) …

HMM tagging: … + log p(t7 | t5, t6) + log p(w7 | t7) + …

Noisy channel: [log p(source)] + [log p(data | source)] Cascade of FSTs:

[log p(A)] + [log p(B | A)] + [log p(C | B)] + …

Naïve Bayes:log p(Class) + log p(feature1 | Class) + log p(feature2 | Class) …

Page 29: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Change log p(this | that) to (this ; that)

600.465 - Intro to NLP - J. Eisner 29

What if our weights were arbitrary real numbers?

n-grams: … + (w7 ; w5, w6) + (w8 ; w6, w7) + …

PCFG: (NP VP ; S) + (Papa ; NP) + (VP PP ; VP) …

HMM tagging: … + (t7 ; t5, t6) + (w7 ; t7) + …

Noisy channel: [ (source)] + [ (data ; source)] Cascade of FSTs:

[ (A)] + [ (B ; A)] + [ (C ; B)] + …

Naïve Bayes:(Class) + (feature1 ; Class) + (feature2 ; Class) …

In practice, is a hash tableMaps from feature name (a string or object) to feature weight (a float)e.g., (NP VP ; S) = weight of the S NP VP rule, say -0.1 or +1.3

Page 30: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Change log p(this | that) to (this ; that) (that & this) [prettiername]

600.465 - Intro to NLP - J. Eisner 30

What if our weights were arbitrary real numbers?

n-grams: … + (w5 w6 w7) + (w6 w7 w8) + …

PCFG: (S NP VP) + (NP Papa) + (VP VP PP) …

HMM tagging: … + (t5 t6 t7) + (t7 w7) + …

Noisy channel: [ (source)] + [ (source, data)] Cascade of FSTs:

[ (A)] + [ (A, B) ] + [ (B, C)] + …

Naïve Bayes:(Class) + (Class, feature 1) + (Class, feature2) …

WCFG

(multi-class) logistic regression

In practice, is a hash tableMaps from feature name (a string or object) to feature weight (a float)e.g., (S NP VP) = weight of the S NP VP rule, say -0.1 or +1.3

Page 31: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 31

What if our weights were arbitrary real numbers?

n-grams: … + (w5 w6 w7) + (w6 w7 w8) + … Best string is the one whose trigrams have the highest total weight

PCFG: (S NP VP) + (NP Papa) + (VP VP PP) … Best parse is one whose rules have highest total weight

HMM tagging: … + (t5 t6 t7) + (t7 w7) + … Best tagging has highest total weight of all transitions and emissions

Noisy channel: [ (source)] + [ (source, data)] To guess source: max (weight of source + weight of source-data match)

Naïve Bayes: (Class) + (Class, feature 1) + (Class, feature 2) … Best class maximizes prior weight + weight of compatibility with features

WCFG

(multi-class) logistic regression

Change log p(this | that) to (that & this)

Page 32: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Change log p(this | that) to (that & this)

600.465 - Intro to NLP - J. Eisner 32

What if our weights were arbitrary real numbers?

n-grams: … + (w5 w6 w7) + (w6 w7 w8) + … Best string is the one whose trigrams have the highest total weight

PCFG: (S NP VP) + (NP Papa) + (VP VP PP) … Best parse is one whose rules have highest total weight (use CKY/Earley)

HMM tagging: … + (t5 t6 t7) + (t7 w7) + … Best tagging has highest total weight of all transitions and emissions

Noisy channel: [ (source)] + [ (source, data)] To guess source: max (weight of source + weight of source-data match)

Naïve Bayes: (Class) + (Class, feature 1) + (Class, feature 2) … Best class maximizes prior weight + weight of compatibility with features

WCFG

(multi-class) logistic regression

All our algorithms still work!We’ll just add up arbitrary

feature weights θ that might not belog conditional probabilities

(they might even be positive!)

Total score(x,y) can’t be interpretedanymore as log p(x,y)

But we can still find the highest-scoring y(using a Viterbi algorithm)

Page 33: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

time 1 flies 2 like 3 an 4 arrow 5

0

NP 3Vst 3

NP 10S 8S 13

NP 24S 22S 27NP 24S 27S 22S 27

1NP 4VP 4

NP 18S 21VP 18

2P 2

V 5

PP 12VP 16

3 Det 1 NP 104 N 8

1 S NP VP6 S Vst NP2 S S PP1 VP V NP2 VP VP PP1 NP Det N2 NP NP PP3 NP NP NP0 PP P NP

Given sentence xYou know how to find max-score parse y (or min-cost parse as shown)

• Provided that the score of a parse = total score of its rules

Time flies like an arrowN

PPNP

V P D N

VPS

Page 34: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Given word sequence xYou know how to find max-score tag sequence y

• Provided that the score of a tagged sentence= total score of its emissions and transitions

• These don’t have to be log-probabilities!• Emission scores assess tag-word compatibility• Transition scores assess goodness of tag bigrams

Bill directed a cortege of autos through the dunes

…?PrepAdj

Verb Verb Noun VerbPN Adj Det Noun Prep Noun Prep Det Noun

Page 35: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Given upper string xYou know how to find max-score path that accepts x (or min-cost path)

• Provided that the score of a path = total score of its arcs

• Then the best lower string y is the one along that best path• (So in effect, score(x,y) is score of best path that transduces x to y)

• Q: How do you make sure that the path accepts x, such as aaaaaba?• A: Compose with straight-line automaton for x, then find best path.

Page 36: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Running Example: Predict a Tagging

Given word sequence xFind max-score tag sequence y

score( ) = ?

So what are the features?Let’s start with the usual emission and

transition features …

Time fliesN VBOS EOS

Page 37: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Running Example: Predict a Tagging

Given word sequence xFind max-score tag sequence y

score( ) = ∑k θk fk(x,y)

= θBOS,N + θN,Time + θN,V + θV,flies + θV,EOS

So what are the features?Let’s start with the usual emission and

transition features …

Time fliesN VBOS EOS

Page 38: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Running Example: Predict a Tagging

Given word sequence xFind max-score tag sequence y

score( ) = ∑k θk fk(x,y)

= θBOS,N + θN,Time + θN,V + θV,flies + θV,EOS

For each t Tags, w Words:define ft,w(x,y) = count of emission t w

= | {i: 1 ≤ i ≤ |x|, yi = t, xi = w} |For each t, t’ Tags:

define ft,t’(x,y) = count of transition t t’= | {i: 0 ≤ i ≤ |x|, yi = t, yi+1 = t’} |

Time fliesN VBOS EOS

|Tags| |Words|emissionfeatures

define |Tags|2

transitionfeatures

score includes fN,V(x,y) copies of this feature weight = one copy per N V token

Page 39: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Viterbi algorithm can find the highest-scoring tagging

BOS

A

N

V

EOS

A

N

V

A

N

V

A

N

V

A

N

V

Page 40: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Viterbi algorithm can find the highest-scoring tagging

BOS

A

N

V

EOS

A

N

V

Page 41: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Viterbi algorithm can find the highest-scoring taggingSet arc weights so that path weight = tagging score

A

N

V

EOS

A

N

VTime

N

θBOS,N+θN,Time

Page 42: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Viterbi algorithm can find the highest-scoring taggingSet arc weights so that path weight = tagging score

A

N

V

EOS

A

N

Vεε

θN,EOS

Page 43: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Viterbi algorithm can find the highest-scoring taggingSet arc weights so that path weight = tagging score

A

N

V

EOS

A

N

Vεε

θN,EOS

In structured perceptron,weights θ are no longer log-probs. They’re tuned bystructured perceptron to makethe correct path outscore others.

Page 44: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Why would we switch fromprobabilities to scores?1. “Discriminative” training (e.g., perceptron) might work better. It tries to optimize weights to actually predict the right y for each x. More important than maximizing log p(x,y) = log p(y|x) + log p(x),

as we’ve been doing in HMMs and PCFGs. Satisfied once the right y wins. The example puts no more pressure on

the weights to raise log p(y|x). And never pressures us to raise log p(x).

2. Having more freedom in the weights might help? Now weights can be positive or negative. Exponentiated weights no longer have to sum to 1. But turns out new θ vectors can’t do more than the old restricted ones. Roughly, for every WCFG there’s an equivalent PCFG. Though it’s true a regularizer might favor one of the new ones.

3. We can throw lots more features into the stewpot. Allows model to capture more of the useful predictive patterns! So, what features can we throw in efficiently?

Page 45: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

“Provided that the score of a tagged sentence= total score of its transitions and emissions”

“Provided that the score of a path = total score of its arcs” “Provided that the score of a parse = total score of its rules”

This implies certain kinds of features in linear model …

When can you efficiently choose best y?

600.465 - Intro to NLP - J. Eisner 45

e.g, θ3 = score of N V tag bigram f3(x,y) = # times N Vappears in y

Page 46: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

“Provided that the score of a tagged sentence= total score of its transitions and emissions”

“Provided that the score of a path = total score of its arcs” “Provided that the score of a parse = total score of its rules”

This implies certain kinds of features in linear model …

When can you efficiently choose best y?

600.465 - Intro to NLP - J. Eisner 46

e.g, θ3 = score of VP VP PP f3(x,y) = # times VP VP PPappears in y

Page 47: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

“Provided that the score of a tagged sentence= total score of its transitions and emissions”

“Provided that the score of a path = total score of its arcs” “Provided that the score of a parse = total score of its rules”

This implies certain kinds of features in linear model …

More generally: make a list of interesting substructures.The feature fk(x,y) counts tokens of kth substructure in (x,y).So far, the substructures = transitions, emissions, arcs, rules.But model could use any features … what ones are efficient?

When can you efficiently choose best y?

600.465 - Intro to NLP - J. Eisner 47

Page 48: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

1. Single-rule substructures

Count of VP VP PP

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Page 49: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Count of VP VP PP Count of V flies

1. Single-rule substructures

Time flies like an arrow

(looks at y only)(looks at both x and y)

N

PPNP

V P D N

VPS

NP VP

These featuresare efficientfor CKY toconsider.

Page 50: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

2. Within-rule substructures

Count of VP with a PP childTime flies like an arrow

N

PPNP

V P D N

VPS

NP VP

Page 51: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

2. Within-rule substructures

Count of VP with a PP child Count of any node with a PP right child

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Page 52: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

2. Within-rule substructures

Count of VP with a PP child Count of any node with a PP right child Count of any node with a PP right child and

whose label matches left child’s label

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Page 53: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

2. Within-rule substructures

Time flies like an arrow

Efficient?Yes: the weight that CKY

uses for VP VP PP is thetotal weight of all of its

within-rule features.

N

PPNP

V P D N

VPS

NP VP

Count of VP with a PP child Count of any node with a PP right child Count of any node with a PP right child and

whose nonterm matches left child’s nonterm

Some of thesefeatures fire onboth VP VP PPand NP NP PP.So they’re reallybackoff features.

Page 54: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

3. Cross-rule substructures

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Count of “flies” as a verb with subject “time”

Page 55: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

3. Cross-rule substructures

Time flies like an arrow

Count of “flies” as a verb with subject “time” Count of NP D N when the NP is the

object of a preposition

N

PPNP

V P D N

VPS

NP VP

Page 56: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

3. Cross-rule substructures

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Count of “flies” as a verb with subject “time” Count of NP D N when the NP is the

object of a preposition Count of VP constituents that contain a V

Two such VPs, sofeature fires twiceon this (x,y) pair

Page 57: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

3. Cross-rule substructures

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Count of “flies” as a verb with subject “time” Count of NP D N when the NP is the

object of a preposition Count of VPs that contain a V

Efficient? Sort of.For CKY to work,

must add attributesto the nonterminals

so that thesefeatures can now bedetected within-rule.

That enlarges thegrammar.

[head=time][role=prepobj]

[hasV=true]

[hasV=true]

What’s the analogue inFSMs? Splitting states toremember more history.

Page 58: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

4. Global features

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Count of “NP and NP” when the two NPs have verydifferent size or structure [this feature has weight < 0] The number of PPs is even The depth of the tree is prime Count of the tag bigram V P in the preterminal seq

Page 59: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Efficient? Dependson whether you can

do it with attributes.

If you have infinitelymany nonterminals,it’s not technically aPCFG anymore, but

CKY might still apply.

4. Global features

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Count of “NP and NP” when the two NPs have verydifferent size or structure [this feature has weight < 0] The number of PPs is even The depth of the tree is prime Count of the tag bigram V P in the preterminal seq

[depth=2] [depth=2][depth=2]

[depth=3]

[depth=4]

[depth=5]

[depth=1][depth=1][depth=1] [depth=1]

Or stop relyingonly on dynamicprogramming.Start using

approximate orexact generalmethods forcombinatorialoptimization.

Hot area!

Page 60: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

5. Context-specific features

Time flies like an arrowN

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Page 61: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

5. Context-specific features

N

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Count of VP VP PP whose first word is “flies”

Time flies like an arrow

Page 62: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

5. Context-specific features

N

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Count of VP VP PP whose first word is “flies” Count of VP VP PP whose right child has width 3

Time flies like an arrow

Page 63: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

5. Context-specific features

N

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Count of VP VP PP whose first word is “flies” Count of VP VP PP whose right child has width 3 Count of VP VP PP at the end of the input

Time flies like an arrow0 1 2 3 4 5

Page 64: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

5. Context-specific features

N

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Count of VP VP PP whose first word is “flies” Count of VP VP PP whose right child has width 3 Count of VP VP PP at the end of the input Count of VP VP PP right after a capitalized word

Time flies like an arrow

Page 65: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrow

5. Context-specific features

N

PPNP

V P D N

VPS

NP VP

Take anyefficient feature

that counts asubstructure.Modify it to

count only tokensappearing ina particular

red context.

Count of VP VP PP whose first word is “flies” Count of VP VP PP whose right child has width 3 Count of VP VP PP at the end of the input Count of VP VP PP right after a capitalized word

Still efficient?Amazingly, yes!

Features like thesehave played a big role

in improving real-world accuracy of

NLP systems.

Page 66: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

+weight of VP VP PP+weight of VP ? PP+weight of VP VP PP whose right child has width 3weight of VP VP PP whose first word is “flies”+weight of VP VP PP right after a capitalized word5. Context-specific features

Time 1 flies 2 like 3 an 4 arrow 50 NP 3

Vst 3NP 10S 8

NP 24S 22

1NP 4VP 4

NP 18S 21VP 18

2P 2V 5

PP 12VP 16

3 Det 1 NP 104 N 8

1 S NP VP6 S Vst NP2 S S PP1 VP V NP2 VP VP PP1 NP Det N2 NP NP PP3 NP NP NP0 PP P NP

When CKY combines [1,2] with [2,5] using the rule VP VP PP,it is using that rule in a particular context.

The weight of the rule in that context can sum over features that look atthe context (i.e., the red information). Doesn’t change CKY runtime!

No longer do welook up a constant

rule weight!

+weight of VP VP PP at the end of the inputweight of VP VP PP in this context =

Page 67: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Same approach for tagging …

Previous slides used parsing as an example. Given a sentence of length n,

reconstructing the best tree takes time O(n3). Specifically, O(Gn3) where G = # of grammar rules.

As we’ll see, many NLP tasks only need to tag thewords (not necessarily with parts of speech). Don’t need training trees, only training tags. Reconstructing the best tagging takes only time O(n). Specifically, O(Gn) where G = # of legal tag bigrams.

It’s just the Viterbi tagging algorithm again. But now score is a sum of many feature weights …

Page 68: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Set arc weights so that path weight = tagging score

A

N

V

EOS

A

N

VTime

N

θBOS,N+θN,Time

Let’s add lots of other weights to the arc score!Does V:flies score highly? Depends on features of

N V and V flies in context (at word 2 of sentence x).

Page 69: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)Set arc weights so that path weight = tagging score

A

N

V

EOS

A

N

VTime

N

θBOS,N+θN,Time

Page 70: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Context-specific tagging features

Time flies like an arrowN V P D N

Count of tag P as the tag for “like”In an HMM, the weight of thisfeature would be the log of an

emission probability

But in general, it doesn’t have tobe a log probability

Page 71: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P

Context-specific tagging features

Page 72: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P Count of tag P in the middle third of the sentence

0 1 2 3 4 5

Context-specific tagging features

Page 73: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P Count of tag P in the middle third of the sentence Count of tag bigram V P In an HMM, the weight of this

feature would be the log of anemission probability

But in general, it doesn’t haveto be a log probability

Context-specific tagging features

Page 74: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P Count of tag P in the middle third of the sentence Count of tag bigram V P Count of tag bigram V P followed by “an”

Context-specific tagging features

Page 75: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P Count of tag P in the middle third of the sentence Count of tag bigram V P Count of tag bigram V P followed by “an” Count of tag bigram V P where P is the tag for “like”

Context-specific tagging features

Page 76: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag P as the tag for “like” Count of tag P Count of tag P in the middle third of the sentence Count of tag bigram V P Count of tag bigram V P followed by “an” Count of tag bigram V P where P is the tag for “like” Count of tag bigram V P where both words are lowercase

Context-specific tagging features

Page 77: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag trigram N V P? A bigram tagger can only consider within-bigram features:

only look at 2 adjacent blue tags (plus arbitrary red context). So here we need a trigram tagger, which is slower. As an FST, its state would remember two previous tags.

N V V PP

We take this arc once per N V P triple,so its weight is the total weight of

the features that fire on that triple.

More expensive tagging features

Page 78: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

Count of tag trigram N V P? A bigram tagger can only consider within-bigram features:

only look at 2 adjacent blue tags (plus arbitrary red context). So here we need a trigram tagger, which is slower.

Count of “post-verbal” nouns? (“discontinuous bigram” V N) An n-gram tagger can only look at a narrow window. So here we need an FSM whose states remember whether there

was a verb in the left context.

Post-verbalP D bigram

Post-verbalD N bigram

D NPN V V … D V … NV … PNDPV

More expensive tagging features

Page 79: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

For position i in a tagging, these might include: Full name of tag i First letter of tag i (will be “N” for both “NN” and “NNS”) Full name of tag i-1 (possibly BOS); similarly tag i+1 (possibly EOS) Full name of word i Last 2 chars of word i (will be “ed” for most past-tense verbs) First 4 chars of word i (why would this help?) “Shape” of word i (lowercase/capitalized/all caps/numeric/…) Whether word i is part of a known city name listed in a “gazetteer” Whether word i appears in thesaurus entry e (one attribute per e) Whether i is in the middle third of the sentence

Page 80: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

For a node n in a parse tree that covers the substring (i,j): Nonterminal at n Nonterminal at first child of n, or “null” if child is a word Nonterminal at second child of n, or “null” if only one child Constituent width j-i Whether j-i ≤ 3 (true/false) Whether j-i ≤ 10 (true/false) Words i+1 and j (first and last words of constituent) Words i and j+1 (words immediately before and after constituent) Suffixes, prefixes, shapes, and categories of all of these words

Page 81: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Time flies like an arrowN V P D N

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

At each position of (x,y), exactly one of the manytemplate7 features will fire:

At i=0, we see an instance of “template7=(BOS,N,-es)”so we add one copy of that feature’s weight to score(x,y)

Page 82: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

At each position of (x,y), exactly one of the manytemplate7 features will fire:

Time flies like an arrowN V P D N

At i=1, we see an instance of “template7=(N,V,-ke)”so we add one copy of that feature’s weight to score(x,y)

Page 83: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

At each position of (x,y), exactly one of the manytemplate7 features will fire:

Time flies like an arrowN V P D N

At i=2, we see an instance of “template7=(N,V,-an)”so we add one copy of that feature’s weight to score(x,y)

Page 84: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

At each position of (x,y), exactly one of the manytemplate7 features will fire:

Time flies like an arrowN V P D N

At i=3, we see an instance of “template7=(P,D,-ow)”so we add one copy of that feature’s weight to score(x,y)

Page 85: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

At each position of (x,y), exactly one of the manytemplate7 features will fire:

Time flies like an arrowN V P D N

At i=4, we see an instance of “template7=(D,N,-)”so we add one copy of that feature’s weight to score(x,y)

Page 86: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).This template gives rise to many features, e.g.:

score(x,y) = …+ θ[“template7=(P,D,-ow)”] * count(“template7=(P,D,-ow)”)+ θ[“template7=(D,D,-xx)”] * count(“template7=(D,D,-xx)”)+ …

With a handful of feature templates and a large vocabulary, youcan easily end up with millions of features.

Page 87: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”

E.g., template 7 might be (tag(i), tag(i+1), suffix2(i+2)).

Note: Every template should mention at least some blue. Given an input x, a feature that only looks at red will contribute

the same weight to score(x,y1) and score(x,y2). So it can’t help you choose between outputs y1, y2.

Page 88: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”3. Train your system! What if you had too many features? That’s what regularization is for. Prevents overfitting. An L1 regularizer will do “feature selection” for you. Keeps a feature’s

weight at 0 if it didn’t help enough on the training data. Fancier extensions of L1 will even do feature template selection. If training throws out a template, you get a test-time speedup. (Ordinarily at test time, at every position, you’d have to construct

a feature from that template & look up its weight in a hash table.)Group lasso, graphical lasso,feature induction in random

fields, meta-features …

Page 89: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How might you come up with the featuresthat you will use to score (x,y)?

1. Think of some attributes (“basic features”) that you cancompute at each position in (x,y).

2. Now conjoin them into various “feature templates.”3. Train your system! What if you had too many features? What if you didn’t have enough features? Then your system will have some errors. Study errors and come up with features that might help fix them. Maybe try to learn features automatically (e.g., “deep learning”). Alternatively, the “kernel trick” lets you expand to mind-bogglingly big

(even infinite) feature sets. E.g., all 5-way conjunctions of existingfeatures, including conjunctions that don’t stay within an n-gram! Runtime no longer scales up with the # of features that fire on a

sentence. But now it scales up with the # of training examples.

Check out“kernelizedperceptron.”But the trickstarted withkernel SVMs.

Page 90: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 90

Probabilists Rally Behind Paradigm“.2, .4, .6, .8! We’re not gonna take your bait!”1. Maybe we like our training criterion better than perceptron

Modeling the true probability distribution may generalize better2. Our model offers a whole distribution, not just one output:

How sure are we that y is the correct parse? (confidence) What’s the expected error of parse y? (Bayes risk) What parse y has minimum expected error? (posterior decoding) Marginal prob that [time flies] is NP? (soft feature for another system)

3. Our results can be meaningfully combined modularity! Train several systems and multiply their conditional probabilities p(English text) * p(English phonemes | English text) * p(Jap.

phonemes | English phonemes) * p(Jap. text | Jap. phonemes) p(semantics) * p(syntax | semantics) * p(morphology | syntax) *

p(phonology | morphology) * p(sounds | phonology)

83% of^

Page 91: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 91

Probabilists Regret Being Bound by Principle1. Those context-specific features sure seem helpful!2. And even with context-free features, discriminative

training generally gets better accuracy.

Fortunately, both of these deficiencies can be fixed withina probabilistic framework. Perceptron only learns how to score structures. The scores may

use rich features, but don’t have a probabilistic interpretation. Let’s keep the same scoring functions (linear functions on the

same features). But now interpret score(x,y) as log p(y | x). As usual for such log-linear models, train the weights

so that the events in training data have high conditionalprobability p(y | x). Slightly different from perceptron training.But like perceptron, we’re training the weights to discriminateamong y values, rather than to predict x.

Page 92: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 92

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

Time flies like an arrow

p(parse | sentence) score(sentence, parse) back to p(parse | sentence)

Page 93: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 93

1. Those context-specific features sure seem helpful!2. Even with the same features, discriminative training

generally gets better accuracy.

Fortunately, both of these deficiencies can be fixed withina probabilistic framework. Our PCFG, HMM, and probabilistic FST frameworks relied on

modeling the probabilities of individual context-free moves: p(rule | nonterminal), p(word | tag), p(tag | previous tag),

p(transition | state) Perhaps each of these was a log-linear conditional probability. Our models multiplied them all to get a joint probability p(x,y). Instead, let’s model p(y | x) as a single log-linear distribution …

Generative processes

Page 94: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

1. Those context-specific features sure seem helpful!2. Even with the same features, discriminative training

generally gets better accuracy.

Fortunately, both of these deficiencies can be fixed withina probabilistic framework.

Markov Random Field (MRF)

p(x,y) = 1/Z exp θ∙f(x,y)

Train to maximize log p(x,y)

Conditional Random Field (CRF)

p(y|x) = (1/Z(x)) exp θ∙f(x,y)

Train to maximize log p(y|x)

Generates x,y “all at once.”Scores result as a whole, notindividual generative steps.

Generates y “all at once” given x.Discriminative like perceptron …and efficient for same features.

Generative processesRandom Fields

Page 95: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

How do you make predictions given input x? Can just use the same Viterbi algorithms again! Perceptron picks y that maximizes score(x,y). CRF defines p(y | x) = (1/Z(x)) exp score(x,y). For a single output, could pick y that maximizes p(y | x). This “1-best” prediction is the single y that is most likely to be

completely right (according to your trained model). But that’s exactly the y that maximizes score(x,y). Why? exp is an increasing function, and 1/Z(x) is constant.

The only difference is in how θ is trained.

Finding the best y given x

600.465 - Intro to NLP - J. Eisner 95

Page 96: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Perceptron Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y)

Current θ predicts y maximizing score(x,y) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – f(x,y))

Page 97: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Perceptron Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y)

Current θ predicts y maximizing score(x,y) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – f(x,y))

CRF

defines a distribution p(y | x)

expected features of a random ychosen from the distribution:

∑y p(y | x) f(x,y)

Page 98: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

CRF Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y) Current θ defines a distribution p(y | x) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – ∑y p(y | x) f(x,y)) Update ε. observed – expected features

That is, we’re training a conditional log-linear model p(y | x)by stochastic gradient ascent as usual.(Should add a regularizer, hence a step to update weights toward 0.)

But now y is a big structure like trees or taggings.

Must getsmallerbut nottoo fast;can useε =1/(t+1000)on iter t

Page 99: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

CRF Training Algorithm

initialize θ (usually to the zero vector) repeat: Pick a training example (x,y) Current θ defines a distribution p(y | x) Update weights by a step of size ε > 0:

θ = θ + ε ∙ (f(x,y) – ∑y p(y | x) f(x,y))observed – expected features

How do we compute the expected features?Forward-backward or inside-algorithm tells us expected

count of each substructure (transition / emission / arc /rule). So we can iterate over that substructure’s features.

Page 100: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)p(path | x) = (1/Z(x)) exp(sum of θ values on path)

A

N

V

EOS

A

N

VTime

N

θBOS,N+θN,Time

perceptron: (,) = (max,+)CRF: (,) = (log+,+)treat scores as log-probs

Run forward algorithm in this semiring to getlog Z(x) = “total” (log+) weight of all paths

Page 101: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)p(path | x) = (1/Z(x)) exp(sum of θ values on path)

= (1/Z(x)) (product of values on path)where we define each k = exp θk

A

N

V

EOS

A

N

VTime

N

BOS,N*N,Time

perceptron: (,) = (max,+)CRF: (,) = (log+,+)

if you prefer simpler semiring …(+,*) forward algorithm in this semiring to get

log Z(x) = total weight of all paths

Page 102: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)p(path | x) = (1/Z(x)) exp(sum of θ values on path)

= (1/Z(x)) (product of values on path)where we define each k = exp θk

A

N

V

EOS

A

N

VTime

N

BOS,N*N,Time

perceptron: (,) = (max,+)CRF: (,) = (log+,+)

if you prefer simpler semiring …(+,*) forward-backward algorithm to get

expected count (given x) of every arc

Page 103: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

BOS

Running Example: Predict a Tagging

Lattice of exponentially many taggings (FST paths)p(path | x) = (1/Z(x)) exp(sum of θ values on path)

= (1/Z(x)) (product of values on path)where we define each k = exp θk

A

N

V

EOS

A

N

VTime

N

BOS,N*N,TimeCRF replaces HMM’sprobabilities by arbitrary“potentials” k = exp θk > 0,chosen to maximize log p(y | x)

Page 104: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary of ProbabilisticMethods in this Course! Each observed sentence x has some unknown structure y. We like to define p(x,y) as a product of quantities associated with

different substructures of (x,y). These could be probabilities, or just potentials (= exponentiated weights). If they’re potentials, we’ll need to multiply 1/Z into the product too.

Thus, p(x) = ∑y p(x,y) is a sum of products. Among other uses, we need it to get p(y | x) = p(x,y) / p(x). Lots of summands, corresponding to different structures y, so

we hope to do this sum by dynamic programming. (forward, inside algs) To increase log p(yi | xi) by stochastic gradient ascent or EM, must

find substructures of (xi,y) that are expected under current p(y | xi). More dynamic programming. (forward-backward, inside-outside algs)

Simplest way to predict yi is as argmaxy p(xi,y). More dynamic programming. (Viterbi inside, Viterbi forward) This is actually all that’s needed to train a perceptron (not probabilistic). Posterior decoding might get better results, depending on loss function.

600.465 - Intro to NLP - J. Eisner 104

Page 105: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

From Log-Linear to Deep Learning:“Energy-Based” Models

Define Then

Log-linear case:

105

Page 106: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

From Log-Linear to Deep Learning:“Energy-Based” Models

Define

106

Why “energy-based”? These distributions show up in physics. Let’s predict the 3-dimensional structure y

of a complex object x, such as a protein molecule energy(x,y) = a linear function: sums up local energies in the structure Structure varies randomly according to Boltzmann distribution:

p(y | x) = (1/Z(x)) exp (–energy(x,y) / T) where T > 0 is temperature So at high temperature, many different structures are found; but

as T 0, the protein is usually found in its lowest-energy shape. In machine learning, we can define energy(x,y) however we like.

Page 107: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Linear model:where f is a hand-designed feature vector

What if we don’t want to design f by hand? Could we learn automatic features?

Just define f using some additional parameters thathave to be learned along with θ.

log p(y | x) may now have local maxima We can still locally optimize it by stochastic gradient:

Deep Scoring Functions

Page 108: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Deep Scoring Functions Linear model:

where f gets a hand-designed feature vector

Multi-layer perceptron:

where g gives a (simple) hand-designed vector, maybe justbasic attributes and embeddings.

fk fires iff g(x,y) has enough of the attributes picked out by wk.So fk is a kind of conjunctive feature. But by learning wk and bk, we’relearning which attributes to conjoin and how strongly.

(Or define g with same trick!)

Page 109: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Deep Scoring Functions Linear model:

where f gets a hand-designed feature vector

Multi-layer perceptron:replace by something differentiableso we can learn by gradient ascent

Page 110: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

where

Deep Scoring Functions Linear model:

where f gets a hand-designed feature vector

Neural network:

let

something differentiableso we can learn by gradient ascent

Page 111: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Deep Scoring Functions Linear model:

where f gets a hand-designed feature vector

Neural network:

To define g(x,y), we might also learn “recurrent neuralnetworks” that turn strings within (x,y) into vectors. E.g., the vector for “the tiny flea jumped” is the output of a neural

network whose input concatenates the vector for “the tiny flea”(recursion!) with the embedding vector for “jumped”.

Page 112: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Why is discriminative training good?

Perceptrons and CRFs and deep CRFs canefficiently make use of richer features.

N

PPNP

V P D N

VPS

NP VP

Time flies like an arrow

Time flies like an arrowN V P D N

Page 113: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Why is discriminative training good?

And even with the same features, discriminativeusually wins!

Joint training tries to predict both x and y. Discriminative training only tries to predict y

(given x), so it does a better job of that: predict the correct y (perceptron) predict the distribution over y (CRF)

In fact, predicting x and y together may be toomuch to expect …

Page 114: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Why is discriminative training good?

Predicting x and y together may be too much to expect of a“weak model” like a PCFG or HMM.

If you generate (x,y) from a PCFG or HMM, it looks awful! You get silly or ungrammatical sentences x. Suggests that PCFG and HMM aren’t really such great models of

p(x,y), at least not at their current size (≈ 50 nonterminals or states). But generating y given x might still give good results. PCFG and HMM can provide good conditional distributions p(y | x).

So just model p(y | x). Twisting the weights to also predictsentences x will distort our estimate of p(y | x).

Page 115: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Why is discriminative training good?

Predicting x and y together may be too much to expect of a “weakmodel” like a PCFG or HMM.

So just model p(y | x). Twisting the weights to also predict sentences xwill distort our estimate of p(y | x).

Let pθ denote the PCFG with weight parameters θ. Joint training: Adjust θ so that pθ(x,y) matches joint distribution of data. Discrim. training: Adjust θ so that pθ(y | x) matches conditional distribution.

Or equivalently, so that phybrid(x,y) matches joint distribution:phybrid(x,y) = pempirical(x) ∙ pθ(y | x).

where pempirical(x) = 1/n for each of the n training sentences, and is notsensitive to θ. So we’re letting the data (not the PCFG!) tell us thedistribution of sentences x.

Page 116: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

When do you want joint training?

On the other hand, not trying to predict x means we’re notlearning from the distribution of x. “Throwing away data.” Use joint training if we trust our model. Discriminative training

throws away x data only because we doubt we can model it well. Also use joint in unsupervised/semisupervised learning. Here x is all

we have for some sentences, so we can’t afford to throw it away… How can we know y then? HMM/PCFG assumes y latently influenced x. EM algorithm fills in y to locally maximize log pθ(x) = log ∑y pθ(x,y). Requires joint model pθ(x,y). (Q: Why not max log ∑y pθ(y | x) instead?) EM can work since the same θ is used to define both pθ(x) and pθ(y | x).

Both come from pθ(x,y) (pθ(x) = ∑y pθ(x,y) and pθ(y | x) = pθ(x,y)/pθ(x)).By observing x, we get information about θ, which helps us predict y.

Predicting x and y together may be too much to expect of a “weakmodel” like a PCFG or HMM. So just model p(y | x). Twisting the weightsto also predict sentences x will distort our estimate of p(y | x).

Page 117: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Naïve Bayes vs. Logistic Regression

Dramatic example of training p(y | x) versus p(x,y).

Let’s go back to text categorization. x = (x1, x2, x3, …) (a feature vector) y = {spam, gen}

“Naïve Bayes” is a popular, very simple joint model: p(x,y) = p(y) ∙ p(x1 | y) ∙ p(x2 | y) ∙ p(x3 | y) ∙ ∙∙∙ Q: How would you train this from supervised (x,y) data? Q: Given document x, how do we predict category y? Q: What are the conditional independence assumptions? Q: When are those “naïve” assumptions reasonable?

Page 118: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 118

Pick y maximizing p(y) ∙ p(x1 | y) ∙ p(x2 | y) ∙ ∙∙∙ x = Buy this supercalifragilistic Ginsuknife set for only $39 today …

Some features xk that fire on this example …

Naïve Bayes’s conditional independenceassumptions break easily

Contains BuyContains supercalifragilisticContains a dollar amount under $100Contains an imperative sentenceReading level = 7th gradeMentions money (use word classes and/or regexp to detect this)…

Page 119: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 119

Pick y maximizing p(y) ∙ p(x1 | y) ∙ p(x2 | y) ∙ ∙∙∙ x = Buy this supercalifragilistic Ginsuknife set for only $39 today …

Some features xk that fire on this example,and their prob of firing when y=spam versus y=gen:

Contains a dollar amount under $100

Mentions money

.5 .02

.9 .1

Naïve Bayesclaims .5*.9=45%of spam has bothfeatures –25*9=225x morelikely than in gen.

50% of spam has this – 25x more likely than in gen

90% of spam has this – 9x more likely than in gen

Naïve Bayes’s conditional independenceassumptions break easily

But here are the emails with both features – only 25x!First feature implies second feature. Naïve Bayes isoverconfident because it thinks they’re independent.

Page 120: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

We have here a lousy model of p(x,y), namely p(y) ∙ p(x1 | y) ∙ p(x2 | y) ∙ ∙∙∙ If we used it to generate (x,y), we’d get incoherent feature vectors that could not

come from any actual document x (“mentions < $100”=1, “mentions money”=0). Its conditional distribution p(y | x) is nonetheless serviceable. Training options:

Supervised: maximize log p(x,y). (“Naïve Bayes”) Unsupervised: maximize log p(x) = log ∑y p(x,y) via EM. (“document clustering”) Supervised: maximize log p(y | x). (“logistic regression”)

Naïve Bayes vs. Logistic Regression

Reinterpret Naïve Bayes conditional distrib as log-linear (“nuthin’ but adding weights”):p(y | x) = p(x,y) / p(x)

= (1/p(x)) p(y) ∙ p(x1 | y) ∙ p(x2 | y) ∙ ∙∙∙= (1/Z(x)) exp (θ(y) + θ(x1, y) + θ(x2, y) ∙ ∙∙∙)where Z(x) = p(x) θ(y) = log p(y) θ(xk, y) = log p(xk | y)

So just do ordinary gradient ascent training of a conditional log-linear model.Whose features are as shown: conjoin features of x with the identity of y.

Directly train conditional distribution we need. How?

Page 121: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

600.465 - Intro to NLP - J. Eisner 121

Contains a dollar amount under $100

Mentions money

.5 .02

.9 .1

Naïve Bayesp(xk | y)

-1 -5.6

-.15 -3.3

initial θ(xk,y)= log p(xk | y)

-.85 -2.3

-.15 -3.3

final θ(xk,y) aftergradient ascent

Changed to compensate for the fact that wheneverthis feature fires, so will “Mentions money” feature.

Logistic Regression doesn’t model x, so doesn’tmodel x’s features as independent given y!

Logistic regression trains weights to work together (needs gradient ascent).Naïve Bayes trains weights independently for each k (easier: count & divide).

Page 122: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Contains a dollar amount under $100

Mentions money

.5 .02

.9 .1

Naïve Bayesp(xk | y)

-1 -5.6

-.15 -3.3

initial θ(xk,y)= log p(xk | y)

-.85 -2.3

-.15 -3.3

final θ(xk,y) aftergradient ascent

Q: Is this truly just conditional training of the parameters of our original model?The old parameters were probabilities that had to sum to 1. But now it seemswe’re granting ourselves the freedom to use any old weights that can no longer beinterpreted as log p(y) and log p(xk | y). Is this extra power why we do better?

A: No extra power! Challenge: Show how to adjust the weights after training,without disturbing p(y|x), to restore ∑y exp θ(y) = 1 and ∀y∀k ∑xkexp θ(xk,y) = 1.

Logistic Regression doesn’t model x, so doesn’tmodel x’s features as independent given y!

Page 123: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary Joint model, p(x,y): Classical models: PCFG, HMM, Naïve Bayes Product of many simple conditional distributions over generative moves. “Locally normalized”: Each distribution must sum to 1: divide by some Z.

Or Markov random field: p(x,y) = (1/Z) exp θ ∙ f(x,y) “Globally normalized”: One huge distribution normalized by a single Z. Z is hard to compute since it sums over all parses of all sentences.

Conditional model, p(y | x): Conditional random field: p(y|x) = (1/Z(x)) exp θ ∙ f(x,y) Globally normalized, but Z(x) only sums over all parses of sentence x. Z(x) is efficient to compute via inside algorithm. Features can efficiently conjoin any properties of x and a “local”

property of y. Train by gradient ascent: Doesn’t try to model p(x), i.e., “throws away” x data: good riddance?

Discriminative model, score(x,y): E.g., perceptron: No probabilistic interpretation of the score. Train θ to make the single correct y beat the others (for each x). (Variants: Train to make “better” y values beat “worse” ones.)

Given x, always compute best y by Viterbi algorithm.What’s different is the meaning of the resulting score.

Page 124: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Unsupervised learning? generative Observing only x gives evidence of p(x) only. Generative model says p(x) carries info about y. Discriminative model doesn’t care about p(x). It only tries to model p(y|x), treating p(x) as

“someone else’s job.” So it will ignore our only training data as “irrelevant

to my job.”

(Intermediate option: contrastive estimation.)600.465 - Intro to NLP - J. Eisner 124

☺☹

Page 125: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Unsupervised learning? generative Rich features? discriminative Discriminative p(y | x) can efficiently use

features that consider arbitrary properties of x. See earlier slides on “context-specific features.” Also works for non-probabilistic discriminative

models, e.g., trained by structured perceptron. Generative p(x,y) with the same features is

usually too computationally hard to train. Since Z = ∑x,y θ∙f(x,y) would involve extracting

features from every possible input x.600.465 - Intro to NLP - J. Eisner 125

Page 126: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Unsupervised learning? generative Rich features? discriminative

Neither case? let dev data tell you! Use a generative model, but choose θ to max

log pθ(y|x) + λ log pθ(x) + c Regularizer(θ) Tune λ, c on dev data λ = 0 discriminative training (best to ignore distrib of x)

λ = 1 generative training (distrib of x gives useful infoabout θ: true if the data were truly generated from your model!) λ = 0.3 in between (distrib of x gives you some useful info

but trying too hard to match it would harm predictive accuracy)

600.465 - Intro to NLP - J. Eisner 126

Page 127: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Unsupervised learning? generative Rich features? discriminative

Neither case? let dev data tell you! Use a generative model, but train θ to max

log pθ(y|x) + λ log pθ(x) + c Regularizer(θ) What you really want is high log pθ(y|x) on future data. But you only have a finite training sample to estimate

that. Both blue terms provide useful bias that can helpcompensate for the variance of your estimate.

Same idea as multi-task or multi-domain learning: to find paramsthat are good at your real task (predicting y from x), slightly preferparams that are also good at something related (predicting x).

600.465 - Intro to NLP - J. Eisner 127

Page 128: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Unsupervised learning? generative Rich features? discriminative

Neither case? let dev data tell you! Use a generative model, but train θ to max

log pθ(y|x) + λ log pθ(x) + c Regularizer(θ)

Note: Equivalent to(1-λ) log pθ(y|x) + λ log pθ(y|x) + λ log pθ(x) + c R(θ)

= (1-λ) log pθ(y|x) + λ log pθ(x,y) + c R(θ) So on each example, stochastic gradient ascent can

stochastically follow the gradient of discriminative logpθ(y|x) with prob 1-λ or generative log pθ(x,y) with prob λ

600.465 - Intro to NLP - J. Eisner 128

Page 129: Structured Prediction with Perceptrons and CRFsjason/465/PDFSlides/lect34-crf.pdf · 4 N 8 1 S NP VP 6 S Vst NP 2 S S PP 1 VP V NP 2 VP VP PP 1 NP Det N 2 NP NP PP 3 NP NP NP 0 PP

Summary: When to build a generativep(x,y) vs. discriminative p(y|x) model?

Use a generative model, but train θ to maxlog pθ(y|x) + λ log pθ(x) + c Regularizer(θ) What you really want is high log pθ(y|x) on future data.

Ok, maybe not quite. Suppose you will act at test time (and dev time) using a decision ruleδθ(x) that tells you what action to take on input x, using the learned parameters θ.And the loss function L(a | x,y) tells you how bad action a would be in a situation with aparticular input x if the unobserved output were y.Then what you really want is low loss on future data: L(δθ(x) | x,y) should be low on average.So replace log pθ(y|x) in training with -L(δθ(x) | x,y), or perhaps -L(δθ(x) | x,y) + λ’ log pθ(y|x).

Decision rules don’t have to be probabilistic or differentiable: e.g., the perceptron uses a linearscoring function as its decision rule. (At training time it simply tries to drive training loss to 0.)But if you have a good probability model pθ(y | x), then the ideal decision rule is minimumBayes risk (MBR): δθ(x) = argmina ∑y pθ(y | x) L(a | x,y). (Risk means expected loss.)MBR reduces to the Viterbi decision rule, δθ(x) = argmaxy pθ (y | x), in the special case whereactions are predictions of y and we use “0-1” loss, that is, L(a | x,y)=(if (a==y) then 0 else 1).Posterior decoding is the MBR rule for a different loss function: it chooses a tag sequence athat minimizes the expected number of incorrect tags (possibly p(a | x)=0, unlike Viterbi!).