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

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

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

特許7567915機械学習プログラム、機械学習方法および情報処理装置
<>
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図1
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図2
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図3
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図4
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図5
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図6
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図7
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図8
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図9
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図10
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図11
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図12
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図13
  • 特許-機械学習プログラム、機械学習方法および情報処理装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】機械学習プログラム、機械学習方法および情報処理装置
(51)【国際特許分類】
   G06N 5/02 20230101AFI20241008BHJP
   G06N 20/00 20190101ALI20241008BHJP
【FI】
G06N5/02
G06N20/00
【請求項の数】 4
(21)【出願番号】P 2022541347
(86)(22)【出願日】2020-08-03
(86)【国際出願番号】 JP2020029718
(87)【国際公開番号】W WO2022029852
(87)【国際公開日】2022-02-10
【審査請求日】2023-01-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】岡嶋 成司
【審査官】渡辺 順哉
(56)【参考文献】
【文献】DING, Boyang ほか,Improving Knowledge Graph Embedding Using Simple Constraints,arXiv[online],arXiv,2018年05月08日,[retrieved on 2020.10.21], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1805.02408v2.pdf>
【文献】濱口拓男 ほか,未知エンティティを伴う知識ベース補完:グラフニューラルネットワークを用いたアプローチ,人工知能学会論文誌[online],日本,一般社団法人 人工知能学会,2018年,Vol.33, No.2,pp.1-10,[retrieved on 2020.10.21], Retrieved from the Internet: <URL: https://www.jstage.jst.go.jp/article/tjsai/33/2/33_F-H72/_pdf/-char/ja>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ナレッジグラフに含まれる第1のトリプルと第2のトリプルとを特定し、
前記第1のトリプルに含まれる第1の2つのエンティティのいずれかに接続された第1のエンティティと前記第2のトリプルに含まれる第2の2つのエンティティのいずれかに接続された第2のエンティティとの比較基づいて、前記第1のトリプルと前記第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定し、
前記判定する処理において前記第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、前記第1のトリプルのそれぞれを示すベクトルの差分が前記第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に基づいた機械学習によって前記第1のトリプルのそれぞれを示すベクトルと前記第2のトリプルのそれぞれを示すベクトルとを生成する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記判定する処理は、
前記第1のエンティティと前記第2のエンティティとの比較として、前記ナレッジグラフに含まれる各エンティティンが属するクラス間の階層構造に基づき、前記第1のエンティティが属する第1のクラスと前記第2のエンティティが属する第2のクラスとを特定し、
前記第1のクラスが前記第2のクラスよりも下位層に位置する場合に、前記第1のトリプルがより具体性が高い情報と関連付いていると判定する、
処理を含むことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
ナレッジグラフに含まれる第1のトリプルと第2のトリプルとを特定し、
前記第1のトリプルに含まれる第1の2つのエンティティのいずれかに接続された第1のエンティティと前記第2のトリプルに含まれる第2の2つのエンティティのいずれかに接続された第2のエンティティとの比較基づいて、前記第1のトリプルと前記第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定し、
前記判定する処理において前記第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、前記第1のトリプルのそれぞれを示すベクトルの差分が前記第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に基づいた機械学習によって前記第1のトリプルのそれぞれを示すベクトルと前記第2のトリプルのそれぞれを示すベクトルとを生成する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項4】
ナレッジグラフに含まれる第1のトリプルと第2のトリプルとを特定し、
前記第1のトリプルに含まれる第1の2つのエンティティのいずれかに接続された第1のエンティティと前記第2のトリプルに含まれる第2の2つのエンティティのいずれかに接続された第2のエンティティとの比較とのうち少なくとも一方に基づいて、前記第1のトリプルと前記第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定し、
前記第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、前記第1のトリプルのそれぞれを示すベクトルの差分が前記第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に基づいた機械学習によって前記第1のトリプルのそれぞれを示すベクトルと前記第2のトリプルのそれぞれを示すベクトルとを生成する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ナレッジグラフに基づく機械学習に関する。
【背景技術】
【0002】
ナレッジグラフ(KG:Knowledge Graph)をベクトル空間上に埋め込み、ナレッジグラフのノード(エンティティ)およびリンク(関係)をベクトルで表現することが行われている。なお、このようなベクトル表現は、埋め込み表現とも呼ばれる。また、ナレッジグラフは、一般化されたレベルの知識(クラス)であり、階層構造を有するオントロジーと、具体例レベルの知識であり、グラフ構造であるインスタンスとにより知識付けされた知識データの一例である。
【0003】
そして、このようなKGのベクトル表現を用いた機械学習により、エンティティ間の関係性をベクトル表現で与えることが行われている。例えば、与えられたKGに含まれる3つの組であるトリプル(主語、述語、目的語)=(h:始点,r:関係,t:終点)に対応するベクトル(v,v,v)が「v+v=v」を満たすように機械学習を実行し、エンティティのベクトルと関係のベクトルとを更新する。このような機械学習により生成されたベクトルを用いて、リンク予測、関係抽出、クラス予測などが実行される。
【0004】
例えば、リンク予測は、エンティティとリンクとを用いて関係性のあるエンティティを予測する演算であり、例えば、ベクトル「始点」とベクトル「関係」とをモデルに入力して、ベクトル「終点」を予測する。関係抽出は、2つのエンティティからそれらの関係性を予測する演算であり、例えば、ベクトル「始点」とベクトル「終点」とをモデルに入力して、ベクトル「関係」を予測する。タイプ予測は、2つのエンティティからそれらが属するクラスを予測する演算であり、例えば、ベクトル「始点」とベクトル「終点」とをモデルに入力して、ベクトル「クラス」を予測する。
【0005】
近年では、モデルの精度を上げる手法として、関係の含意関係を利用した制約を埋め込み計算(ベクトル計算)に導入する機械学習手法が知られている。具体的には、任意のエンティティe1,e2間に関係qがあるときに、必ず関係rがある(rがqを含意する)場合、トリプル(e1,q,e2)のスコアがトリプル(e1,r,e2)のスコアよりも高くなるようにそれぞれのベクトルを更新する。
【先行技術文献】
【非特許文献】
【0006】
【文献】Boyang Ding et al,“Improving Knowledge Graph Embedding Using Simple Constraints”,ACL 2018.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記機械学習手法では、モデルを用いて取得されるベクトル表現の精度が高いとは限らない。
【0008】
例えば、上記機械学習手法は、抽象度の低い関係(ターゲット)を含むトリプルに高いスコアを与える手法であるが、整理されていないナレッジグラフでは、ベクトル表現の精度が低下することがある。例えば、ターゲットが異なるクラスのエンティティで共通に利用されることがあるが、上記機械学習手法では、ターゲットを含意する関係を見つけることができず、正確に制約を適用できない場合があり、学習精度が低下する。また、上記機械学習手法は、関係の抽象度を扱っているが、エンティティの抽象度を扱うことができないので、生成されるモデルの精度が期待通りに高くなるとは限らない。
【0009】
一つの側面では、精度の高いベクトル表現を生成することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、機械学習プログラムは、ナレッジグラフに含まれる第1のトリプルと第2のトリプルとを特定する処理をコンピュータに実行させる。機械学習プログラムは、前記ナレッジグラフに含まれる特定のクラスの組の複数のエンティティ間の複数の関係のそれぞれの出現状況に応じた前記第1のトリプルに含まれる第1の2つのエンティティ間の第1の関係と前記第2のトリプルに含まれる第2の2つのエンティティ間の第2の関係との比較と、前記第1の2つのエンティティのいずれかに接続された第1のエンティティと前記第2の2つのエンティティのいずれかに接続された第2のエンティティとの比較とのうち少なくとも一方に基づいて、前記第1のトリプルと前記第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定する処理をコンピュータに実行させる。機械学習プログラムは、前記判定する処理において前記第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、前記第1のトリプルのそれぞれを示すベクトルの差分が前記第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に基づいた機械学習によって前記第1のトリプルのそれぞれを示すベクトルと前記第2のトリプルのそれぞれを示すベクトルとを生成する処理をコンピュータに実行させる。
【発明の効果】
【0011】
一実施形態によれば、精度の高いベクトル表現を生成することができる。
【図面の簡単な説明】
【0012】
図1図1は、実施例にかかる情報処理装置を説明する図である。
図2図2は、ナレッジグラフを説明する図である。
図3図3は、参考技術を説明する図である。
図4図4は、参考技術の問題点を説明する図である。
図5図5は、参考技術の問題点を説明する図である。
図6図6は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
図7図7は、ナレッジグラフの一例を示す図である。
図8図8は、実施例1にかかるベクトル生成を説明する図である。
図9図9は、実施例1にかかるベクトル生成処理の流れを示すフローチャートである。
図10図10は、実施例2にかかるベクトル生成を説明する図である。
図11図11は、実施例2にかかるベクトル生成処理の流れを示すフローチャートである。
図12図12は、クラスペアを用いたベクトル生成処理の汎用的な流れを示すフローチャートである。
図13図13は、クラス階層を用いたベクトル生成処理の汎用的な流れを示すフローチャートである。
図14図14は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0013】
以下に、本発明にかかる機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0014】
図1は、実施例にかかる情報処理装置10を説明する図である。図1に示すように、情報処理装置10は、ナレッジグラフのエンティティと関係をベクトルで表現し、生成したベクトル表現を用いて機械学習を実行することで、エンティティ間の関係を精度よく示すベクトル表現を生成するコンピュータの一例である。
【0015】
ナレッジグラフは、オントロジーとインスタンスとを有する知識データの一例である。図2は、ナレッジグラフを説明する図である。図2に示すように、ナレッジグラフのオントロジーは、一般化されたレベルの知識であり、階層構造を有する。例えば、クラス「Thing」の下位階層(下位概念)として、クラス「Place」とクラス「Person」とが該当する。また、クラス「Place」の下位階層として、クラス「City」とクラス「Park」とが該当する。
【0016】
また、ナレッジグラフのインスタンスは、具体例レベルの知識であり、グラフ構造である。例えば、エンティティ「Hanako」は、関係「residence」でエンティティ「Kawasaki」に接続されており、エンティティ「Jiro」は、関係「friend」でエンティティ「Hanako」に接続される。エンティティ「Ichiro」は、関係「birthplace」でエンティティ「Kawasaki」に接続されるとともに、brother関係でエンティティ「Jiro」に接続される。また、エンティティ「Kawasaki」は、クラス「Place」に属することから、クラス「Place」とエンティティ「Kawasaki」の関係「type」を有する。同様に、エンティティ「Hanako」、「Jiro」、「Ichiro」は、クラス「Person」に属し、それぞれがクラス「Person」と関係「type」を有する。
【0017】
ここで、Translation-based modelの一種であるTransEと呼ばれる技術を用いた参考技術では、与えられたナレッジグラフに含まれる3つ組であるトリプル(h,r,t)に対応するベクトル(v,v,v)が「v+v=v」を満たすように機械学習を実行し、エンティティのベクトルと関係のベクトルとが更新される。このとき、参考技術では、関係の含意関係を利用した制約をベクトル計算(埋め込み計算)に導入する。
【0018】
図3は、参考技術を説明する図である。図3に示すナレッジグラフが与えられたとき、例えば、参考技術は、任意のエンティティの間に関係「member」があるとき、必ず関係「affiliation」も存在し、関係「affiliation」が関係「member」を含意するとして、機械学習を実行する。具体的には、参考技術は、「v(Ichiro)+v(member)がv(Ichiro)+v(affiliation)よりv(A Corp.)に近くなるように、v(Jiro)+v(member)がv(Jiro)+v(affiliation)よりv(B Corp.)に近くなる」ように、それぞれのベクトルを更新する。つまり、参考技術は、より抽象度の低いリレーションを含むトリプルに高いスコア与える。なお、v(Ichiro)は、ベクトル(Ichiro)と同義であり、記載を簡略化するために、本実施例では、ベクトル(Ichiro)などをv(Ichiro)などと表記することがある。
【0019】
この参考技術は、抽象度の低い関係やターゲットを含むトリプルに高いスコアを与えて機械学習を実行するが、整理されていないナレッジグラフでは、異なるクラスのエンティティで共通にターゲットが利用されることがある。この場合、参考技術では、ターゲットを含意する関係が見つからず、制約が適切に適用できない場合がある。図4は、参考技術の問題点を説明する図である。図4の(a)では、関係「affiliation」を有するクラスと属性値との関係であることから、関係の含意関係を利用した制約をベクトル計算に導入することができる。一方で、図4の(b)では、関係「member」を有するが関係「affiliation」を有さないデータが含まれているから上記制約を適用できないので、このようなベクトル表現を用いた機械学習では、学習精度の低下が起こり得る。
【0020】
また、参考技術は、関係の抽象度を扱っているが、エンティティの抽象度を扱うことができない。例えば、ある人とある人が友人関係にあるという事実よりも、ある野球選手とあるバスケットボール選手が友人関係にあるという事実を重視したい場合が考えられる。図5は、参考技術の問題点を説明する図である。図5に示すナレッジグラフは、エンティティ「Person A」とエンティティ「Person B」とが関係「friend」を有し(図5の(a)参照)、エンティティ「Baseball Player A」とエンティティ「Baseball Player B」と関係「friend」を有する(図5の(b)参照)。この場合、図5の(b)に示す「v(Baseball Player A)+v(friend)=v(Baseball Player B)」の方が図5の(a)に示す「v(Person A)+v(friend)=v(Person B)」よりも、重要であるとして機械学習を実行したい。しかし、参考技術では、これらのエンティティの抽象度を正確に区別して機械学習に反映することができないので、これらを区別できる程度に機械学習が進まず、学習精度が期待通りに高くなるとは限らない。
【0021】
そこで、実施例では、ナレッジグラフに基づく機械学習において、オントロジーに基づく制約を導入することで、ベクトル算出の精度を向上させる。具体的には、図1に示すように、実施例では、(手法1)含意判定の限定と(手法2)クラス階層の利用のいずれかまたは両方を用いることで、機械学習の精度を向上させ、精度の高いベクトル表現を生成する。なお、実施例1では、手法1を具体的に説明し、実施例2では、手法2を具体的に説明する。
【0022】
まず、手法1を用いた情報処理装置10を説明する。図6は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。この情報処理装置10は、各クラスペアに属する関係について含意判定を行う際に、クラスペアによって含意判定を行う範囲を限定することで、整理されていないナレッジグラフであっても、エンティティ間の関係性の含意関係を適切に導入したベクトル表現および機械学習を実現する。
【0023】
図6に示すように、実施例1にかかる情報処理装置10は、通信部11、記憶部12、制御部20を有する。通信部11は、他の装置の通信を制御する。例えば、通信部11は、管理者端末などからナレッジグラフ、各種情報、各処理の開始指示などを受信し、管理者端末に学習結果や予測結果などを表示する。
【0024】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する。例えば、記憶部12は、ナレッジグラフ13とモデル14を記憶する。なお、記憶部12は、制御部20が処理を実行する過程で生成される中間データなどを記憶することもできる。
【0025】
ナレッジグラフ13は、オントロジーとインスタンスとを有する知識ベースの一例である。図7は、ナレッジグラフ13の一例を示す図である。図7に示すように、ナレッジグラフ13は、クラスペア(Person,Company)とクラスペア(Person,SportsClub)とを有する。
【0026】
クラス「Person」には、エンティティ「Ichiro」とエンティティ「Jiro」とエンティティ「Hanako」とエンティティ「Saburo」とが属する。クラス「Company」には、エンティティ「A Corp.」とエンティティ「B Corp.」とエンティティ「C Corp.」とが属する。クラス「SportsClub」には、エンティティ「A Team」が属する。
【0027】
エンティティ「Ichiro」は、関係「affiliation」でエンティティ「A Corp.」に接続されるとともに、関係「member」でエンティティ「A Corp.」に接続される。エンティティ「Jiro」は、関係「affiliation」でエンティティ「B Corp.」に接続されるとともに、関係「member」でエンティティ「B Corp.」に接続される。エンティティ「Hanako」は、関係「affiliation」でエンティティ「C Corp.」に接続される。エンティティ「Sabro」は、関係「member」でエンティティ「A Team」に接続される。
【0028】
モデル14は、ベクトル表現の機械学習に用いるモデルである。例えば、モデル14は、ナレッジグラフを補完するためのtranslation-basedモデルであり、エンティティや関係を示す連続値のベクトルを得るためのモデルである。
【0029】
制御部20は、情報処理装置10全体を司る処理部であり、取得部21と判定部22と生成部23と予測部24を有する。
【0030】
取得部21は、ナレッジグラフ13を取得して記憶部12に格納する。例えば、取得部21は、指定された取得先からナレッジグラフ13を取得し、管理者端末などから送信されたナレッジグラフ13を取得する。
【0031】
判定部22は、ナレッジグラフの各クラスの含意関係を判定する際に、クラスペアによって含意判定を行う範囲を限定して含意判定を実行する。具体的には、判定部22は、ナレッジグラフに含まれる第1のトリプルと第2のトリプルとを特定する。そして、判定部22は、ナレッジグラフ13に含まれる特定のクラスの組の複数のエンティティ間の複数の関係のそれぞれの出現状況に応じた第1のトリプルに含まれる第1の2つのエンティティ間の第1の関係と第2のトリプルに含まれる第2の2つのエンティティ間の第2の関係とを比較する。そして、判定部22は、第1のトリプルと第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定する。
【0032】
例えば、判定部22は、あるクラスペアに属するトリプルを列挙し、列挙されたトリプルに含まれるすべての関係について、その関係を有する主語と述語の組を列挙する。そして、判定部22は、各組について、一方の関係が持つ主語と述語の組み合わせが、他方の関係が持つ主語と述語の組み合わせをすべて含んでいる場合に、含意関係が成立すると判定する。
【0033】
図7を例にして説明すると、判定部22は、(Person,Company)に属するトリプルとして、(Ichiro,affiliation,A Corp.)、(Ichiro,member,A Corp.)、(Jiro,affiliation,B Corp.)、(Ichiro,member,B Corp.)、(Hanako,affiliation,C Corp.)を抽出する。続いて、判定部22は、(Person,Company)に属するトリプルに含まれる関係として、「affiliation:(Ichiro,A Corp.)、(Jiro,B Corp.)、(Hanako,C Corp.)」と「member:(Ichiro,A Corp.)、(Jiro,B Corp.)」とを生成する。この結果、判定部22は、関係「member」に含まれる(主語,述語)が関係「affiliation」にすべて含まれることから、関係「affiliation」が関係「member」を含意すると判定する。
【0034】
生成部23は、第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、第1のトリプルのそれぞれを示すベクトルの差分が第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に従って、ナレッジグラフ13とモデル14とに基づいた機械学習を実行し、エンティティのベクトルや関係のベクトルを生成する。
【0035】
例えば、生成部23は、あるクラスペア(C1,C2)に属する任意のエンティティe1,e2(e1はC1に属し、e2はC2に属する)間に、関係qがあるときに、必ず関係rがある(rがqを含意する)場合、トリプル(e1.q,e2)のスコアがトリプル(e1,r,e2)のスコアよりも高くなるようにそれぞれのベクトルを更新する。
【0036】
図8は、実施例1にかかるベクトル生成を説明する図である。図8では、図7で説明したナレッジグラフ13を用いた機械学習について説明する。図8に示すように、生成部23は、クラスペア(Person,Company)について、関係「affiliation」が関係「member」を含意すると判定されたことから、より具体的なリレーションである関係「member」の方を重要視した機械学習を実行する。
【0037】
例えば、生成部23は、トリプル(Ichiro,affiliation,A Corp.)およびトリプル(Ichiro,member,A Corp.)について、「v(Ichiro)+v(member)がv(Ichiro)+v(affiliation)よりv(A Corp.)に近くなる」ように、ベクトルを更新する。同様に、生成部23は、トリプル(Jiro,affiliation,B Corp.)およびトリプル(Jiro,member,B Corp.)について、「v(Jiro)+v(member)がv(Jiro)+v(affiliation)よりv(B Corp.)に近くなる」ように、ベクトルを更新する。
【0038】
このように、生成部23は、各クラスペアの各トリプルについて、ナレッジグラフ13とモデル14とに基づいた機械学習を実行し、エンティティのベクトルや関係のベクトルを生成する。なお、機械学習の手法は、勾配法などの各種手法を用いることができる。
【0039】
予測部24は、モデル14等を用いて、リンク予測、関係抽出、クラス予測などを実行する。具体的には、予測部24は、ベクトル(始点)とベクトル(関係)とをモデル14に入力してベクトル(終点)を予測する。また、予測部24は、ベクトル(始点)とベクトル(終点)とをモデルに入力して、ベクトル(関係)を予測する。
【0040】
例えば、予測部24は、エンティティ「Ichiro」と関係「brotherOf」で接続されるエンティティを予測する場合、エンティティ「Ichiro」のベクトル「v(Ichiro)」と関係「brotherOf」のベクトル「v(brotherOf)」とをモデル14に入力する。そして、予測部24は、モデル14によりベクトル演算「v(Ichiro)+v(brotherOf)」などが実行されることで出力された結果を予測結果として取得する。そして、予測部24は、予測結果を記憶部12に記憶したり、ディスプレイなどに表示したり、管理者端末に送信したりする。
【0041】
図9は、実施例1にかかるベクトル生成処理の流れを示すフローチャートである。図9に示すように、判定部22は、ナレッジグラフのすべてのベクトルを乱数で初期化し(S101)、ナレッジグラフから主語と目的語に対応するすべてのクラスペアのパターンを取得する(S102)。続いて、判定部22は、各クラスペアに属するリレーションについて、含意判定を実行する(S103)。
【0042】
そして、生成部23は、ナレッジグラフから、トリプル(e1,r,e2)を取得し(S104)、トリプルのベクトルの大きさである「||e1+r-e2||」が閾値(Margin)より大きいか否かを判定する(S105)。
【0043】
ここで、「||e1+r-e2||」が閾値より大きい場合(S105:Yes)、生成部23は、ベクトルの差分(e1+r-e2)が0に近づくように「e1,r,e2」それぞれのベクトルを更新する(S106)。
【0044】
そして、S106を実行した後、または、「||e1+r-e2||」が閾値未満の場合(S105:No)、生成部23は、関係rを含意する、または、関係rに含意される関係qを取得する(S107)。
【0045】
ここで、生成部23は、関係rが関係qを含意する場合(S108:Yes)、ベクトルの差分(e1+r-e2)がベクトルの差分(e1+q-e2)のスコアより大きくなるように、「e1,r,e2」のそれぞれのベクトルを更新する(S109)。
【0046】
一方、生成部23は、関係rが関係qを含意しない場合(S108:No)、ベクトルの差分(e1+r-e2)がベクトルの差分(e1+q-e2)より小さくなるように、「e1,r,e2」それぞれのベクトルを更新する(S110)。
【0047】
その後、生成部23は、ベクトルの更新がなくなった、または、規定回数繰り返した場合に(S111:Yes)、処理を終了する。なお、生成部23は、更新対象のベクトルが存在する場合、または、実行回数が規定回数未満の場合(S111:No)、S104以降を繰り返す。
【0048】
上述したように、実施例1にかかる情報処理装置10は、クラスペアごとに関係の含意を判定することで、抽象度が低い関係ではあるが複数のクラスペア間で使われるような関係に対し、エンティティ間の関係性の含意関係を適切に区別して機械学習に反映することができる。この結果、情報処理装置10は、精度の高いベクトル表現を生成することができる。
【0049】
次に、実施例2では、クラス階層を利用する手法2について説明する。なお、実施例2にかかる情報処理装置10の機能構成は、実施例1と同様なので、詳細な説明は省略する。実施例2にかかる情報処理装置10は、ベクトル表現の機械学習時に、クラス階層を利用した制約の適用を実行する。
【0050】
具体的には、判定部22は、第1の2つのエンティティのいずれかに接続された第1のエンティティと第2の2つのエンティティのいずれかに接続された第2のエンティティとの比較により、第1のトリプルと第2のトリプルとのうちいずれのトリプルがより具体性が高い情報と関連付いているか判定する。
【0051】
また、生成部23は、第1のトリプルがより具体性が高い情報と関連付いていると判定された場合、第1のトリプルのそれぞれを示すベクトルの差分が第2のトリプルのそれぞれを示すベクトルの差分より小さいという制約条件に従って、ナレッジグラフ13とモデル14とに基づいた機械学習を実行する。具体的には、生成部23は、クラスC´1がクラスC1の下位概念、クラスC´2がクラスC2の下位概念のとき、(C1,C2)に属するエンティティ(e1,e2)、(C´1,C´2)に属するエンティティ(e1´,e2´)について、トリプル(e1´,r,e2´)のスコアがトリプル(e1,r,e2)のスコアよりも高くなるようにそれぞれのベクトルを更新する。
【0052】
図10を用いて具体的に説明する。図10は、実施例2にかかるベクトル生成を説明する図である。図10に示すナレッジグラフは、オントロジーとして、クラス「Person」、クラス「Teacher」、クラス「Doctor」を有する。そして、クラス「Person」が上位階層(上位クラス)であり、クラス「Teacher」とクラス「Doctor」のそれぞれがクラス「Person」の下位階層(下位クラス)である。
【0053】
また、ナレッジグラフは、インスタンスとして、エンティティ「Taro」、エンティティ「Ichiro」、エンティティ「Hanako」、エンティティ「Jiro」を有する。そして、エンティティ「Taro」とエンティティ「Ichiro」は、クラス「Person」に属し、関係「friend」を有する。エンティティ「Hanako」とエンティティ「Jiro」は、クラス「Doctor」に属し、関係「friend」を有する。
【0054】
図10の場合、判定部22は、エンティティ「Hanako」のクラス「Teacher」がエンティティ「Taro」のクラス「Person」の下位概念かつエンティティ「Jiro」のクラス「Doctor」がエンティティ「Ichiro」のクラス「Person」の下位概念であることを特定する。このため、生成部23は、トリプル(Taro,friend,Ichiro)よりもトリプル(Hanako,friend,Jiro)のスコアが高くなるように、ベクトルを更新する。すなわち、生成部23は、「v(Hanako)+v(friend)=v(Jiro)」の方が「v(Taro)+v(friend)=v(Ichiro)」よりも大きくなるように、ベクトルを更新する。
【0055】
図11は、実施例2にかかるベクトル生成処理の流れを示すフローチャートである。図11に示すように、判定部22は、ナレッジグラフのすべてのベクトルを乱数で初期化し(S201)、レッジグラフの各トリプルについて、クラス階層に基づいて上位下位判定を行う(S202)。
【0056】
そして、生成部23は、ナレッジグラフから、トリプルt(e1,r,e2)を取得し(S203)、トリプルtのベクトルの大きさである「||e1+r-e2||」が閾値(Margin)より大きいか否かを判定する(S204)。
【0057】
ここで、「||e1+r-e2||」が閾値より大きい場合(S204:Yes)、生成部23は、ベクトルの差分(e1+r-e2)が0に近づくように「e1,r,e2」それぞれのベクトルを更新する(S205)。
【0058】
そして、S205を実行した後、または、「||e1+r-e2||」が閾値未満の場合(S204:No)、生成部23は、ナレッジグラフからトリプルtと上位下位関係にあるトリプルt´(e1´,r,e2´)を取得する(S206)。
【0059】
ここで、生成部23は、トリプルt´がトリプルtの上位トリプルである場合(S207:Yes)、ベクトルの差分(e1´+r-e2´)がベクトルの差分(e1+r-e2)のスコアより大きくなるように、「e1,e2,e1´,e2´」のそれぞれのベクトルを更新する(S208)。
【0060】
一方、生成部23は、トリプルt´がトリプルtの下位トリプルである場合(S207:No)、ベクトルの差分(e1´+r-e2´)がベクトルの差分(e1+r-e2)のスコアより小さくなるように、「e1,e2,e1´,e2´」それぞれのベクトルを更新する(S209)。
【0061】
その後、生成部23は、ベクトルの更新がなくなった、または、規定回数繰り返した場合に(S210:Yes)、処理を終了する。なお、生成部23は、更新対象のベクトルが存在する場合、または、実行回数が規定回数未満の場合(S210:No)、S203以降を繰り返す。
【0062】
上述したように、実施例2にかかる情報処理装置10は、同じ関係でも、より具体的なエンティティ間の関係を重視して機械学習を実行することで、精度の高いベクトル表現を生成することができる。
【0063】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0064】
上記実施例で用いたナレッジグラフ、エンティティ例、クラス例、関係例、数値例、閾値、表示例等は、あくまで一例であり、任意に変更することができる。また、実施例1で説明した手法1と実施例2で説明した手法は、組み合わせて用いることもできる。
【0065】
また、上記各実施例では、TransEを用いた機械学習を実行する例で説明したが、これに限定されるものではなく、他の機械学習モデルを採用することができる。そこで、実施例1と実施例2について、汎用的なモデルを用いたときのフローチャートを説明する。
【0066】
図12は、クラスペアを用いたベクトル生成処理の汎用的な流れを示すフローチャートである。図12に示す処理の流れにおいて、実施例1の図9と異なる点は、スコア関数として、f(エンティティ,関係,エンティティ)を用いる点である。なお、スコア関数は、様々な公知の関数を用いることができる。
【0067】
具体的には、図12のS301からS304は、図9のS101からS104と同様なので、詳細な説明は省略する。生成部23は、ナレッジグラフから取得したトリプルのベクトルを用いたスコア関数(f(e1,r,e2))が閾値(Margin)より大きいか否かを判定する(S305)。
【0068】
ここで、スコア関数(f(e1,r,e2))が閾値より大きい場合(S305:Yes)、生成部23は、スコア関数(f(e1,r,e2))が0に近づくように「e1,r,e2」それぞれのベクトルを更新する(S306)。
【0069】
そして、S306を実行した後、または、スコア関数(f(e1,r,e2))が閾値未満の場合(S305:No)、生成部23は、関係rを含意する、または、関係rに含意される関係qを取得する(S307)。
【0070】
ここで、生成部23は、関係rが関係qを含意する場合(S308:Yes)、スコア関数(f(e1,r,e2))がスコア関数(f(e1,q,e2))より大きくなるように、「e1,r,e2」のそれぞれのベクトルを更新する(S309)。
【0071】
一方、生成部23は、関係rが関係qを含意しない場合(S308:No)、スコア関数(f(e1,r,e2))がスコア関数(f(e1,q,e2))より小さくなるように、「e1,r,e2」それぞれのベクトルを更新する(S310)。
【0072】
その後、生成部23は、ベクトルの更新がなくなった、または、規定回数繰り返した場合に(S311:Yes)、処理を終了する。なお、生成部23は、更新対象のベクトルが存在する場合、または、実行回数が規定回数未満の場合(S311:No)、S304以降を繰り返す。
【0073】
図13は、クラス階層を用いたベクトル生成処理の汎用的な流れを示すフローチャートである。図13に示す処理の流れにおいて、実施例2の図11と異なる点は、スコア関数として、f(エンティティ,関係,エンティティ)を用いる点である。なお、スコア関数は、様々な公知の関数を用いることができる。
【0074】
具体的には、図13のS401からS403は、図11のS201からS203と同様なので、詳細な説明は省略する。生成部23は、ナレッジグラフから取得したトリプルのベクトルを用いたスコア関数(f(e1,r,e2))が閾値(Margin)より大きいか否かを判定する(S404)。
【0075】
ここで、スコア関数(f(e1,r,e2))が閾値より大きい場合(S404:Yes)、生成部23は、スコア関数(f(e1,r,e2))が0に近づくように「e1,r,e2」それぞれのベクトルを更新する(S405)。
【0076】
そして、S405を実行した後、または、スコア関数(f(e1,r,e2))が閾値未満の場合(S404:No)、生成部23は、ナレッジグラフからトリプルtと上位下位関係にあるトリプルt´(e1´,r,e2´)を取得する(S406)。
【0077】
ここで、生成部23は、トリプルt´がトリプルtの上位トリプルである場合(S407:Yes)、スコア関数(f(e1´,r,e2´))がスコア関数(f(e1,r,e2))より大きくなるように、「e1,e2,e1´,e2´」それぞれのベクトルを更新する(S408)。
【0078】
一方、生成部23は、トリプルt´がトリプルtの下位トリプルである場合(S407:No)、スコア関数(f(e1´,r,e2´))がスコア関数(f(e1,r,e2))より小さくなるように、「e1,e2,e1´,e2´」それぞれのベクトルを更新する(S409)。
【0079】
その後、生成部23は、ベクトルの更新がなくなった、または、規定回数繰り返した場合に(S410:Yes)、処理を終了する。なお、生成部23は、更新対象のベクトルが存在する場合、または、実行回数が規定回数未満の場合(S410:No)、S403以降を繰り返す。
【0080】
上述したように、情報処理装置10は、上記手法1および手法2を広く利用される機械学習モデルに適用することができるので、汎用性を向上させることができる。
【0081】
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0082】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0083】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0084】
図14は、ハードウェア構成例を説明する図である。図14に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図14に示した各部は、バス等で相互に接続される。
【0085】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、図6に示した機能を動作させるプログラムやDBを記憶する。
【0086】
プロセッサ10dは、図6に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図6等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、取得部21、判定部22、生成部23、予測部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、取得部21、判定部22、生成部23、予測部24等と同様の処理を実行するプロセスを実行する。
【0087】
このように、情報処理装置10は、プログラムを読み出して実行することで機械学習方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0088】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0089】
10 情報処理装置
11 通信部
12 記憶部
13 ナレッジグラフ
14 モデル
20 制御部
21 取得部
22 判定部
23 生成部
24 予測部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14