【レポート】Alexa賞の裏側にある科学: AIチャレンジ #reinvent #ALX320

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

Alexa賞を獲得するために

このセッションは、Alexaは何なのか、どこを目指しているのか、どのような仕組みで動いているのか解説した後、コンペティションであるAlexa賞のグランプリ獲得に向けた最終候補者の紹介を行っています。ゼロから始める理工系の大学生にも分かりやすく理解できるように、科学的な側面から丁寧に説明している貴重なセッションです。

Alexaって裏側で何をしているの?

Alexaに話しかけるユーザーは、様々な言い回しで会話をしようとします。Alexaは、言語を理解し、会話を整理して、事前の知識をもとに、応答内容を生成します。

アマゾンでは、北極星(NORTH STAR)といって、ユーザーとAlexaが、良い会話を実現する目標を示しています。ユーザーが聞いたトピックについて、Alexaは複数の選択肢を与えます。ユーザーがどれが良いか質問すると、Alexaは自分の考えを回答します。ユーザーが思っていることを伝えると、Alexaは賛同して冗談を言います。ユーザーはそれをおかしいと笑います。Alexaは少々政治的な言い回しについても言及します。ユーザーは同意しつつも状況によるといった回答をします。Alexaは対案を提示して会話は終了します。これが本当にできたらEchoの中に小人が入っているのではと思ってしまいますね。

こういった会話を実現しようと思った時、以下のような科学的な挑戦が必要になってきます。会話の認識、言語の理解、コンテキストのモデリング、会話の設計、言語の生成、パーソナライザーション、知識の収集、共通の理解などです。つまり、会話を成立させるのは大変むずかしいことなのです。

また、顧客体験として以下のような体験を提供したいと思っています。

アイスブレーキング、会話のはじめ方、一時停止、おすすめトピック、より深い内容、会話の予測、個人的な質問、意見や反論、不満、非回答などです。とても人間的ですね。

これら目指している姿をイメージしながら、15チームが参加して、Alexa賞レースを開催しました。

Alexaが提供している機能の科学的な側面

Alexaは、Alexa Skill KitとAlexa Voice Serviceという2つの機能を提供しています。前者は、ユーザーとの会話をする役割を持っています。後者は、あらゆるものと繋がるための役割を持っています。

ユーザーがAlexaに話しかけてから返事をするまでに、複数のステップで処理が実行されています。まずは、ASR(Automatic Speech Recognition:自動会話認識)によって、音声からテキストに変換します。次に、NLU(Natural Language Understanding:自然言語理解)によって、テキストの意味を理解します。これにより、呼び出すインテントや、引数で渡すスロットが明確になります。そして、DM(Dialog Manager:対話管理)によってロジックが呼び出されて結果が返されます。最後に、結果内容のテキストからTTS(Text to Speech:音声合成)で音声を生成します。

どのパートでも共通のテーマとしては、教師データを使った機械学習です。

そして、継続的な改善のための機械学習を自動化します。アクティブラーニングです。

また、効率よく学習するためには、ノイズを除去した正確な音声を収集する必要があります。Alexaでは、ノイズ除去の技術、固有名詞と共通の単語の区別、発音が似ている言葉などの聞き分けなどについて、様々な研究がされています。

例えば、複数のマイクを利用することで、どこからの音声なのか、ビームフォーミングという手法を用いて、ノイズなのか聞き取りたい音声なのか判断しています。

そして、聞き取った音声に対して、アコースティック・エコーキャンセル技術によって、音声部分をより聞き取りやすくしています。

以下は、マイクで拾った音声をどこのように判別しているのかフローを表しています。特徴点の抽出、音響モデルの作成、発音の認識、言語モデルにあてはめて単語の認識、後処理からテキスト生成となっています。

会話モデルをN-GRAMで作成すると、計算時間がどんどん増えてしまうので、深層学習の技術を使って解決しています。

また、言語学的な文略から、会話の終了を検出したりしています。

これで、ノイズのあるうるさい環境でユーザーが発話した内容を聞き取ってテキストに変換することができました。次に、テキストの内容を理解して、インテントとスロットを充てます。言い回しの異なる場合のインテントの呼び出し、同じ発音でも文字が異なるような音声認識のエラーの削減、ユーザーによる訂正の対応、ドメイン外の会話の削除、精度の高いアクションの選択など、挑戦は多岐にわたります。

インテントを分類するために様々な言い回しを用意しておきます。たとえば、「明日の天気は何ですか?」と「明日傘は必要ですか?」という異なる言い回しに対して、天気予報を処理する同じインテントが呼び出されています。

ビルトインされているエンティティの認識なども行っています。単語の別名についても登録しておきます。

最後に発音の部分ですが、同じテキストでも発音が違うことがあります。liveで、ライブとリブなどが良い例です。

テキストから正規化を行い音の表記に変換します。そして、音声波形のデータの変換して再生します。

最後に、会話の管理です。特定したインテントとスロットを引数にしてアプリケーションロジックを実行します。

管理の部分では、ユーザのニーズを理解して、会話によって満足してもらうために、コンテキストの理解、必要に応じて複数のアプリケーションの呼び出し、音声認識や自然言語処理に関するエラーの削減などがあります。マルコフ決定プロセスによって式で表すことができます。

これらのプロセスを自作しようと思ったら気が遠くなりますね。。。

Alexa賞のコンペティション

Alexa賞の獲得レースは以下のような方針です。ASRを評価するために、アマゾンが用意した会話テキストをインプットとして、学生チームは、エラーの少ないベストな回答をすること。

NLUを評価するために、会話テキストの例文を用意します。学生チームは、オープンソースのナレッジデータベース等を用いて、連続した語句の特定、文章補完、名前付きエンティティの抽出、リンク抽出などを行います。

学生チームは、良い対話管理を作成します。マクロやボットを組み合せます。会話の状態、フィードバック、センチメント、パーソナライゼーションなどのコンテキストを追跡します。より良い評点を獲得するために良いユーザー体験を提供します。

応答内容のテキストを自動生成するために、AIMLやELIZAシステムなどを人工無能の参考にします。TwitterやRedditなどの情報源からワードを抽出して、IF-IDFやWord2Vecなどの機械学習手法を用いて最も近い回答を導きます。そして、ニューラルネットワークを用いて応答内容を生成します。これらを手法を複数組み合せて様々な回答例を作成します。

回答例が複数作成された後、ユーザーによる高い評価があり、良い関係性を構築できるものが残ります。

コンペティションを進めるにあたって、アマゾンからは以下が実現できているか様々なフィードバックがあります。

  • 会話の品質
  • エラー率の少なさ
  • 一貫性
  • エンゲージメント
  • 顧客体験のギャップ

そして、具体的な会話のドメインとして、エンターテイメント、政治、スポーツ、ファッション、テクノロジーについてカバーしているか、また、会話のボキャブラリー、バリエーション、内容の深さなども評価します。

まとめ

Alexaを自作する方法が良く分かりました。そして、自社で自作するもんじゃないと悟りましたw。

Alexaに必要な要素技術は、

  • 良質な音声を聞き分けるハードウェア
  • 波形から雑音を除去するデバイス側のソフトウェア
  • ASR(Automatic Speech Recognition:自動会話認識)
  • NLU(Natural Language Understanding:自然言語理解)
  • DM(Dialog Manager:対話管理)
  • DNN(Deep Neural Network:深層学習)など機械学習をするためにスケールするGPUインフラ
  • 多数のユーザーからの呼び出しに対応できるスケールするITインフラ
  • 組み込みエンティティや組み込みボキャブラリー
  • 自動的に継続的に改善する仕組み(アクティブ・ラーニング)

特に、最後のアクティブ・ラーニングの仕組みがあることで、今後どんどん人間らしい会話に成長していくのではないでしょうか。

参考資料