特許第6205039号(P6205039)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヤフー株式会社の特許一覧

特許6205039情報処理装置、情報処理方法、およびプログラム
<>
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000002
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000003
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000004
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000005
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000006
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000007
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000008
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000009
  • 特許6205039-情報処理装置、情報処理方法、およびプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6205039
(24)【登録日】2017年9月8日
(45)【発行日】2017年9月27日
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20170914BHJP
【FI】
   G06F17/30 180A
   G06F17/30 330C
   G06F17/30 350C
【請求項の数】10
【全頁数】19
(21)【出願番号】特願2016-182088(P2016-182088)
(22)【出願日】2016年9月16日
【審査請求日】2016年11月16日
【早期審査対象出願】
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】清水 徹
(72)【発明者】
【氏名】小林 隼人
(72)【発明者】
【氏名】清水 伸幸
(72)【発明者】
【氏名】菅原 晃平
(72)【発明者】
【氏名】丹羽 達洋
(72)【発明者】
【氏名】鍜治 伸裕
【審査官】 田中 秀樹
(56)【参考文献】
【文献】 米国特許出願公開第2008/0040114(US,A1)
【文献】 特開2002−132812(JP,A)
【文献】 米国特許出願公開第2009/0070311(US,A1)
【文献】 国際公開第2013/190963(WO,A1)
【文献】 国際公開第2016/136207(WO,A1)
【文献】 国際公開第2015/190562(WO,A1)
【文献】 特開2006−039120(JP,A)
【文献】 西村 仁志,坂本 仁,“コーパスから自動抽出した表現パターンを用いる日本語文生成”,情報処理学会研究報告,社団法人情報処理学会,2002年 3月 5日,第2002巻,第20号,p.31−36
【文献】 畑 健治,他,“複数の言語資源を用いた非タスク指向型対話システム”,第90回知識ベースシステム研究会資料(SIG−KBS−B001),一般社団法人人工知能学会,2010年10月 7日,p.49−54
【文献】 木村 葵,他,“Twitterとword2vecを用いた時期に合った返答発話選択手法”,言語処理学会 第22回年次大会 発表論文集,言語処理学会事務局,2016年 3月,p.79−82,URL,http://www.anlp.jp/proceedings/annual_meeting/2016/pdf_dir/P3-6.pdf
【文献】 今井 健太,他,“複数の対話システムから応答候補文を用いた最適応答文選択手法の性能評価”,情報処理学会研究報告 平成21年度▲5▼ [CD−ROM],社団法人情報処理学会,2010年 2月15日,p.1−7
【文献】 山田 優樹,他,“n−gramモデルとトピックモデルと係り受け解析の統合による自然文サンプリング法”,一般社団法人 人工知能学会 第29回全国大会論文集CD−ROM [CD−ROM],社団法人人工知能学会,2015年 5月29日,p.1−4
【文献】 大川 良希,他,“対話者の感情を推定した応答文生成のための言語モデルの提案”,一般社団法人 人工知能学会 第29回全国大会論文集CD−ROM [CD−ROM],社団法人人工知能学会,2015年 5月29日,p.1−2
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
ユーザのメッセージを受信する受信部と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理部と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値を算出し、算出した各確率値の積を用いて、前記メッセージに続く単語を評価する評価処理を行う第2処理部と、
前記選択処理と前記評価処理とに基づいて、前記メッセージに対する応答メッセージを生成する生成部と
を備えることを特徴とする情報処理装置。
【請求項2】
前記第2処理部は、
前記各確率値の積と、前記各確率値の相乗平均とに基づいて、前記メッセージに続く単語を評価する前記評価処理を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2処理部は、
前記第1処理部によって選択された前記応答メッセージ候補に対して、前記評価処理を行い、前記メッセージに対する前記応答メッセージ候補の尤もらしさを示すスコアを算出し、
前記生成部は、
前記スコアに基づいて、前記メッセージに対する前記応答メッセージを生成する
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
ユーザのメッセージを受信する受信部と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理部と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値に基づいて、前記メッセージに続く単語を評価する評価処理を行う第2処理部と、
前記第1処理部によって絞り込んだ前記応答メッセージ候補を応答メッセージとして生成する生成部と
を備え、
前記第2処理部は、
前記評価処理に基づいて、前記メッセージに対する前記応答メッセージ候補を含む前記応答メッセージ候補群を生成し、
前記第1処理部は、
前記第2処理部によって生成された前記応答メッセージ候補群から、前記メッセージの分散表現と、前記応答メッセージ候補の分散表現との間の類似度に基づいて前記応答メッセージ候補を選択する前記選択処理を行う、
ことを特徴とする情報処理装置。
【請求項5】
前記第2処理部は、
前記ユーザのコンテキスト、および前記単語が出現する順番の前記確率値に基づいて前記評価処理を行う
ことを特徴とする請求項1から4のいずれか一つに記載の情報処理装置。
【請求項6】
出現率が所定率よりも高い高頻度の応答メッセージ候補に対し、前記高頻度の応答メッセージ候補が前記応答メッセージとして生成される確率値を低くする調整処理を行う第3処理部
を備え、
前記生成部は、
前記選択処理と前記評価処理と前記調整処理とに基づいて、前記メッセージに対する前記応答メッセージを生成する
ことを特徴とする請求項1から5のいずれか一つに記載の情報処理装置。
【請求項7】
情報処理装置が実行する情報処理方法であって、
ユーザのメッセージを受信する受信工程と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理工程と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値を算出し、算出した各確率値の積を用いて、前記メッセージに続く単語を評価する評価処理を行う第2処理工程と、
前記選択処理と前記評価処理とに基づいて、前記メッセージに対する応答メッセージを生成する生成工程と
を含むことを特徴とする情報処理方法。
【請求項8】
情報処理装置が実行する情報処理方法であって、
ユーザのメッセージを受信する受信工程と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理工程と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値に基づいて、前記メッセージに続く単語を評価する評価処理を行う第2処理工程と、
前記第1処理部によって絞り込んだ前記応答メッセージ候補を応答メッセージとして生成する生成工程と
を含み、
前記第2処理工程では、
前記評価処理に基づいて、前記メッセージに対する前記応答メッセージ候補を含む前記応答メッセージ候補群が生成され、
前記第1処理工程では、
前記第2処理工程によって生成された前記応答メッセージ候補群から、前記メッセージの分散表現と、前記応答メッセージ候補の分散表現との間の類似度に基づいて前記応答メッセージ候補を選択する前記選択処理が行われる、
ことを特徴とする情報処理方法。
【請求項9】
ユーザのメッセージを受信する受信手順と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理手順と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値を算出し、算出した各確率値の積を用いて、前記メッセージに続く単語を評価する評価処理を行う第2処理手順と、
前記選択処理と前記評価処理とに基づいて、前記メッセージに対する応答メッセージを生成する生成手順と
をコンピュータに実行させることを特徴とするプログラム。
【請求項10】
ユーザのメッセージを受信する受信手順と、
前記メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う第1処理手順と、
単語が出現する直前までの、前記メッセージおよび前記メッセージに続いて出現した単語に対して単語が出現する確率値に基づいて、前記メッセージに続く単語を評価する評価処理を行う第2処理手順と、
前記第1処理手順によって絞り込んだ前記応答メッセージ候補を応答メッセージとして生成する生成手順と
をコンピュータに実行させ、
前記第2処理手順では、
前記評価処理に基づいて、前記メッセージに対する前記応答メッセージ候補を含む前記応答メッセージ候補群が生成され、
前記第1処理手順では、
前記第2処理手順によって生成された前記応答メッセージ候補群から、前記メッセージの分散表現と、前記応答メッセージ候補の分散表現との間の類似度に基づいて前記応答メッセージ候補を選択する前記選択処理が行われる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、質問文と、正解文、および不正解文を含む文とのペアについて得られる特徴量に基づいて機械学習したランキングモデルを用いて、質問文などのメッセージに対する応答メッセージ候補を生成する情報処理装置が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013−254420号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記のようなモデルのみを用いて生成された応答メッセージ候補から生成した応答メッセージは、ユーザのメッセージに対する応答メッセージとしての精度が低く、ユーザの満足度を十分に満たさない場合があり、改善の余地がある。
【0005】
本願は、上記に鑑みてなされたものであって、応答メッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本願にかかる情報処理装置は、受信部と、第1処理部と、第2処理部と、生成部とを備える。受信部は、ユーザのメッセージを受信する。第1処理部は、メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う。第2処理部は、単語が出現する順番の確率値に基づいて前記メッセージに続く単語を評価する評価処理を行う。生成部は、選択処理と評価処理とに基づいて、メッセージに対する応答メッセージを生成する。
【発明の効果】
【0007】
実施形態の一態様によれば、応答メッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1図1は、第1実施形態に係る情報処理の説明図である。
図2図2は、情報処理システムの構成例を示す図である。
図3図3は、第1実施形態に係る情報処理装置の構成例を示す図である。
図4図4は、応答メッセージ候補に対するスコアの一例を示す図である。
図5図5は、実施形態に係る応答メッセージ生成処理の一例を示すフローチャートである。
図6図6は、第2実施形態に係る情報処理装置の構成例を示す図である。
図7図7は、第2実施形態に係る応答メッセージ生成処理の一例を示すフローチャートである。
図8図8は、変形例における応答メッセージ候補に対するスコアの一例を示す図である。
図9図9は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0009】
以下に、本願にかかる情報処理装置、情報処理方法、およびプログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願にかかる情報処理装置、情報処理方法、およびプログラムが限定されるものではない。
【0010】
(第1実施形態)
[1.情報処理]
第1実施形態に係る情報処理の一例について説明する。図1は、第1実施形態に係る情報処理の説明図である。
【0011】
情報処理装置1は、ユーザの端末装置2からユーザの発話に基づくメッセージを受信する(ステップS1)。例えば、情報処理装置1は、ユーザから「今日の天気は?」とする発話に基づくメッセージを受信する。
【0012】
情報処理装置1は、メッセージに対して、マッチングモデルを用いて、メッセージに対する応答メッセージ候補を選択する(ステップS2)。
【0013】
マッチングモデルは、入力されたメッセージを複数次元のベクトルで示す分散表現を用いて、入力されたメッセージに対応する応答メッセージ候補を選択するためのモデルである。
【0014】
マッチングモデルは、ウェブや、ツイッター(登録商標)などから得られる対話文を学習データとして用い、入力されたメッセージにおける分散表現と、入力されたメッセージに対して相応しい対となる対応メッセージにおける分散表現とが、分散表現空間上で近くに存在するように学習される。マッチングモデルは、例えば、LSTM(Long Short-Term Memory)などのRNN(Recurrent Neural Network)を分散表現生成に用いたDSSM(Deep Structured Sematic Model)の技術を用いて学習され、生成される。
【0015】
例えば、入力されたメッセージが「今日の天気は?」である場合に、このメッセージに対して「晴れでしょう」、「そうですね」、「おはよう」などの対となる対応メッセージがあった場合には、「晴れでしょう」、「曇りです」、「分かりません」などの分散表現が、分散表現空間上でメッセージ「今日の天気は?」の分散表現の近くに存在するように、マッチングモデルは学習される。また、「今日の天気は?」に対する応答として相応しくない「お帰りなさい」などの分散表現は、分散表現空間上で「今日の天気は?」の分散表現に対して遠くに存在するように、マッチングモデルは学習される。
【0016】
情報処理装置1は、入力されたメッセージにおける分散表現と、分散表現空間上の対応メッセージの分散表現とのマッチングを行う。
【0017】
情報処理装置1は、例えば、入力されたメッセージにおける分散表現と、分散表現空間上の対応メッセージ(以下、応答メッセージ候補群と記載する場合がある。)の分散表現とのコサイン類似度を算出し、コサイン類似度が高い分散表現の対応メッセージの中から、所定数の対応メッセージを応答メッセージ候補として選択する。なお、情報処理装置1は、コサイン類似度の代わりに、ユークリッド距離の逆数など、他の尺度を用いて応答メッセージ候補を選択してもよい。
【0018】
すなわち、情報処理装置1は、応答メッセージ候補群から、メッセージに対する応答メッセージ候補を選択する選択処理を行う。所定数は、予め設定された値である。情報処理装置1は、コサイン類似度が高い順に所定数の対応メッセージを応答メッセージ候補として選択する。
【0019】
情報処理装置1は、選択された応答メッセージ候補に対し、翻訳モデルを用いて、メッセージに対する応答メッセージ候補の尤もらしさを示すスコアを算出する(ステップS3)。
【0020】
翻訳モデルは、入力されたメッセージを複数次元のベクトルで示す分散表現を用いて、入力されたメッセージに続く単語(メッセージ)を評価し、生成するためのモデルである。翻訳モデルを用いて評価され、生成された応答メッセージは、入力されたメッセージに相応しい応答メッセージである。
【0021】
翻訳モデルは、ウェブなどから得られる対話文を学習データとして用い、或る入力されたメッセージに対応する対応メッセージの単語がどのような確率で連鎖するかについて学習されたモデルである。
【0022】
入力されたメッセージを翻訳モデルに与えると、対応する対応メッセージの最初の1単語についての確率表(語彙中の各単語の出現確率)が得られ、さらに、1単語目にどの単語が来るかを決めるとそれに続く2単語目の確率表が得られる。これを繰り返すことで、対向メッセージの単語の系列について順々に確率表を得ることができる。
【0023】
情報処理装置1は、確率表に基いて1単語目から順番に単語のサンプリングを行うことで応答メッセージ候補の生成を行うことができる。また、情報処理装置1は、応答メッセージ候補があれば、応答メッセージ候補に含まれる単語がどのような確率を持つかを、翻訳モデルで得られる確率表で測ることで、入力されたメッセージに対するその応答メッセージ候補の尤もらしさが評価できる。
【0024】
翻訳モデルは、例えば、LSTM(Long Short-Term Memory)などの、RNN(Recurrent Neural Network)の技術を用いて学習され、生成される。
【0025】
例えば、翻訳モデルを用いることで、メッセージが「今日の天気は?」であり、その次に「晴れでしょう」とするメッセージが続く場合、「今日の天気は?」に対して、「晴れ」が続く確率値、また「晴れ」の後に「でしょ」が続く確率値などを算出することができる。
【0026】
情報処理装置1は、翻訳モデルを用いて、メッセージに対し、応答メッセージ候補に含まれる単語が出現する順番の確率値を算出し、メッセージに続く単語を評価する評価処理を行う。
【0027】
情報処理装置1は、入力されたメッセージに対し、翻訳モデルを用いて各応答メッセージ候補の1単語目が出現する確率値を算出する。そして、情報処理装置1は、各応答メッセージ候補の1単語目に対し、翻訳モデルを用いて2単語目が出現する確率値を算出する。このように、情報処理装置1は、各応答メッセージ候補に含まれる各単語に対し、出現する順番にそれぞれ確率値を算出し、各確率値を総合したスコア、例えば、各確率値の積を取ったスコアを算出する。
【0028】
入力されたメッセージに対し、応答メッセージ候補において各単語が出現する順番に算出された確率値が大きく、スコアが大きい場合には、その応答メッセージ候補は、応答メッセージとして尤もらしいと評価することができる。
【0029】
情報処理装置1は、翻訳モデルを用いて算出したスコアが最も大きい応答メッセージ候補を応答メッセージとして選択し、応答メッセージを生成する(ステップS4)。
【0030】
情報処理装置1は、生成した応答メッセージを、ユーザの端末装置2へ送信する(ステップS5)。
【0031】
情報処理装置1は、メッセージに対して、マッチングモデルを用いて応答メッセージ候補を選択した後に、翻訳モデルを用いて応答メッセージを選択する。
【0032】
マッチングモデルを用いた評価では、どのようなメッセージが入力されるか分からない状態で応答メッセージ候補の分散表現を生成しなければならず、応答メッセージ候補の精緻な評価を行うことが難しい場合がある。これに対し、翻訳モデルを用いた評価では、入力されたメッセージを把握した上で、メッセージに対応した内容が応答メッセージ候補に含まれているかを評価できるので、より適切な評価を行うことができる。
【0033】
一方、マッチングモデルでは、応答メッセージ候補はすでに分散表現とされており、メッセージの分散表現を生成すると、分散表現同士のマッチングにより、評価を行うことができ、処理時の負荷が小さい。これに対し、翻訳モデルでは、多数の応答メッセージ候補の各単語の確率を評価すると、処理時の負荷が大きい。
【0034】
このように、マッチングモデルと翻訳モデルとの間では、評価の精緻と、処理時の負荷とがトレードオフの関係にある。
【0035】
そこで、情報処理装置1は、処理時の負荷が小さいマッチングモデルを用いて、多数の対応メッセージから所定数の応答メッセージ候補まで絞り込みを行い、絞り込まれた応答メッセージ候補についてだけ翻訳モデルを用いて精緻な評価を行う。これにより、システム全体としての精度を高めることができ、メッセージに対する応答メッセージの精度を向上させることができ、ユーザの満足度を向上させることができる。
【0036】
[2.情報処理システム5の構成]
図2は、情報処理システム5の構成例を示す図である。図2に示すように、第1実施形態に係る情報処理システム5は、情報処理装置1と、端末装置2と、音声認識サーバ3と、音声合成サーバ4とを備える。
【0037】
端末装置2、音声認識サーバ3、音声合成サーバ4、および情報処理装置1は、ネットワークNを介して無線または有線で互いに通信可能に接続される。ネットワークNは、例えば、LAN(Local Area Network)や、インターネットなどのWAN(Wide Area Network)である。
【0038】
端末装置2は、スマートフォンや、タブレット型端末や、デスクトップ型PC(Personal Computer)や、ノート型PCや、PDA(Personal Digital Assistant)等により実現される。
【0039】
音声認識サーバ3は、音声情報に対して自然言語処理を実行し、音声データをテキストデータに変換する装置である。音声認識サーバ3は、端末装置2から発話の音声データを受信すると、音声データをテキストデータに変換する。音声認識サーバ3は、音声データを変換したテキストデータを情報処理装置1に送信する。
【0040】
音声合成サーバ4は、情報処理装置1によって生成された応答メッセージのテキストデータを音声データに変換する。音声合成サーバ4は、テキストデータを変換した音声データを、端末装置2に送信する。
【0041】
情報処理装置1は、端末装置2から送信されたテキストデータ、または音声認識サーバ3を介して音声データが変換されたテキストデータに基づいて、応答メッセージのテキストデータを生成する。情報処理装置1は、生成した応答メッセージのテキストデータを、音声合成サーバ4、および端末装置2に送信する。
【0042】
なお、音声認識サーバ3や音声合成サーバ4を、情報処理装置1と一体的に構成してもよい。また、端末装置2が、音声認識機能や、音声合成機能を有する場合には、これらの機能を用いて、音声データとテキストデータとを変換してもよい。
【0043】
[3.第1実施形態に係る情報処理装置1の構成]
次に、第1実施形態に係る情報処理装置1について、図3を参照し説明する。図3は、第1実施形態に係る情報処理装置1の構成例を示す図である。
【0044】
ここでは、端末装置2から、ユーザの発話による音声データが送信され、音声データを端末装置2へ送信する例、すなわち、音声による対話を一例として説明するが、テキストデータによる対話であってもよい。
【0045】
情報処理装置1は、ユーザによる発話があった場合に、端末装置2(図2参照)から音声認識サーバ3(図2参照)を介して送信されたメッセージに対する応答メッセージを生成する応答生成装置である。情報処理装置1は、受信部10と、送信部20と、記憶部30と、制御部40とを備える。
【0046】
受信部10は、ネットワークNを介して、ユーザによるメッセージを受信する。受信部10は、ユーザによる発話があった場合には、音声認識データ(図2参照)によって変換された、メッセージに対応するテキストデータを受信する。また、受信部10は、ネットワークNを介して外部に設置されたサーバなどからデータを受信する。
【0047】
記憶部30は、マッチングモデル記憶部31と、翻訳モデル記憶部32とを備える。記憶部30は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部30は、メッセージに対する応答メッセージ候補を選択するために必要な情報を記憶するデータベースを備えてもよい。
【0048】
マッチングモデル記憶部31は、マッチングモデルを記憶する。マッチングモデルは、ネットワークNを介して新たに取得され、更新されてもよい。マッチングモデル記憶部31は、入力されるメッセージの分散表現に対する応答メッセージ候補の分散表現と、応答メッセージ候補とを一組のリストとして記憶する。
【0049】
翻訳モデル記憶部32は、翻訳モデルを記憶する。翻訳モデルは、ネットワークNを介して新たに取得され、更新されてもよい。
【0050】
制御部40は、解析部41と、第1処理部42と、第2処理部43と、生成部44とを備える。
【0051】
解析部41は、受信部10によって受信したメッセージを解析する。解析部41は、例えば、受信部10によってテキストデータが受信されると、形態素解析等を用いてテキストデータを解析し、テキストデータに含まれる単語群を抽出する。
【0052】
解析部41は、ユーザの発話により、受信部10によってメッセージとして、例えば、「今日の天気は?」とするテキストデータが受信された場合、「今日」、「の」、「天気」、「は」の単語を抽出し、テキストデータの内容を特定する。
【0053】
第1処理部42は、メッセージの分散表現を生成する。第1処理部42は、メッセージを分散表現とすることで、類似する内容のメッセージを同じ分散表現として扱うことができる。第1処理部42は、例えば、「今日の天気は?」や「今日の天気はどうでしょう?」など類似する内容のメッセージを同じ分散表現として扱う。
【0054】
そして、第1処理部42は、マッチングモデルを用いて、メッセージの分散表現に対する類似度が高い応答メッセージ候補の分散表現に基づいて、応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う。具体的には、第1処理部42は、メッセージの分散表現に対し、コサイン類似度が高い分散表現の対応メッセージを応答メッセージ候補として選択する。例えば、第1処理部42は、メッセージの分散表現に対し、コサイン類似度が高い分散表現の対応メッセージの中から、所定数の対応メッセージを、応答メッセージ候補として選択する。
【0055】
例えば、メッセージが「今日の天気は?」であった場合、分散表現空間上で「今日の天気は?」とコサイン類似度が高い「晴れでしょう」や、「曇りです」や、「分かりません」といった対応メッセージが応答メッセージ候補として選択される。なお、ここでは、天気が「晴れ」であることを一例として説明する。
【0056】
第2処理部43は、翻訳モデルを用いて、メッセージに対し、応答メッセージ候補に含まれる単語が出現する順番の確率値を算出し、メッセージに続く単語を評価する評価処理を行う。
【0057】
具体的には、第2処理部43は、翻訳モデルを用いて、メッセージに対して、応答メッセージ候補に含まれる単語が出現する順番の確率値を算出し、各確率値を総合したスコアを算出する。すなわち、第2処理部43は、第1処理部42によって選択された応答メッセージ候補に対して、メッセージに対する尤もらしさを示す評価値としてスコアを算出する。具体的には、第2処理部43は、各確率値の積をとって応答メッセージ候補の出現確率を算出する。
【0058】
例えば、メッセージが「今日の天気は?」であった場合、応答メッセージ候補として「晴れでしょう」、「曇りです」、および「分かりません」が選択されたとする。
【0059】
この場合、第2処理部43は、翻訳モデルを用いて、「今日の天気は?」に続く単語の確率値を、各応答メッセージ候補に含まれる単語の出現順に算出する。
【0060】
第2処理部43は、「今日の天気は?」に対し、その次に「晴れ」が出現する確率値を、翻訳モデルを用いて算出し、さらに、「今日の天気は?晴れ」の次に「でしょ」が出現する確率値を、翻訳モデルを用いて算出する。第2処理部43は、同様にして応答メッセージ候補「晴れでしょう」について、翻訳モデルを用いて単語が出現する順番の確率値を算出する。そして、第2処理部43は、各確率値の積を応答メッセージ候補「晴れでしょう」に対するスコアとして算出する。
【0061】
例えば、「今日の天気は?」に続く単語「晴れ」の確率値が「0.2」、「今日の天気は?晴れ」の次に続く単語「でしょ」の確率値が「0.4」、「今日の天気は?晴れでしょ」の次に続く単語「う」の確率値が「0.5」、「今日の天気は?晴れでしょう」で終わる確率値が「0.6」であった場合、各確率値の積であるスコアは図4に示すように、「2.88×10−2」になる。図4は、応答メッセージ候補に対するスコアの一例を示す図である。なお、図4では、文章の終わりを「EOS(End Of Sentence)」として示している。
【0062】
メッセージ「今日の天気は?」に対し、応答メッセージ候補「晴れでしょう」が尤もらしい場合には、スコアが大きくなる。
【0063】
また、第2処理部43は、「曇りです」、および「分かりません」の応答メッセージ候補についても、同様に確率値を算出し、各応答メッセージ候補に対するスコアを算出する。
【0064】
例えば、「今日の天気は?」に続く単語「曇り」の確率値が「0.05」、「今日の天気は?曇り」の次に続く単語「です」の確率値が「0.4」、「今日の天気は?曇りです」で終わる確率値が「0.7」であった場合、スコアは図4に示すように、「1.40×10−2」になる。
【0065】
また、例えば、「今日の天気は?」に続く単語「分かり」の確率値が「0.01」、「今日の天気は?分かり」の次に続く単語「ませ」の確率値が「0.2」、「今日の天気は?分かりませ」の次に続く単語「ん」の確率値が「0.5」、「今日の天気は?分かりません」で終わる確率値が「0.6」であった場合、スコアは図4に示すように、「6.00×10−4」になる。
【0066】
生成部44は、第2処理部43によって算出されたスコアが最も大きい応答メッセージ候補を応答メッセージとして選択し、応答メッセージを生成する。
【0067】
例えば、第2処理部43によって算出された、上記3つの応答メッセージ候補におけるスコアが図4に示すようになった場合、生成部44は、スコアが最も大きい「晴れでしょう」の応答メッセージ候補を応答メッセージとして選択し、応答メッセージを生成する。
【0068】
送信部20は、ネットワークNを介して、端末装置2や、音声合成サーバ4(図2参照)に、生成部44によって作成された応答メッセージを送信する。
【0069】
[4.第1実施形態に係る応答メッセージ生成処理]
次に、第1実施形態に係る応答メッセージ生成処理について図5を参照し説明する。図5は、第1実施形態に係る応答メッセージ生成処理の一例を示すフローチャートである。
【0070】
第1処理部42は、受信部10によってメッセージが受信されると(ステップS10)、マッチングモデルを用いて選択処理を行い、メッセージに対する応答メッセージ候補を選択する(ステップS11)。
【0071】
第2処理部43は、選択された応答メッセージ候補に対して、翻訳モデルを用いて評価処理を行い、各応答メッセージ候補に対する尤もらしさを示すスコアを算出する(ステップS12)。
【0072】
生成部44は、スコアが最も大きい応答メッセージ候補を応答メッセージとして選択し、応答メッセージを生成する(ステップS13)。
【0073】
送信部20は、生成された応答メッセージをユーザの端末装置2へ送信する(ステップS14)。
【0074】
(第2実施形態)
[5.第2実施形態に係る情報処理装置1の構成]
次に第2実施形態に係る情報処理装置1について、図6を参照し説明する。図6は、第2実施形態に係る情報処理装置1の構成例を示す図である。
【0075】
ここでは第1実施形態と異なる箇所を中心に説明し、第1実施形態と同じ構成については説明を省略する。
【0076】
第2実施形態に係る情報処理装置1の記憶部30は、言語モデル記憶部33を備える。また、第2実施形態に係る情報処理装置1の制御部40は、第3処理部45を備える。
【0077】
言語モデル記憶部33は、言語モデルを記憶する。言語モデルは、ネットワークNを介して新たに取得され、更新されてもよい。
【0078】
言語モデルは、ウェブなどから得られる文章を学習データとして用い、一般的な応答で使用される応答メッセージ候補の出現率を統計的にまとめたモデルである。言語モデルは、例えば、LSTM(Long Short-Term Memory)などの、RNN(Recurrent Neural Network)の技術を用いて学習され、生成される。
【0079】
言語モデルでは、応答メッセージ候補の出現率に応じて重み付けされたスコアが付されている。例えば、「いいね」、「そうだね」など、出現率が所定率よりも高い高頻度の応答メッセージ候補に対して大きいスコアが付される。
【0080】
第3処理部45は、言語モデルを用いて、高頻度の応答メッセージ候補が応答メッセージとして生成される確率値を低くする調整処理を行う。具体的には、第3処理部45は、言語モデルを用いて、第1処理部42によって選択された各応答メッセージ候補に対するスコアを算出する。
【0081】
生成部44は、第2処理部43によって算出された応答メッセージ候補のスコアから、第3処理部45によって言語モデルを用いて算出されたスコアを減算し、減算したスコア中でスコアが最も大きい応答メッセージ候補を応答メッセージとして選択する。
【0082】
第2処理部43によって算出された応答メッセージ候補のスコアから、第3処理部45によって算出したスコアを減算することで、一般的な応答として、高頻度で使用される応答メッセージ候補が応答メッセージとして選択されることを抑制することができる。
【0083】
なお、第3処理部45は、各応答メッセージ候補に対し、言語モデルの与えるスコアが大きくなるほど値が小さくなるような係数を算出し、第2処理部43によって算出された応答メッセージ候補のスコアに、算出した係数を乗算してもよい。
【0084】
[6.第2実施形態に係る応答メッセージ生成処理]
次に、第2実施形態に係る応答メッセージ生成処理について図7を参照し説明する。図7は、第2実施形態に係る応答メッセージ生成処理の一例を示すフローチャートである。
【0085】
第1処理部42は、受信部10によってメッセージが受信されると(ステップS20)、マッチングモデルを用いて選択処理を行い、メッセージに対する応答メッセージ候補を選択する(ステップS21)。
【0086】
第2処理部43は、選択された応答メッセージ候補に対して、翻訳モデルを用いて評価処理を行い、各応答メッセージ候補に対する尤もらしさを示すスコアを算出する(ステップS22)。
【0087】
第3処理部45は、言語モデルを用いて調整処理を行い、各応答メッセージ候補に対するスコアを算出する(ステップS23)。
【0088】
生成部44は、第2処理部43によって翻訳モデルを用いて算出したスコアから、第3処理部45によって言語モデルを用いて算出したスコアを減算し、減算したスコアの中でスコアが最も大きい応答メッセージ候補を応答メッセージとして選択し、応答メッセージを生成する(ステップS24)。
【0089】
送信部20は、生成された応答メッセージをユーザの端末装置2へ送信する(ステップS25)。
【0090】
[7.変形例]
上記実施形態に加えて、以下の変形例を適用することも可能である。
【0091】
変形例に係る情報処理装置1は、第1処理部42と、第2処理部43とにおける処理の順番を入れ替えて応答メッセージを生成する。
【0092】
第2処理部43は、翻訳モデルを用いて、単語が出現する順番の確率値に基づいてメッセージに続く単語を評価する評価処理を行い、評価結果に基づいて応答メッセージ候補を生成する。
【0093】
具体的には、第2処理部43は、メッセージを前提としたときの応答メッセージ候補の1単語目として、語彙中の各単語がどれだけの確率で現れうるかの確率表を生成し、それをもとに最も確率の高いN個(Nは予め設定された値)の単語を選ぶか、もしくは確率表をもとにしたランダムサンプリングを行うことにより、1単語目を決定する。続いてメッセージおよび1単語目を前提とした次の単語の確率表を生成し、それをもとに同様に2単語目を決定する。このような処理を繰り返し、第2処理部43は、メッセージに対する応答メッセージ候補を自動的に生成し、複数の応答メッセージ候補からなる応答メッセージ候補群を生成する。
【0094】
第1処理部42は、第2処理部43によって生成された応答メッセージ候補群の中から、メッセージに対して尤もらしい応答メッセージ候補を選択する選択処理を行う。具体的には、第1処理部42は、応答メッセージ候補群の中から、メッセージの分散表現に対しコサイン類似度が最も大きい分散表現となる応答メッセージ候補を選択し、応答メッセージ候補をさらに絞り込む。
【0095】
生成部44は、第1処理部42によって絞りこまれた応答メッセージ候補を、応答メッセージとして選択し、応答メッセージを生成する。
【0096】
例えば、第2処理部43によって応答メッセージとして相応しくない応答メッセージ候補が生成された場合であっても、そのような応答メッセージ候補の分散表現は、分散表現空間上、メッセージの分散表現に対して遠くに存在する。
【0097】
そのため、第1処理部42は、マッチングモデルを用いて応答メッセージ候補をさらに絞り込むことで、応答メッセージとして相応しくない応答メッセージ候補が応答メッセージとして選択されることを抑制することができる。
【0098】
変形例の情報処理装置1は、第2処理部43により応答メッセージ候補を生成することで、メッセージに対する応答メッセージ候補を多様化させることができる。
【0099】
また、変形例の情報処理装置1は、例えば、第2処理部43によって応答メッセージ候補として「晴れだよ」が生成された場合に、別の翻訳モデルを用いて、より自然な文に置き換えて「晴れです」といった応答メッセージを生成してもよい。別の翻訳モデルは、不適切な文と、適切な文のペアの例を大量に学習データとして用い、不適切な文が与えられた場合に、適切な文を生成するモデルである。そして、情報処理装置1は、第1処理部42によって、適切な文として生成された応答メッセージ候補の中から応答メッセージを選択する。
【0100】
また、翻訳モデルにおいて、例えば、「いいね」、「そうだね」といった一般的な応答となる応答メッセージ候補が作成され難いように、翻訳モデルを学習する際に、一般的な応答となる対応メッセージにおいて、出現する単語の順番の確率値が小さくなるように学習してもよい。例えば、学習データ中の入力されたメッセージと対応メッセージの組において、「明日は晴れるらしいよ」に対して一般的な応答となる「そうだね」と回答しているようなものを間引く前処理を行った上で翻訳モデルを学習させる。これにより、第2処理部43によって、一般的な応答となる応答メッセージ候補が生成されることを抑制することができる。そのため、変形例の情報処理装置1は、ユーザの満足度を向上させることができる。
【0101】
また、上記変形例に加えて、以下の変形例を適用することが可能である。
【0102】
第2処理部43は、各確率値の対数の和をスコアとして算出してもよい。
【0103】
第2処理部43は、確率値の相乗平均(あるいは確率値の対数の相加平均)をスコアとして算出してもよい。相乗平均をスコアとして算出した一例を図8に示す。この場合、応答メッセージ候補「晴れでしょう」のスコアが「0.412」となり、「曇りです」のスコアが「0.241」となり、「分かりません」のスコアが「0.157」となる。したがって、応答メッセージ候補「晴れでしょう」が応答メッセージとして選択される。
【0104】
また、第2処理部43は、各確率値の積と、各確率値の相乗平均とを総合したスコア、あるいは確率値の対数の和と、各確率値の対数の相加平均とを総合したスコアを算出してもよい。なお、例えば、確率値の対数をとった場合に、第2処理部43は、対数にマイナスの符号を付けて、コスト値としてもよい。この場合、コスト値が小さくなると、尤もらしいと評価される。
【0105】
これにより、短い文の応答メッセージ候補のスコアが高くなることを抑制し、応答メッセージ候補の長さに左右されない評価を行うことができ、適切な応答メッセージ候補を応答メッセージとして選択することができる。
【0106】
第2処理部43は、ユーザのコンテキストを考慮して、応答メッセージ候補のスコアを算出してもよい。コンテキストは、例えば、ユーザの発話時間や、ユーザの現在位置などである。第2処理部43は、例えば、単語が出現する確率値をコンテキストに応じて変更する。
【0107】
例えば、翻訳モデルは、学習時に、入力されたメッセージを前提として対応メッセージとして何が来るか学習させる形だったところを、発話時間と入力されたメッセージとの組に対して対応メッセージに何が来るか学習させる形に変更され学習される。第2処理部43は、例えば、応答メッセージ候補を生成する際に、同様に発話時間を入力情報として用いる。学習データ中では発話時間が夕方や夜である場合に「おはよう」という対応メッセージが現れるケースが非常に少ないので、翻訳モデルではそれが学習され、そのような時間帯に「おはよう」が出現する確率値を低くする。
【0108】
これにより、生成部44は、ユーザのコンテキストに合わせて、応答メッセージを選択することができる。そのため、情報処理装置1は、応答メッセージに対するユーザの満足度を向上させることができる。
【0109】
第2処理部43は、単語が出現する確率値を、「attention mechanism」を用いて算出してもよい。第2処理部43は、「attention mechanism」を用いることで、メッセージ中の情報を一律に用いるのではなく、生成しようとしている単語に対して関連の強い箇所に、より強く重み付けをする形でメッセージの情報を再解釈しながら、確率値を算出する。
【0110】
これにより、第2処理部43は、メッセージに対する応答メッセージ候補の尤もらしさを正確に評価することができる。そのため、情報処理装置1は、より正確な応答メッセージをユーザに提供することができ、応答メッセージに対するユーザの満足度を向上させることができる。
【0111】
また、マッチングモデルを学習する際に、応答メッセージとして相応しくないメッセージ、例えば、罵倒語や、卑猥語などを含む文例を除いて、マッチングモデルを学習させてもよい。
【0112】
これにより、そのような単語を含む応答メッセージ候補が選択されることを防ぐことができる。
【0113】
また、解析部41は、文字単位で解析を行ってもよく、単語群を抽出せずに解析を行ってもよい。
【0114】
[8.効果]
情報処理装置1は、受信部10と、第1処理部42と、第2処理部43と、生成部44とを備える。受信部10は、ユーザのメッセージを受信する。第1処理部42は、メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う。第2処理部43は、単語が出現する順番の確率値に基づいてメッセージに続く単語を評価する評価処理を行う。生成部44は、選択処理と評価処理とに基づいて、メッセージに対する応答メッセージを生成する。
【0115】
これにより、情報処理装置1は、応答メッセージの精度を向上させることができ、応答メッセージに対するユーザの満足度を向上させることができる。
【0116】
第2処理部43は、第1処理部42によって選択された応答メッセージ候補に対して、評価処理を行い、メッセージに対する応答メッセージ候補の尤もらしさを示すスコアを算出する。生成部44は、スコアに基づいて、メッセージに対する応答メッセージを生成する。
【0117】
これにより、情報処理装置1は、第1処理部42によって選択された応答メッセージ候補に対して、評価処理を行うので評価処理における負荷を小さくし、必要な時間を短くし、応答メッセージをユーザの端末装置2に素早く送信することができる。また、情報処理装置1は、評価処理によって精緻な評価を行うことができ、メッセージに対する応答メッセージの精度を向上させることができ、ユーザの満足度を向上させることができる。
【0118】
また、情報処理装置1は、第1処理部42によってマッチングモデルを用いて応答メッセージ候補を選択するので、相応しくない応答メッセージ候補が選択(生成)されることを抑制することができる。
【0119】
第2処理部43は、評価処理に基づいて、メッセージに対する応答メッセージ候補を生成する。第1処理部42は、第2処理部43によって生成された応答メッセージ候補から、さらに応答メッセージ候補を絞り込む。そして、生成部44は、第1処理部42によって絞り込んだ応答メッセージ候補に基づいて、応答メッセージを生成する。
【0120】
これにより、情報処理装置1は、第2処理部43によって応答メッセージ候補を自動的に生成することで、応答メッセージ候補を多様化させることができる。
【0121】
また、情報処理装置1は、第1処理部42によって応答メッセージ候補を、より自然な文に置き換えることができる。そのため、ユーザの満足度を向上させることができる。
【0122】
第1処理部42は、メッセージの分散表現と、応答メッセージ候補の分散表現との間の類似度に基づいて応答メッセージ候補を選択する選択処理を行う。
【0123】
これにより、情報処理装置1は、類似するメッセージに対して、応答メッセージ候補を選択することができ、類似するメッセージに対しても適切な応答メッセージを生成することができ、応答メッセージに対するユーザの満足度を向上させることができる。
【0124】
第2処理部43は、ユーザのコンテキスト、および単語が出現する順番の確率値に基づいて評価処理を行う。
【0125】
これにより、情報処理装置1は、ユーザのコンテキストに応じて応答メッセージを生成することができ、ユーザの満足度を向上させることができる。
【0126】
情報処理装置1は、出現率が所定率よりも高い高頻度の応答メッセージ候補に対し、高頻度の応答メッセージ候補が応答メッセージとして生成される確率値を低くする調整処理を行う第3処理部45を備える。生成部44は、選択処理と探索処理と調整処理とに基づいて、メッセージに対する応答メッセージを生成する。
【0127】
これにより、情報処理装置1は、高頻度の応答メッセージ候補が応答メッセージとして生成される確率値を低くすることができ、ユーザの満足度を向上させることができる。
【0128】
[9.ハードウェアの構成]
上記してきた実施形態に係る情報処理装置1は、例えば図9に示すような構成のコンピュータ1000によって実現される。図9は、情報処理装置1の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0129】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0130】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が決定したデータをネットワークNを介して他の機器へ送信する。
【0131】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、決定したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0132】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0133】
例えば、コンピュータ1000が実施形態に係る情報処理装置1として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部40の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
【0134】
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0135】
[10.その他]
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0136】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0137】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0138】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、受信部10は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【0139】
1 情報処理装置
2 端末装置
10 受信部
20 送信部
30 記憶部
40 制御部
41 解析部
42 第1処理部
43 第2処理部
44 生成部
45 第3処理部
【要約】
【課題】応答メッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供すること。
【解決手段】本願にかかる情報処理装置は、受信部と、第1処理部と、第2処理部と、生成部とを備える。受信部は、ユーザのメッセージを受信する。第1処理部は、メッセージに対する応答メッセージ候補を応答メッセージ候補群から選択する選択処理を行う。第2処理部は、単語が出現する順番の確率値に基づいてメッセージに続く単語を評価する評価処理を行う。生成部は、選択処理と評価処理とに基づいて、メッセージに対する応答メッセージを生成する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9