有価証券報告書の表理解タスクに対する解法の提案
1. はじめに
MTECに所属しております、別木智也と申します。
今回は、第34回人工知能学会金融情報学研究会(SIG-FIN)のワンセッションとして開催されたUFO2024というコンペティションに参加しました。
SIG-FINについてはFrontPageをご参照ください。
UFO2024では、有価証券報告書の表理解を目的とした2つのタスクについてコンペティションが実施され、その片方のTRタスクで1位を獲得しました。
具体的にTRタスクは、TOPIX500に含まれる企業の有価証券報告書とその内容に関する質問が与えられたときに質問の回答が記載されている表を特定するというタスクになっています。
例えば、「株式会社三菱UFJフィナンシャル・グループの2020年における「配当性向、経営指標等」は?」といった質問とMUFGの有価証券報告書が与えられ、その中に含まれる数百の表のうち適切な表を1つ選んで回答し、その正答率を競うコンペティションとなっています。
タスクやコンペティションの詳細についてはUFO2024のサイトをご覧ください。
私は有価証券報告書の構造を解析した上で学習データを用いて効率的に探索を行い、生成AIを用いて回答させるモデルを作成しました。
本記事では、その解法について簡単に紹介します。
2. 背景
有価証券報告書は企業の重要情報源であり、XBRL形式での提出が進んでいますが、XBRLデータにはタクソノミが付与されていないデータや、企業独自のタクソノミが多く存在し、共通の比較項目を見つけることが困難な場合があります。そのため、タクソノミに依存しない効率的な抽出方法が必要とされています。有価証券報告書のタクソノミの概要について関しては金融庁が出している「EDINET タクソノミの概要説明」( https://www.fsa.go.jp/search/20231211/1b-1_GaiyoSetsumei.pdf )を参考にしています。
3. タスクとデータセット
- タスク (TRタスク): 1社の有報HTMLを対象に、質問文の答えに該当する値が含まれる「表(table)」を検索し、そのtable-idを出力します。
-
入出力:
- 入力1: 1社の有価証券報告書のHTML
- 入力2: 質問文
- 出力: table-id
- 評価指標: Accuracy (正解出力数 / 総入力数)
-
データセット: TOPIX500企業のうち、2023年7月1日~2024年6月30日までに提出された有価証券報告書
- 学習データ: 288社 / 7956質問
- 検証データ: 53社 / 1452質問
- テストデータ: 152社 / 4265質問
データセットは以下のGitHubから取得できます。
4. アプローチ
提案手法は、以下の3段階の絞り込みプロセスを経て、候補となるtable-idを特定します。
アプローチの概要図
各段階の詳細
-
目次データベースの作成:
- 学習データを用いて、各企業のHTMLヘッダー情報(
<h1>
~<h6>
要素)と対応するtable-idを紐づけたデータベースを構築。正規表現で整形する。
- 学習データを用いて、各企業のHTMLヘッダー情報(
-
目次を利用した絞り込み:
- 質問文からキーワードを抽出する。方法は質問が画一的な表現であることを利用して、 鉤括弧内の要素、カッコ内除去、連結/個別決算の追加することで抽出する。
- 作成した目次DBを参照し、抽出したキーワードを最も多く含む学習データ内の質問に対応する正解table-idのヘッダー情報を取得。
- 対象有報HTML内で、取得したヘッダー情報と一致するヘッダーに含まれるtable-idを候補として絞り込む(最も番号が大きいヘッダーに絞り込む)。
-
キーワードを利用した絞り込み:
- 目次で候補が1つに絞れない場合に使用。
- 候補table-idのヘッダーと表テキスト内に含まれるキーワードの個数が最大のtable-idを候補とする。
-
LLMを利用した絞り込み:
- キーワードで候補が1つに絞れない場合に使用。
- GPT-4o-miniを利用。
- 質問文をより自然言語に近い文章に変換し、候補table-idのテキストと共にLLMに入力し、最も関連性の高いtable-idを特定する。
より具体的なアプローチに関しては元論文をご一読ください。
5. 検証結果 (Recall)
各絞り込み段階における正解table-idを含む割合(Recall)は以下の通りです。
絞り込み段階 | Recall |
---|---|
目次を利用した絞り込み | 0.997 |
キーワードによる絞り込み | 0.963 |
LLMによる絞り込み | 0.751 |
※ LLMによる絞り込み段階では、最終的な回答が1つに定まるため、RecallとAccuracyが一致します。
テストデータにおけるリーダーボード上のAccuracyは 0.7502 でした。結果として、LLMを利用した段階で精度が大幅に低下することが確認されました。低下の理由として、LLMが正解table-idを一つに決定できないケース(例: 経営指標等に含まれる連結/個別情報の曖昧さ)や、自然言語変換時の意味の変化・誤訳が考えられます。
6. 現状の課題と結論
-
課題①:英語タクソノミラベルのLLMでの変換精度
- 有報で用いられるXBRLタクソノミにおける英語ラベルをLLMで自然な日本語に変換する際に、人名が含まれる場合などに誤りが生じやすい。
- 自然言語化の過程で、タクソノミラベルの意味が変化する可能性がある。
-
課題②:部分キーワードでのLLM判断難易度
- 質問に含まれるキーワードが、複数の表に部分的に存在し、かつ関連性が高い場合に、LLMが最も適切な表を判断しきれないことがある。
-
課題③:<p>タグ内の重要情報の活用
- 表ではなく、<p>タグなどのテキスト段落内に重要な情報(例:注記や詳細な内訳の一部)が含まれている場合、現在のモデルではこれを考慮した判断ができない。
-
今後の展望:
- 学習済みrerankerやタクソノミラベル変換の精度向上によるアプローチ改善。
- より自然言語に近い質問文に対する前処理(機械的質問文への変換)を適用し、本提案手法の適用範囲を拡大すること。
参考文献
- [1] 木村 泰知 et al. “有価証券報告書の表を対象としたコンペティションの提案” (SIG-FIN UFO-2024)
Discussion