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

【論文紹介】Efficient Domain Adaptation of Language Models via Adaptive Tokenization

Kaito Sugimoto
December 27, 2021

【論文紹介】Efficient Domain Adaptation of Language Models via Adaptive Tokenization

研究室の日本語輪読会で発表したスライドです。
内容に問題や不備がある場合は、お手数ですが hellorusk1998 [at] gmail.com までご連絡お願いいたします。

Kaito Sugimoto

December 27, 2021
Tweet

More Decks by Kaito Sugimoto

Other Decks in Research

Transcript

  1. Efficient Domain Adaptation of Language
    Models via Adaptive Tokenization
    Sachidananda et al., SustaiNLP 2021
    Kaito Sugimoto
    Aizawa Lab. M1
    2021/12/27
    1 / 20

    View Slide

  2. 本日の論文
    Second Workshop on Simple and Efficient Natural Language Processing
    (SustaiNLP 2021)
    ∗Work done during an internship at Amazon.
    2 / 20

    View Slide

  3. どんな論文?
    • Domain Adaptation に関する論文
    (言語モデルを論文やニュース、レビューなどのドメインの異な
    るテキストでも効果を発揮させるにはどうすればよいか)
    • 既存の手法と異なり、追加の事前学習を一切行わずに Tokenizer
    だけ変更する手法を提案し、評価
    • 追加の事前学習を行なった場合のパフォーマンス向上と遜色の
    ない向上(平均して 97 %)が得られることがわかった
    3 / 20

    View Slide

  4. 背景: Domain Adaptation
    例えば、論文の分野の分類タスクを行いたいが、普通の(Wikipedia な
    どで事前学習された)言語モデルしかない場合、どうするべきか?
    1
    高コスト高パフォーマンス: 論文テキストで事前学習されたモデ
    ルを一から作る
    2
    中コスト中パフォーマンス: 通常の言語モデルに論文テキストを
    追加学習させる (domain-adaptive pre-training: DAPT or
    task-adaptive pre-training: TAPT) 1
    3
    低コスト低パフォーマンス: 普通の言語モデルをそのまま使う
    しかし, 低コスト中~高パフォーマンスな手法がやはりほしい
    1Gururangan et al., Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks (ACL 2020)
    4 / 20

    View Slide

  5. 背景: Domain Adaptation
    高パフォーマンスのスクラッチ学習によって得られるメリットとし
    て、そのドメイン特有の語彙(token)を学べることにあるという観
    察がなされてきた.
    5 / 20

    View Slide

  6. 背景: Domain Adaptation
    Tai et al, exBERT: Extending Pre-trained Models with Domain-specific
    Vocabulary Under Constrained Training Resources
    語彙を追加して、追加した部分に対応するモデルの重みだけ追加学習
    する 6 / 20

    View Slide

  7. 本研究
    exBERT のような考え方をさらに突き詰めて、Tokenizer を調整するだ
    けで上手くいかないかを調べる
    筆者らはこれを "Adaptive Tokenization" と呼んでいる
    手法として問題になるのは
    1
    どの語彙を追加すべきか
    2
    追加した語彙の embedding をどう得るか
    の 2 点
    7 / 20

    View Slide

  8. 1. どの語彙を追加すべきか
    例えば, 通常のドメインの言語モデルである RoBERTa の Tokenizer は
    "oboe" という単語を "ob" と "oe" の 2 つの subword に分解してしまう
    これは, Tokenizer のアルゴリズムでは, 一定程度高頻度でないと 1
    トークンにならないため
    一方で, 例えばクラシック音楽に関するコーパスに Domain Adaptation
    させたい場合は, "oboe" を 1 つのトークンとして語彙に追加させたい
    8 / 20

    View Slide

  9. 1. どの語彙を追加すべきか
    追加語彙決定アルゴリズム
    言語モデルが学習された元のドメインのコーパスを S, adapt させた
    いドメインのコーパスを D と表記する
    元のドメインの Tokenizer でそれぞれのコーパスを subword に分割
    する.
    その中で, あるサブワード列 (例)["ob", "oe"])がコーパス C におい
    て何回出現するかをそれぞれのドメイン(C = S, T)でカウントする
    (Cs
    と表記する).
    9 / 20

    View Slide

  10. 1. どの語彙を追加すべきか
    次に, そのサブワード列 s がコーパス C において "どれくらいフレー
    ズらしいか" の確率2 を以下の式で計算する
    PC
    (s) =
    Cs
    Ct
    ただし t は s の最初の |s| − 1 トークンを表す
    ["ob", "oe"] の例であれば, 通常ドメインであれば "ob" は ["ob", "ama"]
    などでも出てくるのでこの値は低い. 一方でクラシック音楽ドメイン
    であれば "ob" の次はほとんど "oe" なのでこの値は高い.
    2サプライザルのようなもの
    10 / 20

    View Slide

  11. 1. どの語彙を追加すべきか
    PC
    (s) が通常ドメイン C = S と adapt させる対象ドメイン C = D でど
    のくらい違うかを KL ダイバージェンスで評価する
    R(s) = DKL
    (PD
    (s)||PS
    (s)) = PD
    (s) log
    PD
    (s)
    PS
    (s)
    この値が大きいトークン列から順に, 1 つのトークンとして語彙に追
    加する
    今回の実験では元々語彙 50,000 個の RoBERTa に 10,000 個追加
    11 / 20

    View Slide

  12. 1. どの語彙を追加すべきか
    ※ transfect: 細胞に核酸を導入する, assays: 試料の存在量や活性を定
    量的に測定するための手順, phosphorylation; リン酸化
    12 / 20

    View Slide

  13. 2. 追加した語彙の Embedding をどう得るか
    新しく語彙を定めたら, それに対応する token embeddings も定める必
    要がある
    exBERT では, ランダムに初期化して, 追加学習の過程で最適化させて
    いたが, 本手法では学習せずに, 既存の語彙に対応する Embeddings か
    ら決定してしまう
    13 / 20

    View Slide

  14. 2. 追加した語彙の Embedding をどう得るか
    手法 1: Subword-based initialization
    単純に, 既存の token embeddings の平均としてしまう手法
    例えば RoBERTa に "oboe" という語彙を追加させたい場合, "ob" と
    "oe" それぞれの token embeddings の平均としてしまう
    簡単に実装できるが, 追加する単語の意味が各 subword の意味と全く
    関係ない時に negative な影響を与えうる
    14 / 20

    View Slide

  15. 2. 追加した語彙の Embedding をどう得るか
    手法 2: Projection-based initialization
    word2vec のような non-contextualized な埋め込みの助けを借りる方法
    まず, 元のドメインのコーパス s と adapt させたいドメインのコーパ
    ス t それぞれで word2vec の埋め込み行列を学習させる(Xs, Xt
    ).
    次に Xs
    から RoBERTa の埋め込み行列 Cs
    への mapping を学習する
    (論文では単純な全結合ネットワークを学習させている).
    その mapping を使って, Xt
    から Ct
    を得る.
    Xt
    がクラシック音楽ドメインであれば例えば "oboe" の word2vec の埋
    め込みがあるので, Ct
    の方にも "oboe" に対応する埋め込みが得られる
    15 / 20

    View Slide

  16. 実験
    • BioMed, CS, News, Reviews の 4 つのドメインで分類タスクを行う
    • 元の RoBERTa でそのまま実験した場合や, 追加学習(DAPT)を
    行なった場合などと比較
    16 / 20

    View Slide

  17. 結果
    • 全てのタスクにおいて RoBERTa よりも精度向上
    • DAPT を適用した場合の精度上昇幅と比べても, 平均して 97% の
    精度上昇を Adaptive Tokenization だけで得られる(ただしタスク
    において結構ムラはある)
    • Projection-based initialization はあまり効果がなかった
    17 / 20

    View Slide

  18. 結果
    速度のメリットが大きい
    18 / 20

    View Slide

  19. 議論
    • RoBERTa よりも語彙の多い/少ないモデルでは同じような効果が
    得られるのか?
    • 英語以外の言語では上手くいくのか?
    • 追加する語彙のサイズはどの程度が調度いいのか?
    • PMI を使って追加語彙を決めた方がいいかもしれない
    19 / 20

    View Slide

  20. 感想
    • 語彙を調整するだけでここまで精度が上がるのかということに
    まず驚いた
    • Projection-based initialization が average embedding に比べてそこ
    まで上手くいっていないのは不思議な気もする
    • 分類タスクでしか実験を行なっていないが, NER などの方が専門
    語彙の知識が要りそうなので影響が出そう
    20 / 20

    View Slide