IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7283575学習方法、学習装置および学習プログラム
<>
  • 特許-学習方法、学習装置および学習プログラム 図1
  • 特許-学習方法、学習装置および学習プログラム 図2
  • 特許-学習方法、学習装置および学習プログラム 図3
  • 特許-学習方法、学習装置および学習プログラム 図4
  • 特許-学習方法、学習装置および学習プログラム 図5
  • 特許-学習方法、学習装置および学習プログラム 図6
  • 特許-学習方法、学習装置および学習プログラム 図7
  • 特許-学習方法、学習装置および学習プログラム 図8
  • 特許-学習方法、学習装置および学習プログラム 図9
  • 特許-学習方法、学習装置および学習プログラム 図10
  • 特許-学習方法、学習装置および学習プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-22
(45)【発行日】2023-05-30
(54)【発明の名称】学習方法、学習装置および学習プログラム
(51)【国際特許分類】
   G06N 5/02 20230101AFI20230523BHJP
   G06N 20/00 20190101ALI20230523BHJP
【FI】
G06N5/02
G06N20/00
【請求項の数】 6
(21)【出願番号】P 2021560832
(86)(22)【出願日】2019-11-27
(86)【国際出願番号】 JP2019046458
(87)【国際公開番号】W WO2021106118
(87)【国際公開日】2021-06-03
【審査請求日】2022-04-19
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】岡嶋 成司
(72)【発明者】
【氏名】鵜飼 孝典
【審査官】藤原 敬利
(56)【参考文献】
【文献】BALAZEVIC, Ivana, et al.,Multi-relational Poincare Graph Embeddings,arXiv:1905.09791v3,version v3,[online], arXiv (Cornell University),2019年10月27日,Pages 1-13,[retrieved on 2020.01.31], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1905.09791v3.pdf
【文献】NICKEL, Maximilian, et al.,Poincare Embeddings for Learning Hierarchical Representations,Proceedings of the Neural Information Processing Systems (NIPS) 2017,[online],2017年12月05日,Pages 1-10,[retrieved on 2020.01.31], Retrieved from the Internet: <URL: http://papers.nips.cc/paper/7213-poinc
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
ナレッジグラフにおけるインスタンス情報およびオントロジー情報にベクトル表現を与える埋め込み処理に関する学習方法であって、
ユークリッド空間上における第1のインスタンス情報のベクトル表現を取得し、
双曲空間上における第1のオントロジー情報のベクトル表現を取得し、
前記第1のインスタンス情報の双曲空間への写像に基づいて、取得した前記第1のオントロジー情報のベクトル表現を変更した第2のオントロジー情報を生成し、
前記第2のオントロジー情報のユークリッド空間への写像に基づいて、取得した前記第1のインスタンス情報のベクトル表現を変更した第2のインスタンス情報を生成し、
前記第2のオントロジー情報と前記第2のインスタンス情報との対応関係を、リンク予測をするために学習する
処理をコンピュータが実行する学習方法。
【請求項2】
銭第2のインスタンス情報を生成する処理は、前記第1のインスタンス情報のベクトル表現を、写像後の前記第1のオントロジー情報のベクトル表現に近づけるように更新し、前記第2のインスタンス情報を生成する処理を含む、
ことを特徴とする請求項1に記載の学習方法。
【請求項3】
前記第2のオントロジー情報を生成する処理は、写像後の前記第1のインスタンス情報の原点からの距離を、前記第1のオントロジー情報の原点からの距離に揃える正規化を行ってから、前記第1のオントロジー情報のベクトル表現を、写像後の正規化を行った前記第1のインスタンス情報のベクトル表現に近づけるように更新し、前記第2のオントロジー情報を生成する処理を含む、
ことを特徴とする請求項1に記載の学習方法。
【請求項4】
前記学習する処理は、前記第2のオントロジー情報のベクトル表現から算出された前記第2のインスタンス情報のベクトル表現を用いて、予測対象のインスタンス情報のリンク予測を行い、リンク予測の結果を出力する処理を含む、
ことを特徴とする請求項1に記載の学習方法。
【請求項5】
ナレッジグラフにおけるインスタンス情報およびオントロジー情報にベクトル表現を与える埋め込み処理に関する学習装置であって、
ユークリッド空間上における第1のインスタンス情報のベクトル表現を取得し、双曲空間上における第1のオントロジー情報のベクトル表現を取得し、前記第1のインスタンス情報の双曲空間への写像に基づいて、取得した前記第1のオントロジー情報のベクトル表現を変更した第2のオントロジー情報を生成する第1の生成部と、
前記第2のオントロジー情報のユークリッド空間への写像に基づいて、取得した前記第1のインスタンス情報のベクトル表現を変更した第2のインスタンス情報を生成する第2の生成部と、
前記第2のオントロジー情報と前記第2のインスタンス情報との対応関係を、リンク予測をするために学習する学習部と、
を有することを特徴とする学習装置。
【請求項6】
ナレッジグラフにおけるインスタンス情報およびオントロジー情報にベクトル表現を与える埋め込み処理に関する学習プログラムであって、
ユークリッド空間上における第1のインスタンス情報のベクトル表現を取得し、
双曲空間上における第1のオントロジー情報のベクトル表現を取得し、
前記第1のインスタンス情報の双曲空間への写像に基づいて、取得した前記第1のオントロジー情報のベクトル表現を変更した第2のオントロジー情報を生成し、
前記第2のオントロジー情報のユークリッド空間への写像に基づいて、取得した前記第1のインスタンス情報のベクトル表現を変更した第2のインスタンス情報を生成し、
前記第2のオントロジー情報と前記第2のインスタンス情報との対応関係を、リンク予測をするために学習する
処理をコンピュータに実行させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法などに関する。
【背景技術】
【0002】
RDF(Resource Description Framework)のグラフ埋め込みによるベクトル表現の学習が開示されている(例えば、非特許文献1参照)。グラフ埋め込みとは、RDFのリンク予測をするために、グラフのノードおよびリンクにベクトル表現を与える技術である。
【0003】
ここで、RDFは、実体を示すインスタンスと概念を示すオントロジーからなる。インスタンスは、グラフ構造を示す。オントロジーは、概念の階層構造を示す。図10は、RDFデータの参考例を示す図である。図10に示すように、左図には、インスタンスが表わされ、右図には、オントロジーが表わされている。インスタンスは、グラフ構造である。オントロジーは、概念の階層構造である。そして、インスタンスとオントロジーとは、対応付けられている。一例として、インスタンスが示す「Kawasaki」は、「Place」という概念と対応付けられている。インスタンスが示す「Ichiro」は、「Person」という概念と対応付けられている。
【0004】
このようなRDFにおいて、インスタンスとオントロジーそれぞれに精度の高いベクトル表現を与える技術が望まれている。例えば、非特許文献1では、インスタンスとオントロジーを組み合わせて学習することで、精度の高いベクトル表現を実現する。かかる技術では、インスタンスとオントロジーをそれぞれ異なるユークリッド空間上で表現し、インスタンスのオントロジー空間への写像が、対応するオントロジーに近づくように、インスタンスとオントロジーのベクトル表現を学習する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Junheng Hao et al “Universal Representation Learning of Knowledge Bases by Jointly Embedding Instances and Ontological Concepts”
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、オントロジーのような階層関係をベクトル表現しようとすると、ユークリッド空間上で埋め込み手法の制約を満たすことができないという問題がある。すなわち、ユークリッド空間への埋め込みでは、ベクトルの配置に埋め込み手法の制約があるため、階層の深いオントロジーをベクトル表現するのが難しい。なお、オントロジーをユークリッド空間上に精度良く埋め込むためには、次元数を高くすれば良いが、次元数を抑える場合には、階層の深いオントロジーをベクトル表現するのが難しい。
【0007】
ここで、ユークリッド空間にオントロジーのような階層関係をうまく表現できないことを、図11を参照して説明する。図11は、ユークリッド空間にオントロジーの階層関係をうまく表現できないことを示す図である。図11に示すように、ユークリッド空間にオントロジーの階層関係を埋め込もうとすると、階層が深くなる程、埋め込み手法の制約を満たさなくなるため、階層関係をうまく表現できない。すなわち、オントロジーの階層が深くなる程、ユークリッド空間を超える場合があるので、概念の上位下位関係がうまく表現できない。ここでは、「City」は「PopulatedPlace」の一種(is_a)であるという階層関係を表現できるが、「PopulatedPlace」は「Place」の一種(is_a)であるという階層関係をうまく表現できない。すなわち、「Place」は、ユークリッド空間上で埋め込み手法の制約を満たさないので、「PopulatedPlace」と「Place」との上位下位の階層関係をうまく表現できない。
【0008】
この結果、従来技術では、インスタンスとオントロジーを組み合わせて学習しても、精度の高いベクトル表現を実現できない。
【0009】
本発明は、1つの側面では、インスタンスとオントロジーそれぞれに精度の高いベクトル表現を実現することを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、学習方法は、ナレッジグラフにおけるインスタンス情報およびオントロジー情報のベクトル表現の学習方法であって、ユークリッド空間上における第1のインスタンス情報のベクトル表現を取得し、双曲空間上における第1のオントロジー情報のベクトル表現を取得し、前記第1のインスタンス情報の双曲空間への写像に基づいて、取得した前記第1のオントロジー情報のベクトル表現を変更した第2のオントロジー情報を生成し、前記第2のオントロジー情報のユークリッド空間への写像に基づいて、取得した前記第1のインスタンス情報のベクトル表現を変更した第2のインスタンス情報を生成し、前記第2のオントロジー情報と前記第2のインスタンス情報との対応関係を、リンク予測をするために学習する、処理をコンピュータが実行する。
【発明の効果】
【0011】
1実施態様によれば、インスタンスとオントロジーそれぞれに精度の高いベクトル表現を実現することができる。
【図面の簡単な説明】
【0012】
図1図1は、実施例に係る学習装置の構成を示す機能ブロック図である。
図2図2は、実施例に係るRDFデータの一例を示す図である。
図3図3は、実施例に係るグラフ埋め込み処理の一例を示す図である。
図4図4は、実施例に係る変換処理の一例を示す図である。
図5図5は、実施例に係る対応関係学習処理の一例を示す図である。
図6図6は、実施例に係る予測処理の一例を示す図である。
図7図7は、実施例に係る学習処理のフローチャートの一例を示す図である。
図8図8は、実施例に係る予測処理のフローチャートの一例を示す図である。
図9図9は、学習プログラムを実行するコンピュータの一例を示す図である。
図10図10は、RDFデータの参考例を示す図である。
図11図11は、ユークリッド空間にオントロジーの階層関係をうまく表現できないことを示す図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する学習方法、学習装置および学習プログラムの実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例
【0014】
[学習装置の構成]
図1は、実施例に係る学習装置の構成を示す機能ブロック図である。学習装置1は、RDFのグラフ埋め込みにおいて、インスタンスをユークリッド空間に、オントロジーを双曲空間に、ベクトルを埋め込む。そして、学習装置1は、ユークリッド空間のインスタンスと双曲空間のオントロジーを関連付けるために、ユークリッド空間のベクトルと双曲空間のベクトルとの間の変換を学習する。
【0015】
学習装置1は、制御部10と、記憶部20とを有する。
【0016】
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、埋め込み部11、変換部12、対応関係学習部13および予測部14を有する。なお、対応関係学習部13は、第1の生成部および第2の生成部の一例である。予測部14は、出力部の一例である。
【0017】
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、RDFデータ21および学習データ22を有する。
【0018】
RDFデータ21は、ウェブ上の情報のメタデータを記述するためのデータ構造を示す。RDFデータ21には、インスタンス間の関係を表す3つ組の群と、上位下位関係を持つ概念の組の群と、インスタンスとタイプの対応関係の組の群とを有する。
【0019】
インスタンス間の関係を表す3つ組は、インスタンス、リンクおよびインスタンスの3つのデータを1組とする。言い換えれば、インスタンス間の関係を表す3つ組は、主語、述語、目的語の3つのデータを1組とする。そして、それぞれの組は、「主語の述語は目的語である」という関係性を持つ。上位下位関係を持つ概念の組は、上位概念と下位概念の2つのデータを1組とする。インスタンスとタイプの対応関係の組は、インスタンスのデータとタイプのデータを1組とする。ここでいうタイプは、概念に対応する。
【0020】
ここで、RDFデータ21の一例を、図2を参照して説明する。図2は、実施例に係るRDFデータの一例を示す図である。図2に示すように、インスタンス間の関係を表す3つ組は、インスタンス、リンクおよびインスタンスを対応付けて記憶する。概念の組は、上位概念および下位概念を対応付けて記憶する。インスタンスとタイプの対応関係の組は、インスタンスとタイプとを対応付けて記憶する。
【0021】
一例として、インスタンス間の関係を表す3つ組には、(インスタンス、リンク、インスタンス)として(“Ichiro”、“brother”、“Jiro”)が記憶されている。(“Ichiro”、“brother”、“Jiro”)は「“Ichiro”の“brother”は“Jiro”である」という関係性を持つ。また、(“Hanako”、“friend”、“Jiro”)が記憶されている。(“Hanako”、“friend”、“Jiro”)は「“Hanako”の“friend”は“Jiro”である」という関係性を持つ。また、(“Ichiro”、“birthplace”、“Kawasaki”)が記憶されている。(“Ichiro”、“birthplace”、“Kawasaki”)は「“Ichiro”の“birthplace”は“Kawasaki”である」という関係性を持つ。
【0022】
また、一例として、概念の組には、(上位概念、下位概念)として(“Place”、“City”)が記憶されている。また、(“Place”、“Park”)が記憶されている。また、(“Thing”、“Person”)が記憶されている。
【0023】
また、一例として、インスタンスとタイプの組には、(インスタンス、タイプ)として(“Kawasaki”、“Place”)が記憶されている。また、(“Hanako”、“Person”)が記憶されている。また、(“Jiro”、“Person”)が記憶されている。
【0024】
図1に戻って、学習データ22は、RDFデータ21を学習した結果のデータである。例えば、学習データ22には、RDFデータ21に含まれるインスタンス間の関係を表す3つ組、概念の組およびインスタンスとタイプの対応関係の組に含まれるそれぞれの文字列ごとの学習済みのベクトルの集合が含まれる。
【0025】
埋め込み部11は、インスタンス情報をユークリッド空間にベクトル表現で埋め込む。例えば、埋め込み部11は、インスタンス情報のベクトル表現の次元数をN次元とする。埋め込み部11は、TransEなどの埋め込みモデルにより、N次元の単位球内に、インスタンス情報をベクトル表現で配置する。一例として、埋め込み部11は、RDFデータ21に含まれるインスタンス間の関係を表すそれぞれの3つ組について、以下の処理を行う。すなわち、埋め込み部11は、主語を示すインスタンスのベクトルに述語を示すリンクのベクトルを加えたベクトルが、目的語を示すインスタンスのベクトルに近づくようにベクトルの配置を学習する。そして、埋め込み部11は、学習の結果を学習データ22に保存する。学習データ22には、インスタンス間の関係を表す3つ組のインスタンス、リンクおよびインスタンスのそれぞれのベクトルの集合が含まれる。
【0026】
また、埋め込み部11は、オントロジー情報を双曲空間にベクトル表現で埋め込む。例えば、埋め込み部11は、オントロジー情報のベクトル表現の次元数を、インスタンス情報のベクトル表現の次元数より低いM次元(M<N)とする。埋め込み部11は、双曲空間のモデルとしてPointare ballを用いて、オントロジー情報の各概念をM次元の単位球内にベクトル表現で配置する。Poincare ballを用いるのは、勾配法でベクトル表現を最適化できるためである。一例として、埋め込み部11は、双曲空間で、RDFデータ21に含まれる概念の組の概念同士の距離が近づくようにベクトルの配置を学習する。これにより、埋め込み部11は、N次元より低いM次元の空間であっても、ベクトルの配置に埋め込み手法の制約を受けないで、階層の深いオントロジーをベクトルで配置することができる。そして、埋め込み部11は、学習の結果を学習データ22に保存する。学習データ22には、概念の組の上位概念、下位概念のそれぞれのベクトルの集合が含まれる。
【0027】
ここで、d次元のPoincare ballモデルは、以下の式(1)で表わせる。なお、式(1)のRは、d次元の球体であることを示す。xは、各概念のベクトル表現である。
【数1】
【0028】
また、Poincare ball上の2点間の距離は、以下の式(2)のように定義される。式(2)では、uとvの2点間の距離が定義されている。
【数2】
【0029】
なお、埋め込み部11は、Poincare ballをオントロジーに適用する場合、上位と下位との関係を持つ概念同士の距離が短くなるようにRiemannian SGDという双曲空間で実行可能なSGDで各概念のベクトルを計算すれば良い。
【0030】
変換部12は、インスタンス情報を双曲空間へ写像する。例えば、変換部12は、ランダムプロジェクションを利用して、距離関係をある程度保ったままN次元からM次元への次元削減を行う。但し、ここでいう距離関係とは、ユークリッド距離のことをいう。一例として、変換部12は、インスタンスを双曲空間へ写像する行列Sを利用して、インスタンス情報を双曲空間へ写像する。行列Sは、[1,-1]の一様乱数を利用して生成したN×M行列である。
【0031】
また、変換部12は、オントロジー情報をインスタンス空間へ写像する。例えば、変換部12は、ランダムプロジェクションを利用して、距離関係をある程度保ったままM次元からN次元への次元拡張を行う。但し、ここでいう距離関係とは、ユークリッド距離のことをいう。一例として、変換部12は、オントロジーをユークリッド空間へ写像する行列Rを利用して、オントロジー情報をユークリッド空間へ写像する。行列Rは、[1,-1]の一様乱数を利用して生成したM×N行列である。
【0032】
対応関係学習部13は、インスタンスとオントロジーの対応関係のベクトルの配置を学習する。
【0033】
例えば、対応関係学習部13は、RDFデータ21に含まれるインスタンスとタイプの対応関係の組を取得する。対応関係学習部13は、タイプのベクトルのユークリッド空間への写像に基づいて、インスタンスのベクトル表現を変更したインスタンス情報を生成する。一例として、対応関係学習部13は、ユークリッド空間上で、インスタンスのベクトルを、対応関係のタイプの写像した後(変換後)のベクトルに近づくように更新する。
【0034】
また、対応関係学習部13は、変更したインスタンスのベクトルの双曲空間への写像に基づいて、タイプのベクトル表現を変更したオントロジー情報を生成する。一例として、対応関係学習部13は、双曲空間上で、タイプのベクトルを、更新されたインスタンスの写像した後(変換後)のベクトルに近づくように更新する。但し、オントロジーの空間は双曲空間なので、対応関係学習部13は、写像した後(変換後)のインスタンスの原点からの距離を、対応関係のタイプの原点からの距離に揃える正規化を行ってから、原点を中心とした当該距離の半径を有する球面に沿ってタイプをインスタンスに近づくように更新する。正規化を行う理由は、原点からの距離は概念(タイプ)の階層の深さを表わしており、概念とインスタンスとの関係による影響を与えたくないからである。このため、対応関係学習部13は、原点からの距離を保ちつつ近づけるようにする。
【0035】
また、対応関係学習部13は、対応関係の学習の結果を学習データ22に保存する。学習データ22には、対応関係の組のインスタンス、タイプのそれぞれのベクトルの集合が含まれる。
【0036】
予測部14は、学習済みのベクトルを用いて、入力された3つ組の中の1つの予測対象を予測する。例えば、予測部14は、ユーザ端末2から入力された3つ組を受け取る。予測部14は、学習データ22に含まれる学習済みのベクトルの集合を用いて、受け付けた3つ組の中の1つの予測対象を、以下のように予測する。予測部14は、学習済みのベクトルの集合から、受け付けた3つ組の中の1つの予測対象の文字列以外の2つの文字列に対応するベクトルを取得する。そして、予測部14は、学習済みのベクトルの集合から1つずつベクトルを選択する。そして、予測部14は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、主語を示すインスタンスのベクトルに述語を示すリンクのベクトルを加えたベクトルから目的語を示すインスタンスのベクトルを引いたベクトルが予め定められたスコアより小さいベクトルを検索する。予測部14は、検索できたベクトルに対応する文字列を予測対象として予測する。一例として、受け付けた3つ組が(e1,r,e2)であり、リンク先のインスタンスを予測する場合には、e2が予測対象となる。そこで、予測部14は、e1のベクトルVe1にrのベクトルVを加えたベクトルから選択したベクトルVe2を引いたベクトルがスコアより小さくなるような選択したベクトルVe2を検索する。そして、予測部14は、検索できた、選択したベクトルVe2に対応する文字列e2を予測対象として予測する。なお、スコアは、ベクトルの許容誤差を示すものである。
【0037】
[グラフ埋め込み処理の一例]
図3は、実施例に係るグラフ埋め込み処理の一例を示す図である。図3に示すように、左図がインスタンスのユークリッド空間へのグラフ埋め込みである。右図がオントロジーの双曲空間へのグラフ埋め込みである。ユークリッド空間は、N次元である。双曲空間は、N次元より低いM次元である。
【0038】
埋め込み部11は、TransEなどの埋め込みモデルにより、N次元の単位球内に、各インスタンスをベクトル表現で配置する。ここでは、N次元の単位球内に、“jiro”というインスタンス、“taro”というインスタンス、“kawasaki”というインスタンスがそれぞれベクトル表現ejiro、etaro、ekawasakiで配置される。
【0039】
また、埋め込み部11は、双曲空間のモデルとしてPoincare ballを用いて、オントロジーの各概念をM次元の単位球内にベクトル表現で配置する。ここでは、M次元の単位球内に、上位下位関係を持つ概念の組(“thing”、“person”)、(“thing”、“place”)、(“place”、“city”)がそれぞれベクトル表現cthing、cperson、cplace、ccityで配置される。
【0040】
[変換処理の一例]
図4は、実施例に係る変換処理の一例を示す図である。図4に示すように、変換部12は、オントロジーを、M次元のオントロジーの双曲空間からN次元のインスタンスのユークリッド空間へ写像する。すなわち、変換部12は、例えばランダムプロジェクションを利用して、距離関係をある程度保ったまま、オントロジーを、M次元のオントロジーの双曲空間からN次元のインスタンスのユークリッド空間へ次元拡張する。Rは、オントロジーをインスタンスのユークリッド空間へ写像する行列である。ここでは、“place”という概念のベクトルcplaceが、ユークリッド空間へ写像され、c‘placeというベクトルに変換されている。
【0041】
また、変換部12は、インスタンスを、N次元のユークリッド空間からM次元のオントロジーの双曲空間へ写像する。すなわち、変換部12は、例えばランダムプロジェクションを利用して、距離関係をある程度保ったまま、インスタンスを、N次元のインスタンスのユークリッド空間からM次元のオントロジーの双曲区間へ次元削減する。Sは、インスタンスをオントロジーの双曲空間へ写像する行列である。ここでは、“kawasaki”というインスタンスのベクトルekawasakiが、双曲空間へ写像され、e‘kawasakiというベクトルに変換されている。
【0042】
[対応関係学習処理の一例]
図5は、実施例に係る対応関係学習処理の一例を示す図である。図5に示すように、対応関係学習部13は、インスタンスのユークリッド空間上で、インスタンスのベクトルを、対応関係のタイプの写像した後(変換後)のベクトルに近づくように更新する。ここでは、インスタンスとタイプの対応関係の組として(“kawasaki”,“place”)が取得されたとする。“kawasaki”というインスタンスのベクトルは、インスタンスのユークリッド空間上のekawasakiである。“place”という概念のベクトルは、オントロジーの双曲空間上のcplaceである。対応関係学習部13は、インスタンスのユークリッド空間上で、インスタンスのベクトルekawasakiを、対応関係のタイプのベクトルcplaceを行列Rで写像した後(変換後)のベクトルc´placeに近づくように更新する。
【0043】
加えて、対応関係学習部13は、オントロジーの双曲空間上で、タイプのベクトルを、更新されたインスタンスの写像した後(変換後)のベクトルに近づくように更新する。ここでは、対応関係学習部13は、オントロジーの双曲空間上で、タイプのベクトルcplaceを、ユークリッド空間上で更新されたインスタンスのベクトルekawasakiの写像した後(変換後)のベクトルe´kawasakiに近づくように更新する。このとき、オントロジーの空間は双曲空間なので、対応関係学習部13は、以下の処理を行う。対応関係学習部13は、変換後のインスタンスe´kawasakiの原点からの距離を、タイプcplaceの原点からの距離に揃える正規化を行ってから、原点を中心とした球面に沿ってタイプcplaceをインスタンスe´kawasakiに近づくように更新する。具体的には、対応関係学習部13は、変換後のekawasakiを行列Sで写像してf(ekawasaki)(=e´kawasaki)を計算する。そして、対応関係学習部13は、e´kawasakiの原点からの距離がcplaceの原点からの距離と同じになるように、e´kawasakiを式(3)のように正規化する。そして、対応関係学習部13は、cplaceを正規化後のe´kawasakiに近づくように更新する。
(||cplace||/||e´kawasaki||)×e´kawasaki ・・・式(3)
【0044】
[予測処理の一例]
図6は、実施例に係る予測処理の一例を示す図である。なお、図6では、上図に示した学習済みのベクトルの集合を保存した学習データ22が利用されるものとする。
【0045】
ここでは、“Ichiro”の“brother”が何であるかの問い合わせ(“Ichiro”,“brother”,“?”)について説明する。「?」は、インスタンスの予測対象を示す予測変数を意味する。また、スコアは、例えば(0.50,0.50)とする。
【0046】
予測部14は、学習済みのベクトルの集合から1つずつインスタンスのベクトルを選択する。そして、予測部14は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、インスタンスのベクトルにリンクのベクトルを加えたベクトルからインスタンスのベクトルを引いたベクトルがスコアより小さいベクトルを検索する。ここでは、予測部14は、選択したベクトルごとに、インスタンスを示す“Ichiro”のベクトルv(Ichiro)にリンクを示す“brother”のベクトルv(brother)を加えたベクトルから、選択したベクトルを引いたベクトルを計算する。そして、予測部14は、計算したベクトルがスコアより小さいベクトルになるかどうかを判定する。
【0047】
そして、予測部14は、検索できたベクトルに対応する文字列を予測対象として予測する。ここでは、予測部14は、v(Ichiro)(=(0.50,0.50))にv(brother)(=(0.20,0.20))を加えたベクトルから、選択したv(Jiro)(=(0.75,0.60))を引いたベクトルを計算すると、(-0.05,0.00)となる。したがって、予測部14は、計算したベクトルがスコア(0.50,0.50)より小さいので、選択したv(Jiro)に対応する“Jiro”を予測対象として予測する。
【0048】
また、別の例として、“Hanako”が“Ichiro”の何であるかの問い合わせ(“Hanako”,“?”,“Ichiro”)について説明する。「?」は、インスタンスの予測対象を示す予測変数を意味する。また、スコアは、例えば(0.50,0.50)とする。
【0049】
予測部14は、学習済みのベクトルの集合から1つずつリンクのベクトルを選択する。そして、予測部14は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、インスタンスのベクトルにリンクのベクトルを加えたベクトルからインスタンスのベクトルを引いたベクトルがスコアより小さいベクトルを検索する。ここでは、予測部14は、選択したベクトルごとに、インスタンスを示す“Hanako”のベクトルv(Hanako)に選択したリンクのベクトルを加えたベクトルから、インスタンスを示す“Ichiro”のベクトルv(Ichiroを引いたベクトルを計算する。そして、予測部14は、計算したベクトルがスコアより小さいベクトルになるかどうかを判定する。
【0050】
そして、予測部14は、検索できたベクトルに対応する文字列を予測対象として予測する。ここでは、予測部14は、v(Hanako)(=(0.20,0.50))に選択したv(sister)(=(-0.25,0.20))を加えたベクトルから、v(Ichiro)(=(0.50,0.50))を引いたベクトルを計算すると、(-0.05,0.20)となる。したがって、予測部14は、計算したベクトルがスコアより小さいので、選択したv(sister)に対応する“sister”を予測対象として予測する。
【0051】
[学習処理のフローチャート]
図7は、実施例に係る学習処理のフローチャートの一例を示す図である。なお、図7で用いられる「margin」は、スコアを示すハイパーパラメータのことをいう。
【0052】
埋め込み部11は、全てのベクトルを乱数で初期化する(ステップS11)。例えば、埋め込み部11は、RDFデータ21に含まれるインスタンス、リンク、概念に対する全てのベクトルを乱数で初期化する。また、変換部12は、変換行列R,Sを[1,-1]の一様乱数で初期化する(ステップS12)。なお、Rは、M×N行列である。Sは、N×M行列である。
【0053】
埋め込み部11は、RDFデータ21から、インスタンス間の関係を表す3つ組(e1,r,e2)、上位下位関係を持つ概念の組(c1,c2)、インスタンスとそのタイプの組(e3,c3)を一組ずつ取り出す(ステップS13)。なお、e1,r,e2,e3.c1,c2およびc3は、それぞれベクトルである。
【0054】
埋め込み部11は、||e1+r-e2||がmarginより大きいか否かを判定する(ステップS14)。||e1+r-e2||がmarginより大きいと判定した場合には(ステップS14;Yes)、埋め込み部11は、e1+r-e2が0に近づくようにe1,r,e2を更新する(ステップS15)。すなわち、埋め込み部11は、例えばTransEを用いて、主語を示すインスタンスのベクトルe1に述語を示すリンクのベクトルrを加えたベクトルが、目的語を示すインスタンスのベクトルe2に近づくようにベクトルの配置を学習する。そして、埋め込み部11は、ステップS16に移行する。
【0055】
一方、||e1+r-e2||がmargin以下であると判定した場合には(ステップS14;No)、埋め込み部11は、ステップS16に移行する。
【0056】
ステップS16において、埋め込み部11は、d(c1,c2)がmarginより大きいか否かを判定する(ステップS16)。d(c1,c2)は、式(2)のd(u,v)を用いて計算すれば良い。d(c1,c2)がmarginより大きいと判定した場合には(ステップS16;Yes)、埋め込み部11は、d(c1,c2)が0に近づくようにc1,c2を更新する(ステップS17)。すなわち、埋め込み部11は、双曲空間のモデルとして例えばPoincare ballを用いて、上位と下位との関係を持つ概念同士の距離が近づくようにベクトルの配置を学習する。そして、埋め込み部11は、ステップS18に移行する。
【0057】
一方、d(c1,c2)がmargin以下であると判定した場合には(ステップS16;No)、埋め込み部11は、ステップS18に移行する。
【0058】
ステップS18において、対応関係学習部13は、||e3-f(c3)||がmarginより大きいか否かを判定する(ステップS18)。f(c3)は、変換部12が行列Rを用いて概念ベクトルc3をユークリッド空間へ写像した結果を示すベクトルである。
【0059】
||e3-f(c3)||がmarginより大きいと判定した場合には(ステップS18;Yes)、対応関係学習部13は、e3-f(c3)が0に近づくようにe3を更新する(ステップS19)。すなわち、対応関係学習部13は、インスタンス空間上で、インスタンスのベクトルe3を、対応関係のタイプc3の写像した後(変換後)のベクトルf(c3)に近づくように更新する。そして、対応関係学習部13は、ステップS20に移行する。
【0060】
一方、||e3-f(c3)||がmargin以下であると判定した場合には(ステップS18;No)、対応関係学習部13は、ステップS20に移行する。
【0061】
ステップS20において、対応関係学習部13は、d(c3,(||c3||/||f(e3)||))×f(e3))がmarginより大きいか否かを判定する(ステップS20)。f(e3)は、変換部12が行列Sを用いてインスタンスベクトルe3を双曲空間へ写像した結果を示すベクトルである。d(・・,・・)は、式(2)のd(u,v)を用いて計算すれば良い。
【0062】
(c3,(||c3||/||f(e3)||))×f(e3))がmarginより大きいと判定した場合には(ステップS20;Yes)、対応関係学習部13は、d(c3,(||c3||/||f(e3)||))×f(e3))が0に近づくようにc3を更新する(ステップS21)。すなわち、対応関係学習部13は、双曲空間上で、タイプのベクトルc3を、更新したインスタンスの写像した後(変換後)のベクトル(||c3||/||f(e3)||))×f(e3)に近づくように更新する。なお、(||c3||/||f(e3)||))×f(e3)は、オントロジーの空間が双曲空間なので、変換後のインスタンスf(e3)の原点からの距離を、対応関係のタイプc3の原点からの距離に揃える正規化を行った結果のベクトルである。正規化を行う理由は、双曲空間上の原点からの距離は概念(タイプ)の階層の深さを表わしており、概念とインスタンスとの関係による影響を与えたくないからである。そして、対応関係学習部13は、ステップS22に移行する。
【0063】
一方、d(c3,(||c3||/||f(e3)||))×f(e3))がmargin以下であると判定した場合には(ステップS20;No)、対応関係学習部13は、ステップS22に移行する。
【0064】
ステップS22において、埋め込み部11は、ベクトルの更新がなくなった、または規定回数を繰り返したか否かを判定する(ステップS22)。ベクトルの更新がなくなっていない、且つ規定回数を繰り返していないと判定した場合には(ステップS22;No)、埋め込み部11は、次の処理を行うべく、ステップS13に移行する。
【0065】
一方、ベクトルの更新がなくなった、または規定回数を繰り返したと判定した場合には(ステップS22;Yes)、埋め込み部11は、学習処理を終了する。
【0066】
なお、実施例では、対応関係学習部13は、||e3-f(c3)||がmarginより大きい場合には、e3-f(c3)が0に近づくようにe3を更新する。この後、対応関係学習部13は、d(c3,(||c3||/||f(更新後のe3)||))×f(更新後のe3))がmarginより大きい場合には、d(c3,(||c3||/||f(更新後のe3)||))×f(更新後のe3))が0に近づくようにc3を更新すると説明した。しかしながら、対応関係学習部13は、逆であっても良い。すなわち、対応関係学習部13は、d(c3,(||c3||/||f(e3)||))×f(e3))がmarginより大きい場合には、d(c3,(||c3||/||f(e3)||))×f(e3))が0に近づくようにc3を更新する。この後、対応関係学習部13は、||e3-f(更新後のc3)||がmarginより大きい場合には、e3-f(更新後のc3)が0に近づくようにe3を更新しても良い。
【0067】
[予測処理のフローチャート]
図8は、実施例に係る予測処理のフローチャートの一例を示す図である。なお、図8では、スコアを示すハイパーパラメータを「margin」とする。また、埋め込み部11および対応関係学習部13によって学習された学習データ22が生成されたとする。学習データ22には、インスタンス間の関係を表す3つ組の学習済みのベクトルの集合Vが含まれている。
【0068】
図8に示すように、予測部14は、予測する予測対象を含む3つ組(e1,r,e2)を取り出す(ステップS31)。予測部14は、予測対象がe1であるか否かを判定する(ステップS32)。予測対象がe1であると判定した場合には(ステップS32;Yes)、予測部14は、学習済みのベクトルの集合VからベクトルVとVe2を取り出す(ステップS33)。予測部14は、Vからベクトルを1つ取り出す(ステップS33A)。そして、予測部14は、Vから全てのベクトルを取り出したか否かを判定する(ステップS34)。
【0069】
全てのベクトルを取り出していないと判定した場合には(ステップS34;No)、予測部14は、Vから取り出したベクトルをVe1として、|Ve2-V-Ve1|がmarginより小さいか否かを判定する(ステップS35)。なお、|Ve2-V-Ve1|は、|Ve1+V-Ve2|と同義である。|Ve2-V-Ve1|がmargin以上と判定した場合には(ステップS35;No)、予測部14は、次のベクトルを取り出すべく、ステップS33Aに移行する。
【0070】
一方、|Ve2-V-Ve1|がmarginより小さいと判定した場合には(ステップS35;Yes)、予測部14は、Ve1を予測対象として出力する(ステップS36)。そして、予測部14は、次のベクトルを取り出すべく、ステップS33Aに移行する。
【0071】
ステップS34において、全てのベクトルを取り出したと判定した場合には(ステップS34;Yes)、予測部14は、予測処理を終了する。
【0072】
ステップS32において、予測対象がe1でないと判定した場合には(ステップS32;No)、予測部14は、ステップS37に移行する。
【0073】
ステップS37において、予測部14は、予測対象がrであるか否かを判定する(ステップS37)。予測対象がrであると判定した場合には(ステップS37;Yes)、予測部14は、学習済みのベクトルの集合VからベクトルVe1とVe2を取り出す(ステップS38)。予測部14は、Vからベクトルを1つ取り出す(ステップS38A)。そして、予測部14は、Vから全てのベクトルを取り出したか否かを判定する(ステップS39)。
【0074】
全てのベクトルを取り出していないと判定した場合には(ステップS39;No)、予測部14は、Vから取り出したベクトルをVとして、|Ve2-V-Ve1|がmarginより小さいか否かを判定する(ステップS40)。|Ve2-V-Ve1|がmargin以上であると判定した場合には(ステップS40;No)、予測部14は、次のベクトルを取り出すべく、ステップS38Aに移行する。
【0075】
一方、|Ve2-V-Ve1|がmarginより小さいと判定した場合には(ステップS40;Yes)、予測部14は、Vを予測対象として出力する(ステップS41)。そして、予測部14は、次のベクトルを取り出すべく、ステップS38Aに移行する。
【0076】
ステップS39において、全てのベクトルを取り出したと判定した場合には(ステップS39;Yes)、予測部14は、予測処理を終了する。
【0077】
ステップS37において、予測対象がrでないと判定した場合には(ステップS37;No)、予測部14は、ステップS42に移行する。
【0078】
ステップS42において、予測部14は、予測対象がe2であると判断し、学習済みのベクトルの集合VからベクトルVe1とVを取り出す(ステップS42)。予測部14は、Vからベクトルを1つ取り出す(ステップS42A)。そして、予測部14は、Vから全てのベクトルを取り出したか否かを判定する(ステップS43)。
【0079】
全てのベクトルを取り出していないと判定した場合には(ステップS43;No)、予測部14は、Vから取り出したベクトルをVe2として、|Ve2-V-Ve1|がmarginより小さいか否かを判定する(ステップS44)。|Ve2-V-Ve1|がmargin以上であると判定した場合には(ステップS44;No)、予測部14は、次のベクトルを取り出すべく、ステップS42Aに移行する。
【0080】
一方、|Ve2-V-Ve1|がmarginより小さいと判定した場合には(ステップS44;Yes)、予測部14は、Ve2を予測対象として出力する(ステップS45)。そして、予測部14は、次のベクトルを取り出すべく、ステップS42Aに移行する。
【0081】
ステップS43において、全てのベクトルを取り出したと判定した場合には(ステップS43;Yes)、予測部14は、予測処理を終了する。
【0082】
なお、実施例では、予測部14が、学習済みのベクトルを用いて、入力された3つ組の中の1つの予測対象を予測すると説明した。しかしながら、予測部14は、これに限定されず、学習済みのベクトルを用いて、入力された概念の組の中の1つの予測対象を予測しても良い。すなわち、予測部14は、一方の概念に対応する他方の概念を予測しても良い。また、予測部14は、学習済みのベクトルを用いて、入力されたインスタンスとタイプの対応関係の組の中の1つの予測対象を予測しても良い。すなわち、予測部14は、インスタンスに対応する概念を予測しても良いし、概念に対応するインスタンスを予測しても良い。
【0083】
[実施例の効果]
上記実施例によれば、学習装置1は、ユークリッド空間上における第1のインスタンス情報のベクトル表現を取得する。学習装置1は、双曲空間上における第1のオントロジー情報のベクトル表現を取得する。学習装置1は、第1のインスタンス情報の双曲空間への写像に基づいて、取得した第1のオントロジー情報のベクトル表現を変更した第2のオントロジー情報を生成する。学習装置1は、第2のオントロジー情報のユークリッド空間への写像に基づいて、取得した第1のインスタンス情報のベクトル表現を変更した第2のインスタンス情報を生成する。学習装置1は、第2のオントロジー情報と第2のインスタンス情報との対応関係を、リンク予測をするために学習する。かかる構成によれば、学習装置1は、インスタンスとオントロジーそれぞれに精度の高いベクトル表現を生成することができる。すなわち、学習装置1は、双曲空間にオントロジーの階層関係を埋め込むことで、階層の深いオントロジーについても、概念の上位下位関係をうまく表現できるようになり、概念に対応するインスタンスも高い精度のベクトル表現を与えることができる。この結果、学習装置1は、精度の高いリンク予測をすることができる。
【0084】
また、上記実施例によれば、学習装置1は、第1のインスタンス情報のベクトル表現を、双曲空間からユークリッド空間へ写像後の第1のオントロジー情報のベクトル表現に近づけるように更新し、第2のインスタンス情報を生成する。かかる構成によれば、学習装置1は、インスタンスのベクトル表現を、双曲空間からユークリッド空間へ写像後のオントロジーのベクトル表現に近づけるようにすることで、ユークリッド空間に精度の良いインスタンスのベクトル表現を埋め込むことが可能となる。
【0085】
また、上記実施例によれば、学習装置1は、写像後の前記第1のインスタンス情報の原点からの距離を、前記第1のオントロジー情報の原点からの距離に揃える正規化を行う。学習装置1は、正規化を行った第1のインスタンス情報のベクトル表現に近づけるように更新し、第2のオントロジー情報を生成する。かかる構成によれば、学習装置1は、オントロジーを双曲空間にすることによる影響であって、オントロジーとインスタンスとの関係による影響を与えないように、原点からの距離を保ちつつ近づけることができる。
【0086】
また、上記実施例によれば、学習装置1は、第2のオントロジー情報のベクトル表現から算出された第2のインスタンス情報のベクトル表現を用いて、予測対象のインスタンス情報のリンク予測を行い、リンク予測の結果を出力する。かかる構成によれば、学習装置1は、精度の良いリンク予測をすることができる。
【0087】
[その他]
なお、図示した学習装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、学習装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、埋め込み部11を、インスタンスをユークリッド空間に埋め込む埋め込み部と、概念を双曲空間に埋め込む埋め込み部とに分散しても良い。また、変換部12を、インスタンスを双曲空間へ写像する変換部と、概念をユークリッド空間へ写像する変換部とに分散しても良い。また、埋め込み部11と、変換部12と、対応関係学習部13とを1つの学習部として統合しても良い。また、記憶部20を学習装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0088】
また、上記実施例では、学習装置1を、学習処理と予測処理とを含む構成として説明した。しかしながら、学習処理を行う学習装置と予測処理を行う予測装置とに分離する構成としても良い。
【0089】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した学習装置1と同様の機能を実現する学習プログラムを実行するコンピュータの一例を説明する。ここでは、学習装置1と同様の機能を実現する学習プログラムを一例として説明する。図9は、学習プログラムを実行するコンピュータの一例を示す図である。
【0090】
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0091】
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、学習プログラム205aおよび学習処理関連情報205bを記憶する。
【0092】
CPU203は、学習プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、学習装置1の各機能部に対応する。学習処理関連情報205bは、RDFデータ21および学習データ22に対応する。そして、例えばリムーバブルディスク210が、学習プログラム205aなどの各情報を記憶する。
【0093】
なお、学習プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから学習プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0094】
1 学習装置
10 制御部
11 埋め込み部
12 変換部
13 対応関係学習部
14 予測部
20 記憶部
21 RDFデータ
22 学習データ
2 ユーザ端末
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11