日本語ニュース分類から見る多言語モデル

グローバル化が進む現代において、様々な言語で情報収集を行う必要性がこれまで以上に高まっています。Stockmark ではそうしたお客様の情報収集を支援するために多言語テキストの解析にまつわる研究が行われています。本日はその基礎技術である多言語モデルについて紹介します。
多言語モデル (multilingual language models, crosslingual language models) は複数の言語を扱うことができる言語モデルです1。リソースが十分にない言語での下流タスクにおいて、多言語モデルのパフォーマンスが単言語の言語モデルよりも優れていることが報告されています (Wu and Dredze 2019)。また多言語を1つのモデルで扱えるようになることで、言語ごとに異なるモデルを用意する必要がなくなるという運用上の利点もあります。こうした点から近年では多言語モデルは自然言語処理の研究における1つのホットトピックになっており、Hugging Face 上で mulitiilngual タグがついたモデルは 2022年4月現在 320 を超える盛り上がりを見せています。
一方で日本語のような英語と文法的に大きく異なる言語では多言語モデルの性能が低いことも報告されています (Pires+ 2019)。そこで本記事では英語と日本語に着目し、ニュース記事タイトルのラベル分類を例にとって多言語モデルの性能を検証します。
ニュースタイトル分類タスクでの実験
本記事では日本語のニュース記事のラベル分類を例に取り、次の2つの fine-tuning の方法を比較します。
- 日本語のニュース記事分類データでのみ fine-tuning を行う
- 英語のニュース記事分類データで事前に fine-tuning を行ってから日本語データで fine-tuning を行う
両者の違いは、日本語データでの fine-tuning の前に英語データでの fine-tuning を行うかどうかという点にあります。一般に英語のデータは日本語のデータに比べ多く手に入れやすいため、後者でより精度が高くなる場合はモデルの改善を行う上で大きな利点があります。
データセット 本実験では英語の記事ラベルデータセットとして News Article Classification dataset (NAC) (Fabio 2017) を、日本語のデータセットとして Stockmark 社内のデータセット2 (STMK) を使用します。NAC には 162,772 件、STMK には15,099 件の学習インスタンスが含まれています。両データセットで採用しているラベルが異なるため、今回はオリジナルのラベルを次の共通ラベルに変換してモデルを評価しました。
共通ラベル: business, education, entertainment, life, politics, science, travel
英語での fine-tuning の効果
まず、STMK 上で K-shot learning を行った場合の Accuracy を、事前に NAC で fine-tuning を行った場合とそうでない場合とで比較しました。ここで本記事では、各クラスのインスタンスをそれぞれ K 件用いて fine-tuning を行うことを K-shot learning と呼びます (N-way-K-shot 問題)。事前学習済み多言語モデルには mBERT と XLM-RoBERTa の2つを用い、両者に対して NAC で fine-tuning したモデルとそうでないモデルの 2 種類を用意しました (合計 2 * 2 = 4通り)3。図1 は K-shot learning の K を変化させることで Accuracy がどう変化するかを示した図です。K は {0, 1, 3, 5, 10, 20, 30, 50, 100} で実験を行いました。

この結果より次の傾向が見てとれます。
K が小さいときは事前に NAC で fine-tuningしたモデルの Accuracy が高い K < 20 の領域 (図1の左側) では事前に NAC で fine-tuning を行ったモデルの精度がそうでないモデルと比べ良いことがわかりました。この傾向は mBERT, XLM-RoBERTa の両方で確認できます。また、STMK で fine-tuning を行っていない (K=0) 場合でもある程度の Accuracy が出ている点は多言語モデルの特長と言えます。
K が大きいときは NAC の fine-tuning の影響は小さい K > 20 の領域 (図1の右側) では NAC の学習の有無にかかわらず同等の Accuracy が確認できます。この領域ではむしろ事前学習モデルの違い (mBERT VS XLM-RoBERTa) による精度差の方が大きいという結果が得られました。
クラス別の精度評価
次に K-shot learning によってどのクラスの精度が向上したかを確認します。図2は、NAC で事前学習された XLM-RoBERTa (図1の赤色の線) においてそれぞれのラベルの Precision が K={0, 10, 100} でどう遷移するかを図示したものです。

図2より、ラベルは (1) K=0 でも Precision が高く、K=100 でも Precision が高いもの (2) K=0 では Precision が低く、K=100 では Precision が高いもの (3) K=0 でも K=100 でも Precision が低いもの の3つに分類できることがわかりました。
Precision > 0.6 (K = 0) | Precision < 0.6 (K = 0) | |
---|---|---|
Precision > 0.6 (K = 100) | business, life, science | education, entertainment, travel |
Precision < 0.6 (K = 100) | politics |
これらのラベルの誤分類にはどのような傾向があるのでしょうか。図3は K={0, 100} での予測・正解をプロットしたヒートマップです。K=0 では (予測: education, 正解: life) や (予測: politics, 正解: life) などいくつかのラベルに誤分類が集中していることがわかります。これは、日本のニュースサイトから作成された STMK は教育・暮らし・地域政治などのラベルの話題が似ていることに起因していると考えられます。一方で K=100 では (予測: education, 正解: life) の分離は成功しているものの、(予測: politics, 正解: life) の分離はまだ多く起きていることが確認できました。

NAC での degradation
最後に、STMK で K-shot learning を行ったモデルは NAC 上で degradation を起こすかどうかを確認します。多言語を1つのモデルで扱うには、別の言語で K-shot learning を行った後も元の言語上で精度を保たなければなりません。図4は図1 で用いた STMK で K-shot learning を行ったモデルを NAC 上で評価した結果です。その結果、両モデルでの K=100 での Accuracy の低下は K=0 (K-shot learning なし) と比較して 5 ポイント程度であることがわかりました。

また、ラベル別の Precision の変化は図5のようになりました。ここで興味深いのは、図2であまり向上が見られなかったラベル (business, science) で顕著な degradation が見られたという点です。

ここで各ラベルの予測数を見ると、degradation が顕著である business, science は両者とももともと分類される記事が少なく、かつ K-shot learning によって分類される記事が倍近くに増えたという点が共通していました。この2ラベルは NAC の学習データ上にはあまり存在しないため、K-shot learning により大きな影響を受けたものと考えられます。
予測ラベル | K = 0 | K = 100 |
---|---|---|
business | 582 | 978 |
education | 2366 | 2272 |
entertainment | 4904 | 4047 |
life | 8650 | 8754 |
politics | 6570 | 6710 |
science | 658 | 1223 |
travel | 1481 | 1227 |
おわりに
本記事では日本語と英語に着目し、多言語モデルのニュース分類での性能を評価しました。これらの実験から、特に日本語のデータセットが小さい場合、英語のニュース分類で事前に fine-tuning を行うことで効果が出ることがわかりました。また誤分類・degradation はラベルごとに傾向が現れることがわかりました。
引用
- (Wu and Dredze 2019) Shijie Wu, Mark Dredze. Beto, Bentz, Becas: The Surprising Cross-Lingual Effectiveness of BERT. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. 2019.
- (Pires+ 2019) Telmo Pires, Eva Schlinger and Dan Garrette. How multilingual is Multilingual BERT? In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.
- (Fabio 2017) Fabio Gasparetti. Modeling user interests from web browsing activities. Data Mining and Knowledge Discovery. 2017.
Appendix: モデルの設定
NAC, STMK はいずれも train : val : test = 7 : 1.5 : 1.5 にランダムに分割しました。 本実験で使用したモデルは AllenNLP を利用し、以下の config ファイルを適用して学習しました (以下は mBERT の例ですが、XLM-RoBERTa も同様です)。
{
"dataset_reader": {
"type": "text_classification_json",
"token_indexers": {
"tokens": {
"type": "pretrained_transformer_mismatched",
"model_name": "bert-base-multilingual-cased",
"namespace": "tokens"
}
},
"tokenizer": {
"type": "pretrained_transformer",
"model_name": "bert-base-multilingual-cased"
}
},
"model": {
"type": "basic_classifier",
"seq2vec_encoder": {
"type": "bert_pooler",
"pretrained_model": "bert-base-multilingual-cased"
},
"text_field_embedder": {
"token_embedders": {
"tokens": {
"type": "pretrained_transformer_mismatched",
"model_name": "bert-base-multilingual-cased",
"train_parameters": true
}
}
}
},
"train_data_path": "./train.jsonl",
"validation_data_path": "./val.jsonl",
"trainer": {
"cuda_device": 0,
"grad_norm": 10,
"num_epochs": 3,
"optimizer": {
"type": "adam",
"lr": 1e-05
},
"patience": 5,
"validation_metric": "+accuracy"
},
"data_loader": {
"batch_sampler": {
"type": "bucket",
"batch_size": 5
}
},
"datasets_for_vocab_creation": [
"train"
],
}
注釈
- ここでは Transformer ベースの事前学習済み言語モデルを単に言語モデルと呼びます。
- 権利の関係上非公開となっています。
- NAC で fine-tuning したモデルの NAC での Accuracy は mBERT と XLM-RoBERTa でそれぞれ 0.812, 0.815 でした。
ストックマークでは、常により顧客価値の高い機能を実現するために、社内のResearchチームと連携して研究開発を進めています。もし本記事の内容や、研究・開発内容に興味があれば、ぜひカジュアルにお話しましょう!