$30 off During Our Annual Pro Sale. View Details »

Training Classifiers with Natural Language Explanations

Koji Matsuda
July 27, 2018
270

Training Classifiers with Natural Language Explanations

Koji Matsuda

July 27, 2018
Tweet

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 ࿦จ͔ΒͷҾ༻Ͱ͢ɽ
    https://www.bradenhancock.com/ 3෼σϞಈը౳΋͋Γ·͢ɽ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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 େن໛ͳ܇࿅σʔλΛࣗಈతʹੜ੒Ͱ͖Δ

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 予備スライド
    22

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide