# 日本語 Tokenizer の違いは下流タスク性能に影響を与えるか？

藤井 巧朗 1* 柴田 幸輝 2* 山口 篤季 3 十河 泰弘 ${ }^{3}$
1 横浜国立大学 2 筑波大学 3 株式会社日立製作所研究開発グループ
${ }^{1}$ tkr.fujii.ynuegmail.com ${ }^{2}$ s1811496@klis.tsukuba.ac.jp
${ }^{3}$ \{atsuki.yamaguchi.xn, yasuhiro.sogawa.tp\}@hitachi.com

## 概要

本研究では、形態素解析器やサブワード分割手法の違いが大規模言語モデルに与える影響を調査した。種々の形態素解析器とサブワード分割手法を考慮した全 18 種のトークナイザについて、トークナイザの学習と BERT モデルの事前学習、 7 個の下流タスクでのファインチューニングを行い、下流タスクの性能を比較した。また、形態素解析器の有無やその違い、サブワード分割手法の違い、単語分かち書き辞書の違い、トークナイザ辞書の類似性の観点から各種トークナイザの与える影響を評価した。

## 1 はじめに

近年、BERT [1]をはじめとした大規模言語モデルの登場により、自然言語処理における様々なタスクの性能が飛躍的に向上した。現在に至るまで、様々な日本語事前学習済み言語モデルが公開されている。例えば、東北大学の乾研究室は事前学習済み BERT モデル1)を公開しているほか、早稲田大学の河原研究室は事前学習済み RoBERTa モデル2)を公開している。

こうした日本語の事前学習済み言語モデルが用いるトークナイザは、モデルにより異なる。前述の東北大 BERT モデルは、形態素解析器に MeCab [2]、サブワード分割手法に WordPiece [3] を用いたトークナイザを活用している。一方で、早稲田大学 RoBERTa モデルは、形態素解析器に Juman++ [4]、サブワード分割手法に Unigram [5] を用いたトークナイザを活用している。

トークナイザが異なると、大力文の分割粒度が異なるため、言語モデルの学習する潜在表現に何らかの影響を与えると考えられる。このため、トークナ


イザの違いは下流タスクの性能に影響する可能性がある。実際にトークナイザの下流タスクに与える影響については、築地ら [6] や井上ら [7]が調査している。しかし、前者は事前学習時とファインチューニング時で異なるトークナイザを用いている点、後者はサブワード分割手法に BPE のみ考慮している点や 1 個の下流タスクでのみ分析を行っている点から、先行研究はトークナイザの下流タスクの性能に与える影響について十分な検討を行えていない。

そこで本研究では、形態素解析器を使わない場合も考慮した 6 種の形態素解析器と 3 種のサブワー ド分割手法の組合せに対して、同一のデータによりトークナイザの学習および BERT の事前学習を行い、JGLUE [8] や固有表現抽出 [9]、構文解析 [10] 夕スクにおけるファインチューニング時の性能を測定することで、形態素解析器やサブワード分割手法の違いが与える影響を網羅的に分析した。

本論文の貢献は次の 2 点である。(1) 複数の日本語形態素解析器とサブワード分割手法の組合せについて、統一的な実験設定で事前学習、およびファインチューニングを実施し、様々な下流タスクにおける性能評価を行った。(2) 各種形態素解析器、およびサブワード分割手法が下流タスク性能に与える影響を 5 つの観点から解析した。

## 2 日本語トークナイザ

日本語の事前学習済み言語モデルが用いるトークナイザは、形態素解析器とサブワード分割手法により構成される。トークナイズ手順は、まず形態素解析器により入力文を単語単位に分割する。次に、分割された各単語に対して、サブワード分割手法を用いてサブワード単位に分割する。言語モデルへの入力は、サブワード単位に分割された文を用いる。

以下、本章では本稿において考慮する形態素解析器とサブワード分割手法について解説する。

## 2.1 形態素解析器

MeCab MeCab [2] は辞書をもとにラティスを構築し、ビタビアルゴリズムにより累積コストが最小となる組合せを選択することでトークナイズを行う。コストの計算は、CRFによる系列ラベリングの際に素性関数を用いて行われる。また、辞書には IPAdic や NEologd $[11]^{3)}$ な゙があり、NEologd は新語・固有表現が追加され、語彙数が多い辞書である。

Juman++ Juman++ [4] は人手で調整された基本語彙辞書と Wikipedia や Webコーパスから自動作成した辞書をもとにラティスを構築し、ビームサーチによりシーケンススコアが最大となる組合せを選択することでトークナイズを行う。シーケンススコアの計算は、RNN 言語モデルを用いて行われる。

Sudachi Sudachi [12] は、UniDic [13] と NEologd をべースに人手で調整された辞書に基づいてトークナイズを行う。また、Sudachi は分割粒度の異なる 3 つのトークナイズが可能であり、目的に応じて使い分けられる。使用できる辞書としては Small、Core (Sudachi のデフォルト辞書)、Full の 3 種類の辞書が存在する。本研究では、基本的な語彙を収録した Core を辞書に用いた。

Vaporetto Vaporetto [14] は一定幅の窓を設定し、窓内の文字列から素性を取り出し、各文字間の単語境界の有無を線形分類モデルにより判別することでトークナイズを行う。辞書には UniDic を用いる。

## 2.2 サブワード分割手法

Byte-Pair-Encoding BPE (Byte-Pair-Encoding) [15] は、文字ぺアの出現頻度が高いものから結合リストに追加し、結合した文字列を辞書に追加することで学習される。トークナイズは、文字分割後に結合リストを参照し、出現頻度の高い文字ペアから順に結合することで行われる。

WordPiece WordPiece $[3]^{4}$ は、文字ぺアの頻度が高く、個々のパーツの出現頻度が低いものから結合した文字列を辞書に追加することで学習される。 トークナイズは、先頭の文字から順に、辞書にある最長のサブワードにより分割することで行われる。

Unigram Unigram [5] は、出現した全文字パター ンを辞書に追加し、Unigram 言語モデルによりその語彙を失ったときの損失を計算し、損失の小さい語


4）本研究での WordPiece は BERT の最長一致の実装に基づく。彙を削除することで学習される。トークナイズは、全文字パターンを列挙し、トークンの出現確率が高い語彙の組み合わせを選択することで行われる。

## 3 実験設定

比較対象形態素解析器には 2.1 で示した MeCab、MeCab+NEologd、Juman++、Sudachi、Vaporetto の 5 種、サブワード分割手法には $\$ 2.2$ で示した BPE、WordPiece、Unigram の 3 種を用いた計 15 種、 および、形態素解析器を用いずサブワード分割手法のみを用いた 3 種の計 18 種のトークナイザを比較する。また、参考値として、bert-base-japanese ${ }^{1)}$ の性能も測定する。

評価観点本稿では、トークナイザが言語モデルに与える影響を以下の 5 観点から調査する。

・形態素解析器を用いるべきか

・形態素解析器の違いが与える影響

・どのサブワード分割手法を用いるべきか

・形態素解析器の辞書の違いが与える影響

・トークナイザ辞書の類似性が与える影響

実験データトークナイザの学習は、Wikipedia ${ }^{5)}$ からランダムに 1000 万文を抽出し、実行した。 ただし、"Category"および表が入っている文と 30 文字未満の文を除いた。事前学習は Wikipedia と CC-1006) を用い、それぞれ 512 トークンに近づくように文を結合してから、220万、110万個のデータを抽出し、マスク言語モデリング [1] により実行した。ファインチューニングには、JGLUE、ストックマーク株式会社による日本語 NER データセット、 UD-Japanese-GSD を用いた。”7) ただし、JGLUE は test セットが公開されていないため、train セットにより 5 分割交差検証を行い、dev セットで評価を行った。

が存在しないため、train セットを 9:1 に分割し、前者で 5 分割交差検証を行い、後者で評価を行った。

ハイパーパラメータ $\quad$ トークナイザは語彙数を 3 万として学習した。モデルには、BERT-base ( $\mathrm{L}=12$ 、 $\mathrm{H}=768 、 \mathrm{~A}=12)$ を採用した。事前学習では、オプティマイザに AdamWを用い、学習率を 1e-4、バッチサイズを 128、ステップ数を 50 万ステップとした。 ファインチューニングでは、学習率を3e-5、バッ



 &  &  &  &  &  &  & Avg. \\

表 1 JGLUE、NER、UD データセット上での評価結果。各数値は、JGLUE と NER では 5 分割交差検証の平均值 (標準偏差) を、UD では 5 シードの平均值 (標準偏差) を示している。JCQA は JCommonsenseQA データセットの略である。

表 2 形態素解析器ありの場合となしの場合の性能比較。数値は各サブワード分割手法における各タスクでの性能の平均值であり、\{形態素解析器ありの性能平均\}/\{形態素解析器なしの性能\}を示している。また、全タスク、Token-level タスク、Sequence-level タスクの平均値も示している。ただし Avg*は形態素解析器なしの WordPiece を計算から除外した。

大シーケンス長に関しては、MARC-ja と UDでは 512、JSTS、JNLI と NER では 128、JSQuAD では 348、 JCommonsenseQA では 64 とした。8)

## 4 実験結果

各トークナイザの下流タスク性能を表 1 に示す。

形態素解析器を用いるべきかまず、形態素解析器の有無が与える影響について分析する。具体的には、形態素解析器ありの場合となしの場合で、サブワード分割手法ごとに下流タスクの性能を比較する。また、形態素解析器の有無による影響は、タスクの粒度やサブワード分割手法によって異なる可能性があるため、これらの観点からも性能を比較する。表 2 は、形態素解析器ありの場合となしの場合において、サブワード分割手法ごとのタスク別平均值および、全タスク (Avg. / Overall)、Token-level タスク、Sequence-level タスクの平均値を示してい

8） ハイパーパラメータの詳細は付録 $\S$ A. 2 に記載。
る。ただし、形態素解析器なしの場合の WordPiece は明らかに性能が低いため、平均值 (Avg.*)の計算から除外した。Token-level タスクとは各トークンに対応する出力を用いて解くタスクであり、JSQuAD、 NER、UD が該当する。Sequence-level タスクとは [CLS] や [SEP]トークンを用いて解くタスクであり、 MARC-ja、JSTS、JNLI、JCQA が該当する。

表 2 より、全タスク平均 (Avg. / Overall, Avg.*)において、形態素解析器ありの方がなしよりも 2.0 ポイント上回り、各タスクでの平均 (Avg.*)においても、7 タスク中 5 タスクで形態素解析器ありの方が性能が高い結果となった。さらに、サブワー ド分割手法別で比較した場合、どのサブワード分割手法においても形態素解析器ありの方が性能が高く(Avg. / Overall)、タスク粒度単位で比較した場合、Token-level タスクでは形態素解析器ありの方が平均で 4.9 ポイント上回っており (Avg. / Token)、 Sequence-level タスクでは形態素解析器ありの方が
平均で 0.2 ポイント上回った (Avg. / Sequence)。以上から、サブワード分割手法によらず形態素解析器を用いた方が良く、特に Token-level タスクで形態素解析器を用いた方が良いと考えられる。

形態素解析器の違いが与える影響表 1 の形態素解析器ありの手法について比較する。形態素解析器の違いが与える影響を調査するため、単語辞書だけが MeCab と異なる、MeCab+NEologd を除いて比較を行った。比較の結果、MARC-ja、JSTS、JNLI、 JSQuAD および JCQA の計 5 タスクの性能に有意差はなかった ( $p \geq .05$, Kruskal-Wallis test) が、NER と UD の 2 タスクでは有意差が確認された $(p<.05$, Kruskal-Wallis test)。これらの結果から、少なくとも Sequence-level タスクでは形態素解析器の違いが与える影響は小さいと考えられる。

どのサブワード分割手法を用いるべきか表 2 の各サブワード分割手法における全タスク平均 (Avg. / Overall)より、形態素解析器ありの場合に関して、 Unigram と BPE の性能は 87.3 で等しく、WordPiece の性能は 86.3 と 1.0 ポイント悪化している。特に、 Sequence-level タスク (Avg. / Sequence) においては、 WordPiece の性能が低くなる傾向がある。9)この結果は、英語データセット上でのサブワード分割手法の比較 [16] における結果と同様の傾向である。したがって、サブワード分割手法には BPE かUnigram を用いるべきと考える。

単語分かち書き辞書の違いが与える影響佐藤ら [17] は、形態素解析器に豊富な語句を含む単語分かち書き辞書を活用することで、文書分類タスクの一部の性能が向上することを示している。そこで、より豊富な語を含んだ単語分かち書き辞書（NEologd） を考慮することで、下流タスク性能に差異が生じるかを分析した。表 1 の MeCabと MeCab+NEologd を比較すると、タスクごとの性能に有意差があるとは言えず ( $p \geq .05$, Mann-Whitney U test)、NEologd による明確な性能向上は見られなかった。NEologd は新語・固有表現に強いとされており、本研究では特に NER や JSQuAD タスクの性能に影響を与えると想定されたが、性能差は見られなかった。

## トークナイザ辞書の類似性が与える影響 トーク ナイズ結果はサブワード分割手法のトークナイザ辞書に大きく影響するため、辞書の類似度が高いもの はそのアルゴリズムによらずトークナイズ結果も類似し、下流タスクの性能も類似するのではないかと

9）考察を A. 3 に記す。

図 1 トークナイザ辞書の類似度と性能の関係。横軸はトークナイザ辞書の類似度、縦軸は各トークナイザの性能の差を表している。

考えた。そこで、トークナイザ辞書の類似度と下流タスクの関係について調査する。トークナイザ辞書の類似度と下流タスクの関係を図 1 に示す。横軸はトークナイザ辞書の類似度を示しており、トークナイザ辞書に出現する単語の重複率により算出した。 また、縦軸は各トークナイザの性能の差を示しており、表 1 の各トークナイザの全タスク平均 (Avg.) の差により算出した。つまり、ある 1 点は 2 つのトー クナイザの (辞書の類似度, 性能の差) を示している。図 1 より、下流タスクの性能の差とトークナイザ辞書の類似度の間には強い負の相関（-0.821）があり、 トークナイザ辞書の類似度が高ければ高いほど下流タスクの性能差は小さくなる傾向がある。したがって、トークナイザ辞書の類似度が高いと下流タスクの性能も類似すると考えられる。

## 5 結論

本稿では、全 18 種のトークナイザについて BERT モデルを事前学習し、様々な下流タスクでファインチューニングを行うことで、日本語トークナイザの違いが下流タスクの性能に与える影響について調査した。実験の結果、形態素解析器ありの方がなしよりも、全タスクの性能の平均值において 2.0 ポイント向上することが確認されたが、形態素解析器の違いや単語分かち書き辞書の違いによる性能の向上は見られなかった。また、サブワード分割手法に WordPiece を用いた場合、BPE および Unigram と比較して、性能が 1.0 ポイント低下することが確認された。最後に、トークナイザ辞書の類似性が下流夕スクの性能の差と相関があることを示した。今後は、エンコーダ・デコーダモデルやデコーダモデルにおけるトークナイザが与える影響を調査したい。

## 謝辞

株式会社日立製作所の清水正明氏には、本研究での実験に活用した大規模計算機資源の維持管理をしていただきました。ここに御礼申し上げます。

## 参考文献

[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pp. 4171-4186, Minneapolis, Minnesota, June 2019. Association for Computational Linguistics.

[2] T. KUDO. Mecab : Yet another part-of-speech and morphological analyzer. http://mecab.sourceforge.jp, 2006.

[3] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google's neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.

[4] Arseny Tolmachev, Daisuke Kawahara, and Sadao Kurohashi. Juman++: A morphological analysis toolkit for scriptio continua. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 54-59, Brussels, Belgium, November 2018. Association for Computational Linguistics.

[5] Taku Kudo. Subword regularization: Improving neural network translation models with multiple subword candidates. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 66-75, Melbourne, Australia, July 2018. Association for Computational Linguistics.

[6] 築地俊平, 新納浩幸. Tokenizer の違いによる日本語 bert モデルの性能評価. 言語処理学会第 27 回年次大会, 2021.

[7] 井上誠一, Nguyen Tung, 中町礼文, 李聖哲, 佐藤敏紀.日本語 gpt を用いたトークナイザの影響の調査. 言語処理学会第 28 回年次大会, 2022.

[8] 栗原健太郎, 河原大輔, 柴田知秀. Jglue: 日本語言語理解ベンチマーク. 言語処理学会第 28 回年次大会, 2022.

[9] 近崇宏江. Wikipediaを用いた日本語の固有表現抽出のデータセットの構築. 言語処理学会第 27 回年次大会, 2021.

[10] Takaaki Tanaka, Yusuke Miyao, Masayuki Asahara, Sumire Uematsu, Hiroshi Kanayama, Shinsuke Mori, and Yuji Matsumoto. Universal dependencies for japanese. In Proceedings of the Tenth International Conference on Language Resources and Evaluation (LREC'16), pp. 1651-1658. European Language Resources Association (ELRA), May 2016.

[11] 佐藤敏紀, 橋本泰一, 奥村学. 単語分かち書き辞書 mecab-ipadic-neologd の実装と情報検索における効果的な使用方法の検討. 言語処理学会第 23 回年次大会, 2017.

[12] Sakamoto Miho, Kawahara Noriko, Hisamoto Sorami, Takaoka Kazuma, and Uchida Yoshitaka. Large scale dictionary development for sudachi. 言語資源活用ワークショップ発表論文集.

[13] コーパス日本語学のための言語資源 : 形態素解析用電子化辞書の開発とその応用. 伝康晴 and 小木曽智信 and 小椋秀樹 and 山田篤 and 峯松信明 and 内元清貴 and 小磯花絵. 日本語科学, 第 22 巻, pp. 101-123.

[14] 赤部晃一, 神田峻介, 小田悠介, 森信介. Vaporetto: 点予測法に基づく高速な日本語トークナイザ. 言語処理学会第 28 回年次大会, 2022.

[15] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1715-1725, Berlin, Germany, August 2016. Association for Computational Linguistics.

[16] Rastislav Hronsky and Emmanuel Keuleers. Does the Choice of a Segmentation Algorithm Affect the Performance of Text Classifiers? Masterpieces of Swiss Entrepreneurship, Swiss SMEs Competing in Global Markets.

[17] 佐藤敏紀, 橋本泰一, 奥村学ほか. 単語分かち書き用辞書生成システム neologd の運用-文書分類を例にし乙. 研究報告自然言語処理 (NL), Vol. 2016, No. 15, pp. $1-14,2016$.

[18] Timothy Dozat and Christopher D. Manning. Deep biaffine attention for neural dependency parsing. In International Conference on Learning Representations, 2017.

[19] Chengyue Gong, Di He, Xu Tan, Tao Qin, Liwei Wang, and Tie-Yan Liu. Frage: Frequency-agnostic word representation. In S. Bengio, H. Wallach, H. Larochelle, K. Grauman, N. Cesa-Bianchi, and R. Garnett, editors, Advances in Neural Information Processing Systems, Vol. 31. Curran Associates, Inc., 2018.

[20] Kaj Bostrom and Greg Durrett. Byte pair encoding is suboptimal for language model pretraining. In Findings of the Association for Computational Linguistics: EMNLP 2020, pp. 4617-4624, Online, November 2020. Association for Computational Linguistics.

## A 付録

## A. 1 下流タスク

下記に、下流タスクに用いた 7 種類のタスクの説明をする。MARC-ja、JSTS、JNLI、JSQuAD、 JCommonsenseQA は JGLUE ${ }^{10)}$ に含まれており、NER は日本語の固有表現抽出データセット ${ }^{11)} 、$ UD は UD-Japanese-GSD ${ }^{12}$ を用いた。また、各データセットの統計情報を付録の表 3 に示す。

MARC-ja商品レビューを入力としてポジティブ/ネガティブをを推定する 2 值分類タスク。

JSTS 2 文を入力として 5 から 0 の範囲で類似度を推定するタスク。

JNLI 2 文を入力として含意関係を推定する 3 値分類タスク。

JSQuAD コンテキストの中から質問文の回答となる部分を抽出する質問応答タスク。

JCommonsenseQA 質問文に対して 5つの選択肢の中かから 1つを選択する質問応答タスク。

NER (Named Entity Recognition) 1 文の各トークンに対して固有表現タグを割り当てるタスク。

UD (Universal Dependencies) 各トークンに対して主辞となるトークンを当てる構文解析タスク。

表 3 データセット統計情報

## A. 2 実装

トークナイザの実装には、tokenizers ${ }^{13)}$ を用いた。モデルの実装には、PyTorch ${ }^{14)}$ と transformers ${ }^{15)}$ を用いた。UDは、Deep Biaffine Attention Parser (BAP) [18]を事前学習済みモデルの出力層上に構築し、学習を行った。BAP の実装には、SuPar ${ }^{16)}$ を用いた。実験は NVIDIA Tesla V100 GPU (SXM2 - 32GB)を用い、事前学習では 4 個、ファインチューニングでは 1 個で行った。また、すべての学習を $\mathrm{fp} 16$ でおこなった。AdamW のパラメータは事前学習、ファインチューニング共に Adam $\beta 1$ を 0.9、Adam $\beta 2$ を 0.999、Adam $\epsilon$ を 1e-08 とした。

## A. 3 サブワード分割手法に WordPiece を用いると性能が低下する原因

サブワード分割手法に WordPiece を用いた場合に性能が低下する理由を考察する。まず、"\#\#"による区別の影響が考えられる。例えば、MeCab・WordPiece の辞書に「田」と「\#\#田」が存在するように、同じ文字でも"\#\#"の有無により 2 回出現する場合があり、辞書に採録できるトークン数が実質的に減るため、[UNK] が増加してしまう。次に、出現頻度による影響が考えられる。「田」と「\#\#田」は出現頻度に差がある。出現頻度の異なるトークンは、言語的意味が類似していても、埋め込み表現の類似度は低くなる [19]。最後に、 デッドゾーンが影響すると考えられる。デッドゾーンとは、辞書内の他の語彙より出現頻度の低いトークンである。これは中国語や日本語の漢字を含む出現頻度の稀な文字 (鰕、魼など) が多数含まれることで生じる [20]。デッドゾーンが多いと、[UNK] が増加してしまう。実際に、MeCabを用いた場合、WordPiece、BPE、 Unigram の順でデッドゾーンが多いことが観測された。上記の統計的解析については、今後の課題としたい。

10) https://github.com/yahoojapan/JGLUE

11) https://github.com/stockmarkteam/ner-wikipedia-dataset

12) https://github.com/UniversalDependencies/UD_Japanese-GSD

13) https://github.com/huggingface/tokenizers

14) https://pytorch.org/

15) https://github.com/huggingface/transformers

16) https://github.com/yzhangcs/parser