Amazon Lexのボット構造


機械学習に関する基本的な内容をまとめてみたものです。機械学習に関する、Web上にすでにある解説コンテンツをまとめたサイトの抜粋です。
Amazon Lexのボット構造

Amazon Lexのボット構造

Amazon Lex は、音声やテキストを使用した会話型インターフェイスを構築するためのサービスです。Amazon Lex を使用すると、モバイルデバイスや複数のチャットサービス (Facebook Messenger など) に音声またはテキストのチャットボットを簡単に公開できます。

ボットを作成するためには、まず、そのボットで実行するインテントを定義します。各インテントに対して、発話とスロットを追加します。発話は、インテントを呼び出すフレーズです。スロットは、インテントを実現するために必要な入力データです。最後に、アクションの実行に必要なビジネスロジックを設定します。Lex ボットは、コンソールおよび API の両方から作成できます。

Amazon Lex ボットでは、複数回の対話のやり取りを行うことができます。意図が特定されると、ユーザーは、その意図を実行するために必要な情報の入力を求められます (例えば、”ホテルの予約” が意図である場合、ユーザーは場所、チェックインの日付、宿泊日数などの入力を求められます)。Amazon Lex を使用すると、チャットボットとの複数回の対話のやり取りを簡単に構築できます。ボットユーザーから収集するスロットやパラメータ、およびそれに対応するプロンプトを指定するだけで、適切なスロットの入力を求めるメッセージが自動的に選択され、会話が編成されます。

インテント

Amazon Lex ボットを構築するためには、ボットに達成させる意図、すなわち “インテント” のセットをする必要があります。インテントは、飛行機のチケットを買う、アポイントメントを調整する、天気予報を取得する、等のbotのユーザーが達成したいゴールを表します。

ボットには複数のインテントを設定できます。例えば、”チケット予約” ボットには、予約、予約キャンセル、および予約確認のインテントを設定できます。各インテントに対して、発話とスロットを設定することにより、インテントの内容を定義します。

Amazon Lex ボットでは、複数回の対話のやり取りを行うことができます。インテントが特定されると、ユーザーは、そのインテントを実行するために必要な情報の入力を求められます (例えば、”ホテルの予約” が意図である場合、ユーザーは場所、チェックインの日付、宿泊日数などの入力を求められます)。

Amazon Lex を使用すると、チャットボットとの複数回の対話のやり取りを簡単に構築できます。ボットユーザーから収集するスロットやパラメータ、およびそれに対応するプロンプトを指定するだけで、適切なスロットの入力を求めるメッセージが自動的に選択され、会話が編成されます。

発話とスロットとプロンプト

発話 (Uttercase)

“発話” は、インテントを呼び出す音声またはテキストのフレーズです。例えば、予約のインテントを呼び出すために、「予約できますか?」のような発話を定義します。

スロット

インテントを実現するためには、Amazon Lex ボットにはユーザーからの情報が必要です。この情報は “スロット” に取得されます。例えば、予約のインテントに対してはショーの名前と時間を定義します。

プロンプト

スロットをユーザから引き出すための質問文です。 例えば、”時間” というスロットの値を引き出すために、「何時の便を予約したいですか?」のようなプロンプトを定義します。Amazon Lex では、マルチターン会話機能によって複数のスロット値を引き出すことができます。

ビジネスロジックの設定

Amazon Lex では、AWS Lambda との統合によって、アクションまたはビジネスロジックを “実行” します。また、解析済みのインテントとスロット値をクライアントに戻してアクションを実行するように Amazon Lex を設定できます。

Lambdaのサーバーレスコンピューティング性能により、ボットの開発に注力しながら、大規模なビジネスロジックを簡単に実行できます。Lambda からは、Amazon DynamoDB で会話の状態を維持する、Amazon SNS でエンドユーザーに通知を行うなど、AWS のさまざまなサービスを利用できます。