前回は、AWSの機械学習サービスの全体像と機械学習を活用する際の前提事項について説明しました。今回は、下記を理解していただくことを目標に解説をしていきます。
- AIサービスのラインナップとそれぞれの概要(特長、ユースケース、東京リージョンでの利用可否など)がわかる
なお、今回はあくまでも全体感をつかむことを目標とし、個々のAIサービスの詳細や具体的な使い方については次回以降、扱う予定です。
AIサービスの全体像
AIサービスは、AWSが3つのレイヤーで提供する機械学習サービスのうち最上位に位置するサービス(下図の赤枠内)です。
このうち以下の4つのサービスは昨年末米国ラスベガスにて開催された「AWS re:Invent 2019」で追加されたものです。これにより、AIサービスは10カテゴリ、13サービスとなりました。
- Amazon Kendra (ドキュメント検索サービス)
- Amazon CodeGuru (コードレビューの自動化サービス)
- Amazon Faud Detector (不正検知サービス):要プレビュー参加申し込み
- Contact Lens for Amazon Connect(Amazon Connectによるコンタクトセンターの分析サービス):要プレビュー参加申し込み
ただし、これらは本稿執筆時点(2020年3月24日)で「プレビュー」での提供であり、東京リージョンでは提供されていません。一般公開までに仕様が変更される可能性がありますので、本番環境で利用する場合はご注意ください。
AIサービスの主な特徴は、以下の2点です。
- AWSから学習済の機械学習モデル、もしくは機械学習モデルを生成する仕組みが提供される
- ユースケースごとにサービスが用意されている
それぞれの特徴について、詳しく見ていきます。
AWSから提供される2種類のモノ
AIサービスでは、AWSから以下のいずれかが提供されます。
- パターン1:学習済の機械学習モデル
- パターン2:機械学習モデルを自動で生成する仕組み(AutoML機能)
機械翻訳サービス「Amazon Translate」のようにパターン1しかないサービスもあれば、画像/動画分析サービス「Amazon Rekognition」のように機能によってパターン1とパターン2の両方の機能を備えるサービスもある点に注意してください。
このパターン分けは、AutoML(Automated Machine Learning)機能の有無と捉えることもできます。同機能は、ユーザーが準備した学習データからユーザー独自の機械学習モデルを自動で構築するというものです。
AIサービスによって自動化範囲が多少異なりますが、多くが機械学習のワークフローのうちの「モデルの構築(機械学習アルゴリズムの選定を含む)」「モデルの学習」「モデルの評価」のプロセスを自動化します。
本連載では、各AIサービスの開発者ガイドで「AutoML」と記載があるか、同等の機能を有するものを「AutoML機能あり」と考えます。それでは、各パターンについて見ていきましょう。
パターン1:学習済の機械学習モデル
AWSのAIサービスの多くのサービス/機能が該当するのが、パターン1です。このパターンでは、AWSが準備した機械学習モデルを利用します。すなわち、学習データの準備や機械学習アルゴリズムの選定はAWSが行い、それらを基にして構築された機械学習モデルをユーザーが利用するかたちになります。
例えば、Amazon Translateを例に考えてみましょう。
Amazon Translateは、多言語に対応した機械翻訳サービスです。例えば、英語のテキストから日本語のテキストへの翻訳やその逆も行うことができます。下図は、Amazon Translateのコンソールで英語版「Amazon Translateの開発者ガイド」の冒頭のテキストの日本語訳を行ったものです。
翻訳を実行する際にユーザーがやるべきことは、「翻訳したいテキストの準備」と「Amazon Translateでの翻訳の実行」だけです。学習データとなる英語/日本語のテキストの準備や機械学習アルゴリズムの選定、機械学習モデルの構築/デプロイは必要ありません。
今回はコンソールで翻訳しましたが、Amazon TranslateのSDKを利用してユーザーのアプリに翻訳機能を組み込むことも可能です。
AIサービスの謳い文句となっている「機械学習の深い知識なしに利用可能」「素早くビジネスへの取り込みが可能」といったメリットがある反面、機械学習モデルに関してチューニングできる範囲が限定されるというデメリットがあります。
例えば、テキスト中にユーザーの組織に固有の単語が存在する場合は翻訳に失敗する可能性がありますが、「カスタム用語」として単語を登録すれば、正しく翻訳させることができます。
しかし、このようなチューニングを行ってもビジネス要件(精度など)を満たせない、もっときめ細やかなチューニングを行いたいという場合は、「Amazon SageMaker」などを利用して独自の機械学習モデルを構築する必要があります。
パターン2:機械学習モデルを自動で生成する仕組み(AutoML機能)
このパターンでポイントとなるのが、機械学習モデルを自動生成する仕組みであるAutoML機能です。以下に挙げるAIサービスでは、AutoML機能が提供されています。
サービス名 | 機能名 | 機能の説明 |
---|---|---|
Amazon Rekognition | カスタムラベル | ユーザー独自のラベルを定義して画像から検出できる。 例:ペットの犬のラベルに定義して、画像から検出する |
Amazon Comprehend | カスタムエンティティ | ユーザー独自のエンティティ(人、組織、場所など)を定義し、テキストから抽出することができる。 例:組織に固有なポリシー番号などを定義してテキストから抽出する |
カスタム分類子 | ユーザー独自のラベルを定義し、テキストを分類するモデルを作成できる。 例:顧客からのメール問合せの内容から担当部署に振り分ける |
|
Amazon Personalize | レコメンドモデルの自動構築 | 最適なレコメンドアルゴリズムを自動選択して、ユーザー独自のモデルを構築できる |
Amazon Forecast | 時系列データ予測モデルの自動構築 | 最適な時系列予測アルゴリズムを自動選択して、ユーザー独自のモデルを構築できる |
Amazon Fraud Detector | 不正検知モデルの自動構築 | 過去の不正データからユーザー独自の不正検知モデルを自動構築できる |
なお、「Amazon Fraud Detector」はユーザーの過去の不正データから不正検知モデルを自動生成するサービスです。Amazon Fraud Detectorの開発者ガイドには「AutoML」という単語は登場しないものの、同等の機能を持つため「AutoML機能あり」と考えてパターン2に分類しています。
パターン2のメリットは、AutoML機能を使ってユーザーのデータに即した機械学習モデルを構築することができることです。実際にユーザーのビジネスで生成されたデータに基づいて機械学習モデルを構築できるため、より確からしい予測が期待できます。
単純に利用するだけのパターン1と比べると、機械学習モデルの構築/学習/評価のプロセスが増える分だけ時間がかかりますが、その部分はAutoML機能が自動で行ってくれます。Amazon SageMakerなどを使ってゼロから構築する場合と比べると、手早くビジネスに機械学習を導入することができるはずです。
ここでは、Amazon ForecastにおけるAutoML機能を見てみましょう。Amazon Forecastでは、以下の5つの時系列予測アルゴリズムを利用することができます。
取り扱うデータやそれぞれのアルゴリズムの特徴を考慮した上でアルゴリズムを選択すべきですが、それには機械学習に関する専門的な知識が必要です。そこでAmazon ForecastのAutoML機能を利用すると、上記の5つのアルゴリズムから最適なアルゴリズムが自動で選択されます。
Amazon ForecastのAutoML機能は、以下の処理を自動で行います。
- 上記の5つのアルゴリズムを使ってそれぞれ学習を行い、時系列予測の機械学習モデルを構築する
- 時系列予測の機械学習モデルの精度の評価を行う
- 最も精度の高い機械学習モデルを選択し、ユーザーに提示する
では、Amazon ForecastのコンソールでAutoML機能を利用する場合について見てみましょう。
AutoML機能は、「予測子(Predictor)」の設定の際に、「Algorithm selection (アルゴリズムの選択)」で「Automatic (AutoML)」を選択するだけで利用できます。
予測子とは、「時系列予測の機械学習モデル」のことであり、「予測子の作成」は「機械学習モデルの構築」を意味します。作成ボタン押下後、しばらく待つと予測子が作成されます。
上図が、最も精度が高かった時系列予測の機械学習モデルの提示画面です。ここで試した例では、DeepAR+という再帰型ニューラルネットワーク(Recurrent Neural Network)を用いたアルゴリズムが選択されました。
これを本番環境にデプロイして、将来の時系列データに対する予測を行うことができます。
また、Amazon Forecastのコンソールでは、その他の4つの機械学習モデルの情報を確認することもできます。以下の画面に表示されているのはARIMAを使った機械学習モデルの情報であり、赤枠のプルダウンから選択することでほかの機械学習モデルの情報を確認することができます。
各パターンのカバー範囲
上記では、AIサービスの提供形態を2つのパターンに分けて整理しました。ここで、機械学習のワークフローにおける各パターンのカバー範囲についてまとめておきましょう。参考情報として、MLサービス(Amazon SageMaker)にて独自モデルを構築する場合についても併記しておきます。利用するサービスや機能によって、多少の違いがある点に注意してください。
ユースケースごとに用意されるサービス
ここからは、それぞれのAIサービスのユースケースについて整理します。
テキスト翻訳に特化したAmazon Translateのように単一の機能が提供されているサービスがある一方で、Amazon Rekognitionのように複数の機能が提供されているサービスもあります。
ここでは表形式で簡単にサービスの説明や代表的なユースケースなどの概要を紹介するに留め、次回以降で詳細な説明や具体的な利用方法について扱うこととします。
なお、読者の多くは東京リージョンでの利用を想定していると考えられるため、東京リージョンでの利用可否についても記載します。また、言語を扱うサービスでは日本語の対応状況がポイントになると考えられるため、表ではカッコ内に日本語の対応状況を記載しました。
カテゴリ | サービス名 | サービスの説明と代表的なユースケース | AutoML機能の有無 | 東京での利用可否 |
---|---|---|---|---|
Vision 画像・動画像処理 |
Amazon Rekognition |
◆画像・動画像処理 - 事前定義のラベルによる人物や物体の特定 - カスタムラベルによる人物や物体の特定 - 有害コンテンツの特定 - テキストの検出 - 顔の検出と性別や年齢、感情の分析 - 顔の検索と人物特定 - 画像/動画像内の物体やシーンの特定 - 画像/動画像内の人物の表情や感情の分析 |
○ - カスタムラベル |
○ |
Speech 音声認識 |
Amazon Polly | ◆テキストの読み上げ - Web サイトなどの文書コンテンツの読み上げ - コンタクトセンター業務の定型文章の読み上げ |
× | ○ (日本語対応済) |
Amazon Transcribe | ◆音声の文字起こし - 音声ファイルの文字起こし - 複数の話者 (2~10人) が存在する会議などの音声ファイルの文字起こし - チャネル (話者) ごとの文字起こし - 個人情報等の自動マスキング - ストリーミング音声のリアルタイム文字起こし:日本語未対応 - 医療に特化した文字起こし (Amazon Transcribe Medical) :日本語未対応 |
× | △ (日本語未対応機能あり) |
|
Text 自然言語処理 |
Amazon Comprehend | ◆自然言語処理/テキスト分析 - テキスト(メール、SNS、顧客アンケート結果など)からのキーフレーズ抽出、感情分析、構文解析、エンティティ認識、言語検出、トピック分類 - カスタムエンティティによるユーザー独自のエンティティ(人、組織、場所など) の分類 - カスタム分類子によるユーザ独自のラベルの定義とテキストの分類 - 医療に特化したテキスト分析(Amazon Comprehend Medical):日本語未対応 |
○ - カスタムエンティティ - カスタム分類子 |
△ (日本語未対応機能あり) |
Amazon Translate | ◆テキストの翻訳 - 大量テキスト(業務マニュアルなど)のバッチ翻訳(一括翻訳) - テキストのリアルタイム翻訳 |
× | ○ (日本語対応済) |
|
Amazon Textract | ◆ドキュメント分析 - 画像データからのテキスト、フォーム (Key-Value ペア)、表の抽出 - 抽出したデータの Amazon S3、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon Comprehend への格納 |
× | × (日本語未対応) |
|
Search ドキュメント検索 |
Amazon Kendra※ | ◆検索サービス - さまざまなデータソース(ファイルシステム、RDB、S3など)に対する検索機能 |
× | × (日本語未対応) |
Chatbot チャットボット |
Amazon Lex | ◆チャットボット - 顧客の音声もしくはテキストによる問合せやFAQの対応 |
× | × (日本語未対応) |
Personalization レコメンド |
Amazon Personalize | ◆レコメンド - 顧客の購買履歴や購買行動に基づいた商品や類似商品のレコメンド - おすすめ順 (ランキング) への並べ替え |
○ - レコメンドモデルの自動構築 |
○ |
Forecasting 予測 |
Amazon Forecast | ◆時系列データの予測 - 小売の需要予測 - サプライチェーンとインベントリの計画 - 従業員の計画 - 今後のウェブトラフィックの見積もり - 収益およびキャッシュフローなどの予測メトリクス - その他の任意の時系列データの予測 |
○ - 時系列データ予測モデルの自動構築 |
○ |
Fraud 不正検知 |
Amazon Fraud Detector※ | ◆不正検知 - 過去の不正データを基にしたユーザ独自の不正検知モデルの自動構築 |
○ - 不正検知モデルの自動構築 |
× |
Development 開発ツール |
Amazon CodeGuru※ | ◆コードレビューの自動化 - ソースコードのレビュー (問題の検出と修正方法の提示) の自動化 (Amazon CodeGuru Reviewer) - アプリのパフォーマンスの分析とパフォーマンス最適化方法の提示 (Amazon CodeGuru Profiler) |
× | × |
Contact Center コンタクトセンター |
Contact Lens for Amazon Connect※ |
◆Amazon Connectのコンタクトセンター分析 - 顧客の連絡先ページでの全文検索 - 顧客とのやり取りの文字起こしデータを基にした感情分析 - 顧客の感情の推移などの詳細情報の提示 - 顧客の連絡先の自動分類 |
× | × |
※ 2020年3月24日時点でプレビューでの提供。
上記の表は、本稿執筆時点の公開情報に基づいて作成したものです。「カテゴリー」や「サービス」の記載は文献によって多少の違いがありますが、ここでは冒頭で図示した「AWSのMLスタック」に従って記載しています。
* * *
今回は、AIサービスの全体像について説明しました。次回は、MLサービスの概要について見ていきたいと思います。
著者紹介
菊地 貴彰 (KIKUCHI Takaaki) - NTTデータ システム技術本部 デジタル技術部
Agile Professional Center
大学・大学院では、機械学習を専攻。ベイズ的枠組みを用いて、複数の遺伝子のデータから遺伝子どうしの相互作用ネットワークの推定に関する研究を行った。
株式会社NTTデータに入社後は、法人や金融のシステム開発のシステム基盤担当としてキャリアを積み、現在はデジタル技術や Agile 開発を専門に扱う組織でシステム開発全般を担当する。
2019 APN AWS Top Engineers に選出。
本連載の内容に対するご意見・ご質問はtwitter: @kikuchitk7まで。