第2回 『対話システムの構成』
皆様こんにちは,同志社大学の土屋誠司です.対話システムの第2回目の今回は,対話システムを作るにはどのような機能が必要かという対話システムの構成について書いてみたいと思います.
対話をするためには,入力と出力は必要不可欠です.文字のチャットで対話をするのであればキーボードなどからの文字入力だけで良いのですが,音声による対話を実現しようとするとマイクを使って音声を捉え,コンピュータの中で,その音声が何を言っているのかを認識する『音声認識』技術が必要になります.顔表情やジェスチャーもということであればもちろんカメラも必要になります.出力も同様に,文字情報だけを出力するのか,『音声合成』技術を使ってスピーカーから疑似的に作り出した人間の声を出して答えるのか,はたまたCGなどで作成したキャラクターに表現させるのかなどを考えることができます.
もちろん,画像や映像まで使う方が利用できる情報が豊富ですので,解析には有利ではありますが,その分,解析処理は非常に複雑になり,時間もかかってしまいます.また,出力としても様々な形で出力する方が情報はリッチですが,少しのズレなどが違和感を増幅させてしまうことにもつながります.時には,それが原因で間違った情報を伝えることにもなりかねません.この辺りは一長一短と言ったところかと思います.誰に,どんな情報を,どのように伝えたいのかに合わせて,適切な入出力を選択する必要があります.
入力された情報から,その人が何を言おうとしているのか,何を伝えようとしているのかを知るために『言語理解』をし,意味を理解する必要があります.併せて,音声特徴や顔表情の特徴なども利用することで,その人の意図を理解する必要も出てきます.
入力された内容を理解することができれば,それに対する対応を考え,それを適切に表現できるよう応答を生成する必要があります.これを『応答生成』技術と呼びます.適切な応答を生成するためには,単に入力された情報を理解しただけでは難しく,対話の履歴を上手く利用する必要があります.うまく『対話管理』ができないと,何度も同じことを聞いてしまったり,まったく話の流れとは関係のないことを言い出したりすることになってしまいます.このような違和感のある対話は,ユーザに不信感や不満を抱かせることになってしまいますので,避けなければなりません.
だからと言って,そっけない対話で終わってしまうのも問題です.対話を盛り上げるためには,例えば,対話システムに社会性を持たせる意味でも「おはよう」と言われれば「おはようございます」などとちゃんと『挨拶』をする必要もありますし,相手の質問に答える『質問応答』,逆に相手に発言を促す応答や話題の転換,対話システム自身の考えや感情を示す『自己開示』という行為,『相槌』や発話者に『共感』すること,一般的な『情報提供』機能などが必要になってきます.
このような機能を駆使しながら,ユーザに適切なフィードバックを行うことで,人と対話システムの間に信頼関係を構築し,共に対話を繰り広げることで,何かしらの物事を成し遂げるという達成感を与えることに繋がります.これが対話システムの醍醐味です.
こんな複雑なことを人間は普段からいとも簡単にやってのけているのだと思うと,つくづく凄いと思いませんか?そして,そんな人間の代わりになるような対話システムを作るというのは,壮大なチャレンジであり,ワクワクしませんか?次回は,対話を盛り上げる機能の一つである質問応答について書いてみたいと思います.