JP6311000B1 - 生成装置、生成方法、及び生成プログラム - Google Patents

生成装置、生成方法、及び生成プログラム Download PDF

Info

Publication number
JP6311000B1
JP6311000B1 JP2016245975A JP2016245975A JP6311000B1 JP 6311000 B1 JP6311000 B1 JP 6311000B1 JP 2016245975 A JP2016245975 A JP 2016245975A JP 2016245975 A JP2016245975 A JP 2016245975A JP 6311000 B1 JP6311000 B1 JP 6311000B1
Authority
JP
Japan
Prior art keywords
information
centroid
vector
generation
partial
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
JP2016245975A
Other languages
English (en)
Other versions
JP2018101225A (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 JP2016245975A priority Critical patent/JP6311000B1/ja
Priority to US15/810,455 priority patent/US10671663B2/en
Application granted granted Critical
Publication of JP6311000B1 publication Critical patent/JP6311000B1/ja
Publication of JP2018101225A publication Critical patent/JP2018101225A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】近傍検索における効率的な検索を可能にするセントロイド情報を生成する。【解決手段】本願に係る生成装置は、取得部と、生成部とを有する。取得部は、近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する。生成部は、取得部により取得された複数のベクトル情報に基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する。【選択図】図3

Description

本発明は、生成装置、生成方法、及び生成プログラムに関する。
従来、ベクトル量子化によるベクトルデータの検索に関する技術が提供されている。例えば、ベクトルをコードブックにより量子化する技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。
特開2013−175181号公報
Equal frequency binning、IBM、[online]、[平成28年12月8日検索]、インターネット<URL:http://www.ibm.com/support/knowledgecenter/SSWLVY_1.0.0/com.ibm.spss.analyticcatalyst.help/analytic_catalyst/equal_frequency_binning.html> 岩崎雅二郎 "木構造型インデックスを利用した近似k最近傍グラフによる近傍検索", 情報処理学会論文誌, 2011/2, Vol. 52, No. 2. pp.817-828.
しかしながら、上記の従来技術では、近傍検索における効率的な検索を可能にするセントロイド情報を生成することが難しい場合がある。例えば、ベクトルをコードブックにより量子化するだけでは、セントロイドの個数が増大した場合にセントロイドの検索に要する処理時間も増大し、検索の処理時間を抑制することが難しい。このような場合、クエリに対する検索を効率的に行うことが難しい場合がある。
本願は、上記に鑑みてなされたものであって、近傍検索における効率的な検索を可能にするセントロイド情報を生成する生成装置、生成方法、及び生成プログラムを提供することを目的とする。
本願に係る生成装置は、近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する取得部と、前記取得部により取得された複数のベクトル情報に基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する生成部と、を備えたことを特徴とする。
実施形態の一態様によれば、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができるという効果を奏する。
図1は、実施形態に係る生成処理の一例を示す図である。 図2は、実施形態に係る生成システムの構成例を示す図である。 図3は、実施形態に係る生成装置の構成例を示す図である。 図4は、実施形態に係るセントロイド情報記憶部の一例を示す図である。 図5は、実施形態に係る第2インデックス情報記憶部の一例を示す図である。 図6は、実施形態に係る生成処理の一例を示すフローチャートである。 図7は、実施形態に係るクエリに対応する情報の提供の一例を示す図である。 図8は、実施形態に係る第2インデックス情報の生成処理の一例を示す図である。 図9は、実施形態に係る第2インデックス情報の利用の一例を示す図である。 図10は、実施形態に係るベクトルの分割の一例を示す図である。 図11は、実施形態に係る第1インデックス情報の概念図を示す図である。 図12は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.生成処理〕
図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、生成装置100(図3参照)が与えられた複数のベクトル情報について、セントロイド情報を生成する場合を示す。なお、対象とする情報は、ベクトルとして表現可能であれば、どのような情報であってもよい。なお、以下では、画像情報を対象としたベクトル情報について説明するが、ベクトル情報の対象は、動画情報や音声情報等の他の対象であってもよい。
図1の例では、数百万〜数億単位の画像情報に対応するベクトル情報を対象にするが、図面においてはその一部のみを図示する。なお、図1の例では、ベクトルからセントロイドを選択し、セントロイド情報を生成する場合を示す。また、以下では、画像情報に対応するベクトルデータ自体を示す場合、「ベクトルデータ」と記載し、画像情報に対応する各ベクトルデータを識別する情報を示す場合、「ベクトル識別情報」と記載する。すなわち、ここでいう、ベクトルデータは、N次元の高次元ベクトルを意味し、ベクトル識別情報は、ベクトルID等の各ベクトルを識別する情報を意味する。例えば、図1に示す例において、ベクトル識別情報V11と記載した場合、ベクトルID「V11」を意味する。また、ベクトルデータであるかベクトル識別情報であるかを特に区別せずに説明する場合は「ベクトル」や「ベクトル情報」と記載する。
また、以下では、「ベクトルV*(*は任意の数値)」と記載した場合、そのベクトルはベクトルID「V*」により識別されるベクトルであることを示す。例えば、「ベクトルV1」と記載した場合、そのベクトルはベクトルID「V1」により識別されるベクトルである。また、「セントロイドV*(*は任意の数値)」と記載した場合、そのセントロイドはセントロイドID「V*」により識別されるセントロイドであることを示す。例えば、「セントロイドV6」と記載した場合、そのセントロイドはセントロイドID「V6」により識別されるセントロイド(ベクトル)である。
まず、図1に示すように、生成装置100は、画像情報に各々対応するベクトル情報を取得する(ステップS11)。図1の例では、生成装置100は、空間情報GR11等に示すようにベクトル識別情報V1〜V1100等により各々識別される複数のベクトル情報を取得する。例えば、生成装置100は、ベクトル識別情報V1〜V1100等を含む多数のベクトル情報を取得する。
図1に示す例においては、取得した各ベクトル情報を「○」にベクトル識別情報を付すことにより表現する。例えば、ベクトルID「V111」により識別されるベクトルは、空間情報GR11中の左上の「○」点として表現する。例えば、図1に示す例において、各ベクトルデータは、N次元の実数値ベクトルである。
なお、図1中の空間情報GR11や空間情報GR12は、ユークリッド空間であってもよい。また、図1に示す空間情報GR11、GR12は、各ベクトル間の距離等の説明のための概念的な図である。多次元空間となる。なお、例えば、図1に示す空間情報GR11は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。
本実施形態においては、空間情報GR11、GR12における各ベクトルの距離を対応する各画像間の類似度とする。ここで、図1に示す例においては、空間情報GR11、GR12における各ベクトル間の距離が小さい画像同士の類似度が高く、空間情報GR11、GR12における各ベクトル間の距離が大きい画像同士の類似度が低い。例えば、図1中の空間情報GR11、GR12において、ベクトルID「V6」により識別されるベクトル情報と、ベクトルID「V34」により識別されるベクトル情報とは近接している、すなわち距離が小さい。そのため、ベクトルID「V6」により識別されるベクトル情報に対応する画像と、ベクトルID「V34」により識別されるベクトル情報に対応する画像とは類似度が高いことを示す。また、例えば、図1中の空間情報GR11、GR12において、ベクトルID「V6」により識別されるベクトル情報と、ベクトルID「V111」により識別されるベクトル情報とは遠隔にある、すなわち距離が大きい。そのため、ベクトルID「V6」により識別されるベクトル情報に対応する画像と、ベクトルID「V111」により識別されるベクトル情報に対応する画像とは類似度が低いことを示す。
その後、生成装置100は、セントロイド情報を生成する(ステップS12)。図1の例では、生成装置100は、ベクトル識別情報V1〜V1100等により各々識別される複数のベクトルから、セントロイドとするベクトルを選択することによりセントロイド情報を生成する。なお、以下では、セントロイドとして選択されたベクトルを「セントロイド」と記載する場合がある。
ここで、図1の例では、生成装置100は、セントロイドとして選択されたベクトルとの間の位置に応じて、各ベクトルをセントロイドのいずれかに対応付ける。例えば、生成装置100は、セントロイドとして選択されたベクトル以外の各ベクトルを各セントロイド間の距離に応じて、クラスタリングする。例えば、生成装置100は、各ベクトルを最も距離が近接するセントロイドに対応するクラスタに分類する。
概念的には、生成装置100は、例えば、図1中の空間情報GR12に示すように、各セントロイドを母点とし、母点から他の点がいずれの母点に近いかによって領域を分割する。図1中の例では、生成装置100は、境界LNにより空間情報GR12を領域AR1〜AR11のように分割する。例えば、図1中の空間情報GR12における領域AR1には、ベクトル識別情報V1により識別されるベクトル(セントロイド)やベクトル識別情報V4、V25、V32、V41、V87の各々により識別されるベクトル等が含まれる。図1の例では、ベクトル識別情報V4、V25、V32、V41、V87の各々により識別されるベクトルは、ベクトル識別情報V1により識別されるセントロイドに最も近接していることを示す。例えば、ベクトル識別情報V4、V25、V32、V41、V87の各々により識別されるベクトルに対応する画像は、各セントロイドのうち、ベクトル識別情報V1により識別されるセントロイドに対応する画像に類似していることを示す。この場合、生成装置100は、セントロイドIDとしてのベクトル識別情報V1により識別されるセントロイドにベクトル識別情報V4、V25、V32、V41、V87を対応付ける。
ここで、生成装置100は、各セントロイドに対応付けられるベクトルの数の差が所定値以内になるような複数のセントロイド情報を生成する。例えば、生成装置100は、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイド情報を生成する。以下では、この点を説明するために、空間情報GR11、GR12に含まれるベクトルの数は少数の1100個であり、生成するセントロイドは11個であるものとする。なお、上述したように、ベクトルの数は数億単位であってもよい。また、セントロイドの個数は、ベクトルの数に基づいて選択(決定)されてもよいし、所定の設定値に基づいて選択(決定)されてもよい。
例えば、生成装置100は、ランダムサンプリングを行うことによりベクトル識別情報の数の差が所定値以内になるような複数のセントロイド情報を生成する。例えば、生成装置100は、ランダムサンプリングを行ってセントロイドを選択し、選択されたセントロイドに基づいて各ベクトルをクラスタリングすることにより、各セントロイドに対応付けられるベクトルの数の差が所定値以内になるような複数のセントロイド情報を生成する。上記のように、空間情報GR12に含まれるベクトルの数が1100個であり、生成するセントロイドは11個である場合、各セントロイドに対応付けられるベクトルの数が99個になるように、複数のセントロイド情報を生成する。
例えば、生成装置100は、所定の回数ランダムサンプリングを行い、各クラスタに含まれるベクトルの数の差が最も小さくベクトルがクラスタリングされるセントロイドの組合せに基づいて、複数のセントロイド情報を生成する。例えば、生成装置100は、所定の回数ランダムサンプリングを行い、最も均等にベクトルがクラスタリングされるセントロイドの組合せに基づいて、複数のセントロイド情報を生成する。また、例えば、生成装置100は、最も均等にベクトルがクラスタリングされるセントロイドの組合せのうち、平均値からの乖離が大きいセントロイドを近接する他のベクトルに変更することにより、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイド情報を生成してもよい。また、例えば、生成装置100は、各クラスタに含まれるベクトルの数の差が所定値(例えば、5や10等)以下になった場合、ランダムサンプリングを終了し、そのセントロイドの組合せに基づいて、複数のセントロイド情報を生成してもよい。例えば、生成装置100は、最多のベクトルが含まれるクラスタと最少のベクトルが含まれるクラスタとの差が所定値(例えば、1や50等)以下になった場合、ランダムサンプリングを終了し、そのセントロイドの組合せに基づいて、複数のセントロイド情報を生成してもよい。また、例えば、生成装置100は、各クラスタに含まれるベクトルの数の差が「0」、すなわち各クラスタに含まれるベクトルの数が同一になった場合、ランダムサンプリングを終了し、そのセントロイドの組合せに基づいて、複数のセントロイド情報を生成してもよい。
なお、上記は一例であり、生成装置100は、各セントロイドに対応付けられるベクトルの数の差が所定値以内になるように複数のセントロイド情報を生成可能であれば、どのような情報や技術を用いてセントロイド情報を生成してもよい。例えば、生成装置100は、種々の従来技術等を適宜用いたり組み合わせたりして、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイド情報を生成してもよい。例えば、生成装置100は、非特許文献1に開示されるようなEqual frequency binningの技術を用いて、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイド情報を生成してもよい。
図1の例では、生成装置100は、図1中の空間情報GR12に示すように、ベクトル識別情報V1、V2、V5、V6、V10、V11、V36、V79、V86、V95、V111をセントロイドとするセントロイド情報を生成する。図1中では、各セントロイドに対応する領域AR1〜AR11の各々に5個のベクトルを図示するが、領域AR1〜AR11の各々には99個のベクトルが位置するものとする。このように、生成装置100は、セントロイドとなるベクトル識別情報V1、V2、V5、V6、V10、V11、V36、V79、V86、V95、V111の各々に対応付けられるベクトルが均等になるように複数のセントロイド情報を生成してもよい。例えば、セントロイドに割り当てられたベクトル数が多い場合には近傍ではないベクトルが結果となり、少ない場合には近傍が検索できなくなる。したがって、適切なベクトル数が均等であると性能が向上する。特にk最近傍検索の場合は検索結果数が一定なので、均等にする効果が高い。
例えば、生成装置100は、セントロイド情報記憶部122に示すような複数のセントロイド情報を生成する。例えば、生成装置100は、空間情報GR12中の領域AR1に対応するセントロイドを識別するベクトル識別情報V1をセントロイドIDとし、ベクトル識別情報V1により識別されるベクトル情報をセントロイド情報としてセントロイド情報記憶部122に格納する。具体的には、生成装置100は、空間情報GR12中の領域AR1に対応するセントロイドを識別するベクトル識別情報V1をセントロイドIDとし、ベクトル識別情報V1により識別されるベクトル情報とを組み合わせたセントロイド情報を生成し、セントロイド情報記憶部122に格納する。例えば、生成装置100は、ベクトル識別情報V1により識別されるベクトル(ベクトルV1)のベクトルデータ「10,24,54,2・・・」をセントロイド情報記憶部122に格納する。
例えば、生成装置100は、空間情報GR12中の領域AR6に対応するセントロイドを識別するベクトル識別情報V6をセントロイドIDとし、ベクトル識別情報V6により識別されるベクトル情報をセントロイド情報としてセントロイド情報記憶部122に格納する。具体的には、生成装置100は、セントロイドID「V6」と、ベクトル識別情報V6により識別されるベクトルデータであって、「32,1,120,31・・・」となるN次元のベクトル情報とを組み合わせたセントロイド情報を生成し、セントロイド情報記憶部122に格納する。
そして、生成装置100は、各セントロイドに対応付けられたベクトルに基づいて第2インデックス情報を生成する(ステップS13)。例えば、生成装置100は、各セントロイドに対応する領域AR1〜AR11の各々に含まれるベクトルを識別する情報をセントロイドIDに対応付けた第2インデックス情報を生成する。例えば、生成装置100は、セントロイドID「V1」に対応付けてベクトル識別情報V4、V25、V32、V41、V87を第2インデックス情報記憶部123に格納する。このように、生成装置100は、セントロイドにベクトルを識別する情報が対応付けられた、いわゆる転置インデックス情報を生成することにより、セントロイドが特定された場合に類似するベクトルの検索を高速化することができる。なお、類似するベクトルの検索時には近傍の複数のセントロイドを特定しても良い。
上述したように、生成装置100は、各セントロイドに対応付けられるベクトルの数の差が所定値以内になるように複数のセントロイドを生成し、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイドを生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。例えば、生成装置100が生成したセントロイド情報により、クエリに対応するセントロイドを特定することができるため、そのセントロイドに対応付けられたベクトルを検索結果とすることにより、近傍検索における効率的な検索を可能にすることができる。また、生成装置100は、上述した処理以外にも他の情報の生成処理を行ったり、生成した情報を用いてクエリに対する情報提供を行なったりするが、それらの点についての詳細は後述する。
また、上述したように、生成装置100は、全ベクトルデータのうち、セントロイドとなるもののベクトルデータのみをセントロイド情報記憶部122等の記憶部120(図3参照)に格納し、他のベクトルデータについては記憶部120に格納しない。言い換えると、生成装置100は、セントロイド以外のベクトルについてはベクトル識別情報のみを第2インデックス情報記憶部123に格納する。これにより、生成装置100は、格納するベクトル情報のデータ量を抑制しつつ、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
〔1−1.第1インデックス〕
また、生成装置100は、クエリを取得した際に対応するセントロイドを特定するために用いる第1インデックス情報を生成する。例えば、生成装置100は、高次元ベクトルを検索する検索インデックスを第1インデックス情報として生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
また、例えば、生成装置100は、非特許文献2に記載されるようなグラフ型の検索インデックスに関する情報を第1インデックス情報として生成してもよい。また、例えば、生成装置100は、ツリー構造(木構造)に関する検索インデックスを第1インデックス情報として生成してもよい。例えば、生成装置100は、kd木(k-dimensional tree)に関する検索インデックスを第1インデックス情報として生成してもよい。例えば、生成装置100は、VP木(vantage-point tree)に関する検索インデックスを第1インデックス情報として生成してもよい。このように、生成装置100は、複数のセントロイド情報に関する木構造型のインデックス、グラフ構造型のインデックスを第1インデックス情報として生成してもよい。また、例えば、生成装置100は、転置インデックスを第1インデックス情報として生成してもよい。
また、例えば、生成装置100は、図11に示すような、その他の木構造を有する第1インデックス情報ST11として生成してもよい。図11は、実施形態に係る第1インデックス情報の概念図を示す図である。例えば、生成装置100は、図11に概念的に示すような第1インデックス情報を第1インデックス情報記憶部121に記憶してもよい。また、例えば、生成装置100は、高次元データを検索できるハッシュ型などその他のインデックスを第1インデックス情報として用いてもよい。例えば、生成装置100は、高次元データを検索できるハッシュ型などその他のインデックスを第1インデックス情報として第1インデックス情報記憶部121に記憶してもよい。
図11中の第1インデックス情報ST11は、ルートRT1やノードND1、ND2やセントロイドCN1、CN2等を含む。図1の例では、例えば、セントロイドCN1、CN2は、ベクトルV36やベクトルV111であってもよい。また、図11中には、第1インデックス情報ST11以外の情報である検索クエリQE11が図示されており、例えば、生成装置100は、第1インデックス情報ST11を用いて、検索クエリQE11に最も近いセントロイドを特定する。例えば、生成装置100は、第1インデックス情報ST11を上から下(例えばルートRT1からセントロイド)へ辿ることにより、検索クエリQE11の近傍候補となるセントロイドを特定してもよい。
なお、上述したような複数のセントロイド情報に関する木構造やグラフ型の検索インデックスは一例であり、生成装置100は、クエリに対応するセントロイド情報を高速に特定することが可能であれば、どのようなデータ構造の第1インデックス情報を生成してもよい。例えば、生成装置100は、クエリに対応するセントロイド情報を高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、第1インデックス情報を生成してもよい。例えば、生成装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造の第1インデックス情報を生成してもよい。
〔1−2.動的な生成〕
なお、上述した例では、ベクトル情報を取得する場合を示したが、生成装置100は、ベクトル情報を順次取得する場合であっても上述したような処理を行ってもよい。例えば、生成装置100は、ベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。このような処理により、生成装置100は、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
例えば、生成装置100は、上述したようにセントロイドが所定の閾値に達するまで取得したベクトルを順次セントロイドとすることにより、ランダムサンプリングと同様のセントロイドの選択を行うことができる。例えば、多くの応用形態においては入力データ順が無作為である場合が多く、結果的にランダムサンプリングと同様になる場合が多いからである。例えば、生成装置100は、セントロイドの数を10万と設定した場合、全ベクトル数が10万に達するまで、追加されるベクトルを順次セントロイドとする。この場合、生成装置100は、ベクトル数が10万に達するまで、追加されたベクトルが全てセントロイドとされるため、クエリを取得した場合、上述した第1インデックス情報に基づいてセントロイド(ベクトル)を特定することができる。また、生成装置100は、ベクトル数が10万を超えた場合、追加されたベクトルをセントロイドのいずれかに対応付けるため、クエリを取得した場合、セントロイドが特定された後、上述した第2インデックス情報に基づいてベクトルを特定することができる。
〔2.生成システムの構成〕
図2に示すように、生成システム1は、端末装置10と、情報提供装置50と、生成装置100とが含まれる。端末装置10と、情報提供装置50と、生成装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る生成システムの構成例を示す図である。なお、図2に示した生成システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の生成装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図7に示す例においては、端末装置10がノート型PCである場合を示す。
情報提供装置50は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくベクトル識別情報が格納される。例えば、情報提供装置50は、ユーザ等に画像検索サービスを提供する情報処理装置である。例えば、情報提供装置50は、画像検索サービスを提供するための各情報が格納される。例えば、情報提供装置50は、画像検索サービスの対象となる画像に対応するベクトル情報を生成装置100に提供する。また、情報提供装置50は、クエリを生成装置100に送信することにより、生成装置100からクエリに対応する画像を示すベクトル識別情報等を受信する。
生成装置100は、複数のベクトル情報に基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する。例えば、生成装置100は、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成する。また、本実施形態において生成装置100は、クエリを取得した場合、生成した情報に基づいて、クエリに対応するベクトル識別情報を提供する。なお、生成装置100は、情報提供装置50等の種々の外部装置から収集したベクトル情報に基づいてセントロイド情報を生成してもよい。
〔3.生成装置の構成〕
次に、図3を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、端末装置10との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、第1インデックス情報記憶部121と、セントロイド情報記憶部122と、第2インデックス情報記憶部123とを有する。なお、図示を省略するが、第1インデックス情報記憶部121には、上述した第1インデックスに関する各種情報が記憶される。
(セントロイド情報記憶部122)
実施形態に係るセントロイド情報記憶部122は、セントロイドに関する各種情報を記憶する。例えば、セントロイド情報記憶部122は、セントロイドIDやベクトルデータを記憶する。図4は、実施形態に係るセントロイド情報記憶部の一例を示す図である。図4に示すセントロイド情報記憶部122は、「セントロイドID」、「ベクトルデータ」といった項目が含まれる。
「セントロイドID」は、セントロイドを識別するための識別情報を示す。また、「ベクトルデータ」は、セントロイドIDにより識別されるセントロイド(ベクトル)に対応するベクトルデータを示す。
例えば、図4に示す例においては、セントロイド情報記憶部122には、セントロイドID「V1」により識別されるセントロイド(ベクトル)に対応するベクトルデータは、「10,24,54,2・・・」のN次元ベクトルであることを示す。
また、例えば、図4に示す例においては、セントロイド情報記憶部122には、セントロイドID「V6」により識別されるセントロイド(ベクトル)に対応するベクトルデータは、「32,1,120,31・・・」のN次元ベクトルであることを示す。
なお、セントロイド情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(第2インデックス情報記憶部123)
実施形態に係る第2インデックス情報記憶部123は、セントロイド情報記憶部122に記憶された各セントロイドに対応付けられたベクトルを識別する各種情報を記憶する。図5は、実施形態に係る第2インデックス情報記憶部の一例を示す図である。図5の例では、第2インデックス情報記憶部123は、「セントロイドID」、「ベクトルID」といった項目が含まれる。
「セントロイドID」は、セントロイドを識別するための識別情報を示す。また、「ベクトルID」は、セントロイドIDにより識別されるセントロイド(ベクトル)に対応付けられたベクトルを示す。
例えば、図4に示す例においては、第2インデックス情報記憶部123には、セントロイドID「V1」により識別されるセントロイド(ベクトル)に対応付けられたベクトルは、ベクトル識別情報V4、V25、V32、V41、V87等により各々識別されるベクトルであることを示す。
また、例えば、図4に示す例においては、第2インデックス情報記憶部123には、セントロイドID「V6」により識別されるセントロイド(ベクトル)に対応付けられたベクトルは、ベクトル識別情報V9、V12、V34、V54、V85等により各々識別されるベクトルであることを示す。
なお、第2インデックス情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、生成部132と、抽出部133と、提供部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、セントロイド情報記憶部122、第2インデックス情報記憶部123等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。
例えば、取得部131は、検索対象の各々に対応する複数のベクトル識別情報を取得する。例えば、取得部131は、情報提供装置50から各ベクトル識別情報に関する情報を取得してもよい。例えば、取得部131は、複数のベクトル識別情報を異なるタイミングで取得してもよい。例えば、取得部131は、画像情報が検索対象として追加されたタイミングで、その画像情報に対応するベクトル識別情報を取得してもよい。
例えば、取得部131は、検索クエリに関する情報を取得する。例えば、取得部131は、画像検索に関する検索クエリを取得する。図7の例では、取得部131は、ユーザU1が利用する端末装置10からクエリを受け付けた情報提供装置50からクエリを取得する。
図1の例では、取得部131は、画像情報に各々対応するベクトル情報を取得する。図1の例では、取得部131は、空間情報GR11等に示すようにベクトル識別情報V1〜V1100等により各々識別される複数のベクトル情報を取得する。例えば、取得部131は、ベクトル識別情報V1〜V1100等を含む多数のベクトル情報を取得する。
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、複数のベクトル情報に基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成する。例えば、生成部132は、複数のベクトル情報から所定の条件に基づいてベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。例えば、生成部132は、複数のベクトル情報から、ランダムサンプリングにより選択されたベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。
例えば、生成部132は、取得部131がベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。例えば、生成部132は、ベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。
例えば、生成部132は、所定の検索要求に対して、セントロイド情報の特定に用いる第1インデックス情報を生成する。例えば、生成部132は、高次元ベクトルを検索する検索インデックスを第1インデックス情報として生成する。例えば、生成部132は、複数のセントロイド情報に関する木構造型のインデックス、または、グラフ構造型のインデックスを第1インデックス情報として生成する。
例えば、生成部132は、各セントロイド情報と、当該各セントロイド情報に対応付けられたベクトル情報とを示す第2インデックス情報を生成する。例えば、生成部132は、各セントロイド情報に対応付けられたベクトル情報を特定する転置インデックスを第2インデックス情報として生成する。
例えば、生成部132は、各ベクトル情報を分割した各部分ベクトルを量子化するベクトル量子化に基づいて、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成する。例えば、生成部132は、各セントロイド情報に対応する領域に含まれるベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。例えば、生成部132は、各セントロイド情報に対応する領域に含まれるベクトル情報に関する残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。例えば、生成部132は、各セントロイド情報と、当該各セントロイド情報に対応する領域に含まれるベクトル情報により生成される残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。例えば、生成部132は、各部分領域の部分セントロイド情報と、当該各部分領域内に含まれるベクトル情報とを対応付けた対応付情報を生成する。例えば、生成部132は、各セントロイド情報と、当該各セントロイド情報の各部分領域内に対応する各部分セントロイド情報とにより生成される残差ベクトル情報に基づいて、対応付情報を生成する。
図1の例では、生成部132は、所定の回数ランダムサンプリングを行い、最も均等にベクトルがクラスタリングされるセントロイドの組合せに基づいて、複数のセントロイド情報を生成する。また、例えば、生成部132は、最も均等にベクトルがクラスタリングされるセントロイドの組合せのうち、平均値からのかい離が大きいセントロイドを近接する他のベクトルに変更することにより、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイド情報を生成してもよい。
図1の例では、生成部132は、図1中の空間情報GR12に示すように、ベクトル識別情報V1、V2、V5、V6、V10、V11、V36、V79、V86、V95、V111をセントロイドとするセントロイド情報を生成する。例えば、生成部132は、セントロイド情報記憶部122に示すような複数のセントロイド情報を生成する。
図1の例では、生成部132は、各セントロイドに対応付けられたベクトルに基づいて第2インデックス情報を生成する。例えば、生成部132は、各セントロイドに対応する領域AR1〜AR11の各々に含まれるベクトルを識別する情報をセントロイドIDに対応付けた第2インデックス情報を生成する。また、生成部132は、クエリを取得した際に対応するセントロイドを特定するために用いる第1インデックス情報を生成する。
(抽出部133)
抽出部133は、各種情報を選択する。例えば、抽出部133は、ベクトル識別情報を選択する。例えば、抽出部133は、取得部131により取得されたクエリに基づいてセントロイド情報を選択する。
図7の例では、抽出部133は、クエリ情報QE21を用いてセントロイドを抽出する。例えば、抽出部133は、第1インデックス情報記憶部121に記憶された第1インデックス情報に基づいて、クエリ情報QE21に対応するセントロイドを特定し、抽出する。例えば、抽出部133は、種々の従来技術を適宜用いて、クエリ情報QE21における特徴領域を特定し、特徴領域における特徴量を局所特徴量として算出する。例えば、抽出部133は、種々の従来技術を適宜用いて、クエリ情報QE21における局所特徴量を抽出する。
図7の例では、抽出部133は、セントロイド情報記憶部122からセントロイドID「V6」により識別されるセントロイド情報を抽出する。例えば、抽出部133は、空間情報GR12において、クエリ情報QE21がセントロイドのうち、セントロイドID「V6」により識別されるセントロイドと最も近いため、セントロイドID「V6」により識別されるセントロイド情報を抽出する。例えば、抽出部133は、セントロイド情報に基づいて、ベクトルを抽出する。例えば、抽出部133は、セントロイド情報に基づいて、クエリ情報QE21に類似するベクトルを抽出する。例えば、抽出部133は、セントロイド情報に基づいて第2インデックス情報記憶部123からベクトルを抽出する。
図7の例では、抽出部133は、第2インデックス情報記憶部123にセントロイドID「V6」により識別されるセントロイド(ベクトル)に対応付けられて記憶されたベクトル識別情報V9、V12、V34、V54、V85等を抽出する。
(提供部134)
提供部134は、各種情報を提供する。例えば、提供部134は、端末装置10や情報提供装置50に各種情報を提供する。例えば、提供部134は、クエリに対応するベクトル識別情報を検索結果として提供する。例えば、提供部134は、抽出部133により選択されたベクトル識別情報を情報提供装置50へ提供する。図7の例では、提供部134は、抽出部133により選択されたベクトル識別情報をクエリに対応するベクトルを示す情報として情報提供装置50に提供する。図7の例では、提供部134は、ベクトル識別情報V6、V9、V12、V34、V54、V85等をクエリに対応するベクトルを示す情報として情報提供装置50に提供する。
図7の例では、提供部134は、抽出部133により抽出されたベクトルを識別する情報を情報提供装置50に提供する。例えば、提供部134は、セントロイドとして抽出されたベクトル識別情報V6を含むベクトル識別情報V6、V9、V12、V34、V54、V85の6つのベクトル識別情報を情報提供装置50に提供する。
〔4.生成処理のフロー〕
次に、図6を用いて、実施形態に係る生成システム1による生成処理の手順について説明する。図6は、実施形態に係る生成処理の一例を示すフローチャートである。
図6に示すように、生成装置100は、ベクトル情報を取得する(ステップS101)。図1の例では、生成装置100は、空間情報GR11等に示すようにベクトル識別情報V1〜V1100等の複数のベクトル情報を取得する。
その後、生成装置100は、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成する(ステップS102)。例えば、生成装置100は、ランダムサンプリングを行うことによりベクトル情報の数が均等になるように複数のセントロイド情報を生成する。図1の例では、生成装置100は、空間情報GR12に示すように、ベクトル識別情報V1、V2、V5、V6、V10、V11、V36、V79、V86、V95、V111をセントロイドとするセントロイド情報を生成する。
〔5.情報の提供について〕
次に、図7を用いて、実施形態に係る生成システム1による情報提供について説明する。図7は、実施形態に係るクエリに対応する情報の提供の一例を示す図である。図7の例では、情報提供装置50が端末装置10から取得したクエリに応じて、端末装置10に検索結果を提供する場合を示す。具体的には、情報提供装置50が生成装置100から取得したベクトル識別情報に基づいてユーザに検索結果として画像情報を提供する場合を示す。図7の例では、情報提供装置50がk最近傍検索による画像検索サービスを提供する場合を一例として説明する。例えば、k最近傍検索では、検索クエリからの距離が近い方からk個のベクトルを検索(抽出)する。なお、以下では説明を簡単にするために、「k」が「6」である場合を示す。
まず、情報提供装置50は、ユーザU1が利用する端末装置10からクエリを取得する(ステップS21)。図7の例では、情報提供装置50は、端末装置10からクエリ情報QE21を取得する。例えば、情報提供装置50は、端末装置10から画像情報をクエリ情報QE21として取得する。
そして、情報提供装置50は、生成装置100にクエリを送信する(ステップS22)。図7の例では、情報提供装置50は、端末装置10から取得したクエリ情報QE21を生成装置100に送信する。そして、生成装置100は、画像情報をクエリ情報QE21として取得する。
その後、生成装置100は、クエリ情報QE21を用いてセントロイドを抽出する(ステップS23)。例えば、生成装置100は、第1インデックス情報記憶部121に記憶された第1インデックス情報に基づいて、クエリ情報QE21に対応するセントロイドを特定し、抽出する。
例えば、生成装置100は、種々の従来技術を適宜用いて、クエリ情報QE21における特徴領域を特定し、特徴領域における特徴量を局所特徴量として算出する。例えば、生成装置100は、種々の従来技術を適宜用いて、クエリ情報QE21における局所特徴量を抽出する。
また、例えば、生成装置100は、クエリ情報QE21からBoFに関する情報を生成する。そして、生成装置100は、第1インデックス情報記憶部121に記憶された第1インデックス情報に基づいて、クエリ情報QE21のBoFに関する情報と類似するBoFを検索することにより、セントロイドを特定する。
例えば、生成装置100は、クエリ情報QE21のBoFに関する情報に最も近いBoF表現を、第1インデックス情報記憶部121に記憶された第1インデックス情報を用いて検索する。なお、生成装置100は、クエリ情報QE21のBoFに関する情報と、検索で抽出されたセントロイドのBoFに関する情報との距離が所定の閾値以上であった場合、クエリ情報QE21に対応するベクトル情報はないと判定してもよい。なお、生成装置100は、セントロイドの抽出を、特許文献2に記載されるような種々の従来技術を適宜用いて行ってもよい。例えば、生成装置100は、特許文献2に記載される処理により、特徴点座標の照合を行うことにより、クエリ情報QE21と、抽出したセントロイドに対応する画像との類似性の確信度を検証してもよい。
図7の例では、生成装置100は、セントロイド情報記憶部122からセントロイドID「V6」により識別されるセントロイド情報を抽出する。例えば、生成装置100は、空間情報GR12において、クエリ情報QE21がセントロイドのうち、セントロイドID「V6」により識別されるセントロイドと最も近いため、セントロイドID「V6」により識別されるセントロイド情報を抽出する。
そして、生成装置100は、セントロイド情報に基づいて、ベクトルを抽出する(ステップS24)。例えば、生成装置100は、セントロイド情報に基づいて、クエリ情報QE21に類似するベクトルを抽出する。例えば、生成装置100は、セントロイド情報に基づいて第2インデックス情報記憶部123からベクトルを抽出する。
図7の例では、生成装置100は、第2インデックス情報記憶部123にセントロイドID「V6」により識別されるセントロイド(ベクトル)に対応付けられて記憶されたベクトル識別情報V9、V12、V34、V54、V85等を抽出する。なお、図7では、説明を簡単にするために、ベクトル識別情報V9、V12、V34、V54、V85の5つが抽出されるものとする。
その後、生成装置100は、抽出したベクトルを識別する情報を情報提供装置50に提供する(ステップS25)。図7の例では、生成装置100は、セントロイドとして抽出したベクトル識別情報V6を含むベクトル識別情報V6、V9、V12、V34、V54、V85の6つのベクトル識別情報を情報提供装置50に提供する。
生成装置100からベクトルを識別する情報を受信した情報提供装置50は、受信したベクトルを識別する情報に対応付けられた画像情報を端末装置10に提供する(ステップS26)。例えば、情報提供装置50は、生成装置100から受信したベクトルを識別する情報に対応付けられた画像情報をクエリ情報QE21に対応する検索結果として端末装置10に提供する。図7の例では、生成装置100からベクトル識別情報V6、V9、V12、V34、V54、V85を受信した情報提供装置50は、ベクトル識別情報V6、V9、V12、V34、V54、V85の各々に対応する画像情報を端末装置10に提供する。例えば、情報提供装置50は、ベクトル識別情報V6、V9、V12、V34、V54、V85の各々に対応する画像情報とクエリ情報QE21との類似度を算出し、類似度に応じた順序で並んだ画像情報を端末装置10に提供してもよい。
〔6.第2インデックスの生成について〕
上述した例では、説明を簡単にするために、空間情報GR12を領域AR1〜AR11に分割するまでを一例として示したが、各領域AR1〜AR11はさらに部分領域に分割されてもよい。この点について図8を用いて以下説明する。図8は、実施形態に係る第2インデックス情報の生成処理の一例を示す図である。
例えば、図8中の空間情報GR12は、図7中の空間情報GR12に対応し、クエリ情報QE21と領域AR4に含まれるベクトル識別情報V6、V9、V12、V34、V54、V85に対応する各ベクトルとの関係を示す。このように、図8中の空間情報GR12に示すように、クエリ情報QE21とベクトル識別情報V6、V9、V12、V34、V54、V85に対応する各ベクトルとの距離は異なるが、生成装置100には、ベクトル識別情報V9、V12、V34、V54、V85に対応するベクトルデータを格納しない。この場合、例えば、クエリ情報QE21と各ベクトルとの距離は、クエリ情報QE21と領域AR4のセントロイドであるベクトル識別情報V6に対応するベクトルとの距離とみなされることとなる。言い換えると、ベクトル識別情報V9、V12、V34、V54、V85に対応するベクトルデータは、ベクトル識別情報V6に対応するベクトルデータに量子化される。このような場合、例えば、各領域AR1〜AR11に含まれるベクトルは同一距離とみなされるのでベクトルの数が多くなった場合、検索結果として該当するデータが多くなる。
そこで、生成装置100は、生成処理において、各領域AR1〜AR11をさらに部分領域に分割してもよい。以下では、領域AR4をさらに部分領域に分割する場合を示す。例えば、生成装置100は、各セントロイド情報に対応する領域に含まれるベクトル情報に関する残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成してもよい。以下では、生成装置100は、各セントロイド情報と、当該各セントロイド情報に対応する領域に含まれるベクトル情報により生成される残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する場合を示す。
例えば、生成装置100は、領域AR4に含まれるベクトルの数に基づいて部分空間の数を決定してもよいし、所定の設定値に基づいて部分空間の数を決定してもよい。図8の例では、生成装置100は、領域AR4を9個の部分領域AR41〜AR49に分割する場合を示す。例えば、生成装置100は、各領域AR41〜AR49に含まれるベクトルの数が均等になるように各部分領域AR41〜AR49の範囲を決定してもよい。また、例えば、生成装置100は、クラスタリングに関する種々の従来技術を適宜用いて、各部分領域AR41〜AR49の範囲を決定してもよい。
図8の例では、生成装置100は、各部分領域AR41〜AR49に含まれるベクトルとセントロイドから残差ベクトルを算出し、その残差ベクトルから部分領域のセントロイドを生成する。この場合、複数の領域があっても個別のセントロイド集合があるわけではなく、共通でかつ単一のセントロイド集合を構成する。ただし、生成装置100は、複数の領域の各々について個別にセントロイド集合を生成してもよい。例えば、生成装置100は、セントロイドの総数が所定の閾値以下である場合、複数の領域の各々について個別のセントロイド集合を生成してもよい。なお、部分領域のセントロイドは残差ベクトルではなく、元のベクトルでも良い。例えば、生成装置100は、元のベクトルの分散が所定の閾値以下である場合、元のベクトルを部分領域のセントロイドとしてもよい。例えば、生成装置100は、ベクトル識別情報V34により識別されるベクトルを含む部分領域AR41に含まれるベクトルに基づいて、セントロイドCN61を生成する。また、例えば、生成装置100は、ベクトル識別情報V9により識別されるベクトルを含む部分領域AR42に含まれるベクトルに基づいて、セントロイドCN62を生成する。なお、生成装置100は、各セントロイド情報に対応する領域に含まれるベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成してもよい。
例えば、生成装置100は、一の領域のセントロイドと、各部分領域のセントロイドとの残差ベクトルに関する情報を記憶する。図8の例では、生成装置100は、部分セントロイド情報LT1に示すように、領域AR4のセントロイドV6と、その部分領域AR41のセントロイドCN61との残差ベクトルに関する情報や領域AR4のセントロイドV6と、その部分領域AR48のセントロイドCN68との残差ベクトルに関する情報等が記憶される。なお、生成装置100は、部分セントロイド情報LT1を記憶部120に記憶してもよい。
また、生成装置100は、各ベクトルに対応付けてそのベクトルが属する部分領域のセントロイド情報を記憶してもよい。図8の例では、生成装置100は、第2インデックス情報記憶部123Aに示すように、セントロイドV6に対応付けて記憶されたベクトルV9にセントロイドCN62を対応付けて記憶してもよい。なお、生成装置100は、第2インデックス情報記憶部123Aを記憶部120に含んでもよい。具体的には、生成装置100は、セントロイドID「V6」に対応付けられたベクトル識別情報「V9」にセントロイドID「CN62」を対応付けて記憶してもよい。このように、生成装置100は、各ベクトルにそのベクトルが属する部分領域のセントロイドに関する情報を対応付けて第2インデックス情報記憶部123Aに記憶する。これにより、生成装置100は、第2インデックス情報記憶部123Aを参照することで、ベクトルがどの部分領域に属するかを特定可能となり、さらに処理を高速化することができる。
上述したように、部分領域AR41〜AR49による分割が無い場合、クエリ情報QE21と各ベクトルとの距離は、クエリ情報QE21と領域AR4のセントロイドであるベクトル識別情報V6に対応するベクトルとの距離とみなされることとなる。一方、生成装置100は、部分領域AR41〜AR49による分割を行うことにより、クエリ情報QE21と各ベクトルとの距離をさらに細分化することができる。この点について、図9を用いて説明する。図9は、実施形態に係る第2インデックス情報の利用の一例を示す図である。
例えば、生成装置100は、部分セントロイド情報LT1を用いることにより、各ベクトルの位置をそのベクトルが属する部分領域のセントロイドの位置に量子化することができる。これにより、生成装置100は、クエリ情報QE21と各ベクトルとの距離を、クエリ情報QE21と各ベクトルが属する部分領域AR41〜AR49のセントロイドに対応するベクトルとの距離まで細部化することができる。
図9の例では、生成装置100は、セントロイド情報記憶部122に示すようにセントロイドID「V6」により識別されるベクトルのベクトルデータを有し、部分セントロイド情報LT1に示すようにセントロイドCN61に関する残差ベクトル情報を有する。そのため、生成装置100は、例えばクエリ情報QE21に対して、セントロイドCN61までの距離を算出することができる。したがって、生成装置100は、例えばクエリ情報QE21とベクトルV34との距離を、ベクトルV6よりもさらに近似したセントロイドCN61までの距離とすることができる。
このように、生成装置100は、各領域AR1〜AR11をさらに細分化した部分領域に関する情報を用いることにより、格納するベクトルデータの数は領域に対応するセントロイドの数に抑制しつつ、さらに各ベクトルを細分化して量子化することが可能となる。例えば、生成装置100は、各領域AR1〜AR11に含まれるベクトルの数が膨大(例えば1万や10万等)になった場合であっても、領域をさらに細分化することにより、各ベクトルを適切に量子化することができる。したがって、生成装置100は、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
〔7.ベクトルの分割の一例〕
なお、上記の例では、生成装置100が各ベクトルを一のベクトルとして処理する場合を示したが、生成装置100は、各ベクトルを複数の部分ベクトルに分割して処理してもよい。例えば、生成装置100は、いわゆる直積量子化に関する技術を用いて、処理を行ってもよい。この点について図10を用いて説明する。図10は、実施形態に係るベクトルの分割の一例を示す図である。なお、図10の例では、説明を簡単にするために、クエリに対応するベクトルデータQE31の次元数が12である場合を示すが、生成装置100は、より高次元のベクトルを対象としてもよい。
図10の例では、生成装置100は、ベクトルデータQE31を4分割する。例えば、生成装置100は、ベクトルデータQE31のうち、1次元〜3次元のデータを部分ベクトルデータQE31−1とし、4次元〜6次元のデータを部分ベクトルデータQE31−2とし、7次元〜9次元のデータを部分ベクトルデータQE31−3とし、10次元〜12次元のデータを部分ベクトルデータQE31−4とする。具体的には、生成装置100は、「45,23,2」を部分ベクトルデータQE31−1とし、「127,34,5」を部分ベクトルデータQE31−2とし、「20,98,110」を部分ベクトルデータQE31−3とし、「12,45,4」を部分ベクトルデータQE31−4とする。
なお、上記のように、クエリを部分ベクトルに分割する場合を示したが、セントロイド情報の生成処理においては、各画像情報に対応するベクトルが部分ベクトルに分割されるものとする。また、図10では、説明を簡単にするために図1に示す空間情報GR12中の領域AR4を複数の部分領域(以下「部分空間」ともいう)に分割する場合を図示する。図10に示す例では、空間情報GR12中の領域AR4が複数の部分空間AR4−1〜AR4−4に分割された場合を示す。
部分ベクトルデータQE31−1は、部分空間AR4−1に対応するベクトルデータであり、部分ベクトルデータQE31−2は、部分空間AR4−2に対応するベクトルデータであり、部分ベクトルデータQE31−3は、部分空間AR4−3に対応するベクトルデータであり、部分ベクトルデータQE31−4は、部分空間AR4−4に対応するベクトルデータであるものとする。例えば、図10の例では、部分ベクトルデータQE31−1は、部分空間AR4−1中のセントロイドCN63の領域に位置する。
図10の例では、部分空間AR4−1〜AR4−4を類似の形状で示すが、各部分空間AR4−1〜AR4−4の形状は異なってもよいし、また各部分空間AR4−1〜AR4−4における領域の分割態様も異なってもよい。
そして、生成装置100は、全部分空間AR4−1〜AR4−4における距離を合計等することにより、各クエリとセントロイドとの距離を算出する。例えば、生成装置100は、下記の式(1)により、各クエリとベクトルとの距離を算出してもよい。なお、上述した例では、部分領域のセントロイドは基本共通であったが、部分ベクトルの場合には、生成装置100は、ベクトル単位にセントロイド集合を生成してもよい。例えば、生成装置100は、部分空間AR4−1〜AR4−4ごとにセントロイド集合を生成してもよい。これにより、部分ベクトルごとのベクトルデータの分布の傾向が違う場合であっても、生成装置100は、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。また、生成装置100は、部分ベクトルを共通としてセントロイド集合を生成してもよい。例えば、生成装置100は、部分空間AR4−1〜AR4−4に共通するセントロイド集合を生成してもよい。これにより、生成装置100は、ベクトルを部分ベクトルに分割した場合であっても、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
Figure 0006311000
ここで、上記式(1)中の左辺の値は、例えば、クエリとベクトルとの間の二乗距離を示す。また、例えば、上記式(1)中の「x」は、クエリに対応する。また、例えば、上記式(1)中の「y」は、ベクトルに対応する。また、例えば、上記式(1)の右辺中の「q(y)」は、「y」のセントロイドを示す。例えば、生成装置100は、上記式(1)中の「y」について、ベクトルのベクトルデータを有しない場合は、図8のように各ベクトルが属する部分領域のセントロイドのベクトルデータの数値を用いてもよい。また、例えば、「y−q(y)」は、残差ベクトルを示す。また、例えば、上記式(1)の右辺中の「q」は、所定の量子化器(関数)を示す。
また、例えば、上記式(1)の右辺中の「j」は、分割された空間の数であってもよい。例えば、図10の例では、上記式(1)の右辺中の「j」は、分割された空間の数「4」であってもよい。また、例えば、上記式(1)の右辺中の「u()」は、括弧中のベクトル間の部分残差ベクトルを示す。例えば、生成装置100は、上記式(1)を用いて、各部分空間におけるクエリとベクトルとの間の二乗距離を算出し、合算することにより、各クエリとベクトルとの距離を算出してもよい。例えば、図10の例では、生成装置100は、各部分空間AR4−1〜AR4−4における部分ベクトルデータQE31−1〜QE31−4と、各部分空間AR4−1〜AR4−4におけるベクトルとの間の二乗距離を算出し、合算することにより、ベクトルデータQE31に対応するクエリとベクトルとの距離を算出してもよい。
これにより、生成装置100は、各ベクトルをより細分化して量子化することが可能となり、クエリに対応するベクトルをより適切に抽出することができる。また、生成装置100は、上述した処理を適宜組み合わせることにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成してもよい。例えば、生成装置100は、直積量子化時の各部分ベクトルをそのまま用いてもよいし、残差ベクトルを算出して用いてもよい。例えば、生成装置100は、各部分ベクトルとセントロイドから残差ベクトルを算出し、その残差ベクトルを用いてもよい。また、生成装置100は、部分ベクトル間で共通にセントロイドを生成してもよいし、個別にセントロイドを生成してもよい。例えば、生成装置100は、一のベクトルが分割された部分ベクトル間で共通にセントロイドを生成してもよいし、個別にセントロイドを生成してもよい。なお、上記は一例であり、生成装置100は、種々の情報を適宜組み合わせたり、個別に用いたりすることにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成してもよい。例えば、生成装置100は、ある情報を共通化して用いたり、ある情報を個別化して用いたりすることにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成してもよい。
〔8.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、生成部132とを有する。取得部131は、近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する。生成部132は、取得部131により取得された複数のベクトル情報に基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する。これにより、生成装置100は、各セントロイドに対応付けられるベクトルの数が均等になるような複数のセントロイドを生成することができ、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、複数のベクトル情報から所定の条件に基づいてベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、複数のベクトル情報から所定の条件に基づいてベクトル情報をセントロイド情報として選択し、複数のセントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、複数のベクトル情報から、ランダムサンプリングにより選択されたベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、複数のベクトル情報から、ランダムサンプリングにより選択されたベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、取得部131は、複数のベクトル情報を異なるタイミングで取得する。生成部132は、取得部131がベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、ベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択し、複数のセントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、所定の検索要求に対して、セントロイド情報の特定に用いる第1インデックス情報を生成する。
これにより、実施形態に係る生成装置100は、所定の検索要求に対して、複数のセントロイド情報の特定に用いる第1インデックス情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、高次元ベクトルを検索する検索インデックスを第1インデックス情報として生成する。
これにより、実施形態に係る生成装置100は、高次元ベクトルを検索する検索インデックスを第1インデックス情報として生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、複数のセントロイド情報に関する木構造型のインデックス、または、グラフ構造型のインデックスを第1インデックス情報として生成する。
これにより、実施形態に係る生成装置100は、複数のセントロイド情報に関する木構造型のインデックス、または、グラフ構造型のインデックスを第1インデックス情報として生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報と、当該各セントロイド情報に対応付けられたベクトル情報とを示す第2インデックス情報を生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報と、当該各セントロイド情報に対応付けられたベクトル情報とを示す第2インデックス情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報に対応付けられたベクトル情報を特定する転置インデックスを第2インデックス情報として生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報に対応付けられたベクトル情報を特定する転置インデックスを第2インデックス情報として生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各ベクトル情報を分割した各部分ベクトルを量子化するベクトル量子化に基づいて、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、各ベクトル情報を分割した各部分ベクトルを量子化するベクトル量子化に基づいて、各セントロイド情報に対応付けられるベクトル情報の数が均等になるように複数のセントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報に対応する領域に含まれるベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報に対応する領域に含まれるベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報に対応する領域に含まれるベクトル情報に関する残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報に対応する領域に含まれるベクトル情報に関する残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報と、当該各セントロイド情報に対応する領域に含まれるベクトル情報により生成される残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報と、当該各セントロイド情報に対応する領域に含まれるベクトル情報により生成される残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各部分領域の部分セントロイド情報と、当該各部分領域内に含まれるベクトル情報とを対応付けた対応付情報を生成する。
これにより、実施形態に係る生成装置100は、各部分領域の部分セントロイド情報と、当該各部分領域内に含まれるベクトル情報とを対応付けた対応付情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
また、実施形態に係る生成装置100において、生成部132は、各セントロイド情報と、当該各セントロイド情報の各部分領域内に対応する各部分セントロイド情報とにより生成される残差ベクトル情報に基づいて、対応付情報を生成する。
これにより、実施形態に係る生成装置100は、各セントロイド情報と、当該各セントロイド情報の各部分領域内に対応する各部分セントロイド情報とにより生成される残差ベクトル情報に基づいて、対応付情報を生成することにより、近傍検索における効率的な検索を可能にするセントロイド情報を生成することができる。
〔9.ハードウェア構成〕
上述してきた実施形態に係る生成装置100は、例えば図12に示すような構成のコンピュータ1000によって実現される。図12は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔10.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
1 生成システム
100 生成装置
121 第1インデックス情報記憶部
122 セントロイド情報記憶部
123 第2インデックス情報記憶部
130 制御部
131 取得部
132 生成部
133 抽出部
134 提供部
10 端末装置
50 情報提供装置
N ネットワーク

Claims (17)

  1. 近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する取得部と、
    前記取得部により取得された複数のベクトル情報について所定の回数ランダムサンプリングを行い、各クラスタに含まれるベクトル情報の数の差が最も小さくベクトル情報がクラスタリングされる組合せに基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する生成部と、
    を備えることを特徴とする生成装置。
  2. 前記生成部は、
    前記複数のベクトル情報から所定の条件に基づいてベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する
    ことを特徴とする請求項1に記載の生成装置。
  3. 前記生成部は、
    前記複数のベクトル情報から、ランダムサンプリングにより選択されたベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する
    ことを特徴とする請求項1または請求項2に記載の生成装置。
  4. 前記取得部は、
    前記複数のベクトル情報を異なるタイミングで取得し、
    前記生成部は、
    前記取得部がベクトル情報を取得した時点において、セントロイド情報の数が所定の閾値未満である場合、当該ベクトル情報をセントロイド情報として選択することにより、複数のセントロイド情報を生成する
    ことを特徴とする請求項1〜3のいずれか1項に記載の生成装置。
  5. 前記生成部は、
    所定の検索要求に対して、セントロイド情報の特定に用いる第1インデックス情報を生成する
    ことを特徴とする請求項1〜4のいずれか1項に記載の生成装置。
  6. 前記生成部は、
    高次元ベクトルを検索する検索インデックスを第1インデックス情報として生成する
    ことを特徴とする請求項5に記載の生成装置。
  7. 前記生成部は、
    複数のセントロイド情報に関する木構造型のインデックス、または、グラフ構造型のインデックスを第1インデックス情報として生成する
    ことを特徴とする請求項5または請求項6に記載の生成装置。
  8. 前記生成部は、
    各セントロイド情報と、当該各セントロイド情報に対応付けられたベクトル情報とを示す第2インデックス情報を生成する
    ことを特徴とする請求項1〜7のいずれか1項に記載の生成装置。
  9. 前記生成部は、
    各セントロイド情報に対応付けられたベクトル情報を特定する転置インデックスを第2インデックス情報として生成する
    ことを特徴とする請求項8に記載の生成装置。
  10. 前記生成部は、
    各ベクトル情報を分割した各部分ベクトルを量子化するベクトル量子化に基づいて、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する
    ことを特徴とする請求項1〜9のいずれか1項に記載の生成装置。
  11. 前記生成部は、
    各セントロイド情報に対応する領域に含まれるベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する
    ことを特徴とする請求項1〜10のいずれか1項に記載の生成装置。
  12. 前記生成部は、
    各セントロイド情報に対応する領域に含まれるベクトル情報に関する残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する
    ことを特徴とする請求項1〜11のいずれか1項に記載の生成装置。
  13. 前記生成部は、
    各セントロイド情報と、当該各セントロイド情報に対応する領域に含まれるベクトル情報により生成される残差ベクトル情報に基づいて、当該領域が分割された複数の部分領域に対応する部分セントロイド情報を生成する
    ことを特徴とする請求項1〜12のいずれか1項に記載の生成装置。
  14. 前記生成部は、
    各部分領域の部分セントロイド情報と、当該各部分領域内に含まれるベクトル情報とを対応付けた対応付情報を生成する
    ことを特徴とする請求項11〜13のいずれか1項に記載の生成装置。
  15. 前記生成部は、
    各セントロイド情報と、当該各セントロイド情報の各部分領域内に対応する各部分セントロイド情報とにより生成される残差ベクトル情報に基づいて、前記対応付情報を生成する
    ことを特徴とする請求項14に記載の生成装置。
  16. コンピュータが実行する生成方法であって、
    近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する取得工程と、
    前記取得工程により取得された複数のベクトル情報について所定の回数ランダムサンプリングを行い、各クラスタに含まれるベクトル情報の数の差が最も小さくベクトル情報がクラスタリングされる組合せに基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する生成工程と、
    を含むことを特徴とする生成方法。
  17. 近傍検索における検索対象の各々に対応する複数のベクトル情報を取得する取得手順と、
    前記取得手順により取得された複数のベクトル情報について所定の回数ランダムサンプリングを行い、各クラスタに含まれるベクトル情報の数の差が最も小さくベクトル情報がクラスタリングされる組合せに基づいて、ベクトル量子化において各ベクトル情報の各々が距離に応じて対応付けられる複数のセントロイド情報であって、各セントロイド情報に対応付けられるベクトル情報の数の差が所定値以内になるように複数のセントロイド情報を生成する生成手順と、
    をコンピュータに実行させることを特徴とする生成プログラム。
JP2016245975A 2016-12-19 2016-12-19 生成装置、生成方法、及び生成プログラム Active JP6311000B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016245975A JP6311000B1 (ja) 2016-12-19 2016-12-19 生成装置、生成方法、及び生成プログラム
US15/810,455 US10671663B2 (en) 2016-12-19 2017-11-13 Generation device, generation method, and non-transitory computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016245975A JP6311000B1 (ja) 2016-12-19 2016-12-19 生成装置、生成方法、及び生成プログラム

Publications (2)

Publication Number Publication Date
JP6311000B1 true JP6311000B1 (ja) 2018-04-11
JP2018101225A JP2018101225A (ja) 2018-06-28

Family

ID=61901857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016245975A Active JP6311000B1 (ja) 2016-12-19 2016-12-19 生成装置、生成方法、及び生成プログラム

Country Status (2)

Country Link
US (1) US10671663B2 (ja)
JP (1) JP6311000B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7273609B2 (ja) * 2019-05-08 2023-05-15 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US20210011910A1 (en) * 2019-07-08 2021-01-14 Gsi Technology Inc. Reference distance similarity search
JP7469262B2 (ja) 2021-07-16 2024-04-16 Lineヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP7471264B2 (ja) 2021-07-16 2024-04-19 Lineヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079871A (ja) * 2008-06-09 2010-04-08 Yahoo Japan Corp ベクトルデータ検索装置
JP2014032657A (ja) * 2013-06-19 2014-02-20 Hitachi Power Solutions Co Ltd 異常検知方法及びその装置
JP2015022383A (ja) * 2013-07-16 2015-02-02 Kddi株式会社 画像に基づくバイナリ局所特徴ベクトルを用いた検索装置、システム、プログラム及び方法
JP2015207047A (ja) * 2014-04-17 2015-11-19 日本電信電話株式会社 類似特徴抽出装置、方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8428397B1 (en) * 2010-08-26 2013-04-23 Adobe Systems Incorporated Systems and methods for large scale, high-dimensional searches
EP2631817A1 (en) 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples
JP5577371B2 (ja) * 2012-03-29 2014-08-20 楽天株式会社 画像検索装置、画像検索方法およびプログラム
US9990380B2 (en) * 2013-03-15 2018-06-05 Locus Lp Proximity search and navigation for functional information systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079871A (ja) * 2008-06-09 2010-04-08 Yahoo Japan Corp ベクトルデータ検索装置
JP2014032657A (ja) * 2013-06-19 2014-02-20 Hitachi Power Solutions Co Ltd 異常検知方法及びその装置
JP2015022383A (ja) * 2013-07-16 2015-02-02 Kddi株式会社 画像に基づくバイナリ局所特徴ベクトルを用いた検索装置、システム、プログラム及び方法
JP2015207047A (ja) * 2014-04-17 2015-11-19 日本電信電話株式会社 類似特徴抽出装置、方法、及びプログラム

Also Published As

Publication number Publication date
JP2018101225A (ja) 2018-06-28
US10671663B2 (en) 2020-06-02
US20180173726A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
JP6311000B1 (ja) 生成装置、生成方法、及び生成プログラム
JP5755822B1 (ja) 類似度算出システム、類似度算出方法およびプログラム
WO2013129580A1 (ja) 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム
US20170139913A1 (en) Method and system for data assignment in a distributed system
CN106570173B (zh) 一种基于Spark的高维稀疏文本数据聚类方法
CN104484392A (zh) 数据库查询语句生成方法及装置
JP7354014B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6819420B2 (ja) 学習プログラム、学習方法および学習装置
Zhang et al. Dataset-driven unsupervised object discovery for region-based instance image retrieval
JP2020086662A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6976178B2 (ja) 抽出装置、抽出方法、及び抽出プログラム
CN110209895B (zh) 向量检索方法、装置和设备
JP2012063959A (ja) 索引方法、検索方法、及びその記憶媒体
JP7353737B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP7121706B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2012173794A (ja) ランキングモデル選択機能を有する文書検索装置、ランキングモデル選択機能を有する文書検索方法およびランキングモデル選択機能を有する文書検索プログラム
JP6562984B2 (ja) 生成装置、生成方法、及び生成プログラム
JP7030485B2 (ja) 抽出装置、抽出方法、及び抽出プログラム
JP7130019B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
KR102062139B1 (ko) 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치
JP7122293B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP7388661B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP7239433B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP7414906B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
KR102289411B1 (ko) 가중치 기반의 피처 벡터 생성 장치 및 방법

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6311000

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