【文献】
南 泰浩, 外1名,強化学習の最近の発展,計測と制御,日本,公益社団法人計測自動制御学会,2013年10月10日,第52巻 第10号,p.916-921
【文献】
岡田 量太, 外2名,ユーザ教示とデータ通信によるQ−table生成機構を有するユビキタスQ学習エンジンの実装,情報処理学会論文誌,日本,社団法人情報処理学会,2007年 7月15日,第48巻 第7号 ,p.2362-2371
【文献】
岸本 康秀, 外2名,階層的強化学習を適用したPOMDPによる音声対話制御,情報処理学会研究報告 平成22年度▲5▼ [CD−ROM],日本,一般社団法人情報処理学会,2011年 2月15日
【文献】
高間 康史, 外2名,擬人化エージェントにおける音声対話を通じての協調的応答戦略の自動学習,人工知能学会誌 ,社団法人人工知能学会,1997年 5月 1日,第12巻 第3号,p.456-465
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下に、本願にかかる情報処理装置、情報処理方法、およびプログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願にかかる情報処理装置、情報処理方法、およびプログラムが限定されるものではない。
【0010】
[1.情報処理]
実施形態に係る情報処理の一例について説明する。
図1は、実施形態に係る情報処理の説明図である。ここでは、情報処理装置1が、ユーザの端末装置2から受信したメニュー検索に対する処理を行う場合について説明するが、これに限定されることはない。
【0011】
情報処理装置1は、ユーザの発話に基づくユーザメッセージである、メニュー検索データを受信する(ステップS1)。例えば、ユーザが「今日はキャベツを使いたい」と発話した場合に、情報処理装置1は、「今日はキャベツを使いたい」に対応したメニュー検索データを受信する。
【0012】
情報処理装置1は、メニュー検索データから抽出した食材データに基づいて強化学習により学習された候補選択モデル(以下、強化学習モデルという。)を用いて、食材が使われるメニューを選択し、選択したメニューを含む応答文に対応するテキストデータ(以下、「応答文」と記載する場合がある。)を生成する(ステップS2)。応答文は、ユーザメッセージに対して、絞り込まれた候補を含む候補メッセージでもある。
【0013】
強化学習モデルについて、詳しくは後述するが、実施形態に係る強化学習モデルは、食材データに対し、報酬の積算値(以下、スコアという。)が高いメニューが選択されるモデルである。
【0014】
例えば、情報処理装置1は、食材として「キャベツ」を使ったメニューの中で、スコアが高い「ロールキャベツ」を選択する。そして情報処理装置1は、「ロールキャベツはどうでしょうか?」の応答文を生成する。
【0015】
情報処理装置1は、生成した応答文に関するデータをユーザの端末装置2に送信する(ステップS3)。例えば、情報処理装置1は、「ロールキャベツはどうでしょうか?」とする応答文を送信する。
【0016】
情報処理装置1は、ユーザの端末装置2から、端末装置2の操作に基づくメニュー選択結果を受信する(ステップS4)。例えば、情報処理装置1は、端末装置2の操作に基づいて、メニューとして「ロールキャベツ」が選択された情報を受信する。
【0017】
情報処理装置1は、メニュー選択結果に基づいて強化学習モデルを更新する(ステップS5)。例えば、情報処理装置1は、メニューとして「ロールキャベツ」のスコアが高くなるように強化学習モデルを更新する。
【0018】
このように、情報処理装置1は、ユーザの端末装置2から食材情報を含むメニュー検索データを受信し、受信したメニュー検索データに基づいて、強化学習モデルを用いて、メニューを選択する。そして、情報処理装置1は、選択したメニューを含む応答文を生成し、応答文を端末装置2に送信する。情報処理装置1は、強化学習モデルを用いて、メニューを選択することで、ユーザが好むメニューを素早く提供することができ、メニュー検索に対するユーザの満足度を向上させることができる。
【0019】
[2.情報処理システム5の構成]
図2は、情報処理システム5の構成例を示す図である。
図2に示すように、実施形態に係る情報処理システム5は、情報処理装置1と、端末装置2と、音声認識サーバ3と、音声合成サーバ4と、を備える。
【0020】
端末装置2、音声認識サーバ3、音声合成サーバ4、および情報処理装置1は、ネットワークNを介して無線または有線で互いに通信可能に接続される。ネットワークNは、例えば、LAN(Local Area Network)や、インターネットなどのWAN(Wide Area Network)である。
【0021】
端末装置2は、スマートフォンや、タブレット型端末や、デスクトップ型PC(Personal Computer)や、ノート型PCや、PDA(Personal Digital Assistant)等により実現される。
【0022】
音声認識サーバ3は、音声情報に対して自然言語処理を実行し、音声データをテキストデータに変換する装置である。音声認識サーバ3は、端末装置2から発話の音声データを受信すると、音声データをテキストデータに変換する。音声認識サーバ3は、音声データを変換したテキストデータを情報処理装置1に送信する。
【0023】
音声合成サーバ4は、情報処理装置1によって生成された応答文のテキストデータを音声データに変換する。音声合成サーバ4は、テキストデータを変換した音声データを、端末装置2に送信する。
【0024】
情報処理装置1は、端末装置2から送信されたテキストデータ、または音声認識サーバ3を介して音声データが変換されたテキストデータに基づいて、応答文のテキストデータを生成する。情報処理装置1は、生成した応答文のテキストデータを、音声合成サーバ4、および端末装置2に送信する。
【0025】
なお、音声認識サーバ3や音声合成サーバ4を、情報処理装置1と一体的に構成してもよい。また、端末装置2が、音声認識機能や、音声合成機能を有する場合には、これらの機能を用いて、音声データとテキストデータとを変換してもよい。
【0026】
[3.情報処理装置1の構成]
次に、実施形態に係る情報処理装置1について、
図3を参照し説明する。
図3は、情報処理装置1の構成例を示す図である。
【0027】
ここでは、端末装置2から、ユーザの発話による音声データが送信される例を一例として説明するが、テキストデータが送信されてもよい。
【0028】
また、端末装置2(ユーザ)と情報処理装置1との間で、以下の応答が行われる例を一例として説明する。
(ユーザ発話1):「今日はキャベツを使いたい」
(応答文1) :「ひき肉があれば、ロールキャベツはどうでしょう?」
(ユーザ発話2):「お肉がないから違うのがいい」
(応答文2) :「もやしがあれば、野菜炒めはどうでしょう?」
(ユーザ発話3):「卵と人参がある」
(応答文3) :「キャベツと卵と人参で作れるメニューを表示します」
【0029】
情報処理装置1は、ユーザによりメニュー検索が行われた場合に、端末装置2(
図2参照)から音声認識サーバ3(
図2参照)を介して送信されたメニュー検索データに対する応答文を生成する応答生成装置である。情報処理装置1は、受信部10と、送信部20と、記憶部30と、処理部40とを備える。
【0030】
受信部10は、ネットワークNを介して、端末装置2からユーザメッセージを受信する。ユーザメッセージには、発話に基づくメニュー検索データなどのテキストデータや、端末装置2の操作情報に関するデータが含まれる。端末装置2の操作情報は、テキストデータを含まない情報であり、例えば、端末装置2における選択情報(クリックやタッチ)などである。
【0031】
記憶部30は、対話モデル記憶部31と、強化学習モデル記憶部32と、メニュー記憶部33と、食材記憶部34とを備える。記憶部30は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0032】
対話モデル記憶部31は、ユーザの発話内容に対して、予め設定された応答文を生成する対話モデルを記憶する。
【0033】
対話モデルは、ユーザの発話内容に対応したテキストデータに対し、対となるテキストデータを生成するためのモデルである。例えば、対話モデルは、ユーザの発話によるテキストデータが、「今日は***を使いたい」である場合に、「×××があれば、○○○はどうでしょう?」といった応答文や、「○○○はどうでしょう?」といった応答文を生成するためのモデルである。
【0034】
強化学習モデル記憶部32は、食材データに基づいてメニューを選択するための強化学習モデルを記憶する。強化学習モデルは、強化学習、例えば、Q−learningにより学習される。
【0035】
強化学習とは、或る状態に対して行動を与えた場合に、与えた行動によって得られる報酬が最大となるような行動を優先的に選択する学習方法である。状態に対し、様々な行動が試され、試された行動に応じた報酬を受け取ることで強化学習モデルが更新、すなわち学習される。
【0036】
本実施形態に係る強化学習は、メニュー検索データから得られた食材データを「状態」とし、食材データに基づいて選択したメニューを「行動」とし、メニューを提供したユーザの応答に基づくスコアを「報酬」として行われる。強化学習モデルでは、各メニューに対してスコアが付されており、メニューを選択する際に、強化学習モデルが用いられると、スコアが最も高いメニューが選択される。
【0037】
例えば、ユーザが選択したメニューの報酬は、「+1」である。また、例えば、ユーザに提供されたメニューに対し、ユーザに選択されなかったメニューの報酬は、「−0.1」である。
【0038】
なお、ユーザがメニューについてレビューを書いた場合には、レビューを書いたメニューの報酬を「+2」としてもよい。メニューのレビューが書かれた場合には、実際にユーザが料理を作成したことがわかるので、報酬が大きくなる。
【0039】
なお、強化学習モデルにおけるスコアの初期値は、例えば、一般的なメニューランキングに基づいて設定される。スコアの初期値は、人気度に応じて設定され、例えば、メニューとして人気が高いメニューに対するスコアの初期値が大きくなる。
【0040】
メニュー記憶部33は、メニュー、および必要な食材を含むレシピを対応付けて記憶する。例えば、「ロールキャベツ」のメニューについては、食材として「キャベツ」、「ひき肉」、および「玉ねぎ」が対応付けられて記憶されている。
【0041】
食材記憶部34は、後述する解析部41によって抽出された食材データを一時的に記憶する。なお、記憶された食材データは、所定条件、例えば、ユーザによりメニューが選択された場合や、予め設定された所定時間が経過した場合に消去される。所定時間は、例えば、メニュー選択が終了すると判断できる時間である。
【0042】
食材記憶部34は、ユーザが有する食材データの状態をベクトルで表し、例えば、ユーザの有しているか不明な食材データを「0」、有していることがわかっている食材データを「1」、有していないことがわかっている食材データを「−1」として、記憶する。
【0043】
処理部40は、解析部41と、メニュー選択部42と、応答生成部43と、学習部44とを備える。
【0044】
解析部41は、受信部10によって受信されたユーザメッセージが、テキストデータであるか、端末装置2の操作情報に関するメッセージであるかどうか判定する。また、解析部41は、ユーザメッセージが端末装置2の操作情報に関するメッセージである場合、例えば、メニュー選択結果に関する操作情報であるかどうか判定する。
【0045】
解析部41は、テキストデータを含むメッセージである場合、形態素解析等を用いて、ユーザメッセージを解析し、テキストデータに含まれる単語群を抽出する。具体的には、解析部41は、テキストデータに含まれる、食材データや、メニューデータを抽出する。また、解析部41は、食材データや、メニューデータに対して肯定的な内容であるか、否定的な内容であるかを特定する。
【0046】
すなわち、解析部41は、テキストデータの内容がメニュー検索に関する内容であり、その内容が食材データに対して肯定的な内容であるか、否定的な内容であるかを特定する。解析部41によって抽出された食材データは、食材記憶部34に一時的に記憶される。
【0047】
また、解析部41は、テキストデータの内容が、メニュー選択結果に関する内容であり、その内容がメニューに対して肯定的な内容であるか、否定的な内容であるかを特定する。
【0048】
解析部41は、メニュー検索データとして、例えば、受信部10によって(ユーザ発話1):「今日はキャベツを使いたい」が受信されると、食材データとして「キャベツ」を抽出し、肯定的な内容であると特定する。これにより、食材記憶部34には、食材データとして「キャベツ」を有することが記憶される。
【0049】
また、解析部41は、メニュー検索データとして、例えば、受信部10によって(ユーザ発話2):「お肉がないから違うのがいい」が受信されると、食材データとして「肉」を抽出し、否定的な内容であると特定する。これにより、食材記憶部34には、食材データとして「肉」を有していないことがさらに記憶される。
【0050】
また、解析部41は、メニュー検索データとして、例えば、受信部10によって(ユーザ発話3):「卵と人参がある」が受信されると、食材データとして「卵」、および「人参」を抽出し、肯定的な内容であると特定する。これにより、食材記憶部34には、食材データとして「卵」、および「人参」を有していることがさらに記憶される。
【0051】
メニュー選択部42は、食材記憶部34に記憶された食材データに基づいて、強化学習モデルを用いて、スコアが高いメニューを選択する。
【0052】
具体的には、メニュー選択部42は、食材記憶部34に記憶された食材データの食材が使用されるメニューの中で、スコアが高い順にメニューをランキングする。
【0053】
例えば、(ユーザ発話1):「今日はキャベツを使いたい」に基づき、食材記憶部34に記憶された食材データが「キャベツ」のみであった場合には、食材として「キャベツ」が使用されるメニューの中でスコアが高いメニューをランキングする。
【0054】
これにより、例えば、
図4に示すように、「ロールキャベツ」、「回鍋肉」、「野菜炒め」、「野菜スープ」、「お好み焼き」、「サラダ」、「キャベツ炒飯」の順にランキングされた場合、メニュー選択部42は、ランキングの中でスコアが一番高い「ロールキャベツ」をメニューとして選択する。
図4は、情報処理装置1によってメニューが絞り込まれる一例を示す図である。
【0055】
また、例えば、(ユーザ発話2):「お肉がないから違うのがいい」に基づき、食材記憶部34に記憶された食材データが「キャベツ」、および「肉」であり、「肉」を有していないことがわかると、メニュー選択部42は、食材として「キャベツ」が使用され、「肉」が使用されないメニューの中でスコアが高いメニューをランキングする。
【0056】
これにより、例えば、
図4に示すように、「野菜炒め」、「野菜スープ」、「お好み焼き」、「サラダ」、「キャベツ炒飯」の順にランキングされる。このランキングでは、食材データが「キャベツ」のみであった場合のランキングに対して、食材として「肉」が使用される「ロールキャベツ」、および「回鍋肉」が除外され、メニューが絞り込まれる。この場合、メニュー選択部42は、ランキングの中でスコアが一番高い「野菜炒め」をメニューとして選択する。
【0057】
また、例えば、(ユーザ発話3):「卵と人参がある」に基づき、食材記憶部34に記憶された食材データが「キャベツ」、「肉」、「卵」、および「人参」であり、「肉」を有していないことがわかると、メニュー選択部42は、食材として「キャベツ」、「卵」、および「人参」が使用され、「肉」が使用されないメニューの中でスコアが高いメニューをランキングする。
【0058】
これにより、例えば、
図4に示すように、「野菜スープ」、「キャベツ炒飯」の順にランキングされる。このランキングでは、食材データが「キャベツ」、および「肉」であり、「肉」を有していない場合のランキングに対して、食材として「卵」、または「人参」が使用されない「野菜炒め」、「お好み焼き」、および「サラダ」が除外され、メニューが絞り込まれる。
【0059】
メニュー選択部42は、スコアが所定スコア以上となるメニューが所定数、例えば3つ以下となると、全てのメニューを選択する。所定スコアは、予め設定された値である。例えば、スコアが所定スコア以上となるメニューとして、ランキングに「野菜スープ」、および「キャベツ炒飯」が残った場合、メニュー選択部42は、メニューの中でスコアが一番高い「野菜スープ」に加えて「キャベツ炒飯」もメニューとして選択する。
【0060】
なお、メニュー選択部42は、メニューの検索を開始してから、所定回数の応答を行った場合に、ランキングの中で上位のメニューを所定数選択してもよい。所定回数は、予め設定された回数であり、例えば、3回である。
【0061】
応答生成部43は、メニュー選択部42によって選択されたメニュー、および対話モデルに基づいて、選択されたメニューを含む応答文を生成する。
【0062】
応答生成部43は、メニュー選択部42によって選択されたメニューで必要な食材であり、食材記憶部34に食材データとして記憶されていない食材の中で重要な食材の有無を尋ねる応答文を生成する。つまり、応答生成部43は、ユーザに対し、食材データを引き出すようなヒントを含んだ応答文を生成する。
【0063】
例えば、応答生成部43は、メニューに対する食材の優先順位に基づき、情報が無い食材の中で優先度が高い食材の有無を尋ねる応答文を生成する。なお、食材の優先順位は、メニューとともに、メニュー記憶部33に記憶されている。
【0064】
例えば、「ロールキャベツ」に対して、食材の優先順位として「キャベツ」、「肉」、「玉ねぎ」、「パン粉」の順に優先順位が付けられており、食材記憶部34に食材データとして「キャベツ」が記憶されている場合、応答生成部43は、「肉」の有無を尋ねる応答文を生成する。
【0065】
例えば、(ユーザ発話1):「今日はキャベツを使いたい」に対して、応答生成部43は、(応答文1):「ひき肉があれば、ロールキャベツはどうでしょう?」を生成する。
【0066】
また、(ユーザ発話2):「お肉がないから違うのがいい」に対して、メニュー選択部42によってメニューとして「野菜炒め」が選択され、食材の優先順位として「もやし」が高い場合、応答生成部43は、(応答文2):「もやしがあれば、野菜炒めはどうでしょう?」を生成する。
【0067】
また、(ユーザ発話3):「卵と人参がある」に対しては、メニュー選択部42によって「野菜スープ」、および「キャベツ炒飯」が選択され、メニューが絞られたので、応答生成部43は、(応答文3):「キャベツと卵と人参で作れるメニューを表示します」を生成する。
【0068】
なお、応答生成部43は、メニュー選択部42によって選択されたメニューのみを含む応答文を生成してもよい。
【0069】
送信部20は、ネットワークNを介して、端末装置2や、音声合成サーバ4(
図2参照)に、応答生成部43によって生成された応答文を送信する。また、送信部20は、メニューが絞られ、例えば、メニュー選択部42によって「野菜スープ」、および「キャベツ炒飯」が選択された場合には、応答文に加えて、「野菜スープ」、および「キャベツ炒飯」のレシピデータを端末装置2に送信する。
【0070】
学習部44は、ユーザによるメニュー選択結果に基づいて、強化学習モデルを更新する。学習部44は、ユーザによるメニュー選択結果に基づいて、メニュー選択部42によって選択されたメニューに対する報酬を与える。
【0071】
例えば、(応答文3):「キャベツと卵と人参で作れるメニューを表示します」が端末装置2に送信され、また「野菜スープ」、および「キャベツ炒飯」のレシピが、
図5に示すように端末装置2に表示されたとする。
図5は、端末装置2の表示画面の一例を示す図である。
【0072】
そして、「野菜スープ」が、ユーザにより選択されると、学習部44は、「野菜スープ」のメニューに報酬「+1」を与え、強化学習モデルを更新する。
【0073】
また、学習部44は、(応答文1)に含まれる「ロールキャベツ」、(応答文2)に含まれる「野菜炒め」、および最終的に選択されなかった「キャベツ炒飯」のメニューに報酬「−0.1」を与え、強化学習モデルを更新する。
【0074】
これにより、メニュー選択部42では、次回以降において、今回のメニュー選択時よりも、「野菜スープ」が選択される確率が高くなり、「ロールキャベツ」、「野菜炒め」、および「キャベツ炒飯」が選択される確率が低くなる。すなわち、ユーザの好みを反映したメニュー選択が行われ、情報処理装置1は、ユーザが好むメニューを素早く提供できるようになる。
【0075】
なお、学習部44は、例えば、(応答文1):「ひき肉があれば、ロールキャベツはどうでしょう?」に対し、ユーザが「ロールキャベツいいね」などと発話し、メニューが選択され、決定された場合には、(応答文1)に含まれる「ロールキャベツ」のメニューに報酬「+1」を与え、強化学習モデルを更新する。
【0076】
また、学習部44は、応答生成文のテキストデータが送信された後に、所定時間、ユーザの発話が無い場合、例えば、(応答文1):「ひき肉があれば、ロールキャベツはどうでしょう?」に対し、所定時間が経過しても、ユーザの次の発話が無い場合には、(応答文1)に含まれる「ロールキャベツ」のメニューに報酬「−0.1」を与え、強化学習モデルを更新する。
【0077】
[4.メニュー選択処理]
次に、実施形態に係るメニュー選択処理について
図6を参照し説明する。
図6は、実施形態に係るメニュー選択処理の一例を示すフローチャートである。
【0078】
処理部40は、受信部10によってユーザメッセージが受信されると(ステップS10)、ユーザメッセージがテキストデータを含むメッセージであるかどうか判定する(ステップS11)。
【0079】
処理部40は、ユーザメッセージがテキストデータを含むメッセージである場合(ステップS11:Yes)、テキストデータを解析し、テキストデータに含まれる食材データや、メニューデータを抽出し、これらのデータに対してテキストデータの内容が肯定的な内容であるか、否定的な内容であるか特定する(ステップS12)。
【0080】
処理部40は、テキストデータの内容が、食材データを含み、メニュー検索に関する内容である場合(ステップS13:Yes)、抽出した食材データを食材記憶部34に記憶させる(ステップS14)。
【0081】
処理部40は、食材記憶部34に記憶されている食材データに基づいて、強化学習モデルを用いて、スコアが最も高いメニューを選択する(ステップS15)。
【0082】
処理部40は、選択されたメニュー、および対話モデルに基づいて、選択されたメニューを含む応答文を生成する(ステップS16)。
【0083】
処理部40は、生成された応答文を送信部20からユーザの端末装置2へ送信する(ステップS17)。
【0084】
また、処理部40は、ユーザメッセージがテキストデータを含まないメッセージ、すなわち、端末装置2の操作情報に関するメッセージである場合(ステップS11:No)、またはテキストデータの内容が、メニュー検索に関する内容ではない場合(ステップS13:No)には、ユーザメッセージがメニュー選択結果に関する内容であるかどうか判定する(ステップS18)。
【0085】
処理部40は、ユーザメッセージがメニュー選択結果に関する内容である場合(ステップS18:Yes)、メニュー選択結果に基づいて、強化学習モデルを更新する(ステップS19)。
【0086】
処理部40は、テキストデータの内容が、メニュー選択結果に関する内容ではない場合(ステップS18:No)、今回の処理を終了する。
【0087】
[5.変形例]
上記実施形態では、メニュー選択部42は、ランキングに対してスコアが一番高いメニューを選択したが、ランキングの中から所定の確率でメニューを選択してもよい。例えば、スコアが最も高いメニューに対しては、選択される確率を50%とし、スコアがその次に高いメニューに対しては、選択される確率を20%などとしてもよい。
【0088】
これにより、メニュー選択部42によって同じメニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【0089】
また、メニュー選択部42は、食材に対する特徴を表す実数ベクトルにより表される食材データに基づいて、メニューを選択してもよい。例えば、大量のレシピ文章から、Skip−gramモデルなどを用いて各食材に対応する実数ベクトル表現を学習し、メニュー選択部42は、実数ベクトル表現に基づいて、メニューを選択する。
【0090】
食材データを実数ベクトルとして表すことで、メニュー選択部42は、食材を表す実数ベクトルの類似度により、予め設定された代替可能な食材を用いたメニューの中から、スコアが高いメニューを選択することが可能となる。
【0091】
また、実数ベクトル表現により食材データを表す場合には、強化学習モデルと対話モデルとを、ニューラルネットワークにより1つのモデルとして学習し、応答文を生成してもよい。
【0092】
また、メニュー選択部42は、例えば、所定のタイミングで、ユーザが作ったことがないメニューや、ランキングのスコアが低いメニューを選択してもよい。所定のタイミングは、予め設定されており、例えば、数か月に一度のタイミングである。また、学習部44は、Webサイト上の履歴に基づく協調フィルタリングの推薦結果に基づいて、スコアに対して重み付けを行ってもよい。
【0093】
これにより、メニュー選択部42によって同じメニューが選択されることを抑制し、ユーザが予想しないメニューを提供することができる。
【0094】
また、食材データを記憶する所定時間を食材の消費時間としてもよい。食材記憶部34は、食材の消費時間が経過した後に、食材データを消去する。食材の消費時間は、例えば、食材の平均消費時間や、平均消費時間から食材の存在確率、例えば、選択されたメニューで使用される量に関連付けられた確率に応じて低下させた時間、すなわち、食材が全て消費されずに残っていると推測可能な時間である。
【0095】
メニュー選択部42は、今回のメニュー検索で得られた食材データに加えて、食材の消費時間が経過しておらず、食材記憶部34に記憶された食材データ、例えば、以前のメニュー検索時に得られた食材データであり、全て消費されていないと推測される食材データに基づいて、メニューを選択する。
【0096】
また、応答生成部43は、食材の残量を、ユーザに問いかける内容の応答文を生成し、食材記憶部34は、食材の残量を記憶してもよい。
【0097】
これにより、ユーザに選択され易いメニューを早期に提案することができ、ユーザの満足度を向上させることができる。
【0098】
また、学習部44は、例えば、ユーザにより選択されたメニューに対し、類似メニューについては、所定期間、スコアを一時的に小さくしてもよい。類似メニューとは、ユーザに選択されたメニューと同一、または類似するメニューである。類似するメニューとは、或る食材に対して、代替食材を使用して作成可能なメニューである。所定期間は、予め設定されており、例えば、1か月である。例えば、学習部44は、類似メニューに対するスコアが小さくなるように、スコアに対して重み付けを行う。
【0099】
これにより、短い期間の間に、メニュー選択部42によって類似メニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【0100】
また、メニュー選択部42は、ユーザの健康情報に基づいてメニューを選択してもよい。健康情報は、例えば、体重や、血圧や、運動量や、日々の食事に関する情報である。健康情報は、例えば、解析部41によって、ユーザとの対話によるテキストデータより抽出され、取得される。また、健康情報は、外部サービスを介して取得されてもよい。例えば、学習部44は、健康状態を、強化学習の「状態」とし、健康情報に基づいて、健康性が高いメニューのスコアが大きくなるように、スコアに対して重み付けを行う。
【0101】
これにより、健康的なメニューをユーザに提供することができる。
【0102】
また、メニュー選択部42は、ユーザとの対話などにより取得されたユーザの好み、ユーザの発話履歴などの情報に基づいて、メニューを選択してもよい。例えば、学習部44は、ユーザの好みなどに応じて、スコアに対して重み付けを行う。また、応答生成部43は、ユーザの好みなどに基づいて、応答文を生成してもよい。例えば、応答生成部43は、「ロールキャベツが好みでないなら、野菜炒めはどうでしょう?」などと応答文を生成してもよい。
【0103】
これにより、自然な発話を実現し、ユーザが好むメニューを早期に提供することができる。
【0104】
また、メニュー選択部42は、ユーザの食材の好みの情報に基づいて、メニューを選択してもよい。例えば、ユーザが「ピーマンは嫌い」と発話した場合には、食材記憶部34は、所定時間では消去されない長期的情報として「ピーマン」が無いことを記憶する。また、学習部44が、食材として「ピーマン」を使用するメニューのスコアを小さくしてもよい。
【0105】
これにより、食材として「ピーマン」を使用するメニューが選択され難くなり、ユーザの好みに応じたメニューを提供することができる。
【0106】
また、メニュー選択部42は、所定のメニューを表示させないようにすることも可能である。例えば、アレルギーを持ったユーザに対しては、アレルギー食材を含むメニューが選択されないようにしてもよい。例えば、学習部44は、アレルギー食材を含むメニューのスコアが小さくなるように、スコアに対して重み付けを行う。また、メニュー選択部42は、アレルギー食材を含むメニューをランキングから除外してもよい。
【0107】
これにより、ユーザが好まないメニューを提供することを抑制することができる。
【0108】
上記実施形態では、応答生成部43は、メニュー選択部42によって選択されたメニューを含んだ応答文を生成したが、メニューを含まない応答文を生成してもよい。例えば、応答生成部43は、メニューを含まない「どんな食材がありますか?」といった応答文を生成してもよい。これにより、ユーザが有する食材データをユーザから引き出すことができ、情報処理装置1は、多くの食材データに基づいて、ユーザが好むメニューを早期に提供することができる。
【0109】
また、応答生成部43は、複数のメニューを含んだ応答文を生成してもよい。例えば、上記した(応答文2)に対し「もやしがあれば、野菜炒めが作れますが、無ければサラダはどうでしょう?」といった応答文を生成してもよい。
【0110】
これにより、ユーザが好むメニューを早期に提供することができる。
【0111】
上記実施形態では、学習部44は、ユーザによるメニュー選択結果に基づいて報酬を付与し、強化学習モデルを更新したが、ユーザとの応答回数(対話回数)を考慮してもよい。例えば、ユーザがメニューを選択し、それまでに複数回の応答があった場合には、応答回数に応じて、選択されたメニューに報酬として、「+1/応答回数」を与えてもよい。
【0112】
また、学習部44は、ユーザによってメニューが選択された場合の報酬を、メニュー選択工程における食材のデータ量に応じて変更してもよい。
【0113】
例えば、学習部44は、ユーザがメニュー検索を行い、1品目のメニューを選択した後に、2品目のメニュー検索を行い、2品目のメニューを選択した場合には、2品目のメニューに対する報酬を、1品目のメニューに対する報酬よりも小さくする。
【0114】
2品目のメニュー検索は、1品目のメニューを選択する際にユーザから食材に関する情報が得られた状態で行われている。そのため、例えば、同じ応答回数で、1品目のメニューと2品目のメニューとがユーザに選択された場合であっても、情報処理装置1における1品目のメニュー選択は、2品目のメニュー選択よりも少ない食材データに基づいて行われている。
【0115】
そのため、学習部44は、2品目のメニューに対する報酬を、1品目のメニューに対する報酬よりも小さくし、食材データが少ない状態でユーザに選択されたメニューに対しては、報酬を大きくし、強化学習モデルの学習を行う。
【0116】
例えば、1品目のメニューに対する報酬を「+1」とし、2品目のメニューに対する報酬に重みを付けて「+0.1」とする。
【0117】
これにより、少ない食材のデータ量に基づいて、ユーザの好むメニューを提供できた場合には、報酬が大きくなり、ユーザが好むメニューを早期に提供することができる。
【0118】
[6.効果]
実施形態に係る情報処理装置1は、受信部10と、応答生成部43と、送信部20とを備える。受信部10は、ユーザの端末装置2から、ユーザメッセージを受信する。応答生成部43は、ユーザメッセージに対し、強化学習モデル(候補選択モデル)を用いて、絞り込まれたメニューを含む応答文を生成する。送信部20は、生成された応答文を端末装置2に送信する。
【0119】
これにより、ユーザのメニュー検索に対し、強化学習モデルを用いて選択したメニューを含む応答文を提供することができ、ユーザの好むメニューを早期に提供することができ、ユーザの満足度を向上させることができる。
【0120】
応答生成部43は、応答文に対する新たなユーザメッセージに対し、さらにメニューを絞り込んだ応答文を生成する。
【0121】
これにより、メニューをさらに絞り込んだ応答文を提供できるため、ユーザの好むメニューを早期に提供することができ、ユーザの満足度を向上させることができる。
【0122】
情報処理装置1は、応答文に対するユーザメッセージに応じて得られた報酬に基づいて強化学習モデルを学習する学習部44を備える。応答生成部43は、学習された強化学習モデルを用いて、ユーザメッセージを生成する。
【0123】
これにより、過去に得られた報酬に基づいて学習された強化学習モデルを用いて、ユーザの好みに応じたメニューを早期に提供することができる。
【0124】
学習部44は、ユーザによってメニューが選択されるまでの応答回数が少ないほど、報酬を大きくする。
【0125】
これにより、ユーザの好むメニューを素早く提供できた場合には、報酬が大きくなるので、ユーザが好むメニューを早期に提供することができる。
【0126】
学習部44は、スコアの初期値を人気度に応じて設定し、人気度が高いほどスコアの初期値を大きくする。
【0127】
これにより、強化学習の初期段階で、人気度が低いメニューがユーザに提供されることを抑制し、ユーザの満足度が低下することを抑制することができる。
【0128】
学習部44は、ユーザによって選択されたメニューと、同一、または類似する類似メニューに対するスコアを、所定期間、一時的に小さくする。
【0129】
これにより、短い期間の間に、メニュー選択部42によって類似メニューが選択されることを抑制し、ユーザに提供するメニューを多様化させることができる。
【0130】
応答生成部43は、強化学習モデル、およびユーザの健康状態を用いて応答文を生成する。
【0131】
これにより、健康的なメニューをユーザに提供することができる。
【0132】
[7.ハードウェアの構成]
上記してきた実施形態に係る情報処理装置1は、例えば
図7に示すような構成のコンピュータ1000によって実現される。
図7は、情報処理装置1の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0133】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0134】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が決定したデータをネットワークNを介して他の機器へ送信する。
【0135】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、決定したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0136】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0137】
例えば、コンピュータ1000が実施形態に係る情報処理装置1として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、処理部40の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
【0138】
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0139】
[8.その他]
上記した、強化学習モデルは、上記したメニュー検索以外でも使用することができる。例えば、ユーザとの対話システムに用いることができる。対話システムにおいては、「状態」をユーザの発話内容とし、「行動」をユーザへの提案(応答内容)とし、「報酬」を提案に対するユーザの応答とし、強化学習を用いることで、ユーザの満足度が高い提案を行うことが可能となる。
【0140】
例えば、ユーザからの問いかけ(商品検索)に対し、ユーザの発話などに基づいた過去の提案内容からユーザの好みを学習した強化学習モデルを用いて、ユーザの満足度の高い提案(ユーザが満足する商品を提案)をすることができる。
【0141】
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0142】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0143】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0144】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、受信部10は、受信手段や受信回路に読み替えることができる。