こんにちは。マネックス・ラボ 渡瀬です。
社内で開催されたアイデアソンの結果、私たちのチームラボが優勝しました! 今回はチームラボの取り組みをご紹介します。
アイデアソンとは
「新テクノロジーで基盤システムにINNOVATIONを起こす」をテーマに第一回アイデアソンが実施されました。
下記の記事でも触れていますがSTAGE:1のアイデアソン から STAGE:2の実証実験と発表を経て、結果発表となりました。
アイデアソンの紹介はこちら記事です。
blog.tech-monex.com
今回出場した別のチームの記事です。
取り組んだ課題
「機械学習を用いた目論見書解析による業務効率化」
当社で取扱いをしている金融商品の一つに投資信託(ファンド)があります。
投資信託の情報を目論見書と呼ばれる投資信託説明書から、マネックス証券の基盤システム「GALAXY」に登録し管理しています。
目論見書はPDFファイルで作成されており、それを目視で確認して設定値を登録していた業務の効率化を考え、画像解析と機械学習を使って実証実験をしてみました。
【環境】
実証実験(1回目)-目論見書解析-
①目論見書PDFをOCR処理し、JSON形式で取得
目論見書PDFは一般的に保護されていてテキストデータがコピーできません。そのためテキストデータを抽出するために「Google Cloud Vision」を利用してOCR処理しました。テキスト部分をこの後に利用したいのでJSON形式で取得しました。
②機械学習を実施
「Cloud Machine Learning Engine」の機械学習(分類)を使用して投資信託の設定日を取得できるか試してみました。
目論見書PDF約220件を学習データ80%、テストデータ20%に分けて検証しました。
学習データは、目的の設定値の特徴となる要素を何パターンか試しました。
- OCR結果の文節、目的の設定値を含むかどうかのOK/NGの正解
- OCR結果の文節、前後の文節、目的の設定値を含むかどうかのOK/NGの正解
- OCR結果の文節、OCR結果全文、目的の設定値を含むかどうかのOK/NGの正解
などなど
③結果(1)
- OCR結果の文節、目的の設定値を含むかどうかのOK/NGの正解
学習データ OKデータ数:223件 / NGデータ数:158,372 件
OKデータが正解の正答率:0.36%
NGデータが正解の正答率:99.89%
- OCR結果の文節、前後の文節、目的の設定値を含むかどうかのOK/NGの正解
学習データ OKデータ数:223件 / NGデータ数:158,533 件
OKデータが正解の正答率:0.28%
NGデータが正解の正答率:99.87%
学習データ OKデータ数:101件 / NGデータ数:75,687 件
OKデータが正解の正答率:0.24%
NGデータが正解の正答率:99.80%
全ての学習パターンの中で最も正解率の高いものでも上記の通り0.36%程度であり、学習データに占めるOKデータの割合に近似していたため、学習データのOKデータとNGデータが不均衡であるとテスト結果に影響してしまうと考えました。
そこで、学習データのOKデータ量をNGデータ量に近づけるようにデータを水増し(augmentation)しました。
③結果(2)
- OCR結果の文節、目的の設定値を含むかどうかのOK/NGの正解
学習データ OKデータ数:223件 → 88,261件 / NGデータ数:75,687 件
OKデータが正解の正答率:0.36% → 21.91%
NGデータが正解の正答率:99.89% → 98.23%
- OCR結果の文節、前後の文節、目的の設定値を含むかどうかのOK/NGの正解
学習データ OKデータ数:223件 → 88,393件 / NGデータ数:158,533 件
OKデータが正解の正答率:0.28% → 27.71%
NGデータが正解の正答率:99.87% → 97.84%
学習データ OKデータ数:101件 → 52,765件 / NGデータ数:75,687 件
OKデータが正解の正答率:0.24% → 6.10%
NGデータが正解の正答率:99.80% → 94.47%
結果(1)より、OK割合が2割程になりましたが、想定していた結果よりも低いままでした。
ここまでの結果から、↓のことが分かりました。
・学習データの件数が不均衡だと偏った結果になってしまう
・学習項目がランダムな文字列だと特徴を捉えられないようで想定する結果にならない
分類別に学習データの件数を均衡にし、さらに特徴を捉えられる学習項目で機械学習を実施したらどうなのか、ということで実証実験2として試してみることにしました。
(後編へつづく)