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

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

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

特許7416082学習方法、学習装置、学習プログラム、予測方法、予測装置および予測プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】学習方法、学習装置、学習プログラム、予測方法、予測装置および予測プログラム
(51)【国際特許分類】
   G06F 16/28 20190101AFI20240110BHJP
【FI】
G06F16/28
【請求項の数】 12
(21)【出願番号】P 2021550826
(86)(22)【出願日】2019-10-01
(86)【国際出願番号】 JP2019038822
(87)【国際公開番号】W WO2021064879
(87)【国際公開日】2021-04-08
【審査請求日】2022-03-23
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鵜飼 孝典
(72)【発明者】
【氏名】岡嶋 成司
【審査官】吉田 誠
(56)【参考文献】
【文献】特開2018-156332(JP,A)
【文献】蛭子 琢磨ほか,知識グラフの補完におけるTranslation-based Modelsの発展と課題,一般社団法人人工知能学会 研究会 SWO:セマンティックウェブとオントロジー研究会,日本,一般社団法人人工知能学会,2018年03月18日,03-1~03-6ページ
【文献】大貫 陽平,DNNによるRDF上の単語間の関係の予測,一般社団法人人工知能学会 研究会 SWO:セマンティックウェブとオントロジー研究会 SIG-SWO-,日本,一般社団法人人工知能学会,2017年02月26日,02-01~02-08ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込む学習を行う学習方法において、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データを取得し、
前記複数組のRDFデータに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータそれぞれについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習する
処理をコンピュータが実行する学習方法。
【請求項2】
該学習する処理は、前記複数組のRDFデータに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように対応付けた教師データを生成する処理を含み、
該生成した教師データを用いて、前記複数組のRDFデータそれぞれについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習する
ことを特徴とする請求項1に記載の学習方法。
【請求項3】
該学習する処理は、前記複数組のRDFデータに含まれるそれぞれの組の主語、述語および目的語の文字列を入力し、該生成した教師データを用いて、前記主語の文字列をベクトル表現した主語のベクトルと前記述語の文字列をベクトル表現した述語のベクトルとの和と、前記目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さくなるように学習し、入力した主語、述語および目的語の文字列の接続関係の有無を出力する学習モデルを生成する
ことを特徴とする請求項2に記載の学習方法。
【請求項4】
主語、述語または目的語のいずれかを予測対象とする組を入力すると、学習した結果に基づいて、前記予測対象の文字列を予測する
ことを特徴とする請求項1に記載の学習方法。
【請求項5】
該予測する処理は、
前記学習した結果に含まれる学習済みのベクトルの中から前記予測対象以外の所定語の文字列をベクトル表現したベクトルを取得し、
前記学習した結果に含まれる学習済みのベクトルの中から一つずつベクトルを選択し、
該選択したベクトルと、前記予測対象以外の所定語の文字列をベクトル表現したベクトルとを用いて、主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さいか否かを判定し、
小さいと判定した、選択したベクトルに対応する文字列を前記予測対象の文字列とする
ことを特徴とする請求項4に記載の学習方法。
【請求項6】
該予測する処理は、入力された組から予測対象以外の所定語の文字列を取得し、
前記学習した結果に含まれる学習済みの文字列の中から一つずつ文字列を選択し、
該選択した文字列と、前記予測対象以外の所定語の文字列とを用いて、前記学習した結果に含まれる学習モデルに、主語の文字列、述語の文字列、目的語の文字列として入力し、前記学習モデルから接続関係が有るか否かを出力し、接続関係が有ると出力された、選択した文字列を前記予測対象の文字列とする
ことを特徴とする請求項4に記載の学習方法。
【請求項7】
副作用報告事例に関する主語と、患者、疾患または医薬品に関する述語と、患者属性、病名、医薬品名または既知の副作用に関する目的語を1組として含む医療に関するRDFデータであって、
該予測する処理は、前記学習した結果に基づいて、医薬品名を入力として、副作用を予測する
ことを特徴とする請求項4から請求項6のいずれか1つに記載の学習方法。
【請求項8】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込む学習を行う学習装置において、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データを取得する取得部と、
前記複数組のRDFデータに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータそれぞれについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習する学習部と、
を有することを特徴とする学習装置。
【請求項9】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込む学習を行う学習プログラムにおいて、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データを取得し、
前記複数組のRDFデータに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータそれぞれについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習する
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項10】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込んで学習を行った結果に基づいて、予測を行う予測方法において、
主語、述語または目的語のいずれかを予測対象とする主語、述語および目的語の入力データを取得し、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習した結果に基づいて、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルを取得し、
前記学習した結果に含まれる学習済みの文字列をベクトル表現したベクトルの中から一つずつベクトルを選択し、
該選択したベクトルと、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルとを用いて、主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さいか否かを判定し、
小さいと判定した、選択したベクトルに対応する文字列を前記予測対象の文字列として予測する
処理をコンピュータが実行することを特徴とする予測方法。
【請求項11】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込んで学習を行った結果に基づいて、予測を行う予測装置において、
主語、述語または目的語のいずれかを予測対象とする主語、述語および目的語の入力データを取得する第1の取得部と、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習した結果に基づいて、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルを取得する第2の取得部と、
前記学習した結果に含まれる学習済みの文字列をベクトル表現したベクトルの中から一つずつベクトルを選択する選択部と、
前記選択部によって選択されたベクトルと、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルとを用いて、主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さいか否かを判定する判定部と、
前記判定部によって小さいと判定された、選択されたベクトルに対応する文字列を前記予測対象の文字列として予測する予測部と、
を有することを特徴とする予測装置。
【請求項12】
第1の集合に属する主語および目的語の文字列と、第2の集合に属する述語の文字列とをベクトル表現してベクトル空間に埋め込んで学習を行った結果に基づいて、予測を行う予測プログラムにおいて、
主語、述語または目的語のいずれかを予測対象とする主語、述語および目的語の入力データを取得し、
主語、述語および目的語を1組とする、複数組のRDF(Resource Description Framework)データに含まれる第1の組の主語または目的語の文字列と、前記複数組のRDFデータに含まれる第2の組の述語の文字列が同一である場合に、前記第1の組の主語の文字列をベクトル表現した主語ベクトルまたは目的語の文字列をベクトル表現した目的語ベクトルと、前記第2の組の述語の文字列をベクトル表現した述語ベクトルとが同一になるように、かつ、前記複数組のRDFデータについて、RDFデータに含まれる主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、RDFデータに含まれる目的語の文字列をベクトル表現した目的語のベクトルとの前記ベクトル空間における距離が所定値より小さくなるように、前記複数組のRDFデータに含まれる文字列ごとにベクトル表現したベクトルを学習した結果に基づいて、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルを取得し、
前記学習した結果に含まれる学習済みの文字列をベクトル表現したベクトルの中から一つずつベクトルを選択し、
該選択したベクトルと、前記予測対象以外の前記入力データに含まれる文字列をベクトル表現したベクトルとを用いて、主語の文字列をベクトル表現した主語のベクトルと述語の文字列をベクトル表現した述語のベクトルとの和と、目的語の文字列をベクトル表現した目的語のベクトルとの前記距離が所定値より小さいか否かを判定し、
小さいと判定した、選択したベクトルに対応する文字列を前記予測対象の文字列として予測する
処理をコンピュータに実行させることを特徴とする予測プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法などに関する。
【背景技術】
【0002】
ナレッジグラフのリンク予測をするために、3つ(トリプル)のデータからなる関係情報をナレッジグラフに埋め込む技術(「TransE」という)が開示されている(例えば、非特許文献1を参照)。関係情報として、RDF(Resource Description Framework)が挙げられる。RDFは、ウェブ上の情報のメタデータを記述するためのデータ構造を示し、エンティティ、プロパティ、エンティティの3つのデータを1組としている。ここで、エンティティ、プロパティ、エンティティは、主語(subject)、述語(predicate)、目的語(object)の3つの要素を関係情報として表現される。主語(subject)、述語(predicate)、目的語(object)は、「主語の述語は目的語である」という関係性を持つ関係情報である。
【0003】
TransEは、2つのエンティティh,tがE(エンティティの集合)に属し、且つプロパティrがR(プロパティの集合)に属するようなトリプルのデータ(h,r,t)の集合Sをもとに、エンティティおよびプロパティのベクトルの埋め込みを学習する。すなわち、TransEは、(h,r,t)の3つのデータを組(トリプル)としたナレッジグラフの集合をベクトル空間上に埋め込み、機械学習の技術により、ベクトルを変換して、データ構造を得る技術である。ここでいうデータ構造は、トリプルのデータ(h,r,t)のそれぞれのベクトル表現V、V、Vについて、V+VができるだけVと等しくなるようなデータ構造のことをいう。
【0004】
これにより、TransEにより学習されたデータ構造を用いると、V+V≒Vのような計算ができるようになるので、V+Vに対応するtを予測することができる。また、TransEにより学習されたデータ構造を用いると、V-Vに対応するh、V-Vに対応するrを予測することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-32704号公報
【文献】特開2016-99705号公報
【文献】特開2018-194944号公報
【文献】特開2017-76403号公報
【非特許文献】
【0006】
【文献】Antonine Bordes et al ”Translating Embeddings for Modeling Multi-relational Data”
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、RDFでは、述語で使用される文字列が主語や目的語で使用される場合がある。また、主語や目的語で使用される文字列が述語で使用される場合がある。
【0008】
かかる場合には、TransEでは、主語と目的語を示すエンティティの集合Eと述語を示すプロパティの集合Rとが独立しているので、同じ文字列であっても、主語と目的語で使用される場合と述語で使用される場合とでベクトルが異なる。したがって、TransEでは、RDFのデータ構造の性質上、述語を主語または目的語として扱うことができないため、RDFのデータのうち欠落した部分を予測することが難しい。すなわち、TransEでは、学習済みのデータ構造を有するRDFを用いても、データの予測精度を向上させることが難しいという問題がある。
【0009】
特に、RDFのデータには、欠落した部分が多いことが知られているので、簡便に検索漏れを減らすために、検索の予測精度を向上させることが望まれる。
【0010】
本発明は、1つの側面では、RDFのデータにおいて、検索の予測精度を向上させることを目的とする。
【課題を解決するための手段】
【0011】
1つの態様では、教師データの学習方法が、第一ノード、プロパティおよび第二ノードから構成されるRDF(Resource Description Framework)データを取得し、該取得したRDFデータのうち、第一のレコードの第一ノードまたは第二ノードと文字列が同じ第二のレコードのプロパティを特定し、前記第一のレコードの第一ノードまたは第二ノードと、該特定した前記第二のレコードのプロパティとを対応付けたRDFデータから成る教師データを生成し、該生成した教師データについて、前記RDFデータと対応付けられた第一ノードのベクトルにプロパティのベクトルを加えたベクトルが、前記RDFデータと対応付けられた第二ノードのベクトルに近づくように学習する、処理をコンピュータが実行する。
【発明の効果】
【0012】
1つの態様によれば、RDFのデータにおいて、検索の予測精度を向上させることができる。
【図面の簡単な説明】
【0013】
図1図1は、実施例に係る学習システムの構成を示す機能ブロック図である。
図2図2は、実施例に係るRDFデータの一例を示す図である。
図3図3は、実施例に係るナレッジグラフを示す図である。
図4A図4Aは、実施例に係る初期化処理の一例を示す図である。
図4B図4Bは、実施例に係る初期化処理の一例を示す図である。
図5A図5Aは、実施例に係る学習処理の一例を示す図である。
図5B図5Bは、実施例に係る学習処理の一例を示す図である。
図5C図5Cは、実施例に係る学習処理の一例を示す図である。
図5D図5Dは、実施例に係る学習処理の一例を示す図である。
図5E図5Eは、実施例に係る学習処理の一例を示す図である。
図5F図5Fは、実施例に係る学習処理の一例を示す図である。
図5G図5Gは、実施例に係る学習処理の一例を示す図である。
図5H図5Hは、実施例に係る学習処理の一例を示す図である。
図6図6は、実施例に係る予測処理の一例を示す図である。
図7A図7Aは、実施例に係る学習処理のフローチャートの一例を示す図である。
図7B図7Bは、実施例に係る学習処理のフローチャートの別の例を示す図である。
図8図8は、実施例に係る初期化処理のフローチャートの一例を示す図である。
図9図9は、実施例に係る予測処理のフローチャートの一例を示す図である。
図10図10は、実施例に係るRDFデータの別の例を示す図である。
図11図11は、RDFデータの別の例を利用した予測処理を示す図である。
図12図12は、実施例に係る出力画面の一例を示す図である。
図13図13は、実施例に係る学習処理においてニューラルネットワークを用いて学習することを説明する図である。
図14図14は、学習プログラムを実行するコンピュータの一例を示す図である。
図15図15は、TransEの学習の一例を示す参考図である。
図16図16は、TransEの学習の一例を示す参考図である。
図17図17は、TransEの学習の一例を示す参考図である。
図18図18は、TransEを用いた場合に予測がうまくいかない一例を示す参考図である。
図19図19は、TransEを用いた場合に予測がうまくいかない一例を示す参考図である。
図20図20は、TransEを用いた場合に予測がうまくいかない一例を示す参考図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する学習方法、学習装置、学習プログラム、予測方法、予測装置および予測プログラムの実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【0015】
まず、ナレッジグラフのリンク予測をするために、複数のデータからなる関係情報をナレッジグラフに埋め込む「TransE」について説明する。「TransE」は、3つのデータを1組としたナレッジグラフの集合をベクトル空間上に埋め込み、機械学習の技術により、ベクトルを変換して所定のデータ構造を得る技術である。所定のデータ構造とは、1組のデータが(h,r,t)(h:主語、r:述語、t:目的語)である場合に、h、r、tそれぞれのベクトルVについて、V+VができるだけVと等しくなるようなデータ構造のことをいう。これにより、TransEにより学習されたデータ構造を用いると、V+V≒Vのような計算ができるようになるので、V+Vに対応するtを予測することができる。また、TransEにより学習されたデータ構造を用いると、V-Vに対応するh、V-Vに対応するrを予測することができる。
【0016】
なお、(h,r,t)のような3つのデータを1組として、「主語の述語は目的語である」という関係性を記述するデータ形式のデータをRDF(Resource Description Framework)データというものとする。また、RDFデータは、主語、述語、目的語の3つのデータを1組としたデータ構造であると説明したが、適宜、主語および目的語のことを「エンティティ」、述語のことを「プロパティ」と呼ぶ場合がある。
【0017】
ここで、図15図17を参照して、TransEの学習の一例について説明する。図15図17は、TransEの学習の一例を示す参考図である。なお、RDFデータには、(A,r1,B)、(C,r1,B)が存在する場合とする。
【0018】
図15で示すグラフは、TransEの学習で用いられるRDFデータ内のデータの接続性を、ナレッジグラフで表現したものである。すなわち、TransEは、「A」+「r1」が「B」に、「C」+「r1」が「B」に近くなるように写像する。以降では、かかる写像の学習を2次元で説明する。
【0019】
図16に示すように、「A」のベクトルV、「r1」のベクトルVr1、「B」のベクトルV、「C」のベクトルVを乱数で初期化して2次元空間に配置する。
【0020】
次に、図17に示すように、学習により、V+Vr1がVに、V+Vr1がVに近くなるようにそれぞれのベクトルを最適化する。この結果、学習により、Bの位置が最適化される。すなわち、V+Vr1が指す位置とVが指す位置との距離が所定の範囲(スコア)内になるように、V+Vr1が指す位置とVが指す位置との距離が所定の範囲(スコア)内になるように、学習される。
【0021】
次に、TransEにより学習された学習済みのRDFデータを用いた場合に予測がうまくいかない一例を、図18図20を参照して説明する。図18図20は、TransEを用いた場合に予測がうまくいかない一例を示す参考図である。なお、RDFデータには、(A,birthplace,Spain)、(B,出身,スペイン)、(birthplace,翻訳,出身)が存在する場合とする。
【0022】
図18に示すように、TransEにより学習されたRDFデータ内のデータの接続性を、ナレッジグラフで表現したものである。
【0023】
図19に示すように、TransEより学習された(A,birthplace,Spain)、(B,出身,スペイン)、(birthplace,翻訳,出身)のそれぞれのベクトルが2次元空間に表わされている。TransEでは、主語と目的語を示すエンティティの集合と、述語を示すプロパティの集合とが独立している。したがって、プロパティで示される「birthplace」とエンティティで示される「birthplace」は、文字列が同じであるが、全く異なるベクトルで表わされる。プロパティで示される「出身」とエンティティで示される「出身」は、文字列が同じであるが、全く異なるベクトルで表わされる。
【0024】
すると、TransEでは、「A」と「Spain」に関係があることは学習されるが、「A」と「スペイン」に関係があることが学習されない。また、「B」と「スペイン」に関係があることは学習されるが、「B」と「Spain」に関係があることが学習されない。
【0025】
すなわち、図20に示すように、例えば、「B」の「出身」が「Spain」であることを予測できない。また、図示されていないが、「A」の「出身」が「スペイン」であることを予測できない。つまり、「A」と「B」は同じ「出身」であり、「Spain」と「スペイン」は「翻訳」関係なので、「B」と「Spain」は近い関係になってほしいところ、遠い関係となってしまい、「B」の「出身」が「Spain」であることを予測できない。同様に、「A」と「B」は同じ「出身」であり、「Spain」と「スペイン」は「翻訳」関係なので、「A」と「スペイン」は近い関係になってほしいところ、遠い関係となってしまい、「A」の「出身」が「スペイン」であることを予測できない。すなわち、TransEでは、学習済みのデータ構造を有するRDFデータを用いても、データの予測精度を向上させることが難しいという問題がある。
【0026】
そこで、以降の実施例では、学習済みのデータ構造を有するRDFデータを用いて、データの予測精度を向上させる学習システムについて説明する。
【実施例
【0027】
[学習システムの構成]
図1は、実施例に係る学習システムの構成を示す機能ブロック図である。学習システム9は、学習装置1と予測装置3とを含む。学習装置1は、主語、述語および目的語から構成されるRDFデータにおいて、主語のベクトルに述語のベクトルを加えたベクトルが、目的語のベクトルに近づくように学習する。この学習の際に、学習装置1は、述語の文字列が主語または目的語として使われる場合も、同じベクトルとして使うようにして学習する。また、予測装置3は、主語、述語または目的語のいずれかを予測対象とする主語、述語および目的語の入力データを入力すると、RDFデータを学習した結果に基づいて、予測対象を予測する。なお、RDFデータは、主語、述語、目的語の3つのデータからなるデータ構造であると説明したが、以降、適宜、主語や目的語のことを「エンティティ」、述語のことを「プロパティ」と呼ぶ場合がある。
【0028】
学習装置1は、制御部10と、記憶部20とを有する。
【0029】
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、初期化部11および学習部12を有する。なお、初期化部11は、取得部、特定部および生成部の一例である。
【0030】
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、RDFデータ21および学習データ22を有する。
【0031】
RDFデータ21は、ウェブ上の情報のメタデータを記述するためのデータ構造を示し、主語、述語、目的語の3つのデータを1組としている。すなわち、RDFデータ21は、エンティティ、プロパティ、エンティティの3つのデータを1組としている。そして、RDFデータ21のそれぞれの組は、「主語の述語は目的語である」という関係性を持つ。RDFデータ21では、この関係性を有向ラベル付きのナレッジグラフで表現できる。なお、主語、述語、目的語の1組の3つのデータは、「トリプル」と呼ばれる。
【0032】
ここで、RDFデータ21の一例を、図2を参照して説明する。図2は、実施例に係るRDFデータの一例を示す図である。図2に示すように、エンティティ(主語)、プロパティ(述語)、エンティティ(目的語)の3つのデータを1組としたRDFデータ21が表わされている。それぞれの組は、「主語の述語は目的語である」という関係性を持っている。
【0033】
一例として、RDFデータ21には、(主語、述語、目的語)として(A,profession,Actor)が記憶されている。(A,profession,Actor)は、「“A”の“profession”は“Actor”である」という関係性を持つ。また、(主語、述語、目的語)として(A,gender,Male)が記憶されている。(A,gender,Male)は、「“A”の“gender”は“Male”である」という関係性を持つ。
【0034】
図2で示すRDFデータ21をナレッジグラフで表現したものが図3である。図3は、実施例に係るナレッジグラフを示す図である。(主語、述語、目的語)の主語、目的語は、ノードで示され、主語を始点とし、目的語を終点としている。(主語、述語、目的語)の述語は、矢印の下にラベルで示されている。
【0035】
一例として、(主語、述語、目的語)が(A,profession,Actor)である場合には、「A」のノードを始点とし、「Actor」のノードを終点として、「profession」をラベルとしている。(主語、述語、目的語)が(A,gender,Male)である場合には、「A」のノードを始点とし、「Male」のノードを終点として、「gender」をラベルとしている。
【0036】
図1に戻って、学習データ22は、RDFデータ21を学習した結果のデータである。例えば、学習データ22には、RDFデータ21に含まれる主語、述語および目的語に含まれる文字列ごとの学習済みのベクトルの集合が含まれる。
【0037】
初期化部11は、RDFデータ21に含まれるそれぞれの組の3つのデータについて、ベクトルの初期化を行う。例えば、初期化部11は、RDFデータ21に含まれる組を順番に読み込む。初期化部11は、読み込んだ組の3つのデータのそれぞれのベクトルを、乱数で初期化する。このとき、初期化部11は、主語または目的語を示すエンティティの文字列と述語を示すプロパティの文字列とが同じである場合には、エンティティの文字列とプロパティの文字列とを対応付け、同じベクトルを指すようにする。初期化部11は、RDFデータ21に含まれる全ての組の初期化処理が終了するまで繰り返す。なお、組に含まれるエンティティのベクトルと、プロパティのベクトルとは、次元を同じにする。また、初期化部に11によって生成された対応付けは、教師データの一例である。
【0038】
学習部12は、RDFデータ21に含まれる全ての組について、主語を示すエンティティのベクトルに述語を示すプロパティのベクトルを加えたベクトルが、目的語を示すエンティティのベクトルに近づくように学習する。例えば、学習部12は、ある組の述語を示すプロパティの文字列が別の組の主語を示すエンティティの文字列と対応付けられている場合には、対応付けられている文字列のプロパティとエンティティとを同じベクトルとして計算する。一例として、学習部12は、ある組の主語を示すエンティティのベクトルに、ある組のプロパティと文字列が同じである別の組のエンティティの共通するベクトルを加えたベクトルが、ある組の目的語を示すエンティティのベクトルに近づくように学習する。すなわち、学習部12は、エンティティの集合E1がE(全体の集合)に属し、且つプロパティの集合E2がE1(エンティティの集合)に属するようなトリプルのデータ(h,r,t)の集合をもとに、エンティティおよびプロパティのベクトルの埋め込みを学習する。そして、学習部12は、学習した結果を学習データ22に保存する。学習データ22に保存する学習した結果には、RDFデータ21に含まれる主語、述語および目的語に含まれる文字列ごとの学習済みのベクトルの集合が含まれる。
【0039】
予測装置3は、ユーザ端末5と接続し、制御部30と、記憶部40とを有する。
【0040】
制御部30は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部30は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部30は、入力部31、予測部32および出力部33を有する。
【0041】
記憶部40は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部40は、学習データ41を有する。なお、学習データ41は、学習装置1の学習データ22と同じであるので、その説明を省略する。
【0042】
入力部31は、ユーザ端末5から、主語、述語または目的語のいずれかを予測対象とするRDFデータ21における組を入力する。
【0043】
予測部32は、学習済みのベクトルを用いて、入力された組の予測対象を予測する。例えば、予測部32は、学習データ22の文字列ごとの学習済みのベクトルの集合を用いて、入力された組の予測対象を、以下のように予測する。予測部32は、学習済みのベクトルの集合から、入力された組の予測対象以外の2つの文字列に対応するベクトルを取得する。そして、予測部32は、学習済みのベクトルの集合から1つずつベクトルを選択する。そして、予測部32は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、主語のベクトルに述語のベクトルを加えたベクトルから目的語のベクトルを引いたベクトルが予め定められたスコアより小さいベクトルを検索する。予測部32は、検索できたベクトルに対応する文字列を予測対象として予測する。一例として、「“A”の“出身”が何であるかを予測する場合には、(h,r,t)が(“A”,“出身”,t)であり、目的語が予測対象となる。そこで、予測部32は、“A”のベクトルVに“出身”のベクトルVを加えたベクトルから選択したベクトルVを引いたベクトルがスコアより小さくなるような選択したベクトルVを検索する。そして、予測部32は、検索できた、選択したベクトルVに対応する文字列tを予測対象として予測する。
【0044】
出力部33は、ユーザ端末5に対して、予測部32によって予測された予測対象を出力する。
【0045】
[初期化処理の一例]
ここで、実施例に係る初期化処理の一例を、図4Aおよび図4Bを参照して説明する。図4Aおよび図4Bは、実施例に係る初期化処理の一例を示す図である。なお、図4Aおよび図4Bでは、RDFデータ21に含まれる(主語,述語,目的語)が(A,birthplace,Spain)、(B,出身,スペイン)、(birthplace,翻訳,出身)の場合について説明する。RDFデータ21のいずれの項目のベクトルもまだ初期化されていないものとする。主語、述語、目的語のベクトルは、全てn次元とする。
【0046】
図4Aに示すように、初期化部11は、RDFデータ21から1行目の組の3つの項目を読み込む。初期化部11は、1項目の項目「A」(ノード(A))のベクトルはまだ初期化されていないので、n次元のベクトルを乱数で初期化する。初期化部11は、3項目の項目「Spain」(ノード(B))のベクトルはまだ初期化されていないので、n次元のベクトルを乱数で初期化する。初期化部11は、2項目の項目「birthplace」(プロパティ(birthplace))のベクトルはまだ初期化されていないので、n次元のベクトルを乱数で初期化する。
【0047】
次に、初期化部11は、RDFデータ21から2行目の組の3つの項目を読み込み、1行目と同様に、「B」(ノード(B))、「スペイン」(ノード(スペイン))、「出身」(プロパティ(出身))のそれぞれのベクトルを初期化する。
【0048】
次に、初期化部11は、RDFデータ21から3行目の組の3つの項目を読み込む。初期化部11は、1項目の項目「birthplace」(ノード(birthplace))のベクトルは既に初期化されているので、ノード(birthplace)がプロパティ(birthplace)のベクトルを指すようにする。すなわち、初期化部11は、3行目のノードの文字列と1行目のプロパティの文字列とを対応付け、同じベクトルを指すようにする。また、初期化部11は、3項目の項目「出身」(ノード(出身))のベクトルは既に初期化されているので、ノード(出身)がプロパティ(出身)のベクトルを指すようにする。すなわち、初期化部11は、3行目のノードの文字列と2行目のプロパティの文字列とを対応付け、同じベクトルを指すようにする。また、初期化部11は、2項目の項目「翻訳」(プロパティ(翻訳))のベクトルはまだ初期化されていないので、n次元のベクトルを乱数で初期化する。
【0049】
図4Bに示すように、この一例では、7つのベクトルが生成される。なお、このように生成された対応付けは、教師データの一例である。
【0050】
[学習処理の一例]
ここで、実施例に係る学習処理の一例を、図5A図5Hを参照して説明する。図5A図5Hは、実施例に係る学習処理の一例を示す図である。なお、図5A図5Hでは、RDFデータ21に含まれる(主語,述語,目的語)が(A,birthplace,Spain)、(B,出身,スペイン)、(birthplace,翻訳,出身)の場合について説明する。RDFデータ21の全ての項目が既にn次元で初期化されているものとする。ここでは、便宜的に2次元で説明する。
【0051】
図5Aに示すように、学習部12は、初期化部11によって初期化されたベクトルを配置する。
【0052】
次に、学習部12は、RDFデータ21に含まれる全ての組について、主語を示すエンティティ(ノードと同義)のベクトルに述語を示すプロパティのベクトルを加えたベクトルが、目的語を示すエンティティ(ノードと同義)のベクトルに近づくように学習する。図5Bに示すように、学習部12は、エンティティ「A」のベクトルにプロパティ「birthplace」のベクトルを加えたベクトルと、エンティティ「Spain」のベクトルとを近寄せる。
【0053】
次に、図5Cに示すように、学習部12は、エンティティ「B」のベクトルにプロパティ「出身」のベクトルを加えたベクトルと、エンティティ「スペイン」のベクトルとを近寄せる。
【0054】
図5Dに示すように、エンティティ「B」のベクトルにプロパティ「出身」のベクトルを加えたベクトルと、エンティティ「スペイン」のベクトルとを近寄せた結果が、表わされている。
【0055】
次に、図5Eに示すように、学習部12は、エンティティ「birthplace」のベクトルにプロパティ「翻訳」のベクトルを加えたベクトルと、エンティティ「出身」のベクトルとを近寄せる。
【0056】
図5Fに示すように、エンティティ「birthplace」のベクトルにプロパティ「翻訳」のベクトルを加えたベクトルと、エンティティ「出身」のベクトルとを近寄せた結果が、表わされている。この結果、例えば、エンティティ「B」のベクトルにプロパティ「出身」のベクトルを加えたベクトルがエンティティ「スペイン」のベクトルから遠くなる。
【0057】
そこで、図5Gに示すように、学習部12は、それぞれの距離が十分縮まるまで繰り返す。繰り返す回数は、ハイパーパラメータの1つとして予め定められる。
【0058】
この結果、図5Hに示すように、学習部12は、学習結果としてそれぞれの距離が十分縮まったベクトルを生成する。学習部12は、学習結果を学習データ22に保存する。学習結果は、学習済みのベクトルの集合である。
【0059】
[予測処理の一例]
ここで、実施例に係る予測処理の一例を、図6を参照して説明する。図6は、実施例に係る予測処理の一例を示す図である。なお、図6では、図5Hに示した学習済みのベクトルの集合を保存した学習データ22が利用されるものとする。
【0060】
ここでは、「A」の「出身」が何であるかの問い合わせ(A,出身,?p(0.1))について説明する。「?」は、予測対象を示す予測変数を意味する。予測変数の後の値「0.1」は、ベクトルの許容誤差を示すスコアを意味する。一例として、スコアは、図6で示す円内を示す情報のことをいう。
【0061】
図6に示すように、予測部32は、学習済みのベクトルの集合から、入力された組の予測対象以外の2つの文字列に対応するベクトルを取得する。ここでは、「A」および「出身」に対応するそれぞれのベクトルが取得される。
【0062】
続いて、予測部32は、学習済みのベクトルの集合から1つずつベクトルを選択する。そして、予測部32は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、主語のベクトルに述語のベクトルを加えたベクトルから目的語のベクトルを引いたベクトルがスコアより小さいベクトルを検索する。ここでは、予測部32は、選択したベクトルごとに、主語を示す「A」のベクトルに述語を示す「出身」のベクトルを加えたベクトルから、選択したベクトルを引いたベクトルがスコアより小さいベクトルになるかどうかを判定する。
【0063】
そして、予測部32は、検索できたベクトルに対応する文字列を予測対象として予測する。ここでは、「Spain」と「スペイン」が予測対象として予測される。
【0064】
これにより、予測部32は、検索の予測精度を向上させることができる。すなわち、エンティティとしての「birthplace」とエンティティとしての「出身」は、「翻訳」関係である。プロパティとしての「出身」は、エンティティ「出身」として使われるとき、プロパティ「出身」を表現するベクトルがエンティティ「出身」を表現するベクトルと同じベクトルで表現される。プロパティとしての「birthplace」は、エンティティ「birthpalace」として使われるとき、プロパティ「birthplace」を表現するベクトルがエンティティ「birthplace」を表現するベクトルと同じベクトルで表現される。したがって、プロパティ「birthplace」を含むA組「A birthplace Spain」とエンティティ「birthplace」を含むC組「birthplace 翻訳 出身」が近くに配置されるようになる。加えて、プロパティ「出身」を含むB組「B 出身 スペイン」とエンティティ「出身」を含むC組が近くに配置されるようになる。よって、プロパティ「birthplace」を含むA組とプロパティ「出身」を含むB組とは近くに配置されるようになり、今回の場合では、「A」の「出身」として翻訳関係の「Spain」と「スペイン」が予測される。
【0065】
言い換えれば、プロパティがエンティティとして使われるとき、プロパティを表現するベクトルがエンティティの計算で用いられる。このため、プロパティ間の関係、プロパティとエンティティの関係がプロパティのベクトルに反映される。プロパティの組の構造が予測に利用され、検索の予測精度が上がる。
【0066】
[学習処理のフローチャート]
ここで、実施例に係る学習処理のフローチャートについて、図7Aおよび図7Bを参照して説明する。なお、図7Aおよび図7Bでは、最大の繰り返し回数を示すハイパーパラメータをNとする。スコアを示すハイパーパラメータを「margin」とする。ベクトルを補正する補正率を示すハイパーパラメータを「rate」とする。
【0067】
図7Aは、実施例に係る学習処理のフローチャートの一例を示す図である。図7Aに示すように、初期化部11は、RDFデータ21に含まれる文字列に対応するすべてのベクトルを乱数で初期化する(ステップS11)。なお、初期化部11のフローチャートは、後述する。
【0068】
そして、学習部12は、最大の繰り返し回数を示すN回繰り返したか否かを判定する(ステップS12)。N回繰り返したと判定した場合には(ステップS12;Yes)、学習部12は、学習処理を終了する。
【0069】
一方、N回繰り返していないと判定した場合には(ステップS12;No)、学習部12は、RDFデータ21から3つ組(h,r,t)を1つ取り出す(ステップS13)。ここでいうhはエンティティ(主語)、rはプロパティ(述語)、tはエンティティ(目的語)である。
【0070】
そして、学習部12は、V+V-Vがmarginより小さいか否かを判定する(ステップS14)。すなわち、学習部12は、取り出した組および既に取り出した組について、主語を示すエンティティhのベクトルVに、述語を示すプロパティrのベクトルVを加えたベクトルが、目的語を示すエンティティtのベクトルVに近づくか否かを判定する。
【0071】
いずれかの組について、V+V-Vがmarginより小さくないと判定した場合には(ステップS14;No)、学習部12は、V+VをVに近づける(ステップS15)。そして、学習部12は、次の繰り返しを行うべく、ステップS12に移行する。
【0072】
一方、いずれの組もV+V-Vがmargin以下であると判定した場合には(ステップS14;Yes)、学習部12は、次の繰り返しを行うべく、ステップS12に移行する。
【0073】
なお、V+V-Vがマイナスになる場合を考慮して、V+V-Vを|V+V-V|としても良い。図7Bでは、V+V-Vがマイナスになることを考慮した場合について説明する。図7Bは、実施例に係る学習処理のフローチャートの別の例を示す図である。
【0074】
図7Bに示すように、初期化部11は、RDFデータ21に含まれる文字列に対応するすべてのベクトルを乱数で初期化する(ステップS21)。なお、初期化部11のフローチャートは、後述する。
【0075】
そして、学習部12は、最大の繰り返し回数を示すN回繰り返したか否かを判定する(ステップS22)。N回繰り返したと判定した場合には(ステップS22;Yes)、学習部12は、学習処理を終了する。
【0076】
一方、N回繰り返していないと判定した場合には(ステップS22;No)、学習部12は、RDFデータ21から3つ組(h,r,t)を1つ取り出す(ステップS23)。ここでいうhはエンティティ(主語)、rはプロパティ(述語)、tはエンティティ(目的語)である。
【0077】
そして、学習部12は、|V+V-V|がmarginより小さいか否かを判定する(ステップS24)。すなわち、学習部12は、取り出した組および既に取り出した組について、主語を示すエンティティhのベクトルVに、述語を示すプロパティrのベクトルVを加えたベクトルが、目的語を示すエンティティtのベクトルVに近づくか否かを判定する。
【0078】
いずれかの組について、|V+V-V|がmarginより小さくないと判定した場合には(ステップS24;No)、学習部12は、V+V-Vが0より小さいか否かを判定する(ステップS25)。V+V-Vが0より小さいと判定した場合には(ステップS25;Yes)、学習部12は、Vに(V+V-V)×rateを加算したベクトルをVとする(ステップS26)。すなわち、学習部12は、ベクトルを補正して、V+VをVに近づける。そして、学習部12は、次の繰り返しを行うべく、ステップS22に移行する。
【0079】
一方、|V+V-V|が0以上であると判定した場合には(ステップS25;No)、学習部12は、Vから(V+V-V)×rateを減算したベクトルをVとする(ステップS27)。すなわち、学習部12は、ベクトルを補正して、V+VをVに近づける。そして、学習部12は、次の繰り返しを行うべく、ステップS22に移行する。
【0080】
ステップS24において、いずれかの組について、|V+V-V|がmarginより小さいと判定した場合には(ステップS24;Yes)、学習部12は、次の繰り返しを行うべく、ステップS22に移行する。
【0081】
[初期化処理のフローチャート]
図8は、実施例に係る初期化処理のフローチャートの一例を示す図である。なお、図8で示すフローチャートでは、RDFデータ21に含まれる行が示す3つ組のh,r,tはそれぞれNode、Property、Nodeと記述しているが、エンティティ、プロパティ、エンティティ、または、主語、述語、目的語と置き換えても良い。
【0082】
初期化部11は、RDFデータ21から入力となるRDFを1行読み込む(ステップS31)。初期化部11は、全ての行を読み込んだか否かを判定する(ステップS32)。全ての行を読み込んだと判定した場合には(ステップS32;Yes)、初期化部11は、初期化処理を終了する。
【0083】
一方、全ての行を読み込んでいないと判定した場合には(ステップS32;No)、初期化部11は、読み込んだ行を、3つのデータを組とした(h,r,t)に分解する(ステップS33)。
【0084】
そして、初期化部11は、以下のステップのXに、h,tを順に代入する(ステップS34)。すなわち、初期化部11は、h,tのどちらもNode(X)のベクトルが存在するか否かを判定する(ステップS35)。h,tのどちらもNode(X)のベクトルが存在すると判定した場合には(ステップS35;Yes)、初期化部11は、rのベクトルについて判定すべく、ステップS39に移行する。
【0085】
一方、h,tのどちらもまたはどちらか一方について、Node(X)のベクトルが存在しないと判定した場合には(ステップS35;No)、初期化部11は、Property(X)のベクトルが存在するか否かを判定する(ステップS36)。Property(X)のベクトルが存在しないと判定した場合には(ステップS36;No)、初期化部11は、XのラベルのベクトルNode(X)を作成し、乱数で初期化する(ステップS37)。そして、初期化部11は、さらに、rのベクトルについて判定すべく、ステップS39に移行する。
【0086】
一方、Property(X)のベクトルが存在すると判定した場合には(ステップS36;Yes)、初期化部11は、Node(X)とProperty(X)が同じベクトルを指すようにする(ステップS38)。そして、初期化部11は、さらに、rのベクトルについて判定すべく、ステップS39に移行する。
【0087】
ステップS39において、初期化部11は、Property(r)のベクトルが存在するか否かを判定する(ステップS39)。Property(r)のベクトルが存在すると判定した場合には(ステップS39;Yes)、初期化部11は、次の行を処理すべく、ステップS31に移行する。
【0088】
一方、Property(r)のベクトルが存在しないと判定した場合には(ステップS39;No)、初期化部11は、Node(r)のベクトルが存在するか否かを判定する(ステップS40)。Node(r)のベクトルが存在しないと判定した場合には(ステップS40;No)、初期化部11は、XのラベルのベクトルProperty(r)を作成し、乱数で初期化する(ステップS41)。そして、初期化部11は、次の行を処理すべく、ステップS31に移行する。
【0089】
一方、Node(r)のベクトルが存在すると判定した場合には(ステップS40;Yes)、初期化部11は、Property(r)とNode(r)が同じベクトルを指すようにする(ステップS42)。そして、初期化部11は、次の行を処理すべく、ステップS31に移行する。
【0090】
[予測処理のフローチャート]
図9は、実施例に係る予測処理のフローチャートの一例を示す図である。なお、図9では、スコアを示すハイパーパラメータを「score」とする。また、学習部12によって学習された学習データ22が生成されている。学習データ22には、学習済みのベクトルの集合Vが含まれている。
【0091】
図9に示すように、入力部31は、予測する予測対象を含む3つ組(h,r,t)を入力する(ステップS51)。予測部32は、予測対象がhであるか否かを判定する(ステップS52)。予測対象がhであると判定した場合には(ステップS52;Yes)、予測部32は、学習済みのベクトルの集合VからベクトルVとVを取り出す(ステップS53)。予測部32は、Vからベクトルを1つ取り出す(ステップS53A)。そして、予測部32は、Vから全てのベクトルを取り出したか否かを判定する(ステップS54)。
【0092】
全てのベクトルを取り出していないと判定した場合には(ステップS54;No)、予測部32は、Vから取り出したベクトルをVとして、|V-V-V|がscoreより小さいか否かを判定する(ステップS55)。なお、|V-V-V|は、|V+V-V|と同義である。|V-V-V|がscore以上であると判定した場合には(ステップS55;No)、予測部32は、次のベクトルを取り出すべく、ステップS53Aに移行する。
【0093】
一方、|V-V-V|がscoreより小さいと判定した場合には(ステップS55;Yes)、出力部33は、Vを予測対象として出力する(ステップS56)。そして、予測部32は、次のベクトルを取り出すべく、ステップS53Aに移行する。
【0094】
ステップS54において、全てのベクトルを取り出したと判定した場合には(ステップS54;Yes)、予測部32は、予測処理を終了する。
【0095】
ステップS52において、予測対象がhでないと判定した場合には(ステップS52;No)、予測部32は、ステップS57に移行する。
【0096】
ステップS57において、予測部32は、予測対象がrであるか否かを判定する(ステップS57)。予測対象がrであると判定した場合には(ステップS57;Yes)、予測部32は、学習済みのベクトルの集合VからベクトルVとVを取り出す(ステップS58)。予測部32は、Vからベクトルを1つ取り出す(ステップS58A)。そして、予測部32は、Vから全てのベクトルを取り出したか否かを判定する(ステップS59)。
【0097】
全てのベクトルを取り出していないと判定した場合には(ステップS59;No)、予測部32は、Vから取り出したベクトルをVとして、|V-V-V|がscoreより小さいか否かを判定する(ステップS60)。|V-V-V|がscore以上であると判定した場合には(ステップS60;No)、予測部32は、次のベクトルを取り出すべく、ステップS58Aに移行する。
【0098】
一方、|V-V-V|がscoreより小さいと判定した場合には(ステップS60;Yes)、出力部33は、Vを予測対象として出力する(ステップS61)。そして、予測部32は、次のベクトルを取り出すべく、ステップS58Aに移行する。
【0099】
ステップS59において、全てのベクトルを取り出したと判定した場合には(ステップS59;Yes)、予測部32は、予測処理を終了する。
【0100】
ステップS57において、予測対象がrでないと判定した場合には(ステップS57;No)、予測部32は、ステップS62に移行する。
【0101】
ステップS62において、予測部32は、予測対象がtであると判断し、学習済みのベクトルの集合VからベクトルVとVを取り出す(ステップS62)。予測部32は、Vからベクトルを1つ取り出す(ステップS62A)。そして、予測部32は、Vから全てのベクトルを取り出したか否かを判定する(ステップS63)。
【0102】
全てのベクトルを取り出していないと判定した場合には(ステップS63;No)、予測部32は、Vから取り出したベクトルをVとして、|V-V-V|がscoreより小さいか否かを判定する(ステップS64)。|V-V-V|がscore以上であると判定した場合には(ステップS64;No)、予測部32は、次のベクトルを取り出すべく、ステップS62Aに移行する。
【0103】
一方、|V-V-V|がscoreより小さいと判定した場合には(ステップS64;Yes)、出力部33は、Vを予測対象として出力する(ステップS65)。そして、予測部32は、次のベクトルを取り出すべく、ステップS62Aに移行する。
【0104】
ステップS63において、全てのベクトルを取り出したと判定した場合には(ステップS63;Yes)、予測部32は、予測処理を終了する。
【0105】
[RDFデータの別の例]
ここで、実施例に係るRDFデータを医薬分野に適用した場合の予測処理について、図10図12を参照して説明する。図10は、実施例に係るRDFデータの別の例を示す図である。図10に示すように、エンティティ(主語)、プロパティ(述語)、エンティティ(目的語)の3つのデータを1組としたRDFデータ21が表わされている。それぞれの組は、「主語の述語は目的語である」という関係性を持っている。
【0106】
一例として、RDFデータ21には、(主語,述語、目的語)として(A,注射,DA)が記憶されている。(A,注射,DA)は、「“A”の“注射”は“DA”である」という関係性を持つ。(主語,述語、目的語)として(A,副作用.RA)が記憶されている。(A,副作用.RA)は、「“A”の“副作用”は“RA”である」という関係性を持つ。(主語,述語、目的語)として(B,服薬,DA)が記憶されている。(B,服薬,DA)は、「“B”の“服薬”は“DA”である」という関係性を持つ。(主語,述語、目的語)として(注射,種類,投薬方法)が記憶されている。(注射,種類,投薬方法)は、「“注射”の“種類”は“投薬方法”である」という関係性を持つ。(主語,述語、目的語)として(投薬,種類,投薬方法)が記憶されている。(投薬,種類,投薬方法)は、「“投薬”の“種類”は“投薬方法”である」という関係性を持つ。
【0107】
このようなRDFデータ21に含まれる全ての組について、学習部12は、主語を示すエンティティのベクトルに述語を示すプロパティのベクトルを加えたベクトルが、目的語を示すエンティティのベクトルに近づくように学習する。そして、学習部12は、学習した結果を学習データ22に保存する。学習データ22に保存する学習した結果には、RDFデータ21に含まれる主語、述語および目的語に含まれる文字列ごとの学習済みのベクトルの集合が含まれる。
【0108】
予測部32は、かかる学習データ22を利用して、問い合わせに対する答えを予測する。図11は、RDFデータの別の例を利用した予測処理を示す図である。
【0109】
ここでは、「B」の「副作用」が何であるかの問い合わせ(B,副作用,?D)について説明する。「?」は、予測対象を示す予測変数を意味する。
【0110】
図11に示すように、予測部32は、学習済みのベクトルの集合から、入力された組の予測対象以外の2つの文字列に対応するベクトルを取得する。ここでは、「B」および「副作用」に対応するそれぞれのベクトルが取得される。
【0111】
続いて、予測部32は、学習済みのベクトルの集合から1つずつベクトルを選択する。そして、予測部32は、予測対象以外の文字列のベクトルおよび選択したベクトルを用いて、主語のベクトルに述語のベクトルを加えたベクトルから目的語のベクトルを引いたベクトルがスコアより小さいベクトルを検索する。ここでは、予測部32は、選択したベクトルごとに、主語を示す「B」のベクトルに述語を示す「副作用」のベクトルを加えたベクトルから選択したベクトルを引いたベクトルがスコアより小さいベクトルになるかどうかを判定する。
【0112】
そして、予測部32は、検索できたベクトルに対応する文字列を予測対象として予測する。ここでは、「RA」が予測対象として予測される。
【0113】
これにより、予測部32は、検索の予測精度を向上させることができる。すなわち、エンティティとしての「服薬」とエンティティとしての「投薬方法」は、プロパティとしての「種類」の関係である。加えて、エンティティとしての「注射」とエンティティとしての「投薬方法」は、プロパティとしての「種類」の関係である。したがって、エンティティとしての「注射」とエンティティとしての「服薬」とは、述語の「種類」と目的語の「投薬方法」が共通しているので近似のベクトルとなる。そして、エンティティとしての「注射」とプロパティとしての「注射」は、同じベクトルで表現され、エンティティとしての「服薬」とプロパティとしての「服薬」は、同じベクトルで表現されるので、プロパティとしての「注射」とプロパティとしての「投薬」とは、近似のベクトルとなる。よって、プロパティとしての「服薬」を含む「B 服薬 DA」とプロパティとしての「注射」を含む「A 注射 DA」とが近くに配置されるようになる。そうすると、今回の場合では、「A」の「副作用」は「RA」であるので、「B」の「副作用」として「RA」が予測される。
【0114】
そして、出力部33は、ユーザ端末5に対して、予測部32によって予測された予測対象を出力する。図12は、実施例に係る出力画面の一例を示す図である。
【0115】
出力画面には、学習データを出力する欄、問い合わせを入力する欄、答えを出力する欄が表示されている。学習データを出力する欄には、RDFデータ21のそれぞれの組が表示されている。
【0116】
例えば、問い合わせを入力する欄に、ユーザが「B,副作用,?D」を問い合わせとして入力すると、答えを出力する欄に「D=RA(score:0.7)」と出力される。なお、「0.7」は、ベクトルの許容誤差を示すスコアを意味する。
【0117】
[学習モデルの一例]
なお、上記では、学習部12は、RDFデータ21に含まれる全ての組について、主語を示すエンティティのベクトルに述語を示すプロパティのベクトルを加えたベクトルが、目的語を示すエンティティのベクトルに近づくように学習すると説明した。このとき、学習部12は、ある組の述語を示すプロパティの文字列が別の組の主語や目的語を示すエンティティの文字列と対応付けられている場合には、ベクトルの学習の際に、対応付けられている文字列のプロパティとエンティティとを同じベクトルとして計算するようにした。学習部12は、ニューラルネットワークを用いて、このような学習処理を実行しても良い。すなわち、学習部12は、ニューラルネットワークを用いて、RDFデータ21に含まれる全ての組について、主語を示すエンティティのベクトルに述語を示すプロパティのベクトルを加えたベクトルが、目的語を示すエンティティのベクトルに近づくように学習しても良い。このとき、学習部12は、ある組の述語を示すプロパティの文字列が別の組の主語や目的語を示すエンティティの文字列と対応付けられている場合には、ベクトルの学習の際に、対応付けられている文字列のプロパティとエンティティとを同じベクトルとして計算する。
【0118】
図13は、実施例に係る学習処理においてニューラルネットワークを用いて学習することを説明する図である。図13には、ニューラルネットワークの学習モデルが示されている。学習モデルは、RDFデータ21に含まれる組の主語、述語、目的語を入力として、入力した主語、述語、目的語の接続関係の有無を出力としたモデルである。学習モデルのレイヤーのそれぞれのノードがn次元のベクトルに対応する。
【0119】
例えば、RDFデータ21に含まれる組(主語,述語,目的語)が(A,birthplace,Spain)、(birthplace,翻訳,出身)である場合とする。学習部12は、(A,birthplace,Spain)を学習モデルに入力して、接続関係が有るようにベクトルを生成すべく、学習モデルをトレーニングする。すなわち、学習部12は、主語を示す「A」のベクトルに述語を示す「birthplace」のベクトルを加えたベクトルが、目的語を示す「Spain」のベクトルに近づくように学習モデルをトレーニングする。また、学習部12は、(birthplace,翻訳,出身)を学習モデルに入力して、接続関係が有るようにベクトルを生成すべく、学習モデルをトレーニングする。すなわち、学習部12は、主語を示す「birthplace」のベクトルに述語を示す「翻訳」のベクトルを加えたベクトルが、目的語を示す「出身」のベクトルに近づくように学習モデルをトレーニングする。学習モデルのトレーニングの際に、学習部12は、プロパティの「birthplace」が別の組のエンティティの「birthplace」と文字列が同じであるので、文字列「birthplace」のプロパティとエンティティとを同じベクトルとして計算する。
【0120】
このように学習された学習済みの学習モデルを用いて、予測部32は、入力された組の予測対象を予測すれば良い。すなわち、予測部32は、入力された組から、予測対象以外の2つの文字列を取得する。そして、予測部32は、RDFデータ21の文字列の集合から1つずつ文字列を選択する。そして、予測部32は、取得した2つの文字列および選択した文字列を用いて、学習済みの学習モデルに、主語の文字列、述語の文字列、目的語の文字列として入力し、接続関係の有無を出力する。予測部32は、接続関係が有ると出力された、選択した文字列を予測対象として予測すれば良い。
【0121】
[実施例の効果]
上記実施例によれば、学習装置1は、主語、述語および目的語から構成されるRDFデータを取得する。学習装置1は、取得したRDFデータのうち、第一のレコードの主語、述語および目的語を入力する。学習装置1は、第一のレコードの主語または目的語と文字列が同じである既に入力した第二のレコードの述語を特定する。学習装置1は、第一のレコードの主語または目的語と、該特定した前記第二のレコードの述語とを対応付けたRDFデータから成る教師データを生成する。学習装置1は、生成した教師データについて、RDFデータと対応付けられた主語のベクトルに述語のベクトルを加えたベクトルが、RDFデータと対応付けられた目的語のベクトルに近づくように学習する。かかる構成によれば、学習装置1は、TransEの学習に、RDFデータの第一のレコードの主語または目的語と、該特定した前記第二のレコードの述語とを対応付けたRDFデータから成る教師データを用いることで、RDFデータにおいて、検索の予測精度を向上させることができる。例えば、(A、birthplace、Spain)(B、出身、スペイン)(birthplace、翻訳、出身)のRDFデータについての3つのレコードがある場合に、述語の「birthplace」と主語の「birthplace」とを対応付けて同じベクトルとし、述語の「出身」と目的語の「出身」とを対応付けて同じベクトルとすることで、3つのレコードを近くに配置することができ、「A」の「出身」は、「Spain」と「スペイン」と予測することが可能となる。
【0122】
また、上記実施例によれば、学習装置1は、文字列が同じ第一のレコードの主語または目的語と、該特定した第二のレコードの述語とが同じベクトルとなるように対応付けたRDFデータから成る教師データを生成する。かかる構成によれば、学習装置1は、TransEの学習に、RDFデータの第一のレコードの主語または目的語と、該特定した前記第二のレコードの述語とが同じベクトルとなるように対応付けたRDFデータから成る教師データを用いることができる。このため、学習装置1は、RDFデータにおいて、検索の予測精度を向上させることができる。
【0123】
また、上記実施例によれば、学習装置1は、RDFデータと対応付けられた主語、述語および目的語を入力し、該生成した教師データについて、RDFデータと対応付けられた主語のベクトルに述語のベクトルを加えたベクトルが、RDFデータと対応付けられた目的語のベクトルに近づくように学習し、近づく関係の有無を出力する学習モデルを生成する。かかる構成によれば、学習装置1は、学習モデルを用いることで、近づく関係が有る主語、述語および目的語を予測することができる。
【0124】
また、上記実施例によれば、予測装置3は、いずれかを予測対象とする主語、述語および目的語を入力すると、RDFデータを学習した結果に基づいて、学習結果未知の予測対象を予測する。かかる構成によれば、予測装置3は、RDFデータを学習した結果を用いることで、RDFデータにおいて、検索の予測精度を向上させることができる。
【0125】
また、上記実施例によれば、予測装置3は、RDFデータを学習した結果に含まれる学習済みのベクトルの中から一つずつベクトルを選択する。予測装置3は、該選択したベクトルと、予測対象以外の所定語のベクトルとを用いて、主語に対応するベクトルに述語に対応するベクトルを加えたベクトルから、目的語に対応するベクトルを引いたベクトルが所定のスコアより小さいか否かを判定する。予測装置3は、小さいと判定した、選択したベクトルに対応する文字列を予測対象とする。かかる構成によれば、予測装置3は、RDFデータを学習した結果に含まれる学習済みのベクトルを用いることで、RDFデータにおいて、検索の予測精度を向上させることができる。
【0126】
また、上記実施例によれば、予測装置3は、RDFデータを学習した結果に含まれる学習モデルを用いて、入力した主語、述語および目的語のうち予測対象以外の主語、述語または目的語と、前記RDFデータに含まれる複数の主語、述語または目的語の文字列とから、近づく関係が有るか否かを予測し、近づく関係が有ると予測された文字列を予測対象とする。かかる構成によれば、予測装置3は、RDFデータを学習した結果に含まれる学習モデルを用いることで、RDFデータにおいて、検索の予測精度を向上させることができる。
【0127】
また、上記実施例によれば、予測装置3は、副作用報告事例に関する主語と、患者または疾患または医薬品に関する述語と、患者属性、病名、医薬品名または既知の副作用に関する目的語から構成される医療に関するRDFデータであって、RDFデータを学習した結果に基づいて、医薬品名を入力として、学習結果未知の副作用を予測する。かかる構成によれば、予測装置3は、RDFデータを学習した結果を用いることで、医療に関するRDFデータにおいて、医薬品名から副作用を検索する予測精度を向上させることができる。
【0128】
[その他]
なお、図示した学習装置1や予測装置3の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、学習装置1、予測装置3の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、初期化部11と学習部12とを1つの部として統合しても良い。また、記憶部20を学習装置1の外部装置としてネットワーク経由で接続するようにしても良い。記憶部40を予測装置3の外部装置としてネットワーク経由で接続するようにしても良い。
【0129】
また、上記実施例では、学習処理を行う学習装置1と予測処理を行う予測装置3とに分離する構成で説明した。しかしながら、情報処理装置が、学習処理と予測処理とを含むような構成としても良い。
【0130】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した学習装置1と同様の機能を実現する学習プログラムや予測装置3と同様の機能を実現する予測処理プログラムを実行するコンピュータの一例を説明する。ここでは、学習装置1と同様の機能を実現する学習プログラムを一例として説明する。図14は、学習プログラムを実行するコンピュータの一例を示す図である。
【0131】
図14に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0132】
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、学習プログラム205aおよび学習処理関連情報205bを記憶する。
【0133】
CPU203は、学習プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、学習装置1の各機能部に対応する。学習処理関連情報205bは、RDFデータ21および学習データ22に対応する。そして、例えばリムーバブルディスク210が、学習プログラム205aなどの各情報を記憶する。
【0134】
なお、学習プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから学習プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0135】
1 学習装置
10 制御部
11 初期化部
12 学習部
20 記憶部
21 RDFデータ
22 学習データ
3 予測装置
30 制御部
31 入力部
32 予測部
33 出力部
40 記憶部
41 学習データ
5 ユーザ端末
9 学習システム
図1
図2
図3
図4A
図4B
図5A
図5B
図5C
図5D
図5E
図5F
図5G
図5H
図6
図7A
図7B
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20