# クラス定義文を用いた 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.