前回、対話システムには「質問応答」「シナリオ対話」「自由対話」という3つの機能があることを説明しました。今回はそのなかから「自由対話」について掘り下げていきたいと思います。

自由対話を実現する方法

自由対話とは、ある程度ユーザーからの発話内容を想定している質問応答やシナリオ対話とは違い、どんな発話に対しても応答することができる機能のことです。もちろんシナリオ対話でも、「どんな発話に対しても『そうなんだー』と応答する」などと設定しておけば、どんな発話にも応答すると言えますが、ここで言う自由対話はそうではなく、”ユーザーの発話に応じて多様な応答をするもの”と定義させてください。つまり、自由対話の目指している究極の姿は、人と人との普段の会話をコンピュータで実現することだと言えるでしょう。

ただし、今の技術では自由対話を完璧に行うことはできません。

自由対話を実現する手法としてはさまざまなものが提案されていますが、本当に多種多様であるため、質問応答やシナリオ対話のように「こうすれば良い」という説明をできないのが現状です。そこで、ここでは自由対話を実現するために「比較的よく使われる方法」をご紹介しましょう。

以降では、自由対話を実現する方法を「選択型」と「生成型」の2つに大別して説明していきたいと思います。

        
応答文 応答方法
選択型 あらかじめ保持する あらかじめ保持した複数の応答文から、何らかの方法で1つ選択する
生成型 保持しない ユーザーの発話を受けた後、何らかの方法で応答文を生成する

※ 応答文を生成するために必要な情報は保持することもある

選択型とは、あらかじめ大量の応答文を準備してコンピュータに持たせておき、ユーザーから発話があった際には、何らかの方法で保持している応答文から1つ選択して出力する方法です。

一方、生成型は、ユーザーの発話があるたびに応答文を逐一生成する方法です。選択型との違いは、「応答文をあらかじめ文として保持しているかどうか」になります。

自由対話を行う際に多いのは、このいずれか、または両方の方法を複合的に利用し、応答文を生成するパターンです。

選択型と生成型について、もう少し詳しく見ていきましょう。

選択型の自由対話

先述の通り、選択型ではあらかじめ大量の応答文を保有しておく必要があります。そこで重要なのは「応答文をどのように準備するか」ということです。方法は、大きく2つに分けられます。1つは人手で作成する方法で、もう1つは大量のテキストデータから統計的に自動生成する方法です。

人手で作成すれば応答の質は高いでしょうが、量を集めるのは至難です。反対に、統計的な手法では応答の質には多少問題があるでしょうが、量を集めるのはたやすいでしょう。これはどちらが良いということではなく、どのような対話システムを作りたいかによって使い分けるべきところです。

応答の作り方 質   量  
人力 ×
統計 ×

例えば、「できるだけたくさんの回答パターンがあったほうがいいから」と統計的に自動生成することを選んだとします。そもそもこちらの方法の主な目的は量産することですから、出来上がった大量の応答文を人手で全部チェックするというのは現実的ではありません。そのため、もし元データに道徳的・倫理的に問題のある言葉が混入していて、それを使った応答文が作られていた場合、対話システムが問題発言をしてしまう可能性があります。自由対話が可能な製品を世の中に出す場合は、こういったリスクがあることも加味して、「どのような対話システムをどのように開発するか」を検討することが大切です。

応答文の準備が終わったら、次はその中からどのように1つ選択するかを決めなくてはなりません。よく使われるのは、応答文を保持する際に発話文もセットで保持しておき、ユーザーの発話(入力文)と似た発話文にセットされている応答文を出力するという方法です。こういった対話システムは「用例ベース対話システム」と呼ばれることもあります。

例えば、次のような発話文と応答文のペアを保持している対話システムの場合、ユーザーの発話(入力文)が「ロンドンに行ってみたいな。」であれば、これと「ロンドン旅行楽しかったなあ。」「フランスで飲むワインは美味しいよ。」「アイスランドでオーロラが見たい。」をそれぞれ比較し、最も似ている「ロンドン旅行楽しかったなあ。」に対する応答文「大英博物館は1日いても飽きないよね。」を応答として出力する、という具合です。

発話文 応答文
ロンドン旅行楽しかったなあ。 大英博物館は1日いても飽きないよね。
フランスで飲むワインは美味しいよ。 しかも安いんだよね!
アイスランドでオーロラが見たい。 暖かい格好で行かないとね。

生成型の自由対話

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら