以下、図面を参照して、感情検索装置及び方法の実施形態を説明する。
感情検索装置は、図1に示すように、記憶部501、入力部502、検索部503及び表示部504を例えば備えている。
感情検索方法は、感情検索装置が図2の各ステップの処理を例えば行うことにより実現される。
<記憶部>
記憶部501には、複数の人物による会話についての情報と、これらの複数の人物の中の2人の人物から構成される各ペアについてのその各ペアを構成する2人の人物の間のその会話における感情についての情報とが記憶されている。
複数の人物による会話についての情報とは、例えば会話のテキスト、音声、映像等のデータである。複数の人物による会話についての情報は、会話が始まってから経過した時刻についての情報や、各時刻において会話を行っている人物又は人物のペアについての情報を含んでいてもよい。なお、会話とは、会議等の複数の人物の言語によるコミュニケーションを含むとする。
各ペアについてのその各ペアを構成する2人の人物の間のその会話における感情(以下、「各ペアの感情」と略記することがある。)とは、例えば後述する対話状態推定装置1により計算される共感解釈又は共感解釈の強度である。共感解釈とは、共感、反感、どちらでもない等の二者間の対話状態である。対話状態は、確率又は強度により例えば表される。このため、記憶部501には、対話状態として例えば確率又は強度に相当する情報が記憶されている。なお、「どちらでもない」という対話状態のことを、「中立」と表現することもある。例えば、各時刻における各ペアの感情が対話状態推定装置1により予め計算され、記憶部501に記憶されているとする。対話状態推定装置1については後述する。
<入力部>
入力部502には、感情に関する情報である検索感情情報がクエリとして入力される(ステップS1)。入力された検索感情情報は、検索部503に提供される。
入力部502は、例えばキーボード、マウス等の入力機器である。もちろん、入力部502は、感情に関する情報である検索感情情報をクエリとして受け付けることができるものであればどのような機器であってもよい。
検索感情情報は、例えば「共感」「反感」「どちらでもない」等の対話状態である。また、検索感情情報には、「共感75-100%」「共感35-50%かつ反感30-50%」等のように対話状態の度合いについての情報が付加されていてもよい。また、検索感情情報には、「人物Aと人物Bとの間が共感」「人物Aと人物Bとの間の共感75-100%」「人物Aと人物Bとの間の共感30-50%かつ人物Cと人物Dとの間の反感30-50%」等のように、1以上の、特定の人物のペアについての情報が更に付加されていてもよい。ここでA,B,C,Dのような大文字のアルファベットは人物のIDに相当し,これら大文字で表された人物はそれぞれ特定の個人を表す. また、a,b,cを不特定の人物として、「人物aと人物bとの間の共感75-100%かつ人物aと人物cとの間の反感75-100%」等のように、1以上の、不特定の人物のペアについての情報が検索感情情報に付加されていてもよい。
また、2以上の、特定又は不特定の人物のペアについての情報が検索感情情報に付加されている場合には、対話状態の度合いについての情報は、「人物Aと人物Bとの間の共感の度合いと人物Aと人物Cとの間の共感の度合いとの平均値が75-100%」,「人物Aと人物Bとの間の共感の度合いと人物Aと人物Cとの間の共感の度合いの最小値が50%」,「人物aと人物bとの間の共感の度合いと、人物aと人物cとの間の共感の度合いとの平均値が75-100%」等のように、2以上の、特定又は不特定の人物の対話状態の度合いに関する何らかの統計量であってもよい。
さらに、後述するように、検索感情情報は、感情の時間変化についての情報や、3人以上の人物から構成されるグループにおけるそのグループを構成する人物の間の感情に基づく構造についての情報であってもよい。
このように、検索感情情報は、感情に関する情報であり、検索のキーとして用いることができるものであれば、どのような情報であってもよい。
<検索部>
検索部503は、クエリとして入力された検索感情情報をキーとして記憶部501を検索してその検索感情情報に対応する会話に関する情報を検索結果として得る(ステップS2)。検索結果は、表示部504に提供される。
会話に関する情報とは、例えば、(1)その会話が行われた時刻又は時間区間、(2)その会話を行った人物又は人物のペアについての情報、(3)その会話についてのテキスト、音声、映像等のデータ等の情報である。会話に関する情報は、これらの(1)から(3)の少なくとも1個の情報を含んでいればよい。会話に関する情報は、その会話に付与されたIDや名称を更に含んでいてもよい。会話の名称とは、例えば「×××会議」といったものである。
例えば、クエリとして入力された検索感情情報が「共感75-100%」である場合には、検索部503は「共感75-100%」をキーとして記憶部501を検索して、共感が75-100%である会話に関する情報を検索結果として出力する。すなわち、共感が75-100%である会話についての上記(1)から(3)の少なくとも1個の情報が検索結果として出力される。
この例のように、検索感情情報に特定の人物のペアについての情報が付加されていない場合には、会話の主体が不特定であるため、人物のペアの全てについての、記憶部501の中のデータが検索の対象となる。
また、クエリとして入力された検索感情情報が例えば「人物aと人物bとの間の共感75-100%かつ人物aと人物cとの間の反感75-100%」「人物aと人物bとの間の共感の度合いと、人物aと人物cとの間の共感の度合いとの平均値が75-100%」等であり、不特定の人物のペアについての情報が付加されている場合にも、上記と同様に会話の主体が不特定であるため、人物のペアの全てについての、記憶部501の中のデータが検索の対象となる。
また、例えば、クエリとして入力された検索感情情報が「人物Aと人物Bとの間の共感75-100%」である場合には、検索部503は「人物Aと人物Bとの間の共感75-100%」をキーとして記憶部501を検索して、人物Aと人物Bとの間の共感が75-100%である会話に関する情報を検索結果として出力する。この場合は、会話の主体が人物A及び人物Bと特定されているため、例えば、主体以外の会話に関する情報、すなわち人物Aと人物Bとの間の共感が75-100%である会話についての上記(1)、(3)の少なくとも一方の情報が検索結果として出力される。もちろん、上記(2)の情報が更に検索結果として出力されてもよい。
この例のように、検索感情情報に特定の人物のペアについての情報が付加されている場合には、付加された人物のペアについての情報により特定される人物のペアという特定の人物のペア(この例だと人物A及び人物Bのペア)についての、記憶部501の中のデータが検索の対象となる。
上記の例では、共感が75%以上の会話に関する情報を検索結果として出力している。このように、検索部503は、クエリとして入力された検索感情情報により特定される感情の度合いが所定の値以上である会話に関する情報を検索結果として出力してもよい。なお、同様に、検索部503は、クエリとして入力された検索感情情報により特定される感情の度合いが所定の値以下である会話に関する情報を検索結果として出力してもよい。
なお、検索感情情報に対応する会話が複数ある場合には、検索部503は、これらの複数の会話の全部を検索結果としてもよいし、これらの複数の会話の一部を優先的に検索結果としてもよい。例えば、検索部503は、クエリとして入力された検索感情情報により特定される感情の度合いが高い又は低い会話に関する情報を優先的に検索結果とする。すなわち、例えば、検索部503は、検索感情情報に対応する複数の会話を、感情の度合いについての降順又は昇順に並べたときの上位N個の会話に関する情報を検索結果とする。Nは所定の正の整数である。このとき、上位N個の会話に関する情報をその順位を保ったまま検索結果としてもよい。言い換えると、上位N個の会話に関する情報をその順位が高い方から順番に検索結果としてもよい。すなわち、検索部503は、クエリとして入力された検索感情情報により特定される感情の度合いが高い又は低い会話に関する情報をその感情の度合いが高い又は低い会話順に優先的に検索結果としてもよい。
検索の他の例については後述する。
<表示部504>
表示部504は、検索部503による検索結果を表示する。表示部504は、CRT、液晶ディスプレイ等の表示装置である。
[感情の時間変化の検索について]
検索の他の例である感情の時間変化の検索について説明する。
検索部503は、感情の時間変化の検索を行ってもよい。すなわち、クエリとして入力される検索感情情報は、感情の時間変化についての情報であるとして、検索部503は、そのクエリとして入力された検索感情情報により特定される感情の時間変化をしている会話に関する情報を検索結果として得てもよい。
例えば、クエリとして入力された検索感情情報が「共感50%→0%→100%」である場合には、検索部503は「共感50%→0%→100%」をキーとして記憶部501を検索して、共感が50%→0%→100%と変化する会話に関する情報を検索結果として出力する。
具体的には、検索感情情報は、検索したい時間変化のパターンy(yはT時刻分からなる共感解釈の強度の時系列y={yt’}t’=0 T-1)として例えば与えられる。Tは所定の正の整数である。この場合、検索部503は、次式で算出されるスコアscoretを各時刻tについて計算し、降順で計算結果を出力する。次式において、st+t’は、記憶部501から読み込んだ検索の対象となっている人物のペアの時刻t+t’における会話の共感解釈の強度である。
スコアscoretについて降順で並べたときに上位にあるものほど検索したい時間変化パターンyに類似することを意味する。そこで、検索部503は、例えば、スコアscoretについて降順で並べたときの上位N個のスコアscoretに対応する会話に関する情報を検索結果として出力する。Nは所定の正の整数である。スコアscoretに対応する会話とは、そのスコアscoretに対応する時刻tにおける会話又はそのスコアscoretに対応する時刻tを含む時間区間における会話のことである。
もちろん、検索部503は、上位N個のスコアscoretに対応する会話に関する情報ではなく、スコアscoretが所定の閾値以上であるスコアscoretに対応する会話に関する情報を検索結果として出力してもよい。
なお、時間変化のパターンy={yt’}t’=0 T-1を構成する各値は、入力部502から直接入力されてもよい。また、以下のようにK(<T)個の代表点からなる時系列{y- k}k=1 Kとその時間スケールmとが入力部502で入力されるとして、そこから内挿などにより時系列{yt’}t’=0 T-1が生成されてもよい。ここで、y- kは、共感解釈の強度であり、共感を1、どちらでもないを0、反感を-1とする1から-1までの任意の値である。TについてはT=Kmと定まる。このとき、例えば以下のようにyt’を設定することができる。なお、次式において、m=10secであり、K=3として{y- k}k=1 K={1,0,-1}とする。
このように感情の時間変化の検索が行われる場合、検索結果である会話に関する情報として、感情が時間変化をした時刻における会話に関する情報が出力されてもよい。例えば、クエリとして入力された検索感情情報が「共感50%→0%→100%」である上記の例の場合には、共感が50%から0%に変化した時刻と共感が0%から100%に変化した時刻との少なくとも一方の時刻に対応する会話に関する情報が検索結果として出力される。
また、以下のようにして、感情が時間変化した時刻を検索してもよい。ここでは、共感解釈の強度ピーク(例えば、共感→反感→共感の変化やその逆)を検索することとする。
検索の際に注目する窓の大きさのことをここでは検索時間スケールとよぶ。この検索時間スケールについては事前に定めておく。例えば、検索時間スケールを10secから10minとする。検索時間スケールを大きくすると長いスパンでの変化を検出することになり、逆に狭くすると短いスパンでの変化を検出することになる。検索の際には、検索時間スケール内の適当な間隔でサンプリングした各時間スケールm(例えば、範囲を対数スケールにて等間隔に分割する)に対して、次式で定められたスコア、すなわち共感スコアの一次微分値st’及び二次微分値st’’を計算する。そして、検索部503は、st’=0となる全ての時刻をst’’について降順に検索結果として出力するなどすればよい。
一次微分値:sm,t’=sm,t+1-sm,t
二次微分値:sm,t’’=sm,t+1’-sm,t’
ここで、sm,tは時刻tにおける共感解釈の強度の移動平均であり、例えばsm,t=(1/L’)Σm’=-L’/2 L’/2st+m’である。ここで、L’は、時間スケールmに含まれるデータ数、すなわちL’=データのサンプリングレート×時間スケールmである。
なお、st’’>0は共感解釈の強度の反感側のピーク(例えば「共感」→「反感」→「共感」というピーク)を、st’’<0は共感解釈の強度の共感側のピーク(例えば「反感」→「共感」→「反感」というピーク)を意味する。また、st’’の絶対値が大きいほど時間変化が激しいことを意味する。
感情の時間変化について検索を行う場合においても、検索感情情報に人物のペアについての情報が付加されていてもよい。この場合には、付加された人物のペアついての情報により特定される人物のペアについての、記憶部501の中のデータが検索の対象となる。
なお、検索感情情報に付加される人物のペアの数は、2以上であってもよい。この場合、人物のペアのそれぞれについての時間変化のパターンyが入力部502において入力される。検索部503は、人物のペアのそれぞれについてのスコアscoretを計算し、計算したスコアscoretの和を計算し、計算した和について降順で並べたときの上位N個のスコアscoretに対応する会話に関する情報を検索結果として出力する。Nは所定の正の整数である。もちろん、スコアscoretが所定の閾値以上であるスコアscoretに対応する会話に関する情報を検索結果として出力してもよい。
なお、検索感情情報に人物のペアについての情報が付加されていない場合には、会話の主体が特定されていないため、記憶部501の中の全データが検索の対象となる。すなわち、人物のペアの全てのそれぞれについて、検索感情情報により特定される感情の時間変化をしているかが検索される。
[グループの構造の検索について]
検索の他の例である、3人以上の人物から構成されるグループにおけるそのグループを構成する人物の間の感情に基づく構造の検索について説明する。
検索部503は、グループの構造の検索を行ってもよい。すなわち、クエリとして入力される検索感情情報は、3人以上の人物から構成されるグループにおけるそのグループを構成する人物の間の感情に基づく構造についての情報であるとして、検索部503は、そのクエリとして入力された検索感情情報により特定される構造をしている会話に関する情報を検索結果として得てもよい。検索感情情報は、グループを構成する人物の中の、2人の人物により構成される全てのペアのそれぞれを構成する2人の人物の間の感情についての情報により構成される。
以下、図3から図5を用いて、グループの構造の検索の例を説明する。人物A、人物B、人物C及び人物Dから構成されるグループにより会話が行われており、このグループによる会話についての情報が記憶部501に記憶されているとする。
図3から図5において、実線はこの実線により結ばれた人物が共感していることを意味し、破線はこの破線により結ばれた人物が中立であることを意味し、一点鎖線はこの一点鎖線により結ばれた人物が反感していることを意味する。図3はグループ全体が共感していることを意味し、図4はグループ全体が中立していることを意味し、図5はグループが対立していることを意味する。
図3のようにグループ全体が共感している場面を検索する場合には、クエリとして入力される検索感情情報は、グループ全体が共感という情報となる。具体的には、検索感情情報は、例えば「人物Aと人物Bとの間が共感、かつ、人物Aと人物Cとの間が共感、かつ、人物Aと人物Dとの間が共感、かつ、人物Bと人物Cとの間が共感、かつ、人物Bと人物Dとの間が共感、かつ、人物Cと人物Dとの間が共感」である。検索部503は、記憶部501を参照して、この検索感情情報により特定される構造をしている会話に関する情報を検索結果として得る。
図4のようにグループ全体が中立している場面を検索する場合には、クエリとして入力される検索感情情報は、グループ全体が中立という情報となる。具体的には、検索感情情報は、例えば「人物Aと人物Bとの間が中立、かつ、人物Aと人物Cとの間が中立、かつ、人物Aと人物Dとの間が中立、かつ、人物Bと人物Cとの間が中立、かつ、人物Bと人物Dとの間が中立、かつ、人物Cと人物Dとの間が中立」である。検索部503は、記憶部501を参照して、この検索感情情報により特定される構造をしている会話に関する情報を検索結果として得る。
図5のようにグループ全体が対立している場面を検索する場合には、クエリとして入力される検索感情情報は、グループが対立という情報となる。具体的には、検索感情情報は、例えば「人物Aと人物Bとの間が共感、かつ、人物Aと人物Cとの間が反感、かつ、人物Aと人物Dとの間が反感、かつ、人物Bと人物Cとの間が反感、かつ、人物Bと人物Dとの間が反感、かつ、人物Cと人物Dとの間が共感」である。検索部503は、記憶部501を参照して、この検索感情情報により特定される構造をしている会話に関する情報を検索結果として得る。
なお、グループの構造の時間変化を検索してもよい。例えば、図6のように、グループ全体が中立→グループが対立(2対2)と変化している場面を検索する場合には、クエリとして入力される検索感情情報は、「グループ全体が中立→グループが対立(2対2)」となり、2個のグループの構造により構成される。図6では、人物A、人物B、人物C及び人物Dの記載を省略している。具体的には、検索感情情報は、例えば「(人物Aと人物Bとの間が中立、かつ、人物Aと人物Cとの間が中立、かつ、人物Aと人物Dとの間が中立、かつ、人物Bと人物Cとの間が中立、かつ、人物Bと人物Dとの間が中立、かつ、人物Cと人物Dとの間が中立)→(人物Aと人物Bとの間が共感、かつ、人物Aと人物Cとの間が反感、かつ、人物Aと人物Dとの間が反感、かつ、人物Bと人物Cとの間が反感、かつ、人物Bと人物Dとの間が反感、かつ、人物Cと人物Dとの間が共感)」となる。検索部503は、記憶部501を参照して、この検索感情情報により特定される構造をしている会話に関する情報を検索結果として得る。
また、図6の例では検索感情情報を構成するグループの構造の数は2個であったが、検索感情情報を構成するグループの構造の数は3個以上であってもよい。例えば、図7に例示するように、検索感情情報を構成するグループの構造の数は4個であってもよい。図7では、人物A、人物B、人物C及び人物Dの記載を省略している。図7のように、グループ全体が中立→グループが対立(2対2)→グループが対立(3対1)→グループ全体が共感と変化している場面を検索する場合には、クエリとして入力される検索感情情報は、「グループ全体が中立→グループが対立(2対2)→グループが対立(3対1)→グループ全体」となる。具体的には、検索感情情報は、例えば「(人物Aと人物Bとの間が中立、かつ、人物Aと人物Cとの間が中立、かつ、人物Aと人物Dとの間が中立、かつ、人物Bと人物Cとの間が中立、かつ、人物Bと人物Dとの間が中立、かつ、人物Cと人物Dとの間が中立)→(人物Aと人物Bとの間が共感、かつ、人物Aと人物Cとの間が共感、かつ、人物Aと人物Dとの間が反感、かつ、人物Bと人物Cとの間が共感、かつ、人物Bと人物Dとの間が反感、かつ、人物Cと人物Dとの間が共感)→(物Aと人物Bとの間が共感、かつ、人物Aと人物Cとの間が共感、かつ、人物Aと人物Dとの間が共感、かつ、人物Bと人物Cとの間が共感、かつ、人物Bと人物Dとの間が共感、かつ、人物Cと人物Dとの間が共感)」となる。検索部503は、記憶部501を参照して、この検索感情情報により特定される構造をしている会話に関する情報を検索結果として得る。
なお、1以上の、特定の人物のペアについての情報がクエリとして入力される検索感情情報に付加されている例を用いて上述したが、グループの構造の検索を行う場合においても、1以上の、不特定の人物のペアについての情報がクエリとして入力される検索感情情報に付加されていてもよい。
例えば、「全ての、人物のペアの中の任意の所定の数のペアのそれぞれを構成する人物間の共感の度合いの最小値が75%」という検索感情情報がクエリとして入力されてもよい。なお、グループを構成する人物の数がNである場合には、上記の検索感情情報の中の所定の数は、N×(N-1)/2となる。この場合、検索部503により、「全ての、人物のペアの中の任意の所定の数のペアのそれぞれを構成する人物間の共感の度合いの最小値が75%」という検索感情情報をキーとして、人物のペアの全てについての、記憶部501の中のデータが検索され、この検索感情情報に対応する会話についての情報が検索結果として出力される。
また、a,b,c,dを不特定の人物として、「人物aと人物bとの間及び人物cと人物dとの間が共感で、残りの全てのペアのそれぞれを構成する人物間が反感」という検索感情情報がクエリとして入力されてもよい。この場合、検索部503により、「人物aと人物bとの間及び人物cと人物dとの間が共感で、残りの全てのペアのそれぞれを構成する人物間が反感」という検索感情情報をキーとして、人物のペアの全てについての、記憶部501の中のデータが検索され、この検索感情情報に対応する会話についての情報が検索結果として出力される。これにより、いわゆるグループが対立している場面を検索することができる。
なお、上記の[感情の時間変化の検索について]の欄において、検索感情情報に付加される人物のペアの数は2以上であってもよいと述べ、その場合の検索結果の取得について説明した。この説明において、検索感情情報に付加される人物のペアの数=グループを構成する人物の総数/2とすることにより、グループの構造の変化の検索を行うことができる。
なお、検索部503は、検索結果である、クエリとして入力された検索感情情報により特定される構造の時間変化をする会話に関する情報として、その構造が時間変化をした時刻における会話に関する情報を出力してもよい。例えば、クエリとして入力された検索感情情報が「グループ全体が中立→グループが対立(2対2)」である図6の例の場合には、グループ全体が中立→グループが対立(2対2)と変化した時刻に対応する会話に関する情報が検索結果として出力される。
[変形例]
上記の処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、感情検索装置における各処理をコンピュータによって実現する場合、その装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各処理がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[対話状態推定装置]
以下、共感解釈を求める対話状態推定装置の例について説明する。共感解釈は、例えば、図8に記載された対話状態推定装置1により求められる。
<構成>
図8を参照して、この実施形態の対話状態推定装置1の構成例について説明する。対話状態推定装置1は入力部10と行動認識部20と共感解釈付与部30とパラメタ学習部40学習用映像記憶部70とモデルパラメタ記憶部74とを備える。学習用映像記憶部70は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリなどの半導体メモリ素子により構成される補助記憶装置、などにより構成することができる。モデルパラメタ記憶部74は、学習用映像記憶部70と同様に構成してもよいし、リレーショナルデータベースやキーバリューストアなどのミドルウェア、などにより構成してもよい。
図9を参照して、この実施形態のパラメタ学習部40の構成例について説明する。パラメタ学習部40は事前分布学習部42とタイミングモデル学習部44と静的モデル学習部46とを備える。
<学習フェーズ>
図11を参照して、対話状態推定装置1の学習フェーズにおける動作例を説明する。
入力部10へ学習用映像が入力される(ステップS11)。学習用映像は、複数の人物が対話する状況を撮影した映像であり、少なくとも対話者の頭部が撮影されていなければならない。学習用映像の撮影は、各対話者について一台のカメラを用意して、複数のカメラにより撮影した映像を多重化した映像でもよいし、魚眼レンズを用いるなどした全方位カメラ一台で対話者全員を撮影した映像であってもよい。入力された学習用映像は学習用映像記憶部70に記憶される。
行動認識部20は学習用映像記憶部70に記憶されている学習用映像を入力として、学習用映像に撮影された各対話者の行動として、表情、視線、頭部ジェスチャ、発話有無などを検出し、その結果生成された対話者の行動の時系列を出力する(ステップS21)。この実施形態では、表情、視線、頭部ジェスチャ、および発話有無の4つの行動チャネルを認識対象とする。行動チャネルとは、行動の形態のことである。表情は、感情を表す主要な経路である。この実施形態では、無表情/微笑/哄笑/苦笑/思考中/その他、の6状態を表情の認識対象とする。視線は、感情を誰に伝えようとしているのかということと、他者の行動を観察していることとの少なくとも一方などを表している。この実施形態では、他者のうちの誰か一人を見ておりその相手が誰である/誰も見ていない(という状態)、を視線の認識対象としている。すなわち、状態数は対話者の数となる。ここで、対話者とは、視線を測定している対象者を含む対話に参加している全員を指す。表情と視線の認識方法は、「特開2012−185727号公報(参考文献1)」又は非特許文献1に記載の方法を用いればよい。
頭部ジェスチャは、しばしば他者の意見に対する態度の表明として表出される。この実施形態では、なし/頷き/首ふり/傾げ/これらの組み合わせ、の4状態を頭部ジェスチャの認識対象とする。頭部ジェスチャの認識方法は、周知のいかなる方法も用いることができる。例えば「江尻康, 小林哲則, “対話中における頭部ジェスチャの認識”, 電子情報通信学会技術研究報告, PRMU2002-61, pp.31-36, Jul.2002.(参考文献2)」に記載の方法を用いればよい。発話有無は、話し手/聞き手という対話役割の主要な指標となる。この実施形態では、発話/沈黙、の2状態を発話有無の認識対象とする。発話有無の認識方法は、映像中の音声パワーを検出してあらかじめ定めた閾値を超えた場合に発話していると判断すればよい。もしくは映像中の対話者の口元の動きを検出することで発話の有無を検出してもよい。それぞれの行動は一台の装置ですべて認識してもよいし、行動ごとに別々の装置を用いて認識しても構わない。例えば、表情の認識であれば、行動認識装置の一例として「特許4942197号公報(参考文献3)」を使用すればよい。なお、行動認識部20は、共感解釈付与部30と同様に人手によるラベル付けを行い、その結果を出力するとしても構わない。
また、表情や頭部ジェスチャに関しては、「強度」を推定して出力するとしてもよい。表情の強度は、対象とする表情である確率により求めることができる。また、頭部ジェスチャの強度は、振幅の最大値(頷きであれば、頷く角度の最大値)に対する取得された動作の振幅の値の割合により求めることができる。
共感解釈付与部30は学習用映像記憶部70に記憶されている学習用映像に基づいて複数の外部観察者が共感解釈をラベル付けした学習用共感解釈時系列を出力する(ステップS30)。学習用共感解釈時系列は、学習用映像を複数の外部観察者に提示して、各時刻における対話二者間の共感解釈を外部観察者が人手によりラベル付けした時系列である。この実施形態では、二者間の対話状態として、共感/反感/どちらでもない、の3状態を対象とする。二者間の対話状態とは、同調圧力(自分とは異なる同じ意見を大勢の他者が持っているときにそれに従わなければならないと感じること)に深く関わり、合意形成や人間関係を構築する上での基本要素である。また、外部観察者が解釈するこれらの状態のことをまとめて共感解釈と呼ぶ。すなわち、この実施形態における対話状態解釈とは共感解釈である。
行動認識部20の出力する学習用行動時系列と共感解釈付与部30の出力する学習用共感解釈時系列とはパラメタ学習部40に入力される。パラメタ学習部40は、外部観察者の共感解釈と対話者の行動とを関連付けるモデルパラメタを学習する。モデルパラメタは、対話者間の共感解釈の事前分布と、対話者間の行動の時間差と対話者間の行動の一致性とに基づく共感解釈の尤度を表すタイミングモデルと、対話者間の行動の共起性に基づく共感解釈の尤度を表す静的モデルとを含む。
パラメタ学習部40の備える事前分布学習部42は、学習用共感解釈時系列を用いて事前分布を学習する(ステップS42)。パラメタ学習部40の備えるタイミングモデル学習部44は、学習用行動時系列と学習用共感解釈時系列とを用いてタイミングモデルを学習する(ステップS44)。パラメタ学習部40の備える静的モデル学習部46は、学習用行動時系列と学習用共感解釈時系列とを用いて静的モデルを学習する(ステップS46)。得られたモデルパラメタはモデルパラメタ記憶部74に記憶される。
<<モデルの概要>>
この実施形態のモデルについて詳述する。この実施形態では、外部観察者が与える共感解釈は対話二者の組み合わせ毎に独立であることを仮定する。よって、以下では対話者が二人のみの場合を想定する。なお、対話者が三人以上の場合には、それぞれの対話二者の組み合わせのみに注目して学習を行えばよい。
この実施形態では、対話者の行動の時系列Bが与えられたときの各時刻tでの外部観察者の共感解釈eの事後確率分布P(et|B)を、ナイーブベイズモデルを用いてモデル化し、その推定を行う。ナイーブベイズモデルは従属変数(ここでは共感解釈)と各説明変数(ここでは各対話者の行動)との間の確率的依存関係が説明変数間で独立であることを仮定する。ナイーブベイズモデルはシンプルであるにも関わらず多くの分野で高い推定性能を示すことが確認された優れたモデルである。この発明においてナイーブベイズモデルを用いる利点は二つある。一つは、行動チャネル間の全ての共起(例えば、表情、視線、頭部ジェスチャ、および発話有無の全てが同時に発生した状態)をモデル化しないため、過学習を避けやすいという点である。これは、対象とする変数空間に対して学習サンプルが少ない場合に特に有効である。もう一つは、観測情報としての行動チャネルの追加や削除が容易という点である。
この実施形態におけるナイーブベイズモデルでは、事後確率分布P(et|B)は式(1)のように定義される。
ここで、P(dtt b|ct b,et)はタイミングモデルであり、時刻tの周辺で行動チャネルbについて二者間の行動が時間差dtt bで一致性ct bであるときに外部観察者の共感解釈がeとなる尤度を表す。一致性cとは、二者間で行動が一致しているか否かを表す二値状態のことであり、対話二者の行動のカテゴリが同じか否かで判断する。P(bt,et)は静的モデルであり、時刻tのその瞬間において行動チャネルbが対話二者間でどう共起しているのかをモデル化している。これら二つのモデルについては以下で順に説明する。P(et)は共感解釈eの事前分布であり、行動を考えないときに各共感解釈eがどれくらいの確率で生成されるかを表す。
<<タイミングモデル>>
この実施形態における行動チャネルbについてのタイミングモデルは式(2)のように定義される。
式(2)から明らかなように、このタイミングモデルは、対話二者の行動間の時間差がdtでありその一致性がcであるときの共感解釈eの尤度を表す時間差関数P( d~tt b |ct b,et)と、その相互作用の近辺で共感解釈eがどのタイミングで変化するかを表す変化タイミング関数πtから構成されている。d~tt bは、外部観察者の共感解釈の時系列をヒストグラム化した際のビン番号である。ビンサイズについては例えば200ミリ秒とする。
なお、この実施形態では、それぞれの行動チャネルについてその行動チャネル内で二者間のタイミングモデルを構築したが、行動チャネル間のモデルを構築しても構わない。例えば、表情と頭部ジェスチャとの間の時間差dtと一致性cと、共感解釈eとの関係をモデル化することができる。ただしこの場合は、一致性cを決める際に各行動チャネルについて、例えば、肯定的/中立的/否定的といった、異なる行動チャネルの間でも一致性cを判断できるカテゴリ群を新たに導入する必要がある。これらのカテゴリについては、映像から行動チャネルを検出する際に認識してもよいし、一旦行動チャネルごとに異なるカテゴリ群で認識しておいて、表情が微小なら肯定的といったようにそれらのラベルを後から肯定的/中立的/否定的に分類し直しても構わない。
<<時間差関数>>
時間差関数P(d~tt b|ct b,et)は、対話二者間の行動が行動チャネルbにおいて一致しているか否かを示す一致性cとその時間差dtによって共感解釈eがどの種類となりやすいかの尤度を表す。この実施形態では、外部観察者の共感解釈の時系列をヒストグラム化した際のビン番号d~tt bを使用している。ビンサイズについては例えば200ミリ秒とする。
図12にこの実施形態の時間差関数の一例を表す。時間差関数P(d~tt b|ct b,et)は対話者の行動の一致性cと時間差のビン番号d~tt bとにより共感解釈eの尤度を決定する。図12(A)は対話者間の行動が一致する場合の時間差関数の一例であり、図12(B)は対話者間の行動が不一致の場合の時間差関数の一例である。例えば、対話者間の行動が一致する場合に、与え手の行動表出から受け手の反応表出の時間差が500ミリ秒であった場合には、共感解釈eが「共感」である尤度が約0.3、「どちらでもない」である尤度が約0.2、「反感」である尤度が約0.5となる。時間差関数は外部観察者がラベル付けした共感解釈の時系列を時間差ビン単位で集計し、共感解釈eのカテゴリ毎にすべての時間差ビンにおける尤度の総和が1となるように正規化することで求める。
<<変化タイミング関数>>
変化タイミング関数πはどのタイミングで共感解釈eが変化するかを表す。別の見方をすると、変化タイミング関数πは時間差関数がどの範囲にわたってどの程度の強さで式(1)における共感解釈eの推定に寄与するかを決定する。
この実施形態では変化タイミング関数を式(3)のようにモデル化する。
ここで、taは対象の相互作用における与え手の行動表出開始の時刻を表す。また、時刻t'は与え手の行動表出開始の時刻をt'=0とし、受け手の反応表出開始時刻をt'=1としたときの相互作用中での相対時間を表し、t'=(t-ta)/dtとして計算される。
π=0は、式(1)で表される事後確率分布P(et|B)において、タイミングモデルP(dtt b|ct b,et)が全く寄与しないことを表す。π=1は、事後確率分布P(et|B)において、タイミングモデルP(dtt b|ct b,et)が完全に寄与することを表す。
条件dt>Lは、与え手の行動表出に対して受け手の反応表出が遅すぎることを表す。例えば、この実施形態では閾値Lを2秒とする。これは、話し手の語彙的に重要なフレーズに対する聞き手の表情表出がおよそ500〜2,500ミリ秒の範囲で起こるという研究結果を参考にした値であり、どの行動チャネルにおいても概ねこの範囲に収まるという仮定に基づく。上記の研究結果についての詳細は、「G. R. Jonsdottir, J. Gratch, E. Fast, and K. R. Thorisson, “Fluid semantic back-channel feedback in dialogue: Challenges & progress”, International Conference Intelligent Virtual Agents (IVA), pp. 154-160, 2007.(参考文献5)」を参照されたい。
条件t-ta>Wは、時刻tがそれ以前の直近で表出された与え手の表情表出からの時間経過が長いことを意味する。対話二者間でお互いに行動を表出して相互作用が行われると、それから一定の間は外部観察者の共感解釈がそのタイミングに影響を受けるが、その後しばらく次の相互作用が行われなければその影響はなくなるということをモデル化したものである。閾値Wは正の値であればどのような値でもよく、二者対話のように対象の二者間で絶えず相互作用が発生する場合には無限大としても問題無い。しかし、大人数での対話で主に一人が話しているといった状況で、その中のある二人の聞き手の間での相互作用といったように、必ずしも相互作用が頻繁とは限らない場合には閾値Wが長すぎる場合も考えられる。この実施形態では経験的に閾値Wを4秒とする。これは、閾値Wを4秒付近に設定した場合に推定精度が最も高くなったという実験結果に基づくものである。
図13に共感解釈、与え手の行動表出、および受け手の反応表出の一例を示す。図13の塗りつぶしパターンは行動もしくは共感解釈のカテゴリの違いを表す。αとβの値については例えばα=0.2、β=0.8と設定する。これらの値は、式(3)の変化タイミング関数πが累積確率を最も近似するように定めたものである。
図14に変化タイミング関数πの一例を示す。グラフ上にプロットした点は、実際に女性4名の対話グループ4つ(計16名)の対話データに対して計9名の外部観察者が与えた共感解釈のラベルおいて、そのラベルが相対時刻t'中のどこで変化したかの累積確率を表す。この変化タイミング関数によってよく近似できていることが見て取れる。但し、αとβはこの値に限らなくてもよく、α+β=1、0≦α≦1、0≦β≦1を満たすようにする。簡単な設定としては,「α=0、β=1」でもかまわない。
図15及び図16は変化タイミング関数の有効範囲の一例を模式的に表した図である。黒の塗りつぶしは行動が検出されていない状態、白の塗りつぶしと斜めのハッチングは行動のカテゴリを表している。共感解釈の縦のハッチングは共感であること、横のハッチングは反感であることを表している。図15(A)は対話者間の行動が一致した場合についての有効範囲を表している。与え手の行動と受け手の反応が一致しているため「共感」が閾値Wの間だけ継続している。図15(B)は対話者間の行動が不一致であった場合についての有効範囲を表している。与え手の行動と受け手の反応が不一致であるため「反感」が閾値Wの間だけ継続している。図15(C)は与え手の行動表出に対して受け手の反応表出が遅すぎる、すなわちdt>Lであるために変化タイミング関数が有効範囲外となっている状況を表している。この場合は全体を通して「どちらでもない」状態が継続している。図16は対話二者が交互に行動を表出したときの有効範囲である。基本的な考え方は図15(A)から図15(C)と同様である。
<<静的モデル>>
静的モデルP(bt|et)は、時刻tに行動チャネルbについて対話二者間で特定の行動が共起した場合に、共感解釈eがどの程度の尤度で生成されるかをモデル化したものである。
モデル化の方法は、表情と視線については特許文献1および非特許文献1にて提案されているため、これらの文献の記載に従えばよく、対話二者間の視線状態のモデルと、その視線状態毎の表情の状態との共起のモデルとを組み合わせればよい。ここで、二者間の視線状態とは、例えば、相互凝視/片側凝視/相互そらし、の3状態が考えられる。
頭部ジェスチャについての静的モデルはP(g|e)で表される。ここで、gは二者間での頭部ジェスチャの組み合わせ状態を表す。対象とする頭部ジェスチャの状態数をNgとすると、二者間での頭部ジェスチャの組み合わせの状態数はNg×Ngとなる。カテゴリとして任意の種類と数を対象としても構わないが、数が多すぎると学習サンプル数が少ない場合に過学習に陥りやすい。その場合は、最初に用意したカテゴリをさらにクラスタリングによりグルーピングしても構わない。例えば、その方法の一つとしてSequential Backward Selection (SBS)が挙げられる。例えば頭部ジェスチャのカテゴリを対象とする場合、頭部ジェスチャのみを用いた推定、すなわち事後確率をP(e|B):=P(e)P(g'|e)として、すべてのカテゴリから推定精度が最高になるように選択した二つのカテゴリを統合して一つにまとめる。これを推定精度が悪化する直前まで繰り返すことで一つずつカテゴリ数を減らしていけばよい。ここで、g’はグルーピング後における二者間での頭部ジェスチャの組み合わせ状態である。発話有無についても頭部ジェスチャと同様に二者間の共起をモデル化する。
<<モデルの学習方法>>
この実施形態では、いずれのモデルについても離散状態として記述されているため、学習フェーズではその離散状態が学習サンプル中に何回出現したかの頻度を取り、最後にその頻度を正規化(確率化)すればよい。
このとき、モデルを準備する方針として、モデルパラメタの学習に使用する学習用映像に撮影された対話者の集団と、対話状態を推定したい推定用映像に撮影された対話者の集団が同一であれば、対話二者毎にそれぞれ独立にパラメタを学習し、ある対話二者についての推定にはその対話二者のデータから学習したパラメタを用いるとすればよい。他方、学習用映像に撮影された対話者の集団と、推定用映像に撮影された対話者の集団が異なる場合には、対話二者を区別せずに一つのモデルを学習し、その一つのモデルを使用して推定したい対話二者についての推定を行えばよい。
<推定フェーズ>
図11を参照して、対話状態推定装置1の推定フェーズにおける動作例を説明する。
入力部10へ推定用映像が入力される(ステップS12)。推定用映像は、複数の人物が対話する状況を撮影した映像であり、少なくとも対話者の頭部が撮影されていなければならない。また、推定用映像は学習用映像とは異なる未知の映像である。推定用映像の撮影方法は上述の学習フェーズにおける学習用映像の撮影方法と同様である。入力された推定用映像は推定用映像記憶部72に記憶される。
行動認識部20は推定用映像記憶部72に記憶されている推定用映像を入力として、推定用映像に撮影された各対話者の行動として、表情、視線、頭部ジェスチャ、発話有無などを検出し、その結果生成された対話者の行動の時系列Bを出力する(ステップS22)。行動の認識方法は上述の学習フェーズにおける行動の認識方法と同様であるので、ここでは説明を省略する。
行動認識部20の出力する推定用行動時系列Bは事後確率推定部50に入力される。事後確率推定部50は、モデルパラメタ記憶部74に記憶されているモデルパラメタを用いて、推定用行動時系列Bから時刻tにおける対話者間の共感解釈の事後確率分布P(et|B)を推定する(ステップS50)。事後確率推定部50は、推定用映像に基づいて生成された対話者の行動の時系列Bと、パラメタ学習部40で学習した事前分布とタイミングモデルと静的モデルの各パラメタを含むモデルパラメタとを入力として、上記の式(1)に従って、時刻tにおける共感解釈eの事後確率分布P(et|B)を計算する。
出力部60は、対話者間の共感解釈eの事後確率分布P(et|B)を出力する(ステップS60)。共感解釈の推定結果を確率分布ではなく一つの種類として出力する必要がある場合には、事後確率が最も高い共感解釈の種類、すなわちe~t=argmax e_tP(et|B)を対話状態値e~tとして併せて出力すればよい。
また、事後確率が最も高い共感解釈の種類に加え、その事後確率が最も高い共感解釈の強度を出力してもよい。例えば、強度は、共感であれば、強度=共感の確率−反感の確率という式から、反感であれば、強度=反感の確率―共感の確率という式により求めることができる。この場合、強度は、-1から1の間の数値で表される。