# STILTs を適用した機械読解による Wikipedia 記事の構造化

石井 愛
日本ユニシス株式会社 総合技術研究所
ai.ishii@unisys.co.jp

## 1 はじめに

自然なコミュニケーションで問題解決に導いてい く人に寄り添う AI を実現するためには，人の言葉 の文脈を理解することや，人の常識や知識を共有す ることが必要とされる. より大規模で体系だった知識ベースの整備が望まれる中で，森羅プロジェクト [1]では, Wikipediaを機械可読な構造に変換する構造化を目指している. 既存の知識べースの一貫性の課題を解決するため，森羅では，あらかじめ定義され た名前のオントロジーである「拡張固有表現」[2]（以降，ENE）にWikipedia 記事を分類し，ENE に定義 されている属性に対応する値を記事中から抽出する.森羅では, ENE に定義されている属性に対応する値 を記事中から抽出する部分を「日本語 Wikipedia 構造化タスク」として, 評価型ワークショップを開催 し, 同時に参加者のシステムによるリソース構築を 進めている.

本稿では, 日本語 Wikipedia 構造化タスクを, 機械読解タスクとして定式化し, BERT[3]の事前学習モ デルを用いて解くシステムにおいて, STILTs[4] と呼 ばれる中間タスクを用いる手法を提案する。提案手法は，スパースなデータセットにおいて，限られた GPU リソース上で実行可能で, かつ機械読解の性能 を向上させる効果的な学習を可能とする．評価実験 では，中間タスクを用いない場合と比較し，提案手法の有効性を検証する。

## 2 日本語 Wikipedia 構造化タスク

日本語 Wikipedia 構造化タスクは, Wikipedia 記事 のカテゴリごとに ENE に定義されている属性に対応する値を Wikipedia 記事中から抽出するタスクで ある. たとえば「企業名」カテゴリでは, 属性とし て「正式名称」,「事業内容」など 34 種類の属性が ENE で定義されている[5]. あらかじめ各カテゴリに 分類された Wikipedia 記事と, 属性値の記事中の出現箇所をアノテーションした教師データが与えられ， それをもとに未アノテーションの記事を含むすべて
の記事から属性値を抽出する。そのうち非公開の 100 記事を用いて評価が行われる[6].

2019 年に開催された「森羅 2019-JP」では, 記事数の多いカテゴリを中心とした JP-5 グループの，人名, 市区町村名, 企業名, 化合物名, 空港名の 5 力 テゴリおよび，地名グループと組織名グループから なる 28 カテゴリが対象とされた. アノテーション データは, JP-5 は各カテゴリ約 1000 記事, 地名およ び組織名は各カテゴリ約 200 記事である. 属性值は, 1 記事内に複数存在する場合や, 一つも存在しない 場合がある. JP-5 のアノテーションデータにおける，一つの記事内の属性値の個数を平均すると, 最大の 属性で 46.8 , 最小の属性で 0.03 , カテゴリごとの中央値は $0.53 \sim 1.03$ であり，属性によっては非常にス パースなデータである.

## 3 関連研究

日本語 Wikipedia 構造化タスクと直接関連が強い 固有表現抽出において，Li ら[7,8]は，BERT を用い た機械読解手法で他の手法よりも良い精度を達成し ている[9].これまで開催された日本語 Wikipedia 構造化タスクにおいても，DrQA[10]を応用した機械読解システム[11]や RoBERTa[12]を用いた機械読解シ ステム[13]が良い成績を収めている $[1,6]$. 評価型夕 スクの結果の分析では, 属性值が単語ではなく文で 記載されやすい「製造方法」などの属性の抽出，お よび訓練データが少ないカテゴリにおける属性値の 抽出で精度が伸びないことが課題として示された。訓練データが少ないカテゴリにおいては，カテゴリ 間で共通する属性が存在するため，[13]のシステム のようにカテゴリを横断して学習を行うことの有効性が示唆されている[6]. ただし, BERT や RoBERTa のような事前学習モデルを用いて多数あるカテゴリ を横断して学習を行うには，大きな GPU リソース が必要となる.
表 1 機械読解用に変換したデータの例

 \\

機械読解は, 質問と, 解答のための情報源となる テキスト (パッセージ) を入力として，解答となる 情報をパッセージから抽出するタスクである。機械読解システムは, 質問に答えるだけでなく, 与えら れたパッセージに解答となる情報が含まれていない 場合にそれを判断する必要がある. 解答できない問題を含む機械読解のデータセットである SQuAD 2.0[14]において, Retrospective Reader[15]は, パッセ ージに解答が含まれているかどうかを 2 値分類する タスクと，パッセージから解答を抽出する機械読解 タスクに役割をわけ, 別々のモデルで学習, 予測し た結果を統合することで, 良い精度を達成している。

BERT のような事前学習モデルの性能をさらに改善する方法の一つとして, 最初に中間タスクで事前学習モデルをファインチューニングしてから, 対象 とするターゲットタスクで再度ファインチューニン グする手法が提案されている[4,16-18]. これらの手法はSTILTs と呼ばれている.ターゲットタスクごと に事前学習モデルを一から作成することは計算コス トが非常に高いため, 計算コストが低く実装が容易 な手法として注目されている.

## 4 提案手法

## 4.1 提案手法の概要

日本語 Wikipedia 構造化タスクを, Wikipedia 記事内のパッセージから質問（属性名）の値となる解答 （属性値）出力する, 解答できない問題を含む機械読解タスクとして解く. 本タスクのデータセットで は属性によって属性値が一つも含まれない記事が多数存在し, さらに記事をパッセージに分割するため 解答できない問題が非常に多くなる. そこで, 解答
できない問題を除外し，グループ内の全カテゴリを 横断して学習する中間タスクを用いることを提案す る. 解答できない問題を除外することでデータ件数 を削減し, 限られた GPU リソース上で実行可能と する. カテゴリを横断して学習することで，訓練デ 一タが少ないカテゴリにおいて類似するカテゴリか らの学習結果が得られること, 解答可能かどうかの 判断は行わないことで役割分担ができ, 効果的な学習が行われることを狙う，中間タスクでファインチ ユーニングしたモデルを用いて対象のカテゴリのみ で学習するターゲットタスクでは，解答できない問題も含めて学習する.

提案手法は Retrospective Reader[15] と同様に役割 をわけて学習を行うが，別々のモデルではなく中間 タスクとした点と, 解答可能かどうかの判断をする 2 值分類タスクではなく機械読解タスクとする点で 異なる. 予備調查の結果から, 2 值分類タスクの場合, 正解データに抽出する箇所の情報が含まれない ため, 学習の際の情報量が不足すると考えられたた めである.

BERT の出力は, [13]を参考に, 各単語の $\mathrm{BIO}$ 夕 グとする，BIO夕グは固有表現抽出においてよく用 いられる正解ラベルで, B, I, O は, それぞれ単語 が解答の先頭，内側，外側にあることを示すもので ある。

## 4.2 機械読解用データセットへの変換

Wikipedia 記事内を，HTML タグを分析して小見出しごとに区切ったものをパッセージpとし, $p$ の 範囲内に含まれる属性値のデータから属性を質問 $q$, 属性值を解答 $A=a_{1}, a_{2}, \ldots, a_{k}$ とするデー夕に変換する. $p$ に属性値が含まれない属性は $k=0$ とな る. $a_{i}$ は $p$ 内における開始・終了位置情報および,解答の文字列である. 表 1 に機械読解用に変換し たデータの例を示す. pは HTML タグ中のオプショ ン部分を空白で置き換える処理を行って作成する.

## 4.3 機械読解モデル

BERT を用いた機械読解モデルは， $(p, q, A)$ を入力として, 各単語の $\mathrm{BIO}$ タグを出力する. 中間夕 スクとターゲットタスクのモデルは共通である.

BERT への入力系列は, 質問 $q$ の単語トークン列 $\mathrm{q}=q_{1}, q_{2}, \ldots, q_{m}$ およびパッセージ $p$ の単語トークン 列 $\mathrm{x}=x_{1}, x_{2}, \ldots, x_{n}$ を以下のように連結したものと する.
表 2 データ件数

} & \multicolumn{3}{|c|}{} \\

$\left.\{[\mathrm{CLS}], q_{1}, q_{2}, \ldots, q_{m},[\mathrm{SEP}], x_{1}, x_{2}, \ldots, x_{\mathrm{n}}\right.\}$

ここで, [CLS], [SEP] は BERT の特別なトークン である. 単語トークン系列 $\mathrm{x}=x_{1}, \ldots, x_{j}, \ldots, x_{n}$ に対応する BERT の最終層の隠れ状態べクトル $T_{\mathrm{x}}$ を力 とする分類層で，ラベルごとのスコア $S_{\mathrm{x}}=$ $S_{x_{1}}, \ldots, S_{x_{j}}, \ldots, S_{x_{n}}$ を出力する. $S_{x_{j}}$ が最も大きいラべ ルを予測ラベル $y_{x_{j}}^{\prime}$ とし, 正解ラベル $\mathrm{y}=y_{x_{1}}$,

$\ldots, y_{x_{j}}, \ldots, y_{x_{n}}, y_{x_{j}} \in\{\mathrm{B}, \mathrm{I}, 0\}$ との交差エントロピー 誤差を用いて BERT のファインチューニングを行 い，単語トークンごとに 3 値に分類する問題を解 く. 予測時には予測ラベルy'がB, Iの系列となった単語トークン列を解答候補とし, 単語トークン列およ び単語トークン列のラベルのスコアの平均値をスコ アとして出力する.

また，BERT の入力系列には長さの制限があり，最大トークン長以内に収める必要がある. 入力系列 が最大トークン長よりも長くなる場合, [SEP]の後 ろの系列を，設定したトークン数（ストライド）分 ずらしながら複数の入力系列を生成する.

## 4.4 解答候補のルールによる整形

機械読解モデルが出力する解答候補は, 以下のル ールで整形する.
- 解答文字列前後の HTML タグの削除
- 空文字および漢字以外で 1 文字の解答を除外
- HTML タグ，および記号のみの解答を除外

## 5 実験

## 5.1 実験設定

モデルの構築には，公開されているBERTの事前学習済みモデルである「NICT BERT 日本語 Pretrained モデル BPEあり」[19]（以降，NICT BERT モデル) を利用した. 解答可能性付き読解データセ
ット[20]を利用した既存の日本語BERTモデルとの 比較[21]において, 最も高い性能となったモデルで ある.システムの実装は，BERTのpytorchの実装 [22]利用した。いくつかのカテゴリにおける事前調查の結果から, バッチサイズは 32 , 学習率は $2 \mathrm{e}-$ 05 , トークンの最大長は 384 , ストライドは 128 とし た. エポック数は最大值を 10 とし，Devセットにお いて精度が最も良いモデルを選択した. 入力文字列 はNICT BERTモデルの仕様に合わせ，MeCab-Juman 辞書[23]で形態素に分割後, subword-nmt[24]で生成 された語彙を用いてsubwordに分割してトークン化 した.

## 5.2 データセット

森羅 2019-JP においてシステム開発用に配布され たアノテーションデータを, 提案手法の入力形式に 変換した．データセットは訓練（以降 Train），検証 (以降 Dev)，テスト(以降 Test)それぞれ， $85 \%$ ， $5 \% ， 10 \%$ の割合で分割し，Trainでモデルの訓練， Dev でモデル選択, Test でモデルの評価を行った.生成した BERT 用の入力系列の Train, Dev, Test の 件数を表 2 に示す. 中間タスクのデータセット は，グループ内のすべてのカテゴリを横断したデー タセットである．表 2 で示したように，Train と

Dev から解答できない問題を除外することで，おお よそ 10 分の 1 程度のデータ件数になった。

## 5.3 評価指標

森羅のスコアラー[25]にて算出される属性ごとの F値のマイクロ平均を, 各カテゴリの評価指標とす る. 地名および組織名に関しては, グループに含ま れるカテゴリごとのF值のマイクロ平均をさらに平均した値を用いる。

## 6 結果と考察

## 6.1 提案手法の有効性

提案手法の有効性を評価するため, 森羅2019-JP における非公開の 100 記事を用いた評価型ワークシ ヨップでの評価との比較結果をを表 3に示す. 他の システムと比較し, 提案手法は, JP-5の5カテゴリ および地名, 組織名の平均值において, 他の手法 を0.01から0.12上回る結果となった。
$ 全カテゴリの結果が提出されたチームの結果を掲載.
}
表 3 他の手法との比較結果

 &  & Tanaka &  \\

表 4 中間タスクの有効性の評価

} & 空港名 & 0.819 & $\mathbf{0 . 8 3 0}$ \\
\cline { 2 - 4 } & 市区町村名 & 0.630 & $\mathbf{0 . 6 6 1}$ \\
\cline { 2 - 4 } & 企業名 & 0.590 & $\mathbf{0 . 6 0 8}$ \\
\cline { 2 - 4 } & 化合物名 & 0.518 & $\mathbf{0 . 5 8 1}$ \\
\cline { 2 - 4 } & 人名 & 0.750 & $\mathbf{0 . 7 5 1}$ \\

表 5 抽出が難しい属性についての調査結果

 & 属性名 &  &  \\

## 6.2 中間タスクの有効性

中間タスクの有効性を評価するため, 以下のモデ ルの比較結果を表 4亿示す.
- BERT モデル:中間タスク無しでカテゴリご とにファインチューニングするモデル
- 提案手法: 中間タスクでファインチューニン グ後に，カテゴリごとにファインチューニン グするモデル

表 4のとおり, 提案手法はBERTモデルと比較し て，寸べてのカテゴリで結果が改善した．訓練デー 夕件数が少ない地名および組織名においても，中間 タスクが有効であることが示された.次に，抽出が難しい属性について抽出能力を向上 させることができたかどうかを検証する．抽出が難 しい属性として，解答文字列長の平均が 100 文字以上の属性を対象として調査した結果を表 5亿示す.提案手法はBERTモデルと比較して，調查したすべ ての属性で結果が改善した。地名および組織名の「名前の謂れ」,「地名の謂れ」という属性は, 正解デ 一夕が1カテゴリに平均60件前後と少なく，かつ，解答文字列長は長いことから，特に抽出が難しい属性である。中間タスクにおいて，グループ内の複数 のカテゴリの正解データを用いることができたこと が精度の改善につながったと考える。また，化合物名の「製造方法」や，市区町村名の「地名の謂孔」 については, JP-5グループ内に同じ属性は存在しな いにもかかわらず，精度が向上している，中間タス クにおいて解答できない問題を除外したことで，解答可能かどうかの判断はターゲットタスクにまかせ ，機械読解能力を効果的に学習できたと考える.

## 7 おわりに

本論文では，日本語Wikipedia構造化タスクを，解答できない問題を含む機械読解タスクとして定式化 し，中間タスクを用いたBERTによる機械読解シス テムを提案した，中間タスクでは，解答できない問題を除外することでデータ件数を削減し，複数の力 テゴリを横断した学習を可能とした。解答が含まれ ているかどうかの判断をターゲットタスク学習時の みにする施策と，複数のカテゴリを横断することで 正解データが少ない属性に対応する施策が有効に働 き，これまでの手法よりも優れた性能を達成するこ とが示された。しかしながら, 生成した知識データ を利用するには，データ件数の少ないカテゴリや属性の抽出精度をさらに改善していく必要がある．類似度の高い属性を集めて学習するなどの工夫を今後 の課題としたい.

## 謝辞

本研究は, 森羅プロジェクトからデータを提供し ていただいて実施しました。森羅プロジェクトの皆様，意見交換させていただいたプロジェクト参加者 の皆様に感謝を申し上げます。

## 参考文献

1. SATOSHI, Sekine, KOBAYASHI, Akio and NAKAYAMA, Kouta. SHINRA: Structuring Wikipedia by Collaborative Contribution. In : AKBC. 2019.

2. SEKINE, Satoshi. Extended Named Entity Ontology with Attribute Information. In : LREC. 2008.

3. DEVLIN, Jacob, CHANG, Ming-Wei, LEE, Kenton and TOUTANOVA, Kristina. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In : NAACL. 2019.

4. PHANG, Jason, FÉVRY, Thibault and BOWMAN, Samuel R. Sentence Encoders on STILTS: Supplementary Training on Intermediate Labeled-data Tasks. ArXiv, 2018. ArXiv ID: 1811.01088v2

5. 拡張固有表現階層 定義 Version 8.0.0. http://1iat-

aip. sakura. ne. jp/ene/ene8/definition_jp/

6. 小林暁雄, 中山功太, 安藤まや and 関根聡. Wikipedia構造化プロジェクト「森羅2019-JP」. In：言語処理学会第26回年次大会(NLP2020). 2020.

7. LI, Xiaoya, FENG, Jingrong, MENG, Yuxian, HAN, Qinghong, WU, Fei and LI, Jiwei. A Unified MRC Framework for Named Entity Recognition. In : ACL. 2020

8. LI, Xiaoya, SUN, Xiaofei, MENG, Yuxian, LIANG, Junjun, WU, Fei and LI, Jiwei. Dice Loss for Data-imbalanced NLP Tasks. In : ACL. 2020

9. LI, Jing, SUN, Aixin, HAN, Jianglei and LI, Chenliang. A Survey on Deep Learning for Named Entity Recognition. 2020. arXiv:1812. 09449

10. CHEN, Danqi, FISCH, Adam, WESTON, Jason and BORDES, Antoine. Reading Wikipedia to Answer Open-Domain Questions. In : BARZILAY, Regina and KAN, Min-Yen (eds.), ACL. 2017.

11. 石井愛. 機械読解によるWikipediaからの情報抽出. In ：言語処理学会第25回年次大会 (NLP2019). 2019.

12. LIU, Yinhan, OTT, Myle, GOYAL, Naman, DU, Jingfei, JOSHI, Mandar, CHEN, Danqi, LEVY, Omer, LEWIS, Mike, ZETTLEMOYER, Luke and STOYANOV, Veselin. RoBERTa: A Robustly Optimized BERT Pretraining Approach. 2019. arXiv:1907. 11692

13. 中山功太. RoBERTaを用いたQA式属性値抽出システ ム. In：森羅2019-JP 最終報告会資料。2019

14. RAJPURKAR, Pranav, JIA, Robin and LIANG, Percy. Know What You Don' $t$ Know: Unanswerable Questions for SQuAD. In : ACL. 2018.

15. ZHANG, Zhuosheng, YANG, Junjie and ZHAO, Hai. Retrospective Reader for Machine Reading Comprehension. arXiv. 2020. arXiv:2001. 09694.

16. WANG, Alex, HULA, Jan, XIA, Patrick, PAPPAGARI, Raghavendra, MCCOY, R. Thomas, PATEL, Roma, KIM, Na joung, TENNEY, Ian, HUANG, Yinghui, YU, Katherin, JIN, Shuning, CHEN, Berlin, VAN DURME, Benjamin, GRAVE, Edouard, PAVLICK, Ellie and Bowman, Samuel R. Can You Tell Me How to Get Past Sesame Street? Sentence-Level Pretraining Beyond Language Modeling. In : ACL. 2019.

17. CLARK, Christopher, LEE, Kenton, CHANG, MingWei, KWIATKOWSKI, Tom, COLLINS, Michael, TOUTANOVA, Kristina and ALLEN, Paul G. BoolQ: Exploring the Surprising Difficulty of Natural Yes/No Questions. In : NAACL-HLT. 2019

18. SAP, Maarten, RASHKIN, Hannah, CHEN, Derek, LEBRAS, Ronan and CHOI, Yejin. SocialIQA: Commonsense Reasoning about Social Interactions. EMNLP-IJCNLP. 22 April 2019

19. NICT BERT 日本語 Pre-trained モデル. https://alaginrc. nict. go. jp/nictbert/index. html

20. 鈴木正敏, 松田耕史, 岡崎直観 and 乾健太郎. 読解 による解答可能性を付与した質問応答データセット の構築. In ：言語処理学会第24回年次大会 (NLP2018). 2018.

21. Experiments_on_RCQA. https://alaginrc. nict. go. jp/nictbert/Experiments_on_RCQA. html

22. WOLF, Thomas, DEBUT, Lysandre, SANH, Victor, CHAUMOND, Julien, DELANGUE, Clement, MOI, Anthony, CISTAC, Pierric, RAULT, Tim, LOUF, Rémi, FUNTOWICZ, Morgan and BREW, Jamie. HuggingFace's Transformers: State-of-the-art Natural Language Processing. 2019. arXiv:1910. 03771

23. KUDO, T. MeCab: Yet Another Part-of-Speech and Morphological Analyzer.

http://chasen. org/taku/software/mecab/.

24. GitHub - rsennrich/subword-nmt: Unsupervised Word Segmentation for Neural Machine Translation and Text Generation. https://github. com/rsennrich/subword-nmt

25. GitHub-k141303/shinra_jp_scorer：森羅2020夕ス ク用のスコアラー.

https://github.com/k141303/shinra_jp_scorer
 石井 愛 日本ユニシス株式会社 総合技術研究所 ai.ishii@unisys.co.jp  