【レポート】ALX319 – It’s All in the Data: The Machine Learning Behind Alexa’s AI Systems #reinvent

2017.12.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

re:Invent 2017のセッション「ALX319 - It’s All in the Data: The Machine Learning Behind Alexa’s AI Systems」について聴講しましたのでご紹介します。

セッション概要

Garbage in, garbage out. The quality of all machine learning solutions depends on the data used in training. Alexa developers are able to use advanced natural language understanding capabilities like built-in slot and intent training, entity resolution, and dialog management. This utterance data behind your skills is the most important contributor to the voice input experience. This session discusses how utterance data is processed by our systems, and what you can do as a developer to improve accuracy.

セッション資料

  • 動画

Overview

  • Alexa under the hood
  • Data, data, and more data!
  • Building great skills with the right data
    • Utterances
    • Intents
    • Slots
      • Synonyms
      • Entity resolution
    • Invocation name
    • Dialog management

Under the hood

Alexaがユーザーとコミュニケーションをしていく仕組み。ユーザーがリクエストをしてからレスポンスを受け取るまでの流れがわかります。

  • ユーザーとAlexaのコミュニケーション
    • ユーザーがリクエスト
    • Audio stream が Alexaへ送られる
    • AlexaはSkillを特定する
    • ASR(自動音声認識)、NLU(自然言語理解)を通り意図を特定する
    • Alexaが意図をskillに伝える
    • レスポンスをAlexaはテキストから音声しグラフィカルコンポーネントをレンダリングしユーザーにレスポンスを返す。

画像

  • 機械学習でデータをどのように使用するか
    • トレーニング
    • ASK Date:
      • 発話
      • インテント
      • スロット
      • 同義語
      • 呼び出し名
      • Dialog management
    • 推論

    • ASK user utterance
    • One-shot:Alexa, ask travel buddy about surfing in Sydney
    • In-Skill: Is there good surfing in Sydney
    • Intent: ActivityInfoIntent
    • Slots:{activity: "surfing"}{city: "Sydney"}

画像

Utterances(発話)

発話とはユーザーがAlexaに何か言うこと

画像

  • インテント
    • あなたのスキルへのユーザーが何を求めているか
  • スロット
    • cityやアクティビティのような発話の可変部分を指定する
  • シノニム
    • スロットの値にバリアントを指定する

画像

  • ASKデータの為の機械学習について
    • インテントトレーニング
    • スロットトレーニング
  • インテントのトレーニングについて
    • データが不十分です
    • 統計的なマッチ
    • エラーの修正
    • 計画外の回答
    • 不要なコネクタ語
    • 複数のラベル
    • プロンプトの問題
  • Alexaはどのように聞いて、理解するか

画像

  • SkillデータはAlexaでどのように使用されるか

画像

  • スロットのトレーニングについて
    • カバレッジ
    • built-insの拡張
    • エラー処理
    • 異なるスロットの同じ値
    • データ前処理
    • エンティティの解像度の使用
    • スロットアンカーワード
    • 発話スロット文脈語
  • Utterances Summary
    • テスト!
    • 既存のインテントとスロットのカバレッジを向上させる
    • あいまいな応答を得るためにプロンプトを反復する
    • 新しいインテント/スロットを更新して、プロンプトへの応答を一致させる
    • 正常なエラーメッセージのために未処理の機能用に新しいインテント/スロットを作成する
    • 複数の連続したスロットによる非現実的な発話の生成を制限する
    • シノニムとEntity Resolutionを使用する

画像

Invocation names(呼び出し名)

呼び出し名は、覚えやすいこと、スキルに関連していること、ユーザーが呼び出しパターンで自然に言えることが重要。

  • ユーザーにAlexaのより良い経験を提供する為の要件について

画像

  • Alexaが呼び出し名を正しく聞くための要件について

画像

  • Some insights
    • Alexaは、サポートされているサンプルの発話を使用して、より正確に呼び出し名を聞く
    • 呼び出し名の珍しい単語を誤認識する可能性が高い
    • 呼び出しに関する問題
    • サンプル発話のカバレッジを向上させる
    • 別の呼び出し名を検討する
    • 少なくとも中程度の精度(> 70%)の場合は、優先する呼び出し名で公開する
      • 能動的学習

画像

Dialog management

  • 主な機能
    • スロット充填
    • スロット確認
    • スロットの意図と確認
  • 利点
    • スロット値とインテントの収集と確認を簡素化
    • Alexaはあなたが充填しているスロットに関するコンテキストを持っているので、スロット充填の精度が向上します。
    • より優れたスキルのためにそれを使用してください!

画像

Summary

  • 実際のユーザーとこれまでの経験をテストする
  • ユーザーが覚えやすく、Alexaが理解しやすい呼び出し名を使用する
  • 顧客が実際にに使用するスロット値と発話データを追加する
  • スロットデータのpre-processingの問題に注意する
  • Entity Resolutionを使用する
  • Dialog Managementを使用する
  • alexa.design/guideを使用する

画像

おわりに

実際に触れたことのあるプロダクトではないのですが、DL,ML,AIと興味がありましたので聴講しました。他のセッションも見て理解を深めていきたいと思います。

用語がわからなかったのでAlexaスキル用語集も参考にしました。