前回、自由対話を実現するための方法をいくつかご紹介しました。それらを見ていると、「自由対話はもう可能なのではないか」と思ってしまうかもしれませんが、実用化するには解決しなければいけない難題が今も多数存在しています。今回は、この自由対話の「難しさ」について、もう少し説明しておきたいと思います。
自由対話の最も大きな「課題」
自由対話の最も大きな課題として、”正解を決めることができない”という点が挙げられます。一般的に、対話とは誰かの発話に対して応答し、また誰かが発話し……というやり取りを繰り返すものです。”正解を決めることができない”とは、この「誰かの発話に対する応答」の内容に関して、正解か不正解かを容易に判定することができない、ということです。
対話は、少し見方を変えれば「テキスト(文)を入力し、テキスト(文)を出力する」ことを目的としていると言えるでしょう。そして、「テキストを入力し、テキストを出力する」という意味で言えば、翻訳も同様の課題だと言えます。例えば日英翻訳であれば、「私はりんごが好きです。」に対しては「I like apples.」が正解です。したがって、「私はりんごが好きです。」と入力されたら「I like apples.」を出力できるAIを開発すれば良いでしょう。これは「テキストを入力し、テキストを出力する」AIにほかなりません。
日本語を英語に変換するシステムである日英翻訳に対し、自由対話は発話を応答に変換するシステムだと考えることができます。「テキストを入力し、テキストを出力する」という意味では、どちらも同じです。しかし、自由対話の場合、「私はりんごが好きです。」に対する応答(出力文)として正しいものは定義できるでしょうか。「私もです。」と答えても良いでしょうし、「りんごは美味しいですよね。」でも良いでしょう。否定的に、「私はりんごが嫌いです。」や「みかんのほうが好きですね。」と答えても、間違いではありません。
このように自由対話においては、ある1つの入力に対して、ほぼ無限に正解が考えられるため、そもそも何を出力するシステムを開発すれば良いのかを明確にすることが難しいのです。本連載の第16回で説明した「質問応答」が自由対話よりも比較的容易である理由も、ここにあります。つまり「イギリスの首都はどこ?」に対する正しい応答(出力文)は「ロンドン」と1つに決まるため、自由対話よりも容易に実現できるケースが多いのです。
翻訳との違い、人間との違い
発話に対する「正しい応答」が無数に考えられるということは、発話と応答の間に明確なルールがないということでもあります。翻訳において回答がほぼ一意に決まるのは、「私はりんごが好きです。」を英語に訳すための明確なルールが存在するためです。例えば「私」は「I」に変換されるでしょうし、「りんご」は「Apple」に変換されます。今回の例で言えば、「I like apples.」以外にも「I like an apple.」という回答もあるかもしれませんが、単語が複数形になるかならないかのような細かい点に違いはあれども、少なくともりんごはAppleです。決してOrangeに変換されることはありません。
しかし、自由対話においては「りんご」を何に変換したら良いかわかりません。応答に「みかん」という単語が出てきても間違いではないのですから、どのような規則に従って応答を生成すれば良いかをルール化することは非常に難しいのです。
「こうできるものを作ろう!」という明確な道しるべがないまま研究開発を続けても、なかなか進展しません。システムを改変したとしても、その改変が果たして良かったのかどうかの客観的判断ができないからです。「りんごは美味しいですよね。」と応答していたシステムを、「みかんのほうが好きですね。」と応答するシステムに改変したとして、どちらのシステムがより良いのかを判定するのは難しいでしょう。現状では、結局、人とコンピュータの対話を人が確認して「何となくこっちが良さそうだ」という評価をするに留まることがほとんどです。
また、これ以外にも難しさはあります。人間同士の対話では、人は言葉以外の情報も用いているはずです。例えば表情や声色、また天気や気温といった環境情報も取り入れているでしょう。先ほどの例、「私はりんごが好きです。」に対する応答を生成する際には、本来であれば、相手がどんな気持ちで「私はりんごが好きです。」と言ったかを声色や表情からうかがいつつ、応答を考えるべきでしょう。