Alexaスキルのインテント履歴を活用して対話モデルを改善する

開発者コンソール上の「インテント履歴」を使うとユーザーの発話例を確認することができ、スキルの改善に役立ちます。
2018.07.07

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

はじめに

Alexaのカスタムスキルを開発していると、データ分析やスキル改善のために、ユーザーがスキル上でどのような発話を行ったのか、を調査したいニーズが出てきます。
しかし、2018年7月7日現在、Alexaでは開発者がユーザーの発話そのものを取得することはできません。

但し、開発者コンソール上の「インテント履歴」機能を使えば、制限付きではありますがユーザーの発話情報を確認することができます。

【公式ドキュメント】カスタムスキルのインテント履歴を確認する

開発者コンソールでのインテント履歴

インテント履歴を利用するには、開発者コンソールのスキル画面で、「インテント履歴」メニューを選択します。

インテント履歴の画面では、ユーザー発話やそれに対してAlexaがどのインテントで解決したか、などの情報が表形式で表示されます。

なお、インテント履歴の画面で表示される情報は以下の通りです。
カスタムスキルのインテント履歴を確認するより引用)

説明
発話 ユーザーがスキルに対して話しかけた発話です。
信頼度 正しいインテントに解決された発話の信頼度です。高、中、低のいずれかです。信頼度が低のリクエストはインテントリクエストとしてスキルに送信されませんが、再プロンプトのトリガーとなります。
解決されたインテント 発話に一致するスキルのインテントです。信頼度がのリクエストの場合、もっとも可能性の高いと考えられる推測ですが、スキルにインテントは送信されません。
解決されたスロット 発話によって解決された(値が入った)スロットのリストです。
ダイアログ 発話がダイアログの一部の場合、情報を引き出すスロット、確認スロット、確認インテントのいずれかになります。
対話モデルのタイプ 発話がONE_SHOT対話として実行されたのか、MODAL対話として実行されたのかを表します。

  • ONE_SHOT: ユーザーはスキルを呼び出して単一のフレーズでインテントを発話します。
  • MODAL: ユーザーは最初にスキルを呼び出してからインテントを発話します。
  • また、公式ドキュメントには以下のように記述されています。

    インテント履歴のページに表示されるデータは、集計され、匿名化されています。つまり、スキルに送信されたすべての発話が表示されるわけではありません。

    ロケールには、そのロケールのすべてのデータとデータを取得可能な日に、1日あたり少なくとも10人のユニークユーザーが存在する必要があります。たとえば、スキルの日本語バージョンには6月1日に20人のユニークユーザーが存在し、英語(米国)バージョンに同じ日に9人しかユニークユーザーが存在しないとします。この場合、6月1日のデータとして日本語は利用できますが、英語(米国)は利用できません。

    表示される発話は、プライバシー基準に基づいて選択されたよく使われる発話です。

    上記にあるように、インテント履歴を利用するためにはスキルに対して1日あたり10人以上のユニークユーザーが存在しないとデータが表示されないため、注意が必要です。
    (手元にある公開済みの個人スキルでは、表示されませんでした。。)

    ユーザー発話から見えてくるスキル改善

    解決されたインテントの情報だけでなく、ユーザー発話を確認できることによって、スキルの改善につなげることができます。
    例えば、サンプルアタランスは開発者がユーザーの発話を想定して登録していきますが、当然ユーザーが想定外の発話を行うこともありえます。
    そういったケースの発話がインテント履歴に残っていれば、サンプルアタランスを改善することができます。
    また、全く想定しない発話の履歴が残っていれば、そもそもスキル上の対話フローがユーザーの発話をうまく誘導できていない可能性も考えられます。

    このように、ユーザーの発話情報はスキルのUX改善のヒントになるので、うまく活用するとよいでしょう。

    おわりに

    スキル上で実際にユーザーが発話した内容が確認できる「インテント履歴」の機能をご紹介しました。
    スキルをリリースした後も、インテント履歴や自分で仕込んだバックエンド側のログを分析し、より良いUXが提供できるように継続的にスキルを改善していきたいですね。

    それでは。