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
  2. 本日の論文 Second Workshop on Simple and Efficient Natural Language Processing

    (SustaiNLP 2021) ∗Work done during an internship at Amazon. 2 / 20
  3. どんな論文? • Domain Adaptation に関する論文 (言語モデルを論文やニュース、レビューなどのドメインの異な るテキストでも効果を発揮させるにはどうすればよいか) • 既存の手法と異なり、追加の事前学習を一切行わずに Tokenizer

    だけ変更する手法を提案し、評価 • 追加の事前学習を行なった場合のパフォーマンス向上と遜色の ない向上(平均して 97 %)が得られることがわかった 3 / 20
  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
  5. 背景: Domain Adaptation Tai et al, exBERT: Extending Pre-trained Models

    with Domain-specific Vocabulary Under Constrained Training Resources 語彙を追加して、追加した部分に対応するモデルの重みだけ追加学習 する 6 / 20
  6. 1. どの語彙を追加すべきか 例えば, 通常のドメインの言語モデルである RoBERTa の Tokenizer は "oboe" という単語を

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

    元のドメインの Tokenizer でそれぞれのコーパスを subword に分割 する. その中で, あるサブワード列 (例)["ob", "oe"])がコーパス C におい て何回出現するかをそれぞれのドメイン(C = S, T)でカウントする (Cs と表記する). 9 / 20
  8. 1. どの語彙を追加すべきか 次に, そのサブワード列 s がコーパス C において "どれくらいフレー ズらしいか"

    の確率2 を以下の式で計算する PC (s) = Cs Ct ただし t は s の最初の |s| − 1 トークンを表す ["ob", "oe"] の例であれば, 通常ドメインであれば "ob" は ["ob", "ama"] などでも出てくるのでこの値は低い. 一方でクラシック音楽ドメイン であれば "ob" の次はほとんど "oe" なのでこの値は高い. 2サプライザルのようなもの 10 / 20
  9. 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
  10. 2. 追加した語彙の Embedding をどう得るか 新しく語彙を定めたら, それに対応する token embeddings も定める必 要がある

    exBERT では, ランダムに初期化して, 追加学習の過程で最適化させて いたが, 本手法では学習せずに, 既存の語彙に対応する Embeddings か ら決定してしまう 13 / 20
  11. 2. 追加した語彙の Embedding をどう得るか 手法 1: Subword-based initialization 単純に, 既存の

    token embeddings の平均としてしまう手法 例えば RoBERTa に "oboe" という語彙を追加させたい場合, "ob" と "oe" それぞれの token embeddings の平均としてしまう 簡単に実装できるが, 追加する単語の意味が各 subword の意味と全く 関係ない時に negative な影響を与えうる 14 / 20
  12. 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
  13. 実験 • BioMed, CS, News, Reviews の 4 つのドメインで分類タスクを行う •

    元の RoBERTa でそのまま実験した場合や, 追加学習(DAPT)を 行なった場合などと比較 16 / 20
  14. 結果 • 全てのタスクにおいて RoBERTa よりも精度向上 • DAPT を適用した場合の精度上昇幅と比べても, 平均して 97%

    の 精度上昇を Adaptive Tokenization だけで得られる(ただしタスク において結構ムラはある) • Projection-based initialization はあまり効果がなかった 17 / 20
  15. 感想 • 語彙を調整するだけでここまで精度が上がるのかということに まず驚いた • Projection-based initialization が average embedding

    に比べてそこ まで上手くいっていないのは不思議な気もする • 分類タスクでしか実験を行なっていないが, NER などの方が専門 語彙の知識が要りそうなので影響が出そう 20 / 20