Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

背景: 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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