(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】処理装置、処理方法及びプログラム
(51)【国際特許分類】
G06N 5/00 20230101AFI20240528BHJP
G06N 3/04 20230101ALI20240528BHJP
G06N 3/042 20230101ALI20240528BHJP
【FI】
G06N5/00
G06N3/04 100
G06N3/042
(21)【出願番号】P 2022555005
(86)(22)【出願日】2020-10-06
(86)【国際出願番号】 JP2020037881
(87)【国際公開番号】W WO2022074737
(87)【国際公開日】2022-04-14
【審査請求日】2023-03-31
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】秋元 康佑
(72)【発明者】
【氏名】平岡 拓也
(72)【発明者】
【氏名】定政 邦彦
【審査官】千葉 久博
(56)【参考文献】
【文献】米国特許出願公開第2020/0312300(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00
G06N 3/04
G06N 3/042
(57)【特許請求の範囲】
【請求項1】
述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算するエンティティ前処理手段と、
処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行う後処理手段と、
を備える処理装置。
【請求項2】
前記エンティティ前処理手段は、
前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの前記対応関係の情報を含んだグラフ構造を構築するグラフ構造抽出手段と、
前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算するエンティティベクトル計算手段と、
を備える、
請求項1に記載の処理装置。
【請求項3】
前記エンティティベクトル計算手段は、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算する入力ベクトル計算手段と、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算するグラフニューラルネットワーク計算手段と、
を備える、
請求項2に記載の処理装置。
【請求項4】
前記後処理手段が出力した処理結果と、望ましい処理結果であるクエリ目標とを比較し、前記後処理手段が出力した処理結果と前記クエリ目標との類似度を計算する計算手段と、
前記類似度に基づいてパラメータを更新するパラメータ更新手段と、
を備える請求項1~3のいずれか1項に記載の処理装置。
【請求項5】
述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算するエンティティ前処理手段と、
処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行う後処理手段と、
を備える処理装置が実行する処理方法であって、
(a)
前記述語と、前記述語の
前記引数である
前記エンティティの
前記連想配列と、の
前記ペアである
前記アトムの
前記集合を
前記入力として、前記エンティティそれぞれに対し、前記連想配列における
前記キーと前記エンティティとの
前記対応関係を反映した
前記エンティティ特徴ベクトルを
前記エンティティ前処理手段が計算し、
(b)
前記処理の
前記内容を指示する
前記クエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された
前記処理を前記後処理手段が行う、
ことを特徴とする処理方法。
【請求項6】
前記エンティティ前処理手段は、
前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの前記対応関係の情報を含んだグラフ構造を構築するグラフ構造抽出手段と、
前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算するエンティティベクトル計算手段と、
を備え、
前記(a)は、その処理の一部分として、
(a1)前記アトムの前記集合を入力として、前記連想配列における
前記各キーと前記エンティティとの
前記対応関係の情報を含んだグラフ構造を
前記グラフ構造抽出手段が構築し、
(a2)前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを
前記エンティティベクトル計算手段が計算する、
ことを特徴とする請求項5に記載の処理方法。
【請求項7】
前記エンティティベクトル計算手段は、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算する入力ベクトル計算手段と、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算するグラフニューラルネットワーク計算手段と、
を備え、
前記(a2)は、その処理の一部分として、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、
前記エッジとに対してそれぞれ
前記エンティティ入力ベクトルと、
前記アトム入力ベクトルと、
前記エッジ入力ベクトルとを
前記入力ベクトル計算手段が計算し、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、
前記グラフニューラルネットワーク出力ベクトルを
前記グラフニューラルネットワーク計算手段が計算する、
ことを特徴とする請求項6に記載の処理方法。
【請求項8】
前記処理装置は、
前記後処理手段が出力した処理結果と、望ましい処理結果であるクエリ目標とを比較し、前記後処理手段が出力した処理結果と前記クエリ目標との類似度を計算する計算手段と、
前記類似度に基づいてパラメータを更新するパラメータ更新手段と、
を備え、
前記
(b)の後に、
(c)前記(b)の処理結果と、望ましい処理結果である
前記クエリ目標とを比較し、前記
(b)の
前記処理結果と前記クエリ目標との類似度を
前記計算手段が計算し、
(d)前記類似度に基づいて前記
(b)の処理で用いられる
前記パラメータを
前記パラメータ更新手段が更新する、
ことを特徴とする請求項5~7のいずれか1項に記載の処理方法。
【請求項9】
(a)述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算させ、
(b)処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行わせる、
ことをコンピュータに実行させるプログラム。
【請求項10】
前記
(a)において、その処理の一部分として、
(a1)前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの対応関係の情報を含んだグラフ構造を構築させ、
(a2)前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算させる、
ことをコンピュータに実行させる請求項9に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理方法及びプログラムが格納された非一時的なコンピュータ可読媒体に関する。
【背景技術】
【0002】
機械学習や論理推論に基づく推論を行うとき、実世界において人や物などのエンティティの間に成立している事実は述語を用いて表現することができる。述語は対象となる事実の性質を定義するものである。実世界において成立している事実は、当該事実の性質に対応する述語と、当該事実に関連するエンティティの集合と、のペアであるアトムによって表現される。
【0003】
機械学習の実応用では、アトムの集合を入力として受け付け、与えられたアトムに特有な処理を行いたい場合、または与えられたエンティティに特有な処理を行いたい場合がある。
【0004】
例えば、非特許文献1に開示された技術では、実世界において成立している事実を表現するアトム集合を入力として受け付ける。ただし、アトム集合のアトムに含まれるエンティティ集合においては、エンティティの間の順序は考慮されない。次いで、アトム集合を入力として所定の計算を行い、アトム集合に現れるエンティティそれぞれに対し、アトム集合の情報を要約したエンティティ特徴ベクトルが計算される。そして、エンティティ特徴ベクトルを用いて、エンティティが属するカテゴリの分類のような、エンティティ毎に特有な処理が行われる。
【先行技術文献】
【非特許文献】
【0005】
【文献】Feng, Yifan, et al. "Hypergraph neural networks." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 33. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1に開示された技術では、入力されるアトムの集合において、引数であるエンティティの間の順序が定義されていないため、引数に含まれるエンティティがそれぞれ異なる役割を持つような述語を含むアトム集合が入力された際に、エンティティの異なる役割を考慮した処理を行うことができない。
【0007】
本開示の目的は、このような課題を解決するためになされたものであり、入力されたアトムの集合に対し、アトムの引数に含まれるエンティティがそれぞれ異なる役割を持つような場合でも、エンティティの異なる役割を考慮した処理を行うことができる処理装置、処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することにある。
【課題を解決するための手段】
【0008】
本開示に係る処理装置は、述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記アトムの前記連想配列におけるキーと前記エンティティとの対応関係に応じた情報を反映したエンティティ特徴ベクトルを計算するエンティティ前処理部と、処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行う後処理部と、を備える。
【0009】
また、本開示に係る処理方法は、(a)述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算し、(b)処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行うことを特徴とする。
【0010】
また、本開示に係るプログラムは、コンピュータに、(a)述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係に応じた情報を反映したエンティティ特徴ベクトルを計算させ、(b)処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行わせる ことをコンピュータに実行させる。
【発明の効果】
【0011】
本開示によれば、アトムの引数に含まれるエンティティがそれぞれ異なる役割を持つような場合でも、アトムにおけるエンティティの異なる役割を反映した処理を実現することができる処理装置 、処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1に係る処理装置の構成を例示したブロック図である。
【
図2】実施の形態1に係る処理装置の構成をより具体的に例示したブロック図である。
【
図3】実施の形態1に係るエンティティベクトル計算部の構成をより具体的に例示したブロック図である。
【
図4】実施の形態1に係るグラフ構造抽出部の動作の一例を示す図である。
【
図5】実施の形態1に係るエンティティベクトル計算部の動作の一例を示す図である。
【
図6】実施の形態1に係る後処理部の動作の一例を示す図である。
【
図7】実施の形態1に係る後処理部の動作の別の一例を示す図である。
【
図8】実施の形態1に係る処理装置の動作を例示したフロー図である。
【
図9】実施の形態2に係る処理装置の構成を例示したブロック図である。
【
図10】実施の形態2に係る処理装置の動作を例示したフロー図である。
【
図11】実施の形態1及び2に係る処理装置を実現するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0013】
(前提)
まず、本願明細書において「連想配列」は、数値や文字列などのデータを格納する配列であり、なおかつ数値や文字列などのキーと、配列中の要素とが対応付けられているようなデータ形式を指す。なお、通常の配列は、配列における要素の位置をその要素のキーと扱うことで連想配列とみなすことができる。
【0014】
次に、本願明細書において「エンティティ」は、事象において現れる、物、事、人、概念、数値等であり、区別可能な名前が付けられている。エンティティの例としては、「Obama」、「U.S.」(固有名詞)、「Human」(概念・種類を表す名詞)等が挙げられる。また、エンティティは、区別可能な名前の他に、「属性」を持っていてよい。属性は、記号、文字列、数値、ベクトル、行列など、前処理を通してベクトルに要約できる形式で表現され、エンティティの持つ性質を表す。例えば、エンティティである「Obama」は、属性として身長を表す数値である185.4cmを持つことができる。なお、エンティティが属性を持たない場合も、「属性無し」という記号によって表現される属性を持つとして扱うことができる。
【0015】
また、「述語」は、エンティティの間に成り立つ事実ないし関係を、その事実ないし関係の意味や性質によって定義するものである。述語は、記号、文字列、数値、ベクトル、行列など、エンティティの間に成り立つ事実ないし関係の意味や性質を表現でき、前処理を通してベクトルに要約できる任意の形式であってよい。例えば、「isIn,{X, Y}」は、「YはXに属する」を意味し、エンティティXとYの関係を定義する述語である。
【0016】
次に、「アトム」は、述語と、述語の引数であるエンティティの連想配列と、の組み合わせで定義されており、当該連想配列に含まれるエンティティの間に、当該述語によって定義される事実ないし関係が成立していることを表している。ここで、当該連想配列において各エンティティに対して対応付けられているキーは、当該エンティティの述語によって定義される事実ないし関係における、役割を表している。キーは、記号、文字列、数値、ベクトル、行列など、当該エンティティの役割を表現でき、前処理を通してベクトルに要約できる任意の形式であってよい。本願明細書では、述語の引数であるエンティティの連想配列のキーを、当該述語の引数キーとも呼ぶ。例えば、「<isIn, {area: Asia, country: Japan}>」は、「JapanはAsiaに属する」を意味し、エンティティ「Asia」と「Japan」との間に成立している関係を述語「isIn」を用いて説明するアトムである。ここで、「area」はエンティティ「Asia」のキーである。また「country」はエンティティ「Japan」のキーである。
【0017】
続いて、「クエリ」は、処理装置に行わせる処理、および処理装置の出力に関する指示入力を表す。クエリは、処理の内容を特定するために、処理の実行に関連するエンティティの情報を含んでよい。また、クエリにより指示される、処理装置の出力は、記号、文字列、数値、ベクトル、行列などの、ベクトルまたは数値から所定の後処理を施して得ることができる任意の形式で良い。例えば、<classification, {entity: Tokyo, class:[city, person, country]}>は、エンティティが属するカテゴリを分類する処理を行わせるクエリの一例である。classificationは、エンティティが属するカテゴリを分類する処理を行わせることを示すラベルである。{entity: Tokyo, class:[city, person, country]}は処理の実行に必要な補助情報を格納した連想配列である。この連想配列において、entityに対応した値であるTokyoは分類対象のエンティティであり、classに対応した値である配列[city, person, country]はエンティティが属しうる3つのカテゴリの候補city, person, countryを格納した配列である。
【0018】
(実施の形態1)
以下、実施の形態1における、処理装置、処理方法、及びプログラムについて、
図1~
図8を参照しながら説明する。
【0019】
[装置構成]
最初に、
図1を用いて、本実施の形態1における処理装置の構成について説明する。
図1は、実施の形態1に係る処理装置の構成を例示したブロック図である。
【0020】
図1に示す、本実施の形態1に係る処理装置100は、アトム集合とクエリとを入力として受け付け、アトム集合に含まれる情報を用いて、クエリにより指示された処理を行った結果を出力する。
図1に示すように、処理装置100は、エンティティ前処理部10と、後処理部11と、を備えている。エンティティ前処理部10及び後処理部11は、それぞれ、エンティティ前処理手段及び後処理手段としての機能を有している。
【0021】
エンティティ前処理部10は、述語と、述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、エンティティそれぞれに対し、連想配列におけるキーとエンティティとの対応関係を反映したエンティティ特徴ベクトルを計算する。例えば、エンティティ前処理部10は、アトムの集合を入力として、パラメータの更新を行わずに、エンティティそれぞれに対し、アトムの連想配列における各キーと、エンティティと、の対応関係に応じた情報を反映した、エンティティ特徴ベクトルを出力する。
【0022】
後処理部11は、処理の内容を指示するクエリを受け付け、エンティティ特徴ベクトルを用いてクエリによって指示された処理を行う。例えば、後処理部11は、エンティティ特徴ベクトルと、クエリと、を入力として受け付け、エンティティ特徴ベクトルに含まれる情報を用いて、クエリによって指示された処理を行い、処理の結果を出力する。
【0023】
以上のように本実施の形態では、エンティティ前処理部10は、入力されたアトム集合に含まれるアトムの、引数であるエンティティの連想配列における、各キーとエンティティとの対応関係に応じた情報を反映したエンティティ特徴ベクトルを出力するから、アトムの引数に含まれるエンティティがそれぞれ異なる役割を持つような場合でも、当該役割を連想配列のキーとして区別することで、後処理部11において、アトムにおけるエンティティの異なる役割を反映した個々のエンティティに特有な処理を実現することができる。
【0024】
さらに、エンティティ前処理部10はエンティティ特徴ベクトルを計算するためにパラメータの更新を行わないから、異なるアトム集合を入力された場合にも、エンティティ前処理部10において、それぞれのアトム集合に対して同じパラメータを用いて、一貫したエンティティ特徴ベクトルを計算することができる。それによって、後処理部11においても、エンティティ特徴ベクトルを用いることで、異なるエンティティを含むアトム集合に対しても、一貫した処理を行うことができる。
【0025】
続いて、
図2~
図8を用いて、実施の形態1における処理装置100の構成及び機能をより具体的に説明する。
図2は、実施の形態1に係る処理装置の構成をより具体的に例示したブロック図である。
【0026】
図2に示すように、本実施の形態では、処理装置100は、アトム集合格納部12と、クエリ格納部13と、パラメータ格納部16とをさらに備えている。アトム集合格納部12、クエリ格納部13及びパラメータ格納部16は、それぞれ、アトム集合格納手段、クエリ格納手段及びパラメータ格納手段としての機能を有している。また、エンティティ前処理部10は、内部にグラフ構造抽出部14と、エンティティベクトル計算部15とを備えている。グラフ構造抽出部14及びエンティティベクトル計算部15は、それぞれ、グラフ構造抽出手段及びエンティティベクトル計算手段としての機能を有している。パラメータ格納部16は、エンティティベクトル計算部15が用いるパラメータと、後処理部11が用いるパラメータとを格納している。
【0027】
さらに、
図3は、実施の形態1に係るエンティティベクトル計算部の構成をより具体的に例示したブロック図である。
図3に示すように、本実施の形態では、エンティティベクトル計算部15は、入力ベクトル計算部17とグラフニューラルネットワーク計算部18とを備えている。入力ベクトル計算部17及びグラフニューラルネットワーク計算部18は、それぞれ、入力ベクトル計算手段及びグラフニューラルネットワーク計算手段としての機能を有している。
【0028】
本実施の形態では、グラフ構造抽出部14は、アトムの集合を入力として、連想配列における各キーとエンティティとの対応関係の情報を含んだグラフ構造を構築する。具体的には、グラフ構造抽出部14は、アトム集合格納部12から取り出されたアトム集合からグラフ構造を抽出する。グラフ構造は、アトム集合に含まれるエンティティの全部または一部に対し、当該エンティティに対応するノードを含む。また、グラフ構造は、アトム集合に含まれるアトムの全部または一部に対応するノードも含む。さらに、グラフ構造は、アトム集合に含まれるアトムと、当該アトムの引数に含まれるエンティティとのペアの全部または一部に対し、当該アトムに対応するノードと、当該エンティティに対応するノードとの間に、当該アトムに対応する述語と、当該アトムにおいて当該エンティティに対応する連想配列の引数キーと、のペアに対応するラベルを持つラベル付きエッジを含む。
【0029】
図4は、実施の形態1に係るグラフ構造抽出部14の動作の一例を示す図である。なお、図中の一方向性の矢印およびグラフ構造はデータ間の関連を単に示したもので、データ間の双方向的な関連を排除するものではなく、また、特定のグラフ構造に基づくデータ構造を仮定するものではない。
図4の例では、アトムA1: <isIn, {area: Asia, country: Japan}>と、アトムA2: <isCapitalSince, {country: Japan, city: Tokyo, year: 1868}>と、アトムA3: <isCapitalSince, {country: Japan, city: Kyoto, year: 794}>と、アトムA4: <”E1 is a big city.”, {“E1”: Tokyo}>との4つのアトムがアトム集合格納部12から取り出される。そして、グラフ構造抽出部14は、Asiaと、Japanと、Tokyoと、Kyotoとに対応するノードと、4つのアトムのそれぞれに対応するノードを含み、以下のラベル付きエッジを含むグラフ構造を出力する。
アトムA1 - Asia (ラベル:(isIn, area))
アトムA1 - Japan (ラベル:(isIn, country))
アトムA2 - Japan (ラベル:(isCapitalSince, country))
アトムA2 - Tokyo (ラベル:(isCapitalSince, city))
アトムA2 - 1868 (ラベル:(isCapitalSince, year))
アトムA3 - Japan (ラベル:(isCapitalSince, country))
アトムA3 - Kyoto (ラベル:(isCapitalSince, city))
アトムA3 - 794 (ラベル:(isCapitalSince, year))
アトムA4 - Tokyo (ラベル:(“E1 is a big city”, “E1”))
【0030】
エンティティベクトル計算部15は、グラフ構造を受け付け、エンティティごとのエンティティ特徴ベクトルを計算する。具体的には、エンティティベクトル計算部15は、本実施の形態では、グラフ構造抽出部14から出力されたグラフ構造と、パラメータ格納部16に格納されたパラメータを用いて、グラフ構造において対応するノードが存在するエンティティそれぞれに対し、当該エンティティの、アトム集合における連想配列の引数キーとエンティティとの対応関係に関する情報を含んだ、エンティティ特徴ベクトルを出力する。
【0031】
そのために、エンティティベクトル計算部15は、本実施の形態では、グラフ構造を入力ベクトル計算部17に入力し、グラフ構造の各ノードと、各エッジとに対応する入力ベクトルを計算する。そして、各ノードと、各エッジとに対応する入力ベクトルをグラフニューラルネットワーク計算部18に入力し、各ノードに対応するグラフニューラルネットワーク出力ベクトルを計算する。このとき、グラフニューラルネットワーク計算部18に、追加でグラフ構造を入力しても良い。続いて、エンティティベクトル計算部15は、グラフ構造においてエンティティに対応するノードを特定し、当該ノードに対応するグラフニューラルネットワーク出力ベクトルを、当該エンティティに対応するエンティティ特徴ベクトルとして出力する。
【0032】
なお、各ノードと、各エッジとに対応する入力ベクトルの一部または全部を計算しない場合も、当該ベクトルを計算しないことを表す特別なベクトルを代わりに用いることで対応できるため、本実施の形態に含まれる。また、入力ベクトル計算部17による計算と、グラフニューラルネットワーク計算部18による計算は、パラメータ格納部16に格納されているパラメータを用いてよい。
【0033】
図5は、本実施の形態に係るエンティティベクトル計算部15の動作の一例を示す図である。なお、図中の一方向性の矢印およびグラフ構造はデータ間の関連を単に示したもので、データ間の双方向的な関連を排除するものではなく、また特定のグラフ構造に基づくデータ構造を仮定するものではない。
【0034】
図5の例では、エンティティベクトル計算部15は、グラフ構造抽出部14によって出力されたグラフ構造を入力として受け付ける。グラフ構造はエンティティであるAsiaと、Japanとに対応するノードと、アトムA1: <isIn, {area: Asia, country: Japan}>に対応するノードと、ラベル付きエッジである以下のエッジ1と、エッジ2とを含んでいる。
エッジ1: アトムA1 - Asia (ラベル:(isIn, area))
エッジ2: アトムA1 - Japan (ラベル:(isIn, country))
【0035】
続いて、エンティティベクトル計算部15は、グラフ構造を入力ベクトル計算部17に入力する。
【0036】
入力ベクトル計算部17は、
図5の例では、グラフ構造に含まれるエンティティであるAsiaと、Japanとに対し、当該エンティティの属性である属性
Asiaと、属性
Japanを取り出し、属性からAsiaと、Japanとに対応するエンティティ入力ベクトルとしてv
Asiaとv
Japanとを計算する。エンティティ入力ベクトルの計算は、例えば、属性に前処理を施してベクトルの形式に変換し、ベクトルに対する演算、または行列演算、またはニューラルネットワークを用いた計算、または計算の組み合わせにより実現される。
【0037】
続いて、入力ベクトル計算部17は、グラフ構造に含まれるアトムであるアトムA1に対し、アトム入力ベクトルとしてv
A1を計算する。アトム入力ベクトルは、
図5の例では、当該アトムに対応する述語であるisInに前処理を施してベクトルの形式に変換し、ベクトルに対する演算、または行列演算、またはニューラルネットワークを用いた計算、またはそれらの組合せによって計算される。アトム入力ベクトルは、本実施形態の方法による計算によらず、例えばパラメータ格納部16に格納されるベクトルをそのまま用いてもよい。
【0038】
続いて、入力ベクトル計算部17は、グラフ構造に含まれるエッジであるエッジ1とエッジ2とに対し、エッジ入力ベクトルとしてv
(isIn,area)とv
(isIn,country)とを計算する。エッジ入力ベクトルの計算は、
図5の例では、ラベルである(isIn, area)と(isIn, country)とを取り出す。そして、ラベルを構成する述語であるisInと、引数キーであるareaおよびcountryの一部または全部に前処理を施してベクトルの形式に変換する。さらに入力ベクトル計算部17は、ベクトルに対する演算、または行列演算、またはニューラルネットワークを用いた計算、または計算の組み合わせにより実現される。
【0039】
そして、エンティティベクトル計算部15は、
図5の例では、エンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを、対応するエンティティと、アトムと、エンティティとに対応付けて入力ベクトルとし、グラフニューラルネットワーク計算部18に入力する。
【0040】
続いて、グラフニューラルネットワーク計算部18は、上述の入力ベクトルから、グラフニューラルネットワークを用いて、グラフニューラルネットワーク出力ベクトルoAsiaと、oA1と、oJapanとを算出する。
【0041】
そして、エンティティベクトル計算部15は、グラフ構造に含まれるエンティティであるAsiaと、Japanとに対し、当該ノードに対して出力されたグラフニューラルネットワーク出力ベクトルであるoAsiaと、oJapanとを、エンティティ特徴ベクトルeAsiaと、eJapanとして出力する。
【0042】
本実施の形態では、後処理部11は、まず、クエリ格納部13からクエリを読み出し、クエリにより指示される処理の内容を特定する。
【0043】
続いて、後処理部11は、クエリの処理に関連するエンティティの全部または一部に対し、エンティティベクトル計算部15で計算された、当該エンティティのエンティティ特徴ベクトルを取り出す。そして、後処理部11は、クエリにより指示される処理に応じて、取り出したエンティティ特徴ベクトルを入力として計算を行う。計算は、例えば、ベクトルに対する演算、行列演算、ニューラルネットワークなどの処理、または、演算及び処理の組合せによって実現される。続いて、後処理部11は、計算結果であるベクトルを取り出し、当該ベクトルに対して所定の後処理を行った結果を出力する。
【0044】
図6は、本実施の形態に係る後処理部11の動作の一例を示す図である。なお、図中の一方向性の矢印はデータ間の関連を単に示したもので、データ間の双方向的な関連を排除するものではない。
図6の例では、後処理部11は、クエリ格納部13から以下のクエリを取り出す。
<link_prediction, {pred:”E1 is a big city”, “E1”: Kyoto}>
クエリは指示の内容を表す記号link_predictionと、指示による処理の実行に必要な情報を含んだ連想配列とのペアで表現されている。連想配列でキーpredに対応する値”E1 is a big city.”は述語であり、連想配列でキー”E1”に対応する値Kyotoはエンティティである。クエリは、述語と、エンティティおよび対応するキー”E1”からなる連想配列{“E1”: Kyoto}とのペアであるアトム<”E1 is a big city”, {“E1”: Kyoto}>の成立度合いの確度であるスコアを評価する、という処理の内容を指示している。
【0045】
そして、
図6の例では、後処理部11は、処理の実行に関連するエンティティであるKyotoに対して、エンティティベクトル計算部15によって当該エンティティに対して計算されたエンティティ特徴ベクトルであるe
Kyotoを取り出す。
【0046】
続いて、
図6の例では、後処理部11は、クエリにより指示された処理を行う。そのために、後処理部11は、述語”E1 is a big city.”を、各単語をbag-of-wordsベクトルで置き換えベクトルの列に変換し、リカレントニューラルネットワークに入力することによって、ベクトルr
predに変換する。そして、後処理部11は、e
Kyotoとr
predとの内積値sを計算して処理の結果として出力する。
【0047】
図7は、本実施の形態に係る後処理部11の動作の別の一例を示す図である。なお、図中の一方向性の矢印はデータ間の関連を単に示したもので、データ間の双方向的な関連を排除するものではない。
図7の例では、後処理部11は、クエリ格納部13から以下のクエリを取り出す。
<classification, {entity: Tokyo, class:[city, person, country]}>
クエリは指示の内容を表す記号classificationと、指示による処理の実行に必要な情報を含んだ連想配列とのペアで表現されている。連想配列でキーentityに対応する値はエンティティであるTokyoであり、連想配列でキーclassに対応する値はエンティティのカテゴリであるcityと、personと、countryとからなる配列である。クエリは、カテゴリの配列に属するカテゴリそれぞれに対し、エンティティTokyoが、当該カテゴリに属する確率の予測値を出力する、という処理の内容を指示している。
【0048】
そして、
図7の例では、後処理部11は、エンティティTokyoに対して、当該エンティティについてエンティティベクトル計算部15によって計算されたエンティティ特徴ベクトルであるe
Tokyoを取り出す。
【0049】
続いて、
図7の例では、後処理部11は、クエリにより指示された処理を行う。そのために、後処理部11は、カテゴリの配列に属するカテゴリそれぞれに対して、パラメータ格納部16から対応するベクトルc
cityと、c
personと、c
countryと、を取り出し、カテゴリに対応するベクトルそれぞれに対し、e
Tokyoとの内積値であるs
cityと、s
personと、s
countryと、を計算する。さらに、後処理部11は、計算された3つの内積値に対してsoftmax関数を適用し、合計が1となるような3つの値P
cityと、P
personと、P
countryと、を計算し、Tokyoがカテゴリcity、カテゴリperson、カテゴリcountryにそれぞれ属する確率の予測値として出力する。
【0050】
[装置動作]
次に、実施の形態1における処理装置100の動作について
図8を用いて説明する。
図8は、実施の形態1に係る処理装置の動作を例示したフロー図である。以下の説明においては、適宜
図1~7を参酌する。また、本実施の形態1では、処理装置100を動作させることによって、処理方法が実施される。よって、本実施の形態1における処理方法の説明は、以下の処理装置100の動作説明に代える。
【0051】
図8に示すように、最初に、処理装置において、アトム集合格納部12に格納されたアトム集合が取り出される(ステップA1)。
【0052】
次に、グラフ構造抽出部14は、ステップA1で取り出したアトム集合から、アトム集合に含まれるアトムの、連想配列における引数キーとエンティティの対応関係の情報を反映したグラフ構造を構築し、出力する(ステップA2)。すなわち、アトムの集合を入力として、連想配列における各キーとエンティティとの対応関係の情報を含んだグラフ構造を構築する。
【0053】
次に、エンティティベクトル計算部15は、ステップA2で構築されたグラフ構造を入力として、グラフ構造に対応するノードが含まれるエンティティそれぞれに対し、エンティティ特徴ベクトルを計算する(ステップA3)。なお、ステップA3は、その処理の一部分として、グラフ構造に含まれるエンティティと、アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算してもよい。そして、エンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算してもよい。このようにして、グラフ構造を受け付け、エンティティごとのエンティティ特徴ベクトルを計算してもよい。このように、本実施形態の処理方法では、述語と、述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、エンティティそれぞれに対し、連想配列におけるキーとエンティティとの対応関係を反映したエンティティ特徴ベクトルを計算する。
【0054】
次に、クエリ格納部13に格納されたクエリが取り出される(ステップA4)。
【0055】
次に、後処理部11は、ステップA4で取り出したクエリにより指示される処理内容を特定し、ステップA3で計算されたエンティティ特徴ベクトルを用いて、特定した処理内容を実行する(ステップA5)。このように、本実施形態の処理方法では、処理の内容を指示するクエリを受け付け、エンティティ特徴ベクトルを用いてクエリによって指示された処理を行う。
【0056】
更に、後処理部11は、ステップA5で実行された処理の結果を出力する(ステップA6)。
【0057】
[実施の形態1における効果]
まず、本実施の形態1では、アトム集合から、当該アトム集合に含まれるアトムの、連想配列における引数キーとエンティティの対応関係に関する情報を反映したグラフ構造が構築される。そして、グラフ構造を踏まえて、アトム集合にアトムの引数として現れるエンティティそれぞれに対してエンティティ特徴ベクトルが計算される。その後、エンティティ特徴ベクトルを用いて、クエリにより指示される処理が実行される。このため、本実施の形態1によれば、アトム集合のアトムの、引数に含まれるエンティティがそれぞれ異なる役割を持つような場合でも、当該役割を連想配列のキーとして区別する。これにより、アトムにおけるエンティティの異なる役割を反映した個々のエンティティに特有な処理を計算機に行わせることができる。
【0058】
さらに、本実施の形態1では、エンティティ特徴ベクトルを計算するためにパラメータの更新を行わないから、異なるアトム集合を入力された場合にも、それぞれのアトム集合に対して同じパラメータを用いて、一貫したエンティティ特徴ベクトルを計算することができる。よって、異なるエンティティを含むアトム集合に対しても、一貫した処理を行うことができる。
【0059】
これに対して、非特許文献1に開示された技術では、アトム集合のアトムの、引数に含まれるエンティティがそれぞれ異なる役割を持つ場合に、当該役割を区別した処理を計算機に行わせることができない。例えば、
図4に例示されたアトム集合を入力されたとき、非特許文献1に開示された技術では、後処理に用いるベクトルを計算するために、アトムA3の引数として現れる3つのエンティティJapan, Kyoto, 794の役割を互いに区別しない。エンティティKyotoおよび794は入力されたアトム集合において、アトムA3のみに現れているから、アトムA3における互いの役割を区別されない場合、アトム集合においてエンティティKyotoと794とが持つ特徴を互いに区別することはできない。したがって、エンティティKyotoと794とに対して異なるベクトルを計算して後処理に用いることができない。よって、例えば後処理においてエンティティが属するカテゴリを出力させたい場合に、Kyotoと794とに対して、地名、年号のような異なるカテゴリを適切に出力することができない。
【0060】
一方、本実施の形態1によれば、例えば、
図4に例示されているように、エンティティKyotoと794とに接続するエッジに対し、それぞれ(isCapitalSince, city)、(isCapitalSince, year)のように、異なるラベルが付与されているようなグラフ構造を抽出することができる。そして、例えば入力ベクトル計算部17において、これらのエッジに対して異なるエッジ入力ベクトルを計算することができる。これらのグラフ構造と入力ベクトルの組合せにおいて、エンティティKyotoと794とは、接続するエッジに対応するエッジ入力ベクトルによって互いに区別することが可能である。したがって、例えば、これらのグラフ構造と入力ベクトルとをグラフニューラルネットワーク計算部18に入力することにより、エンティティKyotoと794とに対しそれぞれ異なるグラフニューラルネットワーク出力ベクトルを計算し、エンティティ特徴ベクトルとして用いることができる。よって、例えば、後処理においてエンティティKyotoと794とが属するカテゴリを分類する際に、それぞれのエンティティごとに異なるベクトルを用いた処理が可能である。よって、それぞれのエンティティに対し、例えば、地名、年号のような異なるカテゴリを適切に出力することができる。
【0061】
このように、本実施の形態1は、入力されたアトム集合に対し、アトム集合に含まれるアトムの、引数であるエンティティの連想配列における、引数キーとエンティティの対応関係を反映した処理を、クエリによる指示によって実行させることができる。それに加えて、処理を、アトム集合に含まれるアトムの、引数として現れるエンティティに対応付けられたパラメータを用いずに実行させることができる。
【0062】
[プログラム]
本実施の形態1におけるプログラムは、コンピュータに、
図8に示すステップA1~A6を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1における処理装置100と処理方法とを実現することができる。この場合、コンピュータのプロセッサは、グラフ構造抽出部14、エンティティベクトル計算部15、入力ベクトル計算部17、グラフニューラルネットワーク計算部18、及び後処理部11として機能し、処理を行う。
【0063】
また、本実施の形態1では、アトム集合格納部12、クエリ格納部13、及びパラメータ格納部16は、コンピュータに備えられたハードディスクなどの記憶装置に、これらを構成するデータファイルを格納することによって実現されている。また、アトム集合格納部12、クエリ格納部13、及びパラメータ格納部16は、本実施の形態1におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【0064】
また、本実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、グラフ構造抽出部14、エンティティベクトル計算部15、入力ベクトル計算部17、グラフニューラルネットワーク計算部18、及び後処理部11のいずれかとして機能しても良い。
【0065】
(実施の形態2)
実施の形態2における、処理装置、処理方法、及びプログラムについて、
図9~
図10を参照しながら説明する。
【0066】
[装置構成]
最初に、
図9を用いて、本実施の形態2における処理装置の構成について説明する。
図9は、実施の形態2に係る処理装置の構成を例示したブロック図である。
【0067】
図9に示す、本実施の形態2における処理装置200も、実施の形態1における処理装置と同様に、アトム集合を入力とし、クエリにより指示された処理を行う。さらに、処理装置200は、処理を実行した後、処理の結果を評価し、処理結果と、望ましい処理結果であるクエリ目標との類似度に基づいて、処理を実行するためのパラメータを更新する。
【0068】
図9に示すように、処理装置200は、エンティティ前処理部20と、後処理部21と、評価部22と、パラメータ更新部23と、を備えている。つまり、本実施の形態2における処理装置200は、実施の形態1における処理装置100の構成を一部に備えている。エンティティ前処理部20、後処理部21、評価部22及びパラメータ更新部23は、それぞれ、エンティティ前処理手段、後処理手段、評価手段及びパラメータ更新手段としての機能を有している。
【0069】
更に、
図9に示すように、本実施の形態2においても、処理装置200は、アトム集合格納部24と、クエリ格納部25と、パラメータ格納部29とを備えている。アトム集合格納部24、クエリ格納部25及びパラメータ格納部29は、それぞれ、アトム集合格納手段、クエリ格納手段及びパラメータ格納手段としての機能を有している。また、本実施の形態2においても、エンティティ前処理部20は、内部にグラフ構造抽出部27と、エンティティベクトル計算部28とを備えている。グラフ構造抽出部27及びエンティティベクトル計算部28は、それぞれ、グラフ構造抽出手段及びエンティティベクトル計算手段としての機能を有している。パラメータ格納部29は、実施の形態1と同様に、エンティティベクトル計算部28が用いるパラメータと、後処理部21が用いるパラメータとを格納している。
【0070】
更に、
図9に示すように、本実施の形態2では、処理装置200は、クエリ目標格納部26を備えている。クエリ目標格納部26は、クエリ目標格納手段としての機能を有している。
【0071】
グラフ構造抽出部27は、実施の形態1と同様に、アトム集合格納部24に格納されているアトム集合からグラフ構造を抽出する。
【0072】
エンティティベクトル計算部28は、実施の形態1と同様に、グラフ構造に含まれるエンティティそれぞれに対し、エンティティ特徴ベクトルを計算する。
【0073】
後処理部21は、実施の形態1と同様に、クエリ格納部25からクエリを読み出し、クエリにより指示される処理を、エンティティ特徴ベクトルを用いて実行し、処理結果を出力する。
【0074】
評価部22は、本実施の形態では、クエリ目標格納部26から、クエリに対応するクエリ目標を取り出す。クエリ目標は、対応するクエリにより指示される処理の結果として望ましい処理結果を表す。
【0075】
続いて、評価部22は、本実施の形態では、後処理部21から出力された処理結果と、クエリ目標格納部26から取り出したクエリ目標とを比較し、処理結果と、クエリ目標との類似度を出力する。類似度を計算するためには、例えば、処理結果とクエリ目標との距離がどれほど小さいかといった指標を類似度として用いればよい。例えば、距離が小さいほど、類似度が大きくなるようにする。このように、評価部22は、後処理部21が出力した処理結果と、望ましい処理結果であるクエリ目標とを比較し、後処理部21が出力した処理結果とクエリ目標との類似度を計算する。
【0076】
パラメータ更新部23は、後処理部21が出力した処理結果とクエリ目標との類似度に基づいて処理装置200で用いられるパラメータを更新する。例えば、パラメータ更新部23は、評価部22から出力された類似度が高くなるように、パラメータ格納部29に格納されているパラメータを、勾配法を用いて更新する。
【0077】
[装置動作]
次に、実施の形態2における処理装置200の動作について
図10を用いて説明する。
図10は、実施の形態2に係る処理装置の動作を示すフロー図である。以下の説明においては、適宜
図9を参酌する。また、本実施の形態2では、処理装置200を動作させることによって、処理方法が実施される。よって、本実施の形態2における処理方法の説明は、以下の処理装置200の動作説明に代える。
【0078】
図10に示すように、最初に、処理装置200において、アトム集合格納部に格納されたアトム集合が取り出される(ステップB1)。
【0079】
次に、グラフ構造抽出部27は、ステップB1で取り出したアトム集合から、アトム集合に含まれるアトムの、連想配列における引数キーとエンティティの対応関係の情報を反映したグラフ構造を構築し、出力する(ステップB2)。
【0080】
次に、エンティティベクトル計算部28は、ステップB2で構築されたグラフ構造を入力として、グラフ構造に対応するノードが含まれるエンティティそれぞれに対し、エンティティ特徴ベクトルを計算する(ステップB3)。
【0081】
次に、クエリ格納部25に格納されたクエリが取り出される(ステップB4)。
【0082】
次に、後処理部21は、ステップB4で取り出したクエリにより指示される処理内容を特定し、ステップB3で計算されたエンティティ特徴ベクトルを用いて、特定した処理内容を実行する(ステップB5)。
【0083】
更に、後処理部21は、ステップB5で実行された処理の結果を出力する(ステップB6)。
【0084】
次に、処理装置200において、クエリ目標格納部26に格納されたクエリ目標が取り出される(ステップB7)。
【0085】
次に、ステップB6で出力された処理結果と、ステップB7で取り出されたクエリ目標と、処理結果の類似度を計算する(ステップB8)。すなわち、ステップB6までの処理結果と、望ましい処理結果であるクエリ目標とを比較し、ステップB6までの処理結果とクエリ目標との類似度を計算する。
【0086】
次に、ステップB8で計算された類似度に基づいて、パラメータ格納部に格納されたパラメータが更新される(ステップB9)。具体的には、ステップB6までの処理結果とクエリ目標との類似度が大きくなるようステップB6までの処理で用いられるパラメータを更新する。
【0087】
[実施の形態2における効果]
実施の形態2においても、実施の形態1と同様に、アトム集合格納部24から取り出したアトム集合を用いて、クエリ格納部25から取り出されたクエリにより指示された処理が実行される。よって、本実施の形態2では、実施の形態1における効果と同様の効果が示される。
【0088】
また、本実施の形態2では、後処理部21における処理の結果と、クエリ目標格納部26から取り出されたクエリ目標とから、処理結果と、望ましい処理結果であるクエリ目標との類似度が計算される。そして、類似度に基づいてパラメータ格納部29に格納されたパラメータが更新される。このため、エンティティベクトル計算部28、および後処理部21において用いるパラメータを、人手で事前に設定ないし調整することなく、クエリ目標として与えた望ましい処理結果に近い結果を出力することができる。
【0089】
さらに、処理の結果が、クエリ目標として与える望ましい結果に近くなるようにパラメータを学習することができる。アトム集合と、そのアトム集合に含まれるアトムの引数として現れる1個または複数のエンティティに応じた予想または処理が必要な種々の分野、例えば、知識ベース補完(knowledge base completion)、または仮説推論において有用とすることができる。
【0090】
[プログラム]
本実施の形態2におけるプログラムは、コンピュータに、
図10に示すステップB1~B9を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2における処理装置200と処理方法とを実現することができる。この場合、コンピュータのプロセッサは、グラフ構造抽出部27、エンティティベクトル計算部28、後処理部21、評価部22、及びパラメータ更新部23として機能し、処理を行う。
【0091】
また、本実施の形態2では、アトム集合格納部24、クエリ格納部25、クエリ目標格納部26、及びパラメータ格納部29は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されている。また、アトム集合格納部24と、クエリ格納部25と、クエリ目標格納部26と、パラメータ格納部29とは、本実施の形態2におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【0092】
また、本実施の形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば各コンピュータが、それぞれ、グラフ構造抽出部27、エンティティベクトル計算部28、後処理部21、評価部22、及びパラメータ更新部23として機能しても良い。
【0093】
(物理構成)
ここで、実施の形態1及び2におけるプログラムを実行することによって、処理装置を実現するコンピュータの物理構成について
図11を用いて説明する。
図11は、実施の形態1及び2に係る処理装置を実現するコンピュータの一例を示すブロック図である。
【0094】
図11に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。
【0095】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0096】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0097】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0098】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0099】
なお、本実施の形態における処理装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、処理装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0100】
以上、実施の形態1及び2を参照して本願発明を説明したが、本願発明は、上記実施の形態1及び2に限られたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることが可能である。例えば、実施形態1及び2の各構成を組み合わせた実施形態も、技術的思想の範囲に含まれる。
【0101】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0102】
(付記1)
述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算するエンティティ前処理手段と、
処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行う後処理手段と、
を備える処理装置。
(付記2)
前記エンティティ前処理手段は、
前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの前記対応関係の情報を含んだグラフ構造を構築するグラフ構造抽出手段と、
前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算するエンティティベクトル計算手段と、
を備える、
付記1に記載の処理装置。
(付記3)
前記エンティティベクトル計算手段は、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算する入力ベクトル計算手段と、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算するグラフニューラルネットワーク計算手段と、
を備える、
付記2に記載の処理装置。
(付記4)
前記後処理手段が出力した処理結果と、望ましい処理結果であるクエリ目標とを比較し、前記後処理手段が出力した処理結果と前記クエリ目標との類似度を計算する評価手段と、
前記類似度に基づいてパラメータを更新するパラメータ更新手段と、
を備える付記1~3のいずれか1項に記載の処理装置。
(付記5)
(a)述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算し、
(b)処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行う、
ことを特徴とする処理方法。
(付記6)
前記(a)は、その処理の一部分として、
(a1)前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの対応関係の情報を含んだグラフ構造を構築し、
(a2)前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算する、
ことを特徴とする付記5に記載の処理方法。
(付記7)
前記(a2)は、その処理の一部分として、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算し、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算する、
ことを特徴とする付記6に記載の処理方法。
(付記8)
前記(b)の後に、
(c)前記(b)の処理結果と、望ましい処理結果であるクエリ目標とを比較し、前記(b)の処理結果と前記クエリ目標との類似度を計算し、
(d)前記類似度に基づいて前記 (b)の処理で用いられるパラメータを更新する、
ことを特徴とする付記5~7のいずれか1項に記載の処理方法。
(付記9)
(a)述語と、前記述語の引数であるエンティティの連想配列と、のペアであるアトムの集合を入力として、前記エンティティそれぞれに対し、前記連想配列におけるキーと前記エンティティとの対応関係を反映したエンティティ特徴ベクトルを計算させ、
(b)処理の内容を指示するクエリを受け付け、前記エンティティ特徴ベクトルを用いて前記クエリによって指示された処理を行わせる、
ことをコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
(付記10)
前記(a)において、その処理の一部分として、
(a1)前記アトムの前記集合を入力として、前記連想配列における各キーと前記エンティティとの対応関係の情報を含んだグラフ構造を構築させ、
(a2)前記グラフ構造を受け付け、前記エンティティごとの前記エンティティ特徴ベクトルを計算させる、
ことをコンピュータに実行させる付記9に記載のプログラムが格納された非一時的なコンピュータ可読媒体。
(付記11)
前記(a2)において、その処理の一部分として、
前記グラフ構造に含まれる前記エンティティと、前記アトムと、エッジとに対してそれぞれエンティティ入力ベクトルと、アトム入力ベクトルと、エッジ入力ベクトルとを計算させ、
前記エンティティ入力ベクトルと、前記アトム入力ベクトルと、前記エッジ入力ベクトルとを入力とし、グラフニューラルネットワーク出力ベクトルを計算させる、
ことをコンピュータに実行させる付記10に記載のプログラムが格納された非一時的なコンピュータ可読媒体。
(付記12)
前記(b)の後に、
(c)前記(b)の処理結果と、望ましい処理結果であるクエリ目標とを比較させ、前記(b)の処理結果と前記クエリ目標との類似度を計算させ、
(d)前記類似度に基づいて前記(b)の処理で用いられるパラメータを更新させる、
ことをコンピュータに実行させる付記9~11のいずれか1項に記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【符号の説明】
【0103】
10 エンティティ前処理部
11 後処理部
12 アトム集合格納部
13 クエリ格納部
14 グラフ構造抽出部
15 エンティティベクトル計算部
16 パラメータ格納部
17 入力ベクトル計算部
18 グラフニューラルネットワーク計算部
20 エンティティ前処理部
21 後処理部
22 評価部
23 パラメータ更新部
24 アトム集合格納部
25 クエリ格納部
26 クエリ目標格納部
27 グラフ構造抽出部
28 エンティティベクトル計算部
29 パラメータ格納部
100 処理装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
200 処理装置