特許第6321845号(P6321845)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヤフー株式会社の特許一覧

特許6321845付与装置、付与方法および付与プログラム
<>
  • 特許6321845-付与装置、付与方法および付与プログラム 図000002
  • 特許6321845-付与装置、付与方法および付与プログラム 図000003
  • 特許6321845-付与装置、付与方法および付与プログラム 図000004
  • 特許6321845-付与装置、付与方法および付与プログラム 図000005
  • 特許6321845-付与装置、付与方法および付与プログラム 図000006
  • 特許6321845-付与装置、付与方法および付与プログラム 図000007
  • 特許6321845-付与装置、付与方法および付与プログラム 図000008
  • 特許6321845-付与装置、付与方法および付与プログラム 図000009
  • 特許6321845-付与装置、付与方法および付与プログラム 図000010
  • 特許6321845-付与装置、付与方法および付与プログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6321845
(24)【登録日】2018年4月13日
(45)【発行日】2018年5月9日
(54)【発明の名称】付与装置、付与方法および付与プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20180423BHJP
【FI】
   G06F17/30 180A
   G06F17/30 350C
【請求項の数】14
【全頁数】23
(21)【出願番号】特願2017-46800(P2017-46800)
(22)【出願日】2017年3月10日
【審査請求日】2017年6月20日
【新規性喪失の例外の表示】特許法第30条第2項適用 投稿日 平成28年12月20日 平成28年12月20日にアプリケーションを投稿したウェブページ http://www.tira.io/ 投稿日 平成28年12月22日 平成28年12月22日にアプリケーションを投稿したウェブページ http://www.tira.io/
【早期審査対象出願】
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】西 賢太郎
(72)【発明者】
【氏名】夜久 真也
【審査官】 樋口 龍弥
(56)【参考文献】
【文献】 特開2015−179516(JP,A)
【文献】 特開2017−076403(JP,A)
【文献】 特開2016−207141(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、所定の第2要素と、当該所定の第2要素とともにトリプルに含まれる複数の第1要素とを抽出する抽出部と、
抽出された各第1要素を示す単語を含む文章から、第1要素の分散表現を生成し、生成された各第1要素の分散表現から、前記所定の第2要素の分散表現生成する生成部と、
前記所定の第2要素を含むトリプルに対し、当該トリプルに含まれる第1要素の分散表現と前記所定の第2要素の分散表現との類似度に応じたスコアを付与する付与部と
を有することを特徴とする付与装置。
【請求項2】
前記生成部は、前記所定の第2要素とともにトリプルに含まれる第1要素の分散表現の平均値を算出し、算出した平均値を当該所定の第2要素の分散表現とする
ことを特徴とする請求項に記載の付与装置。
【請求項3】
前記生成部は、前記所定の第2要素と共にトリプルに含まれる第1要素であって、他の第2要素と共にトリプルに含まれていない第1要素を特定し、特定した第1要素の分散表現の平均値を前記所定の第2要素の分散表現とする
ことを特徴とする請求項に記載の付与装置。
【請求項4】
前記生成部は、前記所定の第2要素を含むトリプルを特定し、特定したトリプルに含まれる前記第1要素を示す単語と前記所定の第2要素を示す単語とが同一の文章中に出現する頻度に応じた重みづけを用いて、特定したトリプルに含まれる第1要素の分散表現の平均値を算出する
ことを特徴とする請求項に記載の付与装置。
【請求項5】
前記生成部は、前記第1要素を示す単語を含む複数の文章において、当該単語と共に出現する他の単語の出現頻度に基づいて、当該第1要素の分散表現を生成する
ことを特徴とする請求項1〜のうちいずれか1つに記載の付与装置。
【請求項6】
前記生成部は、文章中に含まれる単語のうち、前記第1要素を示す複数の単語を所定の単語に変換し、変換後の文章から、当該第1要素の分散表現を生成する
ことを特徴とする請求項1〜のうちいずれか1つに記載の付与装置。
【請求項7】
前記第1要素のうち所定の種別に属する第1要素を特定し、特定した第1要素の分散表現の平均値である分散平均値を算出する算出部
を有し、
前記付与部は、所定のトリプルに含まれる第1要素の分散表現から前記分散平均値を減算した値と、当該所定のトリプルに含まれる第2要素の分散表現から前記分散平均値を減算した値との類似度に応じたスコアを算出し、算出したスコアを当該所定のトリプルに付与する
ことを特徴とする請求項1〜のうちいずれか1つに記載の付与装置。
【請求項8】
前記付与部は、所定の第1要素を含む全てのトリプルについて前記類似度を算出し、算出した類似度の最低値と最大値との範囲に応じたスコアを各トリプルに付与する
ことを特徴とする請求項1〜のうちいずれか1つに記載の付与装置。
【請求項9】
前記付与部は、所定の第1要素を含むトリプルのうち、前記類似度が最も大きいトリプルに対し、所定の値のスコアを付与する
ことを特徴とする請求項に記載の付与装置。
【請求項10】
前記抽出部は、人物を示す第1要素と、当該人物の属性を示す第2要素と、当該属性の種別を示す関係情報とを有する複数のトリプルから、前記第1要素と前記第2要素とを抽出する
ことを特徴とする請求項1〜のうちいずれか1つに記載の付与装置。
【請求項11】
前記抽出部は、前記人物の職業または国籍を示す第2要素を抽出する
ことを特徴とする請求項1に記載の付与装置。
【請求項12】
検索クエリとして第1要素と関係情報との組を受付けた場合は、当該第1要素と関係情報との組を含むトリプルのうち、付与されたスコアが所定の条件を満たすトリプルを検索する検索部
を有することを特徴とする請求項1〜1のうちいずれか1つに記載の付与装置。
【請求項13】
付与装置が実行する付与方法であって、
第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、所定の第2要素と、当該所定の第2要素とともにトリプルに含まれる複数の第1要素とを抽出する抽出工程と、
抽出された各第1要素を示す単語を含む文章から、第1要素の分散表現を生成し、生成された各第1要素の分散表現から、前記所定の第2要素の分散表現生成する生成工程と、
前記所定の第2要素を含むトリプルに対し、当該トリプルに含まれる第1要素の分散表現と前記所定の第2要素の分散表現との類似度に応じたスコアを付与する付与工程と
を含むことを特徴とする付与方法。
【請求項14】
第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、所定の第2要素と、当該所定の第2要素とともにトリプルに含まれる複数の第1要素とを抽出する抽出手順と、
抽出された各第1要素を示す単語を含む文章から、第1要素の分散表現を生成し、生成された各第1要素の分散表現から、前記所定の第2要素の分散表現生成する生成手順と、
前記所定の第2要素を含むトリプルに対し、当該トリプルに含まれる第1要素の分散表現と前記所定の第2要素の分散表現との類似度に応じたスコアを付与する付与手順と
をコンピュータに実行させるための付与プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、付与装置、付与方法および付与プログラムに関する。
【背景技術】
【0002】
従来、人物や事象等の概念をエンティティとし、エンティティ間の関係性を構造化したナレッジベースと呼ばれる技術が知られている。このようなナレッジベースにおいては、2つのエンティティと、2つのエンティティ間の関係性を示す情報とを有するトリプルが構成されることにより、エンティティをグラフ構造化している。このようなトリプルの検索を行う場合に、類似度スコアに基づくエンティティのリストを生成することで、検索対象となるエンティティのリストを取得する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015−179516号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来技術では、利用者が意図しない検索結果を出力する恐れがある。
【0005】
例えば、ナレッジデータベースを生成する場合は、実際に関係性がある概念がトリプルとして登録されるため、利用者が良く知っている関係性だけではなく、利用者があまり知らない関係性についてもトリプルとして登録が行われる。例えば、役者として有名な人物Aが書籍を出版しているが作家としては有名ではないものとする。このような場合、ナレッジデータベースには、「人物A」のエンティティと、「職業」という関係と、「役者」のエンティティとを含むトリプルが登録されるとともに、「人物A」のエンティティと、「職業」という関係と、「作家」のエンティティとを含むトリプルが登録される。このため、従来技術では、利用者が「役者」としての「人物A」を検索しているにも関わらず、「人物A」が「作家」であるといった一見不適当な検索結果を出力する恐れがある。
【0006】
本願は、上記に鑑みてなされたものであって、利用者の意図に沿ったナレッジベースの検索を実現することを目的とする。
【課題を解決するための手段】
【0007】
本願に係る付与装置は、第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、第1要素と第2要素とを抽出する抽出部と、第1要素を示す単語を含む文章から、第1要素の分散表現と第2要素の分散表現とをそれぞれ生成する生成部と、前記トリプルに対し、第1要素の分散表現と第2要素の分散表現との類似度に応じたスコアを付与する付与部とを有することを特徴とする。
【発明の効果】
【0008】
実施形態の一態様によれば、利用者の意図に沿ったナレッジベースの検索を実現できる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。
図2図2は、実施形態に係る情報提供装置の構成例を示す図である。
図3図3は、実施形態に係るエンティティデータベースに登録される情報の一例を示す図である。
図4図4は、実施形態に係るトリプルデータベースに登録される情報の一例を示す図である。
図5図5は、実施形態に係る分散表現データベースに登録される情報の一例を示す図である。
図6図6は、実施形態に係るスコアデータベースに登録される情報の一例を示す図である。
図7図7は、実施形態に係る情報提供装置が生成する分散表現空間の一例を示す図である。
図8図8は、実施形態に係る情報提供装置が実行する付与処理の流れの一例を示すフローチャートである。
図9図9は、実施形態に係る情報提供装置が実行する検索処理の流れの一例を示すフローチャートである。
図10図10は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る付与装置、付与方法および付与プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る付与装置、付与方法および付与プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【0011】
[実施形態]
〔1.情報提供装置が提供する処理について〕
まず、図1を用いて、付与装置の一例となる情報提供装置が実行する付与処理の一例について説明する。図1は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。なお、以下の説明では、情報提供装置10が実行する処理として、知識を体系化、組織化した情報が登録されるナレッジデータベースの検索を行う検索処理と、利用者の意図を検索処理に反映させるためのスコアをナレッジデータベースの情報に付与する付与処理とについて説明する。
【0012】
〔1−1.情報提供装置の概要〕
情報提供装置10は、インターネット等の所定のネットワークN(例えば、図2を参照。)を介して、利用者端末100と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報提供装置10は、ネットワークNを介して、任意の数の利用者端末100と通信可能であってよい。
【0013】
利用者端末100は、ナレッジデータベースの検索を要求する利用者が使用する情報処理装置であり、PC(Personal Computer)、サーバ装置、スマートデバイスといった情報処理装置により実現される。例えば、利用者端末100は、ナレッジデータベースの検索を行う際の検索クエリを情報提供装置10に送信する。このような場合、情報提供装置10は、検索クエリと対応する情報をナレッジデータベースから検索し、検索結果を利用者端末100へと提供する。
【0014】
ここで、情報提供装置10が検索するナレッジデータベースについて説明する。ナレッジデータベースには、各種の知識が体系化、組織化された状態で登録されている。例えば、ナレッジデータベースには、登録される要素であるエンティティと、エンティティ間の関係性を示す情報(以下、「関係情報」と記載する。)とが登録されている。エンティティは、実世界における人物、物体、建築物等の主語となりうる各種の物、職業や国籍等といった属性、各種の状態や事象等、世の中における各種の物事に対応する情報である。また、関係情報は、2つのエンティティ間の関係性を示す情報である。
【0015】
例えば、図1に示す例では、情報提供装置10は、黒丸で示す複数のエンティティE11〜E14、E21、E22を記憶する。各エンティティには、エンティティに対応する物事の名称や写真等、エンティティに関する各種の情報と対応するノードが対応付けられている。
【0016】
例えば、エンティティE11が所定の人物#Aに対応するエンティティである場合、人物#Aの名前である「人名#1」等がアイテムI111としてエンティティE11と対応付けた状態で登録される。また、例えば、エンティティE21が職業「俳優」と対応するエンティティである場合、職業名「俳優」といった情報がアイテムI211としてエンティティE21と対応付けられた状態で登録される。すなわち、エンティティとは、各種物事の概念そのものと対応する情報であり、エンティティと対応付けられたノードが示す各種の情報によって示される概念と対応する情報である。
【0017】
ここで、例えば、エンティティE11とエンティティE21とは、「職業」を示す関係情報C1によって関連付けられている。このような2つのエンティティとエンティティ間の関係性を示す関係情報とからなる3つ組の情報(以下、「トリプル」と記載する。)は、例えば、エンティティE11と対応する人物#A(すなわち、名前が「人名#1」である人物)の職業が、エンティティE21が示す職業(すなわち職業名「俳優」)である旨を示すことができる。
【0018】
このように、図1に示すナレッジデータベースにおいては、2つのエンティティとエンティティ間の関係性を示す関係情報とからなるトリプルと呼ばれる情報が登録されることにより、各種の知識が体系化されている。換言すると、ナレッジデータベースにおいては、主語(S)となるエンティティと、目的語(O)となるエンティティと、述語(P)となる関係情報とからなるトリプルによって、様々な知識が体系的に表されている。
【0019】
このようなナレッジデータベースに登録された知識を検索する場合、情報提供装置10は、以下の処理を実行する。まず、情報提供装置10は、利用者端末100から検索クエリとして主語と動詞を受付ける。このような場合、情報提供装置10は、検索クエリとして受付けた主語と動詞とを含むトリプルを検索し、検索したトリプルを利用者端末100に提供する。例えば、情報提供装置10は、検索クエリとして、主語「人名#1」と述語「職業」とを受付けた場合、主語「人名#1」をノードとするエンティティE11と、述語「職業」を示す関係情報C1とを特定し、特定した、エンティティE11と、関係情報C1とを含むトリプルとして、エンティティE11、エンティティE21、および関係情報C1を特定する。そして、情報提供装置10は、特定したトリプルの内容を出力する。例えば、情報提供装置10は、名前が「人名#1」である人物の職業が「俳優」である旨を検索結果として出力する。
【0020】
なお、以下の説明では、人物に対応するエンティティE11〜E14と、職業に対応するエンティティE21、E22がナレッジデータベースに登録されている例について記載するが、実施形態は、これに限定されるものではない。以下に説明する付与処理や検索処理は、任意の物事や事象と対応するエンティティが登録されているナレッジデータベースに適用可能である。また、「エンティティ」や「関係情報」という名称は、以下に説明する付与処理や検索処理を限定するものではなく、ナレッジデータベースに登録される要素(すなわち、エンティティ)や、要素間の関係性を示す情報(すなわち、関係情報)であれば、任意の名称が採用されてよい。
【0021】
〔1−2.付与処理について〕
ここで、ナレッジデータベースにおいては、1つのエンティティに対して、複数のエンティティが同一種別の関係情報によって対応付けられている場合がある。すなわち、ナレッジデーターベースには、同一のエンティティと、同一種別の関係情報とを含む複数のトリプルが登録されている場合がある。例えば、人物#Aが俳優でもあるが書籍を出版したこともある場合、人物#AのエンティティE11には、俳優に対応するエンティティE21と、作家に対応するエンティティE22とが、職業を示す関係情報C1、C2によって対応付けられることとなる。
【0022】
このような状態において、従来技術では、検索クエリ「人物A、職業」を受付けると、、人物Aの職業として「俳優」のみならず、「作家」をも検索結果として出力する。しかしながら、人物Aが「作家」としてあまり有名ではなかった場合、このような検索結果は利用者の検索意図を反映していないとも言える。
【0023】
そこで、情報提供装置10は、以下の付与処理を実行する。まず情報提供装置10は、第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、第1要素と第2要素とを抽出する。すなわち、情報提供装置10は、トリプルを構成する第1のエンティティと第2のエンティティとを抽出する。続いて、情報提供装置10は、第1要素を示す単語を含む文章から、第1要素の分散表現と第2要素の分散表現とをそれぞれ生成する。そして、情報提供装置10は、トリプルに対し、第1要素の分散表現と第2要素の分散表現との類似度に応じたスコアを付与する。
【0024】
例えば、情報提供装置10は、トリプルを構成する第1要素(例えば、人物と対応するエンティティ)を抽出し、抽出した第1要素に対応する単語(例えば、人名等)を含む複数の文章においてその単語とともに出現する他の単語の出現頻度に基づいて、抽出した第1要素の分散表現を生成する。より具体的な例を挙げると、情報提供装置10は、w2v(word2vec)等、単語の概念(すなわち、エンティティと対応する概念)を示す分散表現を生成する周知の技術を用いて、トリプルを構成する主語のエンティティの分散表現を生成する。
【0025】
続いて、情報提供装置10は、判定対象となる第2要素を1つ選択し、選択した第2要素とともにトリプルに含まれる全ての第1要素の分散表現を収集する。そして、情報提供装置10は、収集した分散表現から、選択した第2要素の分散表現を生成する。例えば、情報提供装置10は、収集した分散表現の平均値を、選択した第2要素の分散表現とする。すなわち、情報提供装置10は、所定の職業の人物を全て抽出し、抽出した人物の分散表現の平均値を、その所定の職業の分散表現とする。
【0026】
そして、情報提供装置10は、同一のトリプルに含まれる2つのエンティティの分散表現のコサイン類似度を算出し、算出したコサイン類似度の値に応じたスコアを算出する。例えば、情報提供装置10は、算出したコサイン類似度の値が「1」に近づく程、大きな値のスコアを算出する。そして、情報提供装置10は、算出したスコアをトリプルに付与する。
【0027】
このようにしてトリプルに付与されたスコアは、トリプルに含まれるエンティティ同士の関係性の確度を示すこととなる。例えば、情報提供装置10は、人物のエンティティの分散表現を一般的な文章を用いたw2vにより生成する。このような処理を行った場合、属性が類似する人物(すなわち、同じ職業の人物や同じ国籍の人物等)のエンティティの分散表現は、類似することとなる。この結果、人物のエンティティの分散表現には、職業や国籍等といった属性が暗に反映されることとなる。
【0028】
そして、情報提供装置10は、職業や国籍等といった属性のエンティティの分散表現を生成する際、その属性を有する人物のエンティティの分散表現の平均値を用いる。この結果、ある属性を有する人物のエンティティの分散表現と、その属性のエンティティの分散表現とは、類似することとなる。この結果、情報提供装置10は、トリプルに含まれる人物のエンティティの分散表現と、属性のエンティティの分散表現との類似度を算出することで、トリプルが示す知識の確かさや有名さといった各種の確度を得ることができる。
【0029】
その後、情報提供装置10は、検索クエリとして第1要素と関係情報との組を受付けた場合は、第1要素と関係情報との組を含むトリプルのうち、付与されたスコアが所定の条件を満たすトリプルを検索する。例えば、情報提供装置10は、スコアが最も高い値のトリプルを検索する。この結果、情報提供装置10は、検索クエリに対応する知識のうち、確かさや有名さといった確度が最も高い知識、すなわち、利用者の検索意図を反映させた知識を検索結果として出力することができる。
【0030】
〔1−3.付与処理の一例について〕
次に、図1を用いて、付与処理の一例について説明する。なお、図1に示す例では、エンティティE11〜E14は、人物と対応するエンティティであるものとする。また、図1に示す例では、ノードI111、I121、I131、I141は、エンティティE11〜E14に対応する人物の人名#1〜#4を示すものとする。また、図1に示す例では、エンティティE21〜E22は、職業を示すエンティティであるものとする。また、図1に示す例では、関係情報C1〜C5は、エンティティ間の関係として「職業」を示す情報であるものとする。また、以下の説明では、トリプルを構成する第1要素として、人物のエンティティが登録され、第2要素として、職業のエンティティが登録されている例について説明する。
【0031】
まず、情報提供装置10は、トリプルに含まれる人物のエンティティを示す分散表現を生成する(ステップS1)。例えば、情報提供装置10は、エンティティE11〜E14をそれぞれ特定する。続いて、情報提供装置10は、エンティティE11〜E14に紐付られたノードI111、I121、I131、I141を参照することで、エンティティE11〜E14と対応する人物の人名#1〜#4を特定する。そして、情報提供装置10は、w2vを用いて、人名#1〜#4の分散表現#11〜#14をそれぞれ生成する。
【0032】
続いて、情報提供装置10は、所定の職業に属する人物のエンティティの分散表現の平均値を、その所定の職業のエンティティの分散表現とする(ステップS2)。例えば、情報提供装置10は、職業のエンティティE21を選択する。このような場合、情報提供装置10は、エンティティE21と、エンティティ間の関係として「職業」を示す関係情報C1〜C5とともにトリプルを構成する人物のエンティティE11、E13、E14を抽出する。すなわち、情報提供装置10は、ナレッジデータベースにおいて、エンティティE21と関係情報C1、C4、C5を介して関連付けられたエンティティE11、E13、E14を抽出する。そして、情報提供装置10は、エンティティE11の分散表現#11、エンティティE13の分散表現#13、およびエンティティE14の分散表現#14の平均値を算出し、算出した平均値をエンティティE21の分散表現#21とする。
【0033】
そして、情報提供装置10は、トリプルを構成するエンティティの分散表現の類似度に基づくスコアを算出する(ステップS3)。例えば、図1に示すナレッジデータベースにおいては、エンティティE11、エンティティE21、および関係情報C1を含むトリプル#1が登録されている。このような場合、情報提供装置10は、エンティティE11の分散表現#11と、エンティティE21の分散表現#21とのコサイン類似度を算出し、算出したコサイン類似度に基づくスコア#1をトリプル#1のスコアとして算出する。また、情報提供装置10は、ナレッジデータベースに登録される全てのトリプルについて、同様の処理を行うことでスコアの算出を行う。
【0034】
ここで、情報提供装置10は、利用者端末100から「人名#1」および「職業」といった検索クエリを受けつけたものとする(ステップS4)。このような場合、情報提供装置10は、検索クエリと対応するエンティティと関係情報とを特定する(ステップS5)。例えば、情報提供装置10は、「人名#1」と対応するエンティティE11を特定するとともに、エンティティ間の関係として「職業」を示す関係情報C1〜C5を特定する。
【0035】
そして、情報提供装置10は、検索クエリと対応するトリプルのうち、スコアが高いトリプルを特定する(ステップS6)。例えば、情報提供装置10は、特定したエンティティE11と、各関係情報C1〜C5とを含むトリプルとして、エンティティE11、エンティティE21、および関係情報C1を含むトリプル#1と、エンティティE11、エンティティE22、および関係情報C2を含むトリプル#2とを特定する。このような場合、情報提供装置10は、トリプル#1のスコア#1とトリプル#2のスコア#2とを比較し、スコアがより大きいトリプル、例えば、トリプル#1を選択する。そして、情報提供装置10は、選択したトリプル#1を検索結果として、利用者端末100へと出力する。
【0036】
〔1−4.分散表現の生成について〕
上述した説明では、情報提供装置10は、第1要素の分散表現をw2vで生成し、生成した第1要素の分散表現を用いて、第2要素の分散表現を生成した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、ある主語とその主語に関連性が高い目的語との分散表現が類似することが保証される手法により、単語を分散表現へと変換することができるのであれば、第2要素の分散表現についても、第1要素と同様に、w2vで生成してもよい。また、例えば、情報提供装置10は、バグオブワーズ等の各種文字解析技術を用いて、分散表現の生成を行ってもよい。また、情報提供装置10は、TF−IDF(Term Frequency - Inverse Document Frequency)を用いて、分散表現の生成を行ってもよい。
【0037】
また、情報提供装置10は、第2要素の分散表現を生成する際に、生成元となる第1要素の限定を行ってもよい。例えば、ナレッジデータベースにおいては、1人の人物に対して主な職業だけではなく、副業や過去の職業等といった複数の職業が関連付けられる場合がある。このように複数の職業が関連付けられた人物と対応する分散表現には、例えば、第1の職業の概念以外にも、第2の職業の概念が含まれることとなる。このような人物の分散表現を用いて、第1の職業の分散表現を生成した場合、第2の職業の概念がノイズとして入り込む結果、トリプルに付与するスコアの精度が低下すると考えられる。
【0038】
そこで、情報提供装置10は、所定の第2要素と共にトリプルに含まれる第1要素であって、他の第2要素と共にトリプルに含まれていない第1要素を特定し、特定した第1要素の分散表現の平均値を所定の第2要素の分散表現としてもよい。例えば、情報提供装置10は、ある職業のエンティティと関連付けられた人物のエンティティのうち、他の職業のエンティティとは関連付けられていないエンティティを抽出する。より具体的には、情報提供装置10は、処理対象となる職業のエンティティとトリプルを構成する人物のエンティティのうち、処理対象となる職業以外の職業のエンティティとトリプルを構成していない人物のエンティティを抽出する。そして、情報提供装置10は、抽出したエンティティの分散表現の平均値を算出し、算出した平均値を処理対象となる職業のエンティティの分散表現とする。この結果、情報提供装置10は、第2要素の分散表現の生成精度を向上させることができる。
【0039】
なお、情報提供装置10は、より複雑な処理を実行してもよい。例えば、情報提供装置10は、所定の第2要素を含むトリプルを特定し、特定したトリプルに含まれる第1要素を示す単語と所定の第2要素を示す単語とが同一の文章中に出現する頻度に応じた重みづけを用いて、特定したトリプルに含まれる第1要素の分散表現の平均値を算出してもよい。例えば、情報提供装置10は、所定の職業のエンティティと関連付けられたすべての人物のエンティティを特定する。続いて、情報提供装置10は、特定した人物のエンティティごとに、その人物を示す単語と、所定の職業を示す単語とが同一の文章中に出現する頻度に基づく係数を算出する。そして、情報提供装置10は、特定した各人物のエンティティの分散表現に対し、そのエンティティに対応する係数を積算し、積算した値の平均値を算出してもよい。
【0040】
また、情報提供装置10は、分散表現が示す概念をより一般化することで、スコアの算出精度を向上させてもよい。例えば、情報提供装置10は、第1要素のうち所定の種別に属する第1要素を特定し、特定した第1要素の分散表現の平均値である分散平均値を算出する。そして、情報提供装置10は、所定のトリプルに含まれる第1要素の分散表現から分散平均値を減算した値と、所定のトリプルに含まれる第2要素の分散表現から分散平均値を減算した値との類似度に応じたスコアを算出し、算出したスコアを所定のトリプルに付与してもよい。
【0041】
例えば、情報提供装置10は、人物のエンティティを全て特定し、特定したエンティティの分散表現の平均値を算出することで、例えば、人類の概念を示す分散表現を分散平均値として算出する。続いて、情報提供装置10は、処理対象となるトリプルを構成する人物のエンティティおよび職業のエンティティを抽出し、抽出した人物のエンティティの分散表現から分散平均値を減算した分散表現と、抽出した職業のエンティティから分散平均値を減算した分散表現とを生成する。そして、情報提供装置10は、生成した分散表現同士の類似度に基づくスコアを算出する。このような処理の結果、情報提供装置10は、各エンティティが示す概念のうち共通する概念の影響を軽減できるので、スコアの算出精度を向上させることができる。
【0042】
なお、情報提供装置10は、人物以外にも、任意の種別に分類されるエンティティの分散表現の平均値を分散平均値として良い。すなわち、情報提供装置10は、スコアの算出に考慮したくない概念と対応する分類のエンティティを特定し、特定したエンティティの分散表現の平均値を分散平均値とすることで、スコアの算出に考慮したくない概念を示す分散平均値を算出してもよい。
【0043】
〔1−5.正規化について〕
また、情報提供装置10は、分散表現を生成する際に各種の正規化を行ってもよい。例えば、情報提供装置10は、第1要素の分散表現を生成する際、文章中に含まれる単語のうち、第1要素を示す複数の単語を所定の単語に変換し、変換後の文章から、第1要素の分散表現を生成してもよい。例えば、情報提供装置10は、ある人物を示す文字列として、複数種類の文字列が文章中に含まれている場合、各文字列をナレッジデータベースに登録されたその人物の人名に変換し、変換後の文章を用いて、その人物のエンティティを示す分散表現を生成してもよい。
【0044】
また、情報提供装置10は、正規化の際に、他のエンティティに対応する概念が欠損しないように、例えば、共参照解析といった各種の文字解析技術を採用してもよい。例えば、情報提供装置10は、ある人物の名前が「ABCD」であり、その人物が議員である場合、「AB議員」といった単語を「ABCD」とはせず、「議員であるABCD」といった文字列に変換することで、その人物が議員であるという概念の欠損を防いでもよい。すなわち、情報提供装置10は、エンティティと対応する分散表現が、そのエンティティの概念を相対的に精度良く示すことができるのであれば、任意の文字解析技術を用いた正規化を行ってよい。
【0045】
〔1−6.スコアリングについて〕
ここで、情報提供装置10は、トリプルを構成するエンティティの分散表現同士の類似度に基づいて、トリプルのスコアを算出するのであれば、任意の手法でスコアの算出を行ってよい。例えば、情報提供装置10は、分散表現のコサイン類似度の値をそのままスコアとして採用してもよい。
【0046】
また、情報提供装置10は、スコアの正規化を行ってもよい。例えば、情報提供装置10は、所定の第1要素を含む全てのトリプルについて類似度を算出し、算出した類似度の最低値と最大値との範囲に応じたスコアを各トリプルに付与してもよい。また、例えば、情報提供装置10は、所定の第1要素を含むトリプルのうち、類似度が最も大きいトリプルに対し、所定の値のスコアを付与してもよい。
【0047】
例えば、情報提供装置10は、ある人物のエンティティを含むトリプルを全て特定し、特定したトリプルごとに、エンティティ同士の分散表現のコサイン類似度を算出する。そして、情報提供装置10は、算出したコサイン類似度の値の分布、最大値、最小値、中央値、標準偏差等に応じて、算出した各コサイン類似度を所定の範囲(例えば0〜7)のスコアへと投影する。例えば、情報提供装置10は、類似度が最も大きいトリプルに対してスコア「7」を付与し、類似度が最も小さいトリプルに対してスコア「0」を付与する。また、例えば、情報提供装置10は、類似度が中央値に近いトリプルに対しては、スコア「3」や「4」を付与する。
【0048】
なお、情報提供装置10は、クラウドソーシングを用いて、不特定多数の利用者の印象を考慮したスコアリングを行ってもよい。例えば、情報提供装置10は、トリプルを利用者に提供し、提供したトリプルの関係性の強弱に応じた所定の範囲のスコアを利用者から受付ける。そして、情報提供装置10は、受付けたスコアを考慮して、トリプルに付与するスコアを算出してもよい。
【0049】
また、情報提供装置10は、トリプルを利用者に提供する際に、提供先となる人物の属性に応じて異なるトリプルを提示してもよい。また、情報提供装置10は、利用者の属性とトリプルの内容とに応じた重みづけを考慮して、利用者から受付けたスコアの値を修正し、修正したスコアを用いて、トリプルのスコアリングを行ってもよい。例えば、情報提供装置10は、提示されたトリプルと関係性が高い人物(例えば、トリプルが示す職業と同じ職業の人物等)が付与したスコアについては、他のスコアよりも優先的にトリプルに反映させてもよい。また、情報提供装置10は、利用者の閲覧履歴に応じてトリプルに付与するスコアを変動させてもよい。また、情報提供装置10は、利用者に応じてトリプルのコーパスを変化させてもよい。
【0050】
〔1−7.要素について〕
上述した処理では、情報提供装置10は、人物を示す第1要素と、その人物の職業を示す第2要素とを有するトリプルについて、スコアの付与を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、人物の職業のみならず、国籍や趣味等といったその人物の属性を示す任意のエンティティを第2要素としてもよい。すなわち、情報提供装置10は、人物を示す第1要素と、その人物の属性を示す第2要素と、属性の種別を示す関係情報(例えば、「職業」、「国籍」、「趣味」等)とを有する複数のトリプルから、第1要素と第2要素とを抽出し、抽出した各要素の分散表現から、トリプルのスコアを算出してもよい。
【0051】
また、情報提供装置10は、人物以外にも、主語を示す任意のエンティティを第1要素とし、目的語を示す任意のエンティティを第2要素とし、上述した算出処理を実行することで、これら第1要素および第2要素を含むトリプルのスコアを算出してよい。また、情報提供装置10は、例えば、目的語となるエンティティを第1要素とし、主語となるエンティティを第2要素としてもよい。すなわち、情報提供装置10は、2つの要素と要素間の関係性を示す関係情報とからなるトリプルが登録されたナレッジデータベースにおいて、各要素の分散表現を生成し、生成した分散表現間の類似度に応じたスコアをトリプルに付与するのであれば、任意の種別のエンティティを各要素として採用して良い。
【0052】
また、上述した分散平均値は、トリプルを構成する各要素の種別に応じた分類に基づく分散表現の平均値であってもよい。例えば、情報提供装置10は、職業「議員」と対応付けられた人物のエンティティの分散表現の平均値を分散平均値としてもよい。すなわち、情報提供装置10は、トリプルを構成する各エンティティが示す概念の種別や検索目的等に応じて、トリプルを構成するエンティティの分類を行い、分類結果に応じた分散平均値の値を算出してもよい。
【0053】
〔1−8.スコアの利用態様について〕
また、情報提供装置10は、スコアを検索以外の処理に用いてもよい。例えば、あるトリプルについて付与されたスコアが他のトリプルについて付与されたスコアよりも著しく低い場合や、所定の閾値よりも低い場合等は、そのトリプルが誤りである可能性がある。そこで、情報提供装置10は、スコアを用いてトリプルが誤りであるか否かを判定することで、ナレッジデータベースの精査を行ってもよい。
【0054】
例えば、ナレッジデータベースには「人物#A」の職業として「職業#A」が登録されているが、実際には、ナレッジデータベースに登録されていない「職業#B」(例えば、既存の職業にカテゴライズされない新規な職業)が「人物#A」の職業としてよりふさわしいといった状況が予測される。このような場合、「人物#A」の職業が「職業#A」であるといったトリプルのスコアは、所定の閾値を下回る可能性がある。そこで、情報提供装置10は、あるトリプルのスコアが所定の閾値を下回る場合は、新たな職業の登録を管理者に要請するといった処理を実行してもよい。
【0055】
また、トリプルに付与されるスコアは、ナレッジデータベースの内容や、分散表現を生成する際に用いる文章に応じて変化すると考えられる。このようなナレッジデータベースの内容や、分散表現を生成する際の文章は、時間の経過とともに変化するため、トリプルに付与されるスコアも変化する。そこで、情報提供装置10は、スコアの変遷に応じた各種の処理を実行してもよい。
【0056】
例えば、マイクロブログの投稿やニュース記事等を用いて分散表現を生成した場合は、一般的な利用者の印象の変化がスコアに反映されると考えられる。そこで、情報提供装置10は、例えば、スコアが急に上昇したトリプルについては、所謂バズワードに対応する知識を示すトリプルとして利用者に提供してもよい。また、情報提供装置10は、スコアが急に上昇したトリプルについては、所謂虚偽の疑義がある情報として利用者に提供してもよい。
【0057】
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。図2は、実施形態に係る情報提供装置の構成例を示す図である。図2に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
【0058】
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、利用者端末100との間で情報の送受信を行う。
【0059】
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、エンティティデータベース31、トリプルデータベース32、分散表現データベース33、およびスコアデータベース34を記憶する。
【0060】
以下、図3〜6を用いて、各データベース31〜34に登録される情報の一例を説明する。エンティティデータベース31には、エンティティに関する情報が登録される。例えば、図3は、実施形態に係るエンティティデータベースに登録される情報の一例を示す図である。図3に示すように、エンティティデータベース31には、「エンティティID」、「エンティティ種別」、「ノードID」、「ノード種別」、および「データ」といった項目を有する情報が登録される。
【0061】
ここで、「エンティティID」とは、エンティティの識別子である。また、「エンティティ種別」とは、対応付けられた「エンティティID」が示すエンティティの種別を示す情報であり、例えば、エンティティが「人物」を示すエンティティであるか「職業」を示すエンティティであるかといった情報を示す。「ノードID」は、対応付けられた「エンティティID」が示すエンティティと関連するノードの識別子である。「ノード種別」は、対応付けられた「ノードID」が示すノードの種別を示す情報であり、ノードが名前を示すか、写真を示すか、職業を示すか等といった情報である。また、「データ」とは、対応付けられた「ノードID」が示すノードのデータである。
【0062】
例えば、図3に示す例では、エンティティID「E11」、エンティティ種別「人物」、ノードID「I111」、ノード種別「名前」、およびデータ「名前#1」が対応付けて登録されている。このような情報は、エンティティID「E11」が示すエンティティ(すなわち、エンティティE11)が「人物」を示すエンティティであり、そのエンティティが示す人物の「名前」を示すノードとしてノードID「I111」が登録されており、その名前が「名前#1」である旨を示す。なお、図1に示す例では、「名前#1」や「写真#1」等といった概念的な値を記載したが、実際には、エンティティデータベース31には、対応付けられたエンティティと対応する人物の名前、写真、生年月日等を示す各種の情報が登録されることとなる。
【0063】
トリプルデータベース32には、トリプルを示す情報が登録される。例えば、図4は、実施形態に係るトリプルデータベースに登録される情報の一例を示す図である。図4に示す例では、トリプルデータベース32には、「トリプルID」、「関係情報ID」、「種別」、「第1要素」、および「第2要素」といった項目を有する情報が登録される。
【0064】
ここで、「トリプルID」とは、トリプルを識別する識別子である。また、「関係情報ID」とは、トリプルに含まれる関係情報を識別する識別子である。また、「種別」とは、トリプルに含まれるエンティティ間の関係性を示す情報である。また、「第1要素」および「第2要素」とは、対応付けられた「トリプルID」が示すトリプルに含まれるエンティティのエンティティIDである。
【0065】
例えば、図4に示す例では、トリプルID「トリプル#1」、関係情報ID「C1」、種別「職業」、第1要素「E11」、および第2要素「E21」が対応付けて登録されている。このような情報は、トリプルID「トリプル#1」が示すトリプルとして、エンティティE11とエンティティE12と関係情報C1とが対応付けて登録されており、エンティティE21がエンティティE11の職業である旨を示す。
【0066】
分散表現データベース33には、各エンティティの分散表現が登録される。例えば、図5は、実施形態に係る分散表現データベースに登録される情報の一例を示す図である。図5に示すように、分散表現データベース33には、「エンティティID」および「分散表現」といった項目が登録される。例えば、図5に示す例では、分散表現データベース33には、エンティティID「E11」および分散表現「分散表現#11」が対応付けて登録されている。このような情報は、エンティティE11の分散表現が「分散表現#11」である旨を示す。なお、図5に示す例では「分散表現#11」といった概念的な値を記載したが、実際には、分散表現データベース33には、分散表現である多次元量が登録されることとなる。
【0067】
スコアデータベース34には、各トリプルに付与されたスコアが登録される。例えば、図6は、実施形態に係るスコアデータベースに登録される情報の一例を示す図である。図6に示すように、スコアデータベース34には、「トリプルID」および「スコア」といった項目が登録される。例えば、図6に示す例では、スコアデータベース34には、トリプルID「トリプル#1」およびスコア「7」が対応付けて登録されている。このような情報は、トリプルID「トリプル#1」が示すトリプルに付与されたスコアが「7」である旨を示す。
【0068】
図2に戻り、説明を続ける。制御部40は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。なお、制御部40は、インデックスの読み込みを行う演算処理装置となる。
【0069】
図2に示すように、制御部40は、抽出部41、生成部42、算出部43、付与部44、および検索部45を有する。抽出部41は、第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、第1要素と第2要素とを抽出する。例えば、抽出部41は、人物を示す第1要素と、その人物の職業や国籍等といった属性を示す第2要素と、属性の種別を示す関係情報とを有する複数のトリプルから、第1要素と第2要素とを抽出する。
【0070】
例えば、抽出部41は、トリプルデータベース32を参照し、処理対象となる所定の種別の関係情報を含むトリプルを特定する。例えば、抽出部41は、トリプルデータベース32を参照し、関係情報の種別が「職業」であるトリプル、すなわち、ある人物の職業を示すトリプルを特定する。そして、抽出部41は、抽出したトリプルの第1要素であるエンティティと第2要素であるエンティティを特定する。
【0071】
生成部42は、第1要素を示す単語を含む文章から、第1要素の分散表現と第2要素の分散表現とをそれぞれ生成する。より具体的には、生成部42は、第1要素を示す単語を含む文章から第1要素の分散表現を生成し、所定の第2要素と共にトリプルに含まれる第1要素の分散表現から、所定の第2要素の分散表現を生成する。例えば、生成部42は、所定の第2要素とともにトリプルに含まれる第1要素の分散表現の平均値を算出し、算出した平均値を所定の第2要素の分散表現とする。
【0072】
例えば、生成部42は、エンティティデータベースを参照し、抽出部41が第1要素として抽出したエンティティと対応付けられたノードから、エンティティが示す概念と対応する文字列を特定する。例えば、生成部42は、第1要素として抽出されたエンティティが人物を示す場合、人物の名前となる文字列を特定する。なお、生成部42は、第1要素として抽出されたエンティティが職業を示す場合、職業名の文字列を特定する。
【0073】
続いて、生成部42は、w2vを用いて、特定した文字列の分散表現を生成する。例えば、生成部42は、第1要素を示す単語を含む複数の文章において、当該単語と共に出現する他の単語の出現頻度に基づいて、第1要素の分散表現を生成する。なお、生成部42は、文章中に含まれる単語のうち、第1要素を示す複数の単語を所定の単語に変換し、変換後の文章から、第1要素の分散表現を生成するといった正規化を行ってもよい。
【0074】
このような処理を繰り返すことで、生成部42は、第1要素として抽出された各エンティティの分散表現を生成する。そして、生成部42は、各エンティティの分散表現を分散表現データベース33に登録する。
【0075】
続いて、生成部42は、トリプルデータベース32を参照し、抽出部41が第2要素として抽出したエンティティと対応付けられた第1要素のエンティティを全て特定する。例えば、生成部42は、第2要素としてエンティティE21が抽出された場合、エンティティE21とトリプルを構成する第1要素のエンティティ(例えば、エンティティE11、E13、E14)を特定する。そして、生成部42は、特定したエンティティの分散表現を分散表現データベース33から特定し、特定した分散表現の平均値を第2要素のエンティティの分散表現として分散表現データベース33に登録する。
【0076】
なお、生成部42は、所定の第2要素と共にトリプルに含まれる第1要素であって、他の第2要素と共にトリプルに含まれていない第1要素を特定し、特定した第1要素の分散表現の平均値を所定の第2要素の分散表現としてもよい。すなわち、生成部42は、ある職業のエンティティの分散表現を生成する場合、その職業のエンティティと関連付けられた人物のエンティティのうち、その職業以外の職業のエンティティと関連付けられていない人物のエンティティを特定する。例えば、生成部42は、図1に示すナレッジデータべースが登録されている際に、職業のエンティティE21の分散表現を求める場合は、職業のエンティティE21に関連付けられた人物のエンティティE11、E13、E14から、他の職業のエンティティE22に関連付けられた人物のエンティティE11を除外する。そして、生成部42は、エンティティE13、E14の分散表現を用いて、エンティティE21の分散表現を生成してもよい。
【0077】
また、生成部42は、所定の第2要素を含むトリプルを特定し、特定したトリプルに含まれる第1要素を示す単語と所定の第2要素を示す単語とが同一の文章中に出現する頻度に応じた重みづけを用いて、特定したトリプルに含まれる第1要素の分散表現の平均値を算出してもよい。例えば、生成部42は、図1に示すナレッジデータべースが登録されている際に、職業のエンティティE22の分散表現を求める場合は、エンティティE11を示す文字列(例えば、人名)と、エンティティE22を示す文字列(例えば、職業名)とが同一の文章に出現する頻度Aを算出する。また、生成部42は、エンティティE12を示す文字列と、エンティティE22を示す文字列とが同一の文章に出現する頻度Bを算出する。そして、生成部42は、エンティティE11の分散表現に頻度Aを積算した値と、エンティティE12の分散表現に頻度Bを積算した値との平均値をエンティティE22の分散表現としてもよい。
【0078】
算出部43は、トリプルに含まれる第1要素の分散表現と第2要素の分散表現との類似度を算出する。例えば、算出部43は、トリプルデータベース32を参照し、同一のトリプルに含まれるエンティティを特定する。続いて、算出部43は、分散表現データベース33を参照し、特定したエンティティの分散表現を特定する。そして、算出部43は、特定した分散表現同士のコサイン類似度を算出し、付与部44に出力する。
【0079】
また、算出部43は、第1要素のうち所定の種別に属する第1要素を特定し、特定した第1要素の分散表現の平均値である分散平均値を算出する。例えば、算出部43は、エンティティデータベース31を参照し、人物のエンティティを全て特定する。続いて、算出部43は、特定したエンティティの分散表現を分散表現データベース33から特定し、特定した分散表現の平均値を人間の分散平均値として算出する。
【0080】
付与部44は、トリプルに対し、算出部43が算出した第1要素の分散表現と第2要素の分散表現との類似度に応じたスコアを付与する。例えば、付与部44は、所定の第1要素を含む全てのトリプルに対して、算出されたコサイン類似度の最低値と最大値との範囲に応じたスコアを付与する。例えば、付与部44は、所定の第1要素を含むトリプルのうち、コサイン類似度が最も大きいトリプルに対し、所定の値のスコアを付与する。そして、付与部44は、トリプルとスコアとを対応付けてスコアデータベース34に登録する。
【0081】
なお、付与部44は、所定のトリプルに含まれる第1要素の分散表現から分散平均値を減算した値と、所定のトリプルに含まれる第2要素の分散表現から分散平均値を減算した値との類似度に応じたスコアを算出し、算出したスコアを所定のトリプルに付与してもよい。例えば、付与部44は、スコアの付与対象となるトリプルに含まれるエンティティの分散表現から、算出部43が算出した分散平均値の値を減算し、分散平均値の値を減算した各分散表現のコサイン類似度を算出する。そして、付与部44は、算出したコサイン類似度に基づいて、スコアをトリプルに付与してもよい。
【0082】
検索部45は、検索クエリとして第1要素と関係情報との組を受付けた場合は、第1要素と関係情報との組を含むトリプルのうち、付与されたスコアが所定の条件を満たすトリプルを検索する。例えば、検索部45は、利用者端末100から人名と「職業」といった関係情報の種別とを検索クエリとして受付ける。このような場合、検索部45は、エンティティデータベース31およびトリプルデータベース32を参照し、検索クエリとして受付けた人名と対応するエンティティを含み、かつ、種別が「職業」である関係情報を含むトリプルを特定する。
【0083】
続いて、検索部45は、特定したトリプルのスコアをスコアデータベース34から特定する。そして、検索部45は、特定したスコアが所定の条件を満たすトリプル、例えば、スコアが最も高いトリプルやスコアが所定の値よりも高いトリプル等を検索結果として利用者端末100へと提供する。
【0084】
次に、図7を用いて、情報提供装置10が得る分散表現空間の一例について説明する。例えば、図7は、実施形態に係る情報提供装置が生成する分散表現空間の一例を示す図である。例えば、情報提供装置10は、上院議員である人物#1、下院議員である人物#2、主な職業が知事であるが、過去にサッカー選手であった人物#3および知事である人物#4の分散表現を生成する。また、情報提供装置10は、サッカー選手である人物#5〜人物#8の分散表現を生成する。
【0085】
このような場合、人物#1、人物#2、人物#4は、「政治家」という共通する職業を有しているため、人名と共に文章中に現れる他の単語の出現頻度が類似するので、分散表現がある程度類似することとなる。また、人物#3は、「政治家」であるとともに「サッカー選手」でもあるが、「サッカー選手」としてあまり有名ではない場合は、単語の出現頻度が「政治家」の人物と類似する。この結果、人物#3の分散表現も、人物#1、人物#2、人物#4の分散表現と類似することとなる。また、人物#5〜人物#8は、「サッカー選手」という共通する職業を有しているため、分散表現が、分散表現空間においてある程度類似することとなる。
【0086】
ここで、情報提供装置10は、職業「政治家」のエンティティの分散表現を生成する場合、人物#1、人物#2、人物#4の分散表現の平均値を職業「政治家」のエンティティの分散表現とする。また、情報提供装置10は、職業「サッカー選手」のエンティティの分散表現を生成する場合、人物#5〜人物#8の分散表現の平均値を職業「サッカー選手」のエンティティの分散表現とする。
【0087】
ここで、人物#3は、「政治家」でもあり「サッカー選手」でもある。しかしながら、人物#3が「政治家」としては有名であるが「サッカー選手」としては有名ではない場合、人物#3の分散表現は、職業「政治家」の人物#1、人物#2、人物#4の分散表現に類似することとなる。この結果、人物#3の分散表現であるベクトルV1と、職業「政治家」の分散表現であるベクトルV2とのコサイン類似度は、人物#3の分散表現であるベクトルV1と、職業「サッカー選手」の分散表現であるベクトルV3とのコサイン類似度よりも、値が1に近づくと考えられる。このように、情報提供装置10は、各人物と職業との関係性を分散表現に落とし込むことができるので、各トリプルに含まれるエンティティの分散表現のコサイン類似度に基づいて、トリプルの確度を示すスコアを算出することができる。
【0088】
ここで、w2vにおいては、職業や人物以外にも様々な情報が分散表現空間上に投影される。このため、「人間」という大きな属性と関係性がある情報については、分散表現空間上において比較的近傍に投影されてしまう。そこで、情報提供装置10は、各人物#1〜人物#8の分散表現の平均値を算出することで、「人間」を示す分散表現を分散平均値として算出する。このような「人間」を示す分散表現を基準とした各職業の分散表現の向きには、分散表現空間における原点を基準とした各職業の分散表現空間の向きよりも明確な差分が生じると考えられる。そこで、情報提供装置10は、トリプルに含まれる各エンティティの分散表現から分散平均値を減算し、分散平均値を減算した分散表現のコサイン類似度を算出することで、より明確なスコアリングを実現することができる。
【0089】
なお、情報提供装置10は、人物以外にも任意の要素の分散平均値を算出してもよい。例えば、情報提供装置10は、動物、建築物、無機質、有機質等、スコアリングの対象となるトリプルのエンティティと対応する事象の種別等に応じた任意の要素の分散平均値を算出してよい。
【0090】
〔3.情報提供装置が実行する処理の流れの一例〕
続いて、図8を用いて、情報提供装置10が実行する付与処理の流れについて説明する。図8は、実施形態に係る情報提供装置が実行する付与処理の流れの一例を示すフローチャートである。なお、情報提供装置10は、図8に示す処理を、任意の単位で、任意のタイミングにより実行可能である。
【0091】
まず、情報提供装置10は、人物のエンティティを抽出する(ステップS101)。そして、情報提供装置10は、w2vを用いて、人物のエンティティの分散表現を生成する(ステップS102)。続いて、情報提供装置10は、所定の職業のエンティティとトリプルを構成する人物のエンティティを全て特定する(ステップS103)。そして、情報提供装置10は、特定したエンティティの分散表現の平均値を算出し(ステップS104)、算出した平均値を、所定の職業のエンティティの分散表現とする(ステップS105)。また、情報提供装置10は、トリプルを構成するエンティティの分散表現の類似度を算出し(ステップS106)、算出した類似度に応じたスコアをトリプルに付与して(ステップS107)、処理を終了する。
【0092】
続いて、図9を用いて、情報提供装置10が実行する検索処理の流れについて説明する。図9は、実施形態に係る情報提供装置が実行する検索処理の流れの一例を示すフローチャートである。まず、情報提供装置10は、検索クエリを受付けたか否かを判定し(ステップS201)、受付けていない場合は(ステップS201:No)、受付けるまで待機する。また、情報提供装置10は、検索クエリを受付けた場合は(ステップS201:Yes)、検索クエリと対応するエンティティと関連情報とを特定する(ステップS202)。また、情報提供装置10は、特定したエンティティと関連情報とを含むトリプルを特定する(ステップS203)。そして、情報提供装置10は、特定したトリプルのうち、スコアが所定の要件を満たすトリプルを出力し(ステップS204)、処理を終了する。
【0093】
〔4.変形例〕
上記では、情報提供装置10による提供処理や付与処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する提供処理や付与処理のバリエーションについて説明する。
【0094】
〔4−1.エンティティの種別について〕
上述した例では、情報提供装置10は、人物と人物の職業とを関連付けたトリプルが登録されるナレッジデータベースを参照した。しかしながら、実施形態は、これに限定されるものではない。すなわち、情報提供装置10は、任意の事象を示すエンティティが関連づけられたトリプルについて、上述した付与処理を実行することで、トリプルの確度を示すスコアの算出を行ってもよい。
【0095】
〔4−2.装置構成〕
情報提供装置10は、自装置でナレッジデータベースを管理せずともよい。例えば、記憶部30に登録された各データベース31〜34は、外部のストレージサーバに保持されていてもよい。また、情報提供装置10は、検索処理を実現するフロントエンドサーバと、付与処理を実現するバックエンドサーバとで実現されてもよい。このような場合、フロントエンドサーバには、図2に示す検索部45が配置され、バックエンドサーバには、抽出部41、生成部42、算出部43、および付与部44が配置される。
【0096】
〔4−3.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0097】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0098】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0099】
〔4−4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図10に示すような構成のコンピュータ1000によって実現される。図10は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0100】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
【0101】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0102】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0103】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0104】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0105】
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
【0106】
〔5.効果〕
上述したように、情報提供装置10は、第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、第1要素と第2要素とを抽出する。そして、情報提供装置10は、第1要素を示す単語を含む文章から、第1要素の分散表現と第2要素の分散表現とをそれぞれ生成する。そして、情報提供装置10は、トリプルに対し、第1要素の分散表現と第2要素の分散表現との類似度に応じたスコアを付与する。このため、情報提供装置10は、トリプルに含まれる第1要素と第2要素との関係性の確度を示すスコアを付与することができるので、利用者の意図に沿ったナレッジベースの検索を実現することができる。
【0107】
また、情報提供装置10は、第1要素を示す単語を含む文章からその第1要素の分散表現を生成し、所定の第2要素と共にトリプルに含まれる第1要素の分散表現から、その所定の第2要素の分散表現を生成する。例えば、情報提供装置10は、所定の第2要素とともにトリプルに含まれる第1要素の分散表現の平均値を算出し、算出した平均値をその所定の第2要素の分散表現とする。また、例えば、情報提供装置10は、所定の第2要素と共にトリプルに含まれる第1要素であって、他の第2要素と共にトリプルに含まれていない第1要素を特定し、特定した第1要素の分散表現の平均値を所定の第2要素の分散表現とする。このため、情報提供装置10は、第1要素の概念を示す分散表現と、第2要素の概念を示す分散表現とを精度良く生成することができるので、トリプルに付与するスコアの精度を向上させることができる。
【0108】
また、情報提供装置10は、所定の第2要素を含むトリプルを特定し、特定したトリプルに含まれる第1要素を示す単語と所定の第2要素を示す単語とが同一の文章中に出現する頻度に応じた重みづけを用いて、特定したトリプルに含まれる第1要素の分散表現の平均値を算出する。このため、情報提供装置10は、トリプルに対応する単語が文章中に出現する頻度に応じたスコアリングを実現できる。
【0109】
また、情報提供装置10は、第1要素を示す単語を含む複数の文章において、その単語と共に出現する他の単語の出現頻度に基づいて、その第1要素の分散表現を生成する。また、情報提供装置10は、文章中に含まれる単語のうち、第1要素を示す複数の単語を所定の単語に変換し、変換後の文章から、その第1要素の分散表現を生成する。このため、情報提供装置10は、第1要素の概念を示す分散表現を適切に生成することができる。
【0110】
また、情報提供装置10は、第1要素のうち所定の種別に属する第1要素を特定し、特定した第1要素の分散表現の平均値である分散平均値を算出する。そして、情報提供装置10は、所定のトリプルに含まれる第1要素の分散表現から分散平均値を減算した値と、その所定のトリプルに含まれる第2要素の分散表現から分散平均値を減算した値との類似度に応じたスコアを算出し、算出したスコアをその所定のトリプルに付与する。このため、情報提供装置10は、各トリプルに付与されるスコアの差分を明確にすることができる。
【0111】
また、情報提供装置10は、所定の第1要素を含む全てのトリプルについて類似度を算出し、算出した類似度の最低値と最大値との範囲に応じたスコアを各トリプルに付与する。また、情報提供装置10は、所定の第1要素を含むトリプルのうち、類似度が最も大きいトリプルに対し、所定の値のスコアを付与する。このため、情報提供装置10は、トリプルの検索時に有用なスコアを付与することができる。
【0112】
また、情報提供装置10は、人物を示す第1要素と、その人物の属性を示す第2要素と、その属性の種別を示す関係情報とを有する複数のトリプルから、第1要素と第2要素とを抽出する。また、情報提供装置10は、人物の職業または国籍を示す第2要素を抽出する。このため、情報提供装置10は、人物がどのような属性を有しているかといった検索クエリに対し、その人物と対応付けられた属性のうち、より確度が高い属性(すなわち、一般的に認識されている主な属性)を検索結果として提供することができる。
【0113】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0114】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、付与部は、付与手段や付与回路に読み替えることができる。
【符号の説明】
【0115】
10 情報提供装置
20 通信部
30 記憶部
31 エンティティデータベース
32 トリプルデータベース
33 分散表現データベース
34 スコアデータベース
40 制御部
41 抽出部
42 生成部
43 算出部
44 付与部
45 検索部
100 利用者端末
【要約】
【課題】利用者の意図に沿ったナレッジベースの検索を実現する。
【解決手段】本願に係る付与装置は、第1要素と第2要素と要素間の関係を示す関係情報とを有する複数のトリプルを参照し、第1要素と第2要素とを抽出する抽出部と、第1要素を示す単語を含む文章から、第1要素の分散表現と第2要素の分散表現とをそれぞれ生成する生成部と、前記トリプルに対し、第1要素の分散表現と第2要素の分散表現との類似度に応じたスコアを付与する付与部とを有することを特徴とする。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10