• Column
  • データ活用力をDataOpsで高める

機械学習モデルを継続的に活用し続けるコツ【第4回】

山田 邦晴(日鉄ソリューションズ 技術本部 システム研究開発センター インテリジェンス研究部 主務研究員)
2021年1月8日

DataOps(DataとOperationsの融合)に関して前回は、データを分析して機械学習モデルを構築し、業務へ適用するプロセス(DataからOps)を説明した。これを継続的に活用し続けるには、環境の変化に合わせて機械学習モデルを日々進化させる必要がある。今回は、業務への適用後に機械学習モデルへフィードバックする具体的な仕組みやプロセス(OpsからData)について解説する。

 機械学習モデルを業務で利用する際は、過去のデータに基づき事前に決めた精度で予測可能なことを十分に検証してから適用する。そのため、適用直後は検証とほぼ同等の予測精度が得られ、活用の効果も期待通りのものが得られる。

 ところが利用し続けていると、急に予測がずれたり、徐々に予測が当たらなくなったりすることがある。そうなると、人手をかけて予測を修正する必要が生じたり、最悪の場合は機械学習モデルを使わなくなったりする事態も起こりうる。

変化を学習していないモデルのままでは精度が落ちる

 予測のズレや劣化は、業務で機械学習モデルの利用を続けていくと必ず発生する。その原因は、機械学習モデルが過去のデータや作成した時点の状況に基づいているからだ。

 現実の業務を取り巻く環境は日々変化しており、その変化に応じて発生するデータも変わっていく。過去にない特異的なデータが新たに発生したり、データの傾向が大きく変わったりすれば、予測の精度はどうしても落ちてしまう。

 例えば「店舗のレイアウトを変更した」「例年より早く暑くなった」「近くに競合店が出店した」といった環境の大きな変化があれば、店舗における商品需要に大きな影響を受ける。過去に同様の経験をしたことがなく、その変化を学習していない状態の機械学習モデルを使っているとすれば、こうした事態が発生したときに高い精度で予測することは難しい(図1)。

図1:消費者の購買に大きな影響を与える事態が発生した際に、そのことを学習していない機械学習モデルを使った需要予測では、実際の需要にズレが生じる

 機械学習モデルを継続して活用するためには、どうすればよいのだろうか。利用開始後に発生する、すべての変化を事前に考慮してモデルに組み込んでおくことは不可能だ。かといって、環境が変わるたびにデータを一から分析し直して最適なモデルを作るのも、コストや時間がかかり過ぎて現実的ではない。

学習モデルを継続的に改善する

 活用を続けるためには、機械学習モデルを継続的に改善する必要がある。すなわち(1)常にモデルの予測精度や最新のデータをモニタリングする、(2)予測にズレが生じたら原因を調査する、(3)業務環境やデータの変化に合わせモデルを改善する、という作業を常に実施し、日々改善を積み重ねて機械学習モデルを進化させる。それぞれについて具体的に見ていこう。

(1)モニタリングする

 モニタリングは、機械学習モデルを業務に活用し出した時点から始まっている。機械学習モデルの予測が期待した精度を実現できているか、最新のデータは学習時に利用したデータから大きな変化がないか、を日々モニタリングする。アプリケーションやインフラの運用とほぼ同様の作業であり、事前に決めた項目と基準を基に実施する。

 ただし、機械学習モデルの精度をチェックするには、予測と実績の両方が必要だ。これら2種類のデータは発生するタイミングと場所が異なる。そのため、それらのデータを1カ所に集約しなければならない。

 モニタリングのために業務適用前に準備しておく内容は以下のようになる。

(a)予測と実績の両方のデータを収集し、予測精度を算出できるようにする
(b)機械学習に利用した過去データと、現時点で予測に利用しているデータの両方を収集し、傾向や分布を比較できるようにする
(c)業務担当者、データ分析者、システム運用者などの全関係者がモニタリングできる仕組みを用意する。例えば、(a)と(b)のデータをBI(Business Intelligence)ツールなどで可視化して公開する
(d)予測精度の正常範囲と、それを外れた異常時の対応フローや体制を決めておく

 データの収集や可視化などの仕組みに加えて、(c)や(d)のように、業務側とIT側の両方の人員でモニタリングし、連携して対応できるような体制を組んでおく必要がある。