モバイル機器向けDBMSで知られるアイエニウェア・ソリューションズ(以下、アイエニウェア)ががぜん、組み込み分野に急接近する。自然言語・対話型UIを実現する「Answers Anywhere」が“音声ポータル”を求める自動車メーカーから支持されはじめたからだ。
アイエニウェアといえば、アプリケーション組み込み用DBMS「SQL Anywhere」や機器組み込み向けDBMS「Ultra Light」で知られていることもあり、DBMSベンダというイメージが強い。
その同社が現在、最も力を入れているのが“自然言語・対話型UI(User Interface)”を提供するミドルウェア「Answers Anywhere」だ。同製品は、自然文による人のあいまいな指示(インプット)を解析し、システムを制御したり、求められた情報を返したりするもので、同社 代表取締役社長 早川典之氏は「組み込み分野での展望が開けてきた2007年夏以降、技術リソースの半分をつぎ込んでいる」というくらい注力している。本稿では、このAnswers Anywhereを中心に同社の取り組みについて紹介する。
Answers Anywhereは、米Dejimaの技術がベースとなっている。Dejima(出島)は名前からも分かるとおり、日本の九州とゆかりがある。創業者のBabak Hodjat氏が九州大学大学院 システム情報科学研究院に留学し、人工知能の権威である雨宮真人 教授(当時)の元で“マルチエージェント技術”を研究していたのだ。
マルチエージェント技術とは、中央制御されることなく分散配置されたエージェント同士が、柔軟にピア・ツー・ピア型で接続を行い、協調して機能を実行するもの。そして、Hodjat氏が構想したマルチエージェントソフトウェアのアーキテクチャがAnswers Anywhereに継承されている。
Answers Anywhereでは、個別にルール、情報を持つ複数のエージェントをツリー状に配置して“エージェントネットワーク”を構成。自然文入力に対して“発火”したエージェント同士の結線により入力の意味を解析する。
例えば、ビデオレコーダの録画予約アプリケーションで考えてみよう。エージェントには<チャンネル><番組名><日時>などがあり、<チャンネル>であれば“○○チャンネル”“××テレビ”といった単語に発火するよう定義されている。ユーザーが音声入力した「今晩9時に4チャンネルを録画」という指示で発火し、交信したエージェント同士をつなぎ合わせると<チャンネル=4ch>+<日時=本日21時>という“結線”になる。これを基にユーザーの意図を解析し、システムとしての処理内容を記述したXMLを生成して実行する。ユーザーはメニュー操作に頼ることなく目的を達せられる(音声認識・音声合成はAnswers Anywhereの機能ではなく、別途用意する必要がある)。
ユーザーが番組名を明示しなかった場合、該当する番組を電子番組表から取得したり、例えばユーザーが単に「夜9時」と表現しただけの場合は「何月何日ですか?」と逆にユーザーに問い掛けたりする。また、APIを利用したアプリケーション連携、SQL自動生成機能によるJDBC/ODBC経由のDBアクセスなどで、外部リソースを自在に活用でき、ユーザーとの対話においては、エージェントの結線を維持しながら欠落部分のみをピンポイントで聞き出すことができるという。これが自然言語・対話型UIと称するゆえんだ。
一般的に自然言語解析といえば、辞書と照らし合わせて文章を単語(形態素)に分かち書きを行ったうえで、単語間の係り受けを解析して意味をとらえるものだが、これではシステム規模が大きくなるだけでなく、会話調を得意としない。一方で、システムをユーザーに適合させるためにベイジアン理論などの統計理論を使用するケースも現れはじめた。
これに対してAnswers Anywhereは、用途ごとに不可欠なキーワード(録画予約ならチャンネルや番組)をエージェントとして用意し、個別にルールや情報を定義するだけで済み、システム規模は抑えられる。また、自然文にはエージェントが発火するキーワードさえ含まれていればよく、会話調にも強い(逆にいえば、発火を引き起こさない言葉は影響をまったく及ぼさない)。機能の新規追加や削除、有効化や無効化もエージェントの追加やエージェント間の結線を有効・無効にすることにより動的に可能だ。
さらに、早川氏はAnswers Anywhereの強みをこう説明する。「学習と推論による“ユーザー仕様”が期待されている。入力内容と発火パターンの組み合わせが履歴として残り、発火パターンの傾向や頻度からユーザーが何を望んでいるのかを学び、推論できる」。
つまり、“文脈”(明示的に表現されていない「場」によって決まる意味)を踏まえた自然言語解析が可能だ。「近くのコンビニは?」とあいまいに聞かれても、それが何を目的(条件)としているのか。ATMを利用したいのか、それともお酒を買いたいのか、ユーザーの意図を探るわけだ。
Copyright © ITmedia, Inc. All Rights Reserved.