今回からは、AWSの機械学習(ML)サービスの具体的な内容を見ていきたいと思います。

タイムリーなことに、去る12月1日~6日、米国ラスベガスにてAWSの最大のイベントである「AWS re:Invent 2019」が開催され、全部で70を超える新サービスが発表されました。

注目すべきなのは、機械学習サービスだけで20の新サービスが発表されており、全体の3割程度を占めている点です。AWS社がサービスの開発に注力していることが伺え、今後も多数のサービスが登場することが予想されます。

本連載では、新サービスも含めて機械学習サービス全体を扱っていきますが、AWS re:Invent 2019の新サービスについていち早く知りたい方は、Amazon Web Searvices Japanの公式YouTube動画「【AWS Black Belt Online Seminar】AWS re:Invent 2019 アップデート 速報」、もしくはSlideShareの資料をご確認ください。

以上を踏まえ、今回は次の2点を理解していただくことを目標に解説していきます。

  • AWSが3つのレイヤーで提供する機械学習サービスとそれぞれの概要
  • 機械学習を活用する際の留意点

AWSが3つのレイヤーで提供する機械学習サービス

早速、AWSの機械学習サービスを整理していきたいと思いますが、そもそもAWS社はどのようなミッションの下に機械学習サービスを提供しているのでしょうか?

同社公式サイトの機械学習サービスのページでは、「すべての開発者に機械学習の恩恵を」という言葉が掲げられています。

その言葉通り、AWSでは機械学習を専門に扱う研究者やエンジニアだけでなく、「これから機械学習をビジネスに取り入れたい」と考える機械学習の専門知識を持たないエンジニアに向けたサービスも用意されています。

AWSの機械学習サービスのラインナップ(MLスタック)は、現在、下記のようになっています。

AWSの機械学習サービススタック/出典:「AWS re:Invent 2019 re:Cap | AI/ML」の資料より抜粋

前回も同様の図を示しましたが、AWS re:Invent 2019で発表された新サービスが追加されているため、内容が変わっている(大幅に増えている)点に注意してください。

AWSの機械学習サービスは、大きく「AIサービス」「MLサービス」「MLフレームワークとインフラストラクチャ」の3つのレイヤーで提供されています。

それぞれの機械学習サービスの特徴を下記の表に簡単にまとめます。

サービス名 サービスの特徴 導入の難易度
AIサービス ・AWSがユースケースごとに用意したサービスと自身の解決したい問題/課題とマッチする人向けのサービス
例:機械翻訳がしたい→Amazon Translate、商品の在庫を予測したい→Amazon Forecast、など
・学習済の機械学習モデル、もしくは機械学習モデルを生成する仕組みがAWSから提供される
利用者が考える部分が少なくて済むため、「機械学習の深い知識なしに利用可能」であり、導入の難易度は最も低い
MLサービス ・ 機械学習エンジニアやデベロッパ向けのサービス
・「Amazon SageMaker」とその関連機能により、機械学習のプロセス(開発/学習/デプロイ/推論/監視など)を効率良く行うための機能が提供されている
・ AWSが用意したビルトインアルゴリズムを利用して機械学習モデルを開発することや利用者独自のアルゴリズムを基に機械学習モデルを開発することも可能である
AIサービスと比較すると柔軟性が増す一方で利用者が準備する部分が増えるため、導入の難易度はやや高い
MLフレームワークとインフラストラクチャ ・自前で機械学習環境をスクラッチで構築するためのサービス群
・利用者が好きなMLフレームワークを選択して開発することができる

上記の表に示した通り、AIサービスは導入の難易度が低いため、各サービスのユースケースと使い方を正しく把握することさえできれば、比較的手軽にビジネスに機械学習を取り入れることができるでしょう。

一方で柔軟性には欠けるため、ユースケースや要件が合わない、細かいチューニングを行いたいといった場合は、MLサービスや、MLフレームワークとインフラストラクチャで提供されるサービスを利用してカスタマイズすることになります。

機械学習を活用する際の留意点

本連載ではビジネスに機械学習を活用することをテーマとしていますが、必ずしも機械学習を導入することが正解であるとは限りません。機械学習の活用を考える際の留意点を下記に挙げるので、参考にしていただきたいと思います。

自身のビジネスにおける問題/課題から入っているか?

機械学習に限らず、何かを導入しようとする際は、自身の「ビジネスにおける問題/課題」から入ることが重要です。すなわち、機械学習を利用することはビジネスで価値を出すための手段であり、機械学習の導入自体を目的化してはいけないということです。

例えば、「機械学習を使ってとりあえず何かをやりたい! 」という思いから出発してしまうパターンです。機械学習は技術的なトレンドになっていますので、「試してみたい」「世の中の流れに遅れを取りたくない」などの理由から導入を検討したいという気持ちは理解できます。

しかし、手段と目的が逆転した状態で開発を進めてしまうと、利用者に使われないシステムや機能が作られてしまいがちです。技術検証やPoC(Proof of Consent:概念実証)を実施するにしても、背景にビジネス課題があって、それを解決できるかどうか確認するために実施するはずです。

したがって、まずは自身のビジネスにおける問題/課題を明確にし、機械学習を使うことで生み出されるビジネス価値をはっきりさせることが重要となります。

機械学習を使うべき理由が明確になっているか?

機械学習モデルの維持や運用には手間がかかる場合が多いので、機械学習を使わずに簡便に対処できるのであれば、使わないほうが賢明だと考えられます。

少数の条件の組み合わせで後続の処理が決まるのであれば、わざわざ機械学習を導入せずに条件分岐(if文など)を使って実装すれば済むでしょう。

一方、ECサイトにおける商品のレコメンド(推薦)のような問題では事情が変わります。商品の数や購入数などを考慮すると購入パターンは無数に存在しますし、同じような好みを持っている人が同じ商品の組み合わせで購入するとは限りません。

このような場合には、機械学習が活躍します。ユーザーの購入履歴データからユーザの購買行動のパターンを見い出し、ユーザーが購入してくれる可能性が高い商品を推薦することができます。

ビジネス課題とユースケースが合っているか?

例えば、「Amazon Forecast」は時系列データの予測サービスであり、時系列データ以外のものを予測させることはできません。

AIサービスの場合は利用するサービス、MLサービスの場合は利用する機械学習アルゴリズムのユースケースを正確に把握してビジネス課題とマッチしていることを確認する必要があります。

十分なデータの量と質が揃えられているか?

機械学習モデルの構築にかかる時間の大半は、データの準備が占めると言われます。データの質と量は精度を左右する大切な要素の1つです。

例えば、クレジットカードの不正検知を教師あり学習の分類問題として対処する場合を考えてみます。この場合、正解データとして「不正利用がある場合のデータ」と「ない場合のデータ」の両方を用意する必要があります。

下記の項目をチェックして「No」がある場合は、データの収集から見直して、データの質と量を揃えることから検討したほうが良いかもしれません。

  • 不正利用あり/なしデータのデータ数に偏りがない
  • データのなかに不正利用の特徴を説明する情報(購入した商品や取引が発生した場所など)が含まれる
  • 十分な量のデータ数が存在する

上記の例のように、正常と異常の両方のデータが必要となる場合は、異常を示すデータが少なくなりがちで、課題になりやすいポイントでもあります。

なお、必要となるデータ数は場合によって異なります。量に関しては、テストデータを使って精度から判断する必要があります。

機械学習モデルの判断ミスに”歯止め”を効かせられるか?

一般的に機械学習モデルの精度は100%にはならないので、間違った判断を下すことがあります。

上述の不正検知の例で言えば、利用者本人であるにもかかわらず不正利用と判定されて決済処理が行えないという事態が起こり得るわけです。ミスが何度も発生すると、ユーザーの満足度が低下し、サイト離脱にもつながりかねません。

そのような事態をなくすために、不正利用を検知した場合は本人の電話番号に確認用の自動電話を掛けるなど、機械学習モデルの判断に”歯止め”を効かせる仕組みを考慮することが必要です。

* * *

今回は、AWSが3つのレイヤーで提供する機械学習サービスとそれぞれの概要、そして機械学習を活用する際の留意点について解説しました。

次回は、AIサービスとして提供されているサービスの概要やユースケースについて見ていきたいと思います。

著者紹介


菊地 貴彰 (KIKUCHI Takaaki) - NTTデータ システム技術本部 デジタル技術部
Agile Professional Center

大学・大学院では、機械学習を専攻。ベイズ的枠組みを用いて、複数の遺伝子のデータから遺伝子どうしの相互作用ネットワークの推定に関する研究を行った。

株式会社NTTデータに入社後は、法人や金融のシステム開発のシステム基盤担当としてキャリアを積み、現在はデジタル技術や Agile 開発を専門に扱う組織でシステム開発全般を担当する。
2019 APN AWS Top Engineers に選出。

本連載の内容に対するご意見・ご質問はtwitter: @kikuchitk7まで。