JP5014399B2 - 検索データ管理装置 - Google Patents

検索データ管理装置 Download PDF

Info

Publication number
JP5014399B2
JP5014399B2 JP2009240992A JP2009240992A JP5014399B2 JP 5014399 B2 JP5014399 B2 JP 5014399B2 JP 2009240992 A JP2009240992 A JP 2009240992A JP 2009240992 A JP2009240992 A JP 2009240992A JP 5014399 B2 JP5014399 B2 JP 5014399B2
Authority
JP
Japan
Prior art keywords
data
link
search
database
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009240992A
Other languages
English (en)
Other versions
JP2011090352A (ja
Inventor
雅二郎 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2009240992A priority Critical patent/JP5014399B2/ja
Publication of JP2011090352A publication Critical patent/JP2011090352A/ja
Application granted granted Critical
Publication of JP5014399B2 publication Critical patent/JP5014399B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、類似するデータをデータベースから検索すると共に、そのデータベースに新たなデータを登録するための装置に関するものである。
画像や音声等から抽出される特徴量は、多次元のベクトルデータで表され、各ベクトルデータ間の距離等を用いて類似データの検索が行われる。多次元ベクトルデータの検索において、検索対象のデータ数が多い場合、検索キーとなるデータ(検索データ)と検索対象のデータとの距離を逐一計算しなければならないため、検索に要する時間が非常に長くなってしまう。
特許文献1には、次のような技術が記載されている。即ち、データベース内の全ての特徴量について、他の特徴量との間の類似度を予め計算し、類似度の高いデータをそれぞれ関連付けて格納しておく。そして、与えられた検索キーの最近傍を求めてその最近傍のデータに対応する類似データを検索結果として返す。
特開2001−52024号公報
ところで、検索対象のデータ群(データベース)に新たなデータを登録しようとするときは、データ間の類似度を考慮したインデックスを予め付与しておくことで、検索の高速性を担保できる。このため、その登録データに対する類似データをデータベース中から検索する必要がある。
しかし、特許文献1の技術では、検索の高速化のために、各データに対して全データを類似度順に記憶しておく必要があるが、データベースの全データとの類似度を事前計算する必要があり、検索対象のデータが膨大になると、データ数に応じて検索にかかる時間が長くなってしまった。また、データ登録を行う都度、データ間の類似度を算出して、インデックスの見直しを行う必要があるため、データ数が増えるほど、そのインデックスの構築は煩雑になってしまう。
本発明は、上述の課題に鑑みて為されたものであり、その目的とするところは、類似データの検索対象であるデータ群に、検索インデックスを煩雑にすることなく高速にデータを登録することである。
上記目的を達成するため、第1の発明の検索データ管理装置は、
一方のデータから他方のデータに辿るためのリンクがデータ間に設定されて該データが複数記憶されたデータベースと、
入力された検索対象のデータに対して、前記データベースに記憶されたデータのうちの何れかを検索開始点として選択し、該検索開始点から前記リンクを順次辿ることによって、該リンクを辿る経路上にあるデータのうち、検索対象のデータと既定の距離内にあるデータを類似データとして検索し出力するグラフ検索手段と、
前記データベースへの登録対象となるデータを前記検索対象として前記グラフ検索手段に入力することにより、該登録対象のデータに対する類似データを取得し、該登録対象のデータと類似データとの間にリンクを生成する類似データ取得手段と、
複数の登録対象データに対して前記類似データ取得手段がそれぞれ生成したリンクをマージするマージ手段と、
前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとに削減処理を行うリンク最適化手段と、
前記削減処理の結果に基づいて前記データベースのリンク情報を更新すると共に、前記登録対象のデータを前記データベースに記憶するデータ更新手段と、
を備えることを特徴としている。
また、第2の発明において、前記リンク最適化手段は、
前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとの総数に基づいて、前記削減処理を行うことを特徴としている。
また、第3の発明において、前記リンク最適化手段は、
前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとの長さに基づいて、前記削減処理を行うことを特徴としている。
また、第4の発明において、前記リンク生成手段は、
前記複数の登録対象のデータのそれぞれの間にリンクを更に生成することを特徴としている。
また、第5の発明は、一方のデータから他方のデータに辿るためのリンクがデータ間に設定されて該データが複数記憶されたデータベースをコンピュータが検索対象のデータ群としてデータ管理する検索データ管理方法において、
入力された検索対象のデータに対して、前記データベースに記憶されたデータのうちの何れかを検索開始点として選択し、該検索開始点から前記リンクを順次辿ることによって、該リンクを辿る経路上にあるデータのうち、検索対象のデータと既定の距離内にあるデータを類似データとして検索し出力するグラフ検索工程と、
前記データベースへの登録対象となるデータを前記検索対象として前記グラフ検索手段に入力することにより、該登録対象のデータに対する類似データを取得し、該登録対象のデータと類似データとの間にリンクを生成する類似データ取得工程と、
複数の登録対象データに対して前記類似データ取得工程がそれぞれ生成したリンクをマージするマージ工程と、
前記マージ工程においてマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとに削減処理を行うリンク最適化工程と、
前記削減処理の結果に基づいて前記データベースのリンク情報を更新すると共に、前記登録対象のデータを前記データベースに記憶するデータ更新工程と、
を含むことを特徴としている。
また、第6の発明のプログラムは、上記第5の発明に記載の検索データ管理方法の処理をコンピュータに実行させることを特徴としている。
本発明によれば、データベースに複数のデータを登録する際には、類似データとの間に生成したリンクを用いてリンクの削減をしながら登録するため、類似データの検索対象であるデータ群に、検索インデックスを煩雑にすることなく高速にデータを登録することができる。また、データ登録によってデータ間のリンク構造が煩雑になる逐次防止できるため、データ登録による検索速度の低下を防止することが可能になる。
〔第1実施形態の装置構成〕
本発明を適用した第1実施形態に係る検索装置を、添付の図面に基づいて説明する。尚、本発明の内容は、本実施形態に限定されるものではなく、特許請求の範囲に記載された範囲内において、具体的な構成に対して種々の変更を加えうるものである。
また、本実施形態では、ベクトルデータとして、画像の特徴量を表す多次元ベクトルデータを扱う例を説明する。但し、ベクトルデータとしては、音声やその他のマルチメディアデータ情報の特徴量を表すものであってもよいし、他の種類の多次元データであってもよい。
図1は、本発明の一例である検索装置1の機能構成を示すブロック図である。検索装置1は、一つのハードウエアあるいはソフトウエアにより構成される必要はない。必要に応じて、複数のハードウエアあるいはソフトウエアの組み合わせにより検索装置1に相当する機能を提供することができる。ネットワーク上に点在する複数のサーバにより、本実施形態の検索装置1を構成することもできる。
検索装置1は、クライアント端末から送信される各種要求に応じてデータ処理を行って、その処理結果をクライアント端末に返送する。具体的に、検索装置1は、検索要求である検索クエリを受信すると、検索クエリに応じた検索を行って検索結果をクライアント端末に返送する。また、検索対象のデータを格納したデータベース(以下「DB」と略す)に新たなデータを登録する要求を受信した場合にはDBに登録する。
[クライアント端末の構成]
クライアント端末の図示は省略するが、キーボードやマウスやタッチパッドといった入力手段と、ディスプレイやプリンタといった出力手段と、CPU等を備えたパーソナルコンピュータにより構成される。クライアント端末は、ネットワークを介して検索装置1と接続されている。また、クライアント端末は、ユーザに指定された検索データや登録データを検索装置1に送る。
ここで、検索データとは、検索装置1のデータベースに記憶されたデータの中から類似するデータを検索するためのキーとなるデータである。また、登録データとは、検索装置1のデータベースに新たに登録するデータである。尚、検索データ及び登録データから抽出したベクトルデータも以下「検索データ」、「登録データ」という。
[検索装置の構成]
図1によれば、検索装置1は、登録データ入力部10と、検索データ入力部20と、検索結果出力部30と、グラフ検索部40と、データ登録部50と、画像DB60と、グラフインデックスDB70と、一時メモリ80とを備えて構成される。
登録データ入力部10は、クライアント端末から送信される登録データを受け付ける機能部であり、データの登録要求と共に登録データを受信すると、該登録データをデータ登録部50に入力する。
検索データ入力部20は、クライアント端末から送信される検索データを受け付けるための機能部であり、検索要求と共に検索データを受信すると、その検索データをグラフ検索部40に入力する。
検索結果出力部30は、検索データ入力部20の入力に応じてグラフ検索部40による検索結果をクライアント端末に送信するための機能部である。検索結果出力部30は、検索結果を表示するための表示データを生成してクライアント端末に送信する。
画像DB60は、検索対象となる画像データを蓄積記憶するデータベースであり、図1に示すように画像IDと、画像データと、ベクトルデータとを対応付けて記憶する。グラフ検索部40は、この画像DB60に記憶された画像データから複数の特徴量である多次元のベクトルデータを抽出して記憶する。ベクトルデータの次元数は特に制約されないが、検索精度を高めるためには、高い次元数(例えば10次元以上)とすることが好ましい。
グラフインデックスDB70は、グラフ構造のインデックスを記憶するデータベースであり、検索対象となるデータの特徴量を表すベクトルデータを格納している。データ登録部50は、画像データから抽出したベクトルデータに基づいてグラフ構造のインデックスを生成する。
また、グラフインデックスDB70は、一方のベクトルデータから他方のベクトルデータに辿るために設定されたリンクの情報が格納されている。具体的には、図1に示すように、グラフインデックスDB70は、画像DB60に対応したリンク元である画像IDと、このベクトルデータにリンクされた一つ以上の他方のリンク先の画像IDとを対応付けて記憶する。ベクトルデータ間にリンクを張ることにより、図4(a)に示すようにベクトル空間上のベクトルデータa〜fの間にグラフ構造が形成される。
このグラフインデックスDB70のリンク情報により形成されるグラフ構造、即ち、該リンク情報を適宜「グラフインデックス」という。リンクとは、一つのデータから他のデータを辿ることができる情報である。リンクは一方向であってもよいが、図1に示すように、一方のリンク先を示すデータとその逆方向のリンク先を示すデータとを対に記憶して双方向に辿れる構成とすることで、データの検索速度を向上できる。
図4(a)においては、ベクトルデータを点(a〜f)により表しており、多次元の特徴量空間にベクトルデータが分布している様子を示している。また、各ベクトルデータの間にリンクが設定され、実線により該リンクが表されている。以下の説明において、ベクトルデータを適宜「点」と称して説明する。
グラフ検索部40は、グラフインデックスDB70に設定されているリンクを巡回することにより検索データに類似するデータを検索する。グラフ検索部40は、図1に示すようにベクトルデータ生成部41と、検索開始点決定部43と、グラフ巡回部45と、類似データ特定部47とを備えて構成される。
ベクトルデータ生成部41は、検索データ入力部20又はデータ登録部50から入力されたデータから多次元のベクトルデータとなる特徴量を抽出する。
検索開始点決定部43は、検索データから抽出したベクトルデータに近接するグラフインデックス上の既存のベクトルデータを、検索開始点として決定する。グラフ検索部40は、複数のベクトルデータのうちのいずれかを検索開始点として決定し、この検索開始点を起点としてリンクの巡回を始める。
グラフ巡回部45は、既定の検索終了条件を満たすまで、検索開始点からグラフインデックスDB70に設定されているリンクを順次辿る処理を行う。
類似データ特定部47は、グラフ巡回部45が辿ったリンクの経路上にあるベクトルデータのうち、検索データに対して既定の距離内にあるベクトルデータを類似データとして特定する。この特定した類似データ、或いはそれに関連する情報が検索結果としてクライアント端末に送られる。
データ登録部50は、登録データ入力部10から入力された登録データを画像DB60及びグラフインデックスDB70に登録する処理を行う。データ登録部50は、登録データとして入力された画像データに新たな画像IDを割り当てて、画像DB60に記憶する。また、画像データから抽出したベクトルデータに画像IDを対応付けて画像DB60に記憶する。
図1によれば、データ登録部50は、類似データ取得部51と、マージ部53と、リンク最適化部55と、DB更新部57とを備えて構成される。
類似データ取得部51は、登録データ入力部10から入力された登録データについての類似データを検索する要求をグラフ検索部40に出力することで、登録データに類似するデータを取得する。この類似データは、適宜、登録データと対応付けてメモリ上に一時的に保持される。
また、類似データ取得部51は、登録データに対して検索された類似データとの間にリンクを生成する。このリンクは、グラフインデックスDB70にデータを本登録する前に一時的に生成され、一時メモリ80にグラフインデックスDB70と同一のデータ構造を有するデータテーブルを生成して記憶される。
マージ部53は、複数の登録データの入力により、各登録データに対してそれぞれに検索された類似データとの間に生成されたリンク情報を一時メモリ80上でマージする。また、マージ部53は、一時メモリ80においてリンク先として記憶された類似データについて、グラフインデックスDB70上において既にリンクが設定されているものは、その類似データに対するリンク先の情報を該グラフインデックスDB70から読み出して一時メモリ80に記憶する。また、複数の登録データとの間にもリンクを生成して一時メモリ80に記憶する。これにより、一時メモリ80には、登録データと類似データとの間に生成したリンクと、類似データに対して既に設定されたリンクとが記憶される。
リンク最適化部55は、グラフインデックスのグラフ構造が煩雑にならないようリンクの最適化を行う機能部である。類似データに対してリンク先を追加することにより、類似データからのリンク数が増加していき、これにより、グラフ検索部40が巡回するリンクが増加してしまい、検索速度の低下を招く可能性がある。そのため、類似データからのリンク先を追加する際には、そのリンク数を適正に保つよう、リンク数の見直しを行う。
DB更新部57は、リンク最適化部55の処理結果に基づいて、登録データの画像DB60及びグラフインデックスDB70へのデータ記憶と、グラフインデックスDB70のリンク情報の更新を行う。具体的には、登録データについての画像IDとベクトルデータとをグラフインデックスDB70に登録する際に、類似データの画像IDをリンク先として対応付けて記憶する。また、類似データの画像IDに対したリンク先に、登録データの画像IDを追加することで、登録データと類似データとの間に相互のリンクが形成される。
検索装置1は、グラフ構造を有する検索インデックスであるグラフインデックスDB70を生成し、グラフ構造上のリンクを辿ることにより検索データに類似するデータを検索する。また、登録データが入力された場合には、検索時に巡回する検索インデックスに登録データを新たに追加して、該登録データも巡回経路とすることによりその登録データの検索も可能になるように、自己生成的にグラフインデックスを形成していく。
〔検索装置の動作〕
次に、本実施形態における検索装置1がデータの登録時に行うグラフ自己生成処理の動作を、図2〜8を参照して詳細に説明する。このグラフ自己生成処理は、予め検索装置1のメモリ上に記憶されたプログラムに基づくことにより実行される。図2、3及び6は、検索装置1の動作の一例を示すフローチャートであり、図4、5、7及び8は、グラフインデックス上でのデータ検索並びにリンク最適化の処理の様子を示す図である。
〔グラフ自己生成処理〕
まず、検索装置1は、初期設定処理を行う(ステップS1)。ここでの初期設定は、データ登録を行った場合に新たに登録したデータに設定するリンク数や、リンク削減を行う際の閾値(リンク削減閾値)を予め設定する。
次に、登録データ入力部10から登録データがデータ登録部50に入力されると(ステップS2)、ベクトルデータ生成部41は、登録データから特徴量を抽出することで、ベクトルデータを生成する(ステップS3)。このとき、複数の登録データが入力された場合には、その複数のデータのうち、所定数(例えば3つ)の登録データについてベクトルデータを生成する。
そして、類似データ取得部51が登録データをグラフ検索部40に出力してグラフ検索処理を行わせる(ステップS4)。このとき、複数の登録データが入力された場合には、グラフ検索処理を複数のCPUを用いて並列処理により行うこととしてもよい。尚、図2においては、登録データが3つ入力された場合に、3プロセスによりグラフ検索処理A〜Cを並列処理する例を示しているが、並列処理のプロセス数は適宜設計変更可能である。
〔グラフ検索処理〕
〔検索開始点決定処理〕
グラフ検索部40がグラフ検索処理を開始すると、先ず、検索開始点決定部43が、登録データに近接するベクトルデータを、検索開始点として決定する(ステップS41)。図3は、検索開始点を決定するための処理の一例を示すフローチャートである。
検索開始点決定部43は、先ず、グラフインデックスの中から任意の点(例えば、図4(b)の点a)を選択し(ステップS430)、その選択した点(選択点)にリンクされた点(例えば、図4(c)の点c及びd)をグラフインデックスDB70に基づいて取得する(ステップS432)。
次に、そのリンクされた点に対する登録データとの特徴量空間における距離を算出する(ステップS434)。検索開始点決定部43は、算出した距離の中で登録データと距離が最短の点を抽出し(ステップS436)、その点と登録データとの距離D2が、登録データと選択点との距離D1よりも小さいかを判定する(ステップS438、440)。図4(d)において、選択点aと登録データgとの間の距離D1と、選択点aとリンク先cとの間の距離D2とを比較すると、距離D2のほうが小さいと判定される。
検索開始点決定部43は、距離D2が距離D1より小さいと判定した場合には(ステップS440;Yes)、ステップS436において抽出した点を選択して(ステップS442)、ステップS432に処理を移行する。
即ち、ステップS432〜S442のループ処理を行うことにより、最初に任意に選択した点からグラフインデックス上で登録データに近い点を選んでいくようにリンクを辿っていくこととなる。
検索開始点決定部43は、ステップS440において、距離D2が距離D1よりも大きいと判定した場合には(ステップS440;No)、選択している点を検索開始点として決定する(ステップS444)。
図4(e)においては、最初に選択された点aから登録データgに近い点が順次選択され、点c→点b→点dとリンクが巡回されて、登録データに最も近い点dが検索開始点として決定される。
尚、上述した検索開始点決定処理において、距離D2が距離D1よりも大きいとして検索開始点を決定した場合にも、その検索開始点が登録データを中心とした検索範囲よりも外にある場合がある。この場合、検索開始点が検索範囲外にあるので検索を開始することができない。そのため、ステップS444で決定した検索開始点が検索範囲外である場合には、新たにグラフインデックス内から任意点を選択して、検索開始点決定処理を所定回数行うことで検索範囲内の検索開始点を決定する。
また、ステップS430で任意選択する点をランダムに選択すると、検索開始点決定処理を繰り返し行った場合に、近接した点を再度選択してしまう可能性がある。その場合、その近接した点からリンクを辿ったとしても同経路のリンクを辿る可能性が高くなり、検索範囲内の検索開始点を決定することができない。
そのため、検索開始点決定処理を繰り返し行う場合には、過去に選択した点から所定距離離れた点を新たに選択することが好ましい。予めベクトル空間上で分散した点を複数特定しておきその中から任意点を選択することとしてもよい。これにより、検索範囲内の検索開始点を効率よく決定することができる。
[グラフの巡回]
上述のようにして検索開始点を決定すると、グラフ巡回部45が、検索開始点を起点としてリンクを順次辿っていく(ステップS43)。このとき、一つのベクトルデータからリンクが分岐している(つまり複数の進路がある)場合もあり、その場合には、辿った経路上にあったベクトルデータ、或いはそれを特定するための情報を、適宜の方法で検索装置1のメモリに記憶しておく。
[類似データの検索]
グラフ巡回部45は、経路上のリンクを辿りながら、規定の検索終了条件を満たすかどうかを判断する(ステップS45)。検索終了条件としては、種々のものが考えられる。例えば、以下の何れかの検索終了条件がありうる。
(検索終了条件1)
検索開始点を始点としてリンクを辿った結果が、登録データを中心とした所定の検索範囲(例えば、図5(a)の検索範囲)をα倍(α>1)した範囲(すなわち検索限界範囲)を越えること。ここで、αは、例えば1.5など、適宜の値を採用することができる。αを大きくする程、検索もれを少なくできる。一方、αを小さくする程、検索時間を短縮できる。
リンクを辿って検索したデータの数が増えた場合に、αの値を減少させることで、検索を早期に終了させることができる。これにより、データの数が過大である場合でも、検索結果を早期に取得することができる。なお、αの値は、1以下にならないように設定することが、検索精度を高めるためには好ましい。但し、早期に検索を終了させたい場合は、α<1とすることも可能である。
(検索終了条件2)
検索開始点を始点とするリンクを辿った結果が、登録データを中心とした検索範囲の外側において、リンクを、既定の回数だけ何れも辿ったこと。
ここで、既定の回数とは、例えば5回であるが、適宜の値を採用することができる。例えば、図5(a)において、点bから点aを辿ると、検索範囲を超えてしまうが、検索範囲を超えてから更に1回リンクを辿ると点cに辿り着く。このように、検索範囲の外側での巡回数を設定することで、検索漏れを少なくできる。
一つの経路について検索終了条件を満たしたとき、他の経路におけるリンクを辿る。いずれの経路についても検索終了条件を満たしたとき、次のステップに移る。
類似データ特定部47は、検索終了条件を満たすまでグラフの巡回を行い(ステップS45→S43)、検索終了条件を満たした場合は(ステップS45;Yes)、巡回した点(ベクトルデータ)と、登録データとの距離を算出し、その距離に基づいてランキングした類似データを出力する(ステップS47)。
例えば、図5(a)において検索開始点を点dとした場合は、リンク先である点b、e、fのリンクを辿り、図5(b)のように次に点eにリンクされている点cに辿る。そして、図5(c)のように点cから点aに辿ると検索範囲を超える。この検索範囲を超えたことが検索終了条件である場合に、リンクの巡回を終了する。
そして、検索開始点の点dから辿った、点b〜fそれぞれと登録データgとの距離に基づいて類似データのランキングを得る。図5(c)においては、点d、b、c、e、fといった順でランキングが得られる。
〔リンク生成処理〕
グラフ検索部40による類似データの検索が終了すると、データ登録部50の類似データ取得部51が登録データと類似データとの間へのリンクの生成(図6(a)のフローチャート)を行う(ステップS5)。
類似データ取得部51は、先ず、登録データ毎に得られた検索結果である類似データを取得し(ステップS51)、その類似データと登録データとの間にリンクを生成する(ステップS52)。登録データが複数である場合には、各登録データの入力に対応した類似データとの間にリンクを生成する。
類似データ取得部51は、それぞれの登録データの間にもリンクを更に生成する(ステップS53)。そして、検索結果の類似データについてのリンク情報をインデックスDB70から読み出す(ステップS54)。類似データ取得部51は、ステップS52〜S54により生成・読み出したリンクを一時メモリ80に記憶して、それらをマージ(合併)する(ステップS55)。
例えば、図7(a)のようにグラフ構造を有するデータ群に登録データX〜Zを登録する場合、登録データ毎にグラフ検索処理を行う。登録データXについては、図7(b)のように、点a〜cが検索結果として得られ、画像IDとリンク先とを対応付けたリンクが生成される。登録データYについては、図7(c)のように点a、b、dが得られる。また、登録データZについては、図7(d)のように点b、d、fが検索結果として得られる。
これらの検索結果の類似データについてのリンク情報がグラフインデックスDB70から読み出される。図7(a)〜(e)において、破線は登録データに対して新たに生成されたリンクを示し、実線はグラフインデックスDB70上で既に設定記憶されているリンクを示している。例えば、登録データXの検索結果として得られた点aについては、点b、c及びdがリンク先となるリンク情報が読み出される。また、登録データX〜Zのそれぞれの間にリンクが生成される。
図7(e)には一時メモリ80のデータ例を示している。図のように、一時メモリ80には、登録データと類似データとの間のリンク、登録データ間のリンク、類似データに既に設定されているリンクが記憶されマージされる。
[リンク最適化処理]
次に、リンク最適化部55が、図6(b)に示すリンク最適化処理を行う(ステップS6)。本実施形態においてリンク最適化処理は、リンクが生成された類似データ(検索結果)をリンク削減対象として行われる。即ち、リンク削減対象のデータを取得し(ステップS61)、そのデータについて一時メモリ80上でのリンク数と、そのリンクの長さをグラフインデックスDB70と画像DB60のベクトルデータとに基づいて取得する(ステップS62)。そして、そのリンク数がリンク削減閾値以上であった場合には、リンクの長さに基づいてリンクの削減を行う(ステップS63)。
このとき、リンクが生成された類似データにリンクされたデータのうち、距離の遠い順に削減する。例えば、リンク削減閾値が‘5’である場合、図8(a)においては、リンクが生成された点a〜d、fのうち、点cとdに設定されたリンク数が6以上となり、リンク削減閾値以上となる。従って、点cについては、リンクの中で最も距離の遠い点bとの間に設定されたリンクが削減される。また、点dについては、点aと点cとのそれぞれ間に設定されたリンクが削減される。
〔データベース登録〕
DB更新部57は、リンク最適化部55によるリンク削減処理の結果に基づいて、グラフインデックスDB70のリンク情報を更新すると共に、登録データについてのリンク先もグラフインデックスDB70に追加記憶する。また、登録データ入力部10より入力された登録データとそのベクトルデータとを画像DB60に記憶する(ステップS7)。そして、登録データ入力部10から入力されたデータに未処理のデータがある場合には(ステップS8;Yes)、ステップS3に処理を移行して、グラフ検索処理、リンクの生成、リンクの最適化を行う。また、新たなデータがない場合には(ステップS8;No)、グラフ自己生成処理を終了する。
また、詳細な説明は省略するが、検索データに対して類似するデータを検索して検索結果をクライアント端末に返す検索処理のみの場合は、検索データ入力部20から入力される検索データに対して、上述したグラフ検索部40によるグラフ検索処理を行う。そして、類似データ特定部47により得られた類似データを距離に基づいてランキングした検索結果を表示データとして検索結果出力部30が生成して、クライアント端末に返送する。
以上、第1実施形態によれば、グラフインデックスのデータ間のリンクを巡回して類似データを検索するという検索アルゴリズムを用いて、登録データに対する類似データを検索し、その類似データと登録データとの間に新たにリンクを生成することで、検索装置1がリンクを辿って検索しているグラフインデックスにデータ登録して、登録後に巡回するデータとしてリンクを形成していく。このように、検索装置1は、検索の際に巡回していくグラフインデックス上にデータの登録を行って、グラフインデックスを自己生成する。
また、複数の登録データが入力された場合には、各登録データについての類似データを高速に検索すると共に、各登録データの追加登録により生成されるリンク数の最適化を行ってからデータベース登録を行うことで、検索装置1は、データの登録の際に、グラフインデックスのリンク構造の最適化を行って、自己修復していく。
従って、グラフインデックスを用いた検索アルゴリズムにより、データベースの全てのデータとの距離を算出することなく、類似データを検索できるため、多次元のベクトルデータを記憶したデータベースに高速にデータ登録していくことができる。また、グラフインデックスのリンク数を最適に保っていくため、データの増加によってリンク構造が煩雑になって検索速度が低下してしまうことを防止できる。
〔第2実施形態〕
次に、検索装置1の第2実施形態について説明する。尚、上述した第1実施形態と同一の機能構成、同一の処理ステップには、説明を省略する。第2実施形態における検索装置1は、図2におけるリンク最適化処理を図9に示すフローチャートによるリンク最適化処理に置き換えることにより実現される。以下、図10のリンク最適化処理の様子を示す図を参照しつつ、リンク最適化処理について説明する。尚、図9のリンク構造の図示において、説明の簡略化のため、図10(b)以降のデータ間のリンクの図示を破線により適宜省略している。
上述したように、グラフインデックスを用いた検索アルゴリズムでは、ベクトルデータ間のリンクを巡回していくことにより、類似データを探索するが、リンク切れが生じてしまうと、ベクトルデータの孤立により巡回できなくなってしまう。第2実施形態の検索装置1は、そのリンク削減を行う際に、そのリンクの修復を行うものである。
先ず、リンク最適化部55は、削減対象のリンクが設定された点について、その点にリンクされた全て点の中から該リンクを保持する点(リンク保持点)を特定する(ステップS61)。このリンク保持点の特定は、例えば、削減対象の点との距離が近いものから所定数の点としてもよいし、所定距離内にある点としてもよい。また、削減対象の点をリンク保持点に含めても良い。
図10(a)においては、削減対象の点aに対して、距離の近い5つの点b、c、d、e、fをリンク保持点として特定している。そして、削減対象点にリンクされた点のうち、リンク保持点以外の点をリンクの修復対象として、その修復対象点の中から一つずつ選択していく(ステップS62)。図10(a)では、点gを修復対象点として選択している。
次に、リンク最適化部55は、修復対象点と各リンク保持点との距離を算出し(ステップS63)、その算出した距離の中から最短距離を有するリンク保持点と、修復対象点との間に新たなリンクを設定する(ステップS64)。
例えば、図10(b)のように、修復対象点gと、リンク保持点b〜fのそれぞれとの距離を算出し、図10(c)のように、最短の距離となったリンク保持点eと修復対象点gとの間に新たなリンクを設定する。尚、修復対象点と、リンク保持点との間に既にリンクが設定されている場合には、リンクの設定を行わなくとも良い。
リンク最適化部55は、リンクの設定を行った修復対象点と、削減対象点との間に設定されているリンクを解除する(ステップS65)。図10(d)において、点aと点gとの間のリンクが解除される。
次に、リンク保持点以外の削減対象点にリンクされた点、即ち、修復対象点の中でステップS62〜S65の修復処理を全ての点に対して行った場合には(ステップS66;No)、リンク最適化処理を終了し、修復しいない点がある場合には(ステップS66;Yes)、ステップS62に処理を移行する。
図10(a)においてリンク保持点として特定された点b〜f以外の点について削減対象点に対するリンクが解除されても、図10(e)のようにそれぞれリンク保持点に対してリンクが設定されるため、リンク切れが生ずることを防止できる。
以上のように、第2実施形態によれば、リンクの削減対象点と修復対象点とのリンクが解除されても、修復対象点からリンク保持点に対してのリンクが確保されるため、リンク切れが発生することを防止できる。従って、グラフインデックスのリンク削除を行う場合にも、検索性能の低下を防止できる。
〔第3実施形態〕
次に、検索装置1の第3実施形態について説明する。尚、上述した第1実施形態と同一の機能構成、同一の処理ステップには、説明を省略する。第3実施形態における検索装置1の機能構成を示すブロック図を図11に示す。
第3実施形態における検索装置1は、グラフインデックスDB70として、主インデックス72と、暫定インデックス74とを備える。主インデックス72と、暫定インデックス74とは、図1に示したデータ構成と同様であり、画像IDと、リンク先とを対応付けてリンク情報として記憶する。
暫定インデックス74は、主インデックス72に本登録する前に暫定的にリンク情報を記憶しておくデータベースであり、データ数が主インデックス72に対して十分に少ない数で設定されている。
インデックスDB70の登録データ数が膨大になると、インデックスDB70のグラフ構造が複雑になると共に巡回するリンクも増し、類似データの検索の処理時間が次第に増していく。そのため、類似データの検索を行って、データ登録を行うという2段階の処理を有する検索装置1において、複数のデータが入力されると、データ検索の待ち時間が発生しするということがありえる。
そのため、第3実施形態における検索装置1は、暫定インデックス74という主インデックス72よりもデータ数の制限されたインデックスを設け、複数の登録データが入力される場合には、一旦、暫定インデックス74に対して登録を行う。そして、適宜な時間帯に暫定インデックス74に登録した複数の登録データを上述した手法を用いて、主インデックス72に登録する。
第3実施形態において、データ登録部50は、インデックス切替部52と、追加登録判定部54とを更に有して構成される。インデックス切替部52は、主インデックス72と暫定インデックス74との何れかを選択して、DB更新部57がリンク情報を更新・登録するデータベースの対象を切り替える制御を行う。具体的には、登録データ入力部10から新たに入力された登録データである場合には、暫定インデックス74への登録を行う。また、暫定インデックス74から入力された複数の登録データである場合には、主インデックス72への登録を行う。
追加登録判定部54は、暫定インデックス74に登録されているデータを主インデックス72に登録するか否かの判定を行う。判定の基準としては、例えば、暫定インデックス74に登録されたデータ数が規定数(例えば100件)に達することとしてもよい。また、所定の時間(例えば深夜0時)に達することを基準としてもよい。
第3実施形態の検索装置1は、登録データが入力されると、先ず、上述したグラフ自己生成処理を行って暫定インデックス74にリンク情報を記憶する。このとき、主インデックスよりもデータ数が少ないので、高速なデータ登録が行える。
また、登録データの入力時に、例えば、暫定インデックス74のデータ数が予め指定された規定数を超えた場合には、暫定インデックス74に記憶されたベクトルデータを登録データとして入力して、主インデックス72に移し変える。
即ち、暫定インデックス74内の個々のベクトルデータ(登録データ)に対する類似データを主インデックス72から検索し、その類似データにリンクすべきベクトルデータを特定する。そして、暫定インデックス74の複数のベクトルデータに対して検索した類似データとの間にリンクを生成して、上述したようにリンクのマージ・削減処理を行って主インデックス72にベクトルデータをリンク先とを記憶し、暫定インデックス74内のデータを削除する。
また、グラフ検索部40は、暫定インデックス74にデータが記憶されている場合、主インデックス72と暫定インデックス74の両方を検索し、それぞれの検索結果をマージする。検索時には二つのインデックスを検索することになるが、暫定インデックスのサイズは小さいので、検索速度の低下は少ない。
このように、主インデックス72への登録前に暫定インデックス74に事前登録することで、データ登録を即座にグラフインデックスDB70に反映させて、データ検索が可能となる。また、暫定インデックス74から主インデックス72への登録をバッチ処理として行うことで、全データにリンクの張られたグラフインデックスDB70を定期的に作成することができる。尚、グラフ登録時の各登録データに対するグラフ検索処理を並列で行うことで、データ登録を高速に行なえる。
次ぎに、上述した実施形態における変形例を説明する。
[変形例1]
登録データのベクトルデータと同一のベクトルデータが既にグラフインデックスDB70に記憶されている場合には、グラフインデックスDB70には記憶せずに、画像DB60にのみ記憶し、既に記憶されている同一のベクトルデータに関連付けることができる。この場合、グラフインデックスDB70には、画像IDの他に、同一ベクトルデータを有する画像データの画像IDを関連IDとして記憶するデータ項目を新たに設ける。
データ検索の際に、類似データとして検索したデータに関連IDが対応付けられている場合には、その関連IDで示される画像データも検索結果として出力することができる。このため、同一のベクトルデータの登録によりグラフインデックスの構造が煩雑化して検索速度が低下してしまうことを防止できる。
[変形例2]
グラフ検索処理の検索範囲を、登録データを中心とした規定の距離により定めたが、検索開始点から巡回する検索数により定めることとしてもよい。即ち、上述した方法により検索開始点を決定し、その検索開始点からリンクを辿る。このとき、リンクの巡回により所定の検索数(例えば、10個)のデータを収集する。そして、収集した各データと登録データの距離の順に各データをソートして巡回したデータのリストを得る。このリストにおいて検索数分のベクトルデータを保持し、登録データに対して最遠のベクトルデータに対応する距離を、検索範囲として更新していく。
即ち、検索終了条件を満たさない限りリンクを辿り、上記のリスト内のデータよりも登録データに近いデータが見つかった場合には、その距離順に上記リストに追加する。そして、このデータ追加によりリスト内において更新された最遠のデータに応じて検索範囲が更新される。これにより、検索数分のデータの収集に応じて、登録データとの距離が近いデータでリストが更新されていくことで、検索範囲を狭めていくことができる。このため、検索数の指定に応じて、検索範囲を動的に定めることができる。また、近いデータが検索されるたびに、検索範囲を狭めることができるので、検索精度を維持しつつ、検索速度を向上させることができる。
[変形例3]
上述の変形例2の手法を用いて、検索開始点の決定のためのリンク巡回する範囲を定めることとしてもよい。即ち、グラフインデックスから任意の点を選択して最近傍の点を特定する処理を、検索数を1個としたグラフ検索処理と見なして、リンク巡回することで検索される登録データにより近いデータを1つ収集して保持・更新することで、そのデータと登録データとの距離を検索範囲の半径として動的に定めていく。
リンクを巡回する際には、動的に定めた検索範囲を超えないようにデータを選択していく。このため、検索開始点を特定するためにリンクを辿りながら、検索範囲を狭めていくことができ、検索開始点特定までの時間を短くできる。
また、検索範囲をα倍(α>1)した範囲(検索限界範囲)を越えない範囲でリンクを巡回することにより、登録データに近いデータがリンクされていない場合があっても、巡回する範囲が広がるため、最適な検索開始点の特定することができるようになる。
[変形例4]
検索開始点を決定する際に巡回したデータが最終的な検索結果となり得る可能性があるため、図3のステップS434において算出した距離を巡回履歴としてメモリに保持しておき、グラフ検索においてその巡回履歴を参照することで、距離の算出処理を省略することができる。
尚、上述した各実施形態の動作は、コンピュータに適宜のコンピュータソフトウエアを組み込むことにより実施することができる。例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
また、機能要素は、物理的に離間した位置に配置されていてもよい。この場合、機能要素どうしがネットワークにより接続されていても良い。グリッドコンピューティングにより機能を実現し、あるいは機能要素を構成することも可能である。
第1実施形態における検索装置の機能構成の一例を示すブロック図。 第1実施形態におけるグラフ自己生成処理の処理内容を説明するためのフローチャート。 第1実施形態における検索開始点決定の処理フローを説明するためのフローチャート。 第1実施形態における検索開始点の決定の処理の具体例を示す模式図。 第1実施形態における類似データを検索の処理の具体例を示す模式図。 第1実施形態における仮リンク生成処理及びリンク最適化処理の処理内容の具体例を示す模式図。 第1実施形態におけるリンク生成処理の具体例を示す模式図。 第1実施形態におけるリンク最適化処理の具体例を示す模式図。 第2実施形態におけるリンク最適化処理の処理内容の具体例を示す模式図。 第2実施形態におけるリンク最適化処理の具体例を示す模式図。 第3実施形態における検索装置の機能構成を示すブロック図。
1 検索装置
10 登録データ入力部
20 検索データ入力部
30 検索結果出力部
40 グラフ検索部
41 ベクトルデータ生成部
43 検索開始点決定部
45 グラフ巡回部
47 類似データ特定部
50 データ登録部
51 類似データ取得部
53 マージ部
55 リンク最適化部
57 DB更新部
60 画像DB
70 グラフインデックスDB
72 主インデックス
74 暫定インデックス

Claims (6)

  1. 一方のデータから他方のデータに辿るためのリンクがデータ間に設定されて該データが複数記憶されたデータベースと、
    入力された検索対象のデータに対して、前記データベースに記憶されたデータのうちの何れかを検索開始点として選択し、該検索開始点から前記リンクを順次辿ることによって、該リンクを辿る経路上にあるデータのうち、検索対象のデータと既定の距離内にあるデータを類似データとして検索し出力するグラフ検索手段と、
    前記データベースへの登録対象となるデータを前記検索対象として前記グラフ検索手段に入力することにより、該登録対象のデータに対する類似データを取得し、該登録対象のデータと類似データとの間にリンクを生成する類似データ取得手段と、
    複数の登録対象データに対して前記類似データ取得手段がそれぞれ生成したリンクをマージするマージ手段と、
    前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとに削減処理を行うリンク最適化手段と、
    前記削減処理の結果に基づいて前記データベースのリンク情報を更新すると共に、前記登録対象のデータを前記データベースに記憶するデータ更新手段と、
    を備えることを特徴とする検索データ管理装置。
  2. 前記リンク最適化手段は、
    前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとの総数に基づいて、前記削減処理を行うことを特徴とする請求項1に記載の検索データ管理装置。
  3. 前記リンク最適化手段は、
    前記マージ手段がマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとの長さに基づいて、前記削減処理を行うことを特徴とする請求項1又は2に記載の検索データ管理装置。
  4. 前記リンク生成手段は、
    前記複数の登録対象のデータのそれぞれの間にリンクを更に生成することを特徴とする請求項1〜3の何れかに記載の検索データ管理装置。
  5. 一方のデータから他方のデータに辿るためのリンクがデータ間に設定されて該データが複数記憶されたデータベースをコンピュータが検索対象のデータ群としてデータ管理する検索データ管理方法において、
    入力された検索対象のデータに対して、前記データベースに記憶されたデータのうちの何れかを検索開始点として選択し、該検索開始点から前記リンクを順次辿ることによって、該リンクを辿る経路上にあるデータのうち、検索対象のデータと既定の距離内にあるデータを類似データとして検索し出力するグラフ検索工程と、
    前記データベースへの登録対象となるデータを前記検索対象として前記グラフ検索手段に入力することにより、該登録対象のデータに対する類似データを取得し、該登録対象のデータと類似データとの間にリンクを生成する類似データ取得工程と、
    複数の登録対象データに対して前記類似データ取得工程がそれぞれ生成したリンクをマージするマージ工程と、
    前記マージ工程においてマージしたリンクと、前記リンクが生成されたデータに前記データベース上で既に設定されたリンクとに削減処理を行うリンク最適化工程と、
    前記削減処理の結果に基づいて前記データベースのリンク情報を更新すると共に、前記登録対象のデータを前記データベースに記憶するデータ更新工程と、
    を含むことを特徴とする検索データ管理方法。
  6. 請求項5に記載の検索データ管理方法の処理をコンピュータに実行させるためのプログラム。
JP2009240992A 2009-10-20 2009-10-20 検索データ管理装置 Active JP5014399B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009240992A JP5014399B2 (ja) 2009-10-20 2009-10-20 検索データ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009240992A JP5014399B2 (ja) 2009-10-20 2009-10-20 検索データ管理装置

Publications (2)

Publication Number Publication Date
JP2011090352A JP2011090352A (ja) 2011-05-06
JP5014399B2 true JP5014399B2 (ja) 2012-08-29

Family

ID=44108587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009240992A Active JP5014399B2 (ja) 2009-10-20 2009-10-20 検索データ管理装置

Country Status (1)

Country Link
JP (1) JP5014399B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7077387B1 (ja) 2020-11-25 2022-05-30 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP2022083920A (ja) * 2020-11-25 2022-06-06 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5383776B2 (ja) * 2011-11-08 2014-01-08 ヤフー株式会社 グラフインデックス更新装置
JPWO2013145001A1 (ja) * 2012-03-28 2015-08-03 株式会社日立製作所 情報処理システムおよびグラフ処理方法
US20150067695A1 (en) * 2012-03-28 2015-03-05 Hitachi, Ltd. Information processing system and graph processing method
US20150324323A1 (en) * 2012-07-09 2015-11-12 Hitachi, Ltd. Information processing system and graph processing method
JP5851378B2 (ja) * 2012-10-17 2016-02-03 日本電信電話株式会社 時系列データ探索方法、装置、及びプログラム
US10713229B2 (en) 2013-01-11 2020-07-14 Nec Corporation Index generating device and method, and search device and search method
JP6273892B2 (ja) * 2014-02-21 2018-02-07 株式会社リコー データ検索装置、プログラム、及びデータ検索システム
JP6631519B2 (ja) 2014-07-10 2020-01-15 日本電気株式会社 インデックス生成装置及びインデックス生成方法
JP6333306B2 (ja) * 2016-05-26 2018-05-30 ヤフー株式会社 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム
JP6977659B2 (ja) * 2018-05-10 2021-12-08 日本電信電話株式会社 グラフ更新装置、グラフ更新方法、及びプログラム
JP7080803B2 (ja) * 2018-11-19 2022-06-06 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP7203137B2 (ja) * 2021-03-18 2023-01-12 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774016B2 (ja) * 2007-05-28 2011-09-14 日本電信電話株式会社 情報探索方法、情報探索プログラムおよび情報探索装置
JP5208001B2 (ja) * 2008-06-09 2013-06-12 ヤフー株式会社 ベクトルデータ検索装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7077387B1 (ja) 2020-11-25 2022-05-30 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP2022083919A (ja) * 2020-11-25 2022-06-06 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP2022083920A (ja) * 2020-11-25 2022-06-06 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP7109522B2 (ja) 2020-11-25 2022-07-29 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Also Published As

Publication number Publication date
JP2011090352A (ja) 2011-05-06

Similar Documents

Publication Publication Date Title
JP5014399B2 (ja) 検索データ管理装置
JP5014398B2 (ja) 検索データ管理装置
JP4856627B2 (ja) 部分的クエリーキャッシング
US9948531B2 (en) Predictive prefetching to reduce document generation times
US20150310022A1 (en) Searching documentation across interconnected nodes in a distributed network
JP2005327299A (ja) オブジェクトの類似性を異種の関係に基づいて判定するための方法およびシステム
JP5493597B2 (ja) 検索方法及び検索システム
JP2013522798A (ja) 仮想ドキュメントを用いたインデックス付与と検索
Khemmarat et al. Fast top-k path-based relevance query on massive graphs
JP2007219722A (ja) 文書検索サーバおよび文書検索方法
CN109597829B (zh) 一种实现可搜索加密关系型数据库缓存的中间件方法
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
JP5084796B2 (ja) 関連性判定装置、関連性判定方法およびプログラム
CN101635001A (zh) 从数据库提取信息的方法和设备
JP2012159887A (ja) 検索要求制御装置、検索要求制御プログラム及び検索要求制御方法
JP2018156458A (ja) 生成装置、生成方法、及び生成プログラム
JP4440246B2 (ja) 空間インデックス方法
KR101592670B1 (ko) 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법
JP4445849B2 (ja) ファイル検索方法、ファイル検索装置、および、ファイル検索プログラム
JP2012198709A (ja) 検索制御プログラム、検索方法、検索システム
KR101054815B1 (ko) 다중 정밀도를 가진 멀티미디어 데이터의 검색 서비스 제공시스템 및 그 제공 방법
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
JP2009075738A (ja) 検索結果絞り込みシステム、検索結果絞り込み方法、及び検索結果絞り込みプログラム
JP2000105764A (ja) 情報フィルタリングシステム
JP2005327225A (ja) 文書管理システム、文書管理方式、文書管理プログラム及びプログラム記録媒体

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5014399

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250