既存サービスをAIアシスタント対応する際の勘所
今回のde:code 2019では、テクノロジーによる社会変革が1つのテーマとして、さまざまなセッションや展示が行われた。後編では、その中から5月30日に行われたブレイクアウトセッション「既存サービスをAIアシスタント対応する際の勘所」を取り上げる。
声を使って、もっと便利な生活を
このセッションは、Microsoft Corporation, Developer Relation Cloud + AI Cloud Developer Advocateの千代田まどか氏と、Google Developers Expertの田中洋一郎氏によるトークスタイルで進行した。
AIアシスタントで便利になる世の中へ
まず、冒頭では千代田氏がCUI、GUI、VUIとこれまでのUIの変化を振り返った。それを受けて田中氏が会議室予約というシチュエーションにおいて、VUI(ボイスユーザインターフェース)を活用した声による予約のデモンストレーションを行った。
実演後「今回のセッションでは、今、AIアシスタントに対応しなきゃという状況に直面したときに、“何を知っていて”“何をすれば良いか”、その勘所をお持ち帰りください」と、このセッションのゴールを設定した。
2017年、日本でもAIアシスタント(当時はスマートスピーカという総称で呼ばれることが多かった)が発売され、2018年に入り、(デバイスとしての)AIスピーカのある風景が増えてきた。一方で、そのテクノロジーを活用したサービスやアプリケーションの開発はまだまだ立ち上がったばかりと言える。
今回のセッションは、そういった新しいサービスやアプリを開発する人に向けて、最終ゴールに迷わずに近づくためのヒントが見つけられるという内容で構成されていた。
2019年時点での勘所は5つ
今回、田中氏からはVUIサービス・アプリ開発にあたって次の5つのポイントが紹介された。
- サーバ分割&柔軟性
- AIアシスタントの仕組み
- Voice User Interfaceの設計方法
- 自然言語処理の方法
- ユーザ認証認可(OAuth2)
今回、これらの5つのポイントについて、改めて紹介する。
①サーバ分割&柔軟性
現在、世の中にあるサービスやアプリはスマートフォン(スマホ)およびWebを前提としたものが中心となっている。その多くがGUI(グラフィカルユーザインタフェース)が前提で、基本的にはHTTP GET/POSTとHTML/JSONの通信で行われる。つまり、GUIの場合は、(入力の数が複数あったとしても)1回のやり取りで処理が完結できる。しかし、VUIの場合、対話の回数だけやりとりが発生する。
これは現段階でのGUIとVUIを比較した場合、GUIは情報が構造化され処理の要求が明確であることに対し、VUIはユーザからの入力が明確になりづらいことに起因する。
そのため、今、VUIのサービスやアプリを開発する場合は「各クライアントに応じた入出力形式」「各クライアントのリクエスト特性に応じたハンドリング」が必要となるため、特性の異なる要求を1つのサーバで処理するのは非効率になってしまう。
その解決法として、田中氏は「GUI用/VUI用それぞれでサーバを準備することで、効率的な対応ができます。つまり、サーバを分割しておくことがポイントとなります」と説明した。
②AIアシスタントの仕組み
次にAIアシスタントの仕組みである。AIアシスタントとは、会話により目的を達成してくれるテクノロジである。
この仕組みを理解しておくことで、たとえば、機能に関してはAuzre FunctionsやAzure WebAppを利用して開発ができる他、入力に関してはSpeech to Text/Text to Speechが活用できるようになる。
このように、AIアシスタントの活用=会話で処理するという仕組みを理解すれば、Microsoft Azureをはじめ、既存のテクノロジを活用して目的を実現できるようになる。
③Voice User Interfaceの設計方法
今回のセッションの肝の1つとも言えたのが、この「Voice User Interfaceの設計方法」に関する解説。
田中氏は「良いGUI、良いVUI」という表現から、GUI、VUI、それぞれにおいて良い例を説明した。
「良いGUIとは操作しやすく直感的なUIのこと、良いVUIとは自然な会話が実現できること」(田中氏)ということである。
いずれの場合もユーザの意図をきちんと理解できるかどうかが大切で、そのために必要なのが(サーバ側での)自然言語理解となる。とくにVUIに関しては言い方や(目的語の)順序が変わっても、サーバ側がユーザの意図を理解できるかどうか、それによって良いVUIかどうかが分かれるという。
これらについて「自然言語処理とは、インテントとエンティティを判断すること」(田中氏)と、設計の前提となる仕組みについて説明した。
今現在の開発現場においては、できるだけ多くのシナリオを想像して(エラーも含めて)脚本化しておくことが、VUIの設計で必要とのこと。
そのためには、開発前の設計段階において、シチュエーションの想像とともに、実際に会話をし、対話を定義していくことが大切と、現場で役立つヒントを紹介した。
④自然言語処理の方法
次に、③Voice User Interfaceの設計方法を受けて、さらに一歩技術的に踏み込んだのが、この「④自然言語処理の方法」のパート。今回は、具体的なサービスとしてMicrosoftが開発・提供を進めるLUIS(Language Understanding)を例に説明が行われた。
LUISは、インテント(ユーザの意図)の解釈とエンティティ(文書からの情報)の抽出を行うことで、対象となるサービスやアプリに自然言語理解の機能を追加できるものになる。
ここでは詳細な解説は割愛されたが、実際に、LUISを使って作成した音声認識アプリのデモが千代田氏と田中氏により行われた。
現時点では日本語での日付や時間の表現への対応が弱い(田中氏)としながらも、このようなテクノロジをうまく活用すること、それがまたVUIサービス・アプリ開発の勘所になると言えるだろう。
⑤ユーザ認証認可(OAuth2)
最後に、ユーザ認証認可について、OAuth2の仕組みについて説明が行われた。田中氏はこれまで、APIなどユーザ認証認可が必要となる技術の標準化にも関わってきたこともあり、非常に丁寧かつポイントを押さえた解説が行われた。
これらの発表資料については、以下にて公開されているので、合わせて参考にしてもらいたい。
VUIは成長中の市場
以上、50分という短い時間の中、これからの社会を変革させる技術の1つVUIについて、事例とともに技術情報を交えながら解説が行われた。
PCから、現在のスマートフォンやスマートデバイスへの普及の変遷は、ユーザに対してもさまざまな体験の変化を提供するだろう。その1つにVUIは必ず含まれると筆者は感じている。
技術的には進化中だからこそ、この進化の中で、どのように社会へ適用させていくか、技術の活用と実サービスへの応用がエンジニアたちには求められているように思う。
千代田氏も最後に「VUIはまだまだ成長中の市場で、これからもっと広がるはずです。そのためにエンジニアの皆さんの力で、もっと素晴らしい世界を創っていきましょう」と、参加したエンジニアへの期待を込めたコメントで、セッションを締めくくった。