Alexa Intent Signature

ちょうど一年前のマルレクで「パーソナル・アシスタント・システム」を取り上げ、当時のMS Cortana, Amazon Alexa, IBM Watson Dialogについては、結構、詳しく調べた。
今度、角川の 遠藤さんからリクエストがあって、ボイス・アシスタントの話をするので、いろいろ調べ直しているのだが、この一年の間に、Alexaのフレームが「進化」しているのがわかって面白い。
一年前のAlexaは、基本はVoiceCommandで、Speech2Textを直接呼ぶ必要はないものの、多数の発話のサンプルを一つのIntentに束ねるという素朴なIntent Modelだった。それはそれでいいのだが、例えば「日付」の発話を理解させるためにSample Utteranceに、DateIntentとして"January First"から"December Thirty-First"まで365日全てが記述されていて、こりゃ大変だと驚きあきれた。
Alexaの次の「進化」は、Intentの引数としてSlotを導入したことだ。Slotは、引数であると同時に型を持つ「変数」でもある。もしその型が事前に定義されたものなら、そのUtteranceを全て書く必要はない。先の例だと 、Utteranceのサンプルの文字列に{AMAZON.Date}を埋め込めばいい。Alexaの開発環境である"Alexa Skill Kit"は、こうした世界。これぐらいは、僕も知っていた。
こうした、Intent / Entity Modelは、現在のボイス・アシスタント技術で広く共有されている。(ただ、Google Assistant は、会話がカスタマイズ可能か微妙なので、ちょっと違いそうだ。それについては、別の機会に。)
ただ、僕が感心したのは、Alexaの新しい開発環境である "Alexa Skill Builder (beta)" で導入された Intent Signature Syntaxである。"Understanding the Structure of the Built-in Intent Library" https://goo.gl/ebKVxg
  AMAZON.SearchAction<object@WeatherForecast>とか、
  AMAZON.AddAction<object@Book,TargetCollection@ReadingList>
といった記述をする。
これが、ある意味で、文の文法構造の解析を与えているのだ。
ベースになっているのは、Shchema.org流の Entity / Property モデルなのだが、それがEntity中心でStaticなものだったのに対して、Intent Signature は、中心にActionを置くことで、ガラリと相貌を変えている。
むしろ、それは旧Watsonの理論的基礎の一つであった Slot Grammer によく似ている。先の二つ目のSignatureは、二つの目的語を持つ文の骨組みを与えている。
これは、面白い展開だ。しかも、スジがいい。この一年の「進化」は、素晴らしい。多分、「必要は発明の母」なのだろう。(それが、何度目かの「車輪の発明」でも)
言語の意味の理解は、難しい問題なのだが、「会話」に出てくる文は、疑問文か命令文である。初めてあった人に、「我輩は猫である」とか「トンネルを抜ければ雪国であった」という人はいない。
疑問文に対しては、検索でもなんでも正しい答えを返せば、命令文に対しては、例えば機器のコントロールのように、予期した変化を起こせば、それは、会話の文の意味を「理解」しているとみなすことはできるのだ。

コメント

このブログの人気の投稿

Google翻訳での日本語の点数の低さについて

誕生日

Google翻訳のアーキテクチャー(2) Encoder / Decoder