Slide 1

Slide 1 text

Training Classifiers with Natural Language Explanations Braden Hancock, Paroma Varma, Stephanie Wang, Martin Bringmann, Percy Liang, Christopher Ré Stanford University ACL-2018 ঺հऀ: দాߞ࢙ʢ౦๺େֶʣ 1 ࿦จதͷਤ͸ɼACLൃදεϥΠυ or ࿦จ͔ΒͷҾ༻Ͱ͢ɽ https://www.bradenhancock.com/ 3෼σϞಈը౳΋͋Γ·͢ɽ

Slide 2

Slide 2 text

どんな論⽂? Ξϊςʔγϣϯ࣌ ʹϥϕϧͷࠜڌΛ ࣗવจͰॻ͍ͯ΋ Β͏ ࠜڌจΛ༻͍Δͱɼϥϕϧ͚ͩͷ৔߹ʹൺ΂ͯ 5ʙ100ഒޮ཰తʹ෼ྨثֶ͕शͰ͖Δ 2 λεΫ: ؔ܎நग़

Slide 3

Slide 3 text

モチベーション: ラベルしか収集 しないのはもったいない 3 L ͔͚࣌ؒͯಡΜͰ΋Βͬͯ΋ɼಘΒΕΔ৘ใ͸ 1bit!

Slide 4

Slide 4 text

アイディア: 根拠⽂(ヒューリスティク ス)も集めましょう 4

Slide 5

Slide 5 text

ヒューリスティクスがあれば,⼤量の ラベル付きデータを⽣成できます 5 “Barack batted back tears as he thanked his wife, Michelle, for all her help.” “Both Bill and his wife Hillary smiled and waved at reporters as they rode by.” “George attended the event with his wife, Laura, and their two daughters.” True True True Label Example େྔͷϥϕϧͳ͠σʔλʹ ώϡʔϦεςΟΫεΛద༻ J େن໛ͳ܇࿅σʔλΛࣗಈతʹੜ੒Ͱ͖Δ

Slide 6

Slide 6 text

どうやって? • 根拠⽂を Semantic Parser で実⾏可能形式 (ラベリング関数)に変換 • 多数のラベリング関数をラベルなしデータに 適⽤し,「賢い多数決」で訓練データ⽣成 – 賢い多数決: Data Programming [Ratner+2016] 6 Explanation Because the words “his wife” are right before person 2. Why did you label True? Labeling Function def f(x): return 1 if (“his wife” in left(x.person2, dist==1)) else 0 #abstain

Slide 7

Slide 7 text

Babble Labble Framework 7 SEMANTIC PARSER FILTER BANK LABEL AGGREGATOR DISC. MODEL False,because… e 1 e 2 e 3 UNLABELED EXAMPLES EXPLANATIONS SEMANTIC PRAGMATIC x 1 x 2 x 3 True,because… True,because… x y ˜ y ˜ Ξϊςʔγϣϯ࣌ ʹϥϕϧͷࠜڌΛ ࣗવจͰॻ͍ͯ΋ Β͏ ࠜڌจΛϥϕϦϯ άؔ਺ʹม׵͢Δ

Slide 8

Slide 8 text

変換はSemantic Parserで⾏います 8 จ຺ࣗ༝จ๏ϕʔε & ϧʔϧϕʔεͷ Semantic Parser [SippyCup] https://github.com/wcmac/sippycup Λ༻͍͍ͯΔͱͷ͜ͱ ࣮ݧ͸3ͭͷؔ܎நग़໰୊͕ͩɼจ๏͸શͯͰڞ௨ͷ΋ͷʢ໿200ϧʔϧʣ

Slide 9

Slide 9 text

正しくないパーズ結果も許容 9 True, because… Typical Semantic Parser Our Semantic Parser def f(x): return 1 if… 1 Explanation 1 Parse True, because… def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… 1 Explanation Many Parses Goal: produce the correct parse Goal: produce useful parses (whether they’re correct or not)

Slide 10

Slide 10 text

Babble Labble Framework 10 SEMANTIC PARSER FILTER BANK LABEL AGGREGATOR DISC. MODEL False,because… e 1 e 2 e 3 UNLABELED EXAMPLES EXPLANATIONS SEMANTIC PRAGMATIC x 1 x 2 x 3 True,because… True,because… x y ˜ y ˜ Ξϊςʔγϣϯ࣌ ʹϥϕϧͷࠜڌΛ ࣗવจͰॻ͍ͯ΋ Β͏ ࠜڌจΛϥϕϦϯ άؔ਺ʹม׵͢Δ ඍົͳϥϕϦϯά ؔ਺ΛϑΟϧλʔ

Slide 11

Slide 11 text

11 Filter Bank False, because… True, because… True, because… Explanations Labeling Functions (Filtered) Labeling Functions Semantic Parser def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… Filter Bank def f(x): return 1 if… def f(x): return 1 if… def f(x): return 1 if… Semantic Filter Pragmatic Filter શࣄྫʹରͯ͠ಉ͡ϥϕϧΛฦͨ͠Γɼ ॏෳ͍ͯͨ͠Γ͢ΔϥϕϦϯάؔ਺ΛϑΟϧλʔ

Slide 12

Slide 12 text

Babble Labble Framework 12 SEMANTIC PARSER FILTER BANK LABEL AGGREGATOR DISC. MODEL False,because… e 1 e 2 e 3 UNLABELED EXAMPLES EXPLANATIONS SEMANTIC PRAGMATIC x 1 x 2 x 3 True,because… True,because… x y ˜ y ˜ Ξϊςʔγϣϯ࣌ ʹϥϕϧͷࠜڌΛ ࣗવจͰॻ͍ͯ΋ Β͏ ࠜڌจΛϥϕϦϯ άؔ਺ʹม׵͢Δ ඍົͳϥϕϦϯά ؔ਺ΛϑΟϧλʔ ϥϕϦϯάؔ਺܈Λ unlabeledσʔλʹ ద༻ɼϥϕϧͷ౷߹

Slide 13

Slide 13 text

ラベルの統合: Data Programming 13 LF 1: LF 2: LF 3: LF 4: LF 5: y: ˜ ? ? ? ? ? ? ? ? ? x1 x9 x2 x3 x4 x5 x6 x7 x8 Input: Output: (x1 ,ỹ1 ) (x2 ,ỹ2 ) (x3 ,ỹ3 ) (x4 ,ỹ4 ) Training Data Positive Negative Abstain ૬͕ؔߴ͍ɽ ಠཱͰ͸ͳ͍ʁ ଞͷؔ਺ͱί ϯϑϦΫτɽ ৴པੑ௿͍ʁ ΧόϨοδ͸ ௿͍͚Ͳ৴པੑ ͸ߴͦ͏ Data Programming: (Ratner, et al. NIPS 2016)

Slide 14

Slide 14 text

Babble Labble Framework 14 SEMANTIC PARSER FILTER BANK LABEL AGGREGATOR DISC. MODEL False,because… e 1 e 2 e 3 UNLABELED EXAMPLES EXPLANATIONS SEMANTIC PRAGMATIC x 1 x 2 x 3 True,because… True,because… x y ˜ y ˜ Ξϊςʔγϣϯ࣌ ʹϥϕϧͷࠜڌΛ ࣗવจͰॻ͍ͯ΋ Β͏ ࠜڌจΛϥϕϦϯ άؔ਺ʹม׵͢Δ ඍົͳϥϕϦϯά ؔ਺ΛϑΟϧλʔ ϥϕϦϯάؔ਺܈Λ unlabeledσʔλʹ ద༻ɼϥϕϧͷ౷߹ ෼ྨثΛֶश

Slide 15

Slide 15 text

⾃動⽣成した訓練データから識別 モデルを学習 • 得られた (事例,疑似ラベル) ペアから分 類器を学習する • 今回は⼀般的な logistic regression モデル – 素性: uni〜trigram, dependency 等 – 個々のラベリング関数の結果は⽤いない(カ バレッジが限られるため,あくまでラベル導 出のため⽤いる) 15

Slide 16

Slide 16 text

実験: 関係抽出タスク • 3つの関係抽出タスク – 配偶者(Spouse) – 病気(Disease) – タンパク質(Protein) • 各タスク30事例に対して,ラベルの付与 と根拠⽂書きを⾏ってもらう 16 Unlabeled data 22k 6.7k 5.5k ͨͱ͑͹͜ͷΑ͏ͳྫ͕ಘΒΕ͍ͯ·͢

Slide 17

Slide 17 text

結果: はるかに効率的 BL:ఏҊख๏ આ໌30݅ TS:ී௨ͷڭࢣ ͋Γֶश ͨͬͨ30ࣄྫ Ͱ3000ࣄྫͷ ৔߹ͷੑೳΛ্ ճΔ 17 ࠜڌจΛ༻͍Δͱɼϥϕϧ͚ͩͷ৔߹ʹൺ΂ͯ 5ʙ100ഒޮ཰తʹ෼ྨثֶ͕शͰ͖Δ

Slide 18

Slide 18 text

18 ࣮ઢ: ϥϕϦϯάؔ਺Λϥϕϧͳ͠σʔλʹద༻ͯ͠܇࿅σʔλΛੜ੒ͨ͠৔߹ ఺ઢ: ϥϕϦϯάؔ਺ͷ݁ՌΛͦͷ··ಛ௃ྔͱͯ͠༻͍ͨ৔߹ ϥϕϧͳ͠σʔλྔʹରͯ͠εέʔϧʂ 結果: Unlabeledデータの数を変動

Slide 19

Slide 19 text

Parserはルールベースで⼗分 19 ਓखͰ෇༩ͨ͠ Goldͷ ϥϕϦ ϯάؔ਺ ϑΟϧλʔΛ࢖ Θͳ͍৔߹ ఏҊख๏

Slide 20

Slide 20 text

まとめ 20 Ξϊςʔγϣϯ࣌ʹ ϥϕϧͷࠜڌΛࣗવ จͰॻ͍ͯ΋Β͏ ࠜڌจΛ༻͍Δͱɼ5ʙ100ഒޮ཰తʹ෼ྨثֶ͕शͰ͖Δ 根拠⽂を実⾏可能形式(ラベリング関数)に変換 多数のラベリング関数をラベルなしデータに適⽤し,「賢 い多数決」で訓練データを⽣成

Slide 21

Slide 21 text

所感 • アイディアが⾯⽩い • 実⽤性も⾼そう – ⼿元に⽣データしかない(⼤量にタグ付けす るのはしんどい)けど,分類器を学習したい, という状況は⾮常に多い • 「関係抽出」だから成功しているのかも …? 21

Slide 22

Slide 22 text

予備スライド 22

Slide 23

Slide 23 text

落ち穂拾い • 30事例に対して説明を書いてもらうのに 要する時間: 60事例に対してラベル付けす るのに必要な時間と同じくらい • 完全なパース結果は必要ない. Semantic Parserが多少ミスをしても,実験的には有 ⽤なラベリング関数が得られる模様 23

Slide 24

Slide 24 text

30の根拠⽂をパーズして得られた ラベリング関数 24

Slide 25

Slide 25 text

全体の流れ ᶃઆ໌จ͔Β࿦ ཧදݱ(LF)΁ͷ ม׵ ᶄ͓͔͠ͳLFΛ ϑΟϧλʔ ᶅLFΛେྔͷϥϕ ϧͳ͠σʔλʹద ༻ɼϥϕϧΛਪఆ ᶆਪఆͨ͠ϥϕϧΛ ࢖ͬͯ෼ྨثΛ܇࿅ 25

Slide 26

Slide 26 text

参考⽂献 • [Ratner+2016] Data Programming: Creating Large Training Sets, Quickly. Alexander J. Ratner, Christopher M. De Sa, Sen Wu, Daniel Selsam, Christopher Ré. NIPS 2016 • [SippyCup] https://github.com/wcmac/sippycup 26