IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人東北大学の特許一覧

特開2024-117996応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム
<>
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図1
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図2
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図3
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図4
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図5
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図6
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図7
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図8
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図9
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図10
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図11
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図12
  • 特開-応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024117996
(43)【公開日】2024-08-30
(54)【発明の名称】応答文生成装置、応答変換学習装置、データベース作成装置、応答文生成方法およびプログラム
(51)【国際特許分類】
   G06F 40/56 20200101AFI20240823BHJP
   G06F 40/30 20200101ALI20240823BHJP
   G06F 40/44 20200101ALI20240823BHJP
   G06F 16/90 20190101ALI20240823BHJP
【FI】
G06F40/56
G06F40/30
G06F40/44
G06F16/90 100
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023024133
(22)【出願日】2023-02-20
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)公開日 2022年2月23日(一般社団法人日本音響学会2022年春季研究発表会・予稿日)(開催日:2022年3月9日~2022年3月11日 オンライン開催) 刊行物、集会名、開催場所 一般社団法人日本音響学会2022年春季研究発表会 音響学会春季講演論文集 一般社団法人日本音響学会2022年春季研究発表会 https://acoustics.jp/annualmeeting/past-meetings/ (2)公開日 2022年11月7日(APSIPA ASC2022)(開催日:2022年11月7日~2022年11月10日 開催) 集会名、開催場所 APSIPA ASC2022 Empress Convention Center,199/42 Chang Klan Road,Chiang Mai Thailand 50100
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】千葉 祐弥
(72)【発明者】
【氏名】伊藤 彰則
(72)【発明者】
【氏名】能勢 隆
(72)【発明者】
【氏名】矢作 凌大
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091CA12
5B091CA21
5B091EA01
5B175DA01
5B175EA01
5B175HB03
(57)【要約】
【課題】入力された発話文と予め用意された用例文との意味的差分を精緻にとらえた応答文を生成する。
【解決手段】応答選択部10は、用例応答データベースD1の中から、入力発話文xに基づいて所定の条件を満たす用例文x’を決定し、決定した用例文x’とこれに対応する応答文y’とを選択する。エンコーダ21は、入力発話文x、選択された用例文x’、及び選択された応答文y’を、入力発話意味ベクトル^x、用例意味ベクトル^x’、及び応答意味ベクトル^y’へと変換する。意味差分ベクトル生成部は、入力発話意味ベクトル^xと用例意味ベクトル^x’との差分から意味差分ベクトル^wを生成する。デコーダ23は、意味差分ベクトル^wと応答意味ベクトル^y’とを加算して、入力発話文xと選択された用例文x’との意味の違いが反映された応答ベクトル^vへと変換し、応答ベクトル^vから変換後応答文vを生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースの中から、入力されたユーザの発話である入力発話文に基づいて所定の条件を満たす用例文を決定し、決定した前記用例文とこれに対応する前記応答文とを選択する応答選択部と、
前記入力発話文、選択された前記用例文、及び選択された前記応答文を、各文の意味ベクトルである、入力発話意味ベクトル、用例意味ベクトル、及び応答意味ベクトルへと変換するエンコーダと、
前記入力発話意味ベクトルと前記用例意味ベクトルとの差分から意味差分ベクトルを生成する意味差分ベクトル生成部と、
前記意味差分ベクトルと前記応答意味ベクトルとを加算して、前記入力発話文と選択された前記用例文との意味の違いが反映された応答ベクトルへと変換し、前記応答ベクトルから前記入力発話文に対する応答文である変換後応答文を生成する、デコーダと、
を有する応答文生成装置。
【請求項2】
一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースと、一組が発話文とこの発話文に対応する応答文とからなる複数の組を有し、夫々の組が前記用例応答データベースのいずれかの組と所定の類似度を満たした疑似用例応答データベースと、を用いた応答変換学習装置であって、
前記用例応答データベースから入力された一組の用例文及び応答文と、この一組と前記所定の類似度を満たして前記疑似用例応答データベースから入力された発話文である入力発話文とを、各文の意味ベクトルである、用例意味ベクトル、応答意味ベクトル、及び入力発話意味ベクトルへと変換する、第1パラメータを使用するエンコーダと、
前記入力発話意味ベクトルと前記用例意味ベクトルとの差分から意味差分ベクトルを生成する意味差分ベクトル生成部と、
前記意味差分ベクトルと前記応答意味ベクトルとを加算して、前記入力発話文と入力された前記用例文との意味の違いが反映された応答ベクトルへと変換し、前記応答ベクトルから前記入力発話文に対する応答文である変換後応答文を生成する、第2パラメータを使用する学習用デコーダと、
前記変換後応答文と、前記入力発話文と対応する応答文との誤差が所定の条件に満たない場合は、前記第2パラメータを更新し、前記誤差が所定の条件を満たす場合は、直前に使用している前記第2パラメータを学習済パラメータとして出力する、パラメータ更新部と、
を有する応答変換学習装置。
【請求項3】
M,N(M>N)はそれぞれ自然数とし、(S ,S )は学習用対話コーパスにおけるi(i=1,2,…M)番目の発話文と応答文とし、(T ,T )は前記用例応答データベースにおけるj(j=1,2,…N)番目の用例文と応答文とし、sim(x,y)はベクトルxとベクトルyとの類似度とし、θsimは予め定めた閾値とした場合、
前記疑似用例応答データベースは、次式
【数7】

【数8】

の双方の式の条件を具備した発話文と応答文とが前記学習用対話コーパスから抽出して作成されている、請求項2に記載の応答変換学習装置。
【請求項4】
一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースと、一組が発話文とこの発話文に対応する応答文とからなり、前記用例応答データベースが有する組数よりも多くの組数を有する学習用対話コーパスとを使用するものであって、
M,N(M>N)はそれぞれ自然数とし、(S ,S )は前記学習用対話コーパスにおけるi(i=1,2,…M)番目の発話文と応答文とし、(T ,T )は前記用例応答データベースにおけるj(j=1,2,…N)番目の用例文と応答文とし、sim(x,y)はベクトルxとベクトルyの類似度とし、θsimは閾値とした場合、
前記用例応答データベースから入力された用例文と前記学習用対話コーパスから入力された発話文との第1類似度sim(S ,T )と、前記用例応答データベースから入力された応答と前記学習用対話コーパスから入力された応答文との第2類似度sim(S ,T )とを算出する類似度計算部と、
算出された前記第1類似度及び第2類似度が、次式
【数9】

【数10】

の双方の式の条件を具備する前記発話文と前記応答文との組を前記学習用対話コーパスから抽出してデータベースを生成する、データベース生成部と、
を有する、
データベース作成装置。
【請求項5】
一組が用例文と該用例文に対応する応答文とからなる用例応答ペアを複数有する用例応答データベースを用いる応答文生成装置であって、
ユーザの発話である入力発話文が入力された場合に、前記用例応答データベースの中から、前記入力発話文に基づいて所定の条件を満たす用例応答ペアを選択する応答選択部と、
入力された前記入力発話文、選択された前記用例応答ペアを用いて、前記入力発話文に対する応答文である変換後応答文を所定のパラメータに基づいて生成する応答変換部と、
一組が発話文と該発話文に対応する応答文からなる発話応答ペアを複数有する学習用対話コーパスから、前記用例応答データベースに含まれる用例応答ペアとの類似度が所定の条件を満たす前記発話応答ペアを抽出する類似度計算部と、
抽出された前記発話応答ペアに含まれる発話文を前記入力された入力発話文とし、前記類似度計算部による抽出の際に用いた前記用例応答データベースの用例応答ペアを選択された前記用例応答ペアとして、前記応答変換部に変換後応答文を生成させ、該変換後応答文と前記発話文に対応する応答文との誤差に基づいて前記パラメータを更新するパラメータ更新部と、
を有する応答文生成装置。
【請求項6】
応答選択部、エンコーダ、意味差分ベクトル生成部、及びデコーダを有した応答文生成装置が行う応答文生成方法であって、
前記応答選択部が、一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースの中から、入力されたユーザの発話である入力発話文に基づいて所定の条件を満たす用例文を決定し、決定した前記用例文とこれに対応する前記応答文とを選択し、
前記エンコーダが、前記入力発話文、選択された前記用例文、及び選択された前記応答文を、各文の意味ベクトルである、入力発話意味ベクトル、用例意味ベクトル、及び応答意味ベクトルへと変換し、
前記意味差分ベクトル生成部が、前記入力発話意味ベクトルと前記用例意味ベクトルとの差分から意味差分ベクトルを生成し、
前記デコーダが、前記意味差分ベクトルと前記応答意味ベクトルとを加算して、前記入力発話文と選択された前記用例文との意味の違いが反映された応答ベクトルへと変換し、前記応答ベクトルから前記入力発話に対する応答文である変換後応答文を生成する、
応答文生成方法。
【請求項7】
請求項1または請求項5に記載の応答文生成装置をコンピュータに機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自然言語処理、及び自動応答技術に関するものであり、特に、想定されるユーザの入力(用例文)とそれに対応する応答文との組を複数格納した用例応答データベースに基づいて対話を行う用例応答ベースの対話システムにおける応答文生成に関する。
【背景技術】
【0002】
用例応答ベースの対話システムは単純かつ頑健であるため広く普及している。従来の用例応答ベースの対話技術としては、ニューラルネットワークのエンコーダ・デコーダモデルに基づく応答変換器を大規模な言語コーパス(汎用的な言語データ)を用いて自己符号化器として学習することにより、用例文として想定していない発話文に対しても柔軟に対応して応答文を生成するものがあった(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】矢作凌大,能勢隆,伊藤彰則,用例ベース対話システムのための文ベクトルを用いた柔軟な応答生成手法の検討,音響学秋季研究発表会講演論文集, pp.809-812, 2021
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、非特許文献1の技術は、汎用的な言語データから学習された自己符号化器であり、入力された発話文と予め用意された用例文との意味的差分を精緻にとらえた応答文を生成することができないという課題があった。
【0005】
そこで、本開示は、上記課題を解決するためになされたものであり、入力された発話文と予め用意された用例文との意味的差分を精緻にとらえた応答文を生成する技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本開示の一態様の応答文生成装置は、応答選択部と、エンコーダと、意味差分ベクトル生成部と、デコーダとを有する。応答選択部は、一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースの中から、入力されたユーザの発話である入力発話文に基づいて所定の条件を満たす用例文を決定し、決定した用例文とこれに対応する応答文とを選択する。エンコーダは、入力発話文、選択された用例文、及び選択された応答文を、各文の意味ベクトルである、入力発話意味ベクトル、用例意味ベクトル、及び応答意味ベクトルへと変換する。意味差分ベクトル生成部は、入力発話意味ベクトルと用例意味ベクトルとの差分から意味差分ベクトルを生成する。デコーダは、意味差分ベクトルと応答意味ベクトルとを加算して、入力発話文と選択された用例文との意味の違いが反映された応答ベクトルへと変換し、応答ベクトルから入力発話文に対する応答文である変換後応答文を生成する。
【発明の効果】
【0007】
本開示によれば、応答文生成装置1の応答変換部20は、学習用対話コーパスから用例応答データベースに類似した発話文と応答文との組を抽出した疑似用例応答データベースを作成し、この疑似用例応答データベースを用いてニューラルネットワークのパラメータを更新する学習(ファインチューニング)が行われている。したがって、入力された発話文と予め用意された用例文との意味的差分を精緻にとらえた応答文を生成することができる。
【図面の簡単な説明】
【0008】
図1図1は本開示の実施形態に係る応答文生成装置の機能構成例を示した図である。
図2図2は本開示の実施形態に係る応答文生成方法の処理フロー例を示した図である。
図3図3は本開示の実施形態に係る応答変換学習装置の機能構成例を示した図である。
図4図4は本開示の実施形態に係る応答変換学習方法の処理フロー例を示した図である。
図5図5は本開示の実施形態に係るデータベース作成装置の機能構成例を示した図である。
図6図6は本開示の実施形態に係るデータベース作成方法の処理フロー例を示した図である。
図7図7は本開示の実施形態に係る自己符号化学習装置の機能構成例を示した図である。
図8図8は本開示の実施形態に係る自己符号化学習方法の処理フロー例を示した図である。
図9図9は本開示の実施形態の変形例に係る応答文生成装置の機能構成例において、ユーザの発話である入力発話文xが入力された場合を示した図である。
図10図10は本開示の実施形態の変形例に係る応答文生成装置における応答文生成方法の処理フロー例を示した図である。
図11図11は本開示の実施形態の変形例に係る応答文生成装置の機能構成例において、学習用対話コーパスD3から発話文S と、発話文S に対応する応答文S とが入力された場合を示した図である。
図12図12は本開示の実施形態の変形例に係る応答変換部20aの学習方法の処理フロー例を示した図である。
図13図13はコンピュータの機能構成を例示する図である。
【発明を実施するための形態】
【0009】
<文字表記>
文中で下付き文字と一緒に使用する記号「e」(上付き文字e)、及び「」(上付き文字r)は、本来直後の下付文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該下付文字の直後に記載する。数式中においてはこれらの記号は本来の位置、すなわち下付文字の真上に記述している。例えば、「S 」は数式中では次式で表される。
【数1】

文中で使用する記号「^」(上付きハット)は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。数式中においてはこれらの記号は本来の位置、すなわち文字の真上に記述している。例えば、「^v」は数式中では次式で表される。
【数2】

以下、図を用いて本開示の実施形態について詳細に説明する。また、以下、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0010】
[応答文生成装置]
本開示の実施形態に係る応答文生成装置1は、図1に示すように、応答選択部10と、応答変換部20とを有する。応答変換部20はニューラルネットワークであり、エンコーダ21と、意味差分ベクトル生成部22と、デコーダ23とを有する。応答文生成装置1は、用例応答データベースD1と学習済パラメータデータベースP2とを使用するが、これらは、応答文生成装置1内に設けてもよいし、応答文生成装置1からアクセスできるのであれば、少なくとも1つを応答文生成装置1とは別に設けてもよい。応答文生成装置1は、入力された入力発話文xから、入力発話文xに対応する応答文である変換後応答文vを生成して出力する装置である。応答文生成装置1が、図2に示した処理フローを実施することにより本実施形態の応答文生成方法を行う。
【0011】
応答選択部10は、一組が用例文とこの用例文に対応する応答文とからなる複数の組を有した用例応答データベースD1の中から、入力されたユーザの発話である入力発話文xとの類似度が最大である用例文x’を決定し、決定した用例文x’とこれに対応する応答文y’とを選択してエンコーダ21に出力する(ステップS10)。なお、入力発話文xは、応答選択部10とエンコーダ21とに入力される。この実現方法としては、例えば応答選択部10の前の処理部として入力部を設け、この入力部が入力発話文xを受信し、受信した入力発話文xを応答選択部10とエンコーダ21との双方に出力するように構成してもよい。あるいは、応答選択部10が、用例文x’と応答文y’に加えて、入力発話文xもエンコーダ21に出力するように構成してもよい。ここで、「類似度が最大である用例文x’」とは、応答文生成装置1が、入力された入力発話文xと予め用意された用例文との意味的差分を精緻にとらえた変換後応答文vが生成できればよいことから、厳密な意味での最大の類似度に限定せず、例えば所定閾値を満たした類似度を確保するなど、所定の条件を満たしていれば、当該用例文を用例文x’と選定するように構成してもよい。
【0012】
エンコーダ21は、入力された入力発話文x、選択された用例文x’、及び選択された応答文y’を、各文の意味ベクトルである、入力発話意味ベクトル^x、用例意味ベクトル^x’、及び応答意味ベクトル^y’へと変換し、入力発話意味ベクトル^xと用例意味ベクトル^x’とを意味差分ベクトル生成部22へ出力し、応答意味ベクトル^y’をデコーダ23へ出力する(ステップS21)。
意味差分ベクトル生成部22は、入力発話意味ベクトル^xと用例意味ベクトル^x’との差分から意味差分ベクトル^wを生成し、デコーダ23へ出力する(ステップS22)。
【0013】
デコーダ23は、意味差分ベクトル^wと応答意味ベクトル^y’とを加算して、入力発話文xと選択された用例文x’との意味の違いが反映された応答ベクトル^vへと変換する(ステップS23-1)。次に、デコーダ23は、応答ベクトル^vから、入力発話文xに対する応答文である変換後応答文vを生成して応答文生成装置1の出力とする(ステップS23-2)。
【0014】
本開示の応答文生成装置1を使用することにより、入力された入力発話文xと予め用意された用例文x’との意味的差分を精緻にとらえた応答文を生成することができる。なお、図1に示した応答変換部20は、一例としてTransformerベースのエンコーダ・デコーダモデルが挙げられるが、文を意味ベクトルに変換するエンコーダと、意味ベクトルから文を生成するデコーダとを有するニューラルネットワークであれば他のモデルであってもよい。
【0015】
[応答変換学習装置]
上述の応答変換部20が行う処理は、応答変換学習装置300を用いて学習されたものである。本開示の実施形態に係る応答変換学習装置300は、図3に示すように、応答変換部310と、パラメータ更新部320とを有する。応答変換部310はニューラルネットワークであり、エンコーダ311と、意味差分ベクトル生成部312と、デコーダ313とを有する。応答変換学習装置300は、用例応答データベースD1、疑似用例応答データベースD2、第1パラメータP31、及び第2パラメータP’32を使用するが、これらは、応答変換学習装置300内に設けるように構成してもよいし、応答変換学習装置300からアクセスできるのであれば、少なくとも1つを応答変換学習装置300とは別に設けるように構成してもよい。応答変換学習装置300は、用例応答データベースD1から入力された用例文T 及び応答文T と、疑似用例応答データベースD2から入力された発話文S 及び応答文S とから、応答変換部310を学習させて、学習済パラメータデータベースP2を生成する装置である。応答変換学習装置300が、図4に示した処理フローを実施することにより本実施形態の応答変換学習方法を行う。
【0016】
応答変換学習装置300は、一組が用例文T とこの用例文T に対応する応答文T とからなる複数の組を有した用例応答データベースD1と、一組が発話文S とこの発話文S に対応する応答文S とからなる複数の組を有し、夫々の組が用例応答データベースD1のいずれかの組と後述する式(3)及び(4)を満たした疑似用例応答データベースD2とを用いる。疑似用例応答データベースD2は、後述するデータベース作成装置400で作成されたデータベースである。
【0017】
ここで、M,N,Q(M>N,M>Q)をそれぞれ自然数とした場合、上記の(T ,T )は、用例応答データベースD1におけるj(j=1,2,…N)番目の用例文と応答文とを示すものとする。また、上記の(S ,S )は、後述する学習用対話コーパスD3におけるi(i=1,2,…M)番目の発話文と応答文において、後述する式(3)及び(4)を満たした組を、便宜上、番号の再割付けをしたk(k=1,2,…Q)番目の発話文と応答文とを示すものとする。
【0018】
エンコーダ311は、第1パラメータP31を使用して、用例応答データベースD1から入力された一組の用例文T 及び応答文T と、この一組と後述する式(3)及び(4)を満たしたデータが格納されている疑似用例応答データベースD2から入力された発話文である発話文S とを、各文の意味ベクトルである、用例意味ベクトル^T 、応答意味ベクトル^T 、及び入力発話意味ベクトル^S へと変換し、用例意味ベクトル^T と入力発話意味ベクトル^S とを意味差分ベクトル生成部312へ出力し、応答意味ベクトル^T をデコーダ313へ出力する(ステップS311)。ここで、用例応答データベースD1から入力される用例文T と、疑似用例応答データベースD2から入力される発話文S (即ち、学習用対話コーパスD3にあった発話文S )とは、例えば後述する式(3)の条件を満たすなど、所定の類似度を満たすものが入力されるように、応答変換学習装置300を構成しておくことが好ましい。
【0019】
エンコーダ311が使用する第1パラメータP31は、例えば、後述する自己符号化学習装置500において学習されたものであるが、予め学習された学習済のパラメータを用いてもよい。なお、発話文S に対応する応答文S は、疑似用例応答データベースD2からパラメータ更新部320へ出力される。
【0020】
意味差分ベクトル生成部312は、入力発話意味ベクトル^S と用例意味ベクトル^T との差分から意味差分ベクトル^wを生成し、デコーダ313へ出力する(ステップS312)。
【0021】
デコーダ313は、第2パラメータP’32を使用して、意味差分ベクトル^wと応答意味ベクトル^T とを加算して、入力された発話文S と入力された用例文T との意味の違いが反映された応答ベクトル^vへと変換する(ステップS313-1)。次に、デコーダ313は、応答ベクトル^vから、発話文S に対応する応答文である変換後応答文vを生成してパラメータ更新部320へ出力する(ステップS313-2)。デコーダ313が初期値として使用する第2パラメータP’32は、例えば、後述する自己符号化学習装置500で学習されたものであるが、予め学習された学習済のパラメータを用いてもよい。
【0022】
なお、ステップS313-1における応答ベクトル^vの作成方法としては、様々な方法が考えられる。例えば、下記式(1)に示すように、意味差分ベクトル^w(即ち、入力発話意味ベクトル^S と用例意味ベクトル^T との差分)に対して重みGを掛けることで意味差分情報を過剰に反映させる方法が挙げられる。
【数3】
【0023】
他の例としては、下記式(2)に示すように、意味差分ベクトル^w(入力発話意味ベクトル^S と用例意味ベクトル^T との差分)と応答意味ベクトル^T の重みWをニューラルネットワークによって学習させる方法が挙げられる。ここで、「;」は2つのベクトルを繋げることを示している。
【数4】
【0024】
パラメータ更新部320は、変換後応答文vと、疑似用例応答データベースD2から入力された応答文S との誤差が学習の終了条件を満たさない場合は、予め定めた所定のルールに基づいて第2パラメータP’32を更新し(ステップS320-1)、用例応答データベースD1及び疑似用例応答データベースD2からの次のデータに基づいて上述したステップS311からの処理を繰り返して学習を継続する。ここで、ステップS320-1の更新手法としては、例えば、誤差をコスト関数(誤差関数)で定義し、このコスト関数が最小化するようにパラメータを構成していくこと等が挙げられる。この学習を全ての発話文S 、応答文S に対して行う。但し、学習する回数の上限を決めるなど所定のルールを設けておいてもよい。
【0025】
上述の誤差が学習の終了条件を満たす場合は、第1パラメータP31、及び直前に使用している第2パラメータ(第2パラメータP32)を学習済パラメータとして出力し、学習済パラメータデータベースP2が生成される(ステップS320-2)。上述の学習により学習済モデルとなった応答変換部310は、応答文生成装置1における応答変換部20と同等の機能を有することとなる。なお、以下、この応答変換学習装置300での学習を「ファインチューニング」ともいう。
【0026】
[データベース作成装置]
上述の疑似用例応答データベースD2は、データベース作成装置400を用いて作成されたデータベースである。本開示の実施形態に係るデータベース作成装置400は、図5に示すように、類似度計算部410と、データベース生成部420とを有する。データベース作成装置400は、用例応答データベースD1と、学習用対話コーパスD3とを使用するが、これらは、データベース作成装置400内に設けるように構成してもよいし、データベース作成装置400からアクセスできるのであれば、少なくとも1つをデータベース作成装置400とは別に設けるように構成してもよい。データベース作成装置400は、用例応答データベースD1から入力された用例文T 及び応答文T と、学習用対話コーパスD3から入力された発話文S 及び応答文S との間で類似度を算出し、所定の類似度を満たした文の組み合わせを抽出して疑似用例応答データベースD2を作成する装置である。データベース作成装置400が、図6に示した処理フローを実施することにより本実施形態のデータベース作成方法を行う。
【0027】
学習用対話コーパスD3は、一組が発話文S と、発話文S に対応する応答文S とからなり、用例応答データベースD1が有する組数よりも多くの組数を有するデータベースである。学習用対話コーパスD3は、例えばTweet-replyペアや自然会話の書き起こしなどの会話データである。
【0028】
M,N(M>N)をそれぞれ自然数とした場合、(S ,S )は学習用対話コーパスD3におけるi(i=1,2,…M)番目の発話文と応答文を示すものとする。sim(x,y)はベクトルxとベクトルyの類似度とする。θsimは予め定めた所定の閾値とする。なお、文の類似度の算出は、テキスト間の類似度を表現するものであれば、いずれの手法でもよい。一例としてはコサイン類似度が挙げられる。文ベクトルは文に含まれる情報を所定次元のベクトルで表現したものであれば、いずれの手法でもよい。一例としては、Sentence-BERTなどの変換モデルが挙げられる。
【0029】
類似度計算部410は、学習用対話コーパスD3から入力された発話文S と用例応答データベースD1から入力された用例文T との類似度である第1類似度sim(S ,T )を算出する。また、類似度計算部410は、学習用対話コーパスD3から入力された応答文S と用例応答データベースD1から入力された応答文T との類似度である第2類似度sim(S ,T )を算出する(ステップS410)。ステップS410により、最大M×N通りの類似度を算出することとなるが、例えば学習用対話コーパスD3のデータ数の規模により予め算出する個数の上限を決めるなど所定のルールを設けておいてもよい。
データベース生成部420は、算出された第1類似度、及び第2類似度を用いて、下記式(3)及び式(4)の双方の条件を具備する組のデータ(S ,S )を学習用対話コーパスD3から抽出して疑似用例応答データベースD2を作成する(ステップS420)。
【数5】

【数6】
【0030】
上述したデータベース作成装置400の処理によって疑似用例応答データベースD2を作成することにより、用例応答データベースD1の組(用例文T 、応答文T )に類似するものの、意味的に多少異なる文の組を密に収集することができる。疑似用例応答データベースD2の作成により、応答変換学習装置300において、発話文S と用例文T との意味の差異を精緻にとらえることが可能な応答変換器の学習が可能になる。即ち、元々の用例応答データベースD1に近い意味を持ちつつ、ユーザの発話意図に対して、より近い意味を有する変換後応答文vを生成できるようになる。
【0031】
また、疑似用例応答データベースD2の作成に当たり、学習用対話コーパスD3の種類として特定のものを選定することにより、心理状態や心的態度への応用が可能となる。
【0032】
例えば、学習用対話コーパスD3に、JEmpatheticDialoguesのような感情対話コーパスを用いて疑似用例応答データベースD2を作成すれば、この疑似用例応答データベースD2を用いて応答変換学習装置300での学習を行うことにより、感情などの心理状態への応用が可能となる。一例として、楽しい感情の発話文と用例文とから、楽しい感情を表現するベクトルが抽出可能となり、入力発話文に合わせたポジティブな変換後応答文を生成できる。
【0033】
また、学習用対話コーパスD3に、例えば発話スタイルコーパスを用いて疑似用例応答データベースD2を作成すれば、この疑似用例応答データベースD2を用いて応答変換学習装置300で学習を行うことにより、親しみなどの心的態度への応用が可能となる。一例として、会話相手と親しい関係がある場合、親しげな変換後応答文を生成できるなど、会話相手との関係に対して、より適した応答文を生成することができる。
【0034】
[自己符号化学習装置]
上述した応答変換学習装置300が用いる第1パラメータP31、及び第2パラメータP’32は、自己符号化学習装置500を用いて学習された結果、出力されたものである。本開示の実施形態に係る自己符号化学習装置500は、図7に示すように、自己符号化部510とパラメータ更新部520とを有する。自己符号化部510はニューラルネットワークであり、エンコーダ511とデコーダ512とを有する。自己符号化学習装置500は、言語データベースD4と、第1学習用パラメータP’51と、第2学習用パラメータP’52とを使用するが、これらは、自己符号化学習装置500内に設けるように構成してもよいし、自己符号化学習装置500からアクセスできるのであれば、少なくとも1つを自己符号化学習装置500とは別に設けるように構成してもよい。
【0035】
自己符号化学習装置500は、自己符号化部510により、言語データベースD4から入力された文zを復元文z’へと変換するための学習をさせて、自己符号化学習装置500における学習済パラメータである、第1パラメータP31と第2パラメータP’32とを生成する装置である。自己符号化学習装置500が、図8に示した処理フローを実施することにより本実施形態の自己符号化学習方法を行う。なお、自己符号化学習装置500が使用する言語データベースD4は、例えばWikipedia(登録商標)の記事データなど、比較的大規模な言語データである。
【0036】
エンコーダ511は、第1学習用パラメータP’51を使用して、言語データベースD4から入力された文zを圧縮(エンコード)してデコーダ512に出力する(ステップS511)。
【0037】
デコーダ512は、第2学習用パラメータP’52を使用して、入力された圧縮された文zを復元して復元文z’を生成する(ステップS512)。
【0038】
パラメータ更新部520は、文zと復元文z’との誤差が学習の終了条件を満たさない場合は、予め定めた所定のルールに基づいて第1学習用パラメータP’51、及び第2学習用パラメータP’52を更新する。次に、パラメータ更新部520は、言語データベースD4からの次のデータについて、上記ステップS511からの処理を繰り返して行わせる(ステップS520-1)。ここで、ステップS520-1の更新手法としては、例えば、上記誤差をコスト関数(誤差関数)で定義し、このコスト関数が最小化するようにパラメータを構成していくこと等が挙げられる。学習は、言語データベースD4が有する全データについて実施してもよいが、学習する回数の上限を決めるなど所定のルールを設けておいてもよい。
【0039】
パラメータ更新部520は、上述の誤差が学習の終了条件を満たした場合は、直前に使用していた第1学習用パラメータP’51と、第2学習用パラメータP’52とを、学習済パラメータである第1パラメータP31、及び第2パラメータP’32として出力する(ステップS520-2)。
【0040】
上述したように、本開示の応答文生成装置1は応答変換部20を有する。応答変換部20は、応答変換学習装置300によってファインチューニングされた学習済の応答変換部310と同等の機能を有する。応答変換部310は、用例応答データベースD1をベースとして、上述した式(3)(4)で示された所定の類似度を満たしたデータベースである疑似用例応答データベースD2を用いてファインチューニングされたものである。即ち、応答文生成装置1の応答変換部20は、疑似用例応答データベースD2を用いてファインチューニングが行われている。したがって、入力された発話文(入力発話文x)と、予め用意された用例文(応答文y’)の意味的差分を精緻にとらえた応答文(変換後応答文v)を生成することができる。
【0041】
[応答文生成装置の変形例]
上述した応答文生成装置1は、以下に説明する応答文生成装置2のように構成してもよい。本開示の実施形態の変形例に係る応答文生成装置2は、図9に示すように、応答選択部10aと、応答変換部20aと、学習部30とを有する。応答変換部20aはニューラルネットワークであり、エンコーダ21aと、意味差分ベクトル生成部22aと、デコーダ23aとを有する。応答文生成装置2は、用例応答データベースD1と、学習用対話コーパスD3(図11参照)と、パラメータデータベースPa2とを使用するが、これらは応答文生成装置2内に設けるように構成してもよいし、応答文生成装置2からアクセスできるのであれば、少なくとも1つを応答文生成装置2とは別に設けるように構成してもよい。
【0042】
応答文生成装置2は、一つの機能として、入力された入力発話文xから、入力発話文xに対応する応答文である変換後応答文vを出力する機能を有する。なお、パラメータデータベースPa2は、少なくとも第1パラメータP31と、第2パラメータP’32とを有し、学習によって、第2パラメータP32が格納されることとなるデータベースである。応答文生成装置2は、図9に示したように、ユーザの発話である入力発話文xが入力された場合には、図10に示した処理フローを実施することにより、入力発話文xに対応する応答文である変換後応答文vを出力する。
【0043】
応答選択部10aは、上述のステップS10と同等の処理を行う(ステップS10a)。エンコーダ21aは、上述のステップS21と同等の処理を行う(ステップS21a)。意味差分ベクトル生成部22aは、上述のステップS22と同等の処理を行う(ステップS22a)。デコーダ23aは、上述のステップS23-1及びステップS23-2と同等の処理を行う(ステップS23a-1,S23a-2)。
【0044】
上記機能に加え、応答文生成装置2は、もう一つの機能として、応答変換部20aを学習させ、パラメータデータベースPa2を更新する機能を有する。応答文生成装置2は、図11に示したように、学習用対話コーパスD3から発話文S と、発話文S に対応する応答文S とが入力された場合には、図12に示した処理フローを実施することにより、応答変換部20aを学習させて、パラメータデータベースPa2を更新する。
【0045】
類似度計算部410aが、学習用対話コーパスD3から入力された発話文S と用例応答データベースD1から入力された用例文T との第1類似度sim(S ,T )と、学習用対話コーパスD3から入力された応答文S と用例応答データベースD1から入力された応答文T との第2類似度sim(S ,T )とを算出し、これらの算出結果と、発話文S 及び応答文S とをパラメータ更新部31に出力する(ステップS410a)。
【0046】
パラメータ更新部31は、算出された第1類似度及び第2類似度が、上述の式(3)と式(4)の少なくとも一方の条件を具備しない場合には、このループでの処理を終了し、次の学習用対話コーパスD3からのデータに基づいて上述したステップS410aからの処理を開始する。
【0047】
パラメータ更新部31は、算出された第1類似度及び第2類似度が、上述の式(3)及び式(4)の双方の条件を満たす場合には、エンコーダ21aに対して、ステップS410aにて類似度の算出の対象となった用例応答データベースD1の用例文T とこれに対応する応答文T 、及び発話文S を、第1パラメータP31を使用して、用例意味ベクトル^T 、応答意味ベクトル^T 、及び入力発話意味ベクトル^S へと変換させる。また、パラメータ更新部31は、エンコーダ21aに対して、入力発話意味ベクトル^S と用例意味ベクトル^T とを意味差分ベクトル生成部22aへ出力させ、応答意味ベクトル^T をデコーダ23aへ出力させる(ステップS21a)。ここで、発話文Sk ,応答文Sk は、上述の式(3)と式(4)の双方を満たした発話文S ,応答文S の組を示す。なお、上述の処理をすることにより、エンコーダ21aに入力される用例文T と発話文S (即ち、学習用対話コーパスD3にあった発話文S )とは、上述の式(3)の条件を満たすものが入力されることとなる。
【0048】
パラメータ更新部31は、意味差分ベクトル生成部22aに対して、ステップS21aにより変換された入力発話意味ベクトル^S と用例意味ベクトル^T との差分から意味差分ベクトル^wを生成させ、デコーダ23aへ出力させる(ステップS22a)。
【0049】
パラメータ更新部31は、デコーダ23aに対して、第2パラメータP’32を使用して、ステップS21aによる応答意味ベクトル^T とステップS22aによる意味差分ベクトル^wとの加算から、発話文S と用例文T との意味の違いが反映された応答ベクトル^vへと変換させ(ステップS23a-1)、かつ、応答ベクトル^vから、発話文S に対する応答文である変換後応答文vを生成させて、パラメータ更新部31に出力させる(ステップS23a-2)。
【0050】
パラメータ更新部31は、変換後応答文vと入力された学習用対話コーパスD3からの応答文S との誤差が所定の学習の終了条件を満たさない場合は、第2パラメータP’32を更新し(ステップS31-1)、次の学習用対話コーパスD3からのデータに基づいて上述したステップS410aからの処理を行うことで学習を繰り返す。
【0051】
上記誤差が学習の終了条件を満たす場合は、直前に使用している第2パラメータP’32を学習済パラメータである第2パラメータP32として、パラメータデータベースPa2に出力する(ステップS31-2)。
【0052】
上述した応答文生成装置2によっても、入力された発話文と、予め用意された用例文の意味的差分を精緻にとらえることができる。また、応答文生成装置2は、上述のような構成により、応答変換の学習機能も併せて有することとなる。
【0053】
[プログラム、記録媒体]
上述の各種の処理は、図13に示すコンピュータ2000の記録部2020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040、表示部2050などに動作させることで実施できる。
【0054】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0055】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0056】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0057】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0058】
1 応答文生成装置 2 応答文生成装置
10 応答選択部 21、311、511 エンコーダ
22 意味差分ベクトル生成部 30 学習部
312 意味差分ベクトル生成部 300 応答変換学習装置
20,20a,310 応答変換部 23,23a,313,512 デコーダ
31,320,520 パラメータ更新部
400 データベース作成装置 410 類似度計算部
420 データベース生成部 500 自己符号化学習装置
510 自己符号化部 D1 用例応答データベース
D2 疑似用例応答データベース D3 学習用対話コーパス
D4 言語データベース P31 第1パラメータ
P32,P’32 第2パラメータ P’51 第1学習用パラメータ
P’52 第2学習用パラメータ P2 学習済パラメータデータベース
Pa2 パラメータデータベース S ,S 発話文
,S ,T 応答文 ^S ,^x 入力発話意味ベクトル
,x’ 用例文 ^T ,^x’ 用例意味ベクトル
^T ,^y’応答意味ベクトル v 変換後応答文
^v 応答ベクトル ^w 意味差分ベクトル
x 入力発話文 y’ 応答文
z 文 z’ 復元文
θsim 閾値
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13