# クラス定義文を用いた Wikipedia 記事の分類

林歓樹 1 中山功太 ${ }^{2,3}$ 関根聡 ${ }^{2}$
1 早稲田大学基幹理工学部情報理工学科 2 理化学研究所 AIP ${ }^{3}$ 筑波大学情報生命学術院
rainline@akane.waseda.jp \{kouta.nakayama, satoshi.sekine\}@riken.jp

## 概要

本稿では、文書分類の一手法としてクラス定義文と深層学習を用いた手法を提案する。本手法は、 Zero-shot 設定にも適用可能といった特徴がある。提案手法のモデルを Wikipedia 構造化プロジェクト 「森羅 2021」の多言語分類タスクで提出した結果、全参加者のモデルの中で 30 言語中 17 言語でトップ の性能を示した。また、Zero-shot 設定でも実験を行 い、提案手法が一定の有効性を持つことを示した。 その結果から Zero-shot 予測に適した定義文につい て議論を行なった。

## 1 はじめに

近年深層学習を文章分類タスクへ適用した事例 が多く報告されている。その中でも訓練時に現れ なかったクラスを分類時に認識できるようにする Zero-shot 学習が盛んに研究されている [1]。

「森羅プロジェクト」[2]では、Wikipedia 上の知識 を機械が認識できるような形式に構造化することを 目標に、多くの人の協働のもとでリソースの構築を 行なっている。その中の分類タスクでは、Wikipedia 記事を拡張固有表現1) に基づいたカテゴリーへ分類 する。

本稿では、Wikipedia 記事の分類タスクを解くた め、クラス定義文を深層学習と併せて利用すること で分類を行う手法を提案する。実験によって、定義文を用いたアプローチが文章分類タスクで有効であ ること、また、Zero-shot 設定においても定義文を用 いたアプローチが有効であることを示す。

## 2 SHINRA2021ML

SHINRA2021ML は、30 言語の Wikipedia 記事を拡張固有表現に基づいた約 220 のカテゴリーに分類 をするタスクである。本タスクでは分類済み日本語 Wikipedia 記事から言語間リンクが張られている他

1) http://liat-aip.sakura.ne.jp/ene/ene8.1/definition_jp/言語の記事を訓練データとして用いている。本来は 複数クラスへの分類タスクだが、訓練データのうち 複数クラスに分類される例が $2.50 \%$ と非常に少ない ため、今回は単一クラスの分類タスクとして扱う。

## 3 関連研究

今まで提案された多言語における Wikipedia 記事 の分類手法として、多言語 BERT モデル [3] を全言語で学習させたのち、各言語のモデルを作成してそ の言語ごとの学習データのみで fine-tuning するとい う手法が提案されている $[4]$ 。その際用いられる学習データは Wikipedia 記事本文のみである。また本文以外の情報を学習データに利用した手法も提案さ れている [5]。記事本文の他に、記事同士の関係を 表した知識グラフ、画像情報、記事のレイアウト、拡張固有表現の階層情報を学習データとして利用し ている。また、Wikipedia 自身のカテゴリ情報のみ を用いて分類する手法も提案されている [6]。

Aly らは、クラス定義文を利用した Zero-shot 固有表現抽出の手法を提案している [1]。対象とする文 にクラス定義文を連結して深層学習モデルに入力す ることで訓練時に現れないクラスの抽出を行なって いる。

本研究では、Wikipedia の記事の分類にクラス定義文の情報を利用する手法を提案する。さらに Zero-shot 設定での分類も行う。

## 4 提案手法

一般的なクラス分類モデルでは、深層学習モデル の出力ベクトルと、各行が各クラスに対応する学習可能な行列との積を取ることでクラス予測を行う。 そのため、各クラスに付与された情報を用いること ができない。対して、提案手法では後者の行列をク ラスに付与された定義文を元に生成する。つまり、文章を埋め込むモデルの出力べクトルとクラス定義文を埋め込むモデルの出力行列の積により最終的な クラスを予測する。

## Wikipedia 記事の埋め込み表現の取得方法 初め

に Wikipedia 記事の文章を、WordPiece[7] により分割し、トークン列 $\mathbf{x}=\left(x_{1}, x_{2}, \ldots, x_{p}\right)$ を得る。 $p$ は深層学習モデルへの入力長である。WordPiece はサブ ワードの考え方を用いた分割の一手法である。次 に、104 言語で事前学習された多言語 BERT モデル [3] を用いて得られたトークン列から埋め込みべク トル $\mathbf{v} \in \mathbb{R}^{n}$ を得る。2)ここで $\mathrm{n}$ は埋め込みべクトル の次元数である。

## クラス定義文の埋め込み表現の取得方法 SHINRA2021ML タスクでは階層的な拡張固有表現 の末端カテゴリーへの分類を行う。そのため我々は 本実験では、未端カテゴリーのクラス定義文のみを 用いる。拡張固有表現の $i$ 番目の末端カテゴリの 定義文に対し、Wikipedia 記事と同様の前処理を行 い、トークン列 $\mathbf{t}_{i}=\left(t_{i, 1}, t_{i, 2}, \ldots, t_{i, q}\right)$ を得る。 $q$ は深層学習モデルへの入力長である。その後、学習済み 多言語 BERT を用いて、埋め込みべクトル $\mathbf{g}_{i} \in \mathbb{R}^{n}$ を得る。また、すべての定義文を埋め込むことで行列 $G \in \mathbb{R}^{c \times n}$ を得る。 $c$ は末端カテゴリーの総数で ある。

クラス分類 得られた文章埋め込みベクトル $v$ と 定義文埋め込み行列 $G$ の積により、最終的な各クラ スの予測確率 $\mathbf{p} \in \mathbb{R}^{c}$ を得る。

$
\mathbf{s}=\operatorname{softmax}\left(\mathbf{t} G^{\boldsymbol{\top}}\right)
$

最終的な予測クラス $y$ は、次のように求まる。

$
y=\underset{i \in\{1, \ldots, c\}}{\arg \max } \mathbf{s}_{i}
$

損失関数には、交差エントロピー誤差を用いる。

## 5 実験

## 5.1 実験 1: ベースラインとの比較

データセット 森羅 2021 において配布された 30 言語の Wikipedia 記事とその分類先カテゴリの教師 データを学習に用いた。評価は森羅 2021 のテスト データで行った。

実験対象モデル 以下の 2 つのモデルの評価を行 なった。

mBERT ベースラインモデル。 multilingual BERT に よって Wikipedia 記事の本文の埋め込み表現を

2）この際トークン列に対してそれぞれ文章の先頭と終端を示 す特殊トークン [CLS] と [SEP] を結合する。得て、1 層の線形層を用いて分類を行うモデル。 mBERT_def 提案手法。2つの multilingual BERTを 用いて Wikipedia 記事と定義文の埋め込み表現 をそれぞれ得て、その類似度によって分類を行 うモデル。

学習設定 分類先カテゴリ数は $c=221$ であ る。記事と定義文の埋め込みベクトルの次元数は $n=768$ を使用した。各モデルはエポック数 8 、ミ ニバッチサイズ 64 で学習を行なった。学習率は $5.0 \times 10^{-5}$ に設定した。Wikipedia 記事の埋め込み表現の入力長は $p=512$ に設定した。また、定義文の 埋め込み表現の入力長は $q=93$ に設定した。

## 5.2 実験 2: Zero-shot 設定

Zero-shot 設定での実験を行なった。

データセット 森羅 2021 において配布された 30 言語の Wikipedia 記事とその分類先カテゴリの教師 データのうち、正解クラスを出現頻度順にソートし たときに、上位 $80 \%$ のクラスを学習データ、80〜 90 \%のクラスをテストデータとして用いた。評価 はテストデータを用いて行なった。クラスの分割に ついては表 1 に示す。

実験対象モデル mBERT_def のみで実験を行 なった。

学習設定 分類先カテゴリ数は学習時は $c=32$,推論時は $c=26$ である。記事と定義文の埋め込みべ クトルの次元数は $n=768$ を使用した。各モデルは エポック数 8、ミニバッチサイズ 64 で学習を行なっ た。学習率は $5.0 \times 10^{-5}$ に設定した。Wikipedia 記事 の埋め込み表現の入力長は $p=512$ に設定した。ま た、定義文の埋め込み表現の入力長は $q=93$ に設定 した。

## 6 評価結果

## 6.1 実験 1

各モデルの森羅 2021 のテストデータによる各言語に対する評価結果を表 2 に示す。mBERT_def の 結果は、mBERT より 28 言語のうち 17 言語で性能 が向上した。

また、全参加者のモデルの中で、mBERT_def が 30 言語のうち 17 言語で最も良い性能を示した。定義文を用いたアプローチが性能の向上につながって いることがわかる。
表 1 実験 2 のクラス分割

## 6.2 実験 2

Zero-shot 設定での各クラスごとの評価結果を表 3 に示す。全体としての F1 値のマイクロ平均は 0.30 とあまり高くない数字だが、クラスごとに見ると 0.70 を超えるクラスがいくつかあり、定義文を用い たアプローチが一定の有効性を示している。

予測性能の差に関する定義文の分析 最も F1 値 が高かった 3 クラスと低かった 3 クラスについて 詳細な分析を行なった結果を表 4 に示す。ここで 本文とは Wikipedia 記事本文の先頭 512 単語のこと である。また、定義文の単語とは、定義分に含まれ る単語から"an"や"of"などのストップワードを除い たものである。F1 值が高い 3 クラスのうち Reptile と Era は、定義文に含まれる単語のうち本文に含 まれる単語の割合が高く、F1 值が 0 の 3 クラス は低いことがわかる。このことから、定義文に含 まれる単語が Wikipedia 記事本文に含まれている と F1 值が高くなる傾向があると言える。しかし、 Astronominal_Object_Otherクラスに関しては、定義文の単語のうち本文に含まれる単語の割合が低いの にもかかわらず高い F1 值を出している。これは表 5 に示した定義文を見ると、Astronominal_Object_Other クラスの定義文は例示を多用していたり注釈がつ表 2 実験 1 のテストデータに対する結果

いていたりと他の定義文と比べて長くなっている。 これによってより多い単語を定義文に含むため、 Wikipedia 記事本文に定義文の単語が含まれる割合 が高くなると考えられる。実際、表 4 に示したよう に、Astronominal_Object_Otherクラスでは、本文に 定義文の単語が一つでも含まれる割合が高くなって いる。以上から、定義文の単語が記事本文に含まれ る割合が高いとき、または定義文の長さが長く、定義文の単語が記事本文に含まれやすくなっていると きに F1 值が高くなる傾向があると考えられる。
表 3 実験 2 のテストデータに対する結果

表 4 実験 2 の定義文に関する分析

 &  \\

Era & 0.74 & 0.426 & 0.844 \\
Astronomical_ & 0.71 & 0.122 & 0.962 \\
Object_Other & & & 0.768 \\
animal_disease & 0 & 0.267 & 0.674 \\
Academic & 0 & 0.296 & 0.817 \\
Theory & 0 & 0.306 &

表 5 定義文の例

 \\
& subordinate categories (1.5.4.1 - \\
& 1.5.4.3).Examples are a galaxy, neb- \\
ula, comet, satellite, interstellar sub- \\
stance, planetary system, etc. An ar- \\
tificial satellite is not included here

## 7 おわりに

本研究では、森羅 2021 の多言語分類タスクにお いて、定義文を用いたアプローチが有効であるこ と、また、Zero-shot の設定でも定義文を用いたアプ ローチがある程度有効であることを示した。また、 Zero-shot 設定の実験から、どのようなクラス定義文 が文書分類に役立つのかを示した。この結果から、 Wikipedia の文書分類に限らない、他のタスクへの 応用が考えられる。また、各言語ごとの詳細な分析 を行うことで、更なる性能向上につなげられる可能性がある。それらについては今後の課題とする。

## 謝辞

本研究は JSPS 科研費 JP20269633 の助成を受けた ものです。

## 参考文献

[1] Rami Aly, Andreas Vlachos, and Ryan McDonald. Leveraging type descriptions for zero-shot named entity recognition and classification. In Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics, 2021.

[2] Satoshi Sekine, Masako Nomoto, Kouta Nakayama, Asuka Sumida, Koji Matsuda, and Maya Ando. Overview of shinra2020-ml task. In Proceedings of NTCIR-15, 2020.

[3] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. In NAACL HLT 2019, 2019.

[4] The Viet Bui and Phuong Le-Hong. Cross-lingual extended named entity classification of wikipedia articles. In Proceedings of NTCIR-15, 2020.

[5] Hiyori Yoshikawa, Chunpeng Ma, Aili Shen, Qian Sun, Chenbang Huang, Guillaume Pelat, Akiva Miura, Daniel Beck, Timothy Baldwin, and Tomoya Iwakura. Uom-fj at the ntcir- 15 shinra2020-ml task. In Proceedings of NTCIR-15, 2020.

[6] Masaharu Yoshioka and Yoshiaki Koitabashi. Hukb at shinra2020$\mathrm{ml}$ task. In Proceedings of NTCIR-15, 2020

[7] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Moham-
mad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Lukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, and Jeffrey Dean. Google's neural machine translation system: Bridging the gap between human and machine translation, 2016.
 林歓樹 1 中山功太 ${ }^{2,3}$ 関根聡 ${ }^{2}$ 1 早稲田大学基幹理工学部情報理工学科 2 理化学研究所 AIP ${ }^{3}$ 筑波大学情報生命学術院 rainline@akane.waseda.jp \{kouta.nakayama, satoshi.sekine\}@riken.jp  