Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最長一致法のためのサブワード正則化手法(MaxMatch-Dropout)とその周辺の話

tatHi
December 15, 2022

 最長一致法のためのサブワード正則化手法(MaxMatch-Dropout)とその周辺の話

NLPコロキウムでのトーク資料です。
https://nlp-colloquium-jp.github.io/schedule/2022-12-14_tatsuya_hiraoka/

tatHi

December 15, 2022
Tweet

More Decks by tatHi

Other Decks in Research

Transcript

  1. 最長一致法のためのサブワード正則化手法
    (MaxMatch-Dropout)
    …とその周辺の話
    平岡達也
    ※ 本トークの内容は東⼯⼤在籍時の成果です。
    2022/12/14 NLPコロキウム

    View Slide


  2. •平岡達也
    • @7a7hi
    •経歴
    • 2017年 早稲⽥⼤(⽂学学⼠)
    • 2019年 NAIST(⼯学修⼠)
    • 2022年 東⼯⼤(⼯学博⼠)
    • 同年4⽉より 富⼠通株式会社(現職)
    •最近の気づき
    • 年次⼤会@沖縄のホテルは今すぐ抑えたほうが良い
    2022/12/14 NLPコロキウム 2

    View Slide

  3. tokenization
    2022/12/14 NLPコロキウム 3

    View Slide

  4. token i za tion
    2022/12/14 NLPコロキウム 4

    View Slide

  5. token i za tion
    tok en iza t ion
    token iz at ion
    2022/12/14 NLPコロキウム 5

    View Slide

  6. さっそくですが
    2022/12/14 NLPコロキウム 6

    View Slide

  7. さっそくですが
    「良い」Tokenizationって何でしょうか
    2022/12/14 NLPコロキウム 7

    View Slide

  8. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴抽出的な観点)
    2022/12/14 NLPコロキウム 8

    View Slide

  9. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴分析な観点)
    2022/12/14 NLPコロキウム 9

    View Slide

  10. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴抽出的な観点)
    2022/12/14 NLPコロキウム 10

    View Slide

  11. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴抽出的な観点)
    2022/12/14 NLPコロキウム 11

    View Slide

  12. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴抽出的な観点)
    2022/12/14 NLPコロキウム 12

    View Slide

  13. さっそくですが
    「良い」Tokenizationって何でしょうか
    エンコード・デコードの
    効率が良いもの
    (情報圧縮的な観点)
    ⼈間にとって読みやすいもの
    (形態論的な観点)
    あるタスクでの
    処理性能が⾼くなるもの
    (応⽤的な観点)
    特徴的な系列を
    トークンとして認識できるもの
    (特徴抽出的な観点)
    今回のトピック
    2022/12/14 NLPコロキウム 13

    View Slide

  14. 解決されていない課題
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    2022/12/14 NLPコロキウム 14

    View Slide

  15. 解決されていない課題と対処法
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    可能なあらゆる
    Tokenizationをすべて
    使ってタスクを学習
    ありえそうな
    Tokenizationをいくつか
    使ってタスクを学習
    良いTokenizationに
    向かって最適化
    サブワード正則化
    Lattice LSTMなど OpTokなど
    Zhang+, 2018. Chinese NER Using
    Lattice LSTM.
    Kudo, 2018. Subword Regularization:
    Improving Neural Network Translation
    Models with Multiple Subword Candidates.
    Hiraoka+, 2020. Optimizing word
    segmentation for downstream task.
    ⼒こそパワー型
    2022/12/14 NLPコロキウム 15

    View Slide

  16. 解決されていない課題と対処法
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    可能なあらゆる
    Tokenizationをすべて
    使ってタスクを学習
    ありえそうな
    Tokenizationをいくつか
    使ってタスクを学習
    良いTokenizationに
    向かって最適化
    サブワード正則化
    Lattice LSTMなど OpTokなど
    Zhang+, 2018. Chinese NER Using
    Lattice LSTM.
    Kudo, 2018. Subword Regularization:
    Improving Neural Network Translation
    Models with Multiple Subword Candidates.
    Hiraoka+, 2020. Optimizing word
    segmentation for downstream task.
    ⼒こそパワー型
    効率的で賢い!
    2022/12/14 NLPコロキウム 16

    View Slide

  17. 解決されていない課題と対処法
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    可能なあらゆる
    Tokenizationをすべて
    使ってタスクを学習
    ありえそうな
    Tokenizationをいくつか
    使ってタスクを学習
    良いTokenizationに
    向かって最適化
    サブワード正則化
    Lattice LSTMなど OpTokなど
    Zhang+, 2018. Chinese NER Using
    Lattice LSTM.
    Kudo, 2018. Subword Regularization:
    Improving Neural Network Translation
    Models with Multiple Subword Candidates.
    Hiraoka+, 2020. Optimizing word
    segmentation for downstream task.
    ⼒こそパワー型
    効率的で賢い!
    ロマン型
    2022/12/14 NLPコロキウム 17

    View Slide

  18. 解決されていない課題と対処法
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    可能なあらゆる
    Tokenizationをすべて
    使ってタスクを学習
    ありえそうな
    Tokenizationをいくつか
    使ってタスクを学習
    良いTokenizationに
    向かって最適化
    サブワード正則化
    Lattice LSTMなど OpTokなど
    Zhang+, 2018. Chinese NER Using
    Lattice LSTM.
    Kudo, 2018. Subword Regularization:
    Improving Neural Network Translation
    Models with Multiple Subword Candidates.
    Hiraoka+, 2020. Optimizing word
    segmentation for downstream task.
    ⼒こそパワー型
    効率的で賢い!
    ロマン型
    2022/12/14 NLPコロキウム 18

    View Slide

  19. 解決されていない課題と対処法
    「 良 い 」Tokenizationがわからない
    タスクでの性能が上がる
    可能なあらゆる
    Tokenizationをすべて
    使ってタスクを学習
    ありえそうな
    Tokenizationをいくつか
    使ってタスクを学習
    良いTokenizationに
    向かって最適化
    サブワード正則化
    Lattice LSTMなど OpTokなど
    Zhang+, 2018. Chinese NER Using
    Lattice LSTM.
    Kudo, 2018. Subword Regularization:
    Improving Neural Network Translation
    Models with Multiple Subword Candidates.
    Hiraoka+, 2020. Optimizing word
    segmentation for downstream task.
    ⼒こそパワー型
    効率的で賢い!
    ロマン型
    2022/12/14 NLPコロキウム 19

    View Slide

  20. サブワード正則化の方法
    Tokenizer Subword Regularization Method
    Unigram SentencePieceʼs option
    Byte Pair Encoding BPE-Dropout
    最⻑⼀致法
    (WordPiece)
    BERT-baseなどで
    広く使われる
    Tokenization⼿法
    最⻑⼀致法向けのサブワード正則化があれば、
    BERTなどでも性能がもっと上がるかも
    2022/12/14 NLPコロキウム 20

    View Slide

  21. 最長一致法のためのサブワード正則化
    Tokenizer Subword Regularization Method
    Unigram SentencePieceʼs option
    Byte Pair Encoding BPE-Dropout
    最⻑⼀致法
    (WordPiece)
    MaxMatch-Dropout
    (今回のメイントピック)
    BERT-baseなどで
    広く使われる
    Tokenization⼿法
    最⻑⼀致法向けのサブワード正則化があれば、
    BERTなどでも性能がもっと上がるかも
    2022/12/14 NLPコロキウム 21

    View Slide

  22. 最長一致法でのTokenization
    word wor / d
    w, o, r, d, or, rd, wor
    Vocabulary
    前から後ろへ貪欲に
    最⻑⼀致⽂字列を分割
    最⻑⼀致法を⽤いた
    Tokenization
    2022/12/14 NLPコロキウム 22

    View Slide

  23. w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    最長一致法でのTokenization(Trieで書くと…)
    2022/12/14 NLPコロキウム 23

    View Slide

  24. w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    最長一致法でのTokenization(Trieで書くと…)
    2022/12/14 NLPコロキウム 24

    View Slide

  25. w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    Read “w”
    最長一致法でのTokenization(Trieで書くと…)
    2022/12/14 NLPコロキウム 25

    View Slide

  26. w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    Read “w”
    Read “o”
    最長一致法でのTokenization(Trieで書くと…)
    2022/12/14 NLPコロキウム 26

    View Slide

  27. w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    Read “w”
    Read “o” Read “r”
    最長一致法でのTokenization(Trieで書くと…)
    2022/12/14 NLPコロキウム 27

    View Slide

  28. 最長一致法でのTokenization(Trieで書くと…)
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    Read “w”
    Read “o” Read “r”
    No transition to
    “d”, yield “wor”
    2022/12/14 NLPコロキウム 28

    View Slide

  29. 最長一致法でのTokenization(Trieで書くと…)
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Initial state
    Read “w”
    Read “o” Read “r”
    No transition to
    “d”, yield “wor”
    2022/12/14 NLPコロキウム 29

    View Slide

  30. 最長一致法でのTokenization(Trieで書くと…)
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Read “w”
    Read “o” Read “r”
    No transition to
    “d”, yield “wor”
    Initial state
    Read “d”
    2022/12/14 NLPコロキウム 30

    View Slide

  31. 最長一致法でのTokenization(Trieで書くと…)
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Read “w”
    Read “o” Read “r”
    No transition to
    “d”, yield “wor”
    Initial state
    Read “d” Input ends,
    yield “d”
    2022/12/14 NLPコロキウム 31

    View Slide

  32. 最長一致法は決定的な分割方法(当たり前)
    word wor / d
    同じ⼊⼒は必ず同じ系列に分割される
    2022/12/14 NLPコロキウム 32

    View Slide

  33. 最長一致法は決定的な分割方法(当たり前)
    word wor / d
    同じ⼊⼒は必ず同じ系列に分割される
    Q. 最⻑⼀致法の仕組みの中で、確率的な分割を得るにはどうしたらよいか?
    サブワード正則化のためには
    確率的な分割を⾏う必要がある
    ⼀⽅で…
    2022/12/14 NLPコロキウム 33

    View Slide

  34. MaxMatch-Dropoutのアイディア
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    word wor / d
    同じ⼊⼒は必ず同じ系列に分割される
    Q. 最⻑⼀致法の仕組みの中で、確率的な分割を得るにはどうしたらよいか?
    サブワード正則化のためには
    確率的な分割を⾏う必要がある
    ⼀⽅で…
    2022/12/14 NLPコロキウム 34

    View Slide

  35. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Dropped state
    Randomly removed state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 35

    View Slide

  36. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Dropped state
    Initial state
    Randomly removed state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 36

    View Slide

  37. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Dropped state
    Initial state
    Read “w”
    Randomly removed state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 37

    View Slide

  38. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Randomly removed state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 38

    View Slide

  39. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word wor / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Read “r”
    Randomly removed state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 39

    View Slide

  40. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Read “r”
    Randomly removed state
    No transition to “word”,
    yield final accpeted token “w”
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 40

    View Slide

  41. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Read “r”
    Randomly removed state
    No transition to “word”,
    yield final accpeted token “w”
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 41

    View Slide

  42. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Read “r”
    Randomly removed state
    No transition to “word”,
    yield final accpeted token “w”
    Read “o”
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 42

    View Slide

  43. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Initial state
    Read “w”
    Read “o”
    Read “r”
    No transition to “word”,
    yield final accpeted token “w”
    Read “r”
    Read “o”
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 43

    View Slide

  44. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Read “w”
    Read “o”
    Read “r”
    No transition to “word”,
    yield final accpeted token “w”
    Read “r”
    Yield “or”
    Read “o”
    Initial state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 44

    View Slide

  45. MaxMatch-Dropout
    w o
    o r
    r d
    d
    r
    Accepting state (words in vocabulary)
    Non-accepting state
    word w / or / d
    Dropped state
    Read “w”
    Read “o”
    Read “r”
    No transition to “word”,
    yield final accpeted token “w”
    Read “r”
    Yield “or”
    Read “d”
    Input ends,
    yield “d”
    Read “o”
    Initial state
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 45

    View Slide

  46. サブワード正則化としてのMaxMatch-Dropout
    学習step/epochごとに異なるTokenizationが利⽤できる
    ⇒サブワード正則化!
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!
    2022/12/14 NLPコロキウム 46

    View Slide

  47. サブワード正則化としてのMaxMatch-Dropout
    学習step/epochごとに異なるTokenizationが利⽤できる
    ⇒サブワード正則化!
    Dropout率によるサブワード正則化の強さ
    characteristics
    characteristic_s
    char_acter_istics
    ch_a_r_acter_i_s_t_i_c_s
    0.1
    0.5
    0.9
    2022/12/14 NLPコロキウム 47
    最⻑⼀致探索において語彙をランダムに削除する
    →Tokenizationをサンプリングできる!

    View Slide

  48. MaxMatch-Dropoutによる性能向上
    Tokenization
    ⽂書分類
    平均 F1*
    +BERT
    平均 F1*
    機械翻訳
    平均 BLEU**
    Unigram 66.74 - 27.88
    + サブワード正則化 68.60 - 29.35
    BPE 65.86 - 27.06
    + BPE-Dropout 66.98 - 28.71
    Maximum Matching
    (WordPiece)
    64.62 82.50 26.84
    + MaxMatch-Dropout 66.37 82.96 28.41
    +1.47
    +1.65
    +1.57
    他のサブワード正則化の⼿法と同様に、
    MaxMatch-Dropoutも性能の向上に貢献
    * 英語GLEU・韓国語KLEU・⽇本語Twitterデータセット
    ** IWSLT14 De-En, En-De, IWSLT15 Vi-En, En-Vi, Zh-En, En-Zh
    2022/12/14 NLPコロキウム 48
    +1.86
    +1.13
    +1.74 +0.46

    View Slide

  49. Easy to Try!
    Official implementation is available at:
    https://github.com/tatHi/maxmatch_dropout
    from transformers import BertTokenizer
    tknzr = BertTokenizer.from_pretrained('bert-base-cased’)
    import maxMatchTokenizer
    mmt = maxMatchTokenizer.MaxMatchTokenizer()
    mmt.loadBertTokenizer(tknzr, doNaivePreproc=True)
    mmt.tokenize(‘hello, wordpiece!’, p=0.5)
    # outputs: ['hello', ',', 'w', '##ord', '##piece', '!']
    BertTokenizer can be
    directly loaded!
    BertTokenizerに組み込んでpull request出したいなあと思いつつ半年が経っている
    2022/12/14 NLPコロキウム 49

    View Slide

  50. ポエム
    • なぜサブワード正則化で性能が上がるのか?
    • perturbationの効果
    • いろんなEmbeddingに学習の機会が回ってくるので、学習効率が良さそう
    • augmentationの効果
    • ⼀つの⽣⽂から、「似てるけどちょっと違う系列」を⼤量に作ることができる
    • ハイパラによる性能差が「なぜ」出るのかを深堀りしても良い
    • Embeddingの学習頻度などと関係があるのか、共起頻度などにヒントが有るのかなど…
    • サブワード正則化の⽅法による性能差が出てきても⾯⽩いと思う
    • ⽣⽂を「可逆圧縮する」やり⽅にバリエーションをつければよいので、
    いろいろなやり⽅がありそう
    • ⾔語モデルに基づいたサンプリングや、Dropoutに基づいたサンプリングとは違う視点から、
    Tokenizationのバリエーションをつける⽅法が出てくると楽しそう
    • どのバリエーションの付け⽅が、 「良い」サブワード正則化なのかを議論できたら楽しい
    2022/12/14 NLPコロキウム 50

    View Slide