Koji Matsuda
July 27, 2018
270

# Training Classifiers with Natural Language Explanations

July 27, 2018

## Transcript

1. 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 ࿦จ͔ΒͷҾ༻Ͱ͢ɽ

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

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

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

5. ヒューリスティクスがあれば，⼤量の
ラベル付きデータを⽣成できます
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 େن໛ͳ܇࿅σʔλΛࣗಈతʹੜ੒Ͱ͖Δ

6. どうやって？
• 根拠⽂を 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

7. 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
˜
Ξϊςʔγϣϯ࣌
ʹϥϕϧͷࠜڌΛ
ࣗવจͰॻ͍ͯ΋
Β͏
ࠜڌจΛϥϕϦϯ
άؔ਺ʹม׵͢Δ

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

9. 正しくないパーズ結果も許容
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)

10. 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
˜
Ξϊςʔγϣϯ࣌
ʹϥϕϧͷࠜڌΛ
ࣗવจͰॻ͍ͯ΋
Β͏
ࠜڌจΛϥϕϦϯ
άؔ਺ʹม׵͢Δ
ඍົͳϥϕϦϯά
ؔ਺ΛϑΟϧλʔ

11. 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
શࣄྫʹରͯ͠ಉ͡ϥϕϧΛฦͨ͠Γɼ
ॏෳ͍ͯͨ͠Γ͢ΔϥϕϦϯάؔ਺ΛϑΟϧλʔ

12. 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σʔλʹ
ద༻ɼϥϕϧͷ౷߹

13. ラベルの統合: 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)

14. 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σʔλʹ
ద༻ɼϥϕϧͷ౷߹
෼ྨثΛֶश

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

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

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

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

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

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

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

22. 予備スライド
22

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

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

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

26. 参考⽂献
• [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