(57)【特許請求の範囲】
【請求項１】
人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成する情報結合部と、
情報解析部と
を有し、
前記互いに異なるドメインに属する情報は、ノードとエッジとを有する有向グラフとして表現できる情報であり、
前記統合情報は、前記異なるドメインに属する情報である前記有向グラフを結合することによって生成された統合グラフであり、
前記情報解析部は、前記統合グラフの構成要素であるノードの重要度を、前記統合グラフ上をランダムウォークして定常状態に収束したときの前記ノードに到達する確率から算出する又はページランクのアルゴリズムを用いて算出する
ことを特徴とする推論装置。
【請求項２】
前記情報解析部は、前記有向グラフを変換するための変換パターンを有し、
前記変換パターンは、
前記有向グラフを変換せずに利用する第１の変換パターンと、
前記有向グラフを無向グラフに変換する第２の変換パターンと、
前記有向グラフを逆向きの有向グラフに変換する第３の変換パターンと、
を含む
ことを特徴とする請求項１に記載の推論装置。
【請求項３】
前記情報解析部は、
前記有向グラフの構成要素であって、前記推論ルールに従う推論の基点となるノードを観測ノードに設定し、
前記観測ノードの重みを０以上に設定し、前記観測ノード以外のノードの重みを０とした観測ベクトルを作成し、
前記観測ベクトルに基づいて前記重要度を算出する
ことを特徴とする請求項１又は２に記載の推論装置。
【請求項４】
人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成する情報結合部と、
グラフ経路解析部と
を有し、
前記互いに異なるドメインに属する情報は、ノードとエッジとを有するグラフとして表現できる情報であり、
前記統合情報は、前記異なるドメインに属する情報である前記グラフを結合することによって生成された統合グラフであり、
前記グラフ経路解析部は、前記統合グラフにおいて、前記ノードのうちの推論開始ノードと、推論経由ノードと、推論終了ノードとを設定し、前記推論開始ノードと前記推論終了ノードを結ぶ前記統合グラフ上の経路のうちから、最適経路を算出することを特徴とする推論装置。
【請求項５】
前記グラフ経路解析部は、前記推論開始ノードと前記推論終了ノードを結ぶ前記統合グラフ上の経路のうち、前記経路上のノードの重要度の合計が最大となる経路を前記最適経路とすることを特徴とする請求項４に記載の推論装置。
【請求項６】
前記グラフ経路解析部は、
前記推論開始ノードと前記推論終了ノードを結ぶ前記統合グラフ上の経路のうち、前記経路上のノードの個数が最小となる経路が１つの経路である場合は、前記１つの経路を前記最適経路とし、
前記推論開始ノードと前記推論終了ノードを結ぶ前記統合グラフ上の経路のうち、前記経路上のノードの個数が最小となる経路が複数の経路である場合は、前記複数の経路のうちの、前記ノードの重要度の合計が最大となる経路を前記最適経路とする
ことを特徴とする請求項４に記載の推論装置。
【請求項７】
前記グラフ経路解析部は、
最適経路が経由することが決められているノードを必須の推論経由ノードとして指定し、
前記推論経由ノードを経由する経路を前記最適経路とする
ことを特徴とする請求項４に記載の推論装置。
【請求項８】
前記グラフ経路解析部は、
最適経路が経由することが決められているノードを必須の推論経由ノードとして指定し、
前記必須の推論経由ノードを経由する経路が１つの経路である場合は、前記１つの経路を前記最適経路とし、
前記必須の推論経由ノードを経由する経路が複数の経路であり、かつ、前記複数の経路のうち、前記経路上のノードの個数が最小となる経路が１つの経路である場合は、前記１つの経路を前記最適経路とし、
前記必須の推論経由ノードを経由する経路が複数の経路であり、かつ、前記複数の経路のうち、前記経路上のノードの個数が最小となる経路が複数の経路である場合は、前記経路上のノードの個数が最小となる前記複数の経路のうちの、前記ノードの重要度の合計が最大となる経路を前記最適経路とする
ことを特徴とする請求項４に記載の推論装置。
【請求項９】
前記統合グラフに、前記必須の推論経由ノードとして、推論ルールを示すルールノードと、前記ルールノードが適用されて生成されたノードとが追加されたことを特徴とする請求項８に記載の推論装置。
【請求項１０】
ユーザの操作履歴を保存する操作履歴保存部をさらに備え、
前記情報解析部は、
前記操作履歴に基づいて前記観測ベクトルを更新し、
前記更新された観測ベクトルに基づいて前記重要度を算出する
ことを特徴とする請求項３に記載の推論装置。
【請求項１１】
前記外部の情報を予め決められた形式の情報に変換して前記情報結合部に提供する動的情報取得部をさらに有することを特徴とする請求項１から１０のいずれか１項に記載の推論装置。
【請求項１２】
前記知識ベースを保存する知識ベース部と、
前記ルールデータベースを保存するルールデータベース部と
をさらに有することを特徴とする請求項１から１１のいずれか１項に記載の推論装置。
【請求項１３】
推論装置が実行する推論方法であって、
前記推論装置が、人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成するステップであって、前記互いに異なるドメインに属する情報は、ノードとエッジとを有する有向グラフとして表現できる情報であり、前記統合情報は、前記異なるドメインに属する情報である前記有向グラフを結合することによって生成された統合グラフであるステップと、
前記推論装置が、前記統合グラフの構成要素であるノードの重要度を、前記統合グラフ上をランダムウォークして定常状態に収束したときの前記ノードに到達する確率から算出する又はページランクのアルゴリズムを用いて算出するステップと
を有することを特徴とする推論方法。
【請求項１４】
人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を取得する処理と、
前記知識情報と前記推論ルールとを用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成する処理であって、前記互いに異なるドメインに属する情報は、ノードとエッジとを有する有向グラフとして表現できる情報であり、前記統合情報は、前記異なるドメインに属する情報である前記有向グラフを結合することによって生成された統合グラフである処理と、
前記統合グラフの構成要素であるノードの重要度を、前記統合グラフ上をランダムウォークして定常状態に収束したときの前記ノードに到達する確率から算出する又はページランクのアルゴリズムを用いて算出する処理と
をコンピュータに実行させることを特徴とする推論プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推論装置、推論方法、及び推論プログラムに関する。
【背景技術】
【０００２】
近年、深層学習技術の進展と第三次ＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）ブームとが相まって、スマートスピーカなどのような、人工知能を活用したユーザインタフェースが普及しつつある。人工知能を活用したユーザインタフェースを実現する主要な方法として、以下の２つの方法がある。第１の方法は、ユーザインタフェースを人手で設計する方法である（例えば、特許文献１及び２参照）。第２の方法は、ユーザインタフェースに機械学習を利用する方法である（例えば、非特許文献１及び２参照）。【０００３】
特許文献１は、第１の方法の例として、音声対話を含む複数のコミュニケーションモードを利用するマルチモーダルインタフェースを、ステートチャートで設計する技術を記載している。また、特許文献２は、第１の方法の例として、音声対話などの動作シーケンスをステートチャートで記述し、動作シーケンスを高速に実行する技術を記載している。【０００４】
非特許文献１は、第２の方法の例として、ニューラルネットワークにメモリ構造を追加して、対話データをＥｎｄ−Ｔｏ−Ｅｎｄ教師あり学習する技術を記載している。また、非特許文献２は、第２の方法の例として、知識ベースを利用した対話データをＥｎｄ−Ｔｏ−Ｅｎｄ強化学習する技術を記載している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６０２２１１１号公報
【特許文献２】国際公開第２０１８／０８３７２９号
【非特許文献】
【０００６】
【非特許文献１】Ｓ．Ｓｕｋｈｂａａｔａｒ、外３名、  “Ｅｎｄ−Ｔｏ−Ｅｎｄ  Ｍｅｍｏｒｙ  Ｎｅｔｗｏｒｋｓ”、  ＮＩＰＳ  ２０１５
【非特許文献２】Ｂ．Ｄｈｉｎｇｒａ、外６名、  “Ｔｏｗａｒｄｓ  Ｅｎｄ−ｔｏ−Ｅｎｄ  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ  ｏｆ  Ｄｉａｌｏｇｕｅ  Ａｇｅｎｔｓ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｃｃｅｓｓ”、  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ５５ｔｈ  Ａｎｎｕａｌ  Ｍｅｅｔｉｎｇ  ｏｆ  ｔｈｅ  Ａｓｓｏｃｉａｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｌｉｎｇｕｉｓｔｉｃｓ  ２０１７
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記いずれの技術を用いても、様々な状況において、人間に「気が利く」と思わせる知的な対話を実現することは困難である。人間（以下「ユーザ」ともいう。）に「気が利く」と思わせる人工知能エージェント（以下「ＡＧ」ともいう。）による知的な対話の例を以下の表１に、対話例Ｄ１及びＤ２として示す。【０００８】
【表１】
0006567218.tif 000002
【０００９】
対話例Ｄ２のように、ＡＧに『近くに冷やし中華のレストランありますよ。』という気の利いた発話を自動で行わせるためには、「情報統合」と「推論」の２つの要素技術が必要である。【００１０】
「情報統合」は、互いに異なる複数のドメインの各々に属する情報を統合する要素技術である。互いに異なる複数のドメインの各々に属する情報は、例えば、天気、人間による操作履歴、ナビゲーション（単に「ナビ」ともいう。）情報、人間の好み、及び人間の行動に関する知識、などである。人間は、例えば、運転手である。人間の行動に関する知識は、例えば、「暑いときに冷たい食べ物を食べる」といった人間の行動に関する情報である。【００１１】
「推論」は、例えば、演繹推論の要素技術である。以下の（Ｄ３）〜（Ｄ５）は、演繹推論の例である。
（Ｄ３）「ユーザが空調機の設定温度を下げたということは、ユーザが暑いと感じているということである。」
（Ｄ４）「ユーザが暑いと感じているということは、ユーザは冷たいものを食べたいと感じているということである。」
（Ｄ５）「ユーザが冷たいものを食べたいと感じているということは、近くに冷やし中華のお店があるので、そのお店をユーザに勧めるべきであるということである。」【００１２】
対話例Ｄ１及びＤ２のように利用できる情報が動的に変化する環境では、上記第１の方法のように、すべての状態を列挙して対話シーケンスを人手で設計することは困難である。【００１３】
同様に、利用できる情報が動的に変化する環境では、すべてのケースを網羅するような対話データを収集することは非常に高コストであるか、又は現実的に不可能である。このため、上記第２の方法において、対話データをＥｎｄ−Ｔｏ−Ｅｎｄ教師あり学習することは困難である。【００１４】
また、利用できる情報が動的に変化する環境で、上記第２の方法において、対話データをＥｎｄ−Ｔｏ−Ｅｎｄ強化学習するためには、学習データを効率的に収集するための対話シミュレータが必要である。しかし、あらゆる状況に対応することができる対話シミュレータの作成は困難である。【００１５】
本発明は、上記従来技術の課題を解決するためになされたものであり、複数のドメインの各々に属する情報からユーザに適した推論結果を導出することを可能にする推論装置、推論方法、及び推論プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の一態様に係る推論装置は、人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成する情報結合部と、情報解析部とを有し、前記互いに異なるドメインに属する情報は、ノードとエッジとを有する有向グラフとして表現できる情報であり、前記統合情報は、前記異なるドメインに属する情報である前記有向グラフを結合することによって生成された統合グラフであり、前記情報解析部は、前記統合グラフの構成要素であるノードの重要度を、前記統合グラフ上をランダムウォークして定常状態に収束したときの前記ノードに到達する確率から算出する又はページランクのアルゴリズムを用いて算出することを特徴とする。
【００１７】
本発明の他の態様に係る推論方法は、推論装置が実行する推論方法であって、前記推論装置が、人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベースから提供される知識情報と、ルールデータベースから提供される推論ルールと、を用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報を前向き連鎖で結合することによって統合情報を生成するステップであって、前記互いに異なるドメインに属する情報は、ノードとエッジとを有する有向グラフとして表現できる情報であり、前記統合情報は、前記異なるドメインに属する情報である前記有向グラフを結合することによって生成された統合グラフであるステップと、前記推論装置が、前記統合グラフの構成要素であるノードの重要度を、前記統合グラフ上をランダムウォークして定常状態に収束したときの前記ノードに到達する確率から算出する又はページランクのアルゴリズムを用いて算出するステップとを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、複数のドメインの各々に属する情報が動的に変化する環境であっても、複数のドメインの各々に属する情報からユーザに適した推論結果を導出することが可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態１に係る推論装置の構成を概略的に示す機能ブロック図である。
【図２】実施の形態１に係る推論装置のハードウェア構成の例を示す図である。
【図３】実施の形態１に係る推論装置のハードウェア構成の他の例を示す図である。
【図４】実施の形態１に係る推論装置の動作を示すフローチャートである。
【図５】ＲＤＦ表現の例を、有向グラフを用いて示す図である。
【図６】実施の形態１における知識ベースの例を表形式（表３）で示す図である。
【図７】実施の形態１に係る推論装置の動的情報取得部が生成するデータの例を表形式（表４）で示す図である。
【図８】（ａ）及び（ｂ）は、実施の形態１に係る推論装置のグラフ結合部がルールデータベースに格納された推論ルールである前向き連鎖ルールを用いて有向グラフを作成する様子を示す図である。
【図９】表３（図６）及び表４（図７）に示される知識ベースを表現するグラフに対して、推論ルールである前向き連鎖ルールを順次適用することで得られたグラフの例を示す図である。
【図１０】（ａ）〜（ｃ）は、演繹推論、帰納推論、及び仮説的推論をグラフとして示す図である。
【図１１】実施の形態１に係る推論装置のグラフ検索部がグラフを検索することによって取得したデータの例を表形式（表５）で示す図である。
【図１２】実施の形態１に係る推論装置のグラフ検索部によって検索されたノードの重要度、検索結果を含む統合グラフ（図１１に対応する統合グラフ）の例を示す図である。
【図１３】実施の形態１に係る推論装置によってユーザの意図を理解するための動作例を表形式（表６）で示す図である。
【図１４】実施の形態１に係る推論装置の動作によって取得された重要度を含む統合グラフ（図１３に対応する統合グラフ）の例を示す図である。
【図１５】実施の形態１に係る推論装置によってユーザのアテンションを理解するための動作例を表形式（表７）で示す図である。
【図１６】実施の形態１に係る推論装置の動作によって取得された重要度を含む統合グラフ（図１５に対応する統合グラフ）の例を示す図である。
【図１７】本発明の実施の形態２に係る推論装置の構成を概略的に示す機能ブロック図である。
【図１８】（ａ）及び（ｂ）は、実施の形態２に係る推論装置の情報出力部によって出力される情報の例を示す図である。
【図１９】実施の形態２に係る推論装置のグラフ解析部の動作例を表形式（表８）で示す図である。
【図２０】本発明の実施の形態３に係る推論装置の構成を概略的に示す機能ブロック図である。
【図２１】実施の形態３に係る推論装置のグラフ経路解析部の動作例を示す図である。
【図２２】（ａ）及び（ｂ）は、実施の形態３に係る推論装置のグラフ経路解析部の他の動作例を示す図である。
【図２３】（ａ）から（ｃ）は、実施の形態３に係る推論装置のグラフ経路解析部のさらに他の動作例を示す図である。
【発明を実施するための形態】
【００２０】
以下に、本発明の実施の形態に係る推論装置、推論方法、及び推論プログラムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、本発明の範囲内で種々の変更が可能である。
【００２１】
《１》実施の形態１
《１−１》構成
実施の形態１に係る推論装置は、互いに異なる複数のドメインに属する情報を、グラフを用いる方法で統合し、統合された情報としての統合グラフを作る。また、実施の形態１に係る推論装置は、統合された情報としての統合グラフから推論の結果を導出する構成を備えることができる。ここで、グラフとは、頂点（すなわち、ノード）と辺（すなわち、エッジ）とを構成要素として有する図形である。推論の結果を導出する方法は、例えば、学習データを必要としないグラフ解析方法である。グラフは主に、有向グラフと無向グラフとに分類される。有向グラフは、頂点と、向きを持つ辺（すなわち、矢印）と、により構成される。無向グラフは、頂点と、向きを持たない辺と、により構成される。無向グラフは、頂点と、両方向に向きを持つ辺と、により構成される双方向グラフと等価である。実施の形態１における有向グラフは、例えば、後述の図５、図８（ａ）及び（ｂ）、などに示される。
【００２２】
図１は、実施の形態１に係る推論装置１０の構成を概略的に示す機能ブロック図である。推論装置１０は、実施の形態１に係る推論方法を実施することができる装置である。図１に示されるように、推論装置１０は、情報結合部としてのグラフ結合部１４を備えている。また、推論装置１０は、知識ベース１１ａを保存する知識ベース部１１と、ルールデータベース１２ａを保存するルールデータベース部１２と、動的情報取得部１３と、情報結合部としてのグラフ結合部１４と、情報解析部としてのグラフ解析部１５と、情報検索部としてのグラフ検索部１６と、情報出力部１７とを備えてもよい。
【００２３】
知識ベース部１１は、知識情報からなる知識ベース１１ａを保存する記憶装置である。知識ベース部１１は、推論装置１０の一部である。ただし、知識ベース部１１は、推論装置１０と通信できるように接続された外部の装置に備えられてもよい。
【００２４】
ルールデータベース部１２は、複数のグラフを結合（すなわち、連結）するための複数のルール（以下「推論ルール」ともいう。）を保存する記憶装置である。ルールデータベース部１２は、推論装置１０の一部である。ただし、ルールデータベース部１２は、推論装置１０と通信できるように接続された外部の装置に備えられてもよい。
【００２５】
動的情報取得部１３は、動的に変化する外部の情報を取得する。動的情報取得部１３は、時々刻々と動的に変化する情報を取得し、取得された情報を予め決められた形式の情報に変換して出力する。外部の情報は、外部の装置、外部の装置で実行されるアプリケーション、などから取得される。外部の情報は、例えば、アプリケーション４１、ユーザインタフェース４２、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）４３、カメラ４４、インターネット４５、外部データベース４６、センサ４７、などから取得される。アプリケーション４１は、コンピュータ、携帯情報端末、などの装置で動作するソフトウェアである。
【００２６】
グラフ結合部１４は、知識ベース１１ａから提供された知識情報と、ルールデータベース１２ａから提供された推論ルールと、動的情報取得部１３によって取得された外部の情報とに基づいて、グラフ（以下「意味のグラフ」又は「データ構造」又は「知識グラフ」ともいう。）を動的に結合することによって、情報が統合された統合グラフを生成する。
【００２７】
グラフ解析部１５は、グラフ結合部１４によって生成された統合グラフを解析して、この統合グラフの構成要素であるノードの重要度を算出する。各ノードの重要度は、例えば、統合グラフ上を無限にランダムウォークして定常状態となったときの、各ノードに到達する確率、すなわち、各ノードへの到達確率である。
【００２８】
グラフ検索部１６は、グラフ解析部１５によって解析された統合グラフから、グラフ解析部１５によって算出された重要度を用いて、所望の情報を検索する。所望の情報は、例えば、グラフ解析部１５によって解析された統合グラフにおける特定の情報パターンである。
【００２９】
情報出力部１７は、グラフ検索部１６によって検索された所望の情報をユーザインタフェース５１に出力する。
【００３０】
ユーザインタフェース５１は、例えば、音声を出力する音声出力装置としてのスピーカ、映像を表示する映像出力装置としてのディスプレイ、などである。ユーザインタフェース５１は、グラフ検索部１６によって検索された所望の情報を、ユーザに対し、音声、映像、などによって提供する。
【００３１】
図２は、実施の形態１に係る推論装置１０のハードウェア構成の例を示す図である。図２の例では、推論装置１０は、処理回路６１と、記憶装置としてのハードディスクドライブ（ＨＤＤ）６２と、入力インタフェース装置６３と、出力インタフェース装置６４とを備えている。処理回路６１は、例えば、図１に示される動的情報取得部１３、グラフ結合部１４、グラフ解析部１５、グラフ検索部１６、及び情報出力部１７の機能を実現することができる半導体集積回路である。入力インタフェース装置６３は、例えば、外部機器、外部機器で実行されるソフトウェア、などと通信を行う回路である。出力インタフェース装置６４は、例えば、外部機器、外部機器で実行されるソフトウェア、などと通信を行う回路である。
【００３２】
処理回路６１は、例えば、専用のハードウェアである。処理回路６１は、例えば、単一回路、複合回路、プログラムを実行するプロセッサ、並列プログラムを実行するプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はこれらを組み合わせたものであってもよい。
【００３３】
図３は、実施の形態１に係る推論装置１０のハードウェア構成の他の例を示す図である。図３において、図２に示される構成要素と同一又は対応する構成要素には、図２に示される符号と同じ符号が付される。図３の例では、推論装置１０は、情報処理部としてのプロセッサであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７１と、プログラムを記憶する記憶装置としてのメモリ７２と、記憶装置としてのＨＤＤ６２と、入力インタフェース装置６３と、出力インタフェース装置６４とを備えている。メモリ７２は、実施の形態１に係る推論プログラムを記憶することができる。ＣＰＵ７１は、メモリ７２に記憶されている推論プログラムを実行することによって、図１に示される動的情報取得部１３、グラフ結合部１４、グラフ解析部１５、グラフ検索部１６、及び情報出力部１７の機能を実現することができる。
【００３４】
ＣＰＵ７１は、１次キャッシュメモリ及び２次キャッシュメモリなどの複数のキャッシュメモリを備えてもよい。また、ＨＤＤ６２、メモリ７２、などに記憶されているプログラムは、推論装置１０が行う処理の手順又は方法をコンピュータに実行させる。メモリ７２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）などのような、不揮発性又は揮発性の半導体メモリである。
【００３５】
図２及び図３において、学習データの保存には、ＨＤＤ６２を使用することができる。なお、学習データは、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などのような光ディスクを用いる光学式記憶装置、半導体メモリ、外部の記憶装置、などに記憶されてもよい。
【００３６】
なお、推論装置１０は、その機能の一部を専用のハードウェアで実現し、機能の他の一部をソフトウェア又はファームウェアで実現してもよい。例えば、動的情報取得部１３の機能を専用のハードウェアとしての処理回路で実現し、動的情報取得部１３以外の構成の機能をメモリに格納されたプログラムを実行するプロセッサであるＣＰＵで実現してもよい。
【００３７】
《１−２》動作
《１−２−１》動作の概要
図４は、実施の形態１に係る推論装置１０の動作を示すフローチャートである。推論装置１０の動作は、フェーズＰｈ１の動作である事前準備と、フェーズＰｈ２の動作である推論の実行とを含む。
【００３８】
フェーズＰｈ１は、ステップＳ１０１の処理である知識ベース１１ａの準備と、ステップＳ１０２の処理であるルールデータベース１２ａの準備とを含む。フェーズＰｈ１の処理の全体又は一部は、推論装置１０以外の装置によって行われてもよい。
【００３９】
フェーズＰｈ２は、ステップＳ１０３の処理である動的情報の取得と、ステップＳ１０４の処理であるグラフの結合と、ステップＳ１０５の処理である統合グラフの解析と、ステップＳ１０６の処理である統合グラフの検索と、ステップＳ１０７の処理である情報の出力とを含む。ステップＳ１０４の処理であるグラフの結合は、事前準備された知識ベース１１ａとルールデータベース１２ａとを用いて実行される。
【００４０】
《１−２−２》ステップＳ１０１：知識ベース１１ａの準備
まず、推論装置１０を動作させるために使用される様々な知識情報を保存する知識ベース１１ａが作成される。知識ベース１１ａは、知識ベース部１１に格納される。
【００４１】
知識ベース１１ａとして保存される情報の形式は、例えば、ＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）である。ＲＤＦは、インターネット上にある情報（リソース）を表現するための標準化された枠組みである。ＲＤＦでは、主語、述語、及び目的語からなるトリプレット、すなわち、３個の項目の組、を用いてデータを表現する。
【００４２】
また、ＲＤＦＳ（ＲＤＦ  Ｓｃｈｅｍａ）は、リソースを表現するための標準化された語彙定義である。表２に示される例Ｙ１では、ＲＤＦＳで定義されている「ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ」という述語を用いて、ラーメンクラス（主語）は食べ物クラス（目的語）であることを、１つのトリプレットを用いて表現している。ここで、「ラーメンクラス」は、ラーメンに属する物を意味している。また、「食べ物クラス」は、食べ物に属する物を意味している。
【００４３】
【表２】
0006567218.tif 000003
【００４４】
図５は、ＲＤＦ表現の例Ｙ１を、有向グラフを用いて示す図である。図５に示されるように、ＲＤＦ表現では、主語と目的語とは頂点、すなわち、ノードとして表現され、述語は辺、すなわち、エッジとして表現される。ＲＤＦ表現では、主語、述語、及び目的語からなるトリプレットは、主語であるノードと、目的語であるノードと、述語である矢印、すなわち、主語から目的語へ向かうエッジである矢印と、を含む有向グラフとして表現される。
【００４５】
本出願において、例えば、主語Ａ０、述語Ｂ０、及び目的語Ｃ０からなるトリプレットは、以下のように、括弧を用いて記述される。
（Ａ０、  Ｂ０、  Ｃ０）
【００４６】
知識ベース１１ａとして保存されている知識情報は、例えば、機器情報、常識（すなわち、コモンセンス）情報、一般的な知識情報、これらの情報のオントロジー、などである。知識ベース１１ａとして保存されている知識情報は、機器情報、常識情報、一般的な知識情報、これらの情報のオントロジー、などのうちの２種類以上を含むことができる。
【００４７】
「機器情報」は、機器に関する情報である。機器情報は、例えば、機器の属性、機器の名前、機器の種類、機器の設定項目、機器の設定項目の数値範囲、機器の利用制限、機器の使用回数、機器の使い方、などである。機器の属性は、例えば、エアコンクラス、扇風機クラス、音楽再生機クラス、などを含むことができる。
【００４８】
「常識情報」は、人間の一般常識に関する情報である。常識情報は、例えば、人間の価値観、人間の考え、人間の行動、人間の状態、などである。常識情報は、人間の状態に関する情報と人間の行動に関する情報とを含む。人間の状態に関する情報は、人間の物理的状態に関する情報と人間の心理的状態に関する情報とを含む。人間の状態に関する情報は、例えば、人間が暑いと感じている、人間が寒いと感じている、人間が困っている、人間が笑っている、などの情報を含むことができる。人間の行動に関する情報は、例えば、運転する、食べる、寝る、探す、特定の場所に行く、などの情報を含むことができる。
【００４９】
知識ベース１１ａの常識情報の例Ｆ１を以下に示す。
Ｆ１＝（暑い、  ｔｈｅｎ、  冷たい食べ物を食べる）
【００５０】
常識情報の例Ｆ１は、「人間は、暑いならば、冷たい食べ物を食べる。」という知識を、（主語、  述語、  目的語）の１つのトリプレットで表現している。例Ｆ１のトリプレットにおける「ｔｈｅｎ」（述語）は、「人間が（主語）の状態にある場合、次に取る行動は（目的語）の行動である。」を意味するものとして、定義される。したがって、例Ｆ１のトリプレットは、「人間が「暑い」（主語）という状態にある場合、人間が次に取る行動は「冷たい物を食べる」（目的語）の行動である」ことを示している。
【００５１】
知識ベース１１ａの常識情報の例Ｆ２ａ及びＦ２ｂを以下に示す。
Ｆ２ａ＝（冷たい食べ物を食べる、  ｓｌｏｔ、  冷たい食べ物クラス）
Ｆ２ｂ＝（冷たい食べ物を食べる、  ｓｕｂＡｃｔ、  食べる）
【００５２】
常識情報の例Ｆ２ａ及びＦ２ｂは、「「冷たい食べ物を食べる」という行動は、その対象が「冷たい食べ物クラス」であり、上位概念としての行動は「食べる」である。」という知識を、（主語、  述語、  目的語）を含む２つのトリプレットで表現している。例Ｆ２ａにおける「ｓｌｏｔ」（述語）は、「（主語）の行動が対象とする物体は、（目的語）の物体である。」を意味するものとして、定義される。例Ｆ２ｂにおける「ｓｕｂＡｃｔ」（述語）は、「（主語）の上位概念の行動は、（目的語）の行動である。」を意味するものとして、定義される。
【００５３】
なお、使用される常識情報は、地域、性別、及び推論の対象としているアプリケーション、のドメインごとに、異なる情報であってもよい。つまり、推論装置１０が対象としている人又は分野に応じて、推論装置１０が使用する知識ベース１１ａの常識情報を、複数種類の常識情報のうちのいずれかの常識情報に切替えてもよい。
【００５４】
「一般的な知識情報」は、普遍的な事実に関する情報である。「一般的な知識情報」は、工学、物理、科学、生物、医学、食品、地理、宗教、経済、政治、歴史、有名人物、などに関する情報を含むことができる。
【００５５】
知識ベース１１ａの一般的な知識情報の例Ｇ１を以下に示す。
Ｇ１＝（アイスクリーム、  ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ、  冷たい食べ物クラス）
【００５６】
一般的な知識情報の例Ｇ１における「ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ」（述語）は、「（主語）の物は、（目的語）の物のサブクラスである。」を意味するものとして、定義される。例Ｇ１は、「アイスクリーム（主語）は、冷たい食べ物（目的語）の、サブクラスである。」という知識を、（主語、  述語、  目的語）の１つのトリプレットで表現している。
【００５７】
知識ベース１１ａの一般的な知識情報の例Ｇ２を以下に示す。
Ｇ２＝（苺アイスクリーム、  ｉｎｓｔａｎｃｅＯｆ、  アイスクリームクラス）
【００５８】
一般的な知識情報の例Ｇ２における「ｉｎｓｔａｎｃｅＯｆ」（述語）は、「（主語）の物は、（目的語）のインスタンスである。」を意味するものとして、定義される。例Ｇ２は、「苺アイスクリーム（主語）は、アイスクリームクラス（目的語）、のインスタンス（実態）である。」という知識を、（主語、  述語、  目的語）の１つのトリプレットで表現している。
【００５９】
前記オントロジーとは、対象とするドメインの語彙、語彙と語彙の関係、クラス、属性、制約条件等である。
オントロジーは、例えば、以下に列記する情報である。
・述語「ｓｌｏｔ」は「（主語）の行動が対象とする物体は（目的語）である。」を意味する。
・述語「ｓｌｏｔ」がとり得る主語は行動に関する語彙である。
・述語「ｓｌｏｔ」がとり得る目的語はオブジェクトのクラスに関する語彙である。
【００６０】
図６は、実施の形態１における知識ベース１１ａの例を表形式（表３）で示す図である。
【００６１】
《１−２−３》ステップＳ１０２：ルールデータベース１２ａの準備
次に、推論装置１０を動作させるために使用される１つ以上の推論ルールが、ルールデータベース１２ａとして用意される。ルールデータベース１２ａは、ルールデータベース部１２に格納される。用意された推論ルールは、互いに異なる複数のドメインの各々に属する情報を結合することによって複数の情報を１つの情報に統合すること、センサなどから取得された外部情報から新たな仮説を生成すること、などに利用される。
【００６２】
互いに異なる複数のドメインの各々に属する情報を結合するために、例えば、人間の状態に関する情報と人間の行動に関する情報とを利用してもよい。例えば、以下の推論ルールの例Ｗ１及びＷ２をルールデータベース１２ａに保存してもよい。
【００６３】
推論ルールの例Ｗ１は、「車外の気温が３０度以上ならば、車外及び運転手の状態は暑い。」である。推論ルールの例Ｗ１は、温度センサにより取得された車外の気温情報と、人間の状態に関する情報と、を結合する役割を持つ。
【００６４】
推論ルールの例Ｗ２は、「現在時刻が７時又は１２時又は１７時である場合、現在時刻は「食べる」という動作に関連する。」である。推論ルールの例Ｗ２は、時計により取得された現在時刻である時間情報と、人間の行動に関する情報と、を結合する役割を持つ。
【００６５】
また、推論ルールは、外部から入力される情報を利用して、新たな仮説を生成するものであってもよい。例えば、人間が発話する音声をマイクで収集できる場合、以下の推論ルールの例Ｗ３〜Ｗ５を、ルールデータベース１２ａとして保存してもよい。
【００６６】
推論ルールの例Ｗ３は、「人間が『お腹がいっぱい』と発話した場合、その人間は直前にレストランで何かを食べた。」である。
【００６７】
推論ルールの例Ｗ４は、「人間が『お腹がいっぱい』と発話した場合、その人間は直前に車の中で何かを食べた。」である。
【００６８】
推論ルールの例Ｗ５は、「人間が『お腹がいっぱい』と発話した場合、その人間は直前に家の中で何かを食べた。」である。
【００６９】
《１−２−４》ステップＳ１０３：動的情報の取得
動的情報取得部１３は、時々刻々と動的に変化する情報を取得し、取得された情報を知識ベース１１ａと共通の形式の情報に変換して出力する。
【００７０】
動的情報取得部１３が情報を取得するタイミングは、例えば、一定時間ごとである。動的情報取得部１３が情報を取得するタイミングは、他のタイミングであってもよい。動的情報取得部１３が情報を取得するタイミングは、例えば、動的情報取得部１３がユーザによって入力された情報取得の命令を受け取った直後であってもよい。また、動的情報取得部１３が情報を取得するタイミングは、特定の時刻であってもよい。特定の時刻は、例えば、昼の１２時になったとき、車両が特定の市街地に入ったときなどである。また、動的情報取得部１３が情報を取得するタイミングは、情報を取得する位置において特定の時刻になったとき、又は情報を取得する位置において特定のイベントがあるとき、などのように、複数の条件が同時に満たされる度であってもよい。
【００７１】
動的情報取得部１３が取得する情報は、例えば、センサ情報、アプリケーション情報、ユーザの個人情報、ユーザの命令情報、及びその他の情報、などである。動的情報取得部１３が取得する情報は、外部の情報ともいう。
【００７２】
センサ情報は、例えば、タッチパネル、マイク、などのユーザインタフェース４２で得られたユーザ操作の情報又は発話の情報である。また、センサ情報は、カメラ４４又は各種のセンサで得られた外界又は人間に対するセンシング結果であってもよい。各種のセンサは、例えば、温度計、湿度計、などである。また、センサ情報は、ＧＰＳ４３などで得られた位置情報であってもよい。
【００７３】
車を例にすると、センサ情報は、例えば、車内に設置された可視光カメラ又は赤外線カメラで得られた情報である。センサ情報は、例えば、運転手の顔と目の位置を検出した結果を示す情報であってもよい。また、カメラ４４は、車内に設置された複数のカメラであってもよい。或いは、センサ情報は、車内に設置されたマイクによって取得された、運転手又は同乗者によって発話された音声を示す音声情報であってもよい。また、センサ情報は、生体センサ又は感圧センサなどによって取得された情報であってもよい。生体センサは、モーションセンサ、血圧センサ、心電図センサ、心拍数センサ、などを含むことができる。
【００７４】
例えば、動的情報取得部１３が、温度センサ及び湿度センサから「車外の温度は、３５度である。」及び「車外の湿度は、９０％である。」という情報を取得した場合、動的情報取得部１３は、それらの情報を、（主語、  述語、  目的語）からなる以下のようなトリプレットの例Ｊ１及びＪ２に変換する。
Ｊ１＝（車外の状態、  ｔｅｍｐｅｒａｔｕｒｅ、  ３５度）
Ｊ２＝（車外の状態、  ｈｕｍｉｄｉｔｙ、  ９０％）
【００７５】
また、動的情報取得部１３が、時計から得た現在時刻の情報として「現在は、１２時です。」という情報を取得した場合、動的情報取得部１３は、それらの情報を、（主語、  述語、  目的語）からなる以下のようなトリプレットの例Ｊ３に変換する。
Ｊ３＝（現在時刻、  ｉｓ、  １２時）
【００７６】
動的情報取得部１３が取得するアプリケーション情報は、例えば、ユーザの環境で動作しているアプリケーションが取得した情報、アプリケーションの利用状況、アプリケーションの利用履歴、アプリケーションによって表示中の画面、アプリケーションによって表示中の選択肢表示、などを含む。
【００７７】
動的情報取得部１３が、カーナビゲーションシステムのアプリケーションにより、近くのお店の情報を取得し、「近隣にある、「アイスクリーム屋＃６」という名称のお店が、見つかった。」場合に、動的情報取得部１３は、その情報を、（主語、  述語、  目的語）からなる以下のようなトリプレットの例Ｊ４に変換する。
Ｊ４＝（近くのお店、  ｈａｓ、  アイスクリーム屋＃６）
【００７８】
動的情報取得部１３が取得するユーザ命令情報は、例えば、ユーザが推論装置１０を含む推論システムに対して明示的又は非明示的に命令した内容、などである。
【００７９】
例えば、「ユーザがボタン操作により、エアコンを起動して温度を下げた。」場合、動的情報取得部１３は、その情報を、（主語、  述語、  目的語）からなる以下のようなトリプレットの例Ｊ５に変換する。
Ｊ５＝（直近の命令、  ｉｓ、  温度を下げる）
【００８０】
動的情報取得部１３が取得するユーザの個人情報は、ユーザの名前、ユーザの家族、ユーザの趣向、などである。
【００８１】
動的情報取得部１３は、例えば、「運転手の名前は東京太郎であり、運転手はラーメン一般が好き。」という情報を、（主語、  述語、  目的語）からなる以下のような２つのトリプレットの例Ｊ６及びＪ７に変換する。
Ｊ６＝（運転手、  ｎａｍｅ、  東京太郎）
Ｊ７＝（運転手、  ｌｉｋｅ、  ラーメンクラス）
【００８２】
動的情報取得部１３が取得する外部情報は、例えば、インターネット４５から得られる天気、ニュース、地理情報、などを含む。また、動的情報取得部１３が取得する外部情報は、外部データベース４６に保存された国、自治体、企業、個人などが提供している情報、などを含んでもよい。
【００８３】
図７は、実施の形態１に係る推論装置１０の動的情報取得部１３が生成するデータの例を表形式（表４）で示す図である。表４の例は、車内の状態、カーナビゲーションの情報、現在時刻、命令情報、運転手の情報、を含む。
【００８４】
《１−２−５》ステップＳ１０４：グラフの結合
次に、グラフ結合部１４は、例えば、知識ベース１１ａと、動的情報取得部１３の出力と、に対して、ルールデータベース１２ａとして保存された推論ルールを、前向き連鎖（Ｆｏｒｗａｒｄ  Ｃｈａｉｎｉｎｇ）により順次適用して、複数のグラフを結合し、最終的に結合された複数のグラフからなる１つの統合グラフを生成する。統合グラフを構成する複数のグラフは、例えば、有向グラフである。
【００８５】
ルールデータベース１２ａにおける推論ルールの適用を、グラフを用いて表現すると以下のようになる。
「対象のグラフに特定の情報パターンが見つかった場合、そのグラフに、ノードもしくはエッジを追加／変更／削除する。」
【００８６】
前述の推論ルールの例Ｗ１及びＷ２を用いて、グラフの結合の具体例を説明する。以下において、「？ｘ」は、任意の変数を示す。
【００８７】
推論ルールの例Ｗ１として、「車外の気温が３０度以上ならば、車外及び運転手の状態は暑い。」を、グラフを用いて表現すると、以下のようになる。
【００８８】
「対象のグラフに、トリプレット（車外の状態、  ｔｅｍｐｅｒａｔｕｒｅ、  ？ｘ）の情報パターンが見つかり、かつ、条件「？ｘ≧３０」を満たす場合、
グラフに、
トリプレット（車外の状態、  ｓｔａｔｕｓ、  暑い）と、
トリプレット（運転手、  ｓｔａｔｕｓ、  暑い）と、を新規に追加する。」
【００８９】
図８（ａ）及び（ｂ）は、実施の形態１に係る推論装置１０のグラフ結合部１４がルールデータベース１２ａに格納された推論ルールである前向き連鎖ルールを用いて有向グラフを作成する様子を示す図である。
【００９０】
推論ルールの例Ｗ２として、「現在時刻が７時又は１２時又は１７時の場合、現在時刻は“食べる”という動作に関連する。」をグラフで表現すると、以下のようになる。
【００９１】
「対象のグラフに、トリプレット（現在時刻、  ｉｓ、  ？ｘ）の情報パターンが見つかり、かつ、条件「？ｘ＝７時」又は「？ｘ＝１２時」又は「？ｘ＝１７時」を満たす場合、
グラフに、
トリプレット（現在時刻、  ｒｅｌａｔｅ、  食べる）を新規に追加する。」
【００９２】
例えば、図６に示される表３と図７に示される表４とを示すグラフに対して、推論ルールの例Ｗ１及びＷ２を、前向き連鎖により順次適用すると、図９に示されるようなグラフが得られる。図９のグラフは、例示である。
【００９３】
以上のように、グラフ結合部１４は、センサから得られた情報又は互いに異なる複数のドメインの各々に属する情報から、図９に示されるような、統合された１つのグラフを生成することができる。すなわち、グラフ結合部１４は、ルールを前向き連鎖により順次適用することで、互いに異なる複数のドメインの各々に属する情報を結合することによって、統合された情報を生成することができる。また、統合された情報は、統合グラフとして表現できる。
【００９４】
また、特に、グラフ結合部１４は、互いに異なる複数のドメインの各々に属する情報を結合するために、例えば、人間の状態に関する情報と人間の行動に関する情報とを利用することができる。人間の状態に関する情報は、例えば、「暑い」、「寒い」、「お腹が空いた」、などである。人間の行動に関する情報は、例えば、「温度を下げる」、「温度を上げる」、「冷たいものを食べる」、などである。
【００９５】
例えば、推論ルールの例Ｗ１を適用することで、「車外の状態」というセンサのドメインの情報と、「冷やし中華」という食品のドメインの情報とを、すなわち、互いに異なる複数のドメインの各々に属する情報を、結合することができる。
【００９６】
具体的には、（主語、  述語、  目的語）からなるトリプレットＫ１〜Ｋ４、により、「車外の情報」と「冷やし中華」とを、有向グラフを用いて結合することができる。
Ｋ１＝（車外の状態、  ｓｔａｔｕｓ、  暑い）
Ｋ２＝（暑い、  ｔｈｅｎ、  冷たいものを食べる）
Ｋ３＝（冷たいものを食べる、  ｓｌｏｔ、  冷たい食べ物クラス）
Ｋ４＝（冷やし中華、  ｉｎｓｔａｎｃｅＯｆ、  冷たい食べ物クラス）
【００９７】
《１−２−６》ステップＳ１０５：グラフの解析
次に、グラフ解析部１５は、グラフ結合部１４におけるグラフの結合によって生成された統合グラフ（例えば、図９）のノードを、エッジを通って辿ることで、確率的な推論を実行し、推論の結果として各ノードの重要度を算出する。グラフ解析部１５は、統合グラフ上のノードを辿ることで、演繹推論（ｄｅｄｕｃｔｉｏｎ）、帰納推論（ｉｎｄｕｃｔｉｏｎ）、及び仮説的推論（ａｂｄｕｃｔｉｏｎ）を実行する。図１０（ａ）〜（ｃ）は、演繹推論、帰納推論、及び仮説的推論をグラフとして示す図である。
【００９８】
例えば、図１０（ａ）に示されるグラフのように、トリプレット（Ａ０、  ｘ、  Ｂ０）とトリプレット（Ｂ０、  ｙ、  Ｃ０）とがある場合、グラフを辿ることで、ノードＡ０からノードＣ０を演繹推論することができる。
【００９９】
具体的には、トリプレット（ソクラテス、  ｉｓ、  人）とトリプレット（人、  ｉｓ、  死ぬ）とがある場合、ノード「ソクラテス」からノード「死ぬ」を推論し、「ソクラテスは死ぬ。」を結論として得ることができる。
【０１００】
また、例えば、図１０（ｂ）に示されるグラフのように、トリプレット（Ａ０、  ｘ、  Ｂ０）と、トリプレット（Ａ０、  ｘ、  Ｂ２）と、トリプレット（Ｂ０、  ｙ、  Ｃ０）と、トリプレット（Ｂ２、  ｙ、  Ｃ０）と、トリプレット（Ｂ３、  ｙ、  Ｃ０）と、がある場合、ノードＡ０からノードＢ０又はＢ２を介してノードＣ０へと辿り、最後に、ノードＣ０からノードＢ３へ逆に辿ることで、ノードＡ０からノードＢ３を帰納推論することができる。
【０１０１】
具体的には、
トリプレット（太郎さん、  好き、  醤油ラーメン）と、
トリプレット（太郎さん、  好き、  とんこつラーメン）と、
トリプレット（醤油ラーメン、  ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ、  ラーメンクラス）と、
トリプレット（とんこつラーメン、  ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ、  ラーメンクラス）と、
トリプレット（味噌ラーメン、  ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ、  ラーメンクラス）と、がグラフに含まれる場合を検討する。この場合、ノード「太郎さん」とノード「味噌ラーメン」とは、グラフでは直接繋がってはいない。しかし、ノード「太郎さん」は、ノード「醤油ラーメン」とノード「とんこつラーメン」とが好きであることから、ラーメン一般を意味する「ラーメンクラス」が好きである。それならば、ノード「太郎さん」は、ノード「味噌ラーメン」も好きである。つまり、このような帰納推論が可能である。
【０１０２】
また、例えば、図１０（ｃ）に示されるグラフのように、トリプレット（Ａ０、  ｘ、  Ｂ０）という事象が起きた場合、トリプレット（Ｂ０、  ｙ、  Ｃ０）とトリプレット（Ｂ０、  ｙ、  Ｃ２）のグラフを辿ることで、ノードＡ０からノードＣ０又はノードＣ２の仮説を推論することができる。
【０１０３】
具体的には、
トリプレット（花子さん、  １２時の行動、  お昼ご飯を食べた）という事象と、
トリプレット（お昼ご飯を食べた、  次の行動、  昼寝をする）と、
トリプレット（お昼ご飯を食べた、  次の行動、  散歩をする）と、がある場合、
仮説「花子さんの次の行動は、昼寝をする。」及び仮説「花子さんの次の行動は、散歩をする。」という２つの仮説（つまり、いずれが正しいかは、わからない説）を推論することができる。このような推論は、仮説的推論ともいう。
【０１０４】
グラフ結合部１４が生成したグラフ（例えば、図９）は、各ノードが複雑に結合された巡回グラフである。このため、グラフ結合部１４が生成した統合グラフ（例えば、図９）では、図１０（ａ）〜（ｃ）のように単純に統合グラフを辿るだけでは推論の結論を１つに特定することができない。そこで、例えば、グラフ結合部１４が算出した統合グラフ（例えば、図９）上を無限にランダムウォークして定常状態となったときの、各ノードに到達する確率、すなわち、到達確率を算出する。この確率は、その「ノードが推論の結論である確率」と解釈できるので、この確率は各ノードの重要度と定義される。また、統合グラフ上をランダムウォークすることは、確率的に演繹推論、帰納推論、及び仮説的推論、を実行していることと等価である。
【０１０５】
次に、グラフ解析部１５の具体的な計算方法を示すステップＳ１０５ａ、Ｓ１０５ｂ、Ｓ１０５ｃ、すなわち、図４に示されるステップＳ１０５の内容を説明する。
【０１０６】
《ステップＳ１０５ａ：グラフの変換と遷移行列の作成》
グラフ解析部１５は、グラフ解析部１５に入力された統合グラフを適宜変換して、ランダムウォークのためのノード間の遷移行列を作成する。
【０１０７】
まず、グラフ解析部１５に入力されたグラフＬ１に含まれる各トリプレットの動詞の種類に応じて、新規にグラフＬ２を作成する。グラフ解析部１５によって作成されたグラフＬ２は、「推論グラフ」ともいう。推論グラフの作成においては、例えば、以下の変換パターンＴＰ１、変換パターンＴＰ２、変換パターンＴＰ３のいずれかを適用する。
【０１０８】
「変換パターンＴＰ１」では、入力されたグラフＬ１である有向グラフを、そのまま推論グラフＬ２として利用する。
「変換パターンＴＰ２」では、入力されたグラフＬ１である有向グラフを、無向グラフ、すなわち、双方向グラフに変換することで推論グラフＬ２を作成する。
「変換パターンＴＰ３」では、入力されたグラフＬ１である有向グラフを、逆方向の有向グラフに変換することで推論グラフＬ２を作成する。
【０１０９】
次に推論グラフＬ２の隣接行列を作成し、この行列の各列の合計値を１で規格化したノード間の遷移行列Ｐを求める。ノード数をＮ（Ｎは正の整数）とすると、ノード間の遷移行列Ｐは、サイズが（Ｎ×Ｎ）の行列である。
【０１１０】
ここで、遷移行列Ｐの要素Ｐ（ｉ，ｊ）は、統合グラフ上のランダムウォークにおいて、ｊ番目のノードから、ｉ番目のノードへの遷移確率を示す。例えば、あるノードＡ５を主語として、ノードＡ５に接続されているノードが４個のノードＡ６〜Ａ９である場合、ノードＡ５からノードＡ６〜Ａ９の各々への遷移確率を、均等な値である０．２５に設定する。ただし、ノードＡ５からノードＡ６〜Ａ９の各々への遷移確率は、均等な値である必要はない。設定される遷移確率は、互いに異なる値であってもよい。
【０１１１】
変換パターンＴＰ２に示されるように、入力されたグラフＬ１である有向グラフを、無向グラフに変換することで推論グラフＬ２を作成する場合には、以下のような効果が得られる。
【０１１２】
例えば、（暑い、  ｔｈｅｎ、  冷たいものを食べる）というトリプレットでは、「暑い」ならば「冷たいものを食べる」と推論することもできるし、逆に、「冷たいものを食べる」ならばグラフを逆方向に辿って、「暑い」と推論することもできる。また、図１０（ｂ）に示される帰納推論の例のように、ノードＣ０からノードＢ３に、すなわち、逆方向に、グラフを辿ることで、推論の結論を得ることができる。
【０１１３】
例えば、（ｊ、  ｘ、  ｉ）というトリプレットにおいて、遷移行列Ｐの要素Ｐ（ｉ，ｊ）及び要素Ｐ（ｊ，ｉ）の遷移確率の初期の設定は、以下の通りである。
Ｐ（ｉ，ｊ）＝α  （０＜α≦１）
Ｐ（ｊ，ｉ）＝０
【０１１４】
しかし、変換パターンＴＰ２にしたがって、有向グラフであるグラフＬ１を無向グラフであるグラフＬ２に変換した場合には、変換されたグラフＬ２のトリプレットにおいては、遷移行列Ｐの要素Ｐ（ｉ，ｊ）及び要素Ｐ（ｊ，ｉ）の遷移確率の初期の設定は、例えば、以下の通りである。
Ｐ（ｉ，ｊ）＝Ｐ（ｊ，ｉ）＝α      （０＜α≦１）
或いは、遷移確率は、偏りをもたせて、以下のように設定される。
Ｐ（ｉ，ｊ）＝α      （０＜α≦１）
Ｐ（ｊ，ｉ）＝β      （０＜β≦１）
ここで、αとβは、互いに等しくない。このことで、後述するランダムウォークの処理において、ノードｉとノードｊの間を自由に行き来することができる。
【０１１５】
次に、変換パターンＴＰ３に示されるように、入力されたグラフＬ１である有向グラフを、逆方向の有向グラフに変換することで推論グラフＬ２を作成する場合には、以下のような効果が得られる。
【０１１６】
例えば、トリプレット（太郎さん、  好き、  ラーメン）と、トリプレット（太郎さん、  嫌い、  ドリアン）とがある場合に、太郎さんが好きなものを推論するタスクを考える。
【０１１７】
仮に、上記トリプレット（太郎さん、  好き、  ラーメン）と、トリプレット（太郎さん、  嫌い、  ドリアン）とをそのまま推論に利用すると、後述するステップＳ１０５ｃである重要度算出ステップにおいて、「ラーメン」と「ドリアン」の重要度が同程度になる可能性がある。そこで、「嫌い」という動詞において、有向グラフを逆方向にする。このことで、後述の重要度算出ステップにおいて推論グラフをランダムウォークする際に、「ドリアン」を経由する確率を低くすることができる。よって、「ドリアン」の重要度を下げる効果がある。
【０１１８】
次に、変換パターンＴＰ３に示されるように、入力されたグラフＬ１である有向グラフを、逆方向の有向グラフに変換する方法を以下に述べる。
【０１１９】
具体的には、
（ｊ、  ｘ、  ｉ）というトリプレットにおいて、遷移確率の初期設定は、以下の通りである。
Ｐ（ｉ，ｊ）＝α      （０＜α≦１）
Ｐ（ｊ，ｉ）＝０
【０１２０】
また、逆方向の有向グラフに変換した際には、遷移確率の初期設定は、以下の通りである。
Ｐ（ｉ，ｊ）＝０
Ｐ（ｊ，ｉ）＝α      （０＜α≦１）
【０１２１】
《ステップＳ１０５ｂ：観測ノードの設定》
グラフ解析部１５は、外部から取得された情報又はセンサによって検出された情報など、推論の起点となる重要なノードを「観測ノード」と設定する。
【０１２２】
次に、グラフ解析部１５は、観測ノードの重みを０以上に設定し、それ以外のノードを０としたＮ次元の観測ベクトルｖを作る。ｖは確率分布であり、総和は１である。
【０１２３】
例えば、観測ノードとして「車外の状態」、「近くのお店」、「直近の命令」、「運転手」とした場合、それらのノードに相当する観測ベクトルｖの要素を、各々０．２５（＝１／４）と設定する。それ以外のノードに相当する観測ベクトルｖの要素を、０と設定する。
【０１２４】
後述する処理で、観測ノードからランダムウォークを再スタートすることで、観測ノードに近いノードほど重要度が高くなる効果がある。
【０１２５】
《ステップＳ１０５ｃ：重要度の算出》
次に、グラフ解析部１５は、遷移行列Ｐと、観測ベクトルｖを利用して、推論グラフ（グラフＬ２）に含まれる各ノードの重要度を求める。すなわち、グラフ解析部１５は、観測ベクトルｖの確率に基づいて、ランダムウォークの開始点を決定し、遷移行列Ｐにより推論グラフ上をランダムウォークすることで各ノードに到達する確率を求め、これを各ノードの重要度とする。
【０１２６】
具体的な計算例は、例えば、以下のものである。まず、推論行列Ｍ、すなわち、
【数１】
0006567218.tif 000004
を、以下の式（１）のように定義する。
【０１２７】
【数２】
0006567218.tif 000005
【０１２８】
ここで、αは、０＜α≦１を満たす、予め決められた定数を示す。
【数３】
0006567218.tif 000006
は、Ｎ×Ｎの遷移行列を示し、遷移行列Ｐとも表記する。
【０１２９】
【数４】
0006567218.tif 000007
は、Ｎ×１のサイズの観測ベクトルを示し、観測ベクトルｖとも表記する。
【０１３０】
【数５】
0006567218.tif 000008
は、すべての要素が１の、１×Ｎのサイズのベクトルを示し、ベクトル１Ｔとも表記する。
【０１３１】
式（１）の右辺の第１項は、遷移行列Ｐに基づいて統合グラフをランダムウォークすることを示している。式（１）の右辺の第２項は、ランダムウォークの途中に（１−α）の確率で観測ノードから再度ランダムウォークを開始することを示している。
【０１３２】
次に、Ｎ次元の重要度ベクトルをｘｖ、すなわち、
【数６】
0006567218.tif 000009
とし、以下の式（２）により、この重要度ベクトルを求める。
【数７】
0006567218.tif 000010
【０１３３】
式（２）は、ランダムウォークを繰り返して、重要度ベクトルｘｖが収束したことを表す。ｘｖ（ｉ）は、ｉ番目のノードの重要度を示す。
【０１３４】
式（２）における重要度ベクトルｘｖの計算には、ベキ乗法を利用することができる。例えば、この重要度ベクトルｘｖの計算には、ウェブページの重要度を決定するためのアルゴリズムであるページランク（ＰａｇｅＲａｎｋ）と同様の方法を利用することができる。また、この重要度ベクトルｘｖの計算には、非特許文献３に記載のページランクと同様の計算方法を利用することができる。
【０１３５】
【非特許文献３】Ｌ．Ｐａｇｅ、外３名、  “Ｔｈｅ  ＰａｇｅＲａｎｋ  Ｃｉｔａｔｉｏｎ  Ｒａｎｋｉｎｇ：  Ｂｒｉｎｇｉｎｇ  Ｏｒｄｅｒ  ｔｏ  ｔｈｅ  Ｗｅｂ”、  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ．  Ｓｔａｎｆｏｒｄ  ＩｎｆｏＬａｂ．、  １９９９
【０１３６】
また、式（１）と式（２）とから、以下の式（３）によってコスト関数ＣＦ１、すなわち、
【数８】
0006567218.tif 000011
を算出し、このコスト関数の値を最小化するような、総和が１の重要度ベクトルｘｖを求めることで、ノードの重要度を算出してもよい。
【０１３７】
【数９】
0006567218.tif 000012
【０１３８】
式（３）において、
【数１０】
0006567218.tif 000013
は、Ｎ×Ｎの単位行列を示し、単位行列Ｅとも表記する。また、ベクトルｖは、Ｎ×１のサイズの観測ベクトルを示す。
【０１３９】
《１−２−７》ステップＳ１０６：グラフの検索
グラフ検索部１６は、所望の情報を抽出するために、重要度ベクトルｘｖを利用して、グラフＬ２から特定の情報パターンを検索する。グラフ検索部１６の具体的な動作例について述べる。
【０１４０】
表１に示される対話例Ｄ１及びＤ２を例として説明する。ここでは、グラフ検索部１６は、主語、述語、目的語が、それぞれ
（？ａｃｔｉｏｎ、  ｓｌｏｔ、  ？ｓｌｏｔＣｌａｓｓ）かつ
（？ｓｌｏｔＶａｌｕｅ、  ｉｎｓｔａｎｃｅＯｆ、  ？ｓｌｏｔＣｌａｓｓ）
を満たす情報パターンを統合グラフから抽出する。ここで“？”から始まる文字列は、変数であり、任意の文字列が入る。
【０１４１】
例えば、表３及び表４の例では、
「トリプレット（冷たい食べ物を食べる、  ｓｌｏｔ、  冷たい食べ物クラス）及びトリプレット（冷やし中華、  ｉｎｓｔａｎｃｅＯｆ、  冷たい食べ物クラス）を満たす」又は「トリプレット（温度を下げる、  ｓｌｏｔ、  エアコンクラス）及びトリプレット（エアコン＃１、  ｉｎｓｔａｎｃｅＯｆ、  エアコンクラス）を満たす」が、検索対象の情報パターンに相当する。
【０１４２】
図１１は、実施の形態１に係る推論装置１０のグラフ検索部１６が統合グラフを検索することによって取得したデータの例を表形式（表５）で示す図である。つまり、図１１は、グラフ検索結果をまず、「？ａｃｔｉｏｎ」の重要度でソートし、次に「？ｓｌｏｔＶａｌｕｅ」の重要度でソートした結果を示している。
【０１４３】
図１２は、実施の形態１に係る推論装置１０のグラフ検索部１６によって検索されたノードの重要度、検索結果を含む統合グラフ（図１１に対応する統合グラフ）の例を示す図である。図１２において、カッコ内は、重要度を示す。ハッチングされた四角は観測ノード、ハッチングされた丸は重要度の高いノードを示す。
【０１４４】
この例では、最上位に、
｛ｓｌｏｔＶａｌｕｅ：‘冷やし中華’、  ｓｌｏｔＣｌａｓｓ：‘冷たい食べ物クラス’、  ａｃｔｉｏｎ：‘冷たい食べ物を食べる’｝
が得られる。これにより、車載エージェントが「冷やし中華をたべませんか」とユーザに勧めるための情報が得られた。
【０１４５】
図１１の例では、最上位の検索結果に
｛‘ｓｌｏｔＣｌａｓｓ’：‘冷たい食べ物クラス’，  ‘ａｃｔｉｏｎ’：‘冷たい食べ物を食べる’，  ‘ｓｌｏｔＶａｌｕｅ’：‘冷やし中華’｝
が得られる。その理由は、最上位の検索結果は、
「運転手がラーメンを好きである、つまり、（運転手，  ｌｉｋｅ，  ラーメンクラス）」と、
「近くのお店にラーメン屋Ｒａとアイスクリーム屋Ｉｃがある。」と、
「現在時刻は１２時で、食べる行動と関連している。」と、
「車内の気温３５度であるから、状態が暑い。したがって、人間は冷たいものを食べるか、温度を下げる。」と、を利用すれば、多段階の推論を、ランダムウォークにより統合グラフを辿ることで取得できるからである。また、「‘冷たい食べ物を食べる’又は、‘冷やし中華’」のノードの重要度が高くなった（すなわち、推論の結論となる可能性が高くなった）からである。
【０１４６】
《１−２−８》ステップＳ１０７：情報の出力
最後に、情報出力部１７は、グラフ検索部１６の出力を利用して、ディスプレイ又はスピーカなどのユーザインタフェース５１に情報を適切な形で出力する。情報出力部１７は、例えば、表１の対話例Ｄ１及びＤ２では、音声合成により、「近くに冷やし中華のレストランありますよ。」などの音声を出力する。
【０１４７】
《１−２−９》ユーザの意図を理解するための動作例
実施の形態１に係る推論装置１０は、ユーザの意図を理解するためのタスクに使用することも可能である。例えば、推論装置１０が、ユーザから、単に「下げる」という命令を受け付け、その命令の意図を理解するタスクを考える。この場合、知識ベース１１ａには、「音量を下げる」と「温度を下げる」と、の２つが含まれているため、推論装置１０は、ユーザから与えられた命令の意図の候補として、これら２つの項目を挙げる。しかし、実施の形態１に係る推論装置１０を利用すれば、知識ベース１１ａにおいてユーザの命令に関係するノードの重要度に基づいて、状況に応じた１つの候補を適切に選択することができる。
【０１４８】
図１３は、推論装置１０が生成した統合グラフにおいて、「車外の状態」、「近くのお店」、「現在時刻」、「運転手」、「下げる」の観測ベクトルの比率（すなわち、観測ベクトル値）を各々０．２と設定し、重要度を計算した結果を、表形式（表６）として示す図である。図１４は、表６に示される推論の結果の統合グラフを示す図である。
【０１４９】
この結果、「エアコン＃１」の「温度を下げる」が第１候補として選択される。「下げる」を観測ノードに加えたことで、「温度を下げる」の重要度が増している。これにより、「エアコンの温度を下げる」が「冷やし中華を食べる」の重要度を上回り、最上位となっている。
【０１５０】
《１−２−１０》ユーザのアテンション（注意又は注目）を理解するための動作例
実施の形態１に係る推論装置１０は、ユーザのアテンション（注意又は注目）を利用して推論を実行することも可能である。ユーザによって入力された「直近の命令」が「音量を上げる」であり、さらに、ユーザから「下げる」という命令を受け付けた場合、ユーザの命令の意図を理解するタスクを考える。この場合、文脈から、ユーザは直近でミュージックプレイヤに注目しているので、ユーザの意図は「音量を下げる」である可能性が高い。推論装置１０は、観測ベクトルの比率を適切に調整することで、ユーザの意図を適切に求めることができる。
【０１５１】
まず、知識ベース１１ａにて、
（‘直近の命令’、  ‘ｉｓ’、  ‘音量を上げる’）
と設定する。
【０１５２】
次に、観測ベクトルの比率を示す観測ベクトル値を設定する。
「車外の状態」、「近くのお店」、「現在時刻」、「運転手」の各々の観測ベクトル値を１とし、
「下げる」の観測ベクトル値を１０とし、
「直近の命令」の観測ベクトル値を３とし、
その他の観測ベクトル値を０とする。
ここで、「下げる」及び「直近の命令」は、ユーザから直接的に受けた命令であるため、観測ノード値、つまり、重みを上げている。
【０１５３】
図１５は、このような設定によって各ノードの重要度を計算して得られた例を表形式（表７）として示す図である。図１６は、表７の結果を示す統合グラフを示す図である。
【０１５４】
図１５に示されるように、最上位の検索結果には、「ミュージックプレイヤ＃５」と「音量を下げる」とが抽出される。これは、「下げる」は、「音量を下げる」又は「温度を下げる」のいずれかであり、直近の命令である「音量を上げる」により、ミュージックプレイヤが操作されたという事実を利用した推論により、「ミュージックプレイヤ＃５」と「音量を下げる」の重要度が高まったためである。
【０１５５】
《１−３》効果
以上に説明したように、実施の形態１に係る推論装置１０及び推論方法によれば、以下の効果が得られる。
先ず、推論装置１０は、互いに異なる複数のドメインの各々に属する情報を動的に結合することで、統合された情報を生成することができる。気温又は、人間の行動、デバイス、ナビゲーションの情報など、異なるドメインのグラフを、前向き連鎖のルールで結合することで、統合グラフを生成し、この統合グラフを推論に利用することができる。
【０１５６】
また、推論装置１０は、大量の学習データを必要としないで、推論を実行することができる。つまり、大量の学習データを必要とせず、各ノードの重要度を算出することができる。
【０１５７】
また、推論装置１０は、推論過程を可視化できるので、推論内容を設計可能及び提案する際に、知識ベース１１ａ、推論ルール、観測ノードの作成において、手動で値を設計可能にすることが可能である。また、システム状況に応じて適用ルールセット又は、観測ノードを適宜切り替えることで、応答内容を変更することが可能である。さらに、推論結果は図１２、図１４、図１６に示されるように統合グラフ表示による可視化が可能である。
【０１５８】
《１−４》他の分野への適用
上記説明では、運転中に人工知能が音声対話する例について述べたが、推論装置１０は、車又は音声対話だけでなく、車、家、工場、広域セキュリティ、など、様々な形式／時間軸のデータが存在し、動的に変化する環境での、ユーザインタフェース、計画立案、行動予測に有効である。
【０１５９】
例えば、家の中に設置された監視カメラ又はセンサ、エアコン又は冷蔵庫などの家電品に設置されたカメラを利用して、人工知能が居住者の次の行動を予測し、自動でテレビを録画したり、お湯を沸かしたり、出かけるときに傘の忘れ物を指摘したり、などすることも可能である。
【０１６０】
《２》実施の形態２
《２−１》構成
実施の形態１に係る推論装置１０及び推論方法では、外部から取得された情報、センサによって検出された情報、などを、推論の起点となる重要なノードである「観測ノード」と設定し、観測ノードから観測ベクトルを求め、求められた観測ベクトルに基づいて推論結果を算出している。これに対し、実施の形態２に係る推論装置及び推論方法では、ユーザの操作履歴に基づいて観測ベクトルを更新し、更新された観測ベクトルに基づいて重要度ベクトルを算出することで、各々のユーザに適応した推論結果を算出している。
【０１６１】
図１７は、実施の形態２に係る推論装置２０の構成を概略的に示す機能ブロック図である。図１７において、図１に示される構成要素と同一又は対応する構成要素には、図１に示される符号と同じ符号が付される。実施の形態２に係る推論装置２０は、操作履歴保存部２８を備えている点及びグラフ解析部２５がユーザの操作履歴に基づいて処理を行う点において、実施の形態１に係る推論装置１０と相違する。
【０１６２】
《２−２》動作
推論装置２０は、推論を繰り返し行う。以下に、１回目の推論と２回目以降の推論とを説明する。
【０１６３】
《１回目の推論》
まず、ステップＳ２０１において、重要度が算出される。実施の形態１の場合の動作と同様に、グラフ解析部２５は、各ノードの重要度を計算し、情報出力部１７が、その結果をユーザに提示する。なお、１回目の推論において重要度ベクトルｘｖを算出する際には、観測ベクトルとして、予め決められた初期ベクトルを用いる。実施の形態２では、実施の形態１と同一の方法で観測ベクトルを設定することができる。或いは、観測ベクトルとして、手動で設定した値又はすべての要素に均一な値を設定することができる。
【０１６４】
次のステップＳ２０２において、選択肢が提示される。情報出力部１７は、重要度ベクトルを利用して、選択肢を提示する。例えば、図１８（ａ）に示されるように、情報出力部１７は、上位３つの推論結果を、アプリケーションのディスプレイに表示する。ディスプレイには、選択肢ＯＰ１、選択肢ＯＰ２、選択肢ＯＰ３、の３つの選択肢ボタンが推論の重要度の高い順番に上から順に並んで表示されている。また、その他の下位の重要度の選択肢を表示できる「その他」のボタンも表示されている。表示方法は、ユーザが自由に選択できる。
【０１６５】
選択肢ＯＰ１、選択肢ＯＰ２、選択肢ＯＰ３は、それぞれノードＯＰ１、ノードＯＰ２、ノードＯＰ３に対応している。
【０１６６】
次のステップＳ２０３では操作履歴が保存される。操作履歴保存部２８は、動的情報取得部１３を経由して取得したユーザの操作履歴を時々刻々と保存する。操作履歴保存部２８が保存するデータは、ユーザが選択したノード名に関する情報であってもよい。或いは、操作履歴保存部２８が保存するデータは、ユーザが選択したノードと、その他のノードとの順序、もしくは相対的な重要度を示す情報であってもよい。
【０１６７】
ここで、ノードの相対的な重要度を示す情報について説明する。例えば、図１８（ａ）に示される例で、ユーザが選択肢ＯＰ３を選択した場合を検討する。この場合、このユーザは、選択肢ＯＰ１及び選択肢ＯＰ２よりも、選択肢ＯＰ３の重要度が高い、と判断することができる。そこで、操作履歴保存部２８は、情報「選択肢ＯＰ３（ノードＯＰ３）の重要度＞選択肢ＯＰ１（ノードＯＰ１）の重要度」及び情報「選択肢ＯＰ３（ノードＯＰ３）の重要度＞選択肢ＯＰ２（ノードＯＰ２）の重要度」を含む情報を、操作履歴として保存する。
【０１６８】
次のステップＳ２０４では、観測ベクトルが更新される。グラフ解析部２５は、操作履歴を利用して、更新された観測ベクトルｖ［ｎ］を求める。観測ベクトルｖ［ｎ］の更新方法は、後述する。ここで、ｖ［ｎ］は、ｎ回目（ｎは正の整数）の推論で算出した観測ベクトルを示す。
【０１６９】
《２回目以降の推論》
先ず、ステップＳ２０１において、重要度が算出される。グラフ解析部２５は、ｎ回目の推論において、
過去に求めた１回目から（ｎー１）回目までの観測ベクトルｖ［１］〜ｖ［ｎ−１］、すなわち、
【数１１】
0006567218.tif 000014
を利用し、
統合グラフに含まれる各ノードの重要度ベクトルｘｖ［ｎ］、すなわち、
【数１２】
0006567218.tif 000015
を求める。ここで、ベクトルｘｖ［ｎ］は、ｎ回目の推論で算出した重要度ベクトルを示す。
【０１７０】
グラフ解析部２５は、式（１）又は式（３）にしたがって重要度ベクトルを求める。その際に、グラフ解析部２５は、観測ベクトルｖ［ｎ−１］のみを使用してもよい。或いは、グラフ解析部２５は、観測ベクトルｖ［１］〜ｖ［ｎ−１］の線形和を観測ベクトルとして使用してもよい。つまり、グラフ解析部２５は、β［ｉ］（ｉは正の整数）を予め決められた定数として、以下の式（４）
【数１３】
0006567218.tif 000016
により求めた観測ベクトル
【数１４】
0006567218.tif 000017
を、ｎ回目の推論で使用してもよい。
【０１７１】
後述するように、観測ベクトルには操作履歴の情報が保持されているため、グラフ解析部２５は、条件「選択肢ＯＰ３（ノードＯＰ３）の重要度＞選択肢ＯＰ１（ノードＯＰ１）の重要度」と条件「選択肢ＯＰ３（ノードＯＰ３）の重要度＞選択肢ＯＰ２（ノードＯＰ２）の重要度」と、を満たすような重要度ベクトルｘｖ［ｎ］を算出することができる。
【０１７２】
次のステップＳ２０２では、選択肢が提示される。情報出力部１７は、重要度ベクトルを利用して、ユーザに選択肢を再度提示する。このとき、前回のユーザの選択結果を反映した選択肢が、ディスプレイに表示される。例えば、図１８（ｂ）に示されるように、前回、ユーザが選択した、選択肢ＯＰ３が、一番上の位置に表示され、続いて、選択肢ＯＰ１、選択肢ＯＰ２の順に表示される。
【０１７３】
次にステップＳ２０３，Ｓ２０４が実行される。これらは、１回目の推論におけるものと同じ処理である。
【０１７４】
推論装置２０は、ステップＳ２０１〜Ｓ２０４の処理を繰り返し、ユーザの操作履歴を得る度に、重要度を算出し、観測ベクトルを更新し、その時々で、ユーザに応じた推論結果を返す。以下では、観測ベクトルｖの更新方法の２つの具体例について述べる。
【０１７５】
《観測ベクトルｖの更新方法の例（Ｕ１）》
図１９は、実施の形態２に係る推論装置２０のグラフ解析部２５が、観測ベクトルｖ［ｎ］を求める方法を説明するために用いられる表８を示す図である。図１９を用いて、グラフ解析部２５が、観測ベクトルｖ［ｎ］を求める方法について述べる。この例では、例えば、動的に取得できるデータが推論の度に変更されている。
【０１７６】
１回目の推論では、対象としているグラフに、
（バニラアイスクリーム、  ｉｎｓｔａｎｃｅＯｆ、  アイスクリームクラス）
（醤油ラーメン、  ｉｎｓｔａｎｃｅＯｆ、  ラーメンクラス）
のトリプレットが含まれる。
【０１７７】
２回目の推論では、対象としているグラフに
（苺アイスクリーム、  ｉｎｓｔａｎｃｅＯｆ、  アイスクリームクラス）
（豚骨ラーメン、  ｉｎｓｔａｎｃｅＯｆ、  ラーメンクラス）
のトリプレットが含まれている。
【０１７８】
まず、推論を始める前に、初期の観測ベクトルｖの値の比率を、図１９に示されるように、アイスクリームクラスについての観測ベクトルの比率を１に設定し、ラーメンクラスの比率を１に設定し、その他の比率を０に設定する。なお、観測ベクトルｖの値は、観測ベクトルｖの総和が１となるように、適宜、正規化される。
【０１７９】
次に、１回目の推論で、グラフ解析部２５が重要度を算出し、情報出力部１７が、「醤油ラーメン」と「バニラアイスクリーム」を選択肢としてユーザに提示し、ユーザが「醤油ラーメン」を選択した場合を説明する。このとき、グラフ解析部２５は、例えば、選択された「醤油ラーメン」と、その抽象的な上位概念である「ラーメンクラス」の観測ベクトルｖの比率を１だけインクリメントする。この結果、１回目の推論の終了時には、アイスクリームクラスの観測ベクトルｖの比率は１、ラーメンクラスの比率は２、醤油ラーメンの比率は１、その他の比率は０となる。
【０１８０】
すなわち、この時点で、ラーメンクラスの観測ノードに最も大きな重みが付き、次回以降の推論では、ラーメンクラスと、ラーメンクラスのインスタンスとなるノードの重要度が高くなる。すなわち、観測ベクトルｖは、「ユーザがラーメン一般（ラーメンクラス）を好きである」という情報を保持している。
【０１８１】
２回目の推論では、グラフ解析部２５が重要度を算出した場合、前回選択された「醤油ラーメン」のノードは無いが、ラーメンクラスの観測ノードに最も大きな重みがつくことから、グラフ解析部２５が算出した重要度の比率は、例えば、以下のようにラーメンに関するノードに大きな重みがつく。例えば、アイスクリームクラスの重要度ベクトルの比率は２、ラーメンクラスの比率は３、豚骨ラーメンの比率は２、苺アイスクリームの比率は１、その他の比率は０である。
【０１８２】
情報出力部１７は、この重要度の情報を用いて、豚骨ラーメン、苺アイスクリーム、の順番に情報を提示する。ここで、ユーザが「豚骨ラーメン」を選択した場合を検討する。このとき、グラフ解析部１５は、例えば、選択された「豚骨ラーメン」と、その上位概念である「ラーメンクラス」の観測ベクトルｖの比率を、各々１だけインクリメントする。この結果、２回目の推論の終了時には、観測ベクトルｖの比率は以下のようになる。アイスクリームクラスの比率は１、ラーメンクラスの比率は３、醤油ラーメンの比率は１、豚骨ラーメンの比率は１、その他の比率は０である。
【０１８３】
この結果、ラーメンクラスに最も大きな重みが付く。観測ベクトルｖは、「ユーザがラーメン一般（ラーメンクラス）を好きである」という情報を、より大きな確信度とともに、保持していることを意味する。
【０１８４】
このように、推論装置２０は、ユーザの選択結果を利用して観測ベクトルを更新することで、観測ベクトルにユーザの趣向又は癖の情報を保持することができる。よって、２回目以降の推論においてユーザの趣向又は癖に応じた推論結果を算出することが可能となる。
【０１８５】
特に、上記例に示したように、ユーザの選択結果から観測ベクトルの更新を繰り返すことで、醤油ラーメン又は豚骨ラーメンなどの具体的なインスタンスではなく、ラーメンクラス又は、アイスクリームクラスといった、上位概念（アッパーオントロジー）に対して観測ベクトルの重みが強くなる。このことで、ユーザの趣向又は癖を、具体的な事象ではなく、上位概念で保持することができる。これにより、取得される情報が動的に変化し、新しい事象のノードが追加される場合でも、上位概念のノードは常にグラフに存在していることで、ユーザに適応した推論が可能となる。
【０１８６】
一方で、ユーザがある特定の事象を好む、という事例も、観測ベクトルの更新で表現できる。例えば、ユーザが常に「醤油ラーメン」だけを選択する場合は、観測ベクトルの「醤油ラーメン」の重みだけが強くなる。よって、具体的な事象である「醤油ラーメン」のノードの重要度が常に高くなる。
【０１８７】
《観測ベクトルｖの更新方法の例（Ｕ２）》
グラフ解析部２５は、後述するコスト関数ＣＦ２を最小化することで、観測ベクトルを更新してもよい。以下、動作例について述べる。重要度ベクトルをｘｖとし、ｉ番目のノードの重要度をｘｖ（ｉ）とする。図１８（ａ）及び（ｂ）に示されるように、選択肢ＯＰ１、ＯＰ２、ＯＰ３がある場合、それぞれのノード番号をｉ，ｊ，ｋとする。例えば、ｘｖ（ｉ）は、選択肢ＯＰ１の重要度である。
【０１８８】
ここで、第１回目の推論では、「ｘｖ（ｉ）＞ｘｖ（ｊ）」及び「ｘｖ（ｊ）＞ｘｖ（ｋ）」の結果を得たと仮定する。このとき、図１８（ａ）のように、ディスプレイには選択肢ＯＰ１、ＯＰ２、ＯＰ３の重要度の高い順番で上から表示される。
【０１８９】
ここで、例えば、図１８（ａ）の例で、ユーザが選択肢ＯＰ３を選択した場合を説明する。この場合、このユーザにとって、選択肢ＯＰ１と選択肢ＯＰ２よりも選択肢ＯＰ３の重要度が高い、と判断できるため、操作履歴保存部は、条件「選択肢ＯＰ３の重要度＞選択肢ＯＰ１の重要度」と条件「選択肢ＯＰ３の重要度＞選択肢ＯＰ２の重要度」のノードの情報を、操作履歴Ｈｉｓｔとして保存する。
【０１９０】
次に、グラフ解析部２５は、操作履歴Ｈｉｓｔの情報を元に、条件「選択肢ＯＰ３の重要度＞選択肢ＯＰ１の重要度」と、条件「選択肢ＯＰ３の重要度＞選択肢ＯＰ２の重要度」、すなわち、「ｘｖ（ｋ）＞ｘｖ（ｉ）」及び「ｘｖ（ｋ）＞ｘｖ（ｊ）」を満たすような観測ベクトルｖを求める。
【０１９１】
具体的には、グラフ解析部２５は、以下の式（５）で算出されるコストＣＦ２を最小化するような、新しい観測ベクトルｖと、重要度ベクトルｘｖとを、同時に求める。
【０１９２】
【数１５】
0006567218.tif 000018
【０１９３】
式（５）の右辺の第１項は、式（３）の右辺と同じである。式（５）の右辺の第２項と第３項は、「ｘｖ（ｋ）＞ｘｖ（ｉ）」と「ｘｖ（ｋ）＞ｘｖ（ｊ）」とを保証するための項である。また、
【数１６】
0006567218.tif 000019
は、ｕ＜０の場合は０であり、ｕ≧０の場合は正の値を取る、任意の関数であり、関数ＨＬ（ｕ）とも表記する。
【０１９４】
例えば、関数ＨＬ（ｕ）は、以下の式（６）に示されるような、ｈｉｎｇｅ  ｌｏｓｓ関数であってもよい。
【数１７】
0006567218.tif 000020
式（６）において、関数ＨＬ（ｕ）は、ｕ＜０の場合は０であり、ｕ≧０の場合は線形に増加する関数である。
【０１９５】
また、ベクトルｖとベクトルｘの要素は、非負値であり、ベクトルｖの要素の総和は、１であり、ベクトルｘの要素の総和は、１である。このようにして求められた観測ベクトルｖは、条件「ｘｖ（ｋ）＞ｘｖ（ｉ）」及び条件「ｘｖ（ｋ）＞ｘｖ（ｊ）」を満たすため、ユーザ選択結果の情報を保持していると解釈できる。
【０１９６】
《２−３》効果
以上に説明したように、実施の形態２に係る推論装置２０又は推論方法によれば、ユーザの操作履歴を保存し、操作履歴に基づいて観測ベクトルを更新し、観測ベクトルに基づいて次の推論結果を算出することで、ユーザの趣向に合わせた音声対話など、適応的なユーザインタフェースの応答を実現できる。
【０１９７】
また、観測ベクトルの更新においては、個別の事象だけではなく、上位概念（アッパーオントロジー）に重みをつけることで、抽象化された概念レベルにおいてユーザの趣向又は癖を学習することができる。
【０１９８】
上記以外の点について、実施の形態２は、実施の形態１と同じである。
【０１９９】
《３》実施の形態３
《３−１》構成
実施の形態１に係る推論装置１０及び推論方法を用いた場合、ユーザは、推論の結果の理由、すなわち、推薦対象を推薦した理由を知りたい場合がある。例えば、表１に示される対話例において、推論装置１０を含む人工知能エージェントが『近くに冷やし中華のレストランありますよ。』と発話したときに、ユーザが『なんで冷やし中華を勧めたの？』と、推薦理由を聞き返す場合がある。このとき、人工知能エージェントは、推薦対象が「冷やし中華」である理由をユーザに説明することが求められる。実施の形態３では、ユーザに対し推薦理由を説明する機能を備えた推論装置３０及びこのような機能を実行するための推論方法を説明する。
【０２００】
図２０は、実施の形態３に係る推論装置３０の構成を概略的に示す機能ブロック図である。図２０において、図１に示される構成要素と同一又は対応する構成要素には、図１に示される符号と同じ符号が付される。実施の形態３に係る推論装置３０は、グラフ経路解析部３８を備えている点と、グラフ解析部３５及びグラフ検索部３６が行う処理の点とにおいて、実施の形態１に係る推論装置１０と相違する。
【０２０１】
《３−２》動作
最初のステップＳ３０１において、実施の形態１と同様に、グラフ解析部３５は、取得した統合グラフにおける各ノードの重要度を求め、各ノードの重要度に応じた複数の選択肢をユーザに提示する。例えば、表１の対話例のように、情報出力部１７が、「車外の状態」を観測ノードとし、「冷やし中華」のノードを推薦した場合を検討する。
【０２０２】
次のステップＳ３０２において、グラフ経路解析部３８は、統合グラフを取得し、統合グラフにおけるノードにおいて、推論開始ノードと推論終了ノードとを設定する。グラフ経路解析部３８は、推論開始ノードと推論終了ノードとを結ぶグラフ上の経路のうち、経路上のノードの重要度の合計が最大となる経路を算出する。ただし、算出する経路は、同じノードを１回だけ通る経路である。
【０２０３】
図２１は、実施の形態３に係る推論装置３０のグラフ経路解析部３８の動作例を示す図である。図２１では、例えば、推論開始ノードには、観測ノードの１つである「車外の状態」を設定する。推論終了ノードには、推薦内容である「冷やし中華」を設定する。
【０２０４】
次に、グラフ経路解析部３８は、推論開始ノードである「車外の状態」から、推論終了ノードの「冷やし中華」までのグラフ上の経路のうち、ノードの重要度の合計が最大となる経路（図２１において、点線の矢印で示した経路）を算出する。
【０２０５】
具体的には、グラフ経路解析部３８は、「車外の状態」、「暑い」、「冷たいものを食べる」、「冷たい食べ物」、「冷やし中華」の各ノードを順に結ぶ経路を取得する。この経路は、推論開始ノードと推論終了ノードを結ぶ経路のうち、重要度合計が最大（値１９）となる経路である。ここで、経路の列挙には、例えば、非特許文献４に記載のＺＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）を用いたグラフ列挙方法を用いてもよい。
【０２０６】
【非特許文献４】Ｊｕｎ  Ｋａｗａｈａｒａ、外３名、  “Ｆｒｏｎｔｉｅｒ−ｂａｓｅｄ  Ｓｅａｒｃｈ  ｆｏｒ  Ｅｎｕｍｅｒａｔｉｎｇ  Ａｌｌ  Ｃｏｎｓｔｒａｉｎｅｄ  Ｓｕｂｇｒａｐｈｓ  ｗｉｔｈ  Ｃｏｍｐｒｅｓｓｅｄ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ”、  ＴＣＳ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ、  Ｄｉｖｉｓｉｏｎ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、  Ｒｅｐｏｒｔ  Ｓｅｒｉｅｓ  Ａ、  ２０１４年９月３０日
【０２０７】
次のステップＳ３０３において、情報出力部１７は、最適経路の情報を利用して、推論理由を出力する。例えば、情報出力部１７は、「車外の状態」、「暑い」、「冷たいものを食べる」、「冷たい食べ物」、「冷やし中華」の順に並ぶノードを持つ統合グラフ上の経路情報を元に、「車外の状態が暑くて、あなたが冷たいものを食べたい、つまりそれは冷やし中華だと推論したからです。」という文章を生成する。
【０２０８】
以上の処理により、ユーザの『なんで冷やし中華を勧めたの？』という問に対して、推論装置３０は『車外の状態が暑くて、あなたが冷たいものを食べたい、つまりそれは冷やし中華だと推論したからです。』と出力することができる。
【０２０９】
また、推論開始ノードが複数ある場合には、最適経路と、推論理由を複数算出してもよい。例えば、「車外の状態」、「近くのお店」、「直近の命令」、「運転手」の４つが観測ノードである場合、それらを推論開始ノードとして各々設定し、４つの最適経路と４つの推論理由を算出してもよい。
【０２１０】
《３−３》変形例１
図２２（ａ）は、実施の形態３の変形例１に係る推論装置のグラフ経路解析部の他の動作例を示す図である。
【０２１１】
図２１の例では、グラフ経路解析部３８が、推論開始ノードと推論終了ノードを結ぶ経路のうち、重要度の合計が最大となる経路を求め、この経路を最適経路とし、この最適経路に基づいて推論理由を生成した。しかし、グラフ経路解析部３８の動作は、図２１に示すものに限られない。グラフ解析動作部３８は、推論開始ノードと推論終了ノードを結ぶ経路上のノードの個数、すなわち、ノード合計数に基づいて最適経路を決定し、この最適経路に基づいて推論理由を生成してもよい。例えば、グラフ解析動作部３８は、推論開始ノードと推論終了ノードを結ぶ経路のうち、ノード合計数が最小となる経路を求めて、この経路を最適経路としてもよい。また、グラフ解析動作部３８は、ノード合計数が最小となる複数の経路がある場合には、それら複数の経路のうちの、経由するノードの重要度の合計が最大となる経路を求めて、これを最適経路としてもよい。
【０２１２】
図２２（ａ）において、推論開始ノードＳと推論終了ノードＧを結ぶ経路は、以下の３つである。
（経路Ｐ１１）：ノードＳ，Ｎ１，Ｎ２，Ｎ３，Ｇを結ぶ経路
（経路Ｐ１２）：ノードＳ，Ｎ４，Ｇを結ぶ経路
（経路Ｐ１３）：ノードＳ，Ｎ５，Ｇを結ぶ経路
【０２１３】
経路Ｐ１１では、経由するノードの個数は５、経由するノードの重要度の合計は１４、である。
経路Ｐ１２では、経由するノード数の個数は３、経由するノードの重要度の合計は７、である。
経路Ｐ１３では、経由するノードの個数は３、経由するノードの重要度の合計は３、である。
【０２１４】
このとき、グラフ解析動作部３８は、推論開始ノードＳと推論終了ノードＧを結ぶ経路Ｐ１１、Ｐ１２、Ｐ１３のうち、経由するノード数の合計が最小となる経路Ｐ１２とＰ１３を求め、最小となる複数の経路がある場合には、それらのうちの、重要度の合計が最大となる経路Ｐ１２を最適経路として採用し、最適経路を利用して推論理由を生成する。ここでは、経路Ｐ１２が最適経路に相当する。経路Ｐ１２を利用して推論理由を生成することで、簡略化されたな推論理由を生成することができる効果がある。
【０２１５】
一方、推論開始ノードＳと推論終了ノードＧを結ぶ経路Ｐ１１、Ｐ１２、Ｐ１３のうち、重要度の合計が最大となる経路は経路Ｐ１１である。経路Ｐ１１を利用して推論理由を生成すると、文章が長くなり、人間にとって理解が困難になってしまうことがある。図２２（ａ）に示される変形例１は、このような場合に、適切な推論理由を生成することができる。
【０２１６】
《３−４》変形例２
図２２（ｂ）は、実施の形態３の変形例２に係る推論装置のグラフ経路解析部の他の動作例を示す図である。
【０２１７】
推論理由の生成に必ず利用しなければいけないノードが事前に判明していることがある。グラフ経路解析部３８は、最適経路が経由することが決められているノード、すなわち、推論理由の生成に必ず利用しなければいけないノードを必須の推論経由ノードとして指定することで、推論理由を生成してもよい。
【０２１８】
図２２（ｂ）に示される例において、グラフ経路解析部３８は、Ｓを推論開始ノードに、Ｇを推論終了ノードに、Ｎ５を必須の推論経由ノードに指定する。グラフ経路解析部３８は、推論開始ノードＳと推論終了ノードＧとを結び、かつ必須の推論経由ノードＮ５を通るグラフ上の経路を最適経路として算出する。図２２（ｂ）の例では、必須の推論経由ノードＮ５を通る経路Ｐ１３、すなわち、経路Ｐ１３１又はＰ１３２、が最適経路に相当する。
【０２１９】
図２２（ｂ）の例では、必須の推論経由ノードＮ５を通る複数の経路があるので、グラフ経路解析部３８は、複数の経路のうちのいずれか、すなわち、経路Ｐ１３１又はＰ１３２のいずれかを推論理由の生成に利用する。この場合には、グラフ経路解析部３８は、例えば、図２２（ａ）で説明した推論理由の生成方法を用いることができる。
【０２２０】
図２２（ｂ）において、推論開始ノードＳと推論終了ノードＧを結び、必須の推論経由ノードＮ５を通る経路は、以下の２つである。
（経路Ｐ１３１）：ノードＳ，Ｎ５，Ｎ６，Ｇを結ぶ経路
（経路Ｐ１３２）：ノードＳ，Ｎ５，Ｎ７，Ｇを結ぶ経路
【０２２１】
経路Ｐ１３１では、経由するノードの個数は４、経由するノードの重要度の合計は４、である。
経路Ｐ１３２では、経由するノードの個数は４、経由するノードの重要度の合計は５、である。
【０２２２】
このとき、グラフ解析動作部３８は、推論開始ノードＳと推論終了ノードＧを結ぶ経路Ｐ１３１、Ｐ１３２のうち、経由するノード数の合計が最小となる経路Ｐ１３１とＰ１３２を求め、最小となる複数の経路がある場合には、それらのうちの、重要度の合計が最大となる経路Ｐ１３２を最適経路として採用し、最適経路を利用して推論理由を生成する。ここでは、経路Ｐ１３２が最適経路に相当する。経路Ｐ１３２を利用して推論理由を生成することで、簡略化されたな推論理由を生成することができる効果がある。
【０２２３】
《３−５》変形例３
グラフ経路解析部３８は、ルールノードを利用して推論理由を生成し、適用された推論ルールの情報を推論理由に含めてもよい。
【０２２４】
図２３（ａ）から（ｃ）は、実施の形態３の変形例３に係る推論装置のグラフ経路解析部３８のさらに他の動作例を示す図である。図２３（ａ）は、推論ルールを適用する前のグラフであり、このグラフには、ノードＡ，Ｂ，Ｃ，Ｓのみが存在している。ここで、ノードＳを観測ノードと仮定する。
【０２２５】
次のステップＳ３０１ａにおいて、グラフ経路解析部３８は、推論ルールを適用し、統合グラフを生成する。このとき、グラフ結合部１４は、各推論ルールの前提条件と、推論ルールが新しく生成したノードの情報を示す、ルールノードを統合グラフに追加する。図２３（ｂ）は、グラフ結合部１４によって、以下の２つの推論ルールであるｒｕｌｅ１及びｒｕｌｅ２を適用することで得られた統合グラフの例を示す。
ｒｕｌｅ１：ノードＡかつノードＢが存在するならば、トリプレット（Ｘ、  ｐｒｏｐ１、  Ｙ）が成り立つ。
ｒｕｌｅ２：ノードＣかつノードＸが存在するならば、トリプレット（Ｘ、  ｐｒｏｐ２、  Ｚ）が成り立つ。
ここで、「ｐｒｏｐ１」及び「ｐｒｏｐ２」は、ｐｒｏｐｅｒｔｙ１及びｐｒｏｐｅｒｔｙ２、すなわち、属性１及び属性２を意味する。「ｐｒｏｐ１」及び「ｐｒｏｐ２」は、例えば、ｌｉｋｅであるが、他のｐｒｏｐｅｒｔｙであってもよい。
【０２２６】
「ｐｒｏｐ１」及び「ｐｒｏｐ２」が、ｌｉｋｅである場合、
ｒｕｌｅ１：ノードＡかつノードＢが存在するならば、トリプレット（Ｘ、  ｌｉｋｅ、  Ｙ）が成り立つ。つまり、Ｘの好きなものはＹである、が成り立つ。
ｒｕｌｅ２：ノードＣかつノードＸが存在するならば、トリプレット（Ｘ、  ｌｉｋｅ、  Ｚ）が成り立つ。つまり、Ｘの好きなものはＺである、が成り立つ。
【０２２７】
図２３（ｂ）に示されるように、例えば、グラフ結合部１４は、ルールノードｒｕｌｅ１とｒｕｌｅ２を生成して統合グラフに追加する。ここで、例えば、トリプレット（Ａ、  前提、  ｒｕｌｅ１）は、「Ａはｒｕｌｅ１の前提理由である。」を示す。また、トリプレット（ｒｕｌｅ１、  生成、  Ｘ）は、「ｒｕｌｅ１により新しくノードＸが生成された。」ことを示す。
【０２２８】
次のステップＳ３０２ａにおいて、グラフ経路解析部３８は、ルールノードを必須の推論経由ノードに指定して、最適経路を求める。
【０２２９】
例えば、図２３（ｂ）の統合グラフにおいて、
「なぜＺが生成されたのか？」というユーザの問いに対して、グラフ経路解析部３８は、以下のように理由を生成することができる。
【０２３０】
図２３（ｃ）の統合グラフにおいて、グラフ経路解析部３８は、観測ノードであるＳを推論開始ノードに、ｒｕｌｅ１とｒｕｌｅ２を必須の推論経由ノードに、Ｚを推論終了ノードに設定して、重要度の合計が最大となる経路を算出する。なお、ｒｕｌｅ１とｒｕｌｅ２を必須の推論経由ノードに指定した場合に、推論開始ノードＳから必須の推論経由ノードを経由して推論終了ノードＺまでの経路として、複数の経路がある場合の処理は、図２２（ｂ）を用いて説明した変形例２の場合の処理とすることができる。
【０２３１】
この結果、例えば、グラフ経路解析部３８は、ノードＳ、Ｂ、ｒｕｌｅ１、Ｙ、Ｘ、ｒｕｌｅ２、Ｚを結ぶ経路を算出する。この経路を、図２３（ｃ）において、点線８０の矢印で示す。
【０２３２】
次のステップＳ３０３において、情報出力部１７は、最適経路の情報を利用して、推論理由を出力する。例えば、経路上のノード情報を利用して、以下のように、順次、推論理由を生成する。このように、「どのルールが適用されてＺが生成されたのか」を、算出することができる。
【０２３３】
図２３（ｃ）の例では、生成された推論理由は、以下の理由である。
・推論開始ノードＳの要素にノードＢがある。
・ノードＢはノードｒｕｌｅ１の前提である。
・ノードｒｕｌｅ１はノードＹを生成した。
・ノードＹはノードＸのｐｒｏｐ１である。
・ノードＸはノードｒｕｌｅ２の前提である。
・ノードｒｕｌｅ２は推論終了ノードＺを生成した。
【０２３４】
《３−６》効果
以上に説明したように、実施の形態３に係る推論装置３０又は推論方法によれば、ユーザの「なぜ、そう思ったの？」という人工知能への問に対する回答を、その理由を視覚的にわかりやすく、かつ論理的に提示することができる。
【０２３５】
上記以外の点について、実施の形態３は、実施の形態１又は２と同じである。また、実施の形態１から３の構成要素は、互いに適宜組み合わせることが可能である。
【符号の説明】
【０２３６】
１０，２０，３０  推論装置、  １１  知識ベース部、  １１ａ  知識ベース、  １２  ルールデータベース部、  １２ａ  ルールデータベース、  １３  動的情報取得部、  １４  グラフ結合部（情報結合部）、  １５，２５，３５  グラフ解析部（情報解析部）、  １６，３６  グラフ検索部（情報検索部）、  １７  情報出力部、  ２８  操作履歴保存部、  ３８  グラフ経路解析部、  ４１  アプリケーション、  ４２  ユーザインタフェース、  ４３  ＧＰＳ、  ４４  カメラ、  ４５  インターネット、  ４６  外部データベース、  ４７  センサ、  ５１  ユーザインタフェース。
【要約】
推論装置（１０）は、人間の状態に関する情報及び人間の行動に関する情報を含み、知識ベース（１１ａ）から提供される知識情報と、ルールデータベース（１２ａ）から提供される推論ルールとを用いて、動的に変化する外部の情報のうちの互いに異なるドメインに属する情報であるグラフを前向き連鎖で結合することによって統合グラフを生成するグラフ結合部（１４）を有する。【図１】
0006567218.tif 000021
【図２】
0006567218.tif 000022
【図３】
0006567218.tif 000023
【図４】
0006567218.tif 000024
【図５】
0006567218.tif 000025
【図６】
0006567218.tif 000026
【図７】
0006567218.tif 000027
【図８】
0006567218.tif 000028
【図９】
0006567218.tif 000029
【図１０】
0006567218.tif 000030
【図１１】
0006567218.tif 000031
【図１２】
0006567218.tif 000032
【図１３】
0006567218.tif 000033
【図１４】
0006567218.tif 000034
【図１５】
0006567218.tif 000035
【図１６】
0006567218.tif 000036
【図１７】
0006567218.tif 000037
【図１８】
0006567218.tif 000038
【図１９】
0006567218.tif 000039
【図２０】
0006567218.tif 000040
【図２１】
0006567218.tif 000041
【図２２】
0006567218.tif 000042
【図２３】
0006567218.tif 000043