(57)【特許請求の範囲】
【請求項１】
要求に対する回答の推論を行なうための知識ベースを記憶する知識ベース部と、
ユーザからの要求であるユーザ要求を含む情報である状況情報及び前記推論の結果である推論結果に対する前記ユーザの応答を含む応答情報を取得する情報取得部と、
前記状況情報に含まれている前記ユーザ要求に対して、前記知識ベースを用いて、前記推論を行なう推論部と、
前記推論結果を出力する情報出力部と、
前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定する所望結果特定部と、
前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する更新部と、を備え、
前記推論部は、前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすること
を特徴とする推論装置。
【請求項２】
前記更新部は、前記推論結果が前記所望結果と異なる場合に、前記知識グラフにおいて、前記推論開始ノードと、前記推論結果ノードとの間の最短パスに含まれるエッジの重み付けを小さくし、前記推論開始ノードと、前記所望結果に対応するノードとの間の最短パスに含まれるエッジの重み付けを大きくすること
を特徴とする請求項１に記載の推論装置。
【請求項３】
前記応答情報から、前記所望結果の要因を特定する要因特定部をさらに備え、
前記更新部は、前記要因を用いて，前記知識ベースを更新すること
を特徴とする請求項１に記載の推論装置。
【請求項４】
前記更新部は、前記推論結果が前記所望結果と異なる場合に、前記知識グラフにおいて、前記要因を示すノードである要因ノードを経由する、前記推論開始ノードと、前記推論結果ノードとの間の最短パスに含まれるエッジの重み付けを小さくし、前記要因ノードを経由する、前記推論開始ノードと、前記所望結果に対応するノードとの間の最短パスに含まれるエッジの重み付けを大きくすること
を特徴とする請求項３に記載の推論装置。
【請求項５】
コンピュータを、
要求に対する回答の推論を行なうための知識ベースを記憶する知識ベース部、
ユーザからの要求であるユーザ要求を含む情報である状況情報及び前記推論の結果である推論結果に対する前記ユーザの応答を含む応答情報を取得する情報取得部、
前記状況情報に含まれている前記ユーザ要求に対して、前記知識ベースを用いて、前記推論を行なう推論部、
前記推論結果を出力する情報出力部、
前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定する所望結果特定部、及び、
前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する更新部、として機能させ、
前記推論部は、前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすること
を特徴とするプログラム。
【請求項６】
ユーザからの要求であるユーザ要求を含む情報である状況情報を取得し、
前記状況情報に含まれている前記ユーザ要求に対して、要求に対する回答の推論を行なうための知識ベースを用いて、前記推論を行ない、
前記推論の結果である推論結果を出力し、
前記推論結果に対する前記ユーザの応答を含む応答情報を取得し、
前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定し、
前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する推論方法であって、
前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすること
を特徴とする推論方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、推論装置、プログラム及び推論方法に関する。
【背景技術】
【０００２】
ユーザとの対話を通じて操作を行う、対話型ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）を備えたカーナビ、家電又はスマートスピーカー等の機器が普及している。対話機能の実現には、対話シナリオに沿ってステートチャート又はフローチャート等を設計する必要があり、複雑で多様な対話又は気が利くと思わせる対話の設計は困難である。【０００３】
そこで、従来の推論装置では、物事の属性、関連性又は因果関係等をグラフで表した知識表現である知識グラフに基づく推論により対話を行う技術がある。例えば、観測された事実を表す推論開始ノードを起点に、知識グラフ内の各ノードの重要度を算出し、重要度の高いノードを推論結果として取得し、その推論結果を対話シナリオの選択に用いる技術が知られている。従来では、知識グラフの更新は、推論開始ノードの重み調整のみであった（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６５６７２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術での推論は、起点ノードの選び方と、グラフの構造とに依存して推論処理が行われるため、必ずしも望ましい推論結果が得られる保証はない。従来の技術では、ある推論結果を提示した際に、ユーザが推論結果と違う行動をとった場合でも、そのような行動が知識グラフに反映されない。このため、従来の技術は、同じような状況において、再び同じ推論をしてしまい、ユーザの望む推論結果を提示できないという問題点があった。【０００６】
そこで、本開示の一又は複数の態様は、推論結果に対するユーザの反応を考慮して、知識ベースを更新することで、ユーザにとって望ましい推論結果が得られるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る推論装置は、要求に対する回答の推論を行なうための知識ベースを記憶する知識ベース部と、ユーザからの要求であるユーザ要求を含む情報である状況情報及び前記推論の結果である推論結果に対する前記ユーザの応答を含む応答情報を取得する情報取得部と、前記状況情報に含まれている前記ユーザ要求に対して、前記知識ベースを用いて、前記推論を行なう推論部と、前記推論結果を出力する情報出力部と、前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定する所望結果特定部と、前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する更新部と、を備え、前記推論部は、前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすることを特徴とする。
【０００８】
本開示の一態様に係るプログラムは、コンピュータを、要求に対する回答の推論を行なうための知識ベースを記憶する知識ベース部、ユーザからの要求であるユーザ要求を含む情報である状況情報及び前記推論の結果である推論結果に対する前記ユーザの応答を含む応答情報を取得する情報取得部、前記状況情報に含まれている前記ユーザ要求に対して、前記知識ベースを用いて、前記推論を行なう推論部、前記推論結果を出力する情報出力部、前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定する所望結果特定部、及び、前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する更新部、として機能させ、前記推論部は、前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすることを特徴とする。
【０００９】
本開示の一態様に係る推論方法は、ユーザからの要求であるユーザ要求を含む情報である状況情報を取得し、前記状況情報に含まれている前記ユーザ要求に対して、要求に対する回答の推論を行なうための知識ベースを用いて、前記推論を行ない、前記推論の結果である推論結果を出力し、前記推論結果に対する前記ユーザの応答を含む応答情報を取得し、前記応答情報から、前記ユーザ要求に対して前記ユーザが所望する結果である所望結果を特定し、前記所望結果が前記推論結果となりやすくなるように、前記知識ベースを更新する推論方法であって、前記知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、前記ユーザ要求を推論開始ノードとして指定し、前記推論開始ノードから開始して、前記知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を算出することにより、前記複数のノードの重要度を算出し、前記重要度が最も高いノードを推論結果ノードとして特定し、前記推論結果ノードにより示される情報を前記推論結果とすることを特徴とする。
【発明の効果】
【００１０】
本開示の一又は複数の態様によれば、推論結果に対するユーザの反応を考慮して、知識ベースを更新することで、ユーザにとって望ましい推論結果を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る推論装置を含む推論システムの構成を概略的に示すブロック構成図である。
【図２】推論装置のハードウェア構成例を示すブロック図である。
【図３】実施の形態１に係る推論装置における知識ベースの更新処理を示すフローチャートである。
【図４】実施の形態１における知識ベースの更新処理の第１の具体例を示す概略図である。
【図５】実施の形態１における知識ベースの更新処理の第２の具体例を示す概略図である。
【図６】実施の形態２に係る推論装置を含む推論システムの構成を概略的に示すブロック構成図である。
【図７】実施の形態２に係る推論装置における知識ベースの更新処理を示すフローチャートである。
【図８】実施の形態２における知識ベースの更新処理の具体例を示す概略図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、実施の形態１に係る推論装置１１０を含む推論システム１００の構成を概略的に示すブロック構成図である。
推論システム１００は、アプリケーション（以下、ＡＰという）１０１、ユーザインタフェース（以下、ユーザＩ／Ｆという）１０２、センサ１０３、カメラ１０４、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）１０５又はインターネット１０６といった他の装置に推論装置１１０を接続することにより構成されている。
【００１３】
なお、推論装置１１０が接続される他の装置は、例示で有り、ユーザに推論装置１１０の推論結果を出力し、その推論結果に対する応答を入力することのできる装置であれば、どのような装置であってもよい。言い換えると、推論装置１１０は、ユーザに推論結果を出力し、その応答を入力することのできるユーザ側装置に接続されている。
【００１４】
推論装置１１０は、接続インタフェース部（以下、接続Ｉ／Ｆ部という）１１１と、知識ベース部１１２と、情報取得部１１３と、推論部１１４と、情報出力部１１５と、フィードバック情報抽出部１１６と、更新部１１７とを備える。
【００１５】
接続Ｉ／Ｆ部１１１は、ユーザ側装置に接続し、ユーザ側装置と通信を行う。
知識ベース部１１２は、知識情報からなる知識ベースを記憶する。例えば、知識ベースは、要求に対する回答の推論を行なうための情報である。具体的には、知識ベースには、頂点（すなわち、ノード）と、辺（すなわち、エッジ）とを構成要素として有する図形である知識グラフを生成するために必要な情報が含まれている。
実施の形態１では、推論装置１１０が知識ベース部１１２を備える構成としているが、実施の形態１は、このような例に限定されず。例えば、接続Ｉ／Ｆ部１１１で接続することのできる他の装置（例えば、知識ベースサーバ等のサーバ）に知識ベース部１１２が備えられていてもよい。
【００１６】
情報取得部１１３は、接続Ｉ／Ｆ部１１１を介して、ユーザ側装置から様々な情報を取得する。例えば、情報取得部１１３は、ユーザからの要求であるユーザ要求を含む情報である状況情報及び推論結果に対するユーザの応答を含む応答情報を取得する。状況情報及び応答情報は、ユーザの周囲の状況等から取得されるものとする。状況情報は、推論部１１４に与えられ、応答情報は、フィードバック情報抽出部１１６に与えられる。
【００１７】
推論部１１４は、情報取得部１１３から受け取った状況情報から、知識ベース部１１２に記憶されている知識ベースを用いて、推論を行う。そして、推論部１１４は、その推論の結果である推論結果を情報出力部１１５に与える。
例えば、推論部１１４は、状況情報に含まれているユーザからの要求であるユーザ要求に対して、知識ベースを用いて、推論を行なう。
【００１８】
実施の形態１では、推論部１１４は、状況情報からスタートノードとしての推論開始ノードを特定して、その推論開始ノードから、最短のパスを検索するページランク計算による方法等で、推論を行なう。
具体的には、推論部１１４は、知識ベースにより特定される知識グラフに含まれている複数のノードにおいて、ユーザ要求を推論開始ノードとして指定し、その推論開始ノードから開始して、知識グラフ上をランダムウォークした時の到達確率に相当するページランク値を各々のノードにおいて算出ことにより、複数のノードの各々の重要度を算出する。そして、推論部１１４は、算出された重要度が最も高いノードを推論結果ノードとして特定し、推論結果ノードにより示される情報を推論結果とする。
【００１９】
情報出力部１１５は、推論部１１４から受け取った推論結果を、接続Ｉ／Ｆ部１１１を介して、ユーザ側装置に出力する。
なお、情報出力部１１５は、フィードバック情報を抽出できるようにするため、推論結果の出力時に、推論結果以外に、履歴等から、他の候補も併せて出力して、ユーザが所望する結果を選択できるようにしてもよい。その結果は、応答情報として、情報取得部１１３からフィードバック情報抽出部１１６に与えられればよい。また、推論結果が意図と異なる場合に、ユーザからの音声入力により、ユーザが所望する結果が入力されるようにしてもよい。
【００２０】
フィードバック情報抽出部１１６は、情報出力部１１５が推論結果を出力した後に、情報取得部１１３から、ユーザの応答情報を取得する。そして、フィードバック情報抽出部１１６は、応答情報から、推論結果に対するユーザの応答から、ユーザ要求に対してユーザが所望する結果である所望結果を特定し、その所望結果を示すフィードバック情報を抽出する。抽出されたフィードバック情報は、更新部１１７に与えられる。
なお、フィードバック情報抽出部１１６は、応答情報から所望結果を特定する所望結果特定部として機能する。
【００２１】
例えば、フィードバック情報は、推論結果がユーザが所望する結果に一致している場合には、推論結果を示し、推論結果が、ユーザが所望する結果に一致していない場合には、ユーザが所望する結果を示す。フィードバック情報抽出部１１６は、例えば、情報出力部１１５に対するユーザからの応答が推論結果と一致するか否かを判断する。そして、フィードバック情報抽出部１１６は、ユーザの応答が推論結果と一致しない場合には、ユーザからの応答に基づいて、ユーザが所望する結果を特定する。
【００２２】
なお、ユーザが所望する結果については、フィードバック情報抽出部１１６に、予め情報が設定されており、応答情報に、予め設定されている情報が含まれている場合には、フィードバック情報抽出部１１６は、その情報をユーザが所望する結果として特定してもよい。
【００２３】
更新部１１７は、情報取得部１１３から受け取った状況情報、推論部１１４から受け取った推論結果及びフィードバック情報抽出部１１６から受け取ったフィードバック情報を用いて、知識ベース部１１２に記憶されている知識ベースの更新を行う。
例えば、更新部１１７は、所望結果が推論結果となりやすくなるように、知識ベースを更新する。
具体的には、更新部１１７は、推論結果が所望結果と異なる場合に、知識ベースで示される知識グラフにおいて、推論開始ノードと、推論結果ノードとの間の最短パスに含まれるエッジの重み付けを小さくする。さらに、更新部１１７は、知識グラフにおいて、推論開始ノードと、所望結果に対応するノードとの間の最短パスに含まれるエッジの重み付けを大きくする。
【００２４】
図２は、推論装置１１０のハードウェア構成例を示すブロック図である。
推論装置１１０は、接続インタフェース（以下、接続Ｉ／Ｆという）１２１と、補助記憶装置１２２と、メモリ１２３と、プロセッサ１２４とを備えるコンピュータ１２０により実現することができる。
【００２５】
例えば、情報取得部１１３、推論部１１４、情報出力部１１５、フィードバック情報抽出部１１６及び更新部１１７は、プロセッサ１２４が補助記憶装置１２２に記憶されているプログラムをメモリ１２３に読み出して実行することにより実現することができる。
【００２６】
接続Ｉ／Ｆ部１１１は、プロセッサ１２４が接続Ｉ／Ｆ１２１を利用することで実現することができる。
知識ベース部１１２は、プロセッサ１２４が補助記憶装置１２２を利用することで実現することができる。
【００２７】
図３は、実施の形態１に係る推論装置１１０における知識ベースの更新処理を示すフローチャートである。
まず、更新部１１７は、情報取得部１１３から状況情報を受け取る（Ｓ１０）。そして、更新部１１７は、状況情報から推論開始ノードとなる情報を特定する。例えば、更新部１１７には、推論開始ノードにすることのできる情報が予め決められており、状況情報にそのような情報が含まれている場合には、そのような情報を推論開始ノードとして特定する。
【００２８】
次に、更新部１１７は、推論部１１４から推論結果を受け取る（Ｓ１１）。そして、更新部１１７は、推論結果に含まれる情報を、推論結果ノードとして特定する。
【００２９】
次に、更新部１１７は、フィードバック情報抽出部１１６からフィードバック情報を受け取る（Ｓ１２）。そして、更新部１１７は、フィードバック情報に含まれる情報をターゲットノードとして特定する。
【００３０】
次に、更新部１１７は、推論部１１４の推論結果が、ユーザの所望する結果であるか否かを判断する（Ｓ１３）。例えば、更新部１１７は、推論結果ノードと、ターゲットノードとが一致する場合には、推論結果が、ユーザの所望する結果であると判断し、推論結果ノードと、ターゲットノードとが一致しない場合には、推論結果が、ユーザの所望する結果ではないと判断する。そして、推論結果がユーザの所望する結果である場合（Ｓ１３でＹｅｓ）には、更新部１１７は、知識ベースの更新を行なわずに、処理を終了する。推論結果がユーザの所望する結果ではない場合（Ｓ１３でＮｏ）には、処理はステップＳ１４に進む。
【００３１】
ステップＳ１４では、更新部１１７は、推論開始ノードから推論結果ノードまでの最短パスを特定する。
そして、更新部１１７は、ステップＳ１４で特定された最短パスのエッジの重みを小さくする（Ｓ１５）。例えば、更新部１１７は、予め定められた値だけ、エッジの重みを小さくする。
【００３２】
次に、更新部１１７は、推論開始ノードからターゲットノードまでの最短パスを特定する（Ｓ１６）。
そして、更新部１１７は、ステップＳ１６で特定された最短パスのエッジの重みを大きくする（Ｓ１７）。例えば、更新部１１７は、予め定められた値だけ、エッジの重みを大きくする。
【００３３】
以上のように、図３に示されているフローチャートによれば、推論結果がユーザの望む結果と一致しない場合には、推論で用いられたパスの重みを小さくすることで、その結果を出にくくすることができる。一方、ユーザの望む結果を得るためのパスの重みを大きくすることで、ユーザの望む結果が推論結果となりやすくすることができる。
【００３４】
次に、図４及び図５を用いて、知識ベースの更新処理の具体例を説明する。
図４及び図５は、自動車を運転中の運転手にお勧めの飲食店を提案する推薦システムの例である。図４及び図５は、現在時刻情報（例えば、金曜日の夕方）を入力としてハンバーガーショップを提案したというケースを説明する。
【００３５】
図４に示されているような知識グラフがある場合、符号Ｎ１は、推論開始ノードとしての「金曜」ノードを示し、符号Ｎ２は、推論開始ノードとしての「飲食店」ノードを示している。
推論部１１４は、「金曜」ノードＮ１及び「飲食店」ノードＮ２を指定して、各ノードのページランク値を算出する。そして、推論部１１４は、「飲食店」ノードＮ３に「ｉｓ−ａ」エッジを介してつながるノードの中で最もページランク値が大きいノードとなった「ハンバーガー」ノードＮ４を推論結果とする。このため、情報出力部１１５は、接続Ｉ／Ｆ部１１１を介して、飲食店として「ハンバーガー」店を勧める情報をユーザ側装置に出力する。
【００３６】
しかし、ユーザが、ユーザ側装置において「ハンバーガーよりは、ラーメンが食べたい」等と応答した場合、更新部１１７は、フィードバック情報から、ユーザが所望する結果は「ラーメン」であると特定する。
更新部１１７は、フィードバック情報で示されるユーザが所望する結果と、推論結果とが一致しないため、図５に示されているように、推論開始ノードである「金曜」ノードＮ１と、推論結果の「ハンバーガー」ノードＮ４との間の最短パスに含まれているエッジＥ１、Ｅ２の重みを小さくするとともに、推論開始ノードである「夕方」ノードＮ２と、推論結果の「ハンバーガー」ノードＮ４との間の最短パスに含まれているエッジＥ３、Ｅ４、Ｅ５、Ｅ６の重みを小さくする。
【００３７】
一方、更新部１１７は、推論開始ノードである「金曜」ノードＮ１と、ユーザが所望する結果の「ラーメン」ノードＮ５との間の最短パスに含まれているエッジＥ１、Ｅ７、Ｅ８、Ｅ９の重みを大きくするとともに、推論開始ノードである「夕方」ノードＮ２と、ユーザが所望する結果の「ラーメン」ノードＮ５との間の最短パスに含まれているエッジＥ３、Ｅ１０、Ｅ１１の重みを大きくする。
【００３８】
以上のように、推論に用いる知識ベースのエッジの重みを変更することで、ユーザの望む推論結果を得やすくすることができる。
【００３９】
なお、実施の形態１では、図３に示されているフローチャートのステップＳ１３で、ユーザの所望する結果が得られている場合には、更新部１１７は、知識ベースを更新していないが、実施の形態１はこのような例に限定されない。
例えば、更新部１１７は、このような場合でも、推論開始ノードから、推論結果ノードまでの最短パスを求め、パス上のエッジの重みを大きくすることで、その出力結果がより得られやすくするようにしてもよい。
【００４０】
実施の形態２．
以上の実施の形態１では、フィードバック情報からユーザの所望する結果を特定して、更新が行なわれているが、実施の形態２では、ユーザからの応答を示す応答情報からユーザの所望する結果と、それを選ぶ要因とを特定して、更新を実行する例を示す。なお、実施の形態２における応答情報には、要因を特定する情報が含まれるものとする。
【００４１】
図６は、実施の形態２に係る推論装置２１０を含む推論システム２００の構成を概略的に示すブロック構成図である。
推論システム２００は、ＡＰ１０１、ユーザＩ／Ｆ１０２、センサ１０３、カメラ１０４、ＧＰＳ１０５又はインターネット１０６といった他の装置に推論装置２１０を接続することにより構成されている。
【００４２】
実施の形態２に係る推論システム２００のＡＰ１０１、ユーザＩ／Ｆ１０２、センサ１０３、カメラ１０４、ＧＰＳ１０５及びインターネット１０６といった他の装置は、実施の形態１に係る推論システム１００のＡＰ１０１、ユーザＩ／Ｆ１０２、センサ１０３、カメラ１０４、ＧＰＳ１０５及びインターネット１０６といった他の装置と同様である。
【００４３】
推論装置２１０は、接続Ｉ／Ｆ部１１１と、知識ベース部１１２と、情報取得部１１３と、推論部１１４と、情報出力部１１５と、フィードバック情報抽出部１１６と、更新部２１７と、要因抽出部２１８とを備える。
【００４４】
実施の形態２における推論装置２１０の接続Ｉ／Ｆ部１１１、知識ベース部１１２、情報取得部１１３、推論部１１４、情報出力部１１５及びフィードバック情報抽出部１１６は、実施の形態１における推論装置１１０の接続Ｉ／Ｆ部１１１、知識ベース部１１２、推論部１１４、情報出力部１１５及びフィードバック情報抽出部１１６と同様である。
但し、情報取得部１１３は、応答情報を要因抽出部２１８にも与え、推論部１１４は、推論結果を要因抽出部２１８にも与え、フィードバック情報抽出部１１６は、フィードバック情報を要因抽出部２１８にも与える。
【００４５】
要因抽出部２１８は、推論部１１４からの推論結果と、フィードバック情報抽出部１１６からのフィードバック情報とに基づいて、推論結果が、ユーザが所望する結果ではない場合に、情報取得部１１３からの応答情報から、ユーザが所望する結果の要因を特定し、特定された要因を示す要因情報を抽出する。要因情報は、更新部２１７に与えられる。
【００４６】
なお、ユーザが所望する結果の要因については、要因抽出部２１８に予め情報が設定されており、応答情報に、予め設定されている情報が含まれている場合には、要因抽出部２１８は、その情報をユーザが所望する結果の要因として特定する。
また、要因抽出部２１８は、応答情報から所望結果の要因を特定する要因特定部として機能する。
【００４７】
ここで、情報出力部１１５は、推論結果を出力する際に、ユーザとの間でやり取りを行うことで、要因を抽出できるようにしてもよい。例えば、ユーザとの応答のうち、推論結果の提示時、ユーザの応答で、ユーザが所望する結果が選択された後に、情報出力部１１５は、それが選択された理由を得るためにユーザとの応答を行えばよい。
また、フィードバック情報は、推論結果と同じ種類のデータであるため、要因抽出部２１８は、ユーザからの応答のうち、推論結果とは異なる種類の情報を要因としてもよい。
【００４８】
更新部２１７は、情報取得部１１３から受け取った状況情報、推論部１１４から受け取った推論結果、フィードバック情報抽出部１１６から受け取ったフィードバック情報及び要因抽出部２１８から受け取った要因情報で示される要因を用いて、知識ベース部１１２に記憶されている知識ベースの更新を行う。
具体的には、更新部２１７は、推論結果が所望結果と異なる場合に、知識ベースで示される知識グラフにおいて、要因情報で示される要因を示すノードである要因ノードを経由する、推論開始ノードと、推論結果ノードとの間の最短パスに含まれるエッジの重み付けを小さくする。さらに、更新部２１７は、要因ノードを経由する、推論開始ノードと、所望結果に対応するノードとの間の最短パスに含まれるエッジの重み付けを大きくする。
【００４９】
実施の形態２に係る推論装置２１０も図２に示されているコンピュータ１２０により実現することができる。
例えば、更新部２１７及び要因抽出部２１８は、プロセッサ１２４が補助記憶装置１２２に記憶されているプログラムをメモリ１２３に読み出して実行することにより実現することができる。
【００５０】
図７は、実施の形態２に係る推論装置２１０における知識ベースの更新処理を示すフローチャートである。
なお、図７に示されているフローチャートに含まれているステップの内、図３に示されているフローチャートに含まれているステップと同じ処理をするステップについては、図３と同じ符号を付す。
【００５１】
図７におけるステップＳ１０〜Ｓ１３の処理は、図３におけるステップＳ１０〜Ｓ１３の処理と同様である。
但し、ステップＳ１３において、推論結果がユーザの所望する結果ではない場合（Ｓ１３でＮｏ）には、処理はステップＳ２０に進む。
【００５２】
ステップＳ２０では、更新部２１７は、要因抽出部２１８から要因情報を取得する。
次に、更新部２１７は、要因情報で示される要因に対応する要因ノードを経由して、推論開始ノードから推論結果ノードまでの最短パスを特定する（Ｓ２１）。
そして、更新部２１７は、ステップＳ２１で特定された最短パスのエッジの重みを小さくする（Ｓ２２）。例えば、更新部２１７は、予め定められた値だけ、エッジの重みを小さくする。
【００５３】
次に、更新部２１７は、要因ノードを経由して、推論開始ノードからターゲットノードまでの最短パスを特定する（Ｓ２３）。
そして、更新部２１７は、ステップＳ２３で特定された最短パスのエッジの重みを大きくする（Ｓ２４）。例えば、更新部２１７は、予め定められた値だけ、エッジの重みを大きくする。
【００５４】
なお、ステップＳ２１で、要因ノードを経由するパスがない場合には、更新部２１７は、要因ノードからターゲットノードまでのパスと、推論開始ノードからターゲットノードまでのパスで重なる部分があるパスを取得してもよい。
【００５５】
また、ステップＳ２３でも、要因ノードを経由するパスがない場合には、更新部２１７は、要因ノードから推論結果ノードまでのパスと、推論開始ノードから推論結果ノードまでのパスで重なる部分があるパスを取得するようにしてもよい。
【００５６】
次に、図８を用いて、知識ベースの更新処理の具体例を説明する。
図８は、実施の形態１における図４及び図５と同様に、自動車を運転中の運転手にお勧めの飲食店を提案する推薦システムの例である。
【００５７】
例えば、実施の形態１と同様に、推論結果が、「ハンバーガー」となった場合に、「ハンバーガー」を提示後、ユーザが、「ハンバーガーよりは、ラーメンが食べたい」などと応答した場合、フィードバック情報は「ラーメン」となる。その後、「ラーメンのいいですね。寒いからですか？」と問いかけ、「そう、寒いときはラーメンがいい」との応答をユーザから得たとする。
【００５８】
このような場合、推論開始ノードは、「金曜」ノードＮ１及び「飲食店」ノードＮ２になり、推論結果ノードは、「ハンバーガー」ノードＮ４になり、ターゲットノードは、「ラーメン」ノードＮ５となる。
そして、要因ノードは、「寒い日」ノードＮ６となる。
【００５９】
このような場合、更新部２１７は、要因ノードである「寒い日」ノードＮ６を経由する、推論開始ノードである「金曜」ノードＮ１と、推論結果の「ハンバーガー」ノードＮ４との間の最短パスに含まれているエッジＥ１、Ｅ７、Ｅ５、Ｅ６の重みを小さくするとともに、要因ノードである「寒い日」ノードＮ６を経由する、推論開始ノードである「夕方」ノードＮ２と、推論結果の「ハンバーガー」ノードＮ４との間の最短パスに含まれているエッジＥ３、Ｅ４、Ｅ５、Ｅ６の重みを小さくする。
【００６０】
一方、更新部２１７は、要因ノードである「寒い日」ノードＮ６を経由する、推論開始ノードである「金曜」ノードＮ１と、ユーザが所望する結果の「ラーメン」ノードＮ５との間の最短パスに含まれているエッジＥ１、Ｅ７、Ｅ８、Ｅ９の重みを大きくするとともに、要因ノードである「寒い日」ノードＮ６を経由する、推論開始ノードである「夕方」ノードＮ２と、ユーザが所望する結果の「ラーメン」ノードＮ５との間の最短パスに含まれているエッジＥ３、Ｅ４、Ｅ８、Ｅ９の重みを大きくする。
【００６１】
なお、要因ノードについては、「寒い日」ではなく、センサ１０３から取得された気温により「気温１０℃以下」とするノードであってもよい。さらに、応答情報に「昨日食べた」といった昨日の行動履歴が含まれている場合には、「昨日食べた」を示すノードが要因ノードとなってもよい。
【００６２】
以上により、推論時に要因ノードを含むパスに対して重みを大きくすることで、要因ノードを含む状況の場合に、ユーザが所望する結果をより高精度に推論することができる。
【符号の説明】
【００６３】
１００，２００  推論システム、  １０１  ＡＰ、  １０２  ユーザＩ／Ｆ、  １０３  センサ、  １０４  カメラ、  １０５  ＧＰＳ、  １０６  インターネット、  １１０，２１０  推論装置、  １１１  接続Ｉ／Ｆ部、  １１２  知識ベース部、  １１３  情報取得部、  １１４  推論部、  １１５  情報出力部、  １１６  フィードバック情報抽出部、  １１７，２１７  更新部、  ２１８  要因抽出部。
【要約】
要求に対する回答の推論を行なうための知識ベースを記憶する知識ベース部（１１２）と、ユーザからの要求であるユーザ要求を含む情報である状況情報及び推論の結果である推論結果に対するユーザの応答を含む応答情報を取得する情報取得部（１１３）と、状況情報に含まれているユーザ要求に対して、知識ベースを用いて、推論を行なう推論部（１１４）と、推論結果を出力する情報出力部（１１５）と、応答情報から、ユーザ要求に対してユーザが所望する結果である所望結果を特定するフィードバック情報抽出部（１１６）と、所望結果が推論結果となりやすくなるように、知識ベースを更新する更新部（１１７）とを備える。【図１】
0006837614.tif 000002
【図２】
0006837614.tif 000003
【図３】
0006837614.tif 000004
【図４】
0006837614.tif 000005
【図５】
0006837614.tif 000006
【図６】
0006837614.tif 000007
【図７】
0006837614.tif 000008
【図８】
0006837614.tif 000009