(57)【要約】【課題】ユーザの端末装置に送信されるメッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供すること。【解決手段】本願にかかる情報処理装置は、受信部と、生成部と、送信部とを備える。受信部は、ユーザの端末装置から、ユーザメッセージを受信する。生成部は、ユーザメッセージに対し、強化学習により学習された候補選択モデルを用いて絞り込まれた候補を含む候補メッセージを生成する。送信部は、生成部によって生成された候補メッセージを端末装置に送信する。【選択図】図１
2018045413.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの端末装置から、ユーザメッセージを受信する受信部と、
前記ユーザメッセージに対し、強化学習により学習された候補選択モデルを用いて絞り込まれた候補を含む候補メッセージを生成する生成部と、
前記生成部によって生成された前記候補メッセージを前記端末装置に送信する送信部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成部は、
前記候補メッセージに対する新たなユーザメッセージに対し、さら前記候補を絞り込んだ新たな候補メッセージを生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記候補メッセージに対する前記新たなユーザメッセージに応じて得られた報酬に基づいて前記候補選択モデルを学習する学習部
を備え、
前記生成部は、
過去に前記学習部によって学習された前記候補選択モデルを用いて前記候補メッセージを生成する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記学習部は、
前記ユーザによって前記候補が選択されるまでの応答回数が少ないほど、前記ユーザによって選択された前記候補に対する前記報酬を大きくする
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記学習部は、
前記候補選択モデルにおけるスコアの初期値を人気度に応じて設定し、前記人気度が高いほど、前記初期値を大きくする
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記学習部は、
前記ユーザによって選択された前記候補と同一、または類似する類似候補に対する前記候補選択モデルにおけるスコアを、所定期間、一時的に小さくする
ことを特徴とする請求項３から５のいずれか一つに記載の情報処理装置。
【請求項７】
前記ユーザの健康情報を取得する取得部を備え、
前記ユーザメッセージは、
料理レシピに関するメッセージであり、
前記生成部は、
前記ユーザメッセージに対し、前記候補選択モデル、および前記健康情報を用いて前記候補メッセージを生成する
ことを特徴とする請求項１から６のいずれか一つに記載の情報処理装置。
【請求項８】
情報処理装置が実行する情報処理方法であって、
ユーザの端末装置から、ユーザメッセージを受信する受信工程と、
前記ユーザメッセージに対し、強化学習により学習された候補選択モデルを用いて絞り込まれた候補を含む候補メッセージを生成する生成工程と、
前記生成工程によって生成された前記候補メッセージを前記端末装置に送信する送信工程と、
を含むことを特徴とする情報処理方法。
【請求項９】
ユーザの端末装置から、ユーザメッセージを受信する受信手順と、
前記ユーザメッセージに対し、強化学習により学習された候補選択モデルを用いて絞り込まれた候補を含む候補メッセージを生成する生成手順と、
前記生成手順によって生成された前記候補メッセージを前記端末装置に送信する送信手順と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ユーザの端末装置から送信されたメッセージに対して、質問文をユーザの端末装置に送信するにあたり、質問文を送信する前に、複数のコンテンツ集合からコンテンツを選択してユーザの端末装置にコンテンツを送信する情報処理装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−６９６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記情報処理装置では、複数のコンテンツ集合から選択されるコンテンツは、平均的に選択されており、ユーザが所望するコンテンツがユーザの端末装置に送信されない場合があり、ユーザの満足度が低下する場合がある。
【０００５】
本願は、上記に鑑みてなされたものであって、ユーザの端末装置に送信されるメッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願にかかる情報処理装置は、受信部と、生成部と、送信部とを備える。受信部は、ユーザの端末装置から、ユーザメッセージを受信する。生成部は、ユーザメッセージに対し、強化学習により学習された候補選択モデルを用いて絞り込まれた候補を含む候補メッセージを生成する。送信部は、生成部によって生成された候補メッセージを端末装置に送信する。
【発明の効果】
【０００７】
実施形態の一態様によれば、ユーザの端末装置に送信されるメッセージに対するユーザの満足度を向上させる情報処理装置、情報処理方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理の説明図である。
【図２】図２は、情報処理システムの構成例を示す図である。
【図３】図３は、情報処理装置の構成例を示す図である。
【図４】図４は、情報処理装置によってメニューが絞り込まれる一例を示す図である。
【図５】図５は、端末装置の表示画面の一例を示す図である。
【図６】図６は、実施形態に係るメニュー選択処理の一例を示すフローチャートである。
【図７】図７は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願にかかる情報処理装置、情報処理方法、およびプログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願にかかる情報処理装置、情報処理方法、およびプログラムが限定されるものではない。
【００１０】
[１．情報処理]  
実施形態に係る情報処理の一例について説明する。図１は、実施形態に係る情報処理の説明図である。ここでは、情報処理装置１が、ユーザの端末装置２から受信したメニュー検索に対する処理を行う場合について説明するが、これに限定されることはない。
【００１１】
情報処理装置１は、ユーザの発話に基づくユーザメッセージである、メニュー検索データを受信する（ステップＳ１）。例えば、ユーザが「今日はキャベツを使いたい」と発話した場合に、情報処理装置１は、「今日はキャベツを使いたい」に対応したメニュー検索データを受信する。
【００１２】
情報処理装置１は、メニュー検索データから抽出した食材データに基づいて強化学習により学習された候補選択モデル（以下、強化学習モデルという。）を用いて、食材が使われるメニューを選択し、選択したメニューを含む応答文に対応するテキストデータ（以下、「応答文」と記載する場合がある。）を生成する（ステップＳ２）。応答文は、ユーザメッセージに対して、絞り込まれた候補を含む候補メッセージでもある。
【００１３】
強化学習モデルについて、詳しくは後述するが、実施形態に係る強化学習モデルは、食材データに対し、報酬の積算値（以下、スコアという。）が高いメニューが選択されるモデルである。
【００１４】
例えば、情報処理装置１は、食材として「キャベツ」を使ったメニューの中で、スコアが高い「ロールキャベツ」を選択する。そして情報処理装置１は、「ロールキャベツはどうでしょうか？」の応答文を生成する。
【００１５】
情報処理装置１は、生成した応答文に関するデータをユーザの端末装置２に送信する（ステップＳ３）。例えば、情報処理装置１は、「ロールキャベツはどうでしょうか？」とする応答文を送信する。
【００１６】
情報処理装置１は、ユーザの端末装置２から、端末装置２の操作に基づくメニュー選択結果を受信する（ステップＳ４）。例えば、情報処理装置１は、端末装置２の操作に基づいて、メニューとして「ロールキャベツ」が選択された情報を受信する。
【００１７】
情報処理装置１は、メニュー選択結果に基づいて強化学習モデルを更新する（ステップＳ５）。例えば、情報処理装置１は、メニューとして「ロールキャベツ」のスコアが高くなるように強化学習モデルを更新する。
【００１８】
このように、情報処理装置１は、ユーザの端末装置２から食材情報を含むメニュー検索データを受信し、受信したメニュー検索データに基づいて、強化学習モデルを用いて、メニューを選択する。そして、情報処理装置１は、選択したメニューを含む応答文を生成し、応答文を端末装置２に送信する。情報処理装置１は、強化学習モデルを用いて、メニューを選択することで、ユーザが好むメニューを素早く提供することができ、メニュー検索に対するユーザの満足度を向上させることができる。
【００１９】
[２．情報処理システム５の構成]
図２は、情報処理システム５の構成例を示す図である。図２に示すように、実施形態に係る情報処理システム５は、情報処理装置１と、端末装置２と、音声認識サーバ３と、音声合成サーバ４と、を備える。
【００２０】
端末装置２、音声認識サーバ３、音声合成サーバ４、および情報処理装置１は、ネットワークＮを介して無線または有線で互いに通信可能に接続される。ネットワークＮは、例えば、ＬＡＮ（Local  Area  Network）や、インターネットなどのＷＡＮ（Wide  Area  Network）である。
【００２１】
端末装置２は、スマートフォンや、タブレット型端末や、デスクトップ型ＰＣ（Personal  Computer）や、ノート型ＰＣや、ＰＤＡ（Personal  Digital  Assistant）等により実現される。
【００２２】
音声認識サーバ３は、音声情報に対して自然言語処理を実行し、音声データをテキストデータに変換する装置である。音声認識サーバ３は、端末装置２から発話の音声データを受信すると、音声データをテキストデータに変換する。音声認識サーバ３は、音声データを変換したテキストデータを情報処理装置１に送信する。
【００２３】
音声合成サーバ４は、情報処理装置１によって生成された応答文のテキストデータを音声データに変換する。音声合成サーバ４は、テキストデータを変換した音声データを、端末装置２に送信する。
【００２４】
情報処理装置１は、端末装置２から送信されたテキストデータ、または音声認識サーバ３を介して音声データが変換されたテキストデータに基づいて、応答文のテキストデータを生成する。情報処理装置１は、生成した応答文のテキストデータを、音声合成サーバ４、および端末装置２に送信する。
【００２５】
なお、音声認識サーバ３や音声合成サーバ４を、情報処理装置１と一体的に構成してもよい。また、端末装置２が、音声認識機能や、音声合成機能を有する場合には、これらの機能を用いて、音声データとテキストデータとを変換してもよい。
【００２６】
[３．情報処理装置１の構成]
次に、実施形態に係る情報処理装置１について、図３を参照し説明する。図３は、情報処理装置１の構成例を示す図である。
【００２７】
ここでは、端末装置２から、ユーザの発話による音声データが送信される例を一例として説明するが、テキストデータが送信されてもよい。
【００２８】
また、端末装置２（ユーザ）と情報処理装置１との間で、以下の応答が行われる例を一例として説明する。
（ユーザ発話１）：「今日はキャベツを使いたい」
（応答文１）    ：「ひき肉があれば、ロールキャベツはどうでしょう？」
（ユーザ発話２）：「お肉がないから違うのがいい」
（応答文２）    ：「もやしがあれば、野菜炒めはどうでしょう？」
（ユーザ発話３）：「卵と人参がある」
（応答文３）    ：「キャベツと卵と人参で作れるメニューを表示します」
【００２９】
情報処理装置１は、ユーザによりメニュー検索が行われた場合に、端末装置２（図２参照）から音声認識サーバ３（図２参照）を介して送信されたメニュー検索データに対する応答文を生成する応答生成装置である。情報処理装置１は、受信部１０と、送信部２０と、記憶部３０と、処理部４０とを備える。
【００３０】
受信部１０は、ネットワークＮを介して、端末装置２からユーザメッセージを受信する。ユーザメッセージには、発話に基づくメニュー検索データなどのテキストデータや、端末装置２の操作情報に関するデータが含まれる。端末装置２の操作情報は、テキストデータを含まない情報であり、例えば、端末装置２における選択情報（クリックやタッチ）などである。
【００３１】
記憶部３０は、対話モデル記憶部３１と、強化学習モデル記憶部３２と、メニュー記憶部３３と、食材記憶部３４とを備える。記憶部３０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【００３２】
対話モデル記憶部３１は、ユーザの発話内容に対して、予め設定された応答文を生成する対話モデルを記憶する。
【００３３】
対話モデルは、ユーザの発話内容に対応したテキストデータに対し、対となるテキストデータを生成するためのモデルである。例えば、対話モデルは、ユーザの発話によるテキストデータが、「今日は＊＊＊を使いたい」である場合に、「×××があれば、○○○はどうでしょう？」といった応答文や、「○○○はどうでしょう？」といった応答文を生成するためのモデルである。
【００３４】
強化学習モデル記憶部３２は、食材データに基づいてメニューを選択するための強化学習モデルを記憶する。強化学習モデルは、強化学習、例えば、Ｑ−ｌｅａｒｎｉｎｇにより学習される。
【００３５】
強化学習とは、或る状態に対して行動を与えた場合に、与えた行動によって得られる報酬が最大となるような行動を優先的に選択する学習方法である。状態に対し、様々な行動が試され、試された行動に応じた報酬を受け取ることで強化学習モデルが更新、すなわち学習される。
【００３６】
本実施形態に係る強化学習は、メニュー検索データから得られた食材データを「状態」とし、食材データに基づいて選択したメニューを「行動」とし、メニューを提供したユーザの応答に基づくスコアを「報酬」として行われる。強化学習モデルでは、各メニューに対してスコアが付されており、メニューを選択する際に、強化学習モデルが用いられると、スコアが最も高いメニューが選択される。
【００３７】
例えば、ユーザが選択したメニューの報酬は、「＋１」である。また、例えば、ユーザに提供されたメニューに対し、ユーザに選択されなかったメニューの報酬は、「−０．１」である。
【００３８】
なお、ユーザがメニューについてレビューを書いた場合には、レビューを書いたメニューの報酬を「＋２」としてもよい。メニューのレビューが書かれた場合には、実際にユーザが料理を作成したことがわかるので、報酬が大きくなる。
【００３９】
なお、強化学習モデルにおけるスコアの初期値は、例えば、一般的なメニューランキングに基づいて設定される。スコアの初期値は、人気度に応じて設定され、例えば、メニューとして人気が高いメニューに対するスコアの初期値が大きくなる。
【００４０】
メニュー記憶部３３は、メニュー、および必要な食材を含むレシピを対応付けて記憶する。例えば、「ロールキャベツ」のメニューについては、食材として「キャベツ」、「ひき肉」、および「玉ねぎ」が対応付けられて記憶されている。
【００４１】
食材記憶部３４は、後述する解析部４１によって抽出された食材データを一時的に記憶する。なお、記憶された食材データは、所定条件、例えば、ユーザによりメニューが選択された場合や、予め設定された所定時間が経過した場合に消去される。所定時間は、例えば、メニュー選択が終了すると判断できる時間である。
【００４２】
食材記憶部３４は、ユーザが有する食材データの状態をベクトルで表し、例えば、ユーザの有しているか不明な食材データを「０」、有していることがわかっている食材データを「１」、有していないことがわかっている食材データを「−１」として、記憶する。
【００４３】
処理部４０は、解析部４１と、メニュー選択部４２と、応答生成部４３と、学習部４４とを備える。
【００４４】
解析部４１は、受信部１０によって受信されたユーザメッセージが、テキストデータであるか、端末装置２の操作情報に関するメッセージであるかどうか判定する。また、解析部４１は、ユーザメッセージが端末装置２の操作情報に関するメッセージである場合、例えば、メニュー選択結果に関する操作情報であるかどうか判定する。
【００４５】
解析部４１は、テキストデータを含むメッセージである場合、形態素解析等を用いて、ユーザメッセージを解析し、テキストデータに含まれる単語群を抽出する。具体的には、解析部４１は、テキストデータに含まれる、食材データや、メニューデータを抽出する。また、解析部４１は、食材データや、メニューデータに対して肯定的な内容であるか、否定的な内容であるかを特定する。
【００４６】
すなわち、解析部４１は、テキストデータの内容がメニュー検索に関する内容であり、その内容が食材データに対して肯定的な内容であるか、否定的な内容であるかを特定する。解析部４１によって抽出された食材データは、食材記憶部３４に一時的に記憶される。
【００４７】
また、解析部４１は、テキストデータの内容が、メニュー選択結果に関する内容であり、その内容がメニューに対して肯定的な内容であるか、否定的な内容であるかを特定する。
【００４８】
解析部４１は、メニュー検索データとして、例えば、受信部１０によって（ユーザ発話１）：「今日はキャベツを使いたい」が受信されると、食材データとして「キャベツ」を抽出し、肯定的な内容であると特定する。これにより、食材記憶部３４には、食材データとして「キャベツ」を有することが記憶される。
【００４９】
また、解析部４１は、メニュー検索データとして、例えば、受信部１０によって（ユーザ発話２）：「お肉がないから違うのがいい」が受信されると、食材データとして「肉」を抽出し、否定的な内容であると特定する。これにより、食材記憶部３４には、食材データとして「肉」を有していないことがさらに記憶される。
【００５０】
また、解析部４１は、メニュー検索データとして、例えば、受信部１０によって（ユーザ発話３）：「卵と人参がある」が受信されると、食材データとして「卵」、および「人参」を抽出し、肯定的な内容であると特定する。これにより、食材記憶部３４には、食材データとして「卵」、および「人参」を有していることがさらに記憶される。
【００５１】
メニュー選択部４２は、食材記憶部３４に記憶された食材データに基づいて、強化学習モデルを用いて、スコアが高いメニューを選択する。
【００５２】
具体的には、メニュー選択部４２は、食材記憶部３４に記憶された食材データの食材が使用されるメニューの中で、スコアが高い順にメニューをランキングする。
【００５３】
例えば、（ユーザ発話１）：「今日はキャベツを使いたい」に基づき、食材記憶部３４に記憶された食材データが「キャベツ」のみであった場合には、食材として「キャベツ」が使用されるメニューの中でスコアが高いメニューをランキングする。
【００５４】
これにより、例えば、図４に示すように、「ロールキャベツ」、「回鍋肉」、「野菜炒め」、「野菜スープ」、「お好み焼き」、「サラダ」、「キャベツ炒飯」の順にランキングされた場合、メニュー選択部４２は、ランキングの中でスコアが一番高い「ロールキャベツ」をメニューとして選択する。図４は、情報処理装置１によってメニューが絞り込まれる一例を示す図である。
【００５５】
また、例えば、（ユーザ発話２）：「お肉がないから違うのがいい」に基づき、食材記憶部３４に記憶された食材データが「キャベツ」、および「肉」であり、「肉」を有していないことがわかると、メニュー選択部４２は、食材として「キャベツ」が使用され、「肉」が使用されないメニューの中でスコアが高いメニューをランキングする。
【００５６】
これにより、例えば、図４に示すように、「野菜炒め」、「野菜スープ」、「お好み焼き」、「サラダ」、「キャベツ炒飯」の順にランキングされる。このランキングでは、食材データが「キャベツ」のみであった場合のランキングに対して、食材として「肉」が使用される「ロールキャベツ」、および「回鍋肉」が除外され、メニューが絞り込まれる。この場合、メニュー選択部４２は、ランキングの中でスコアが一番高い「野菜炒め」をメニューとして選択する。
【００５７】
また、例えば、（ユーザ発話３）：「卵と人参がある」に基づき、食材記憶部３４に記憶された食材データが「キャベツ」、「肉」、「卵」、および「人参」であり、「肉」を有していないことがわかると、メニュー選択部４２は、食材として「キャベツ」、「卵」、および「人参」が使用され、「肉」が使用されないメニューの中でスコアが高いメニューをランキングする。
【００５８】
これにより、例えば、図４に示すように、「野菜スープ」、「キャベツ炒飯」の順にランキングされる。このランキングでは、食材データが「キャベツ」、および「肉」であり、「肉」を有していない場合のランキングに対して、食材として「卵」、または「人参」が使用されない「野菜炒め」、「お好み焼き」、および「サラダ」が除外され、メニューが絞り込まれる。
【００５９】
メニュー選択部４２は、スコアが所定スコア以上となるメニューが所定数、例えば３つ以下となると、全てのメニューを選択する。所定スコアは、予め設定された値である。例えば、スコアが所定スコア以上となるメニューとして、ランキングに「野菜スープ」、および「キャベツ炒飯」が残った場合、メニュー選択部４２は、メニューの中でスコアが一番高い「野菜スープ」に加えて「キャベツ炒飯」もメニューとして選択する。
【００６０】
なお、メニュー選択部４２は、メニューの検索を開始してから、所定回数の応答を行った場合に、ランキングの中で上位のメニューを所定数選択してもよい。所定回数は、予め設定された回数であり、例えば、３回である。
【００６１】
応答生成部４３は、メニュー選択部４２によって選択されたメニュー、および対話モデルに基づいて、選択されたメニューを含む応答文を生成する。
【００６２】
応答生成部４３は、メニュー選択部４２によって選択されたメニューで必要な食材であり、食材記憶部３４に食材データとして記憶されていない食材の中で重要な食材の有無を尋ねる応答文を生成する。つまり、応答生成部４３は、ユーザに対し、食材データを引き出すようなヒントを含んだ応答文を生成する。
【００６３】
例えば、応答生成部４３は、メニューに対する食材の優先順位に基づき、情報が無い食材の中で優先度が高い食材の有無を尋ねる応答文を生成する。なお、食材の優先順位は、メニューとともに、メニュー記憶部３３に記憶されている。
【００６４】
例えば、「ロールキャベツ」に対して、食材の優先順位として「キャベツ」、「肉」、「玉ねぎ」、「パン粉」の順に優先順位が付けられており、食材記憶部３４に食材データとして「キャベツ」が記憶されている場合、応答生成部４３は、「肉」の有無を尋ねる応答文を生成する。
【００６５】
例えば、（ユーザ発話１）：「今日はキャベツを使いたい」に対して、応答生成部４３は、（応答文１）：「ひき肉があれば、ロールキャベツはどうでしょう？」を生成する。
【００６６】
また、（ユーザ発話２）：「お肉がないから違うのがいい」に対して、メニュー選択部４２によってメニューとして「野菜炒め」が選択され、食材の優先順位として「もやし」が高い場合、応答生成部４３は、（応答文２）：「もやしがあれば、野菜炒めはどうでしょう？」を生成する。
【００６７】
また、（ユーザ発話３）：「卵と人参がある」に対しては、メニュー選択部４２によって「野菜スープ」、および「キャベツ炒飯」が選択され、メニューが絞られたので、応答生成部４３は、（応答文３）：「キャベツと卵と人参で作れるメニューを表示します」を生成する。
【００６８】
なお、応答生成部４３は、メニュー選択部４２によって選択されたメニューのみを含む応答文を生成してもよい。
【００６９】
送信部２０は、ネットワークＮを介して、端末装置２や、音声合成サーバ４（図２参照）に、応答生成部４３によって生成された応答文を送信する。また、送信部２０は、メニューが絞られ、例えば、メニュー選択部４２によって「野菜スープ」、および「キャベツ炒飯」が選択された場合には、応答文に加えて、「野菜スープ」、および「キャベツ炒飯」のレシピデータを端末装置２に送信する。
【００７０】
学習部４４は、ユーザによるメニュー選択結果に基づいて、強化学習モデルを更新する。学習部４４は、ユーザによるメニュー選択結果に基づいて、メニュー選択部４２によって選択されたメニューに対する報酬を与える。
【００７１】
例えば、（応答文３）：「キャベツと卵と人参で作れるメニューを表示します」が端末装置２に送信され、また「野菜スープ」、および「キャベツ炒飯」のレシピが、図５に示すように端末装置２に表示されたとする。図５は、端末装置２の表示画面の一例を示す図である。
【００７２】
そして、「野菜スープ」が、ユーザにより選択されると、学習部４４は、「野菜スープ」のメニューに報酬「＋１」を与え、強化学習モデルを更新する。
【００７３】
また、学習部４４は、（応答文１）に含まれる「ロールキャベツ」、（応答文２）に含まれる「野菜炒め」、および最終的に選択されなかった「キャベツ炒飯」のメニューに報酬「−０．１」を与え、強化学習モデルを更新する。
【００７４】
これにより、メニュー選択部４２では、次回以降において、今回のメニュー選択時よりも、「野菜スープ」が選択される確率が高くなり、「ロールキャベツ」、「野菜炒め」、および「キャベツ炒飯」が選択される確率が低くなる。すなわち、ユーザの好みを反映したメニュー選択が行われ、情報処理装置１は、ユーザが好むメニューを素早く提供できるようになる。
【００７５】
なお、学習部４４は、例えば、（応答文１）：「ひき肉があれば、ロールキャベツはどうでしょう？」に対し、ユーザが「ロールキャベツいいね」などと発話し、メニューが選択され、決定された場合には、（応答文１）に含まれる「ロールキャベツ」のメニューに報酬「＋１」を与え、強化学習モデルを更新する。
【００７６】
また、学習部４４は、応答生成文のテキストデータが送信された後に、所定時間、ユーザの発話が無い場合、例えば、（応答文１）：「ひき肉があれば、ロールキャベツはどうでしょう？」に対し、所定時間が経過しても、ユーザの次の発話が無い場合には、（応答文１）に含まれる「ロールキャベツ」のメニューに報酬「−０．１」を与え、強化学習モデルを更新する。
【００７７】
[４．メニュー選択処理]
次に、実施形態に係るメニュー選択処理について図６を参照し説明する。図６は、実施形態に係るメニュー選択処理の一例を示すフローチャートである。
【００７８】
処理部４０は、受信部１０によってユーザメッセージが受信されると（ステップＳ１０）、ユーザメッセージがテキストデータを含むメッセージであるかどうか判定する（ステップＳ１１）。
【００７９】
処理部４０は、ユーザメッセージがテキストデータを含むメッセージである場合（ステップＳ１１：Ｙｅｓ）、テキストデータを解析し、テキストデータに含まれる食材データや、メニューデータを抽出し、これらのデータに対してテキストデータの内容が肯定的な内容であるか、否定的な内容であるか特定する（ステップＳ１２）。
【００８０】
処理部４０は、テキストデータの内容が、食材データを含み、メニュー検索に関する内容である場合（ステップＳ１３：Ｙｅｓ）、抽出した食材データを食材記憶部３４に記憶させる（ステップＳ１４）。
【００８１】
処理部４０は、食材記憶部３４に記憶されている食材データに基づいて、強化学習モデルを用いて、スコアが最も高いメニューを選択する（ステップＳ１５）。
【００８２】
処理部４０は、選択されたメニュー、および対話モデルに基づいて、選択されたメニューを含む応答文を生成する（ステップＳ１６）。
【００８３】
処理部４０は、生成された応答文を送信部２０からユーザの端末装置２へ送信する（ステップＳ１７）。
【００８４】
また、処理部４０は、ユーザメッセージがテキストデータを含まないメッセージ、すなわち、端末装置２の操作情報に関するメッセージである場合（ステップＳ１１：Ｎｏ）、またはテキストデータの内容が、メニュー検索に関する内容ではない場合（ステップＳ１３：Ｎｏ）には、ユーザメッセージがメニュー選択結果に関する内容であるかどうか判定する（ステップＳ１８）。
【００８５】
処理部４０は、ユーザメッセージがメニュー選択結果に関する内容である場合（ステップＳ１８：Ｙｅｓ）、メニュー選択結果に基づいて、強化学習モデルを更新する（ステップＳ１９）。
【００８６】
処理部４０は、テキストデータの内容が、メニュー選択結果に関する内容ではない場合（ステップＳ１８：Ｎｏ）、今回の処理を終了する。
【００８７】
[５．変形例]
上記実施形態では、メニュー選択部４２は、ランキングに対してスコアが一番高いメニューを選択したが、ランキングの中から所定の確率でメニューを選択してもよい。例えば、スコアが最も高いメニューに対しては、選択される確率を５０％とし、スコアがその次に高いメニューに対しては、選択される確率を２０％などとしてもよい。
【００８８】
これにより、メニュー選択部４２によって同じメニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【００８９】
また、メニュー選択部４２は、食材に対する特徴を表す実数ベクトルにより表される食材データに基づいて、メニューを選択してもよい。例えば、大量のレシピ文章から、Ｓｋｉｐ−ｇｒａｍモデルなどを用いて各食材に対応する実数ベクトル表現を学習し、メニュー選択部４２は、実数ベクトル表現に基づいて、メニューを選択する。
【００９０】
食材データを実数ベクトルとして表すことで、メニュー選択部４２は、食材を表す実数ベクトルの類似度により、予め設定された代替可能な食材を用いたメニューの中から、スコアが高いメニューを選択することが可能となる。
【００９１】
また、実数ベクトル表現により食材データを表す場合には、強化学習モデルと対話モデルとを、ニューラルネットワークにより１つのモデルとして学習し、応答文を生成してもよい。
【００９２】
また、メニュー選択部４２は、例えば、所定のタイミングで、ユーザが作ったことがないメニューや、ランキングのスコアが低いメニューを選択してもよい。所定のタイミングは、予め設定されており、例えば、数か月に一度のタイミングである。また、学習部４４は、Ｗｅｂサイト上の履歴に基づく協調フィルタリングの推薦結果に基づいて、スコアに対して重み付けを行ってもよい。
【００９３】
これにより、メニュー選択部４２によって同じメニューが選択されることを抑制し、ユーザが予想しないメニューを提供することができる。
【００９４】
また、食材データを記憶する所定時間を食材の消費時間としてもよい。食材記憶部３４は、食材の消費時間が経過した後に、食材データを消去する。食材の消費時間は、例えば、食材の平均消費時間や、平均消費時間から食材の存在確率、例えば、選択されたメニューで使用される量に関連付けられた確率に応じて低下させた時間、すなわち、食材が全て消費されずに残っていると推測可能な時間である。
【００９５】
メニュー選択部４２は、今回のメニュー検索で得られた食材データに加えて、食材の消費時間が経過しておらず、食材記憶部３４に記憶された食材データ、例えば、以前のメニュー検索時に得られた食材データであり、全て消費されていないと推測される食材データに基づいて、メニューを選択する。
【００９６】
また、応答生成部４３は、食材の残量を、ユーザに問いかける内容の応答文を生成し、食材記憶部３４は、食材の残量を記憶してもよい。
【００９７】
これにより、ユーザに選択され易いメニューを早期に提案することができ、ユーザの満足度を向上させることができる。
【００９８】
また、学習部４４は、例えば、ユーザにより選択されたメニューに対し、類似メニューについては、所定期間、スコアを一時的に小さくしてもよい。類似メニューとは、ユーザに選択されたメニューと同一、または類似するメニューである。類似するメニューとは、或る食材に対して、代替食材を使用して作成可能なメニューである。所定期間は、予め設定されており、例えば、１か月である。例えば、学習部４４は、類似メニューに対するスコアが小さくなるように、スコアに対して重み付けを行う。
【００９９】
これにより、短い期間の間に、メニュー選択部４２によって類似メニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【０１００】
また、メニュー選択部４２は、ユーザの健康情報に基づいてメニューを選択してもよい。健康情報は、例えば、体重や、血圧や、運動量や、日々の食事に関する情報である。健康情報は、例えば、解析部４１によって、ユーザとの対話によるテキストデータより抽出され、取得される。また、健康情報は、外部サービスを介して取得されてもよい。例えば、学習部４４は、健康状態を、強化学習の「状態」とし、健康情報に基づいて、健康性が高いメニューのスコアが大きくなるように、スコアに対して重み付けを行う。
【０１０１】
これにより、健康的なメニューをユーザに提供することができる。
【０１０２】
また、メニュー選択部４２は、ユーザとの対話などにより取得されたユーザの好み、ユーザの発話履歴などの情報に基づいて、メニューを選択してもよい。例えば、学習部４４は、ユーザの好みなどに応じて、スコアに対して重み付けを行う。また、応答生成部４３は、ユーザの好みなどに基づいて、応答文を生成してもよい。例えば、応答生成部４３は、「ロールキャベツが好みでないなら、野菜炒めはどうでしょう？」などと応答文を生成してもよい。
【０１０３】
これにより、自然な発話を実現し、ユーザが好むメニューを早期に提供することができる。
【０１０４】
また、メニュー選択部４２は、ユーザの食材の好みの情報に基づいて、メニューを選択してもよい。例えば、ユーザが「ピーマンは嫌い」と発話した場合には、食材記憶部３４は、所定時間では消去されない長期的情報として「ピーマン」が無いことを記憶する。また、学習部４４が、食材として「ピーマン」を使用するメニューのスコアを小さくしてもよい。
【０１０５】
これにより、食材として「ピーマン」を使用するメニューが選択され難くなり、ユーザの好みに応じたメニューを提供することができる。
【０１０６】
また、メニュー選択部４２は、所定のメニューを表示させないようにすることも可能である。例えば、アレルギーを持ったユーザに対しては、アレルギー食材を含むメニューが選択されないようにしてもよい。例えば、学習部４４は、アレルギー食材を含むメニューのスコアが小さくなるように、スコアに対して重み付けを行う。また、メニュー選択部４２は、アレルギー食材を含むメニューをランキングから除外してもよい。
【０１０７】
これにより、ユーザが好まないメニューを提供することを抑制することができる。
【０１０８】
上記実施形態では、応答生成部４３は、メニュー選択部４２によって選択されたメニューを含んだ応答文を生成したが、メニューを含まない応答文を生成してもよい。例えば、応答生成部４３は、メニューを含まない「どんな食材がありますか？」といった応答文を生成してもよい。これにより、ユーザが有する食材データをユーザから引き出すことができ、情報処理装置１は、多くの食材データに基づいて、ユーザが好むメニューを早期に提供することができる。
【０１０９】
また、応答生成部４３は、複数のメニューを含んだ応答文を生成してもよい。例えば、上記した（応答文２）に対し「もやしがあれば、野菜炒めが作れますが、無ければサラダはどうでしょう？」といった応答文を生成してもよい。
【０１１０】
これにより、ユーザが好むメニューを早期に提供することができる。
【０１１１】
上記実施形態では、学習部４４は、ユーザによるメニュー選択結果に基づいて報酬を付与し、強化学習モデルを更新したが、ユーザとの応答回数（対話回数）を考慮してもよい。例えば、ユーザがメニューを選択し、それまでに複数回の応答があった場合には、応答回数に応じて、選択されたメニューに報酬として、「＋１／応答回数」を与えてもよい。
【０１１２】
また、学習部４４は、ユーザによってメニューが選択された場合の報酬を、メニュー選択工程における食材のデータ量に応じて変更してもよい。
【０１１３】
例えば、学習部４４は、ユーザがメニュー検索を行い、１品目のメニューを選択した後に、２品目のメニュー検索を行い、２品目のメニューを選択した場合には、２品目のメニューに対する報酬を、１品目のメニューに対する報酬よりも小さくする。
【０１１４】
２品目のメニュー検索は、１品目のメニューを選択する際にユーザから食材に関する情報が得られた状態で行われている。そのため、例えば、同じ応答回数で、１品目のメニューと２品目のメニューとがユーザに選択された場合であっても、情報処理装置１における１品目のメニュー選択は、２品目のメニュー選択よりも少ない食材データに基づいて行われている。
【０１１５】
そのため、学習部４４は、２品目のメニューに対する報酬を、１品目のメニューに対する報酬よりも小さくし、食材データが少ない状態でユーザに選択されたメニューに対しては、報酬を大きくし、強化学習モデルの学習を行う。
【０１１６】
例えば、１品目のメニューに対する報酬を「＋１」とし、２品目のメニューに対する報酬に重みを付けて「＋０．１」とする。
【０１１７】
これにより、少ない食材のデータ量に基づいて、ユーザの好むメニューを提供できた場合には、報酬が大きくなり、ユーザが好むメニューを早期に提供することができる。
【０１１８】
[６．効果]
実施形態に係る情報処理装置１は、受信部１０と、応答生成部４３と、送信部２０とを備える。受信部１０は、ユーザの端末装置２から、ユーザメッセージを受信する。応答生成部４３は、ユーザメッセージに対し、強化学習モデル（候補選択モデル）を用いて、絞り込まれたメニューを含む応答文を生成する。送信部２０は、生成された応答文を端末装置２に送信する。
【０１１９】
これにより、ユーザのメニュー検索に対し、強化学習モデルを用いて選択したメニューを含む応答文を提供することができ、ユーザの好むメニューを早期に提供することができ、ユーザの満足度を向上させることができる。
【０１２０】
応答生成部４３は、応答文に対する新たなユーザメッセージに対し、さらにメニューを絞り込んだ応答文を生成する。
【０１２１】
これにより、メニューをさらに絞り込んだ応答文を提供できるため、ユーザの好むメニューを早期に提供することができ、ユーザの満足度を向上させることができる。
【０１２２】
情報処理装置１は、応答文に対するユーザメッセージに応じて得られた報酬に基づいて強化学習モデルを学習する学習部４４を備える。応答生成部４３は、学習された強化学習モデルを用いて、ユーザメッセージを生成する。
【０１２３】
これにより、過去に得られた報酬に基づいて学習された強化学習モデルを用いて、ユーザの好みに応じたメニューを早期に提供することができる。
【０１２４】
学習部４４は、ユーザによってメニューが選択されるまでの応答回数が少ないほど、報酬を大きくする。
【０１２５】
これにより、ユーザの好むメニューを素早く提供できた場合には、報酬が大きくなるので、ユーザが好むメニューを早期に提供することができる。
【０１２６】
学習部４４は、スコアの初期値を人気度に応じて設定し、人気度が高いほどスコアの初期値を大きくする。
【０１２７】
これにより、強化学習の初期段階で、人気度が低いメニューがユーザに提供されることを抑制し、ユーザの満足度が低下することを抑制することができる。
【０１２８】
学習部４４は、ユーザによって選択されたメニューと、同一、または類似する類似メニューに対するスコアを、所定期間、一時的に小さくする。
【０１２９】
これにより、短い期間の間に、メニュー選択部４２によって類似メニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【０１３０】
応答生成部４３は、強化学習モデル、およびユーザの健康状態を用いて応答文を生成する。
【０１３１】
これにより、健康的なメニューをユーザに提供することができる。
【０１３２】
[７．ハードウェアの構成]
上記してきた実施形態に係る情報処理装置１は、例えば図７に示すような構成のコンピュータ１０００によって実現される。図７は、情報処理装置１の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１３３】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０１３４】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、ネットワークＮを介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が決定したデータをネットワークＮを介して他の機器へ送信する。
【０１３５】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、決定したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０１３６】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１３７】
例えば、コンピュータ１０００が実施形態に係る情報処理装置１として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、処理部４０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０１３８】
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１３９】
[８．その他]  
上記した、強化学習モデルは、上記したメニュー検索以外でも使用することができる。例えば、ユーザとの対話システムに用いることができる。対話システムにおいては、「状態」をユーザの発話内容とし、「行動」をユーザへの提案（応答内容）とし、「報酬」を提案に対するユーザの応答とし、強化学習を用いることで、ユーザの満足度が高い提案を行うことが可能となる。
【０１４０】
例えば、ユーザからの問いかけ（商品検索）に対し、ユーザの発話などに基づいた過去の提案内容からユーザの好みを学習した強化学習モデルを用いて、ユーザの満足度の高い提案（ユーザが満足する商品を提案）をすることができる。
【０１４１】
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１４２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１４３】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１４４】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、受信部１０は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【０１４５】
１    情報処理装置
２    端末装置
１０  受信部
２０  送信部
３０  記憶部
４０  処理部
４１  解析部
４２  メニュー選択部
４３  応答生成部（生成部）
４４  学習部
【図１】
2018045413.tif 000003
【図２】
2018045413.tif 000004
【図３】
2018045413.tif 000005
【図４】
2018045413.tif 000006
【図５】
2018045413.tif 000007
【図６】
2018045413.tif 000008
【図７】
2018045413.tif 000009