(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-19
(45)【発行日】2023-09-27
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06F 16/35 20190101AFI20230920BHJP
G06F 16/28 20190101ALI20230920BHJP
【FI】
G06F16/35
G06F16/28
(21)【出願番号】P 2019051425
(22)【出願日】2019-03-19
【審査請求日】2020-12-11
【審判番号】
【審判請求日】2022-10-26
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】山崎 朋哉
【合議体】
【審判長】吉田 美彦
【審判官】林 毅
【審判官】稲垣 良一
(56)【参考文献】
【文献】小町守、外3名、ウェブ検索ログを用いたラベル伝播による意味カテゴリ獲得、情報処理学会研究報告、社団法人情報処理学会、2009年6月15日、Vol.2009-SLP-76、No.9、pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F16/28
G06F16/35
(57)【特許請求の範囲】
【請求項1】
クラスが決定済みの第1エンティティに関連したコンテンツの検索ログと、前記クラスが未決定の第2エンティティに関連したコンテンツの検索ログとのそれぞれから、一つ以上のコンテキストタームを抽出する抽出部と、
前記抽出部によって抽出された前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づいて、前記第2エンティティのクラスを決定する決定部と、を備え、
前記決定部は、
ラベルスプレッディング法を利用して、前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づき、前記第2エンティティのクラスを決定するとともに、前記コンテキストタームのクラスを決定し、
前記ラベルスプレッディング法を利用して前記第2エンティティのクラスを決定する際に、前記第2エンティティのクラスと前記コンテキストタームのクラスとを初期化し、
初期化後にクラスが決定された前記第2エンティティである既存第2エンティティと異なる新たな前記第2エンティティである新規第2エンティティが抽出された場合、前記ラベルスプレッディング法を利用して前記
新規第2エンティティのクラスを決定する際に、前記コンテキストタームのクラスを初期化しない、
情報処理装置。
【請求項2】
前記第1エンティティおよび前記第2エンティティが互いに独立したノードとして含まれる第1の部分集合と、前記一つ以上のコンテキストタームが互いに独立したノードとして含まれる第2の部分集合とに基づいて、二部グラフを生成する生成部を更に備え、
前記決定部は、前記生成部によって生成された前記二部グラフに基づいて、前記第2エンティティのクラスを決定する、
請求項1に記載の情報処理装置。
【請求項3】
前記決定部は、前記第1の部分集合および前記第2の部分集合に含まれる複数のノードのそれぞれの前記クラスを示す値を要素とした第1行列と、前記第1の部分集合に含まれるノードと前記第2の部分集合に含まれるノードとを接続するエッジの重み係数を要素とした第2行列との積で前記第1行列を更新することで、前記第2エンティティのクラスを決定する、
請求項2に記載の情報処理装置。
【請求項4】
前記決定部は、
前記第1行列が収束するまで、前記第1行列と前記第2行列との積で前記第1行列を更新することを繰り返し、
前記第1行列を更新することを繰り返す過程で、前記第1エンティティのクラスを再決定する、
請求項3に記載の情報処理装置。
【請求項5】
前記重み係数は、前記コンテンツの検索結果から得られる統計的指標値に基づいて決定される、
請求項3または4に記載の情報処理装置。
【請求項6】
コンピュータが、
クラスが決定済みの第1エンティティに関連したコンテンツの検索ログと、前記クラスが未決定の第2エンティティに関連したコンテンツの検索ログとのそれぞれから、一つ以上のコンテキストタームを抽出し、
前記抽出した前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づいて、前記第2エンティティのクラスを決定し、
ラベルスプレッディング法を利用して、前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づき、前記第2エンティティのクラスを決定するとともに、前記コンテキストタームのクラスを決定し、
前記ラベルスプレッディング法を利用して前記第2エンティティのクラスを決定する際に、前記第2エンティティのクラスと前記コンテキストタームのクラスとを初期化し、
初期化後にクラスが決定された前記第2エンティティである既存第2エンティティと異なる新たな前記第2エンティティである新規第2エンティティが抽出された場合、前記ラベルスプレッディング法を利用して前記
新規第2エンティティのクラスを決定する際に、前記コンテキストタームのクラスを初期化しない、
情報処理方法。
【請求項7】
コンピュータに、
クラスが決定済みの第1エンティティに関連したコンテンツの検索ログと、前記クラスが未決定の第2エンティティに関連したコンテンツの検索ログとのそれぞれから、一つ以上のコンテキストタームを抽出する処理と、
前記抽出した前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づいて、前記第2エンティティのクラスを決定する処理と、
ラベルスプレッディング法を利用して、前記一つ以上のコンテキストターム
のクラスと、前記第1エンティティのクラスとに基づき、前記第2エンティティのクラスを決定するとともに、前記コンテキストタームのクラスを決定する処理と、
前記ラベルスプレッディング法を利用して前記第2エンティティのクラスを決定する際に、前記第2エンティティのクラスと前記コンテキストタームのクラスとを初期化する処理と、
初期化後にクラスが決定された前記第2エンティティである既存第2エンティティと異なる新たな前記第2エンティティである新規第2エンティティが抽出された場合、前記ラベルスプレッディング法を利用して前記
新規第2エンティティのクラスを決定する際に、前記コンテキストタームのクラスを初期化しない処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
エンティティ間の関係性を適切に示すデータベースを構築する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、インターネット上で新しいディジタルコンテンツが公開された場合、そのコンテンツに関する新規のエンティティを既存のデータベースに登録することが望まれている。しかしながら、従来の技術では、データベースに新規に登録されたエンティティには、専らクラスと呼ばれる情報を付与できておらず、データベースを十分に有効活用することができていない場合があった。
【0005】
本発明は、上記の課題に鑑みてなされたものであり、データベースをより有効活用することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、クラスが決定済みの第1エンティティに関連したコンテンツの検索ログと、前記クラスが未決定の第2エンティティに関連したコンテンツの検索ログとのそれぞれから、一つ以上のコンテキストタームを抽出する抽出部と、前記抽出部によって抽出された前記一つ以上のコンテキストタームと、前記第1エンティティのクラスとに基づいて、前記第2エンティティのクラスを決定する決定部と、を備える情報処理装置である。
【発明の効果】
【0007】
本発明の一態様によれば、データベースをより有効活用することができる情報処理装置、情報処理方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。
【
図3】第1実施形態における情報処理装置100の構成の一例を示す図である。
【
図4】ナレッジベース132の一例を示す図である。
【
図6】第1実施形態における制御部110による一連の処理の流れを示すフローチャートである。
【
図7】コンテキストタームの抽出方法を説明するための図である。
【
図9】ラベルスプレッディング法の一連の処理の流れを示すフローチャートである。
【
図10】二部グラフの初期化の様子を模式的に示す図である。
【
図11】クラス行列Fが収束したときの二部グラフを模式的に示す図である。
【
図12】二部グラフの初期化の様子を模式的に示す図である。
【
図13】実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【0010】
[概要]
情報処理装置は、一以上のプロセッサによって実現される。情報処理装置は、オントロジーと呼ばれる所定の概念体系(または語彙体系)によってエンティティの概念が形式化されたデータベース上において、未だクラスが決定されていないエンティティのクラスを自動的に決定する。
【0011】
データベースは、エンティティに関する情報と、エンティティ同士の意味的関係に関する情報とがグラフとして記述されたナレッジ型のデータベース(以下、ナレッジベースと称する)として表現される。ナレッジベースにおけるエンティティは、例えば、あるエンティティの実体(実世界で存在している物体)や、あるエンティティの概念(実世界または仮想世界の中で定義された概念)を表した情報である。より具体的には、エンティティは、例えば、「人間」、「機械」、「建物」、「組織」、「美」、「学問」、「旅行」といった抽象的な概念を表すエンティティあってもよいし、「○○タワー」のように「建物」という概念の実体や、「検索太郎(人名)」のように「人間」という概念の実体を表すエンティティであってもよい。
【0012】
このようなナレッジベースは、プロセッサ(コンピュータ)による処理を可能とするため、オントロジーによって定められたクラスとプロパティを用いて記述される。オントロジーとは、エンティティのクラスおよびプロパティを定義したものであると共に、クラスとプロパティとの間に成り立つ制約を集めたものである。
【0013】
クラスとは、後述するプロパティと呼ばれる性質が同じエンティティ同士を一つのグループにしたものである。例えば、くちばしを持ち、卵生の脊椎動物であり、前肢が翼になっている、という性質(プロパティ)を持つエンティティは、「鳥」というクラスあるいはその下位のクラスに分類される。また、「鳥」というクラスの中で、飛べない、という性質を持つエンティティは、例えば、「ペンギン」や「ダチョウ」という、より下位のクラスに分類される。このように、クラスの体系は、上位と下位の関係を有する階層構造をなし、上位のクラスの性質は、下位のクラスに継承される。上述した例では、「鳥」というクラスの、「くちばしを持ち、卵生の脊椎動物であり、前肢が翼になっている」という性質は、「ペンギン」や「ダチョウ」という下位のクラスの性質にも含まれることになる。クラスを識別するためのクラス名自体は必ずしもクラスの意味を表している必要はないが、以下の説明では簡単のためにクラスの意味を表すクラス名が与えられていることとする。
【0014】
プロパティとは、エンティティの性質(または特徴)や、クラス間の関係を記述する属性である。例えば、プロパティは、「~を体の構成要素としてもつ」という性質や、「~に生息する」という性質を示す属性であってもよいし、「あるクラスが上位クラスであり、あるクラスが下位クラスである」というクラス間の上位下位の関係を示す属性であってもよい。プロパティを識別するためのプロパティ名自体は必ずしもプロパティの意味を表している必要はないが、以下の説明では簡単のためにプロパティの意味を表すプロパティ名が与えられていることとする。
【0015】
ナレッジベースの基本的な単位は、ノード間を、ノード間の関係を表すラベル付きの方向性をもつエッジでつないだ3つ組であり、上述したエンティティはノードであり、プロパティはエッジであり、プロパティを用いて記述したエンティティの情報の値もノードで表現する。このような、ノード、エッジ、およびノードの値の3つを組み合わせたグラフにより、エンティティに関する情報やエンティティ間の関係が明確に表現される。
【0016】
例えば、現実世界で新しく映画やドラマといったコンテンツが制作され、インターネット上で、それらコンテンツを話題にしたブログや公式サイトなどが公開されたとする。この場合、新規公開されたコンテンツのタイトルや、公式サイトのURL(Uniform Resource Locator)などが新規エンティティとして既存のナレッジベースに登録される。既存のナレッジベースに登録された時点では、新規エンティティのクラスは定まっておらず、専ら人間が手動で決定したり、コンピュータがエンティティの抽出元であるコンテンツの文脈を解釈した上で、その文脈の意味に応じて自動的に決定したりする。しかしながら、ナレッジベース上では、依然としてクラスが定まっていない新規エンティティの数が多く、速やかにクラスを決定することが望まれている。
【0017】
そこで、情報処理装置は、ナレッジベースにおいて、既にクラスが決定されたエンティティ(以下、クラス定義済みエンティティと称する)に関連したコンテンツの検索ログと、未だクラスが決定されていないエンティティ(以下、クラス未定義エンティティと称する)とに関連したコンテンツの検索ログとのそれぞれから、一つ以上のコンテキストタームを抽出する。クラス定義済みエンティティは、「第1エンティティ」の一例であり、クラス未定義エンティティは、「第2エンティティ」の一例である。
【0018】
コンテキストタームとは、コンテンツを検索する際にユーザによって入力されるクエリに含まれ得るワード或いは表現である。例えば、「〇〇物語」というタイトルの書籍を検索する際に、ユーザが「〇〇物語_漫画」という文字列をクエリとして入力したとする。アンダーバーはスペースを表している。このような場合に、ナレッジベース上に、「〇〇物語」という名称のエンティティが存在する場合、「〇〇物語」の後にスペースを挟んで続く「漫画」という文字列がコンテキスタームとなる。
【0019】
情報処理装置は、一つ以上のコンテキストタームを抽出すると、そのコンテキストタームと、クラス定義済みエンティティのクラスとに基づいて、クラス未定義エンティティのクラスを決定する。これによって、ナレッジベースの情報量が充実するため、ナレッジベースをより有効活用することができる。
【0020】
<第1実施形態>
[全体構成]
図1は、第1実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。第1実施形態における情報処理システム1は、例えば、一つ以上の端末装置10と、サービス提供装置20と、情報処理装置100とを備える。これらの装置のうち一部または全部は、ネットワークNWを介して互いに接続される。なお、これらの装置のうち一部は、仮想的な装置として他の装置に包含されてもよく、例えば、サービス提供装置20の機能の一部または全部が、情報処理装置100の機能によって実現される仮想マシンであってもよいし、これとは反対に、情報処理装置100の機能の一部または全部が、サービス提供装置20の機能によって実現される仮想マシンであってもよい。
【0021】
図1に示す各装置は、ネットワークNWを介して種々の情報を送受信する。ネットワークNWは、例えば、無線基地局、Wi‐Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、
図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
【0022】
端末装置10は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、NIC(Network Interface Card)などのネットワークカード、無線通信モジュールなどを含む。端末装置10では、ウェブブラウザやアプリケーションプログラムなどのUA(User Agent)が起動し、ユーザの入力に応じたリクエストをサービス提供装置20に送信する。また、UAが起動された端末装置10は、サービス提供装置20から取得した情報に基づいて、表示装置に各種画像を表示させる。
【0023】
サービス提供装置20は、例えば、UAとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイトといった各種ウェブサイトを構成するウェブページであってよい。また、サービス提供装置20は、検索サイトやSNS(Social Networking Service)、メールサービスなどの各種サービスを提供するウェブページを端末装置10に提供してもよい。また、サービス提供装置20は、UAとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置10に提供することで、販売サイトなどの各種ウェブサイトと同様のサービスを提供するアプリケーションサーバであってもよい。
【0024】
例えば、サービス提供装置20は、端末装置10からクエリを取得した場合、クエリによる検索結果を端末装置10に提供する。この際、サービス提供装置20は、クエリの検索結果の一覧を表示させるページの所定領域に、クエリとして入力された単語や語句の実体或いは概念がどういったものであるのかを表す文字列や画像を表示させる。以下、所定領域をエンティティパネルと称して説明する。
【0025】
図2は、エンティティパネルの一例を示す図である。例えば、現実世界において、「〇〇物語」というタイトルの漫画が存在しており、「検索太郎」という漫画家がその漫画を制作していたとする。この場合に、ユーザが端末装置10を利用して、検索サイトなどのクエリの入力欄に「〇〇物語」という文字列を入力した場合、サービス提供装置20は、ナレッジベースを参照し、「〇〇物語」という漫画の概要や漫画家名、他の漫画作品をエンティティパネルに表示させたり、「〇〇物語」に関する他の映画作品などをエンティティパネルに表示させたりする。なお、エンティティパネルは、検索サイトなどに限られず、ショッピングサイトや動画配信サイトなどにも表示されてよい。また、エンティティパネルを表示させることは、入力されたクエリに対応した検索結果を出力するものであれば、「検索」や「販売」といったサービスに限定されず、如何なるサービスにも適用されてよい。
【0026】
情報処理装置100は、オントロジーによってエンティティの概念が形式化されたナレッジベースにおいて、クラス未定義エンティティのクラスを決定する。ナレッジベースは、予め情報処理装置100に記憶されていてもよいし、情報処理装置100がウェブサイトを定期的にクロールすることで、ウェブサイトごとに生成してもよい。
【0027】
[情報処理装置の構成]
図3は、第1実施形態における情報処理装置100の構成の一例を示す図である。図示のように、情報処理装置100は、例えば、通信部102と、制御部110と、記憶部130とを備える。
【0028】
通信部102は、例えば、NIC(Network Interface Card)等の通信インターフェースやDMA(Direct Memory Access)コントローラを含む。通信部102は、ネットワークNWを介して、サービス提供装置20や他のウェブサーバと通信する。
【0029】
制御部110は、例えば、抽出部112と、グラフ生成部114と、クラス決定部116とを備える。制御部110の構成要素は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサが記憶部130に格納されたプログラムを実行することにより実現される。また、制御部110の構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェア(回路部;circuitry)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0030】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部130には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、ナレッジベース132と、検索ログ134とが格納される。
【0031】
図4は、ナレッジベース132の一例を示す図である。ナレッジベース132は、例えば、ウェブサイトやアプリケーションを媒体として提供される百科事典を基にして生成されたナレッジベースであり、図示の例では、エンティティE0を最上位のクラスとし、矢印で表されたエッジを介してエンティティE0に接続された矢印先のエンティティE1~E6が下位クラスとして定義されている。
【0032】
エンティティE0には、「○○物語」という文字列がそのエンティティE0の名称を表すプロパティとして付与されており、そのエンティティE0に対して、「漫画家」というプロパティP1(エッジ)を介して、エンティティE1が接続されている。エンティティE1には、「検索太郎」という文字列がそのエンティティE1の名称を表すプロパティとして付与されている。従って、ナレッジベース132は、「○○大冒険」というエンティティE0の属性の一つである「漫画家」が、「検索太郎」であることを表現している。また、エンティティE0に対し、「掲載誌」というプロパティP2を介して「○○週刊誌」という名称のエンティティE2が接続されており、「出版日」というプロパティP3を介して「2013年」という名称のエンティティE3が接続されており、「URL」というプロパティP4を介して「https://****」という名称のエンティティE4が接続されており、「ジャンル」というプロパティP5を介して「漫画」という名称のエンティティE5が接続されており、「ジャンル」というプロパティP6を介して「映画」という名称のエンティティE6が接続されている。従って、図示のナレッジベース132は、「○○物語」について、「掲載誌」が「○○週刊誌」であり、「出版日」が「2013年」であり、「URL」が「https://****」であり、「ジャンル」が「漫画」と「映画」であることを有向グラフによって表している。なお、
図4に例示するナレッジベース132は、あくまでも一例であり、適宜変更されてよい。
【0033】
図5は、検索ログ134の一例を示す図である。図示の例のように、検索ログ134は、クエリとして入力した文字列に対して、そのクエリの検索結果として提示された一以上のURLのうち、ユーザが実際にクリックしたURLや、そのURLのクリック回数などが対応付けられたデータである。
【0034】
[処理フロー]
以下、第1実施形態における制御部110による一連の処理の流れをフローチャートに即して説明する。
図6は、第1実施形態における制御部110による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、所定の周期で繰り返し行われてよい。
【0035】
まず、抽出部112は、ナレッジベース132に登録された複数のエンティティの中に、クラス未定義エンティティが存在するか否かを判定する(S100)。例えば、抽出部112は、ナレッジベース132に登録されてから間もないエンティティが存在する場合、クラス未定義エンティティが存在すると判定する。
【0036】
抽出部112は、クラス未定義エンティティが存在すると判定すると、検索ログ134から、コンテキストタームを抽出する(S102)。例えば、抽出部112は、クラス未定義エンティティに関連したコンテンツが検索される際にクエリとして入力された文字列の中からコンテキストタームを抽出する。
【0037】
図7は、コンテキストタームの抽出方法を説明するための図である。図中E1は、あるURLのエンティティを表しており、E2は、E1とは異なるURLのエンティティを表している。具体的には、エンティティE1は、映画関係のウェブサイトのURLを表し、エンティティE2は、漫画関係のウェブサイトのURLを表している。また、E3は、エンティティE1およびE2に対してエッジを介して接続されたエンティティを表しており、「〇〇物語」という文字列のエンティティを表している。エンティティE3にはプロパティが付与されておらず、そのクラスが未だ決定されていない。すなわち、エンティティE3は、クラス未定義エンティティであることを表している。そのため、エンティティE3は、「〇〇物語」というタイトルの映画を表しているのか、「〇〇物語」というタイトルの漫画を表しているのか、或いはその他の概念を表しているのか確定できない状態にある。
【0038】
図示の例では、エンティティE1のURLは、「〇〇物語_映画」というクエリを入力した一人または複数のユーザによってa回クリックされ、「〇〇物語_漫画」というクエリを入力した一人または複数のユーザによってb回クリックされていることを表している。また、エンティティE2のURLは、「〇〇物語_映画」というクエリを入力した一人または複数のユーザによってc回クリックされ、「〇〇物語_出演」というクエリを入力した一人または複数のユーザによってd回クリックされていることを表している。
【0039】
このような場合、抽出部112は、クラス未定義エンティティE3のコンテキストタームとして、「漫画」というコンテキストタームC1と、「映画」というコンテキストタームC2と、「出演」というコンテキストタームC3とを検索ログ134から抽出する。
【0040】
同様に、抽出部112は、クラス定義済みエンティティに関連したコンテンツが検索される際にクエリとして入力された文字列の中からコンテキストタームを抽出する。
【0041】
図6のフローチャートの説明に戻る。次に、グラフ生成部114は、抽出部112によって抽出された一つ以上のコンテキストタームと、クラス定義済みエンティティと、クラス未定義エンティティとを用いて、二部グラフ(Bipartite graph)を生成する(S104)。
【0042】
二部グラフとは、互いに独立したノード(頂点)を含む第1の部分集合と、同じく互いに独立したノードを含む第2の部分集合とが存在したときに、各部分集合内のノード同士の間にはエッジ(辺)が無く、第1の部分集合のノードと第2の部分集合のノードとの間にはエッジが存在し得るグラフである。本実施形態では、第1の部分集合には、クラス定義済みエンティティおよびクラス未定義エンティティが互いに独立したノードとして含まれ、第2の部分集合には、一つ以上のコンテキストタームが互いに独立したノードとして含まれる。
【0043】
図8は、二部グラフの一例を示す図である。図示の例では、第1の部分集合に、「〇〇物語」という文字列のエンティティE3と、「◇◇体験記」という文字列のエンティティE4と、「△△日記」という文字列のエンティティE5とが互いに独立したノードとして含まれている。また、第2の部分集合に、「漫画」という文字列のコンテキストタームC1と、「映画」という文字列のコンテキストタームC2と、「出演」という文字列のコンテキストタームC3とが互いに独立したノードとして含まれている。
【0044】
上述した例では、ナレッジベース132上で「〇〇物語」のエンティティE3に接続されたエンティティE1およびE2のURLに対応付けられたクエリから、コンテキストタームC1、C2、C3が抽出されている。従って、グラフ生成部114は、第1の部分集合にノードとして含まれるエンティティE3を、第2の部分集合のノードであるコンテキストタームC1、C2、C3のそれぞれにエッジを介して接続する。
【0045】
エンティティE4およびE5は、エンティティE3とコンテキストタームとが共通している。すなわち、グラフ生成部114は、クラス未定義エンティティのコンテキストタームと、クラス定義済みエンティティのコンテキストタームとが共通するように、ナレッジベース132に含まれる複数のクラス定義済みエンティティの中から第1の部分集合に含めるクラス定義済みエンティティを選出する。これによって、第1の部分集合内で、クラス定義済みエンティティとクラス未定義エンティティとがエッジを介して互いに接続されなくとも、第2の部分集合のコンテキストタームを介して間接的にこれらのエンティティ同士を接続することができる。
【0046】
グラフ生成部114は、第1の部分集合のノードと第2の部分集合のノードとをエッジを介して接続する際に、検索ログ134を参照し、各コンテキストタームの抽出元のクエリによって検索されたURLのクリック回数に応じて、各エッジを重みづける。
【0047】
例えば、グラフ生成部114は、クリック回数そのものをエッジの重み係数wとしてもよいし、クリック回数に何らかの係数を乗算したり、バイアス成分を加えたりした値をエッジの重み係数wとしてもよい。以下、一例として、エッジの重み係数wがクリック回数であるものとして説明する。なお、グラフ生成部114は、クリック回数に代えて、或いは加えて、インプレッション回数やコンバージョン回数、コンバージョン率、クリック率といった他の統計的指標値に基づいて各エッジを重み付けてもよい。
【0048】
上述した例では、ナレッジベース132上において、エンティティE3に接続されたエンティティE1およびE2のうち、エンティティE1のURLは、「漫画」というコンテキストタームC1を含むクエリを入力したユーザによってb回クリックされ、エンティティE2のURLは、「漫画」というコンテキストタームC1を含むクエリを入力したユーザによって一度もクリックされていない。
【0049】
そのため、グラフ生成部114は、二部グラフにおいて、第1の部分集合に含まれるエンティティE3と、第2の部分集合に含まれるコンテキストタームC1とを互いに接続するエッジの重み係数wを「b」に決定する。
【0050】
また、上述した例では、ナレッジベース132上において、エンティティE3に接続されたエンティティE1およびE2のうち、エンティティE1のURLは、「映画」というコンテキストタームC2を含むクエリを入力したユーザによってa回クリックされ、エンティティE2のURLは、「映画」というコンテキストタームC2を含むクエリを入力したユーザによってc回クリックされている。
【0051】
そのため、グラフ生成部114は、二部グラフにおいて、第1の部分集合に含まれるエンティティE3と、第2の部分集合に含まれるコンテキストタームC2とを互いに接続するエッジの重み係数wを「a+c」に決定する。
【0052】
また、上述した例では、ナレッジベース132上において、エンティティE3に接続されたエンティティE1およびE2のうち、エンティティE1のURLは、「出演」というコンテキストタームC3を含むクエリを入力したユーザによって一度もクリックされておらず、エンティティE2のURLは、「出演」というコンテキストタームC3を含むクエリを入力したユーザによってd回クリックされている。
【0053】
そのため、グラフ生成部114は、二部グラフにおいて、第1の部分集合に含まれるエンティティE3と、第2の部分集合に含まれるコンテキストタームC3とを互いに接続するエッジの重み係数wを「d」に決定する。
【0054】
グラフ生成部114は、各エッジの重み係数wを決定すると、数式(1)に基づいて、各エッジの重み係数wを正規化する。
【0055】
【0056】
例えば、第1の部分集合に含まれるi番目のノードと、第2の部分集合に含まれるj番目のノードとの間に接続されるエッジの重み係数wijは、その重み係数wijを、i番目のノードに接続される全エッジの重み係数の合計値で除算することで正規化される。
【0057】
例えば、エンティティE3に着目した場合、エンティティE3は、コンテキストタームC1、C2、C3のそれぞれにエッジを介して接続されている。従って、グラフ生成部114は、エンティティE3とコンテキストタームC1との間のエッジの重み係数wを、「b/(a+b+c+d)」とし、エンティティE3とコンテキストタームC2との間のエッジの重み係数wを、「(a+c)/(a+b+c+d)」とし、エンティティE3とコンテキストタームC3との間のエッジの重み係数wを、「d/(a+b+c+d)」とする。
【0058】
このように、各エッジの重み係数wを正規化することで、第1の部分集合のノードと第2の部分集合のノードとの間を状態遷移確率によって表すことができる。
【0059】
図6のフローチャートの説明に戻る。次に、クラス決定部116は、ラベルスプレッディング法と呼ばれる半教師あり学習を利用して、クラス未定義エンティティのクラスを決定する(S106)。これによって本フローチャートの処理が終了する。
【0060】
[ラベルスプレッディング法]
図9は、ラベルスプレッディング法の一連の処理の流れを示すフローチャートである。本フローチャートの処理は、上述したS106の処理に相当する。
【0061】
まず、クラス決定部116は、グラフ生成部114によって生成された二部グラフの各ノードにクラスを割り当て、そのクラスを初期化する(S200)。
【0062】
図10は、二部グラフの初期化の様子を模式的に示す図である。図中Xは、二部グラフの各ノードを表している。また、図示の例では、説明を簡略化するために、第1の部分集合に含まれるノード数を3とし、第2の部分集合に含まれるノード数を1としている。これらの複数のノードXのうち、ノードX
1およびX
3は、クラス定義済みエンティティを表し、ノードX
4は、クラス未定義エンティティを表すものとする。更に、クラス定義済みエンティティであるノードX
1のクラスはαであり、クラス定義済みエンティティであるノードX
3のクラスはβであるものとする。
【0063】
例えば、既存のナレッジベース132のオントロジーにおいて、α、β、γの計3種類のクラスが定められている場合、クラス決定部116は、二部グラフの各ノードに3種類のクラスをラベルとして割り当てる。そして、クラス決定部116は、クラス定義済みエンティティを除いた全ノードXのクラスを初期化する。
【0064】
例えば、α、β、γの各クラスを数値で表した場合、クラス値が1.0であれば、そのノードXはそのクラスに属し、クラス値が0.0であれば、そのノードXはそのクラスに属さないということを意味する。クラス定義済みエンティティであるノードX1については、クラスαであることが既に定められているため、αのクラス値を1.0とし、他のクラス値を0.0とする。同様に、クラス定義済みエンティティであるノードX3については、クラスβであることが既に定められているため、βのクラス値を1.0とし、他のクラス値を0.0とする。クラス未定義エンティティであるノードX4については、未だクラスが定められていないため、全てのクラス値を0.0とする。また、コンテキストタームであるノードX2については、ナレッジベース132に含まれるエンティティではないものの、全てのクラス値が0.0であるクラスをラベルとして付与する。
【0065】
図9のフローチャートの説明に戻る。次に、クラス決定部116は、数式(2)に基づいて、クラス行列Fと重み行列Wとの積を計算し、クラス行列Fを更新する(S202)。式中F
t-1は、更新前のクラス行列を表し、F
tは、更新後のクラス行列を表している。
【0066】
【0067】
数式(3)は、
図10に例示する二部グラフのクラス行列Fを表している。クラス行列Fは、「第1行列」の一例である。
【0068】
【0069】
クラス行列Fは、各ノードXのクラス値を行とした行列である。第1行は、ノードX1のクラス値を[α1 β1 γ1]=[1.0 0.0 0.0]というベクトルで表しており、第2行は、ノードX2のクラス値を[α2 β2 γ2]=[0.0 0.0 0.0]というベクトルで表しており、第3行は、ノードX3のクラス値を[α3 β3 γ3]=[0.0 1.0 0.0]というベクトルで表しており、第4行は、ノードX4のクラス値を[α4 β4 γ4]=[0.0 0.0 0.0]というベクトルで表している。
【0070】
数式(4)は、
図10に例示する二部グラフの重み行列Wを表している。重み行列Wは、「第2行列」の一例である。
【0071】
【0072】
重み行列Wは、各エッジの正規化された重み係数w
ijを要素とした行列である。
図10に例示する二部グラフでは、ノードX
1およびノードX
2間と、ノードX
3およびノードX
2間と、ノードX
4およびノードX
2間とに重み係数w付きエッジが接続されている。そのため、重み行列Wは、要素w
12、w
21、w
23、w
24、w
32、w
42を除いて、その他の全要素が0の行列となる。
【0073】
このように、クラス決定部116は、クラス行列Ft-1と重み行列Wとの積を計算すると、その積である行列を、新たなクラス行列Ftとする。これによって、クラス値が初期化されたノードX2、X4だけでなく、既にクラス値が決定されているノードX1、X3についても、そのクラス値が更新される。
【0074】
次に、クラス決定部116は、更新後のクラス行列Ftと更新前のクラス行列Ft-1とを比較し、更新後のクラス行列Ftが収束したか否かを判定する(S204)。ラベルスプレッディング法では、対象とするグラフが二部グラフであれば、ラベル(本実施形態ではクラス)の伝搬の繰り返すことで、ある一つの値に収束することが知られている。従って、クラス決定部116は、更新後のクラス行列Ftが収束していなければ、S202に処理を戻し、クラス行列Ftが収束するまで、クラス行列Ftを更新することを繰り返す。
【0075】
一方、クラス決定部116は、更新後のクラス行列Ftが収束した場合、そのクラス行列Ftの要素であるクラス値に基づいて、クラス定義済みエンティティのクラスを再決定するとともに、未定義エンティティのクラスを決定する(S206)。
【0076】
図11は、クラス行列Fが収束したときの二部グラフを模式的に示す図である。図示の例では、クラス定義済みエンティティを表すノードX
1のクラス値は、αが0.8であり、βが0.2であり、γが0.0である。また、クラス定義済みエンティティを表すノードX
3のクラス値は、αが0.3であり、βが0.7であり、γが0.0である。
【0077】
ラベルスプレッディング法の適用前では、ノードX1としたクラス定義済みエンティティは、αが唯一のクラスであり、ノードX3としたクラス定義済みエンティティは、βが唯一のクラスであった。
【0078】
一方、ラベルスプレッディング法の適用後では、ノードX1としたクラス定義済みエンティティのクラスは、αであることの尤度が最も大きく、βであることの尤度が次点で大きい。また、ノードX3としたクラス定義済みエンティティのクラスは、βであることの尤度が最も大きく、αであることの尤度が次点で大きい。従って、クラス決定部116は、ノードX1としたクラス定義済みエンティティのクラスがαおよびβであり、ノードX3としたクラス定義済みエンティティのクラスがαおよびβであると再決定する。
【0079】
また、ラベルスプレッディング法の適用前では、ノードX4としたクラス未定義エンティティは、いずれかのクラスであるのか決まっていなかった。
【0080】
一方、ラベルスプレッディング法の適用後では、ノードX4としたクラス未定義エンティティのクラスは、αであることの尤度が最も大きく、βおよびγであることの尤度が次点で大きい。従って、クラス決定部116は、ノードX4としたクラス定義済みエンティティのクラスがα、β、およびγであると決定する。
【0081】
また、クラス決定部116は、ラベルスプレッディング法を適用して収束したクラス値に基づいてクラスを決定する際に、そのクラス値に閾値を設定し、クラス値が閾値以上となったクラスのみを各エンティティのクラスとしてもよい。
【0082】
なお、第2の部分集合のノードX2であるコンテキストタームにもクラスをラベルとして割り振っているため、コンテキストタームのクラスも付随的に決定される。図示の例では、ノードX2としたコンテキストタームのクラスは、β、α、γの順に尤度が大きい。従って、クラス決定部116は、ノードX2としたコンテキストタームのクラスがα、β、およびγであると決定する。
【0083】
以上説明した第1実施形態によれば、情報処理装置100は、クラス定義済みエンティティに関連したコンテンツの検索ログから一つ以上のコンテキストタームを抽出するとともに、クラス未定義エンティティに関連したコンテンツの検索ログから一つ以上のコンテキストタームを抽出する。情報処理装置100は、クラス未定義エンティティと共通するコンテキストタームを抽出したクラス定義済みエンティティと、クラス未定義エンティティとを第1の部分集合とし、それらエンティティで共通するコンテキストタームを第2の部分集合とした二部グラフを生成する。そして、情報処理装置100は、二部グラフにラベルスプレッディング法を適用することで、少なくともクラス未定義エンティティのクラスを決定する。
【0084】
これによって、例えば、現実世界で新しい言葉が流行したり、新作のコンテンツが公開されたりした場合であっても、既にクラスが決定されているナレッジベース132上のエンティティと、そのエンティティに関連付けられたコンテンツにアクセスするためにユーザが入力したクエリとに基づいて、流行語のエンティティや新作コンテンツのエンティティのクラスを速やかに決定することができる。この結果、ナレッジベースの情報量が充実するため、ナレッジベースをより有効活用することができる。
【0085】
<第1実施形態の変形例>
以下、第1実施形態の変形例について説明する。上述した第1実施形態では、二部グラフにラベルスプレッディング法を適用して、クラス未定義エンティティのクラスを決定し、更には、クラス定義済みエンティティのクラスも再決定するものとして説明したがこれに限られない。例えば、クラス決定部116は、二部グラフにラベルスプレッディング法を適用する代わりに、ラベルプロパゲーティング法を適用してクラス未定義エンティティのクラスを決定してもよい。ラベルプロパゲーティング法とは、ラベルスプレッディング法とは異なり、クラス行列Fにおいて、クラス定義済みエンティティのクラス値は初期値から変更しない手法である。このような手法を利用することでも、クラス未定義エンティティのクラスを決定することができる。
【0086】
<第2実施形態>
以下、第2実施形態について説明する。第2実施形態では、クラス未定義エンティティのクラスを新たに決定する際に、二部グラフの第2の部分集合に含めるコンテキストタームのクラスを初期化しない点で上述した第1実施形態と相違する。以下、第1実施形態との相違点を中心に説明し、第1実施形態と共通する点については説明を省略する。なお、第2実施形態の説明において、第1実施形態と同じ部分については同一符号を付して説明する。
【0087】
図12は、二部グラフの初期化の様子を模式的に示す図である。図に例示する二部グラフでは、クラス未定義エンティティを表すノードX
4のクラスがα、β、およびγに決定された後に、新たなクラス未定義エンティティを表すノードX
5が第1の部分集合に追加されている。図示の例では、ノードX
5のコンテキストタームは、ノードX
1、X
3、X
4のコンテキストタームと同じであり、ノードX
2に対して、ノードX
1、X
3、X
4、X
5が重み付きエッジを介して接続されている。
【0088】
このような場合、クラス決定部116は、ノードX5にクラスを割り当て、そのクラス値を例えば0.0といった数値で初期化する。この際、クラス決定部116は、第1の部分集合に含まれるノードX1、X3、X4だけでなく、第2の部分集合に含まれるノードX2についても初期化せず、前回の処理結果であるクラス値を保持する。例えば、前回の処理でコンテキストタームを表すノードX2のクラス値が(α,β,γ)=(0.2,0.7,0.1)に決定されていた場合、クラス決定部116は、新たなクラス未定義エンティティを表すノードX5のクラス値を決定する際に、ノードX2のクラス値として(0.2,0.7,0.1)を利用する。このように、コンテキストタームのクラス値を次回以降も引き続き利用することで、クラス行列Fが収束までの処理回数を少なくすることができる。
【0089】
以上説明した第2実施形態によれば、情報処理装置100は、クラス未定義エンティティのクラスを新たに決定する際に、二部グラフの第2の部分集合に含めるコンテキストタームのクラスを初期化せず、前回のクラスを引き続き利用することで、クラス行列Fが収束までの処理回数を少なくすることができる。
【0090】
<ハードウェア構成>
上述した実施形態の情報処理装置100は、例えば、
図13に示すようなハードウェア構成により実現される。
図13は、実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
【0091】
情報処理装置100は、NIC100-1、CPU100-2、RAM100-3、ROM100-4、フラッシュメモリやHDDなどの二次記憶装置100-5、およびドライブ装置100-6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100-6には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置100-5、またはドライブ装置100-6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)などによってRAM100-3に展開され、CPU100-2によって実行されることで、制御部110が実現される。制御部110が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
【0092】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0093】
1…情報処理システム、10…端末装置、20…サービス提供装置、100…情報処理装置、102…通信部、110…制御部、112…抽出部、114…グラフ生成部、116…クラス決定部、130…記憶部