音声認識以外でも使われ始めた、Alexa における機械学習利用(1)

Machine Learning in Alexa

f:id:jukuin2000:20190608101625j:plain
Machine Learning in Alexa

今回の re:MARS では Alexa に関するセッションも多かったように思いました。Alexa における Machine Learning といえば、音声入力を内部的にテキストに変換するところにだけ使われている印象ですが、それ以外のところでも使われるようになってきていて、ずいぶん進化している印象を受けました。また、今回の re:MARS 内で始めて公開された Alexa Conversation は、Machine Learning によって近未来を見せてくれるものでした。

Alexa

まず、Alexa に入っている音声認識以外の Machine Learning の部分についてです。「いろいろなタイプのAlexaユーザーの体験を向上させたい」というところから彼らは考えたそうです。

f:id:jukuin2000:20190607090717j:plain
Growing Diversity of Customers

  • アーリーアダプター
  • スマートホームに興味がある人たち
  • 家のセキュリティ対策をきっかけに使いたい人たち

これらのユーザー体験を向上させるために、3つのポイントに絞って対策します。

  1. アーリーアダプター => Simplicity
  2. スマートホームに興味がある人たち => Convenience
  3. 家のセキュリティ対策をきっかけに使いたい人たち => Safety

Simplicity

従来の Alexa はライトを付けてほしいときに、そのデバイス名を指定する必要がありました。家に複数のAlexa対応ライトがある場合、それぞれを識別するためです。例えば居間の照明に「居間の電気」とデバイス名を付けたとします。この場合、この電気をON/OFF するためには

Alexa, 居間の電気をつけて/消して と命令する必要がありました。これが結構不便で、例えば Alexa, リビングの電気をつけて とか Alexa, 居間のライトをつけて とかでは、デバイスを特定できずライトをつけることができません。Simplicity では主にこれを解決しています。

(音声デモがあるのですが聞いてもあまり面白くないのでテキストで起こしてしまいます)

私: Alexa, 電気をつけて
A: 居間の電気のこと?
私: そう
A: OK
(居間の電気がつく)

これ、Alexa を使っている人には画期的に感じられると思います。デバイス名忘れますよね?私はいつも忘れます。 乱暴に要約すると「Simplicity とは "あなたがいいたいのは...?" と推測する」ことです。この推測というところを、Machine Learning を使って実装していました。

f:id:jukuin2000:20190607093156j:plain
Simplicity: Did you mean ___?

まず、下段にあるデータをご覧ください。推測に必要なデータセットは4つあります。

  • Device Registry
    • どんなデバイスが登録されているか
    • (Alexa に登録しているデバイス一覧)
  • Voice Interaction
    • 過去に Alexa とした会話
    • どんな発話でどんな行動をしたか
  • Device State Change
    • 現在のデバイスの状態
    • (電気ならON/OFFの状態)
  • Environment
    • 時間帯、曜日、その他

最初に Device Registry にあるデバイス一覧を意味的に近いものに Segment しておきます。(Semantic Similarity)

f:id:jukuin2000:20190607092632j:plain
Device Semantic Similarity
このように Embed データとして持っておくわけですね。 次に Voice Interaction を使います。
f:id:jukuin2000:20190607092829j:plain
Voice Interaction
それから、Device State Change
f:id:jukuin2000:20190607093047j:plain
Behavior Prediction
これは何曜日の何時頃に電気がONの確率がどのくらいかをグラフにしたものです。 この、Voice Interaction と Device State Change をつかって、ふるまいの予測(Behavior Prediction)をします。

その結果を Ranker が生成し、ユーザーに「居間の電気のことですか?」と返すわけです。ちなみに、そのときのユーザーの「そう」という情報も FB としてAlexa に返って蓄積されます。

このようにして、Alexa は曖昧なデバイス指定でも推測して行動してくれます。

対応状況

US で展開されている Alexa はすでにこれに対応しているようです!

日本はまだか聞いたところ、機能的にはいけるはずだけど、マルチリンガルのところで時間がかかるかもとのこと。というか、登壇した方々は、日本で使えないということも知らなかったようでした。Amazon.com と Amazon.co.jp の違いかもしれないともいっていたので曖昧でしたが、日本に帰ったら英語に切り替えて試してみようと思います。これに対応するなら、英語使うほうがむしろ便利!

次回予告

少し長くなってしまいましたので、Convenience と Safety については次回にします。Convenience は感動ものです!

少し頭出ししておきますと...

私: Alexa, おやすみなさい
A: おやすみなさい
(電気が消える)
A: ところで、玄関の鍵がかかっていませんが掛けておきましょうか?
私: お、そうしてくれ
A: わかりました
(ウィーン、玄関の鍵がかかる)

それから、Alexa Conversation についてもデモを交えながら紹介できればと思います。