🤖

【Yozora Diff:決算版】#1 LLMで決算短信の“意味のある変化”だけを自動抽出しよう!

に公開

はじめに

こんにちは!Rayです。普段は自然言語処理(NLP)の研究をしています。
僕たちは、Yozora Financeという学生コミュニティで、誰もが自分だけの投資エージェントを開発できる世界を目指して活動しています。
その中の基盤モジュール群のひとつとして、開示文書の差分に特化したシリーズを開発しており、それが Yozora Diff です。完成後は誰でも使えるようオープンソースで公開予定です!
今回の記事では、その第一弾となる 「Yozora Diff:決算版」 の開発について連載形式で紹介していきます。

なぜ“差分”に注目するのか?

決算短信は毎期似た構成ですが、投資判断に本当に効く情報は、その中の「差分」にあります。

たとえば、

  • セグメント構成の見直しやセグメント別の動向に関する記述が追加された
  • 前向きだった表現が慎重な言い回しに変化した
  • 事業環境の見方や前提条件がアップデートされた

つまり 全文を読むのではなく、差分だけを抽出できれば投資判断がより早く・正確になる という考え方です。
また、LLMに入力する際も差分のみを扱うことで入力長を大幅に削減でき、精度の上昇と推論コストの減少が見込めます。
実際に投資エージェントを組んでAPIで動かしてみると、金融文書が長いせいで素直に全投げするとコストがものすごく積み上がるんですよね...
学生の立場からするとAPI料金をできるかぎり減らしたいので、ここを差分抽出レイヤーで圧縮できると、かなり運用しやすくなります。

背景:まだOSSとして存在しない

自然言語パートの差分を扱う機能は、一部の有料サービスでは提供されているようですが、一般に開放されておらず、個人開発者や小規模チームではアクセスが難しいのが現状です。
無料サービスでも財務諸表(表形式)の差分は扱えますが、自然言語側まで踏み込んだ差分抽出は提供されていません。

そこで本プロジェクトでは、

自然言語パートの差分抽出をOSSとして誰でも再利用できる形にする

ことを目標としています。

先行研究

アカデミック分野でも、金融文書の自然言語パートに着目した差分抽出の研究が存在します。
国内では有価証券報告書に含まれる文章の意味的差分を検出しようとする研究が報告されています。(鈴木ら, 2023)
海外でも金融文書間の“微細な意味変化”を計測するFinancial-STSに関する研究(Liu et al., 2024)や、財務報告書を比較して重要なシグナルを発見し、ハイライトする研究(Ju et al., 2023)が報告されています。

今回は、こうした学術的な知見を「実務で利用できるツール」として落とし込むことを目的としています。
研究上は価値が示されているのに、まだ“手元で動く形”にない──このギャップを埋めるのが Yozora Diff:決算版 です。

本プロジェクトのアプローチ

差分検知にはいくつかの粒度がありますが、本プロジェクトでは、文単位での差分抽出を採用します。
これは「セクション単位」だと粗すぎて変化の箇所が特定しづらく、「単語単位」だと意味が分断されてしまうためです。
実験しつつうまく行かなければ調整する予定です。

システム全体の流れ

文単位の差分抽出を行うために、まず決算短信文書をJSONなど扱いやすい形にパースし、その後、章単位 → 文単位でのアライメント(対応付け)を行います。

決算短信文書
   ↓  パース(JSON化)
章単位構造化
   ↓  アライメント(対応付け)
文ペア生成

最終的にはこの抽出された文ペアをLLMに渡し、「何が・どう変化したのか」を要約として出力できる状態を目標としています。

今後の展望

今後は、まず新旧の決算短信で対応する文ペアを作ることを目標とします。
最終的には抽出した文ペアをそのままLLMに渡し、「どの文が、どのように変化したか」まで自動で要約できるモジュール に仕上げる構成を想定しています。
次回の記事では、実際に決算短信をJSON形式へパースする方法について紹介します。
フォーマットは似ているものの、細かい違いがちょくちょくありそうなので、ここが一番苦労ポイントになりそうです...

みなさんからコメント、アドバイスをいただけると嬉しいです。最後まで読んでいただきありがとうございました!

参考文献

GitHubで編集を提案

Discussion