NECは5月26日、ビルの電力需要や小売店舗の日配品の需要などを人工知能(AI)を使って予測するシステム構築サービスを強化し、複数サーバを使った分散処理で以前よりも大規模なデータを高速に分析できるようにする技術を開発したと発表した。2017年度の実用化を予定する。
NECはこれまで、データの中に規則性が複数存在する時に、これを自動で場合分けする「異種混合学習」技術をSIサービスで利用してきた。例えば、コンビニエンスストアの売上予測の場合、天候が雨と晴れで分けたり、曜日で分けたりする。異種混合学習技術を使うと、データの規則性を分析して、どのように場合分けすればよいかを自動的に判断できる(図1)。
図1:NECが開発する異種混合学習技術は、データの規則性を分析して、どのように場合分けすればよいかを自動的に判断する(NEC提供)
NEC データサイエンス研究所 主席研究員 藤巻遼平氏
今回、異種混合学習技術を複数サーバを使った分散処理に対応させた「分散版異種混合学習」技術を開発した。背景には、金融業界や通信業界を筆頭に「大量のデータを分析したいという需要が高まっている」(NECでデータサイエンス研究所主席研究員を務める藤巻遼平氏)という状況がある。
分散処理で機械学習を大規模化、高速化
分散処理の効果は大きく2つある。効果の1つは、サーバ1台ではメモリに乗せられないために計算できない大規模なデータでも、複数サーバに分割して計算させられること。もう1つの効果は、同一のデータであれば、複数サーバを並列で動作させることで計算を高速に終わらせられることだ。
新技術のアーキテクチャは、計算ノード「executor」と管理ノード「driver」で構成する(図2)。計算ノードは、自身に割り当てられたデータを分析して、予測モデルを生成する。管理ノードは、計算ノードが生成した予測モデルを収集して統合する。さらに、統合後の予測モデルを計算ノードに再配布する。このサイクルを回すことでシステム全体で精度の高い予測モデルを作成する。
図2:分散版異種混合学習技術のアーキテクチャ。分散ノードが生成した予測モデルを統合して再配布するサイクルを回す(NEC提供)
計算ノードと管理ノードの通信や分散計算の管理には、分散並列処理フレームワーク「Apache Spark」を利用する。
NECは、分散処理の効果測定のため、全国にある約2万台の現金自動預け払い機(ATM)の残高を推定する実証実験を実施した。予測精度は平均で17%向上し、速度は約110倍に高速化した。