ブログ

負けるが勝ちよ – 下町ディープラーニング #3

みなさんこんにちは。dottの清水です。

第2回「喧嘩と火事は江戸の花だが」では、ルールベースで文章分類をする難しさをゲームを通じて体感してもらいました。そして「NewsPic」というシステムではルールベースではなく機械学習・ディープラーニングを用いた方法を採用することになりました。

今回は実用的なAIを開発する上で「何を指標にするか」という話をしようと思います。

九分九厘、100%は達成できない

ディープラーニングを用いて作成したAIは、100%正しい結果を出すということが苦手です。精度が99%になっても、100%になることはまずありません。つまり「結果にはエラーが含まれる」ということを受け入れた上で付き合っていくことが望まれます。

100%にするのは難しいということは、ルールベースでも同じことが言えます。しかし「どんなものをエラーとして許容するか」「このケースはレアケースだから仕方ない」というような折り合いをつけ、ある程度恣意的に結果をコントロールすることが、ディープラーニングを用いる場合には難しくなります。中身がブラックボックスだと言われるように、そのような微調整の難易度はぐっと上がります。

90%と80%はどっちが良いか

「正解率が90%のAI」と「正解率が80%のAI」という2つの文章を見た時、前者の方が性能がいい!かっこいい!素敵!!という印象を持つと思います。

しかし本当にそうでしょうか?

使い方によっては正解率80%の方が実は役に立つかもしれません。

ちなみに今回は「正解率(Accuracy)だけではなく適合率(Precision)や再現率(Recall)、F値(F-score)も見なくてはいけない!」といった専門的な内容ではないことを先にお伝えしておきます。そこが気になる方は、テスト用のデータ群は偏りがなくAccuracyを見ていれば問題がないくらいのものだとか、AccuracyをF-scoreに置き換えて読んでもらうといいかもしれません。

エラーとハサミは使いよう

正解率が90%の文章分類AIはそこそこ高性能な計算機だと思いますが、仮にそういうAIがあったとしても「10%のエラーを許容できるかどうか」や「結果を人間がチェックするかどうか」によって使い方が変わってきます。

10%のエラーを許容できて人間のチェックが不要な場合は、ここで話は終わりです。正解率が高いAIを使って幸せな自動化ライフを送ることができるでしょう。

では10%のエラーを許容せずに、人間によってチェックを行うことが前提で作られているAIにはどのようなことが求められるでしょうか。

正解率の低いAIを採用

NewsPicというシステムは、株式会社レスキューナウ(以下、RSQ社)様の「RIC24」という24時間365日「危機管理情報」の有人監視をおこなっている現場に導入されているシステムです。

NewsPicは大量のニュースを確認し、その中からRSQ社のサービスに配信するべき情報を持ったものをピックアップしています。前回は「BERTを用いた自動化による正解率が77%から85%に改善された」という話をしましたが、実際には正解率がもっと低いモデルを使用しています。

なぜ正解率が低いものを使うのか、その理由は作業の流れにあります。

嘘から出たまこと

メインの作業の流れ

  1. NewsPicが「有用そうだ」と判定したニュースの一覧を確認する。
  2. 「有用だ」と判断したニュースを有用だと確定する。
  3. そのほかのニュースは不用となる。

メインの作業は大まかに上記のような流れになっていますが、それとは別にNewsPicが「有用ではなさそう」と判定した情報の中から、有用な情報を定期的にチェックするオペレーションも行われ、この作業を「サルベージ」と呼んでいます。

サルベージ作業の流れ

  1. NewsPicが「不用そうだ」と判定したニュースの一覧を確認する。
  2. 「有用だ」と判断したニュースを探す。
  3. 見つかった場合は有用なニュースとして変更する。

サルベージは多くの嘘から、ひとつの真実を見つけるような作業です。

ヒアリングの中でこの作業はとても負荷がかかるという声が多く、NewsPicでは精度を向上しつつ、サルベージを減らすことが至上命題となりました。

僕たち下町のディープラーニング工場で作るものは、現場で使いやすいものであるべきです。

真実はいつもふたつ

「正解」といっても「AIが有用だと言ったものが有用だった」時と「不用だと言ったものが不用だった」というふたつのパターンがあります。同じように不正解もふたつのパターンがあります。

少し分かりにくいと思うので、図でまとめてみました。

図の緑色のところを正解、赤いところを不正解としています。

正解の中で「AIと人間が有用」としたものを「真陽性」、「どちらも不用」としたものを「真陰性」と呼びます。左下の「偽陽性」は不正解ですが、NewsPicが出す候補から選ばなければ良いだけなので、この3つの結果はメイン作業をするだけで全てカバーできます。

反対に右上の「偽陰性」は不用そうなニュースの一覧から有用なものを見つける必要があるので、サルベージ作業で見つけることになります。

メイン作業とサルベージ作業の対象を上の図に加えるとこんな感じでしょうか。

このように「不正解」といっても、NewsPicには許容して良い「偽陽性」と、サルベージ作業を減らすためには許容しない方が良い「偽陰性」の結果があることがわかります。

さて、サルベージ作業をどのように減らしていくのかという話をもう少し続けたいのですが、少し長くなってきたので、その話はまた、次回の記事で。