「知識」を創り、自然言語処理応用の未来を支える——森羅プロジェクト2019最終報告会レポート

2019年10月23日、中央区・コレド日本橋内の特定国立研究開発法人理化学研究所 革新知能統合研究センター(以下、理研AIP)にて「森羅2019 Wikipedia構造化プロジェクト」の最終報告会が行われた。

森羅プロジェクトは、Wikipediaに蓄積された知識を拡張固有表現を用いてよりコンピュータが処理しやすい形に構造化するプロジェクト。2018年にスタートし、本年で2度目のタスク実施となる。

「知識の構造化」森羅プロジェクトとは

日本語版Wikipediaには約100万記事ぶんもの知識が文書として掲載されている。しかし、Wikipediaのページは人間にとっては解読可能でも機械での処理に適した形にはなっていない。森羅プロジェクトでは、自然言語応用の発展のためこの知識を機械が解読できる形に変換する「構造化」を実施している。

プロジェクトの大きな特徴は「拡張固有表現」を基に構造化が行われていることである。拡張固有表現とは、本プロジェクトの実行委員長で自然言語処理の第一人者である理研AIPの関根聡さんが作成した言葉の分類体系だ。拡張固有表現では言葉のカテゴリとその定義、各カテゴリの言葉が持つ属性の定義がなされている。例えば「別府温泉」という言葉は「温泉名」のカテゴリーに分類され、「温泉名」の定義は「温泉の名前。 温泉施設が密集している地域を含む」である。また、「温泉名」のカテゴリには「別名」「市町村名」「泉質」などの22種類種類の属性が設定されている(出典:理研AIP 拡張固有表現階層 定義)。

森羅プロジェクト実行委員長であり、拡張固有表現を作成した関根 聡さん

海外で実施されている類似プロジェクト(「DBpedia」「YAGO」など)では、infoboxやページ同士の上位下位関係などWikipedia内の情報をそのまま抜き出す形をとっていることが多い。しかし、Wikipediaの記事は形式が厳密に規定されておらず掲載内容にばらつきがある。例えば「通称」と「別名」はほぼ同じ概念であるにも関わらず、同じカテゴリ内でも言葉Aの記事には「通称」、言葉Bの記事には「別名」として記載されていることがある。この場合、言葉Aの属性には「通称」、言葉Bの属性には「別名」と登録されてしまい、構造化後の知識の一貫性が下がってしまう。

森羅プロジェクトでは拡張固有表現を用いることでこの課題を解消した。Wikipediaの知識だけに頼るのではなく、あらかじめ決められた分類と属性の定義にWikipediaの内容を当てはめる形で構造化を実施。知識の一貫性を担保し、より機械が取り扱いやすい知識の構築を行なっている。

また、タスクには個人・チーム・研究室などどんな形態でも参加できる。理研AIPを中心とした実行委員会がデータやルールを整備したタスクに多数の参加者が取り組む評価型ワークショップの形式をとることで、多くの人の協力を得てリソース構築を実現しようというねらいがある。プロジェクトではこの形式を「協働によるリソース構築(Resource by Collaborative Contribution (RbCC))」と呼ぶ。本年も企業で働くデータサイエンティストはもちろん、大学の研究室など多様な参加者がタスクに取り組んだ。

森羅プロジェクト2019総括・結果報告

最終報告会ではまず、実行委員長の関根さんよりプロジェクトの意義と本年のタスクに関する解説が行われた。

関根氏は、コンピュータによる計算が容易な知識データベースの構築は、自然言語処理分野の発展において必要不可欠なものであると語った。「知識を構造化することにより、自然言語処理応用の幅を大きく広げることができる。具体的には複雑なクイズを出題した際、仮に答えが誤っていたとしてもどのようなプロセスをへてその答えを導き出したか説明できる人工知能などが実現可能になる」という。森羅プロジェクトは、人工知能の飛躍的な進歩にむけた基盤づくりに関わる重要な取り組みなのだ。

本年のタスクは拡張固有表現のカテゴリに分類されたWikipediaの記事に対し、属性情報をアノテーションするというもの。2018年より引き続き実施された5カテゴリ(JP-5)と、本年より追加された30カテゴリ(JP-30)が分析対象となった。参加者は人力でアノテーションされた教師データをもとに、未アノテーションの記事のどこに属性情報が記載されているかを抽出した。

続いて、実行委員の小林 暁雄さんがプロジェクト全体の結果を報告。全11チームが参加し、アプローチは「CRFベース」「BERT使用」「DrQAベース」「ルールベース」の大きく4種があった。最も選ばれていた手法はCRFベースで4チーム。BERT使用が3チームと次いで多く、こちらはMicroF1最高値のカテゴリが最多でJP-30のOrganizationでは全てのカテゴリで最高値を記録した。

実行委員の理研AIP 小林 暁雄さん

プロジェクトが全体としてどのくらい進行しているのか、全システムの結果の総和に対する調査結果も報告された。正解データに対する網羅率は平均で0.15改善。網羅率が低い属性はテストデータが少ないものや値が文章で表現されているものなどがあった。

それぞれのカテゴリで最も精度が高かったシステム、各システムの制度詳細については公式サイトの発表資料より確認できる。

最後に、注目してほしいカテゴリやカテゴリごとの注意点の充実・プロジェクト開始前に完全なトレーニングデータを公開すること、そしてリーダーボードの実装など次年度に向けた改善の提示がなされた。

参加者による手法解説およびアンサンブル結果の解説

プロジェクトではタスクの実施範囲を各参加者が自由に決める。そのため複数カテゴリはもちろん、1カテゴリのみ・記事のinfoboxに特化するなど、さまざまな形態での取り組みが実施されていた。

※プレゼンテーションの内容は、森羅プロジェクト2019最終報告会の資料ダウンロードページにスライドが掲載されている方のみ掲載しております。各手法の詳細については、ぜひスライドをご覧ください。

凸版印刷 岡田 崇さん

岡山県立大学 石井 颯人さん 菊井 玄一郎さん
「機械読解による属性抽出のための箇条書き・表の書き換えの試み」

昨年の日本ユニシス株式会社の手法の再現実験および改善策を提示。記事内の箇条書きと表での抽出漏れが多かった点に着目し、箇条書きと表の情報を自然言語に近い形に変換することで精度向上を目指した。現時点での抽出精度はまずまずだったものの、変換後の形式の改善や制約条件の変更によって性能が向上する可能性があるとした。

株式会社リコー 山家 優理子さん
「企業名カテゴリの属性値抽出」

記事を本文・infobox・table(記事内のinfobox以外の表)に三分割し、そのうちの本文にCRF、infoboxにルールベースのパタンマッチを採用。パタンマッチは膨大な例外処理に対して精度があまり高まらなかった。CRFにおいて本タスクの条件では数値・書き方が定型化している部分などが抽出しやすいことがわかった。

アップデイティット株式会社 森 俊介さん

アップデイティット株式会社がアプリケーション部分の開発を行う株式会社野村総合研究所の業務効率化ソリューション「Shingan」の抽出機能の要素技術を用いて実施した。カテゴリに共通して有効なパラメータを探したが、決定的なものは見つからなかった。しかし、Optunaを使った探索はドメインに特化したチューニングを手軽に実施するのに有効であるなど、学びの多い取り組みとなった。

豊橋技術科学大学 谷 修一さん

昨年の参加時に作成したシステムをベースに、手法の多様性を拡大したいと機械学習ではなくルールベースでの抽出に挑戦。infoboxに属性値が存在するもののうち「国名」「数字+単位といった形式が決まっているもの」「特徴的な構文を持つもの」など簡単なルールで実装可能なものを抽出した。再現率は低いものの、精度は高水準となった。

日本ユニシス株式会社 石井 愛さん
「DrQA-SHINRAの概要 ~機械読解タスクとして解く~」

抽出する属性名を質問、属性値を回答とする機械読解タスクとして実施。昨年から継続した手法での取り組みで、本年はHTMLタグおよび固有表現(Wikipediaタイトル)タグを特徴量として追加することで精度向上に成功。新設のJP-30ではカテゴリをグルーピングしてモデルを作成。グルーピングによって精度向上するカテゴリと、別々に学習した方がよいカテゴリがあった。

⻑岡技術科学大学大学院 邊土名 朝飛さん
「化合物情報の抽出」

化合物カテゴリに特化して実施。同義語辞書の作成から行なった。カテゴリ属性のうち商標名・読み・CAS番号などでは高精度の抽出に成功。一方生成化合物では0.115・再現率0.067・F値0.085と他の属性と比較しても低い値にとどまった。

理研AIP 中山 功太さん
「RoBERTaを用いたQA式属性値抽出システム」

拡張固有表現の属性値とInfoboxの属性値をそれぞれ4W1H(Who,What,Where,When,How(many))のいずれかに分類(infoboxについては、出現回数上位1000件のみを対象とし、4W1Hに当てはまらないものは除外)。その後、「『記事タイトル』の『抽出したい属性』は『誰・なん・どこ・いつ・いくつ』ですか?」という形式の問題文を作成し、その回答を抽出するQA形式で実施した。結果、33カテゴリー中17カテゴリーでF1最高値を記録した。

株式会社フライウィール 田中 伸弥さん

系列ラベリング問題としてCRFを用いて課題に取り組んだ。記事内ですでに構造化されているものは抽出しやすいが、文章中のものは難しいという結果。現状のモデルは改良可能な点が多く、さらなる精度向上を目指せるとのこと。

手法のアンサンブル結果

森羅プロジェクトでは、個人が提出した結果のアンサンブルも実施される。本年のアンサンブルは各システムの精度とシステム間での同意テーブルを用いてシステムの信頼度を算出。各システムの信頼度からどれか一つでも正しい確率を求め、別途学習して予測した属性値の数(一つの属性に対し値がいくつあるか)の結果と組み合わせて正解の属性を選択する方法をとった。

その結果、わずかではあるがベストスコアを更新。今後の改善策として正解の属性値を選択する際の確率算出の変更、一部のカテゴリを教師なし学習から教師あり学習へ変更することが挙げられた。

アンサンブル結果を発表する理研AIP 中山 功太さん

また、参加者側でもアンサンブルが実施できるようデータが配布される予定。今後はアンサンブルにもチャレンジしてほしいとのことだった。

2020年は多言語でのタスクも実施

2020年の森羅プロジェクトでは、本年と同様のタスクも引き続き実施されるが、注目は新たに登場する多言語タスクだ。30の言語のWikipediaページのうち、日本語版Wikipediaからリンクがない記事を拡張固有表現のカテゴリーに分類する。

また、日本語Wikipediaの92万項目を拡張固有表現のカテゴリーに分類したデータの無償公開も行われる予定と発表。自然言語処理応用への様々な活用が期待される貴重なデータリソースとなるだろう。多言語化も含め、森羅プロジェクトは今後さらに拡大していく予定だ。

このデータは現在、下記プロジェクトページにて配布されている。

SHINRA2020-ML Data Download – 森羅 SHINRA

誰でも飛び込める、知を作る集合知のフィールド・森羅プロジェクト

途中のフリーディスカッションではタスクの改善してほしい点やデータアノテーションについての質問などが活発に行われた。infoboxの取り扱いについて質問が挙がった際は、infoboxパーサを作成した谷さんが回答するなど、参加者同士がそれぞれの知見を出し合いながら知識を深めていく様子は、まさに「集合知」だった。

関根氏によると、学生の方の参加は、現状研究室を通じてのものが多いとのこと。「チャレンジする範囲は自分で決められるので、臆せず色々な方に参加してほしい。学生さんの参加ももちろん大歓迎」と語った。ディスカッションでも「ある程度の学習を行ったモデルを提供して、最初のステップを理研がサポートすることでより挑戦しやすくなるかもしれない」といった話題も出ており、タスクやルール・提供情報の改善で積極的に参加者を増やす工夫を実施していく予定だという。

先述の通りプロジェクトはどんな方にもオープンで、ひとりでは心細いという方も、研究室の仲間や友達と一緒に挑戦することができる。企業で働くデータサイエンティストや別大学の方々など他の参加者との交流・各報告会での発表プレゼンなど、大学・個人の範囲を飛び出した新たな経験ができるチャンスだ。2020年のプロジェクトは2020年春ごろより参加の募集開始を予定している。

自然言語処理応用の基盤として必要不可欠な知識の構造化。人工知能技術の躍進を支える「森羅プロジェクト」に、是非チャレンジしてみてほしい。

[contact-form-7 404 "Not Found"]