(57)【要約】【課題】雑談対話時のユーザの発話からユーザの興味のあるトピックを高精度に推定する。【解決手段】話者が発話した発話文に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成する。そして、隠れ状態ベクトル系列から発話ベクトルを作成し、この発話ベクトルから興味トピックに関するコンテントベクトルを作成する。それにより、コンテントベクトルから興味トピックに対する発話者の興味値を求める。【選択図】  図１
2020053015.tif 000002
【特許請求の範囲】
【請求項１】
入力された文がどのようなトピックに属するかを事前に推定するための事前学習を行うステップと、
話者の発話に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成するステップと、
前記隠れ状態ベクトル系列から発話ベクトルを作成するステップと、
前記発話ベクトルから興味トピックに関するコンテントベクトルを作成するステップと、
前記コンテントベクトルから前記興味トピックに対する発話者の興味度を求めるステップを含む
興味推定方法。
【請求項２】
前記事前学習は、ニューラルネットワークから構成される単語系列エンコーダを用いて行われる、
請求項１に記載の興味推定方法。
【請求項３】
文のトピック別分類を予め学習する前記事前学習において、文のトピックを分類する分類クラスを、興味推定対象のトピックと同じにする、
請求項１または２に記載の興味推定方法。
【請求項４】
前記隠れ状態ベクトル系列は、双方向ＧＲＵからなる単語系列エンコーダにより、双方向ＧＲＵの中の順方向ＧＲＵの出力と逆方向ＧＲＵの出力を合成して作成される、
請求項１に記載の興味推定方法。
【請求項５】
前記発話ベクトルは、単語ごとに異なる重みづけを行う単語アテンション部により作成される、
請求項１に記載の興味推定方法。
【請求項６】
前記コンテントベクトルは、トピック別に発話の重要性を計算するトピック別発話アテンション部により作成される、
請求項１に記載の興味推定方法。
【請求項７】
前記コンテントベクトルから前記興味トピックに対する発話者の興味度を求めるステップは、興味推定部により行われる
請求項１に記載の興味推定方法。
【請求項８】
入力された文がどのようなトピックに属するかを事前に推定するための事前学習を行うトピック別分類部と、
話者の発話に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成する単語系列エンコーダと、
前記隠れ状態ベクトル系列から発話ベクトルを作成する単語アテンション部と、
前記発話ベクトルから興味トピックに関するコンテントベクトルを作成するトピック別発話アテンション部と、
前記コンテントベクトルから前記興味トピックに対する発話者の興味度を求める興味推定部を、備える
興味推定装置。
【請求項９】
入力された文がどのようなトピックに属するかを事前に推定するための事前学習を行う処理と、
話者の発話に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成する処理と、
前記隠れ状態ベクトル系列から発話ベクトルを作成する処理と、
前記発話ベクトルから興味トピックに関するコンテントベクトルを作成する処理と、
前記コンテントベクトルから前記興味トピックに対する発話者の興味度を求める処理
をコンピュータに実行させる興味推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、興味推定方法、興味推定装置および興味推定プログラムに関し、より詳細には、雑談対話時のユーザの発話からユーザの興味のあるトピックを高精度に推定する方法、装置およびそれを実現するためのコンピュータプログラムに関する。
【背景技術】
【０００２】
人と人とのコミュニケーションにおいて雑談は重要であり、人の会話の約６２％は雑談であるとの報告がある。また、人とコンピュータとの対話においても雑談は重要であり、ユーザの満足度向上の観点から、システムがユーザの経験や好みに応じてユーザと対話を行う雑談対話システムが求められている。
【０００３】
非特許文献１には、Twitter（登録商標）へ投稿されたテキストデータからユーザの興味を推定する方法が記載されている。すなわち、非特許文献１には、人名、イベント名、音楽グループ名といった固有表現の出現頻度により、Twitter（登録商標）ユーザの興味推定を行った例が記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Fabian Abel, Qi Gao, Geert-Jan Houben, and Ke Tao.  2011. Analyzing user modeling on twitter for personalized  news recommendations. User Modeling, Adaption and Personalization pages 1-12.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、Twitter（登録商標）ではユーザの興味のあることが投稿されるのに対して、雑談では相手に話を合わせて対話するため、ユーザは必ずしも興味のあることについてのみ発話するとは限らない。したがって、非特許文献１に示された興味推定の方法を雑談対話に適用することは必ずしも適切ではない。
【０００６】
本発明は、上記問題に鑑み、雑談対話中のユーザの発話からユーザが興味を持っているトピックを高精度に推定することができる興味推定方法、興味推定装置およびそれを実現するためのコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決し、本発明の目的を達成するため、本発明の興味推定方法は、以下、（ａ）〜（ｅ）のステップを含む。
（ａ）入力された文がどのようなトピックに属するかを事前に推定するための事前学習を行うステップと、
（ｂ）話者の発話に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成するステップと、
（ｃ）隠れ状態ベクトル系列から発話ベクトルを作成するステップと、
（ｄ）発話ベクトルから興味トピックに関するコンテントベクトルを作成するステップと、
（ｅ）コンテントベクトルから興味トピックに対する発話者の興味度を求めるステップ。      
【０００８】
また、本発明の興味推定装置は、入力された文がどのようなトピックに属するかを事前に推定するための事前学習を行うトピック別分類部と、話者の発話に含まれる単語の系列から得られた単語ベクトル系列から隠れ状態ベクトル系列を作成する単語系列エンコーダと、隠れ状態ベクトル系列から発話ベクトルを作成する単語アテンション部と、発話ベクトルから興味トピックに関するコンテントベクトルを作成するトピック別発話アテンション部と、コンテントベクトルから前記興味トピックに対する発話者の興味度を求める興味推定部を、備える。
【０００９】
本発明の興味推定プログラムは、興味推定方法のステップ（ａ）〜（ｅ）に示される手順をコンピュータに実行させるプログラムである。
【発明の効果】
【００１０】
本発明によれば、ユーザの発話からユーザの興味を高精度に推定することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態例に係る興味推定方法の、ユーザ発話の処理の段階的な工程を示す図である。
【図２】本発明の実施の形態例に係る興味推定方法において、事前学習の工程を説明するための図である。
【図３】本発明の実施の形態例に係る興味推定方法において、実験で使用する２４種類のトピックを示す図である。
【図４】本発明の実施の形態例に係る興味推定方法において、興味度を推定するときの実験で使用した実際の対話例を示す図である。
【図５】本発明の実施の形態例に係る興味推定方法において、実験で使用した統計情報のテーブルである。
【図６】本発明の実施の形態例に係る興味推定方法において、トピックの数１〜２４に対応するＮＤＣＧの値を、本発明の提案手法と他の手法とで比較して示した図である。
【図７】本発明の実施の形態例に係る興味推定方法の提案手法と他の手法とで、興味度と正解との間の平均二乗誤差を比較して示した図である。
【図８】本発明の実施の形態例に係る興味推定方法において、提案手法のトピック別発話アテンションを可視化した図である。
【図９】本発明の実施の形態例に係る興味推定方法の提案手法とは異なる、事前学習なしのトピック別発話アテンションを可視化した図である。
【図１０】本発明の実施の形態例に係る興味推定方法において、トピックの数１〜２４に対応する、被験者数全体と被験者数を制限した場合および発話数を制限した場合のＮＤＣＧの値を比較して示した図である。
【図１１】本発明の実施の形態例に係る興味推定方法において、学習データ量を１００％から順に制限した場合の提案手法の性能評価（平均二乗誤差：ＭＳＥ）結果を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施の形態例（以下、「本例」ということもある）を説明する。
本発明の実施の形態例では、まず、話者Ｓが他の話者（雑談対話システムを含む）との対話中に行ったときの、話者Ｓの発話集合Ｕｓ＝（ｕ１、ｕ２、・・・ｕｎ）が与えられる。そして、この話者Ｓの発話集合Ｕｓ＝（ｕ１、ｕ２、・・・ｕｎ）から、ある興味トピックＴ＝ （ｔ１、ｔ２、・・・、ｔｍ）に対する、話者Ｓの興味対象の度合い（興味度）Ｙｓ＝（ｙ１、ｙ２、・・・、ｙｍ）が推定される。ここで、発話集合Ｕｓの各要素ｕ１、ｕ２、・・・ｕｎは、それぞれが異なることなる発話文を意味しており、各要素ｕ１〜ｕｎのそれぞれが後述する１つの発話文のベクトルＸ＝（ｘ１、ｘ２、・・・ｘｋ）に相当する。
【００１３】
ここで、興味トピックＴの個々の要素ｔｉ(ｔ１〜ｔｍ)は、例えば映画や旅行などに対応する、ｍ個の異なる具体的なトピックである。また、興味度Ｙｓの個々の要素である（ｙ１、ｙ２、・・・、ｙｍ）は、具体的な一つのトピック「ｔｉ」に対する話者Ｓの興味の度合い（興味度）「ｙｉ」を意味する正解値である。この興味度「ｙｉ」は、詳しくは後述するが、３段階で定義され、ｙｉ＝０は「興味なし」、ｙｉ＝１は「少し興味あり」、ｙｉ＝２は「興味あり」とされる。
【００１４】
なお、話者Ｓの発話から興味の推定を行うためには、以下の２つの情報を抽出することが必要である。
（ｉ）その発話はどのようなトピックに関するものであるか
（ii）話者Ｓはそのトピックについてどの程度興味を持っているか
以上の２点を効率的に行うため、発明者は、ニューラルネットワークモデルと、このモデルの効率的な学習を行うための事前学習の手法を考えた。
【００１５】
図１、図２は、本発明の実施形態例で用いられる、話者Ｓと他の話者との間の自然言語での雑談対話からの興味推定方法の概要を示す提案モデルの例である。
図１、図２に示すように、本例の興味推定方法は、図１に示す４つの工程と図２に示す事前学習とに分けて説明される。すなわち、図１には、以下の４つの工程が示されている。
(1)単語系列エンコーダにより発話中の単語ベクトル系列から隠れ状態ベクトル系列を作成する工程、
(2)単語アテンション（Attention）部により、隠れ状態ベクトル系列から固定長ベクトルである発話ベクトルを作成する工程、
(3)トピック別発話アテンション（Attention）部により、入力された発話ベクトルからトピックごとに各トピックの重要度を示すコンテントベクトルを作成する工程、
(4)興味推定部により、トピック別発話アテンション部で作成されたコンテントベクトルから、各トピックの興味度を求める工程。
【００１６】
図１に示す上述した４つの工程の他に、さらに、本例の提案方法では、単語系列エンコーダによる事前学習の工程が必要とされる。
図２は、単語系列エンコーダの出力を、別に用意されたニューラルネットワークに供給して、どの発話がどのトピックに近いかを予め学習させるための事前学習の工程を示す。つまり、話者Ｓの発話から興味度を推定するには、話者Ｓの発話がどのトピックに対応しているのか予め知っておくとよい。このため事前学習では、入力文がどのトピックに関係しているかを事前に学習させる。この事前学習を導入することにより、後述するように、興味度の推定値が実際のユーザの興味に近いものとなる。
【００１７】
本例の興味推定方法（以下、「本例の提案方法」という）は、単語系列エンコーダ１、単語アテンション（Attention）２、トピック別発話アテンション（Attention）３、興味推定部４の４つニューラルネットワークが順に上述の処理を行い、かつ、図２に示すトピック別分類部５を用いて単語系列エンコーダ１の事前学習を行っている。
以下、単語系列エンコーダ１、事前学習のトピック別分類部５、単語アテンション部２、トピック別発話アテンション部３、興味推定部４の作用、機能等について、項目別に順に説明する。
【００１８】
＜単語ベクトル系列の作成＞
最初に発話文を単語に分割し、分割されたｋ個の単語は、Word2Vecによってベクトルに変換され、ｋ個の要素を持つ単語ベクトルの系列Ｘ＝（x1、x2、・・・、xｋ）が得られる。ここで、Word2Vecは、「Word to Vector」を略記したものであり、単語からベクトルを生成するツールである。
上述の単語ベクトル系列の作成は、本例の提案方法において前処理として行われるものであるが、「話者が発話した発話文を単語に分割し、分割された単語を単語ベクトルに変換することで単語ベクトル系列を作成するステップ」として、また、本例の提案方法を実行する装置としては、「話者が発話した発話文を単語に分割し、分割された単語を単語ベクトルに変換することで単語ベクトル系列を作成する単語ベクトル系列作成部」として、本発明に組み入れられても良い。また、これらのステップを以下に記載の単語系列エンコーダの機能の１つとして組み入れても良い。
【００１９】
＜単語系列エンコーダ１の機能＞
単語系列エンコーダ１は、話者Ｓの発話した単語ベクトルの系列Ｘ＝（ｘ１、ｘ２、・・・、ｘｋ）をＲＮＮ（Recurrent Neural Network）を用いてエンコードする。
本例の提案方法では、ＲＮＮの中間層として双方向ＧＲＵ（Bidirectional-Gated Recurrent Unit）が用いられる。
【００２０】
図１の単語系列エンコーダ１では、下段に単語ベクトルの系列Ｘを最初の単語ベクトルｘ１から最後の単語ベクトルｘｋの順に読み込む順方向ＧＲＵ（forward GRU（GRU（→）））が配置され、上段に単語ベクトルの系列Ｘを最後の単語ベクトルｘｋから最初の単語ベクトルｘ１の順に読み込む逆方向ＧＲＵ（backward GRU（GRU（←）））が配置されている。なお、明細書の中では、表記上の制約のため、「→」、「←」を文字の上に付与できないので、例えばGRU(→)のように、文字の後に括弧で示す。なお、「→」は順方向の矢印、「←」は逆方向の矢印を意味する。  話者Ｓの発話から切り出されたｋ個の単語の単語ベクトル（ｘ１、ｘ２、・・・、ｘｋ）のそれぞれは、順方向ＧＲＵと逆方向ＧＲＵに同時に供給される。
【００２１】
図１では、順方向ＧＲＵと逆方向ＧＲＵを点線の枠で囲い、点線の枠に単語ベクトルｘｉが入力され、点線の枠からの順方向ＧＲＵと逆方向ＧＲＵの合成ベクトルｈｉが出力されるように表示されている。順方向ＧＲＵにおける隠れ状態ベクトルｈｉ（hidden state hi(→)）は数１式により得られる。また、逆方向ＧＲＵにおける隠れ状態ベクトルｈｉ（hidden state hi(←)）も、数式は示されていないが、数１式と同様の式により計算される。
【００２２】
【数１】
2020053015.tif 000003
ここで、数１式は、単語ベクトルｘｉと一つ前の隠れ状態ベクトルｈｉ―１（→）とを入力とする順方向ＧＲＵによって、次の段の隠れ状態ベクトルｈｉ（→）を計算していることを意味する。
【００２３】
本例の提案方法では、目的となる隠れ状態ベクトルhiは、順方向ＧＲＵと逆方向ＧＲＵにそれぞれベクトル「xi」を入力した際の出力を用いて数２式により求められる。
【００２４】
【数２】
2020053015.tif 000004
ここで、数２式の「｛：｝」はベクトルの連結を意味する。単語系列エンコーダ１で求められた隠れ状態ベクトルｈｉは、次の処理を行うための単語アテンション部２に送られる。
【００２５】
＜トピック別分類部５の機能（事前学習）＞
ここで、図２に示されるトピック別分類部５の機能と事前学習について説明する。ユーザがどのトピックにどれだけ興味を持つかを推定するためには、まずユーザからの発話がどのようなトピックに関するものかを予め推定することが重要である。
全ての発話に人手でアノテーションする、つまり注釈をつけることも可能であるが、その作業コストは極めて高いものとなる。また、トピックの情報が明示的に与えられない場合には、ユーザの発話情報と発話したユーザの興味度から間接的にトピックを推定しなければならない。そこで、本例の提案方法では、単語系列エンコーダ１に対して、事前学習の考え方を導入している。
【００２６】
すなわち、発話中のトピックをより効果的に抽出するため、単語系列エンコーダ１とトピック別分類部５が、入力文のトピックの分類を行う。これが事前学習（Pre-training）である。
この事前学習では、分類クラスを本例の興味推定方法の対象とする興味トピックＹｓと同一にすることが重要である。つまり、本例の興味推定方法において対象とする興味トピックＹｓと分類クラスを同一にすることによって、発話と興味推定対象トピックの対応関係を推定するための学習コストが下がり、興味推定によりフォーカスされた適切な学習が可能となる。
【００２７】
例えば、図３で後述するように、旅行、映画、音楽・・・などのトピックを予め決めて、入力される文がどのトピックに属するかを予め学習させておく。すると、新たに入力される文がどのトピックに近いかを推定しやすくなる。「学習コストが下がる」というのは、このことを意味している。この事前学習により、単語エンコーダ１の出力にそれぞれのトピックに関する情報が内包される。これにより、本例の提案手法において、発話とトピックの関連付けが容易になり、興味推定に注力した学習が可能となる。
【００２８】
また、事前学習では、入力文の最後の単語ベクトル「ｘｋ」を双方向ＧＲＵに入力する。そして、双方向ＧＲＵの隠れ状態ベクトル「ｈｋ」を用いて、入力文の各トピックへの所属確率分布ｐを数３式で計算する。なお、ここでは、後述する単語アテンションは使用していない。また、最後の隠れ状態ベクトル「ｈｋ」以外の隠れ状態ベクトル「ｈｉ」は使用していない。
【００２９】
【数３】
2020053015.tif 000005
ここで、Ｗｃ、ｂｃは、事前学習時のみに使用されるトピック別分類のためのニューラルネットワークのパラメータである。ここでは、事前学習の損失関数として交差エントロピー誤差を用いている。
なお、ソフトマックス関数は、それぞれの出力を「０〜１」の間の値に落とし込み、出力された値の合計が「１」になる関数である。
【００３０】
以上、本例の提案手法において、重要な役割を担う事前学習について説明したが、この事前学習については、図２を参照してさらに説明する。
図２は、単語アテンション部２で用いられるニューラルネットワークとは別の異なるニューラルネットワークに単語系列エンコーダ１の隠れ状態ベクトル「ｈｋ」を入力して別の処理を行う事前学習について説明するための図である。
【００３１】
図２に示すように、トピック別分類部５には、単語エンコーダ１の出力のうち、最後の段階の隠れ状態ベクトル「ｈｋ」が入力される。図１では単語エンコーダ１からｋ個の隠れ状態ベクトル「ｈｉ」が出力されているが、数３式の所属確率分布ｐを求める際には、最終段の隠れ状態ベクトル「ｈｋ」だけが用いられる。
すなわち、トピック別分類部５は、数３式で計算した所属確率分布ｐから、入力される隠れ状態ベクトル「ｈｋ」がどのトピックに近いかを推定する。この事前学習により、入力される発話がどのトピックに近いかを予めニューラルネットワークに学習させることができる。
【００３２】
＜単語アテンション部２の機能＞
本例の提案手法では、「全ての単語が求めたい結果に平等に貢献するわけではない」という考えに基づき、単語アテンション部２が導入されている。
単語アテンション部２では、アテンション機構により単語ごとに異なる重み付けを行う。ここでアテンション機構とは、重要度が高い単語に注目させるためのニューラルネットワークの構造をいう。例えば、「私は野球が好きです」という発話の意味を理解するためには、「は」や「です」という単語よりも「野球」や「好き」という単語の方が、重要度が高い。したがって、単語アテンション部２は、「野球」や「好き」という単語に大きな重みを与える。
【００３３】
すなわち、図１に示すように、単語系列エンコーダ１の出力である隠れ状態ベクトル「ｈｉ」は、単語アテンション部２に送られ、単語アテンション部２において、単語ごとに異なる重みづけが行われる。単語アテンション部２で重みづけがされた発話ベクトル「ｚ」は、数４式、数５式、数６式によって求められる。
【００３４】
【数４】
2020053015.tif 000006
数４式は、単語系列エンコーダ１の出力である隠れ状態ベクトル「ｈｉ」を、ニューラルネットワークのパラメータＷω、ｂωとハイパボリックタンジェント関数を用いて、異なる別のベクトル「ｖｈｉ」に変換することを示している。
【００３５】
【数５】
2020053015.tif 000007
【００３６】
【数６】
2020053015.tif 000008
【００３７】
数５式の「αｈｉ」は、数４式で求めた単語ベクトル「ｘｉ」の重要度を示している。ここで、数５式の中の「ｖω」は、ニューラルネットワークで用いられる単語の重要度を計算するためのパラメータ（文脈ベクトル）である。「Ｔ」はベクトル同士の演算を行うときの転置記号である。
なお、単語の重要度を計算するための文脈ベクトル「ｖω」は、乱数により初期化され、他のパラメータと同様に学習により最適化される。
【００３８】
このように、単語アテンション部２は、入力される隠れ状態ベクトル「ｈｉ」を基にして変換したすべての「ｖｈｉ」に対して単一の文脈ベクトル「ｖω」を用いて、単語ベクトル「ｘｉ」の重要度「αｈｉ」を求めている。その意味では、単語アテンション部２は、ニューラル翻訳モデルやニューラル対話モデルのようなデコーダを用いて単語系列を生成する場合の通常のアテンションとは異なる。
【００３９】
また、数６式の発話ベクトル「ｚ」は、単語ベクトル「ｘｉ」を入力した際の隠れ状態ベクトル「ｈｉ」と、その単語ベクトル「ｘｉ」の重要度「αｈｉ」との積をすべての単語ベクトル「ｘｉ」（ｉ＝１〜ｋ）について加算して計算したベクトルである。この発話ベクトル「ｚ」は、一つの単語ベクトル系列Ｘ＝（ｘ１、ｘ２、・・・、ｘｋ）の特徴を表している。
【００４０】
＜トピック別発話アテンション部３の機能＞
トピック別発話アテンション部３は、全てのトピック「ｔｉ」（ｉ＝１〜ｍ）に関するコンテントベクトル（content vector）「ｃｔｉ」を求める。以下、コンテントベクトル「ｃｔｉ」の生成について説明する。
トピック別発話アテンション部３には、単語系列エンコーダ１及び単語アテンション部２によって、発話集合Ｕｓ＝（ｕ１、ｕ２、・・・ｕｎ）からエンコードされた発話ベクトル集合Ｚs＝（ｚ１、ｚ２、・・・ｚｎ）が供給される。
【００４１】
トピック別発話アテンション部３は、この発話ベクトルＺｓを用いて、ｍ種類（ここではｍ＝２４）のトピック「ｔｉ」に関するコンテントベクトル「ｃｔｉ」を生成する。なお、コンテントベクトル「ｃｔｉ」は、各トピック「ｔｉ」が埋め込まれたベクトル表現であり、数７式、数８式、数９式によって求められる。なお、数８式に用いられる「ｖｔｉ」は、図１に示すトピックベクトルである。
【００４２】
【数７】
2020053015.tif 000009
【００４３】
【数８】
2020053015.tif 000010
【００４４】
【数９】
2020053015.tif 000011
【００４５】
ここで、数７式から数９式は、単語アテンション部２の機能のところで説明した数４式から数６式と類似している。
すなわち、数７式は、単語アテンション部２の出力である、単語の重要度を表す発話ベクトル「ｚｊ」（ｊ＝１〜ｎ）が、別のニューラルネットワークのパラメータＷｒ、ｂｒとハイパボリックタンジェント関数を用いて、異なる別のベクトル「ｖｊ」に変換される。
【００４６】
数８式の「αｊｔｉ」は、数７式で求めた「ｖｊ」を用いて計算した、トピック別発話アテンション部３のニューラルネットワークから出力される発話ベクトル「ｚｊ」の重要度を示している。
【００４７】
ここで、図１に示されているトピックベクトル「ｖｔｉ」（ｉ＝１〜ｍ）は、発話ベクトルＺｓ（ｚ１、ｚ２、・・・、ｚｎ）の中のそれぞれの発話のトピック別の重要度を計算するためのベクトルである。このトピックベクトル「ｖｔｉ」は２４種類（すなわち、ｍ＝２４）があり、学習により最適化される。
【００４８】
また、数９式の「ｃｔｉ」は、各発話ベクトル「ｚｊ」（ｊ＝１〜ｎ）と、その発話ベクトル「ｚｊ」の取り得る重要度「αｊｔｉ」との積をすべての発話ベクトル「ｚｊ」について加算したものであり、コンテントベクトルといわれる。つまり、このコンテントベクトル「ｃｔｉ」は、一つの発話の重要度を示している。
【００４９】
このトピック別発話アテンション部３のニューラルネットワークに用いられるパラメータＷｒは、２４種類のトピック全てに用いられる共通のパラメータである。
【００５０】
＜興味推定部４の機能＞
トピック別発話アテンション部３で求められた各トピック「ｔｉ」のコンテントベクトル 「ｃｔｉ」（ｉ＝１〜ｍ）は、興味推定部４に供給される。
興味推定部４は、このコンテントベクトル「ｃｔｉ」を用いて、トピック「ｔｉ」に対する興味度「ｄｔｉ」を数１０式によって求める。
【００５１】
【数１０】
2020053015.tif 000012
【００５２】
ここで、パラメータ「Ｗｔｉ」と「ｂｔｉ」は、トピック「ｔｉ」の興味度推定のための新たなニューラルネットワークのパラメータであり、対象となる２４種類のトピックごとに異なる。
また、数１０式の「＋１」は、興味度「ｄｔｉ」を、正解である興味度「ｙｉ」と同じ「０〜２」にスケーリングするための項である。
なお、学習の際の損失関数には、数１１式で示されるように、正解である興味度「ｙｉ」と数１０式で求めた興味度「ｄｔｉ」の平均二乗誤差Ｌを用いることとした。
【００５３】
【数１１】
2020053015.tif 000013
【００５４】
本例の興味推定方法は、機械学習を利用するものであることから、事前学習を含む学習フェーズと学習結果を利用した推定フェーズとに分かれる。学習フェーズでは、学習データ（ユーザの発話とユーザの各トピックについての興味（正解）のデータセット）に基づく学習を行うことで単語系列エンコーダ１、単語アテンション部２、トピック別発話アテンション部３及び興味推定部４のぞれぞれにおいて各種パラメータが決定され、推定フェーズでは、学習フェーズで決定された各種パラメータを固定したうえで、テストデータ（ユーザの発話のみ）に基づいてユーザの興味の推定を行う。
本例の興味推定方法による処理を以下、実験例で示す。
【００５５】
＜実験例＞
以下、本例の興味推定方法（提案方法）の性能評価のために、２名の被験者が１対１で対話したチャットログから推定した興味度「ｄｔｉ」と、被験者が事前にアンケート回答した正解の興味度「ｙｉ」との相関性を評価した実験例について説明する。
この実験では、「機械学習用ライブラリチェイナー（Chainer）」を用いて評価した。なお、チェイナー（Chainer）はニューラルネットワークの計算および学習を行うためのオープンソフトウェアライブラリである。
すなわち、本例の提案方法では、図１に示すように、単語系列エンコーダ１、単語アテンション部２、興味推定部４のほかに、新たにトピック別発話アテンション部３を組み込んで、実験用モデルを構築した。  
【００５６】
対話を行う前に、各被験者には、図３に示す２４種類のトピックそれぞれに対して、自分の興味の度合いを０（興味なし）、１（やや興味あり）、２（興味あり）の３択で選択してもらった。なお、図３のトピックは、Yahoo知恵袋（登録商標）から、被験者２人の初対面の対話で取り上げられやすい話題を中心に設定した。
【００５７】
対話は１回１時間とし、スカイプ（Skype：登録商標）のインスタントメッセンジャーを介して行った。対話を始めるに当たって、各被験者には「話の中で相手と自分の間で共通して興味のあることを見つけ、それについて話を膨らませていくことを心がけてください。」とだけ教示し、話すべき内容・話題についての指示は行わなかった。
【００５８】
図４は、被験者２人の実際の対話例を示す。ここでは、収集したすべてのチャットデータ中の発話を被験者別に分類し、１被験者が行った全ての発話とその被験者のアンケートの結果を１データとして扱った。図５は、データの統計情報を示したものである。
【００５９】
単語ベクトルの獲得は、Word2Vecを用いて、次元数200、ウィンドウサイズ５、最少出現頻度１０とし、約１００ＧＢのTwitter（登録商標）データで学習を行った。
【００６０】
単語系列エンコーダ１の入力層の次元は200、双方向ＧＲＵの出力の次元は400、双方向ＧＲＵは１層とした。また、単語アテンション部２とトピック別発話アテンション部３は、入出力ともに400次元、興味推定部４の入力は400次元、出力は１次元とした。トピック別分類部５の入力は400次元、出力は２４次元である。
【００６１】
なお、すでに説明したように、事前学習として行うトピック別分類の際には、トピック別分類の決定に用いたのと同じ、図３に示したトピックを使用した。各トピックに対応する質問文および回答文はYahoo知恵袋データ第2版から抽出した。77万文を学習データ、各トピック100文ずつの2400文をテストデータとした。事前学習の結果、テストデータのトピック分類正確率は0.755であった。
評価は、１０分割交差検証により行った。なお、対話単位ではなく、データ単位（被験者単位）で交差検証を行ったため、学習データとテストデータの間で、同一の被験者による発話が使用されることはない。
【００６２】
本例の提案方法を、対話システムの話題選択に用いる場合、対話システムがその時点で対応できる話題の中から、より望ましい話題を選択するようにすることが重要である。そこで、本実験例では、推定した興味度「ｄｔｉ」に基づいて、各トピックの順位付けを行った。そして、ユーザが興味を持つトピックを上位に位置付け、興味を持たないトピックを下位に位置付けるように性能評価を行った。順位付けの評価尺度としては、情報検索の分野で広く使用されている指標であるＮＤＣＧ（Normalized Discounted Cumulative Gain）を用いた。つまり、ＮＤＣＧは、正規化されたＤＣＧで、０〜１の値をとり、１に近いほど順位の正しい予測結果となる。ＮＤＣＧは、以下の数１２式、数１３式により計算される。
【００６３】
【数１２】
2020053015.tif 000014
【００６４】
【数１３】
2020053015.tif 000015
【００６５】
数１２式で、ＩＤＣＧ（Ideal ＤＣＧ）は順位リストの適合度が順に正しく並んだ場合のＤＣＧ、つまり理想とされるＤＣＧである。ＩＤＣＧＫは、上位Ｋ位までを考慮したＩＤＣＧであり、数１２式のＮＤＣＧＫは、ＤＣＧＫはＩＤＣＧＫで正規化した値を示している。
【００６６】
数１３式の「ｒｅｌｉ」は、ｉ番目に順位付けされたターゲットに対する適合度を意味している。つまり、「ｒｅｌ１」の適合度が高く、Ｋの値が大きくなるに従って適合度が小さくなる。「ｒｅｌｉ」を「ｌｏｇ２ｉ」で割り算しているのは、「ｉ」が大きくなるほど、適合度を小さくすることを意味している。
本例の実験例では、各トピックに対するユーザ「ｓ」の興味度Ｙｓの値（０、１、２）を適合度とした。
【００６７】
本実験例では、初期パラメータを変更して、５回の１０分割交差検証を実施した。そして、ＮＤＣＧが最良の結果になったものを各手法の結果として採用した。ここで、ＮＤＣＧ１を選択の基準として用いるのは、ＮＤＣＧ１が大きな値であった場合、以降のＫにおいてＮＤＣＧが高くなる傾向が観察されたためである。
【００６８】
また、各トピックに対するユーザの興味度を正しく推定できるかを評価するため、本例の提案方法とその他の手法で出力した興味度「ｄｔｉ」と正解「ｙｉ」との平均二乗誤差（数１１式）によって評価した。
【００６９】
図６は、本例の提案方法とその他の手法とで計算したＫ＝１〜２４までのＮＤＣＧを示した実験結果である。すなわち、図６に示すように、本例の提案方法だけではなく、比較手法として本例の提案手法の一部を変更した３つの比較例による実験を行った。
１つ目の手法は、本例の提案手法における事前学習を行わないで、単語系列エンコーダ１の初期値を乱数として学習を行った「事前学習なし」である。この「事前学習なし」では、図２で説明した事前学習がないだけで、図１に示す単語系列エンコーダ１、単語アテンション部２、トピック別発話アテンション部３および興味推定部４のすべての処理を実施した。
【００７０】
２つ目の手法では、本例の提案方法における図２に示した事前学習は行ったが、トピック別発話アテンション部３によるコンテントベクトルの取得をせずに、他の手法（発話ベクトルのMax Pooling）の結果を用いてコンテントベクトルを取得して興味推定を行った。図６では、これを「トピック別発話アテンションなし」として示している。
【００７１】
３つ目の手法は、本例の提案手法における事前学習を行わず、かつ発話ベクトルのMax Poolingの結果を用いてコンテントベクトルを取得して興味推定を行う手法であり、図６では、「事前学習なし＆トピック別発話アテンションなし」として示した。
【００７２】
また、以下の２つのベースライン手法についても比較の実験を行った。１つ目のベースライン手法は、Twitterユーザの興味推定手法として提案されたもので、図６では「トピック頻度」として示されている。これは、ユーザのツイートに含まれる固有表現を取得し、その頻度ベクトルによりユーザの興味を推定するものである。
【００７３】
２つ目のベースライン手法は、ＳＶＲ(Support Vector Regression)を用いてユーザの興味度を推定する手法である。素性としては、ユニグラム（unigram）とバイグラム（bigram）が用いられる。ここでは、ユニグラム（unigram）だけを用いた場合と、両方を用いた場合で実験を行った。このＳＶＲモデルでは、トピックごとに個別に学習を行い、各トピックの興味度の推定を行った。具体的には、ＳＶＲとしては、「scikit-learn」と呼ばれる機械学習ライブラリを用い、ガウシアンカーネルを用いた。
【００７４】
図６に示すように、ＮＤＣＧの計算に用いるＫ＝１〜２４のトピックについてＮＤＣＧの値をプロットした。図６から、本例の提案方法が、他の手法と比べて、すべてのＫにおいて、ＮＤＣＧが高いことが分かる。
本例の提案手法の次には、トピック別発話アテンションを適用しないで、事前学習を適用した比較例のＮＤＣＧが、良い結果だった。この結果から、トピック別発話アテンションはＮＤＣＧの向上に一定の役割を果たしている、つまり有効であると考えられる。
【００７５】
次に、本例の提案方法と事前学習なしの例を比較すると、本例の単語系列エンコーダ１、単語アテンション部２、トピック別発話アテンション部３および興味推定部４のすべてを適用しても、事前学習をしない場合には、本例の提案手法に比べて、ＮＤＣＧの値が大幅に少なくなることが分かった。すなわち、本例で提案した事前学習の手法は、性能向上に極めて有効であることが理解された。
【００７６】
また、本例の提案方法で用いたトピック別発話アテンションを行なったが、事前学習を行わなかった比較例と、トピック別発話アテンションおよび事前学習の両方とも行わなかった比較例では、あまりＮＤＣＧの変化が見られなかった。すなわち、トピック別発話アテンションは事前学習を行わないとＮＤＣＧの向上に貢献しないことが分かった。このことからも、本例で提案する事前学習の有効性を確認することができた。
【００７７】
結論としては、事前学習とトピック別発話アテンションを同時に適用した本例の提案手法を使うことで、トピック別発話アテンションがない場合と比べて性能が向上している。このことから、本例の提案手法のように、事前学習を行った上で、トピック別発話アテンションを適用することが重要であることを確認することができた。これは、トピック別分類の事前学習を行うことで、発話ベクトルにトピックの情報が埋め込まれるため、数８式のトピックベクトル「ｖｔｉ」が効率的に学習可能になったためと考えられる。
【００７８】
ＳＶＲに関しては、ユニグラム（unigram）とバイグラム（bigram）を用いる場合よりも、ユニグラム（unigram）を単独で用いた方が良いＮＤＣＧ性能を示した。しかし、本例の提案手法のようなニューラルネットワークベースの結果と比べるとはるかに劣る結果となった。
また、トピック頻度のベースラインは、Ｋ＝１のときに、ＳＶＲよりも高いＮＤＣＧを示した。これはユーザが積極的に発言したトピックに対して、興味ありと正しく推定できたためであると考えられる。このトピック頻度のベースラインも、本例の提案手法や他のニューラルネットワークベースと比較すると劣る結果となり、トピック頻度のベースラインは、Ｋ≧４では、すべての手法の中で最低のＮＤＣＧになった。
【００７９】
図７は、各手法によって出力された興味度と正解との間の平均二乗誤差を（ＭＳＥ）を計算して示した図である。ただし、図７では、興味度を直接出力しないトピック頻度ベースラインは除いている。図７に示すように、本例の提案手法では「0.533」と最も小さい値になっており、このことから、本例の提案手法によれば、適切な興味度の推定が可能であることが理解できる。言い換えると、本例の提案方法による平均二乗誤差（ＭＳＥ）が最小になっていることから、本例の提案手法は他の手法と比べて最高の性能を示したということができる。
【００８０】
一方、ニューラルネットワークベース手法の中では、「事前学習なし」が最も性能が低いことから、事前学習とトピック発話アテンションを同時に行うことが重要であることが、図７からも理解することができる。
【００８１】
＜トピック別発話アテンションの可視化による分析＞
上述したように、本例で提案した、トピック別発話アテンションと事前学習を同時に適応することにより、良い性能（ＮＤＣＧ）とＭＳＥが得られることが判明した。
そこで、次に、トピック別発話アテンションの分析を行うため、数８式で求められる発話文の重要度「αｊｔｉ」の値をトピック別に計算し、これを可視化した。図８は、事前学習を行った本例の提案手法によるトピック別発話アテンションを可視化したものである。これに対して、図９は事前学習を行わないで、トピック別発話アテンションを可視化したものである。図８、図９とも濃い色であるほど発話文の重要度「αｊｔｉ」が高いことを示している。
【００８２】
図８に示すように、本例の提案手法では、右側に記載した文（１）から（８）の内容に対応するトピックの重みが高い値（濃い色）になっていることが分かる。図９は、事前学習なしのトピック別発話アテンションを可視化したものである。図９では、発話文とトピックの重みとがほとんど関係していないことが分かる。例えば、文（５）は、興味推定にかかわる文ではないため、「事前学習あり」の図８では、すべてのトピックの重みが小さな値になっている。これに対して、図９では、文（５）に対して、映画、ゲーム、スポーツ、健康が比較的高い値になってしまっている。同様に文（７）、（８）でも、文の内容に関連が薄いトピックが大きな値をとっていることが分かる。
【００８３】
＜学習データ量の分析＞
ニューラルネットワークモデルの学習において、学習データの量は、モデルの性能を左右する極めて重要な要素の一つである。本例の提案方法を検証する実験（以下、「本実験」と称する）では、１６３名の被験者による４０８対話を収集したが、データとしては必ずしも十分な量ではなかった。したがって、学習データを追加することで、さらなる性能向上も期待できると考えられる。特に、学習データを追加するにあたり、１被験者当たりの発話数を増やすのか、もしくは被験者の数を増やすのかという収集方針の決定は、効率的なデータの収集という点で重要である。
【００８４】
そこで、本例の提案手法における学習データの量と性能の関係を分析するに当たって、学習データとして用いる被験者数および発話数を制限して１０分割交差検証を行い、性能の変化を分析した。なお、１０分割交差検証の際のテストデータとしての被験者数・発話数は制限していない。
【００８５】
図１０は、１０分割交差検証を行ったときのＮＤＣＧの結果を示したものである。図１０では、学習に使用する被験者数を全体の１０％、５０％、９０％に制限した結果と、１被験者当たりの発話数を、発話数全体の１０％、５０％、９０％に制限した結果と、全データの結果（図６の提案方法と同じ）を示した。
図１０から、発話数を制限するよりも、被験者数を制限した場合の方が、性能が落ちていることが分かる。特に、被験者数１０％のＮＤＣＧは、性能が著しく低下している。一方、発話数を制限した場合には、全データを使用した場合と比べ、性能が低下しているものの、その影響は比較的小さいことが分かった。
【００８６】
図１１は、被験者数と発話数の学習データへの使用率を１０％から１００％まで１０％刻みで変化させた場合の平均二乗誤差をプロットしたものである。図１１から分かるように、図１０のＮＤＣＧの結果と同様に、発話数を制限するよりも、被験者数を制限する方が、平均二乗誤差（ＭＳＥ）が大きくなっている。つまり、発話数を制限するよりも、被験者数を制限する方が、性能の低下が著しいことが分かる。
以上から、学習データを追加する場合には、１被験者当たりの発話数を増やすよりも、被験者数を増加させることが性能向上に寄与することが確認された。
【００８７】
以上説明したように、本実施の形態例では、雑話対話におけるユーザの発話を入力として、事前に設定したトピックに対するユーザの興味を、ニューラルネットワークモデルを使って推定する興味推定方法を提案した。この提案手法では、双方向ＧＲＵを用いた単語系列エンコーダと、単語アテンションによりユーザの発話をエンコードし、発話ベクトルの集合を得る。次に、この発話ベクトル集合からトピック別発話アテンションを用いて、推定対象の各トピックに対応するベクトルを生成する。そして最後に、このベクトルから対応するトピックに対する話者（ユーザ）の興味の度合いを推定する。
【００８８】
さらに、学習時には、単語系列エンコーダに対して、トピック別分類を行う事前学習を実施させてから、興味推定を行うようにした。
実験の結果は、すでに説明したとおり、本例の提案手法がベースライン手法に比べて、より的確に興味度を推定できることが確認された。また、本例で提案したトピック別発話アテンションとトピック別分類の事前学習を併用することが有効であることも確認された。
【００８９】
以上、本発明の実施の形態例について詳細に説明したが、本発明は、ここで説明した実施の形態例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨に逸脱しない限りにおいて、その他の応用例および変形例を含むことは言うまでもない。
【符号の説明】
【００９０】
１・・・単語系列エンコーダ、２・・・単語アテンション部、３・・・トピック別発話アテンション部、４・・・興味推定部、５・・・トピック別分類部
【図１】
2020053015.tif 000016
【図２】
2020053015.tif 000017
【図３】
2020053015.tif 000018
【図４】
2020053015.tif 000019
【図５】
2020053015.tif 000020
【図６】
2020053015.tif 000021
【図７】
2020053015.tif 000022
【図８】
2020053015.tif 000023
【図９】
2020053015.tif 000024
【図１０】
2020053015.tif 000025
【図１１】
2020053015.tif 000026