JP2017211846A - Retrieval data management device, retrieval data management method, and retrieval data management program - Google Patents

Retrieval data management device, retrieval data management method, and retrieval data management program Download PDF

Info

Publication number
JP2017211846A
JP2017211846A JP2016104827A JP2016104827A JP2017211846A JP 2017211846 A JP2017211846 A JP 2017211846A JP 2016104827 A JP2016104827 A JP 2016104827A JP 2016104827 A JP2016104827 A JP 2016104827A JP 2017211846 A JP2017211846 A JP 2017211846A
Authority
JP
Japan
Prior art keywords
data
vector
search
vector data
multidimensional vector
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.)
Granted
Application number
JP2016104827A
Other languages
Japanese (ja)
Other versions
JP6333306B2 (en
Inventor
岩崎 雅二郎
Masajiro Iwasaki
雅二郎 岩崎
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 JP2016104827A priority Critical patent/JP6333306B2/en
Publication of JP2017211846A publication Critical patent/JP2017211846A/en
Application granted granted Critical
Publication of JP6333306B2 publication Critical patent/JP6333306B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a retrieval data management device, a retrieval data management method and a retrieval data management program, capable of reducing the number of edges in consideration of search performance.SOLUTION: A retrieval data management device includes: a storage unit configured to store data of a graph structure to which a multidimensional vector data of a retrieval object is connected by edges; a deletion processing unit configured to extract an extracted edge as an edge satisfying a predetermined condition from the data of the graph structure stored in the storage unit, connect pieces of multidimensional vector data identical to the extracted edge with a route different from the extracted edge, determine whether an alternate path having the number of edges equal to or less than a predetermined number is present or not, and when it is determined that the alternate path is present, delete the extracted edge from the data of the graph structure.SELECTED DRAWING: Figure 1

Description

本発明は、検索データ管理装置、検索データ管理方法、および検索データ管理プログラムに関する。   The present invention relates to a search data management device, a search data management method, and a search data management program.

画像検索などのデータ検索の分野において、検索対象のデータ同士を仮想的に接続要素によって接続したグラフ構造のデータを構築しておき、接続要素を辿ることでデータ検索を行うことが行われている。接続要素とは、二つのデータが接続されていることを示す情報であり、エッジ、リンクなどと称される(以下ではエッジと称する)。エッジの設定は、まず検索対象のデータの特徴量を求め、特徴量が近いデータ同士を接続するといった規則に従って行われる。特徴量は、典型的には多次元ベクトルデータで表され、特徴量が近いとは、例えば、多次元ベクトルデータ間の距離が短いことと定義される。多次元ベクトルデータ同士の距離としては、例えば、ベクトル要素間の差分についてLpノルムを求めたものが使用される(p=1、2、…)。   In the field of data search such as image search, data having a graph structure in which search target data is virtually connected by connection elements is constructed, and data search is performed by tracing the connection elements. . The connection element is information indicating that two pieces of data are connected, and is referred to as an edge or a link (hereinafter referred to as an edge). The setting of the edge is performed according to a rule such that a feature amount of data to be searched is first obtained and data having similar feature amounts are connected. The feature amount is typically represented by multidimensional vector data, and that the feature amount is close is defined, for example, as a short distance between the multidimensional vector data. As the distance between the multidimensional vector data, for example, the Lp norm obtained for the difference between the vector elements is used (p = 1, 2,...).

また、エッジには、有向エッジと無向エッジが存在する。有向エッジとは、一方向にしかデータを辿れないエッジであり、無向エッジとは、双方向にデータを辿ることができるエッジである。無向エッジを設定した方が検索経路のパターンが多くなるため、高速かつ高精度に検索を行うことができる場合がある。ところが、例えば有向エッジを設定したグラフ構造に対して機械的に無向エッジに変更した場合、特定のデータに対して多くのエッジが設定されることがある。エッジの数が過剰になると、検索処理の工数が増加し、かえって性能が低下する場合もある。   In addition, there are directed edges and undirected edges. A directed edge is an edge that can trace data in only one direction, and an undirected edge is an edge that can trace data in both directions. Since there are more search path patterns when the undirected edge is set, there are cases where the search can be performed at high speed and with high accuracy. However, for example, when a graph structure in which a directed edge is set is mechanically changed to an undirected edge, many edges may be set for specific data. When the number of edges becomes excessive, the number of man-hours for the search process increases, and the performance may be deteriorated.

こうした点に鑑み、ある着目データに接続されているデータのうち、着目データとの距離が短いものから所定数のデータを残し、残りのデータとの接続を解除する技術が開示されている(例えば、特許文献1参照)。   In view of these points, a technique is disclosed in which a predetermined number of data is left out of data connected to certain data of interest and the distance from the data of interest is short, and the connection with the remaining data is released (for example, , See Patent Document 1).

特開2011−090352号公報JP 2011-090352 A

しかしながら、従来の技術では、エッジを効果的に削減可能である反面、探索性能(検索時間)を考慮していないために探索性能が低下する傾向がある。
本発明は、このような事情を考慮してなされたものであり、探索性能を考慮したエッジの削減が可能な検索データ管理装置、検索データ管理方法、および検索データ管理プログラムを提供することを目的の一つとする。
However, while the conventional technique can effectively reduce the edges, the search performance tends to decrease because the search performance (search time) is not taken into consideration.
The present invention has been made in view of such circumstances, and an object of the present invention is to provide a search data management device, a search data management method, and a search data management program capable of reducing edges in consideration of search performance. One of them.

本発明の一態様は、検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータを記憶する記憶部と、前記記憶部に記憶されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出し、前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する削除処理部と、を備える検索データ管理装置である。   One aspect of the present invention is a storage unit that stores graph structure data in which multidimensional vector data to be searched is connected by an edge, and an edge that satisfies a predetermined condition from the graph structure data stored in the storage unit. Whether a certain extracted edge is extracted, and the same multidimensional vector data as the extracted edge is connected by a route different from the extracted edge, and whether there is an alternative path having a predetermined number of edges or less And a deletion processing unit that deletes the extracted edge from the data of the graph structure when it is determined that the extracted edge exists.

本発明の一態様によれば、探索性能を考慮したエッジの削減をすることができる。   According to one embodiment of the present invention, edges can be reduced in consideration of search performance.

実施形態の検索データ管理装置1を中心とした構成図である。It is a block diagram centering on the search data management apparatus 1 of embodiment. 制御部20のハードウェア構成の一例を示す図である。2 is a diagram illustrating an example of a hardware configuration of a control unit 20. FIG. 既存ベクトルデータ42の内容の一例を示す図である。It is a figure which shows an example of the content of the existing vector data. グラフインデックス44の内容の一例を示す図である。4 is a diagram illustrating an example of the contents of a graph index 44. FIG. 新規作成・追加処理部26Aによる処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a process by 26 A of new creation / addition process parts. 近傍ベクトルが更新される様子を示す図である。It is a figure which shows a mode that a neighborhood vector is updated. 新規作成・追加処理部26Aによる処理の流れの他の一例を示すフローチャートである。It is a flowchart which shows another example of the flow of a process by 26 A of new creation / addition process parts. 新規作成・追加処理部26Aによる処理の流れの他の一例を示すフローチャートである。It is a flowchart which shows another example of the flow of a process by 26 A of new creation / addition process parts. ベクトル集合Sから、ベクトルyとの距離が最も短いベクトルが抽出され、ベクトル集合Sから除外される様子を概念的に示す図である。FIG. 5 is a diagram conceptually illustrating a state where a vector having the shortest distance from the vector y is extracted from the vector set S and excluded from the vector set S. ベクトルsの近傍ベクトルN(G,s)を概念的に示す図である。It is a figure which shows notionally vector N (G, s) of vector s. ベクトルがベクトル集合Sまたはベクトル集合Rに追加される様子を概念的に示す図である。It is a figure which shows notionally a mode that a vector is added to the vector set S or the vector set R. ベクトル集合Rに含まれるベクトルから、ベクトルyとの距離が最も長いベクトルが削除され、rが再設定される様子を概念的に示す図である。It is a figure which shows notionally a mode that the vector with the longest distance with the vector y is deleted from the vector contained in the vector set R, and r is reset. 削除処理部26Bにより実行される処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of the process performed by the deletion process part 26B. エッジ数がp以下の代替パスが削除される様子を概念的に示す図である。It is a figure which shows notionally a mode that the alternative path | pass whose number of edges is below p is deleted. 探索開始ベクトルを選択する手法を例示した図である。It is the figure which illustrated the method of selecting a search start vector.

以下、図面を参照し、本発明の検索データ管理装置、検索データ管理方法、および検索データ管理プログラムの実施形態について説明する。なお、以下の説明において「ベクトル間の距離が短い」と「ベクトル同士が近い」、および「ベクトル間の距離が長い」と「ベクトルが遠い」は同じ意味である。   Hereinafter, embodiments of a search data management device, a search data management method, and a search data management program according to the present invention will be described with reference to the drawings. In the following description, “the distance between the vectors is short” and “the vectors are close”, and “the distance between the vectors is long” and “the vector is far” have the same meaning.

[全体構成]
図1は、実施形態の検索データ管理装置1を中心とした構成図である。検索データ管理装置1は、一以上のクライアント端末CLとネットワークNWを介して接続される。クライアント端末は、パーソナルコンピュータ、スマートフォンなどの携帯電話、タブレット端末、その他の端末装置である。ネットワークNWは、無線基地局、公衆回線、専用回線、プロバイダ端末、インターネットなどを含む。検索データ管理装置1は、クライアント端末CLからクエリデータを受信すると、クエリデータに類似するデータを検索し、検索結果をクライアント端末CLに返信する。検索データ管理装置1が返信するデータは、データそのもの(例えばjpgなどで生成された画像データ)であってもよいし、データを参照するための識別子(URLなど)であってもよい。また、クエリデータや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。以下の説明では、検索データ管理装置1が画像を検索するものとして説明する。
[overall structure]
FIG. 1 is a configuration diagram centering on a search data management apparatus 1 according to the embodiment. The search data management device 1 is connected to one or more client terminals CL via a network NW. The client terminal is a personal computer, a mobile phone such as a smartphone, a tablet terminal, or another terminal device. The network NW includes a wireless base station, a public line, a dedicated line, a provider terminal, the Internet, and the like. When the search data management device 1 receives the query data from the client terminal CL, the search data management device 1 searches for data similar to the query data and returns the search result to the client terminal CL. The data returned by the search data management device 1 may be the data itself (for example, image data generated by jpg or the like) or an identifier (URL or the like) for referring to the data. Further, the query data and the search target data may be any kind of data such as images, sounds, text data, and the like. In the following description, it is assumed that the search data management device 1 searches for images.

検索データ管理装置1は、例えば、ネットワークインターフェース10と、制御部20と、入出力装置30と、データサーバ40とを備える。ネットワークインターフェース10は、例えば、NIC(Network Interface Card)である。   The search data management device 1 includes, for example, a network interface 10, a control unit 20, an input / output device 30, and a data server 40. The network interface 10 is, for example, a NIC (Network Interface Card).

制御部20は、例えば、ベクトルデータ生成部22と、インデックス検索部24と、グラフインデックス編集部26とを備える。グラフインデックス編集部26は、新規作成・追加処理部26Aと、削除処理部26Bとを備える。これらの制御部20の構成要素は、例えば、CPU(Central Processing Unit)などのプロセッサがプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働して実現されてもよい。これらの機能部による処理の内容については後述する。   The control unit 20 includes, for example, a vector data generation unit 22, an index search unit 24, and a graph index editing unit 26. The graph index editing unit 26 includes a new creation / addition processing unit 26A and a deletion processing unit 26B. These components of the control unit 20 are realized, for example, when a processor such as a CPU (Central Processing Unit) executes a program. Some or all of these functional units may be realized by hardware such as LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or software. And hardware may be implemented in cooperation. The contents of processing by these functional units will be described later.

図2は、制御部20のハードウェア構成の一例を示す図である。制御部20は、例えば、CPU20Aと、RAM(Random Access Memory)20Bと、プログラムメモリ20Cとが内部バスによって接続された構成を有する。内部バスには、ネットワークインターフェース10、入出力インターフェース、メモリインターフェースなどの各種インターフェースが接続される。RAM20Bには、CPU20Aによる処理対象のデータ、或いは処理結果のデータなどが格納される。プログラムメモリ20Cは、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリなどの記憶装置のうち一部または全部を含む。プログラムメモリ20Cには、ベクトルデータ生成プログラム20Ca、インデックス検索プログラム20Cb、グラフインデックス編集プログラム20Ccなどのプログラムが格納される。これらのプログラムは明確に分離されている必要はなく、一部または全部が共通化されてもよい。   FIG. 2 is a diagram illustrating an example of a hardware configuration of the control unit 20. The control unit 20 has, for example, a configuration in which a CPU 20A, a RAM (Random Access Memory) 20B, and a program memory 20C are connected by an internal bus. Various interfaces such as a network interface 10, an input / output interface, and a memory interface are connected to the internal bus. The RAM 20B stores data to be processed by the CPU 20A, data of processing results, and the like. The program memory 20C includes a part or all of a storage device such as a ROM (Read Only Memory), a HDD (Hard Disk Drive), and a flash memory. Programs such as a vector data generation program 20Ca, an index search program 20Cb, and a graph index editing program 20Cc are stored in the program memory 20C. These programs do not need to be clearly separated, and some or all of them may be shared.

図1に戻り、入出力装置30は、検索データ管理装置1の管理者による入力操作を受け付けるマウスやキーボード、タッチパネルなどの入力装置と、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)表示装置、スピーカなどの出力装置とを含む。   Returning to FIG. 1, the input / output device 30 includes an input device such as a mouse, a keyboard, and a touch panel that accepts an input operation by an administrator of the search data management device 1, an LCD (Liquid Crystal Display), an organic EL (Electroluminescence) display device, Output devices such as speakers.

データサーバ40は、HDDやフラッシュメモリなどの記憶装置により実現される。データサーバ40は、制御部20のプログラムメモリ20Cと共通化されてもよいし、プログラムメモリ20Cとは別体の記憶装置により実現されてもよい。また、データサーバ40は、検索データ管理装置1から各種ネットワークを介してアクセス可能なNAS(Network Attached Storage)装置などの外部記憶装置により実現されてもよい。この場合、特許請求の範囲における「記憶部」は、データサーバ40から取得したデータが一時的に格納されるRAM20Bを指すものと解釈してもよい。   The data server 40 is realized by a storage device such as an HDD or a flash memory. The data server 40 may be shared with the program memory 20C of the control unit 20, or may be realized by a storage device separate from the program memory 20C. The data server 40 may be realized by an external storage device such as a NAS (Network Attached Storage) device that can be accessed from the search data management device 1 via various networks. In this case, the “storage unit” in the claims may be interpreted to indicate the RAM 20B in which data acquired from the data server 40 is temporarily stored.

[制御部]
以下、制御部20の各機能部による処理の内容について説明する。なお、制御部20は、一つのプロセッサにより実現される必要はなく、機能ごとに分散処理を行ってもよい。例えば、ベクトルデータ生成部22およびインデックス検索部24と、グラフインデックス編集部26とは、それぞれ別体のプロセッサにより実現されてもよい。
[Control unit]
Hereinafter, the contents of processing by each functional unit of the control unit 20 will be described. Note that the control unit 20 does not need to be realized by a single processor, and may perform distributed processing for each function. For example, the vector data generation unit 22, the index search unit 24, and the graph index editing unit 26 may be realized by separate processors.

ベクトルデータ生成部22は、クライアント端末CLなどから受信した入力データに基づいて、入力データの特徴量である多次元ベクトルデータを生成する。入力データが画像である場合、多次元ベクトルデータは、例えば、局所特徴量やBoF(Bag of Features)、色のヒストグラムなど、或いはこれらの組み合わせである。また、入力データがテキストデータである場合、多次元ベクトルデータは、例えば、単語の出現頻度のベクトルデータ、ニューラルネットワークを用いて抽出した意味ベクトルなどである。   The vector data generation unit 22 generates multidimensional vector data, which is a feature amount of input data, based on input data received from the client terminal CL or the like. When the input data is an image, the multidimensional vector data is, for example, a local feature amount, BoF (Bag of Features), a color histogram, or a combination thereof. When the input data is text data, the multidimensional vector data is, for example, vector data of word appearance frequency, meaning vectors extracted using a neural network, and the like.

インデックス検索部24は、ベクトルデータ生成部22により生成された多次元ベクトルデータ(以下、新規ベクトルデータと称する)をクエリとしてデータサーバ40を検索し、新規ベクトルデータに類似する既存ベクトルデータ42を抽出する。データサーバ40には、例えば、既存ベクトルデータ42と、グラフインデックス44とが格納される。   The index search unit 24 searches the data server 40 using the multidimensional vector data (hereinafter referred to as new vector data) generated by the vector data generation unit 22 as a query, and extracts existing vector data 42 similar to the new vector data. To do. For example, existing vector data 42 and a graph index 44 are stored in the data server 40.

既存ベクトルデータ42は、検索対象となるデータから生成された多次元ベクトルデータである。既存ベクトルデータ42には、その既存ベクトルデータ42を生成する元となったデータ、或いはデータを参照する識別子が対応付けられている。検索データ管理装置1は、新規ベクトルデータをクエリとして得られた既存ベクトルデータ42、すなわち新規ベクトルデータに類似する既存ベクトルデータ42に対応付けられたデータ、或いはデータを参照する識別子をクライアント端末CLに送信する。図3は、既存ベクトルデータ42の内容の一例を示す図である。図示するように、既存ベクトルデータ42は、多次元ベクトルデータの識別情報(図中、ベクトルID)に対して、多次元ベクトルデータ、およびその多次元ベクトルデータを生成する元となったデータ、或いはデータを参照する識別子が対応付けられたデータである。   The existing vector data 42 is multidimensional vector data generated from data to be searched. The existing vector data 42 is associated with data used to generate the existing vector data 42 or an identifier that refers to the data. The search data management device 1 sends to the client terminal CL the existing vector data 42 obtained by using the new vector data as a query, that is, data associated with the existing vector data 42 similar to the new vector data, or an identifier referring to the data. Send. FIG. 3 is a diagram illustrating an example of the contents of the existing vector data 42. As shown in the figure, the existing vector data 42 is the multidimensional vector data and the data used to generate the multidimensional vector data for the identification information (vector ID in the figure) of the multidimensional vector data, or This is data associated with an identifier that refers to data.

グラフインデックス44は、複数の既存ベクトルデータ42を接続するエッジに関する情報であり、既存ベクトルデータ42のうち任意の二つを接続する複数のエッジにより形成されるグラフ構造のデータである。本実施例におけるグラフインデックス44に含まれるエッジは、双方向のエッジである。図4は、グラフインデックス44の内容の一例を示す図である。図示するように、グラフインデックス44は、各エッジの識別情報であるエッジIDに対して、そのエッジが接続する両端の既存ベクトルデータのベクトルIDが対応付けられたデータである。なお、図3および図4に示すデータ構造は、あくまで一例であり、例えば、ベクトルIDに対して、接続されているエッジのエッジIDが対応付けられたデータが、グラフインデックス44としてデータサーバ40に格納されてもよい。すなわち、本実施形態においてデータ構造の形式は本質的な問題ではなく、要求される性質を満たす限り、如何なるデータ構造のデータがデータサーバ40に格納されてもよい。   The graph index 44 is information regarding edges connecting a plurality of existing vector data 42, and is data having a graph structure formed by a plurality of edges connecting any two of the existing vector data 42. The edges included in the graph index 44 in the present embodiment are bidirectional edges. FIG. 4 is a diagram illustrating an example of the contents of the graph index 44. As illustrated, the graph index 44 is data in which the vector ID of the existing vector data at both ends to which the edge is connected is associated with the edge ID that is identification information of each edge. The data structures shown in FIGS. 3 and 4 are merely examples. For example, data in which an edge ID of a connected edge is associated with a vector ID is stored in the data server 40 as a graph index 44. It may be stored. In other words, the format of the data structure is not an essential problem in the present embodiment, and data having any data structure may be stored in the data server 40 as long as the required properties are satisfied.

インデックス検索部24は、グラフインデックス44により規定されたエッジによって辿ることのできる既存ベクトルデータ42のうち、新規ベクトルデータに対して既定の距離以内にある既存ベクトルデータ42を、新規ベクトルデータに類似する既存ベクトルデータとして抽出する。ベクトル間の距離とは、例えば、ベクトル要素間の差分についてLpノルムを求めたものと定義される(p=1、2、…)。また、インデックス検索部24は、グラフインデックス44により規定されたエッジによって辿ることのできる既存ベクトルデータ42のうち、新規ベクトルデータに対する距離が短いものから順に所定数の既存ベクトルデータ42を、新規ベクトルデータに類似する既存ベクトルデータとして抽出してもよい。そして、インデックス検索部24は、抽出した既存ベクトルデータ42を、ネットワークインターフェース10およびネットワークNWを介してクライアント端末CLに送信する。   The index search unit 24 resembles the existing vector data 42 within a predetermined distance with respect to the new vector data among the existing vector data 42 that can be traced by the edge defined by the graph index 44, similar to the new vector data. Extract as existing vector data. The distance between vectors is defined as, for example, the Lp norm obtained for the difference between vector elements (p = 1, 2,...). In addition, the index search unit 24 selects a predetermined number of existing vector data 42 in order from the shortest distance to the new vector data among the existing vector data 42 that can be traced by the edge defined by the graph index 44. It may be extracted as existing vector data similar to. Then, the index search unit 24 transmits the extracted existing vector data 42 to the client terminal CL via the network interface 10 and the network NW.

なお、インデックス検索部24による検索処理は、例えば、後述する図8のフローチャートの処理を用いて実現される。図8のフローチャートにおいて、新規ベクトルデータをベクトルyとして得られるベクトル集合Rが、インデックス検索部24による検索結果の一例である。この場合、所定数ksを所望の値に調整することで、検索結果に含まれるベクトルの数を調整することができる。   Note that the search processing by the index search unit 24 is realized using, for example, the processing of the flowchart of FIG. In the flowchart of FIG. 8, a vector set R obtained from new vector data as a vector y is an example of a search result by the index search unit 24. In this case, the number of vectors included in the search result can be adjusted by adjusting the predetermined number ks to a desired value.

ベクトルデータ生成部22およびインデックス検索部24の機能によって、クライアント端末CLは、送信したデータに類似するデータを検索データ管理装置1から取得することができる。なお、検索データ管理装置1の役割は、新規ベクトルデータに類似する既存ベクトルデータ42を抽出するところまでであってもよく、その場合、抽出した既存ベクトルデータ42に対応したデータ、或いはデータを参照する識別子をクライアント端末CLに送信する機能は、検索データ管理装置1とは異なる装置が有してもよい。   With the functions of the vector data generation unit 22 and the index search unit 24, the client terminal CL can acquire data similar to the transmitted data from the search data management device 1. Note that the role of the search data management apparatus 1 may be up to extracting the existing vector data 42 similar to the new vector data. In that case, the data corresponding to the extracted existing vector data 42 or data is referred to. An apparatus different from the search data management apparatus 1 may have a function of transmitting the identifier to be transmitted to the client terminal CL.

グラフインデックス編集部26の新規作成・追加処理部26Aは、グラフインデックス44を新規作成し、または追加処理する。この処理について、例えば以下に説明する二つの手法のうちいずれかを採用することができる。以下の説明では、多次元ベクトルを単にベクトルと称することがある。   The new creation / addition processing unit 26A of the graph index editing unit 26 creates a new graph index 44 or performs addition processing. For this processing, for example, one of the two methods described below can be adopted. In the following description, a multidimensional vector may be simply referred to as a vector.

(新規作成・追加手法1)
図5は、新規作成・追加処理部26Aによる処理の流れの一例を示すフローチャートである。このフローチャートの処理は、グラフインデックス44を新規に作成する場合に使用可能であると共に、新たな多次元ベクトルデータが追加された場合に、既にグラフインデックス44に対応付けられた多次元ベクトルデータと新たな多次元ベクトルデータとに対して実行することで、新たな多次元ベクトルデータを追加する処理にも使用することができる。本フローチャートの処理の前提として、既存ベクトルデータ42に含まれる多次元ベクトルデータには、1からnまでのベクトルIDが付与されているものとする。フローチャートの中で使用する引数iおよびjは、1からnまで順に選択されて処理が実行される。すなわち、新規作成・追加処理部26Aは、まず、引数iを1に設定すると共に、引数jを1から一つずつインクリメントしながら引数jがnに至るまで繰り返しS100〜S106の処理を行う。次に、新規作成・追加処理部26Aは、引数iを2に設定すると共に、引数jを1から一つずつインクリメントしながら引数jがnに至るまで繰り返しS100〜S106の処理を行う。これを、引数iがnに至るまで繰り返し実行する。
(New creation / addition method 1)
FIG. 5 is a flowchart showing an example of the flow of processing by the new creation / addition processing unit 26A. The process of this flowchart can be used when a new graph index 44 is created, and when new multidimensional vector data is added, the multidimensional vector data already associated with the graph index 44 and the new It can also be used for the process of adding new multidimensional vector data by executing it on multi-dimensional vector data. As a premise of the processing of this flowchart, it is assumed that vector IDs 1 to n are assigned to multidimensional vector data included in the existing vector data 42. Arguments i and j used in the flowchart are sequentially selected from 1 to n and executed. That is, the new creation / addition processing unit 26A first sets the argument i to 1, and repeatedly performs the processes of S100 to S106 until the argument j reaches n while incrementing the argument j one by one. Next, the new creation / addition processing unit 26A sets the argument i to 2, and repeats the processes of S100 to S106 until the argument j reaches n while incrementing the argument j one by one. This is repeated until the argument i reaches n.

新規作成・追加処理部26Aは、ベクトルi(ベクトルIDがiであるベクトル;以下同様)が、ベクトルjの近傍ベクトルN(G,j)の要素である、またはi=jであるか否かを判定する(S100)。ベクトルjの近傍ベクトルN(G,j)とは、ベクトルjから見て距離が短い方から順に所定数kpだけ選択されるベクトルの集合である。「G」は、グラフ構造のデータを示す符号である。ベクトルjの近傍ベクトルN(G,j)の要素であるベクトルのそれぞれと、ベクトルjとの間は、エッジによって接続される。従って、少なくともベクトルjの近傍ベクトルN(G,j)の要素であるベクトルは、ベクトルjから一つのエッジを介して辿ることのできるベクトルである。なお、ベクトルjが、ベクトルjの近傍ベクトルN(G,j)の要素でない他のベクトルの近傍ベクトルの要素である場合もある。以下、このことを前提として説明する。ベクトルiがベクトルjの近傍ベクトルN(G,j)の要素である場合、またはi=jである場合、S102〜S106の処理がスキップされる。   The new creation / addition processing unit 26A determines whether the vector i (the vector with the vector ID i; the same applies hereinafter) is an element of the neighborhood vector N (G, j) of the vector j or i = j. Is determined (S100). The neighborhood vector N (G, j) of the vector j is a set of vectors selected by a predetermined number kp in order from the shortest distance when viewed from the vector j. “G” is a code indicating data having a graph structure. Each vector that is an element of the neighborhood vector N (G, j) of the vector j and the vector j are connected by an edge. Accordingly, at least a vector that is an element of the neighborhood vector N (G, j) of the vector j is a vector that can be traced from the vector j through one edge. Note that the vector j may be an element of a neighborhood vector of another vector that is not an element of the neighborhood vector N (G, j) of the vector j. Hereinafter, this will be described on the assumption. When the vector i is an element of the neighborhood vector N (G, j) of the vector j, or when i = j, the processing of S102 to S106 is skipped.

ベクトルiがベクトルjの近傍ベクトルN(G,j)の要素でなく、且つi=jでない場合、新規作成・追加処理部26Aは、ベクトルiをベクトルjの近傍ベクトルN(G,j)の要素に追加する(S102)。次に、新規作成・追加処理部26Aは、ベクトルjの近傍ベクトルN(G,j)の要素であるベクトルの数が所定数kpを超えるか否かを判定する(S104)。所定数kpは、任意に定められる自然数である。例えば、kp=3である。ベクトルjの近傍ベクトルN(G,j)の要素であるベクトルの数が所定数kpを超える場合、新規作成・追加処理部26Aは、ベクトルjの近傍ベクトルN(G,j)から、ベクトルjとの距離が最も長い(ベクトルjから最も遠い)ベクトルを除外する(S106)。   When the vector i is not an element of the neighborhood vector N (G, j) of the vector j and i = j, the new creation / addition processing unit 26A converts the vector i to the neighborhood vector N (G, j) of the vector j. It adds to an element (S102). Next, the new creation / addition processing unit 26A determines whether or not the number of vectors that are elements of the neighborhood vector N (G, j) of the vector j exceeds a predetermined number kp (S104). The predetermined number kp is an arbitrary natural number. For example, kp = 3. When the number of vectors that are elements of the neighborhood vector N (G, j) of the vector j exceeds the predetermined number kp, the new creation / addition processing unit 26A calculates the vector j from the neighborhood vector N (G, j) of the vector j. The vector having the longest distance from (the farthest from the vector j) is excluded (S106).

図6は、近傍ベクトルが更新される様子を示す図である。図示の例では、元々、ベクトルjの近傍ベクトルN(G,j)にベクトル(1)〜(3)が設定されていたところ、ベクトルiが追加されると共にベクトル(3)が除外された。この結果、ベクトルjの近傍ベクトルN(G,j)がN(G,j)*に更新された。このような処理を繰り返すことで、ベクトルx=1〜nの全てについて、近傍ベクトルN(G,x)が設定される。これによって、グラフインデックス44が作成される。   FIG. 6 is a diagram illustrating how the neighborhood vector is updated. In the illustrated example, when vectors (1) to (3) were originally set in the neighborhood vector N (G, j) of the vector j, the vector i was added and the vector (3) was excluded. As a result, the neighborhood vector N (G, j) of the vector j is updated to N (G, j) *. By repeating such processing, the neighborhood vector N (G, x) is set for all the vectors x = 1 to n. Thereby, the graph index 44 is created.

(新規作成・追加手法2)
図7および図8は、新規作成・追加処理部26Aによる処理の流れの他の一例を示すフローチャートである。本フローチャートの処理の前提として、既存ベクトルデータ42において1からnまでのベクトルIDが付与され、グラフインデックス44が作成されたn個の多次元ベクトルデータが既に存在し、新たにm−n個の多次元ベクトルデータが追加されたものとする(m>n)。フローチャートの中で使用する引数yは、(n+1)からmまで順に選択されて処理が実行される。
(New creation / addition method 2)
7 and 8 are flowcharts showing another example of the processing flow by the new creation / addition processing unit 26A. As a premise of the processing of this flowchart, n-dimensional vector data having a vector ID from 1 to n assigned to the existing vector data 42 and having the graph index 44 already exist, and mn pieces of new multi-dimensional vector data already exist. It is assumed that multidimensional vector data is added (m> n). The argument y used in the flowchart is selected in order from (n + 1) to m, and the process is executed.

新規作成・追加処理部26Aは、K近傍検索処理を実行する(S200)。K近傍検索処理については図8を用いて説明する。図8に示すように、新規作成・追加処理部26Aは、超球の半径rを∞(無限大)に設定し(S300)、既存のベクトル集合からベクトル集合Sを抽出する(S302)。超球とは、検索範囲(その範囲に入っていれば入力ベクトルyの近傍ベクトルN(G,y)の要素に含められる可能性がある範囲)を示す仮想的な球である。なお、ステップS302で抽出されたベクトル集合Sに含まれるベクトルは、同時にベクトル集合Rの初期集合にも含められてもよい。   The new creation / addition processing unit 26A executes a K neighborhood search process (S200). The K neighborhood search process will be described with reference to FIG. As shown in FIG. 8, the new creation / addition processing unit 26A sets the radius r of the hypersphere to ∞ (infinity) (S300), and extracts the vector set S from the existing vector set (S302). The hypersphere is a virtual sphere indicating a search range (a range that can be included in the elements of the neighborhood vector N (G, y) of the input vector y if it is within the range). Note that the vectors included in the vector set S extracted in step S302 may be included in the initial set of the vector set R at the same time.

次に、新規作成・追加処理部26Aは、ベクトル集合Sに含まれるベクトルの中で、ベクトルyとの距離が最も短いベクトルを抽出し、ベクトルsとする(S304)。次に、新規作成・追加処理部26Aは、ベクトルsをベクトル集合Sから除外する(S306)。図9は、ベクトル集合Sから、ベクトルyとの距離が最も短いベクトルが抽出され、ベクトル集合Sから除外される様子を概念的に示す図である。   Next, the new creation / addition processing unit 26A extracts a vector having the shortest distance from the vector y among the vectors included in the vector set S and sets it as a vector s (S304). Next, the new creation / addition processing unit 26A excludes the vector s from the vector set S (S306). FIG. 9 is a diagram conceptually illustrating how a vector having the shortest distance from the vector y is extracted from the vector set S and excluded from the vector set S.

次に、新規作成・追加処理部26Aは、ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(S308)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(その範囲にあるベクトルの近傍ベクトルについて、入力ベクトルyの近傍ベクトルN(G,y)の要素に含められるか否かを判定する範囲)の半径を示す値である。ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超える場合、新規作成・追加処理部26Aは、ベクトル集合Rをベクトルyの近傍ベクトルN(G,y)として出力し、図8のフローチャートの処理を終了する。   Next, the new creation / addition processing unit 26A determines whether the distance d (s, y) between the vector s and the vector y exceeds r (1 + ε) (S308). Here, ε is an expansion element, and r (1 + ε) indicates whether or not the search range (a neighborhood vector of a vector in the range is included in the neighborhood vector N (G, y) of the input vector y). This is a value indicating the radius of the range to be determined. When the distance d (s, y) between the vector s and the vector y exceeds r (1 + ε), the new creation / addition processing unit 26A outputs the vector set R as a neighborhood vector N (G, y) of the vector y. Then, the process of the flowchart of FIG.

ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超えない場合、新規作成・追加処理部26Aは、ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルの中からベクトル集合Cに含まれないベクトルを一つ選択し、選択したベクトルuを、ベクトル集合Cに格納する(S312)。図10は、ベクトルsの近傍ベクトルN(G,s)を概念的に示す図である。ベクトル集合Cは、重複検索を回避するために便宜上設けられるものであり、図8のフローチャートが開始されるときにリセットされて空集合とされる。   When the distance d (s, y) between the vector s and the vector y does not exceed r (1 + ε), the new creation / addition processing unit 26A determines the vector that is an element of the neighborhood vector N (G, s) of the vector s. One vector that is not included in the vector set C is selected from them, and the selected vector u is stored in the vector set C (S312). FIG. 10 is a diagram conceptually showing the neighborhood vector N (G, s) of the vector s. The vector set C is provided for convenience in order to avoid duplicate search, and is reset to an empty set when the flowchart of FIG. 8 is started.

次に、新規作成・追加処理部26Aは、ベクトルuとベクトルyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(S314)。ベクトルuとベクトルyとの距離d(u,y)がr(1+ε)以下である場合、新規作成・追加処理部26Aは、ベクトルuをベクトル集合Sに追加する(S316)。   Next, the new creation / addition processing unit 26A determines whether or not the distance d (u, y) between the vector u and the vector y is equal to or less than r (1 + ε) (S314). When the distance d (u, y) between the vector u and the vector y is equal to or less than r (1 + ε), the new creation / addition processing unit 26A adds the vector u to the vector set S (S316).

次に、新規作成・追加処理部26Aは、ベクトルuとベクトルyとの距離d(u,y)がr以下であるか否かを判定する(S318)。ベクトルuとベクトルyとの距離d(u,y)がrを超える場合、S330に処理が進められる。   Next, the new creation / addition processing unit 26A determines whether the distance d (u, y) between the vector u and the vector y is equal to or less than r (S318). If the distance d (u, y) between the vector u and the vector y exceeds r, the process proceeds to S330.

ベクトルuとベクトルyとの距離d(u,y)がr以下である場合、新規作成・追加処理部26Aは、ベクトルuをベクトル集合Rに追加する(S320)。図11は、ベクトルがベクトル集合Sまたはベクトル集合Rに追加される様子を概念的に示す図である。図示の例では、ベクトルyとの距離がr以下であるベクトル(4)および(5)がベクトル集合Rに追加され、ベクトルyとの距離がrを超えr(1+ε)以下であるベクトル(6)がベクトル集合Sに追加される。   When the distance d (u, y) between the vector u and the vector y is equal to or less than r, the new creation / addition processing unit 26A adds the vector u to the vector set R (S320). FIG. 11 is a diagram conceptually illustrating how a vector is added to the vector set S or the vector set R. In the illustrated example, vectors (4) and (5) whose distance from the vector y is equal to or less than r are added to the vector set R, and the vector (6) whose distance from the vector y exceeds r and is equal to or less than r (1 + ε). ) Is added to the vector set S.

そして、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトル数がksを超えるか否かを判定する(S322)。所定数ksは、任意に定められる自然数である。例えば、ks=3である。   Then, the new creation / addition processing unit 26A determines whether or not the number of vectors included in the vector set R exceeds ks (S322). The predetermined number ks is a natural number that is arbitrarily determined. For example, ks = 3.

ベクトル集合Rに含まれるベクトル数がksを超える場合、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトルの中でベクトルyとの距離が最も長いベクトルを、ベクトル集合Rから除外する(S324)。   When the number of vectors included in the vector set R exceeds ks, the new creation / addition processing unit 26A excludes the vector having the longest distance from the vector y among the vectors included in the vector set R from the vector set R. (S324).

次に、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトル数がksと一致するか否かを判定する(S326)。ベクトル集合Rに含まれるベクトル数がksと一致する場合、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトルの中でベクトルyとの距離が最も長いベクトルと、ベクトルyとの距離を、新たなrに設定する(S328)。   Next, the new creation / addition processing unit 26A determines whether or not the number of vectors included in the vector set R matches ks (S326). When the number of vectors included in the vector set R matches ks, the new creation / addition processing unit 26A determines the distance between the vector having the longest distance from the vector y among the vectors included in the vector set R and the vector y. Is set to a new r (S328).

図12は、ベクトル集合Rに含まれるベクトルから、ベクトルyとの距離が最も長いベクトルが除外され、rが再設定される様子を概念的に示す図である。図12の例では、図11でRに追加されたベクトルs、(4)、および(5)の他、前回以前のループ処理の結果、ベクトル(7)がRに含まれていたものとする。この場合、ベクトルyとの距離が最も長いベクトル(5)がRから除外され、残ったベクトルの中でベクトルyとの距離が最も長いベクトル(7)とベクトルyとの距離が、rに設定される。   FIG. 12 is a diagram conceptually illustrating a state in which a vector having the longest distance from the vector y is excluded from vectors included in the vector set R, and r is reset. In the example of FIG. 12, in addition to the vector s, (4), and (5) added to R in FIG. 11, the vector (7) is included in R as a result of the previous loop processing. . In this case, the vector (5) having the longest distance from the vector y is excluded from R, and the distance between the vector (7) having the longest distance from the vector y and the vector y among the remaining vectors is set to r. Is done.

そして、新規作成・追加処理部26Aは、ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えたか否かを判定する(S330)。ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えていない場合、S312に処理が戻される。   Then, the new creation / addition processing unit 26A determines whether all vectors have been selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C (S330). ). If all vectors have not been selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C, the process returns to S312.

ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えた場合、新規作成・追加処理部26Aは、ベクトル集合Sが空集合であるか否かを判定する(S330)。ベクトル集合Sが空集合でない場合、S304に処理が戻され、ベクトル集合Sが空集合である場合、新規作成・追加処理部26Aは、ベクトル集合Rをベクトルyの近傍ベクトルN(G,y)として出力し、図8のフローチャートの処理を終了する(S332)。   When all the vectors are selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C, the new creation / addition processing unit 26A indicates that the vector set S is an empty set. It is determined whether or not there is (S330). When the vector set S is not an empty set, the process is returned to S304. When the vector set S is an empty set, the new creation / addition processing unit 26A converts the vector set R into a neighborhood vector N (G, y) of the vector y. And the process of the flowchart of FIG. 8 ends (S332).

図8に示す処理を行うことで、全てのベクトルを網羅的に処理する場合に比して、メモリ領域の消費を抑制しつつ、高速処理を実現することができる。すなわち、図8に示す処理は、主としてグラフインデックス44により規定されるエッジを辿ることで進行するため、既存ベクトルデータ42を網羅的に検索するよりも処理工数が少なくて済む。また、既存のベクトル群に必要なメモリ領域の他、シードとなるベクトル集合S、重複検索を回避するためのベクトル集合C、および、最大のベクトル数がksに制限されるベクトル集合Rに関するデータを管理すればよいため、メモリ領域の消費を抑制することができる。更に、入力データであるベクトルyから十分に遠いベクトルは、処理によってベクトル集合Sに追加される可能性が低く、仮にS302でベクトル集合Sに含められたとしても、探索順位が低いことにより処理対象とされない可能性が高くなるため、処理工数を更に低減することができる。   By performing the processing shown in FIG. 8, it is possible to realize high-speed processing while suppressing consumption of the memory area as compared to the case of exhaustively processing all vectors. That is, the process shown in FIG. 8 proceeds mainly by following an edge defined by the graph index 44, and therefore, the processing man-hours can be reduced compared to exhaustively searching the existing vector data 42. In addition to the memory area necessary for the existing vector group, data relating to a vector set S serving as a seed, a vector set C for avoiding duplicate search, and a vector set R in which the maximum number of vectors is limited to ks Since it only has to be managed, consumption of the memory area can be suppressed. Furthermore, a vector sufficiently distant from the vector y as input data is unlikely to be added to the vector set S by processing, and even if it is included in the vector set S in S302, the search target is low, Since the possibility that it will not be increased increases, the number of processing steps can be further reduced.

図7に戻る。ベクトルyの近傍ベクトルN(G,y)が求められると、新規作成・追加処理部26Aは、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルを一つ選択し、ベクトルzとする(S202)。次に、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)の要素としてベクトルyを追加する(S204)。   Returning to FIG. When the neighborhood vector N (G, y) of the vector y is obtained, the new creation / addition processing unit 26A selects one vector that is an element of the neighborhood vector N (G, y) of the vector y, (S202). Next, the new creation / addition processing unit 26A adds the vector y as an element of the neighborhood vector N (G, z) of the vector z (S204).

次に、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)の要素であるベクトルの数がkpを超えるか否かを判定する(S206)。ベクトルzの近傍ベクトルN(G,z)の要素であるベクトルの数が所定数kpを超える場合、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)から、ベクトルzとの距離が最も長い(ベクトルjから最も遠い)ベクトルを除外する(S208)。   Next, the new creation / addition processing unit 26A determines whether or not the number of vectors that are elements of the neighborhood vector N (G, z) of the vector z exceeds kp (S206). When the number of vectors that are elements of the neighborhood vector N (G, z) of the vector z exceeds a predetermined number kp, the new creation / addition processing unit 26A calculates the vector z from the neighborhood vector N (G, z) of the vector z. The vector having the longest distance from (the furthest from the vector j) is excluded (S208).

そして、新規作成・追加処理部26Aは、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択したか否かを判定する(S210)。ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択していない場合はS202に処理が戻され、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択した場合はS200〜S208のループ処理の1回分が終了する。これによって、グラフインデックス44が作成される。   Then, the new creation / addition processing unit 26A determines whether or not all vectors z that are elements of the neighborhood vector N (G, y) of the vector y have been selected (S210). When all the vectors z that are elements of the neighborhood vector N (G, y) of the vector y are not selected, the process returns to S202, and the vector z that is an element of the neighborhood vector N (G, y) of the vector y is obtained. If all of them are selected, the loop processing of S200 to S208 ends. Thereby, the graph index 44 is created.

ここで、(新規作成・追加手法1)と(新規作成・追加手法2)の処理は、組み合わせて使用されてもよい。すなわち、最初にベクトル群が与えられてグラフインデックス44を作成する際に(新規作成・追加手法1)の処理を行い、その後、ベクトル群が追加される際に(新規作成・追加手法2)の処理を行ってもよい。その場合、kpとksは同じでもよいし、異なってもよい。また、ベクトル群が追加される度に(新規作成・追加手法1)の処理を行うものとしてもよい。   Here, the processes of (new creation / addition method 1) and (new creation / addition method 2) may be used in combination. That is, when the vector group is first given and the graph index 44 is created, the processing of (new creation / addition method 1) is performed, and then when the vector group is added (new creation / addition method 2) Processing may be performed. In that case, kp and ks may be the same or different. Alternatively, the processing of (New creation / addition method 1) may be performed each time a vector group is added.

(削除処理)
削除処理部26Bは、新規作成・追加処理部26Aによって作成されたグラフインデックス44から、所定条件を満たすエッジを抽出し、抽出したエッジ(被抽出エッジ)と同じベクトルを異なる経路で接続する代替パスであって、エッジ数が所定数p以下の代替パスが存在する場合に、抽出したエッジを削除する処理を行う。所定条件とは、例えば、以下に説明する図13のS402の判定条件である。
(Deletion process)
The deletion processing unit 26B extracts an edge satisfying a predetermined condition from the graph index 44 created by the new creation / addition processing unit 26A, and connects the same vector as the extracted edge (extracted edge) through a different route. When there are alternative paths with the number of edges equal to or less than the predetermined number p, a process of deleting the extracted edges is performed. The predetermined condition is, for example, the determination condition of S402 in FIG.

図13は、削除処理部26Bにより実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理の前提として、既存ベクトルデータ42に含まれる多次元ベクトルデータには、1からnまでのベクトルIDが付与されているものとする(図7および図8のフローチャートが実行された後であれば、1〜mまでのベクトルIDが付与されてもよい)。フローチャートの中で使用する引数eは、1からnまで順に選択されて処理が実行される。   FIG. 13 is a flowchart illustrating an example of the flow of processing executed by the deletion processing unit 26B. As a premise of the processing of this flowchart, it is assumed that vector IDs 1 to n are assigned to the multidimensional vector data included in the existing vector data 42 (after the flowcharts of FIGS. 7 and 8 are executed). If so, vector IDs of 1 to m may be given). An argument e to be used in the flowchart is selected in order from 1 to n and the process is executed.

まず、削除処理部26Bは、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルの中からベクトルを一つ選択し、ベクトルfとする(S400)。次に、削除処理部26Bは、Rank{N(G,e),f}が所定数krを超えるか否かを判定する(S402)。Rank{N(G,e),f}とは、ベクトルfが、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルの中で、何番目にベクトルeに近いかを示す指標値である。また、所定数krは、例えば、所定数kp未満の値である。従って、「Rank{N(G,e),f}が所定数krを超えるか否かを判定する」処理は、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから、ベクトルeとの距離が他のベクトルとの比較において長いベクトルを抽出する処理である。Rank{N(G,e),f}が所定数krを超えない場合、S404〜S410の処理がスキップされる。   First, the deletion processing unit 26B selects one vector from vectors that are elements of the neighborhood vector N (G, e) of the vector e and sets it as a vector f (S400). Next, the deletion processing unit 26B determines whether Rank {N (G, e), f} exceeds a predetermined number kr (S402). Rank {N (G, e), f} is an index value indicating how many times the vector f is closest to the vector e among the vectors that are elements of the neighborhood vector N (G, e) of the vector e. It is. The predetermined number kr is a value less than the predetermined number kp, for example. Accordingly, the process of “determining whether Rank {N (G, e), f} exceeds a predetermined number kr” is performed from the vector that is an element of the neighborhood vector N (G, e) of the vector e to the vector e. Is a process of extracting a vector having a long distance compared to other vectors. When Rank {N (G, e), f} does not exceed the predetermined number kr, the processing of S404 to S410 is skipped.

Rank{N(G,e),f}が所定数krを超える場合、削除処理部26Bは、代替パスの探索開始ベクトルを選択し(S404)、探索開始ベクトルから先のパスを探索する(S406)。   When Rank {N (G, e), f} exceeds a predetermined number kr, the deletion processing unit 26B selects an alternative path search start vector (S404), and searches for a previous path from the search start vector (S406). ).

次に、削除処理部26Bは、エッジ数がp以下の代替パスが存在するか否かを判定する(S408)。エッジ数がp以下の代替パスが存在する場合、削除処理部26Bは、ベクトルeとベクトルfを接続するエッジ(e,f)をグラフインデックス44から削除する(S410)。   Next, the deletion processing unit 26B determines whether there is an alternative path with the number of edges equal to or less than p (S408). When there is an alternative path having the number of edges equal to or less than p, the deletion processing unit 26B deletes the edge (e, f) connecting the vector e and the vector f from the graph index 44 (S410).

図14は、エッジ数がp以下の代替パスが削除される様子を概念的に示す図である。図示の例では、ベクトルeとf(1)を接続するエッジ(e,f(1))、および、ベクトルeとf(2)を接続するエッジ(e,f(2))には、共に代替パスが存在する。エッジ(e,f(1))の代替パスのエッジ数は3であるのに対し、エッジ(e,f(2))の代替パスのエッジ数は4である。ここで、p=3とすると、エッジ(e,f(1))は削除可能、エッジ(e,f(2))は削除不可として扱われる。   FIG. 14 is a diagram conceptually illustrating a state where an alternative path having the number of edges of p or less is deleted. In the illustrated example, both the edge (e, f (1)) connecting the vectors e and f (1) and the edge (e, f (2)) connecting the vectors e and f (2) are both There is an alternate path. The number of edges of the alternative path of edge (e, f (1)) is 3, whereas the number of edges of the alternative path of edge (e, f (2)) is 4. Here, when p = 3, the edge (e, f (1)) is treated as erasable, and the edge (e, f (2)) is treated as irremovable.

次に、削除処理部26Bは、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択したか否かを判定する(S412)。ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択していない場合、S400に処理が戻される。一方、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択した場合、図13のフローチャートの処理が終了する。   Next, the deletion processing unit 26B determines whether all vectors have been selected from the vectors that are elements of the neighborhood vector N (G, e) of the vector e (S412). If not all vectors are selected from the vectors that are elements of the neighborhood vector N (G, e) of the vector e, the process returns to S400. On the other hand, when all the vectors are selected from the vectors that are elements of the neighborhood vector N (G, e) of the vector e, the processing of the flowchart of FIG. 13 ends.

係る処理によって、探索性能を考慮したエッジの削減をすることができる。この種の技術では、ベクトルにエッジが大量に付与されていると、かえって検索性能が低下してしまう。従って、比較的距離の長いエッジを優先的に削除することで、局所的な検索回数を低減し、検索処理を効率化することができる。ところが、距離の長いエッジを無制限に削除すると、迂回する経路が長くなることで、むしろ検索処理が非効率になってしまう場合がある。また、迂回する経路が存在しなくなり、検索できないベクトルが生じる場合もある。   With such processing, it is possible to reduce edges in consideration of search performance. In this type of technique, if a large number of edges are added to a vector, the search performance is rather degraded. Therefore, by preferentially deleting edges with a relatively long distance, the number of local searches can be reduced and the search process can be made more efficient. However, if an edge with a long distance is deleted indefinitely, the path to be detoured becomes long, and the search process may rather become inefficient. In addition, there is a case where there is no detour path and a vector that cannot be searched for is generated.

係る事情に鑑み、本実施形態の検索データ管理装置1では、そのエッジを削除した後に、同じベクトルに対して比較的少ないエッジ数で到達することができる場合にのみ、エッジを削除することとした。これによって、探索性能を考慮したエッジの削減をすることができ、エッジの数を適度に維持することができる。   In view of such circumstances, in the search data management device 1 of the present embodiment, after deleting the edge, the edge is deleted only when the same vector can be reached with a relatively small number of edges. . As a result, the number of edges can be reduced in consideration of search performance, and the number of edges can be maintained appropriately.

ここで、図13のフローチャートにおけるS404の処理において、探索開始ベクトルを選択する手法としては、以下のような手法が挙げられる。   Here, in the process of S <b> 404 in the flowchart of FIG. 13, as a technique for selecting a search start vector, the following technique may be mentioned.

(探索対象ノード選択手法1)
削除処理部26Bは、ベクトルeにエッジを介して接続されている全てのベクトルを、探索開始ベクトルとして網羅的に選択してもよい。これによって、エッジ数がp以下の代替パスを確実に発見することができる。
(Search target node selection method 1)
The deletion processing unit 26B may comprehensively select all vectors connected to the vector e via edges as search start vectors. As a result, an alternative path having the number of edges of p or less can be found with certainty.

(探索対象ノード選択手法2)
削除処理部26Bは、ベクトルeにエッジを介して接続されているベクトルのうち、ベクトルfに最も近いベクトルを探索開始ベクトルとして、代替パスの探索を開始してもよい。これによって、代替パスの探索処理の負荷を最も軽減することができる。
(Search target node selection method 2)
The deletion processing unit 26B may start a search for an alternative path using a vector closest to the vector f among vectors connected to the vector e via an edge as a search start vector. As a result, the load of the alternative path search process can be reduced most.

(探索対象ノード選択手法3)
削除処理部26Bは、ベクトルeにエッジを介して接続されているベクトルのうち、そのベクトルとベクトルfとの距離が、ベクトルeとベクトルfとの距離よりも短いベクトルを探索開始ベクトルとして、代替パスの探索を開始してもよい。これによって、代替パスの探索処理の負荷を軽減すると共に、(探索対象ノード選択手法2)よりも確実にエッジ数がp以下の代替パスを確実に発見することができる。
(Search target node selection method 3)
The deletion processing unit 26B substitutes, as a search start vector, a vector whose distance between the vector e and the vector f is shorter than the distance between the vector e and the vector f among the vectors connected to the vector e via an edge. Path searching may be started. As a result, the load of the alternative path search process can be reduced, and an alternative path having the number of edges equal to or less than p can be reliably detected as compared with (search target node selection method 2).

なお、いずれの手法においても、ベクトルeに付与されているエッジの中で、短いものから順にランクkrまでのエッジのみを使用してグラフの探索を行う(短いものから順にランクkrまでのエッジのみを探索開始ベクトルとする)。なぜなら、ランクkrよりも大きいエッジを含む代替パスが見つかったとしても、それ以降の削除処理により代替パス上の当該エッジが削除されてしまう可能性があるからである。   In any of the methods, the graph search is performed using only edges from the shortest one to the rank kr among the edges assigned to the vector e (only edges from the shortest to the rank kr in order). As a search start vector). This is because even if an alternative path including an edge larger than the rank kr is found, the edge on the alternative path may be deleted by subsequent deletion processing.

図15は、探索開始ベクトルを選択する手法を例示した図である。本図において、(探索対象ノード選択手法2)を採用する場合、ベクトル(8)のみが探索開始ベクトルとして選択される。一方、(探索対象ノード選択手法3)を採用する場合、ベクトル(8)、(9)、(10)が探索開始ベクトルとして選択される。   FIG. 15 is a diagram illustrating a method for selecting a search start vector. In this figure, when the (search target node selection method 2) is adopted, only the vector (8) is selected as the search start vector. On the other hand, when (search target node selection method 3) is adopted, vectors (8), (9), and (10) are selected as search start vectors.

いずれの場合にも、エッジ数がpに至った時点で、その経路の探索を終了することにより、処理負荷の増大を抑制することができる。削除処理部26Bは、探索開始ベクトルを起点として、その先のベクトルを網羅的に探索し、エッジ数がpに至るまでにベクトルfに到達できなかった場合、その探索開始ベクトルを起点としてエッジ数がp以下の代替パスを発見できなかったと判断し、その探索開始ベクトルからの探索を終了する。   In any case, when the number of edges reaches p, the search for the route is terminated, thereby suppressing an increase in processing load. The deletion processing unit 26B exhaustively searches the vector after the search start vector as a starting point, and when the vector f cannot be reached before the number of edges reaches p, the number of edges starting from the search start vector Is determined to have failed to find an alternative path equal to or less than p, and the search from the search start vector is terminated.

以上説明した実施形態の検索データ管理装置1によれば、検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータ(42、44)を記憶する記憶部(40)と、記憶部に記憶されたグラフ構造のデータから所定条件を満たす被抽出エッジを抽出し(図13のS402;エッジ(e,f))、被抽出エッジと同じ多次元ベクトルデータ同士(e、f)を、被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数(p)以下である代替パスが存在するか否かを判定し、存在すると判定した場合に、被抽出エッジをグラフ構造のデータから削除する削除処理部(26B)と、を備えることにより、探索性能を考慮したエッジの削減をすることができる。   According to the search data management device 1 of the embodiment described above, the storage unit (40) that stores the data (42, 44) of the graph structure in which the multidimensional vector data to be searched is connected by the edge, and the storage unit Extracted edges satisfying a predetermined condition are extracted from the stored graph structure data (S402 in FIG. 13; edges (e, f)), and the same multidimensional vector data (e, f) as the extracted edges are extracted. It is determined whether or not there is an alternative path having a number of edges equal to or less than a predetermined number (p) and connected by a route different from the extracted edge. By providing the deletion processing unit (26B) to be deleted, it is possible to reduce edges in consideration of search performance.

以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。   As mentioned above, although the form for implementing this invention was demonstrated using embodiment, this invention is not limited to such embodiment at all, In the range which does not deviate from the summary of this invention, various deformation | transformation and substitution Can be added.

1…検索データ管理装置、10…ネットワークインターフェース、20…制御部、22…ベクトルデータ生成部、24…インデックス検索部、26…グラフインデックス編集部、26A…新規作成・追加処理部、26B…削除処理部、30…入出力装置、40…データサーバ、42…既存ベクトルデータ、44…グラフインデックス DESCRIPTION OF SYMBOLS 1 ... Search data management apparatus, 10 ... Network interface, 20 ... Control part, 22 ... Vector data generation part, 24 ... Index search part, 26 ... Graph index edit part, 26A ... New creation / addition process part, 26B ... Deletion process Part, 30 ... I / O device, 40 ... data server, 42 ... existing vector data, 44 ... graph index

Claims (9)

検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータを記憶する記憶部と、
前記記憶部に記憶されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出し、
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する削除処理部と、
を備える検索データ管理装置。
A storage unit for storing data of a graph structure in which multidimensional vector data to be searched is connected by edges;
Extracting the extracted edge that is an edge satisfying a predetermined condition from the data of the graph structure stored in the storage unit,
Connecting the same multi-dimensional vector data as the extracted edge with a path different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
A deletion processing unit for deleting the extracted edge from the data of the graph structure when it is determined that it exists,
A search data management device comprising:
前記所定条件は、ある多次元ベクトルデータに接続された複数のエッジの中で、接続する多次元ベクトルデータ間の距離が、他のエッジとの比較において長いことである、
請求項1記載の検索データ管理装置。
The predetermined condition is that, among a plurality of edges connected to certain multidimensional vector data, a distance between connected multidimensional vector data is long in comparison with other edges.
The search data management device according to claim 1.
前記所定条件は、ある多次元ベクトルデータに接続された複数のエッジの中で、接続する多次元ベクトルデータ間の距離が短い順にランク付けした場合に、所定順位以下であることである、
請求項1または2記載の検索データ管理装置。
The predetermined condition is that, when a plurality of edges connected to certain multidimensional vector data are ranked in ascending order of distance between connected multidimensional vector data, the predetermined condition is lower than a predetermined order.
The search data management device according to claim 1 or 2.
前記削除処理部は、前記代替パスを探索する際に、前記被抽出エッジにより接続された多次元ベクトルデータのうち一方の多次元ベクトルデータに接続された多次元ベクトルデータの中で、前記被抽出エッジにより接続された多次元ベクトルデータのうち他方の多次元ベクトルデータに最も近い多次元ベクトルデータを、探索開始ベクトルとする、
請求項1から3のうちいずれか1項記載の検索データ管理装置。
The deletion processing unit, when searching for the alternative path, among the multidimensional vector data connected to one multidimensional vector data among the multidimensional vector data connected by the extracted edge, The multidimensional vector data closest to the other multidimensional vector data among the multidimensional vector data connected by the edge is set as a search start vector.
The search data management device according to any one of claims 1 to 3.
前記削除処理部は、前記代替パスを探索する際に、前記被抽出エッジにより接続された多次元ベクトルデータのうち一方の多次元ベクトルデータに接続された多次元ベクトルデータの中で、前記一方の多次元ベクトルデータよりも、前記被抽出エッジにより接続された多次元ベクトルデータのうち他方の多次元ベクトルデータに近い多次元ベクトルデータを、探索開始ベクトルとする、
請求項1から3のうちいずれか1項記載の検索データ管理装置。
The deletion processing unit, when searching for the alternative path, among the multidimensional vector data connected to one multidimensional vector data among the multidimensional vector data connected by the extracted edge, The multidimensional vector data closer to the other multidimensional vector data among the multidimensional vector data connected by the extracted edge than the multidimensional vector data is set as a search start vector.
The search data management device according to any one of claims 1 to 3.
複数の多次元ベクトル間の距離に基づいて、着目する多次元ベクトルにエッジを介して接続された他の多次元ベクトルの数を所定数に制限する手法により、前記グラフ構造のデータを作成する作成部を更に備える、
請求項1から5のうちいずれか1項記載の検索データ管理装置。
Creation of the graph structure data based on the distance between multiple multidimensional vectors, by limiting the number of other multidimensional vectors connected to the target multidimensional vector via edges to a predetermined number Further comprising
The search data management device according to any one of claims 1 to 5.
他装置から受信したクエリデータの特徴データとして多次元ベクトルデータを生成する生成部と、
前記生成部により生成された多次元ベクトルデータと、前記グラフ構造のデータとに基づいて、前記生成部により生成された多次元ベクトルデータに類似する多次元ベクトルデータを抽出し、前記他装置に返信する検索部を更に備える、
請求項1から6のうちいずれか1項記載の検索データ管理装置。
A generating unit that generates multidimensional vector data as feature data of query data received from another device;
Based on the multidimensional vector data generated by the generation unit and the data of the graph structure, multidimensional vector data similar to the multidimensional vector data generated by the generation unit is extracted and returned to the other device Further comprising a search unit for
The search data management device according to any one of claims 1 to 6.
検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出し、
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する、
検索データ管理方法。
Extract the extracted edge, which is the edge that satisfies the predetermined condition, from the data of the graph structure in which the multidimensional vector data to be searched is connected by the edge,
Connecting the same multi-dimensional vector data as the extracted edge with a path different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
If it is determined that it exists, the extracted edge is deleted from the data of the graph structure;
Search data management method.
コンピュータに、
検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出させ、
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定させ、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除させる、
検索データ管理プログラム。
On the computer,
From the data of the graph structure in which the multidimensional vector data to be searched is connected by the edge, the extracted edge that is an edge satisfying a predetermined condition is extracted,
Connecting the same multi-dimensional vector data as the extracted edge with a route different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
When it is determined that it exists, the extracted edge is deleted from the data of the graph structure.
Search data management program.
JP2016104827A 2016-05-26 2016-05-26 SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM Active JP6333306B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016104827A JP6333306B2 (en) 2016-05-26 2016-05-26 SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016104827A JP6333306B2 (en) 2016-05-26 2016-05-26 SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM

Publications (2)

Publication Number Publication Date
JP2017211846A true JP2017211846A (en) 2017-11-30
JP6333306B2 JP6333306B2 (en) 2018-05-30

Family

ID=60475800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016104827A Active JP6333306B2 (en) 2016-05-26 2016-05-26 SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM

Country Status (1)

Country Link
JP (1) JP6333306B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019125078A (en) * 2018-01-15 2019-07-25 ヤフー株式会社 Information processor and information processing method and program

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090351A (en) * 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP2011090352A (en) * 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP2012133522A (en) * 2010-12-21 2012-07-12 Yahoo Japan Corp Graph index reconstruction device
US20130230255A1 (en) * 2012-03-02 2013-09-05 Microsoft Corporation Image Searching By Approximate k-NN Graph
JP2014146280A (en) * 2013-01-30 2014-08-14 Nippon Telegr & Teleph Corp <Ntt> Association calculation device, association calculation system, association calculation method, and association calculation program
US20160117413A1 (en) * 2014-10-22 2016-04-28 International Business Machines Corporation Node relevance scoring in linked data graphs

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090351A (en) * 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP2011090352A (en) * 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP2012133522A (en) * 2010-12-21 2012-07-12 Yahoo Japan Corp Graph index reconstruction device
US20130230255A1 (en) * 2012-03-02 2013-09-05 Microsoft Corporation Image Searching By Approximate k-NN Graph
JP2014146280A (en) * 2013-01-30 2014-08-14 Nippon Telegr & Teleph Corp <Ntt> Association calculation device, association calculation system, association calculation method, and association calculation program
US20160117413A1 (en) * 2014-10-22 2016-04-28 International Business Machines Corporation Node relevance scoring in linked data graphs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019125078A (en) * 2018-01-15 2019-07-25 ヤフー株式会社 Information processor and information processing method and program

Also Published As

Publication number Publication date
JP6333306B2 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
US10102227B2 (en) Image-based faceted system and method
JP5226401B2 (en) Apparatus and method for supporting retrieval of document data
US8577881B2 (en) Content searching and configuration of search results
US20100169326A1 (en) Method, apparatus and computer program product for providing analysis and visualization of content items association
US20150234927A1 (en) Application search method, apparatus, and terminal
US10394839B2 (en) Crowdsourcing application history search
WO2015026667A1 (en) Generating cache query requests
CN110362727A (en) Third party for search system searches for application
CN109471838B (en) Directory document operation method and device, electronic equipment and readable storage medium
AU2017268599B2 (en) Method, device, server and storage medium of searching a group based on social network
WO2017181866A1 (en) Making graph pattern queries bounded in big graphs
WO2019057191A1 (en) Content retrieval method, terminal and server, electronic device and storage medium
JP5264813B2 (en) Evaluation apparatus, evaluation method, and evaluation program
US9300712B2 (en) Stream processing with context data affinity
CN108319628B (en) User interest determination method and device
WO2017095413A1 (en) Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors
US9465658B1 (en) Task distribution over a heterogeneous environment through task and consumer categories
CN109886300A (en) A kind of user&#39;s clustering method, device and equipment
WO2017065795A1 (en) Incremental update of a neighbor graph via an orthogonal transform based indexing
JP6333306B2 (en) SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM
JP2018156458A (en) Creation device, creation method, and creation program
CN109213972B (en) Method, device, equipment and computer storage medium for determining document similarity
JP2006338508A (en) Relevant content searching device and method
WO2017095421A1 (en) Automatic selection of neighbor lists to be incrementally updated
US20150134671A1 (en) Method and apparatus for data distribution and concurrence

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171013

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171013

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180312

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: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333306

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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