(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】ベクトル推定プログラム、ベクトル推定装置、及び、ベクトル推定方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240827BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2020216980
(22)【出願日】2020-12-25
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【氏名又は名称】横田 功
(72)【発明者】
【氏名】吉川 和
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2019/160097(WO,A1)
【文献】中国特許出願公開第112131403(CN,A)
【文献】中国特許出願公開第110457491(CN,A)
【文献】中国特許出願公開第111949764(CN,A)
【文献】濱口拓男他,Graph Neural Networkを用いた未知エンティティの表現獲得について,情報処理学会 研究報告 音声言語情報処理(SLP) 2017-SLP-116 [online] ,日本,情報処理学会,2017年05月08日,Vol.2017-SLP-116,No.20,p.1-p.8
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、
処理をコンピュータに実行させる、ベクトル推定プログラム。
【請求項2】
前記第2モデルを生成する処理は、前記第2エンティティ情報に含まれる前記第1エンティティ群の情報を入力としたときに前記第2モデルから出力されるベクトルと、前記第1ベクトルとの間の距離が小さくなるように、前記第2モデルの機械学習を実行する、処理を含む、
請求項1に記載のベクトル推定プログラム。
【請求項3】
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報は、前記第1エンティティ群の特徴量であり、
前記第2エンティティ情報に含まれる前記第2エンティティの情報は、前記第2エンティティの特徴量であり、
前記第2モデルを生成する処理は、前記第1エンティティ群と、前記第2エンティティとに共通する特徴量に基づき、前記第2ベクトルを推定するための前記第2モデルを生成する、処理を含む、
請求項1又は請求項2に記載のベクトル推定プログラム。
【請求項4】
前記第2ベクトルを推定する処理は、前記第2エンティティ情報に含まれる前記第2エンティティの情報を前記第2モデルに入力し、前記第2モデルの出力結果を前記第2ベクトルとして取得する、処理を含む、
請求項1~請求項3のいずれか1項に記載のベクトル推定プログラム。
【請求項5】
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、制御部を備える、
ベクトル推定装置。
【請求項6】
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、
処理をコンピュータが実行する、ベクトル推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトル推定プログラム、ベクトル推定装置、及び、ベクトル推定方法に関する。
【背景技術】
【0002】
知識に基づく判断を行なうAI(Artificial Intelligence)タスクが知られている。当該AIタスクの活用例としては、例えば、未知の事実の尤もらしさを推定する知識補完及びリンク推定、対象となる事物の属するカテゴリを推定するエンティティ分類、並びに、知識検索に基づく質問応答等が挙げられる。
【0003】
知識は、例えば、知識グラフ(KG;Knowledge Graph(ナレッジグラフ))への知識の埋め込みにより表現されることがある。KGは、様々な情報源から情報を収集した知識ベース(KB;Knowledge Base)の一例である。
【0004】
KGは、複数の知識を表す複数のエンティティ(「エンティティ群」と称されてもよい)、例えば複数のノードと、複数のノードの間の関係、例えばエッジとを含むグラフ表現、換言すればグラフ構造データであってよい。
【0005】
知識を表現するためのKG埋め込みは、KG上のエンティティを低次元のベクトルとして表現したものであり、「KG埋め込みベクトル」、「埋め込みベクトル」又は単に「ベクトル」と称されてもよい。KG埋め込みは、KGの構造情報に基づき機械学習で獲得され、各種推定に利用されてよい。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
KGは、新しい知識に基づき更新される。しかし、KGの更新ごとに、KG埋め込みベクトルを得るためのKG埋め込みモデルの機械学習を行なうことは非現実的である。また、KG埋め込みモデルは、グラフ全体の構造を考慮して機械学習が行なわれることが多く、グラフの部分的な再機械学習を行なうことが困難となる場合がある。
【0008】
1つの側面では、本発明は、第1エンティティ群の関係を示すグラフ構造データに基づきモデルを用いて生成されるベクトルから、第2エンティティに対応するベクトルを推定可能とすることを目的の1つとする。
【課題を解決するための手段】
【0009】
1つの側面では、ベクトル推定プログラムは、コンピュータに、以下の処理を実行させてよい。前記処理は、第1ベクトルと、第2エンティティ情報とを取得する処理を含んでよい。前記第1ベクトルは、第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成されてよい。前記第2エンティティ情報は、前記第1エンティティ情報の更新版であってよく、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する情報であってよい。また、前記処理は、前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成する処理を含んでよい。さらに、前記処理は、生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する処理を含んでよい。
【発明の効果】
【0010】
1つの側面では、本発明は、第1エンティティ群の関係を示すグラフ構造データに基づきモデルを用いて生成されるベクトルから、第2エンティティに対応するベクトルを推定可能とすることができる。
【図面の簡単な説明】
【0011】
【
図1】第1の手法の一例を説明するための図である。
【
図2】第1及び第2の手法の前提(b)の一例を説明するための図である。
【
図3】機械学習時に存在しないエンティティに対するベクトルの獲得が困難になる場合の一例を示す図である。
【
図5】一実施形態に係るサーバによる処理の一例を説明するための図である。
【
図6】一実施形態に係るサーバの機能構成例を示すブロック図である。
【
図7】ベクトル生成モデルのパラメータの一例を示す図である。
【
図8】一実施形態に係るサーバの機械学習処理の動作例を説明するフローチャートである。
【
図9】一実施形態に係るサーバのベクトル推定処理の動作例を説明するフローチャートである。
【
図10】コンピュータのハードウェア(HW)構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0013】
〔1〕一実施形態
機械学習時に存在しないエンティティに対するベクトル獲得手法の一例として、周辺ノードの統合を行なう第1の手法が挙げられる。
【0014】
図1は、第1の手法の一例を説明するための図である。
図1に示すように、コンピュータは、KG埋め込みモデルを機械学習する際に、既知の周辺ノード100a~100dのKG埋め込みベクトルを統合して未知の目的ノード100eのベクトルを算出する機構を含むモデルを機械学習する。
【0015】
第1の手法によれば、コンピュータは、目的ノード100eのベクトルが当該モデルの機械学習時に存在しなくても、周辺ノード100a~100dのベクトルを統合することで目的ノード100eのベクトルを算出することができる。第1の手法は、例えば、“Knowledge Transfer for Out-of-Knowledge-Base Entities: A Graph Neural Network Approach, Takuo Hamaguchi et al., IJCAI 2017”、及び、“Logic Attention Based Neighborhood Aggregation for Inductive Knowledge Graph Embedding, Peifeng Wang et al., AAAI 2019”の一方又は双方に記載の手法により実現されてもよい。
【0016】
また、機械学習時に存在しないエンティティに対するベクトル獲得手法の他の例として、モデル再機械学習を行なう第2の手法が挙げられる。
【0017】
第2の手法では、コンピュータは、KG埋め込みモデルをグラフの更新に合わせて再機械学習する。第2の手法は、例えば、“Enriching Translation-Based Knowledge Graph Embeddings Through Continual Learning, Hyun-Je Song et al., IEEE Access 2018, October 2018”に記載の手法により実現されてもよい。
【0018】
上述した第1及び第2の手法では、以下の(a)及び(b)を前提としている。
(a)コンピュータは、KGの更新に対応したモデルによる機械学習を行なう。換言すれば、コンピュータは、元の埋め込み機械学習の際にノードの統合を考慮したモデルを利用する。
(b)コンピュータは、
図2に例示するように、新規エンティティeのベクトルveを算出する際に、機械学習時の埋め込みモデル200にアクセスできる。
【0019】
しかし、上述した第1及び第2の手法では、以下の(A)又は(B)のケースにおいて、機械学習時に存在しないエンティティに対するベクトルの獲得が困難になる場合がある。
【0020】
(A)上記(a)において、機械学習済みのKG埋め込みモデルがKGの更新を考慮していない場合。
モデルとしては、例えば、TransE等の静的なグラフの埋め込みが用いられることが多い。従って、元のモデルが動的なグラフ更新に対応していない場合、当該元の埋め込みモデルが高品質であっても、未知エンティティへの拡張が困難となる場合がある。
【0021】
(B)
図3に例示するように、新規エンティティeのベクトルveを算出する際に、機械学習時の埋め込みモデル200にアクセスできない場合。
上記(B)の例としては、機械学習済みモデル200ではなく、機械学習済みベクトル300のみが配布されるケースが挙げられる。
【0022】
そこで、一実施形態に係るコンピュータは、既存グラフに対する埋め込みベクトル情報に基づいて、新規の埋め込みベクトルを推定するモデルを機械学習し、当該モデルを利用して新規の埋め込みベクトルを推定する。
【0023】
図4は、KG400の一例を示す図である。
図4に示すように、埋め込み機械学習済みの既知の知識410を表現するKG400において、ノード411(A氏)の住所がノード412(東京都)、ノード411の所属がノード413(A社)、ノード413の所在地がノード414(汐留)を示すものとする。また、KG400において、住所を示すノード415(北海道)及び所属を示すノード416(B社)が存在し、ノード416の所在地がノード417(川崎)を示すものとする。
【0024】
例えば、一実施形態では、機械学習時に存在しなかったエンティティ(例えば未知の知識420であるノード421(B氏))に対する埋め込みベクトルを、KG400全体の再機械学習を抑止しつつ算出する手法を説明する。これにより、未知の知識420について埋め込みベクトルを推定することができ、推定した埋め込みベクトルを、AIタスクにおける種々の推論、例えば、知識補完及びリンク推定、エンティティ分類及び質疑応答等に利用することができる。
【0025】
〔1-1〕一実施形態に係るサーバの説明
図5は、一実施形態に係るサーバ1による処理の一例を説明するための図である。サーバ1は、情報処理装置又はコンピュータの一例である。
図5に例示するように、一実施形態に係るサーバ1は、以下の(1)~(3)の処理を実行してよい。
【0026】
(1)サーバ1は、第1ベクトル11と第2エンティティ情報12とを取得してよい。
【0027】
第1ベクトル11は、第1エンティティ群11aに関する第1エンティティ情報11bに基づいて取得される第1エンティティ群の関係を示すグラフ構造データに基づき第1モデル11cを用いて生成されてよい。例えば、第1ベクトル11は、サーバ1が生成してもよいし、サーバ1の外部、例えばサーバ1とは異なるコンピュータから提供されてもよい。
【0028】
第2エンティティ情報12は、第1エンティティ情報11bの更新版のエンティティ情報であって、第1エンティティ群11aと第1エンティティ群11aには含まれない第2エンティティ12aとに関するエンティティ情報であってよい。
【0029】
(2)サーバ1は、第2エンティティ情報12に含まれる第1エンティティ群の情報と、第1ベクトル11と、に基づいて、第2エンティティ情報12からベクトルデータを得るための第2モデル13を生成する第2モデル生成処理P1を実行してよい。
【0030】
(3)サーバ1は、生成した第2モデル13を用いて、第2エンティティに対応する第2ベクトル14を推定する第2ベクトル推定処理P2を実行してよい。
【0031】
これにより、サーバ1は、第1エンティティ群11aの関係を示すグラフ構造データに基づき第1モデル11cを用いて生成される第1ベクトル11から、第2エンティティ12aに対応する第2ベクトル14を推定可能とすることができる。
【0032】
〔1-2〕機能構成例
図6は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。
図6に示すように、サーバ1は、例示的に、メモリ部2、取得部3、機械学習部4、及び、ベクトル推定部5を備えてよい。取得部3、機械学習部4及びベクトル推定部5は、制御部の一例である。
【0033】
メモリ部2は、記憶領域の一例であり、サーバ1が利用する種々のデータを記憶する。
図6に示すように、メモリ部2は、例示的に、既存エンティティ埋め込みベクトル21、既存エンティティ入力情報22、ベクトル生成モデル23、新規エンティティ入力情報24、及び、新規エンティティ埋め込みベクトル25を記憶可能であってよい。
【0034】
取得部3は、既存エンティティ埋め込みベクトル21、既存エンティティ入力情報22、及び、新規エンティティ入力情報24を取得し、メモリ部2に格納する。例えば、取得部3は、既存エンティティ群に関するエンティティ情報に基づいて取得されるエンティティ群の関係を示すグラフ構造データに基づき機械学習済みのKG埋め込みモデルを用いて既存エンティティ埋め込みベクトル21を取得してよい。既存エンティティ群は、
図5に示す第1エンティティ群の一例である。
【0035】
既存エンティティ群に関するエンティティ情報は、例えば既存の知識であってよい。グラフ構造データは、例えば、既存の知識をKGによりグラフ表現したデータであってよい。既存エンティティ埋め込みベクトル21は、例えば既存のKGに対する埋め込みベクトル情報であってよく、
図5に示す第1ベクトル11の一例である。また、機械学習済みのKG埋め込みモデルは、
図5に示す第1モデル11cの一例である。
【0036】
なお、取得部3は、例えば、既存エンティティ埋め込みベクトル21の生成に代えて、既存エンティティ埋め込みベクトル21を、図示しないネットワークを介してサーバ1の外部(例えばコンピュータ)から受信し、メモリ部2に格納してもよい。
【0037】
既存エンティティ入力情報22は、例えば、既存のKG上のエンティティに対する特徴量であってよく、新規エンティティ入力情報24は、例えば、新規(未知)エンティティ、換言すれば推定対象のエンティティに対する特徴量であってよい。推定対象の新規エンティティは、
図5に示す第2エンティティ12aの一例である。また、既存エンティティ入力情報22は、
図5に示す第1エンティティ情報11bの一例であり、既存エンティティ入力情報22及び新規エンティティ入力情報24は、
図5に示す第2エンティティ情報12の一例である。
【0038】
特徴量としては、例えば、ターゲットノード周辺のグラフ構造、一例として、既存の又は推定対象のエンティティのノード(エンティティノード)にリンク付けられたエンティティ(リンク先エンティティ)の情報を含んでもよい。また、特徴量としては、各エンティティノードに付加されるラベルのテキスト、ウェブページのタイトル及び/又はカテゴリ情報等が含まれてもよい。新規エンティティ入力情報24としての特徴量は、機械学習済みのKG埋め込みモデルで利用される特徴量とは異なってもよい。
【0039】
機械学習部4は、機械学習フェーズにおいて、既存エンティティ埋め込みベクトル21と既存エンティティ入力情報22とに基づいて、新規エンティティ埋め込みベクトル25を推定するためのベクトル生成モデル23を機械学習する機械学習処理を実行する。機械学習処理は、
図5に示す第2モデル生成処理P1の一例である。ベクトル生成モデル23は、
図5に示す第2モデル13の一例であり、新規エンティティ埋め込みベクトル25は、
図5に示す第2ベクトル14の一例である。
【0040】
例えば、機械学習部4は、既存KG上のエンティティについて、既存エンティティ入力情報22に含まれる特徴量から既存エンティティ埋め込みベクトル21と近いベクトルを生成するようなベクトル生成モデル23を機械学習してよい。
【0041】
以下の説明では、既存エンティティ入力情報22は、ウェブページのページタイトル及びリンク先エンティティを含む特徴量である場合を想定する。
【0042】
図7は、ベクトル生成モデル23のパラメータの一例を示す図である。
図7に示すように、ベクトル生成モデル23のパラメータは、例示的に、エンコーダ(encoder)23a、複数(
図7の例では3つ)のトランスフォーム(transform)23b、プーリング(pooling)23c及びデコーダ(decoder)23dの処理層(レイヤ)を含んでよい。
【0043】
エンコーダ23aは、既存エンティティ入力情報22の特徴量のうちのページタイトル(「タイトル」と表記)のテキストを入力とし、当該テキストをエンコードし、結果をデコーダ23dに出力する。
【0044】
複数のトランスフォーム23bは、リンク先エンティティ(「e1」、「e2」、「e3」と表記)ごとに備えられ、複数のリンク先エンティティのそれぞれの情報の変換を行なう。
【0045】
プーリング23cは、複数のトランスフォーム23bからの出力に対する畳み込み処理を行なう。
【0046】
デコーダ23dは、エンコーダ23a及びプーリング23cのそれぞれからの出力に基づき、推定ベクトルveを出力する。推定ベクトルveは、入力される既存エンティティの埋め込みベクトルの推定値の一例である。
【0047】
ベクトル生成モデル23の各処理層の構成は、
図7に例示する構成に限定されるものではなく、既存エンティティ入力情報22の特徴量となるパラメータに応じて変更されてもよい。
【0048】
機械学習部4は、例えば、既存エンティティ埋め込みベクトル21と、ベクトル生成モデル23から出力される推定ベクトルveとの間の距離Lが小さくなるように、ベクトル生成モデル23の機械学習、例えばパラメータの更新を行なってよい。距離Lは、例えば、下記式(1)に基づき算出されてよい。
【数1】
【0049】
ここで、上記式(1)において、nは、学習データに含まれるエンティティの総数であり、eは、エンティティである。veは、ベクトル生成モデル23から出力される推定ベクトルveであり、ve*は、既存エンティティ埋め込みベクトル21である。
【0050】
一例として、機械学習部4は、機械学習指示の入力に応じて、既存エンティティ入力情報22をニューラルネットワークに入力して出力を得る。そして、機械学習部4は、上記式(1)に従い、ニューラルネットワークの出力値と、既存エンティティ埋め込みベクトル21との誤差が小さくなるようにパラメータを更新する。
【0051】
機械学習部4は、所定回数の機械学習を実行した場合、又は、誤差が所定値よりも小さくなった場合に機械学習を終了し、各種パラメータ等をベクトル生成モデル23としてメモリ部2に記憶する。なお、機械学習方法は、誤差逆伝播法等の様々な手法を採用することができる。
【0052】
ベクトル推定部5は、機械学習部4によるベクトル生成モデル23の機械学習後に、ベクトル推定指示の入力に応じて、推定フェーズにおけるベクトル推定処理を実行する。ベクトル推定処理は、
図5に示す第2ベクトル推定処理P2の一例である。
【0053】
例えば、ベクトル推定部5は、機械学習済みのベクトル生成モデル23に推定対象のエンティティに係る新規エンティティ入力情報24を入力し、出力として新規エンティティ埋め込みベクトル25を取得し、出力してよい。
【0054】
新規エンティティ埋め込みベクトル25の出力としては、例えば、メモリ部2又は記憶装置等への格納、図示しないネットワークを介したサーバ1の外部への送信、モニタ等の出力装置への表示等が挙げられる。
【0055】
なお、ベクトル推定部5は、取得した新規エンティティ埋め込みベクトル25を、既存エンティティ埋め込みベクトル21とマージして管理してもよい。
【0056】
以上のように、一実施形態に係るサーバ1によれば、既存エンティティ群の関係を示すグラフ構造データに基づく機械学習済みのKG埋め込みモデルの利用が制限された場合であっても、新規エンティティ埋め込みベクトル25を推定することができる。
【0057】
また、サーバ1は、ベクトル生成モデル23の訓練において、既存エンティティ群の関係を示すグラフ構造データに限られず、既存エンティティ入力情報22として、種々の特徴量を利用することができる。
【0058】
さらに、サーバ1は、新規エンティティ埋め込みベクトル25を取得するために、更新後のKG全体を一から機械学習せずに済む。換言すれば、サーバ1は、機械学習済みのKG埋め込みモデルの利用(再機械学習)に代えて既存エンティティ埋め込みベクトル21を利用できるため、再機械学習を行なう場合と比較して、ベクトル生成モデル23の機械学習が早期に収束することが期待できる。
【0059】
以上のように、サーバ1は、既存のKG上のエンティティ(ノード)と、推定対象のエンティティとに共通する特徴量に基づき、新規エンティティ埋め込みベクトル25を直接推定するようなベクトル生成モデル23の訓練を行なう。これにより、新規エンティティ入力情報24の入力としたベクトル生成モデル23の出力結果を、推定対象のエンティティに係る埋め込みベクトルの代わりとして利用することが可能となる。従って、新規エンティティに係る埋め込みベクトルを効率的に算出(取得)することができる。
【0060】
〔1-3〕動作例
以下、上述したサーバ1の動作例を、フローチャートを参照しながら説明する。
【0061】
〔1-3-1〕機械学習処理
図8は、一実施形態に係るサーバ1の機械学習処理の動作例を説明するフローチャートである。
【0062】
図8に例示するように、サーバ1の取得部3は、既存エンティティ埋め込みベクトル21及び既存エンティティ入力情報22を取得し(ステップS1)、メモリ部2に格納する。例えば、取得部3は、既存エンティティ埋め込みベクトル21を既存エンティティのKG埋め込みモデルを利用して生成し、既存エンティティ埋め込みベクトル21に対応する既存エンティティ入力情報22を取得してもよい。或いは、取得部3は、オペレータ等が利用するコンピュータから図示しないネットワークを介して既存エンティティ埋め込みベクトル21及び既存エンティティ入力情報22を受信してもよい。
【0063】
機械学習部4は、例えば、取得部3又はオペレータ(コンピュータ)から機械学習指示が入力されると、メモリ部2を参照し、既存エンティティ埋め込みベクトル21に基づき既存エンティティ入力情報22を機械学習する(ステップS2)。機械学習部4は、例えば、所定回数の機械学習が実行された場合、又は、ニューラルネットワークの出力値と既存エンティティ埋め込みベクトル21との誤差が所定値よりも小さくなった場合に機械学習を終了する。そして、機械学習部4は、各種パラメータ等をベクトル生成モデル23としてメモリ部2に格納し(ステップS3)、処理が終了する。
【0064】
〔1-3-2〕ベクトル推定処理
図9は、一実施形態に係るサーバ1のベクトル推定処理の動作例を説明するフローチャートである。
【0065】
図9に例示するように、サーバ1の取得部3は、新規エンティティ入力情報24を取得し(ステップS11)、メモリ部2に格納する。例えば、取得部3は、オペレータ等が利用するコンピュータから図示しないネットワークを介して新規エンティティ入力情報24を受信してもよい。
【0066】
ベクトル推定部5は、例えば、取得部3又はオペレータ(コンピュータ)からベクトル推定指示が入力されると、メモリ部2を参照し、機械学習済みのベクトル生成モデル23に新規エンティティ入力情報24を入力する。そして、ベクトル推定部5は、ベクトル生成モデル23からの出力として新規エンティティ埋め込みベクトル25を取得する(ステップS12)。ベクトル推定部5は、新規エンティティ埋め込みベクトル25を出力し(ステップS13)、処理が終了する。
【0067】
〔1-4〕ハードウェア構成例
一実施形態に係るサーバ1は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、サーバ1の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、サーバ1の機能のうちの少なくとも一部は、クラウド環境により提供されるHW(Hardware)リソース及びNW(Network)リソースを用いて実現されてもよい。
【0068】
図10は、サーバ1の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図10に例示するHW構成を備えてよい。
【0069】
図10に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、IO(Input / Output)部10e、及び読取部10fを備えてよい。
【0070】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0071】
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0072】
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0073】
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0074】
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(ベクトル推定プログラム)を格納してよい。
【0075】
例えば、サーバ1のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、
図6に例示するサーバ1(例えば取得部3、機械学習部4及びベクトル推定部5)としての機能を実現できる。また、
図6に例示するメモリ部2は、メモリ10b及び記憶部10cの少なくとも1つが有する記憶領域により実現されてよい。さらに、
図6に例示するベクトル推定部5は、記憶装置の一例としてのメモリ10b及び記憶部10cの少なくとも1つに新規エンティティ埋め込みベクトル25を出力し格納してもよい。
【0076】
IF部10dは、ネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、サーバ1は、IF部10dを介して、図示しないコンピュータと相互に通信可能に接続されてよい。
図6に例示する取得部3の少なくとも一部の機能は、IF部10dにより実現されてよい。また、例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
【0077】
IO部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。例えば、
図6に示すベクトル推定部5は、IO部10eの出力装置に新規エンティティ埋め込みベクトル25を出力し表示させてもよい。
【0078】
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
【0079】
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0080】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、サーバ1において、IO部10e及び読取部10fの少なくとも一方は、省略されてもよい。
【0081】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0082】
例えば、
図6に示すサーバ1が備える取得部3、機械学習部4及びベクトル推定部5は、併合してもよく、それぞれ分割してもよい。
【0083】
また、
図6に示すサーバ1は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、取得部3はWebサーバ及びアプリケーションサーバ、機械学習部4及びベクトル推定部5はアプリケーションサーバ、メモリ部2はDBサーバ、等であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、サーバ1としての各処理機能を実現してもよい。
【0084】
一実施形態に係る手法は、例えば、以下のような場面において利用されてもよい。
【0085】
(利用例1)
利用例1として、公開されている機械学習済みのKG埋め込みベクトルを流用し、新規エンティティを含むデータに適用する場合が挙げられる。サーバ1は、機械学習済みのKG埋め込みベクトルに対応するモデルが公開されていなくても、新規エンティティに対応するベクトルを推定することが可能である。
【0086】
(利用例2)
利用例2として、大規模なKGにおいて、静的なKG埋め込みの機械学習を行ない運用する場合が挙げられる。この場合、KGの更新の都度、KGの再機械学習を行なうことはコスト面で困難である。サーバ1は、機械学習済みのKG埋め込みベクトルの一部を用いて、一実施形態に係る手法を適用して未知ベクトルについてのベクトル生成モデル23を訓練することで、KG全体の再機械学習のコストを削減することができる。また、既存モデルで機械学習済みのKG埋め込みベクトルについては、当該既存モデル(元のモデル)による高品質なベクトルをそのまま利用できる。
【0087】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0088】
(付記1)
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、
処理をコンピュータに実行させる、ベクトル推定プログラム。
【0089】
(付記2)
前記第2モデルを生成する処理は、前記第2エンティティ情報に含まれる前記第1エンティティ群の情報を入力としたときに前記第2モデルから出力されるベクトルと、前記第1ベクトルとの間の距離が小さくなるように、前記第2モデルの機械学習を実行する、処理を含む、
付記1に記載のベクトル推定プログラム。
【0090】
(付記3)
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報は、前記第1エンティティ群の特徴量であり、
前記第2エンティティ情報に含まれる前記第2エンティティの情報は、前記第2エンティティの特徴量であり、
前記第2モデルを生成する処理は、前記第1エンティティ群と、前記第2エンティティとに共通する特徴量に基づき、前記第2ベクトルを推定するための前記第2モデルを生成する、処理を含む、
付記1又は付記2に記載のベクトル推定プログラム。
【0091】
(付記4)
前記第2ベクトルを推定する処理は、前記第2エンティティ情報に含まれる前記第2エンティティの情報を前記第2モデルに入力し、前記第2モデルの出力結果を前記第2ベクトルとして取得する、処理を含む、
付記1~付記3のいずれか1項に記載のベクトル推定プログラム。
【0092】
(付記5)
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、制御部を備える、
ベクトル推定装置。
【0093】
(付記6)
前記制御部は、前記第2モデルを生成する処理において、前記第2エンティティ情報に含まれる前記第1エンティティ群の情報を入力としたときに前記第2モデルから出力されるベクトルと、前記第1ベクトルとの間の距離が小さくなるように、前記第2モデルの機械学習を実行する、
付記5に記載のベクトル推定装置。
【0094】
(付記7)
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報は、前記第1エンティティ群の特徴量であり、
前記第2エンティティ情報に含まれる前記第2エンティティの情報は、前記第2エンティティの特徴量であり、
前記制御部は、前記第2モデルを生成する処理において、前記第1エンティティ群と、前記第2エンティティとに共通する特徴量に基づき、前記第2ベクトルを推定するための前記第2モデルを生成する、
付記5又は付記6に記載のベクトル推定装置。
【0095】
(付記8)
前記制御部は、前記第2ベクトルを推定する処理において、前記第2エンティティ情報に含まれる前記第2エンティティの情報を前記第2モデルに入力し、前記第2モデルの出力結果を前記第2ベクトルとして取得する、
付記5~付記7のいずれか1項に記載のベクトル推定装置。
【0096】
(付記9)
第1エンティティ群に関する第1エンティティ情報に基づいて取得される前記第1エンティティ群の関係を示すグラフ構造データに基づき第1モデルを用いて生成される第1ベクトルと、前記第1エンティティ情報の更新版の第2エンティティ情報であって、前記第1エンティティ群と前記第1エンティティ群には含まれない第2エンティティとに関する前記第2エンティティ情報と、を取得し、
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報と、前記第1ベクトルと、に基づいて、前記第2エンティティ情報からベクトルデータを得るための第2モデルを生成し、
生成した前記第2モデルを用いて、前記第2エンティティに対応する第2ベクトルを推定する、
処理をコンピュータが実行する、ベクトル推定方法。
【0097】
(付記10)
前記第2モデルを生成する処理は、前記第2エンティティ情報に含まれる前記第1エンティティ群の情報を入力としたときに前記第2モデルから出力されるベクトルと、前記第1ベクトルとの間の距離が小さくなるように、前記第2モデルの機械学習を実行する、処理を含む、
付記9に記載のベクトル推定方法。
【0098】
(付記11)
前記第2エンティティ情報に含まれる前記第1エンティティ群の情報は、前記第1エンティティ群の特徴量であり、
前記第2エンティティ情報に含まれる前記第2エンティティの情報は、前記第2エンティティの特徴量であり、
前記第2モデルを生成する処理は、前記第1エンティティ群と、前記第2エンティティとに共通する特徴量に基づき、前記第2ベクトルを推定するための前記第2モデルを生成する、処理を含む、
付記9又は付記10に記載のベクトル推定方法。
【0099】
(付記12)
前記第2ベクトルを推定する処理は、前記第2エンティティ情報に含まれる前記第2エンティティの情報を前記第2モデルに入力し、前記第2モデルの出力結果を前記第2ベクトルとして取得する、処理を含む、
付記9~付記11のいずれか1項に記載のベクトル推定方法。
【符号の説明】
【0100】
1 サーバ
10 コンピュータ
2 メモリ部
21 既存エンティティ埋め込みベクトル
22 既存エンティティ入力情報
23 ベクトル生成モデル
23a エンコーダ
23b トランスフォーム
23c プーリング
23d デコーダ
24 新規エンティティ入力情報
25 新規エンティティ埋め込みベクトル
3 取得部
4 機械学習部
5 ベクトル推定部