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. 私 •平岡達也 • @7a7hi •経歴 • 2017年 早稲⽥⼤(⽂学学⼠) • 2019年

    NAIST(⼯学修⼠) • 2022年 東⼯⼤(⼯学博⼠) • 同年4⽉より 富⼠通株式会社(現職) •最近の気づき • 年次⼤会@沖縄のホテルは今すぐ抑えたほうが良い 2022/12/14 NLPコロキウム 2
  2. token i za tion tok en iza t ion token

    iz at ion 2022/12/14 NLPコロキウム 5
  3. 解決されていない課題と対処法 「 良 い 」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
  4. 解決されていない課題と対処法 「 良 い 」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
  5. 解決されていない課題と対処法 「 良 い 」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
  6. 解決されていない課題と対処法 「 良 い 」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
  7. 解決されていない課題と対処法 「 良 い 」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
  8. サブワード正則化の方法 Tokenizer Subword Regularization Method Unigram SentencePieceʼs option Byte Pair

    Encoding BPE-Dropout 最⻑⼀致法 (WordPiece) BERT-baseなどで 広く使われる Tokenization⼿法 最⻑⼀致法向けのサブワード正則化があれば、 BERTなどでも性能がもっと上がるかも 2022/12/14 NLPコロキウム 20
  9. 最長一致法のためのサブワード正則化 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
  10. 最長一致法でのTokenization word wor / d w, o, r, d, or,

    rd, wor Vocabulary 前から後ろへ貪欲に 最⻑⼀致⽂字列を分割 最⻑⼀致法を⽤いた Tokenization 2022/12/14 NLPコロキウム 22
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 最長一致法での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
  17. 最長一致法での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
  18. 最長一致法での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
  19. 最長一致法での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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. ポエム • なぜサブワード正則化で性能が上がるのか? • perturbationの効果 • いろんなEmbeddingに学習の機会が回ってくるので、学習効率が良さそう • augmentationの効果 •

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