JP6640896B2 - データ処理装置、データ処理方法およびプログラム - Google Patents

データ処理装置、データ処理方法およびプログラム Download PDF

Info

Publication number
JP6640896B2
JP6640896B2 JP2018024700A JP2018024700A JP6640896B2 JP 6640896 B2 JP6640896 B2 JP 6640896B2 JP 2018024700 A JP2018024700 A JP 2018024700A JP 2018024700 A JP2018024700 A JP 2018024700A JP 6640896 B2 JP6640896 B2 JP 6640896B2
Authority
JP
Japan
Prior art keywords
subvector
vector
codebook
groups
sub
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
JP2018024700A
Other languages
English (en)
Other versions
JP2019139670A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions 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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2018024700A priority Critical patent/JP6640896B2/ja
Priority to CN201810695673.1A priority patent/CN110209665B/zh
Priority to US16/126,557 priority patent/US10853400B2/en
Publication of JP2019139670A publication Critical patent/JP2019139670A/ja
Application granted granted Critical
Publication of JP6640896B2 publication Critical patent/JP6640896B2/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Description

本発明の実施形態は、データ処理装置、データ処理方法およびプログラムに関する。
ビッグデータ時代の到来に伴い、例えばパタン認識などで事例として利用される特徴ベクトルを大量に保有する必要性が増加している。これに伴い、特徴ベクトルを保有するためのメモリやHDDなどのハードウェアコストが増大している。この問題の解決策の一つとして、直積量子化により特徴ベクトルのメモリサイズを削減する方法が知られている。直積量子化は、特徴ベクトルを複数のサブベクトルに分割し、コードブックを参照して、各サブベクトルをクラスタの代表ベクトルのインデックスに置き換えることにより、特徴ベクトルを圧縮コードに変換する技術である。コードブックは、保有すべき特徴ベクトル集合をサブベクトルごとにクラスタリングし、各クラスタの代表ベクトルをインデックスと対応付けることによって生成されるルックアップテーブルである。
特徴ベクトルを複数のサブベクトルに分割する際、従来は、個々のサブベクトルの次元数が同一となるように特徴ベクトルを均等に分割するのが一般的である。しかし、この方法では異なるサブベクトル間で分散の度合いに大きな偏りが生じ、コードブックを生成する際にサブベクトルによってはクラスタ数が過剰あるいは過小となる場合がある。そして、このように生成されたコードブックを用いて特徴ベクトルの直積量子化を行うと、量子化効率が低下する懸念がある。
特許第5637939号公報 特許第2641209号公報
H.J´egou,M.Douze,and C.Schmid,"Product quantization for nearest neighbor search," IEEE Trans.On PAMI,vol.33,no.1,pp.117−128,2011.
本発明が解決しようとする課題は、特徴ベクトルを効率よく量子化できるデータ処理装置、データ処理方法およびプログラムを提供することである。
実施形態のデータ処理装置は、サブベクトル群生成部と、コードブック生成部と、変換部と、を備える。サブベクトル群生成部は、N個のD次元特徴ベクトルからなる特徴ベクトル集合から、M個(ただし、M<D)のサブベクトル群を生成する。前記M個のサブベクトル群の各々は、前記N個のD次元特徴ベクトルの各々から得られたN個の次元可変サブベクトルからなる。前記N個の次元可変サブベクトルの各々は、前記D次元特徴ベクトルから抽出された1以上の次元の値を要素とする。前記M個のサブベクトル群のうちの少なくとも1つのサブベクトル群における前記次元可変サブベクトルの要素の数が他のサブベクトル群における前記次元可変サブベクトルの要素の数と異なる。コードブック生成部は、前記M個のサブベクトル群ごとに、前記N個の次元可変サブベクトルをクラスタリングして、各クラスタの代表ベクトルをインデックスと対応付けたコードブックを生成する。変換部は、前記コードブックを用いた直積量子化により、前記N個のD次元特徴ベクトルの各々を、M個のインデックスの組み合わせからなる圧縮コードに変換する。前記サブベクトル群生成部は、前記M個のサブベクトル群同士で前記次元可変サブベクトルの分散の度合いが近くなるように、前記特徴ベクトル集合から前記M個のサブベクトル群を生成する。
図1は、特徴ベクトル集合の一例を示す図である。 図2は、特徴ベクトル集合からサブベクトル群を生成する従来の方法を説明する図である。 図3は、コードブックを生成する従来の方法を説明する図である。 図4は、コードブックを参照して特徴ベクトルを圧縮コードに変換する方法を説明する図である。 図5は、コードブックを参照して特徴ベクトルを圧縮コードに変換する方法を説明する図である。 図6は、第1実施例に係るデータ処理装置の機能的な構成例を示すブロック図である。 図7は、特徴ベクトル集合からサブベクトル群を生成する様子を示す図である。 図8は、サブベクトル群生成部による処理の具体例を示すフローチャートである。 図9は、コードブックを生成する様子を示す図である。 図10は、第2実施例に係るデータ処理装置の機能的な構成例を示すブロック図である。 図11は、クラスタ数上限値の探索方法を説明する図である。 図12は、第3実施例に係るデータ処理装置の機能的な構成例を示すブロック図である。 図13は、差分ルックアップテーブルの一例を示す図である。 図14は、コードブック更新部による処理の概要を説明する図である。 図15は、データ処理装置のハードウェア構成例を示すブロック図である。
以下、実施形態のデータ処理装置、データ処理方法およびプログラムを、図面を参照して詳細に説明する。本実施形態は、直積量子化により特徴ベクトルを圧縮コードに変換する技術を対象とし、特に、サブベクトルの生成方法とサブベクトル群のクラスタリング方法を改良することにより、特徴ベクトルを効率よく量子化できるようにしたものである。
<直積量子化の概要>
まず、本実施形態の具体的な説明に先立ち、従来の一般的な方法による直積量子化の概要を説明する。直積量子化により特徴ベクトルを圧縮コードに変換する技術は、保有すべき特徴ベクトル集合からコードブックを生成するフェーズと、このコードブックを用いて特徴ベクトル集合に含まれる各特徴ベクトルを圧縮コードに変換するフェーズとからなる。なお、以下の説明においては、保有すべき特徴ベクトル集合に含まれる特徴ベクトルの数をN、各特徴ベクトルの次元数をD、特徴ベクトルをサブベクトルに分割する分割数(特徴ベクトルから生成されるサブベクトルの数)をMとする。
まず、特徴ベクトル集合からコードブックを生成するフェーズについて説明する。特徴ベクトル集合の一例を図1に示す。図1に示すように、特徴ベクトル集合200は、N個のD次元特徴ベクトル(以下、単に「特徴ベクトル」と呼ぶ)210からなる。図1に示す例では、直積量子化の概要を分かり易く説明するために各特徴ベクトル210の次元数Dを6としているが、実際の特徴ベクトル210の次元数Dは、より大きな値であることが一般的である。
特徴ベクトル集合200からコードブックを生成する際は、まず、例えば図2に示すように、特徴ベクトル集合200に含まれる各特徴ベクトル210をM個のサブベクトル220に分割して、M個のサブベクトル群230を生成する。図2に示す例では、特徴ベクトル210の分割数(サブベクトル群230の数)Mを3としている。
特徴ベクトル210からM個のサブベクトル220への分割は、従来の一般的な方法によると、サブベクトル220同士の次元数が同一となる均等分割である。図2の例では、6次元(D=6)の特徴ベクトル210を3分割(M=3)するため、各サブベクトル220の次元数は2となる。M個のサブベクトル群230の各々は、特徴ベクトル集合200に含まれるN個の特徴ベクトル210の各々から得られたN個のサブベクトル220からなり、1つのサブベクトル群230に含まれるN個のサブベクトル220は、N個の特徴ベクトル210から各々抽出された共通の次元を要素とする。例えば、1番目の特徴ベクトル210の第1次元と第2次元を要素とするサブベクトル220、2番目の特徴ベクトル210の第1次元と第2次元を要素とするサブベクトル220、・・・、N番目の特徴ベクトル210の第1次元と第2次元を要素とするサブベクトル220が1つのサブベクトル群230を構成する。このようなサブベクトル群230が、特徴ベクトル210の分割数M分生成される。
次に、M個のサブベクトル群230の各々に対してK−meansクラスタリングを行い、各サブベクトル群230に含まれるN個のサブベクトル220をK個のクラスタにクラスタリングする。そして、サブベクトル群230ごとに、K個のクラスタの代表ベクトルとインデックスとを対応付けたコードブックを生成する。Kの値は、特徴ベクトル集合200に含まれる特徴ベクトル210の数Nよりも十分に小さい値である。ここでは、コードブックにおけるインデックスを8ビットで表現することを想定し、Kの値を2=256とする。
図2の例のように特徴ベクトル210の分割数M=3に応じて特徴ベクトル集合200から3個のサブベクトル群230を生成した場合は、図3に示すように、3個のサブベクトル群230の各々に対してK−meansクラスタリング(K=256)を行うことで、3個のサブベクトル群230の各々が、それぞれ256個のクラスタにクラスタリングされる。そして、各クラスタの代表ベクトルが、そのクラスタの代表ベクトルを指し示す値であるインデックス(ID:1〜256)と対応付けられることにより、コードブック240が生成される。クラスタの代表ベクトルは、例えば、そのクラスタのセントロイドである。
次に、コードブック240を用いて特徴ベクトル集合200に含まれる各特徴ベクトル210を圧縮コードに変換するフェーズについて説明する。特徴ベクトル集合200に含まれる各特徴ベクトル210を圧縮コードに変換する際は、まず、図4に示すように、特徴ベクトル集合200から特徴ベクトル210を1つ取り出して、この特徴ベクトル210を、コードブック240の生成時と同じ方法でM個(図4の例では3個)のサブベクトル220に分割する。そして、M個のサブベクトル220の各々について、上述のように生成されたコードブック240を参照して、サブベクトル220に最も近い代表ベクトルを特定し、その代表ベクトルに対応するインデックスを取得する。そして、取得したM個のインデックスを、特徴ベクトル210における各サブベクトル220の順序に従って配置し、圧縮コード250を生成する。このようにして、D次元の特徴ベクトル210が長さMの圧縮コード250に変換される。
以上の処理を、特徴ベクトル集合200に含まれるN個の特徴ベクトル210の全てに対して実施することにより、図5に示すように、特徴ベクトル集合200がN個の圧縮コード250からなる圧縮コード集合260に変換される。特徴ベクトル集合200を圧縮コード集合260に変換して保存することにより、メモリサイズの削減を図ることができる。特徴ベクトル集合200を圧縮コード集合260に変換することによるデータの圧縮率は、特徴ベクトル210の分割数Mが小さいほど、また、サブベクトル群230に対するK−meansクラスタリングのクラスタ数Kの値が小さいほど高くなる。一方、圧縮コード250による特徴ベクトル210の表現力は、特徴ベクトル210の分割数Mが大きいほど、また、サブベクトル群230に対するK−meansクラスタリングのクラスタ数Kの値が大きいほど高くなる。このため、特徴ベクトル210の分割数MやK−meansクラスタリングのクラスタ数Kの値は、アプリケーションで要求される表現力を維持しつつ圧縮率をできるだけ高められるように、つまり、良好な量子化効率が得られるように決定される。
<実施形態の概要>
以上説明した従来の一般的な直積量子化の方法では、特徴ベクトル210の分割数M(つまりサブベクトル220の次元数)やK−meansクラスタリングのクラスタ数Kの値が固定であるため、上述のコードブック240を生成する際に、サブベクトル群230によっては過剰あるいは過小なクラスタが生成されてしまう場合がある。そして、このように生成されたコードブック240を用いて特徴ベクトル210の直積量子化を行うと、量子化効率が低下する懸念がある。
そこで本実施形態では、直積量子化において、予め量子化レベルのパタンを決めることなく、サブベクトル群230ごとに最適な量子化レベル(クラスタ数)を自動決定し、量子化効率を改善する。具体的には、X−meansクラスタリングの手法を用いて、サブベクトル群230ごとの量子化レベルを自動決定する。X−meansクラスタリングとは、K−meansクラスタリングを改良したクラスタリング手法であり、最適なクラスタ数を自動決定できる。
(参考文献)Dan Pelleg,Andrew Moore,“X-means:Extending K-means with Efficient Estimation of the Number of Clusters” School of Computer Science,Carnegie Mellon University,Pittsburgh,PA 15213 USA.
ただし、X−meansクラスタリングには、クラスタリング対象のサブベクトル群230におけるサブベクトル220の分散が大きいと、自動決定されるクラスタ数が多くなり、クラスタリングの所要時間が莫大になるという問題がある。サブベクトル群230におけるサブベクトル220の分散は、サブベクトル220の次元数が多いほど増加する。この問題を解決するため、本実施形態では、サブベクトル220の生成方法を改良する。
従来は、上述のように、全てのサブベクトル220の次元数が同じになるように特徴ベクトル210を均等に分割していた。この場合、サブベクトル群230間においてサブベクトル220の分散の度合いにばらつきが生じるため、サブベクトル220の分散が極端に大きなサブベクトル群230と、そうでないサブベクトル群230とが生成される可能性がある。
これを防ぐため、本実施形態ではサブベクトル220の次元を可変にし(以下では、このサブベクトル220を「次元可変サブベクトル220」と表記する)、さらに、各サブベクトル群230における次元可変サブベクトル220の分散が等程度になるように、特徴ベクトル集合200に含まれる特徴ベクトル210の次元選択を行うことで、M個のサブベクトル群230を生成する。そして、このM個のサブベクトル群230を用いてコードブック240を生成し、直積量子化により特徴ベクトル210を圧縮コード250に変換する。
以下では、以上のような本実施形態の概念を実現する具体的な実施例について説明する。なお、以下の説明において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
<第1実施例>
図6は、第1実施例に係るデータ処理装置10Aの機能的な構成例を示すブロック図である。本実施例のデータ処理装置10Aは、図6に示すように、サブベクトル群生成部11と、コードブック生成部12と、変換部13とを備える。
サブベクトル群生成部11は、N個の特徴ベクトル210からなる特徴ベクトル集合200から、M個のサブベクトル群230を生成する。M個のサブベクトル群230の各々は、N個の特徴ベクトル210の各々から得られたN個の次元可変サブベクトル220からなる。N個の次元可変サブベクトル220の各々は、特徴ベクトル210から抽出された1以上の次元の値を要素とする。サブベクトル群生成部11が生成するサブベクトル群230の数Mは、特徴ベクトル210の次元数Dよりも小さい値であるが、従来のように固定の値ではなく適応的に定まる可変の値である。
図7は、サブベクトル群生成部11が特徴ベクトル集合200からM個のサブベクトル群230を生成する様子を示す図であり、図1に例示した特徴ベクトル集合200から3個のサブベクトル群230を生成する様子を示している。サブベクトル群生成部11は、従来のように特徴ベクトル集合200に含まれる各特徴ベクトル210を均等分割するのではなく、図7に示すように、特徴ベクトル集合200に含まれる各特徴ベクトル210の次元選択を行うことで、M個(図7の例ではM=3)のサブベクトル群230を生成する。このとき、サブベクトル群生成部11は、M個のサブベクトル群230同士で次元可変サブベクトル220の分散の度合いが近くなるように次元選択を行って、特徴ベクトル集合200からM個のサブベクトル群230を生成する。このため、異なるサブベクトル群230間で、次元可変サブベクトル220の次元数(要素の数)が同一にはならない。つまり、サブベクトル群生成部11が生成するM個のサブベクトル群230のうちの少なくとも1つのサブベクトル群230における次元可変サブベクトル220の要素の数が、他のサブベクトル群230における次元可変サブベクトル220の要素の数と異なる。
図8は、サブベクトル群生成部11による処理の具体例を示すフローチャートである。サブベクトル群生成部11は、例えば図8のフローチャートで示す処理を実施することにより、次元可変サブベクトル220の分散の度合いが同程度のM個のサブベクトル群230を生成することができる。
サブベクトル群生成部11は、まず、特徴ベクトル集合200とクラスタ数上限値Tを取得する(ステップS101)。クラスタ数上限値Tは、ユーザにより設定される超パラメタである。
次に、サブベクトル群生成部11は、特徴ベクトル集合200に含まれるN個の特徴ベクトル210について、各次元でX−meansクラスタリングを行い、次元ごとに最適クラスタ数Cを算出する(ステップS102)。
次に、サブベクトル群生成部11は、最適クラスタ数Cが小さい順に、特徴ベクトル210から最適クラスタ数Cが同じ次元を抽出してグループ化する(ステップS103)。そして、グループに属する次元の数Gとそのグループに属する次元の最適クラスタ数Cとからサブベクトル群230の最適クラスタ数Gを算出し、Gがクラスタ数上限値T以下であるか否かを判定する(ステップS104)。
ここで、Gがクラスタ数上限値T以下であれば(ステップS104:Yes)、サブベクトル群生成部11は、そのグループ(特徴ベクトル210から抽出された次元の組み合わせ)を次元可変サブベクトル220とし、特徴ベクトル集さ200に含まれるN個の特徴ベクトル210に対応するN個の次元可変サブベクトル220からなるサブベクトル群230を出力する(ステップS105)。
一方、Gがクラスタ数上限値Tを超えている場合は(ステップS104:No)、サブベクトル群生成部11は、そのグループを分割し(ステップS106)、分割されたグループに属する次元の数Gが1になったか否かを判定する(ステップS107)。そして、分割されたグループに属する次元の数Gが1でなければ(ステップS107:No)、ステップS104に戻って以降の処理を繰り返す。つまり、サブベクトル群生成部11は、サブベクトル群230の最適クラスタ数Gがクラスタ数上限値Tを超えているグループについては、Gがクラスタ数上限値T以下になるまで、または、グループに属する次元の数Gが1になるまで、そのグループを分割する。そして、サブベクトル群230の最適クラスタ数Gがクラスタ数上限値T以下になる(ステップS104:Yes)、または、グループに属する次元の数Gが1になると(ステップS107:Yes)、ステップS105に進んでサブベクトル群230を出力する。
その後、サブベクトル群生成部11は、特徴ベクトル210から全ての次元を抽出したか否かを判定し(ステップS108)、特徴ベクトル210から抽出していない次元があれば(ステップS108:No)、ステップS103に戻って以降の処理を繰り返す。そして、特徴ベクトル210から全ての次元を抽出してステップS105の処理が完了すると、図8のフローチャートで示す一連の処理を終了する。
コードブック生成部12は、サブベクトル群生成部11により生成されたM個のサブベクトル群230ごとに、N個の次元可変サブベクトル220をクラスタリングして、各クラスタの代表ベクトルをインデックスと対応付けたコードブック240を生成する。
例えば、コードブック生成部12は、M個のサブベクトル群230ごとに、サブベクトル群230の生成時に推定される最適クラスタ数GをKとするK−meansクラスタリングを行うことで、コードブック240を生成する。あるいは、コードブック生成部12は、M個のサブベクトル群230ごとにX−meansクラスタリングを行うことで、コードブック240を生成するようにしてもよい。
図9は、コードブック生成部12がコードブック240を生成する様子を示す図であり、図7に例示した3個のサブベクトル群230からコードブック240を生成する様子を示している。コードブック生成部12は、上述のように、サブベクトル群230ごとに、そのサブベクトル群230の最適クラスタ数に基づいて次元可変サブベクトル220をクラスタリングする。このため、コードブック生成部12により生成されるコードブック240は、図9に示すように、各サブベクトル群230に対応するクラスタ数が同一にはならない。つまり、M個のサブベクトル群230のうちの少なくとも1つのサブベクトル群230に対応するクラスタ数が他のサブベクトル群230に対応するクラスタ数とは異なるコードブック240が生成される。
変換部13は、コードブック生成部12により生成されたコードブック240を用いた直積量子化により、特徴ベクトル集合200に含まれるN個の特徴ベクトル210の各々を圧縮コード250に変換して、N個の圧縮コード250からなる圧縮コード集合260を出力する。コードブック生成部12が生成する上述のコードブック240を用いた直積量子化により、特徴ベクトル集合200に含まれるN個の特徴ベクトル210を効率よく量子化することができる。なお、変換部13が特徴ベクトル210を圧縮コード250に変換する方法は、使用するコードブック240が異なることを除いて、従来の一般的な方法と同様であるため、詳細な説明は省略する。
以上のように構成される本実施例のデータ処理装置10によれば、実利用可能な計算時間でコードブック240を生成することができ、このコードブック240を用いて特徴ベクトル210を直積量子化することで、特徴ベクトル210の量子化効率を改善することができる。また、特徴ベクトル210の量子化効率が改善されることにより、大量の特徴ベクトル210を少ないメモリで保有することが可能となる。
<第2実施例>
次に、第2実施例について説明する。本実施例は、上述の第1実施例に対し、量子化レベルを決定するパラメタとなるクラスタ数上限値Tを調整する機能を付加したものである。その他の機能は上述の第1実施例と同様であるため、以下では、本実施例に特有の機能についてのみ説明する。
実際の運用を考慮すると、特徴ベクトル集合200を圧縮コード集合260に変換する前後における検索精度の変動率をどこまで許容するか、あるいは、特徴ベクトル集合200を圧縮コード集合260に変換することによる圧縮率をどこまで高めるかといった目標が必要となる。このため、検索精度の変動率または圧縮率に対する目標値を超パラメタとして設定することが求められる。
ここで検索精度は、クエリを使って特徴ベクトル210を検索した回数をX、検索結果が正解であった数をYとしたときに、Y/Xで表される。また、検索結果の変動率は、特徴ベクトル集合200を圧縮コード集合260に変換する前の検索精度をZb、特徴ベクトル集合200を圧縮コード集合260に変換した後の検索精度をZaとしたときに、1−Za/Zbで表される。また、圧縮率は、特徴ベクトル集合200のデータサイズをx、圧縮コード集合260とコードブック240とを合せたデータサイズをyとしたときに、y/xで表される。
検索精度の変動率や圧縮率は、直積量子化の量子化レベルに応じて変化する。そこで本実施例では、検索精度の変動率または圧縮率が超パラメタとして設定された目標値に近づくように、量子化レベルを決定するパラメタとなるクラスタ数上限値Tを調整する。ただし、全てのクラスタ数上限を探索すると計算量が膨大になるため、後述の方法により探索を効率化する。
図10は、第2実施例に係るデータ処理装置10Bの機能的な構成例を示すブロック図である。本実施例のデータ処理装置10Bは、図10に示すように、上述の第1実施例のデータ処理装置10A(図6参照)に対し、パラメタ調整部14を追加した構成である。また、本実施例では、超パラメタとして、2つのクラスタ数上限値Ta,Tbが設定されるのに加え、検索精度の変動率または圧縮率に対する目標値と、探索の繰り返し回数とが設定される。
パラメタ調整部14は、上述の検索精度の変動率または圧縮率が、超パラメタとして設定された目標値に近づくように、後述の方法により2つのクラスタ数上限値Ta,Tbのいずれか一方を変更する操作を、超パラメタとして設定された繰り返し回数だけ繰り返すことにより、クラスタ数上限値Tを探索的に決定する。
本実施例のデータ処理装置10Bは、超パラメタとして設定された2つのクラスタ数上限値Ta,Tbを各々用いて、第1実施例と同様の直積量子化による特徴ベクトル集合200の圧縮を個別に行う。そして、上述の検索精度の変動率または圧縮率を、クラスタ数上限値Ta,Tbごとに計算する。このときの計算結果は、図11に示す3つのパタンに分類できる。パラメタ調整部14は、これら3つのパタンに応じて、クラスタ数上限値Ta,Tbのいずれか一方を以下のように変更し、最適なクラスタ数上限値Tを探索する。図11は、クラスタ数上限値Tの探索方法を説明する図であり、圧縮率を目標値に近づけるように最適なクラスタ数上限値Tを探索する場合の例を示している。
図11(a)は、クラスタ数上限値Taを用いた場合の圧縮率とクラスタ数上限値Tbを用いた場合の圧縮率との双方が目標値よりも高い場合を示している。この場合は、圧縮率が低くなるようにクラスタ数上限値Tを調整することが望ましい。そこで、パラメタ調整部14は、圧縮率が目標値に近い方のクラスタ数上限値T(図11(a)の例ではクラスタ数上限値Ta)を固定し、もう一方のクラスタ数上限値T(図11(a)の例ではクラスタ数上限値Tb)を変更する。このとき、図11(a)の例のように、固定するクラスタ数上限値Tを用いたときの圧縮率と、変更するクラスタ数上限値を用いたときの圧縮率との傾きが正であれば、変更するクラスタ数上限値Tを固定するクラスタ数上限値Tよりも小さい値に変更する。一方、この傾きが負であれば、変更するクラスタ数上限値Tを固定するクラスタ数上限値Tよりも大きい値に変更する。
図11(b)は、クラスタ数上限値Taを用いた場合の圧縮率とクラスタ数上限値Tbを用いた場合の圧縮率との双方が目標値よりも低い場合を示している。この場合は、圧縮率が高くなるようにクラスタ数上限値Tを調整することが望ましい。そこで、パラメタ調整部14は、圧縮率が目標値に近い方のクラスタ数上限値T(図11(b)の例ではクラスタ数上限値Tb)を固定し、もう一方のクラスタ数上限値T(図11(b)の例ではクラスタ数上限値Ta)を、図11(a)の例とは増減の方向が逆になるように変更する。すなわち、図11(b)の例のように、固定するクラスタ数上限値Tを用いたときの圧縮率と、変更するクラスタ数上限値を用いたときの圧縮率との傾きが正であれば、変更するクラスタ数上限値Tを固定するクラスタ数上限値Tよりも大きい値に変更する。一方、この傾きが負であれば、変更するクラスタ数上限値Tを固定するクラスタ数上限値Tよりも小さい値に変更する。
図11(c)は、クラスタ数上限値Taを用いた場合の圧縮率とクラスタ数上限値Tbを用いた場合の圧縮率との一方が目標値よりも高く、他方が目標値よりも低い場合を示している。この場合は、2つのクラスタ数上限値Ta,Tbの間に最適なクラスタ数上限値Tが存在する可能性が高い。そこで、パラメタ調整部14は、圧縮率が目標値に近い方のクラスタ数上限値T(図11(c)の例ではクラスタ数上限値Ta)を固定し、もう一方のクラスタ数上限値T(図11(c)の例ではクラスタ数上限値Tb)を、2つのクラスタ数上限値Ta,Tbの中間の値に変更する。
図11(a)、図11(b)および図11(c)に示す3つのパタンに対応した処理は、検索精度の変動率を目標値にするときも同様である。すなわち、クラスタ数上限値Taを用いた場合の検索精度の変動率とクラスタ数上限値Tbを用いた場合の検索精度の変動率との双方が目標値よりも高い場合は、図11(a)の例と同様にクラスタ数上限値Ta,Tbのいずれか一方を変更し、クラスタ数上限値Taを用いた場合の検索精度の変動率とクラスタ数上限値Tbを用いた場合の検索精度の変動率との双方が目標値よりも低い場合は、図11(b)の例と同様にクラスタ数上限値Ta,Tbのいずれか一方を変更し、クラスタ数上限値Taを用いた場合の検索精度の変動率とクラスタ数上限値Tbを用いた場合の検索精度の変動率との一方が目標値よりも高く、他方が目標値よりも低い場合は、図11(c)の例と同様にクラスタ数上限値Ta,Tbのいずれか一方を変更すればよい。
本実施例のデータ処理装置10Bは、パラメタ調整部14がクラスタ数上限値Ta,Tbのいずれか一方を変更するたびに、変更されたクラスタ数上限値Tを用いて第1実施例と同様の直積量子化による特徴ベクトル集合200の圧縮を行い、上述の検索精度の変動率または圧縮率を計算する。そして、超パラメタとして設定された繰り返し回数に達するまで、上述の処理を繰り返すことで、最適なクラスタ数上限値Tを効率的に絞り込むことができる。
以上のように、本実施例では、直積量子化による検索精度の変動率または圧縮率が設定された目標値に近づくようにクラスタ数上限値Tを探索的に決定するようにしているので、上述の第1実施例と同様に特徴ベクトル210の量子化効率を改善できることに加え、目的に合せたパラメタ調整を容易に行うことができるといった効果が得られる。
<第3実施例>
次に、第3実施例について説明する。本実施例は、上述の第2実施例に対し、特徴ベクトル集合200に新たな特徴ベクトル210が追加された場合に、コードブック240の更新が必要か否かを判定し、更新が必要と判定した場合のみコードブック240を更新する機能を付加したものである。その他の機能は上述の第1実施例と同様であるため、以下では、本実施例に特有の機能についてのみ説明する。
実際の運用では、保有すべき特徴ベクトル集合200に新たな特徴ベクトル210を随時追加することが求められる場合がある。ここで、特徴ベクトル集合200に新たな特徴ベクトル210が追加されるたびにコードブック240を更新すると、コードブック240の更新に多くの計算時間を要することとなり効率的でない。そこで本実施例では、特徴ベクトル集合200に新たな特徴ベクトル210が追加された場合に、コードブック240の更新が必要か否かを判定する。そして、更新が必要と判定した場合に、コードブック240の必要な部分だけ更新する。
コードブック240の更新が必要な場合とは、新たな特徴ベクトル210から生成される次元可変サブベクトル220のうちの少なくとも1つが、その次元可変サブベクトル220に対応するクラスタの分散の範囲に収まらない場合、つまり、新たな特徴ベクトル210の追加によって、少なくともいずれかのサブベクトル群230のいずれかのクラスタの分散の範囲が拡大する場合である。本実施例では、このような場合に、分散の範囲が拡大するクラスタを更新の対象とし、コードブック240の当該クラスタの代表ベクトルを更新する。
図12は、第3実施例に係るデータ処理装置10Cの機能的な構成例を示すブロック図である。本実施例のデータ処理装置10Cは、図12に示すように、上述の第1実施例のデータ処理装置10A(図6参照)に対し、差分ルックアップテーブル生成部15と、コードブック更新部16とを追加した構成である。
差分ルックアップテーブル生成部15は、差分ルックアップテーブル280を生成する。差分ルックアップテーブル28は、元の特徴ベクトル集合200から生成されたM個のサブベクトル群230の各々について、クラスタごとの次元可変サブベクトル220の分散の範囲を示す値をそのクラスタのインデックスと対応付けたルックアップテーブルである。クラスタにおける次元可変サブベクトル220の分散の範囲は、そのクラスタの代表ベクトルとそのクラスタに属する次元可変サブベクトル220との間の距離の最大値で表すことができる。したがって、クラスタごとにそのクラスタの代表ベクトルと次元可変サブベクトル220との間の距離の最大値をインデックスに対応付けて格納することで、差分ルックアップテーブル280を生成することができる。
図13は、差分ルックアップテーブル280の一例を示す図である。差分ルックアップテーブル280は、図13に示すように、上述のコードブック240と同様の形式のルックアップテーブルであるが、サブベクトル群230ごとのクラスタのインデックスに対応付けて格納される要素値が、そのクラスタの代表ベクトルではなく、そのクラスタの代表ベクトルと次元可変サブベクトル220との間の距離の最大値(そのクラスタの分散の範囲を示す値)となっている。
差分ルックアップテーブル280は、例えば、コードブック240の生成時にコードブック240と併せて生成することができる。すなわち、サブベクトル群230ごとに次元可変サブベクトル220をクラスタリングして各クラスタの代表ベクトルを求めた後、それぞれのクラスタごとに、そのクラスタの代表ベクトルとそのクラスタに属するそれぞれの次元可変サブベクトル220と間の距離を求める。そして、求めた距離の最大値をそのクラスタのインデックスと対応付けることにより、図13に示したような差分ルックアップテーブル280を生成することができる。
コードブック更新部16は、特徴ベクトル集合200に新たな特徴ベクトル210が追加された場合に、新たな特徴ベクトル210から上述の第1実施例と同様の手法によりN個の次元可変サブベクトル220を生成する。そして、これらN個の次元可変サブベクトル220の各々について、その次元可変サブベクトル220に対応するサブベクトル群230(元の特徴ベクトル集合200から生成されたM個のサブベクトル群230のうちの1つ)のクラスタのうち、その次元可変サブベクトル220に最も近い代表ベクトルを持つクラスタを求める。そして、コードブック更新部16は、上述の差分ルックアップテーブル280を参照し、新たな特徴ベクトル210から生成した次元可変サブベクトル220とクラスタの代表ベクトルとの間の距離を、そのクラスタのインデックスに対応付けられて差分ルックアップテーブル280に格納された要素値と比較することにより、新たな特徴ベクトル210から生成した次元可変サブベクトル220がクラスタの分散の範囲に収まるか否かを判定する。すなわち、コードブック更新部16は、新たな特徴ベクトル210から生成した次元可変サブベクトル220とクラスタの代表ベクトルとの間の距離が差分ルックアップテーブル280に格納された要素値以下であれば、分散の範囲に収まると判定し、新たな特徴ベクトル210から生成した次元可変サブベクトル220とクラスタの代表ベクトルとの間の距離が差分ルックアップテーブル280に格納された要素値よりも大きければ、分散の範囲に収まらないと判定する。
コードブック更新部16は、新たな特徴ベクトル210から生成した次元可変サブベクトル220の全てに対して以上の判定を行い、全ての次元可変サブベクトル220が対応するクラスタの分散の範囲に収まる場合は、コードブック240の更新は不要と判定する。一方、対応するクラスタの分散の範囲に収まらない次元可変サブベクトル220がある場合は、コードブック240の更新が必要と判定する。そして、コードブック更新部16は、新たな特徴ベクトル210から生成した次元可変サブベクトル220が加わることで分散の範囲が拡大することになるクラスタを更新の対象とし、新たな特徴ベクトル210から生成した次元可変サブベクトル220も含め、そのクラスタに属する次元可変サブベクトル220に対して、X−meansクラスタリングを行う。そして、このX−meansクラスタリングにより得られたクラスタのセントロイドの値で、コードブック240の中で更新の対象となるクラスタの代表ベクトルを更新する。
このとき、コードブック更新部16は、X−meansクラスタリングにより複数のセントロイドが得られた場合は、コードブック240の中で更新の対象となるクラスタを複数のクラスタに分割する。そして、分割後のクラスタごとに、そのセントロイドの値を代表ベクトルとしてインデックスと対応付ける。この結果、コードブック240のインデックスの数が増えることになる。
図14は、コードブック更新部16による処理の概要を説明する図であり、次元Xと次元Xからなる2次元の次元可変サブベクトル220をサブベクトル空間にマッピングした様子を示している。ここでは、元の特徴ベクトル集合200から生成されたサブベクトル群230に対するクラスタリングにより、各次元可変サブベクトル220が、図14(a)に示すように、クラスタC1とクラスタC2の2つのクラスタにクラスタリングされているものとする。
ここで、新たな特徴ベクトル210から生成した新たな次元可変サブベクトル220が、特徴ベクトル空間上で図14(b)に示すようにマッピングされる場合を考える。この図14(b)に示す例では、新たな次元可変サブベクトル220は、クラスタC2の分散の範囲R_C2内に収まっている。したがって、コードブック更新部16は、次元Xと次元Xからなる2次元の次元可変サブベクトル220については、新たな特徴ベクトル210の追加によるコードブック240の更新は不要と判断する。そして、他の次元の次元可変サブベクトル220についても同様にコードブック240の更新が不要と判断すれば、コードブック更新部16は、新たな特徴ベクトル210が特徴ベクトル集合200に追加されてもコードブック240を更新しない。
次に、新たに追加される特徴ベクトル210が複数あり、これら複数の特徴ベクトル210の各々から生成した次元Xと次元Xからなる2次元の次元可変サブベクトル220が、特徴ベクトル空間上で図14(c)に示すようにマッピングされる場合を考える。ここでは、複数の新たな次元可変サブベクトル220はいずれも、クラスタC1の代表ベクトルよりはクラスタC2の代表ベクトルに近いものとする。この図14(c)に示す例では、新たな次元可変サブベクトル22のいくつかが、クラスタC2の分散の範囲R_C2から外れている。したがって、コードブック更新部16は、クラスタC2を更新の対象とする。そして、クラスタC2に属する元の次元可変サブベクトル220と新たな次元可変サブベクトル220とを対象にX−meansクラスタリングを行い、このX−meansクラスタリングにより得られたセントロイドの値で、コードブック240のクラスタC2の代表ベクトルを更新する。
このとき、X−meansクラスタリングにより図14(d)に示すように2つのセントロイドが得られた場合、つまり、X−meansクラスタリングによりクラスタC2が2つのクラスタC2a,C2bに分割される場合、コードブック更新部16は、コードブック240のクラスタC2を2つのクラスタC2a,C2bに分割し、それぞれのセントロイドをクラスタC2a,C2bの代表ベクトルとして、個別にインデックスに対応付ける。以上の処理により、特徴ベクトル集合200に新たな特徴ベクトル210が追加されたときのコードブック240の更新を効率よく行うことができる。
以上のように、本実施例では、特徴ベクトル集合200に新たな特徴ベクトル210が追加された場合に、コードブック240の更新が必要か否かを判定し、更新が必要と判定した場合のみコードブック240を更新するようにしているので、上述の第1実施例と同様に特徴ベクトル210の量子化効率を改善できることに加え、新たな特徴ベクトル210の追加によるコードブック240の更新を効率よく行うことができるといった効果が得られる。
<補足説明>
上述した各実施例のデータ処理装置10A,10B,10C(以下、総称して「データ処理装置10」と表記する)は、一例として、一般的なコンピュータとしてのハードウェアを用いた実行環境で動作するプログラムによる実装が可能である。この場合、データ処理装置10における上述の各機能的な構成要素(サブベクトル群生成部11、コードブック生成部12、変換部13、パラメタ調整部14、差分ルックアップテーブル生成部15、コードブック更新部16)は、ハードウェアとソフトウェア(プログラム)との協働により実現される。
図15は、データ処理装置10のハードウェア構成例を示すブロック図である。データ処理装置10は、例えば図15に示すように、CPU(Central Processing Unit)101などのプロセッサ回路、ROM(Read Only Memory)102やRAM(Random Access Memory)103などの記憶装置、表示パネルや各種操作デバイスが接続される入出力I/F104、ネットワークに接続して通信を行う通信I/F105、各部を接続するバス106などを備えた、一般的なコンピュータを利用したハードウェア構成とすることができる。
また、上述した構成のハードウェア上で実行されるプログラムは、例えば、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。また、上述した構成のハードウェア上で実行されるプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述した構成のハードウェア上で実行されるプログラムをインターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、上述した構成のハードウェア上で実行されるプログラムを、ROM102などに予め組み込んで提供するように構成してもよい。
上述した構成のハードウェア上で実行されるプログラムは、データ処理装置10の各機能的な構成要素を含むモジュール構成となっており、例えば、CPU101(プロセッサ回路)が上記記録媒体からプログラムを読み出して実行することにより、上述した各部がRAM103(主記憶)上にロードされ、RAM103(主記憶)上に生成されるようになっている。なお、データ処理装置10の各機能的な構成要素は、複数のコンピュータに跨って実現される構成であってもよい。また、上述の機能的な構成要素の一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実現することも可能である。
以上述べた少なくとも一つの実施形態によれば、特徴ベクトルを効率よく量子化できる。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10(10A,10B,10C) データ処理装置
11 サブベクトル群生成部
12 コードブック生成部
13 変換部
14 パラメタ調整部
15 差分ルックアップテーブル生成部
16 コードブック更新部
200 特徴ベクトル集合
210 特徴ベクトル(D次元特徴ベクトル)
220 サブベクトル(次元可変サブベクトル)
230 サブベクトル群
240 コードブック
250 圧縮コード
260 圧縮コード集合
280 差分ルックアップテーブル

Claims (8)

  1. N個のD次元特徴ベクトルからなる特徴ベクトル集合から、M個(ただし、M<D)のサブベクトル群を生成するサブベクトル群生成部であって、前記M個のサブベクトル群の各々は、前記N個のD次元特徴ベクトルの各々から得られたN個の次元可変サブベクトルからなり、前記N個の次元可変サブベクトルの各々は、前記D次元特徴ベクトルから抽出された1以上の次元の値を要素とし、前記M個のサブベクトル群のうちの少なくとも1つのサブベクトル群における前記次元可変サブベクトルの要素の数が他のサブベクトル群における前記次元可変サブベクトルの要素の数と異なる、前記サブベクトル群生成部と、
    前記M個のサブベクトル群ごとに、前記N個の次元可変サブベクトルをクラスタリングして、各クラスタの代表ベクトルをインデックスと対応付けたコードブックを生成するコードブック生成部と、
    前記コードブックを用いた直積量子化により、前記N個のD次元特徴ベクトルの各々を、M個のインデックスの組み合わせからなる圧縮コードに変換する変換部と、
    を備え
    前記サブベクトル群生成部は、前記M個のサブベクトル群同士で前記次元可変サブベクトルの分散の度合いが近くなるように、前記特徴ベクトル集合から前記M個のサブベクトル群を生成する
    データ処理装置。
  2. 前記コードブック生成部は、前記M個のサブベクトル群ごとに、推定されるサブベクトル群の最適クラスタ数に基づいて前記N個の次元可変サブベクトルをクラスタリングして、前記M個のサブベクトル群のうちの少なくとも1つのサブベクトル群に対応するクラスタ数が他のサブベクトル群に対応するクラスタ数と異なる前記コードブックを生成する
    請求項1に記載のデータ処理装置。
  3. 前記サブベクトル群生成部は、前記N個のD次元特徴ベクトルの各次元について最適クラスタ数Cを求めて最適クラスタ数Cが同じ次元をグループ化し、GC(ただし、Gはグループに属する次元の数)で表されるサブベクトル群の最適クラスタ数がクラスタ数上限値Tを超えるグループについては、GC≦TまたはG=1になるまでグループを分割することにより、前記特徴ベクトル集合から前記M個のサブベクトル群を生成する
    請求項1に記載のデータ処理装置。
  4. 前記N個のD次元特徴ベクトルの各々を前記圧縮コードに変換する前後における検索精度の変動率、または、前記N個のD次元特徴ベクトルの各々を前記圧縮コードに変換することによる圧縮率が、設定された目標値に近づくように、前記クラスタ数上限値Tを探索的に決定するパラメタ調整部をさらに備える
    請求項3に記載のデータ処理装置。
  5. 前記M個のサブベクトル群の各々について、前記クラスタごとの前記次元可変サブベクトルの分散の範囲を示す値を前記インデックスと対応付けた差分ルックアップテーブルを生成する差分ルックアップテーブル生成部と、
    前記特徴ベクトル集合に新たな特徴ベクトルが追加された場合に、新たな特徴ベクトルから生成される次元可変サブベクトルの各々のクラスタを求め、前記差分ルックアップテーブルを参照して、新たな特徴ベクトルから生成される全ての次元可変サブベクトルが対応するクラスタの分散の範囲に収まるか否かを判定し、対応するクラスタの分散の範囲に収まらない次元可変サブベクトルがあれば、前記コードブックの当該クラスタの代表ベクトルを更新するコードブック更新部と、をさらに備える
    請求項1乃至4のいずれか一項に記載のデータ処理装置。
  6. 前記コードブック更新部は、更新の対象となるクラスタを複数のクラスタに分割し、分割後のクラスタごとに代表ベクトルをインデックスと対応付ける
    請求項5に記載のデータ処理装置。
  7. N個のD次元特徴ベクトルからなる特徴ベクトル集合から、M個(ただし、M<D)のサブベクトル群を生成するサブベクトル群生成工程であって、前記M個のサブベクトル群の各々は、前記N個のD次元特徴ベクトルの各々から得られたN個の次元可変サブベクトルからなり、前記N個の次元可変サブベクトルの各々は、前記D次元特徴ベクトルから抽出された1以上の次元の値を要素とし、前記M個のサブベクトル群のうちの少なくとも1つのサブベクトル群における前記次元可変サブベクトルの要素の数が他のサブベクトル群における前記次元可変サブベクトルの要素の数と異なる、前記サブベクトル群生成工程と、
    前記M個のサブベクトル群ごとに、前記N個の次元可変サブベクトルをクラスタリングして、各クラスタの代表ベクトルをインデックスと対応付けたコードブックを生成するコードブック生成工程と、
    前記コードブックを用いた直積量子化により、前記N個のD次元特徴ベクトルの各々を、M個のインデックスの組み合わせからなる圧縮コードに変換する変換工程と、
    を含み、
    前記サブベクトル群生成工程は、前記M個のサブベクトル群同士で前記次元可変サブベクトルの分散の度合いが近くなるように、前記特徴ベクトル集合から前記M個のサブベクトル群を生成する
    データ処理方法。
  8. コンピュータに、
    N個のD次元特徴ベクトルからなる特徴ベクトル集合から、M個(ただし、M<D)のサブベクトル群を生成するサブベクトル群生成部であって、前記M個のサブベクトル群の各々は、前記N個のD次元特徴ベクトルの各々から得られたN個の次元可変サブベクトルからなり、前記N個の次元可変サブベクトルの各々は、前記D次元特徴ベクトルから抽出された1以上の次元の値を要素とし、前記M個のサブベクトル群のうちの少なくとも1つのサブベクトル群における前記次元可変サブベクトルの要素の数が他のサブベクトル群における前記次元可変サブベクトルの要素の数と異なる、前記サブベクトル群生成部の機能と、
    前記M個のサブベクトル群ごとに、前記N個の次元可変サブベクトルをクラスタリングして、各クラスタの代表ベクトルをインデックスと対応付けたコードブックを生成するコードブック生成部の機能と、
    前記コードブックを用いた直積量子化により、前記N個のD次元特徴ベクトルの各々を、M個のインデックスの組み合わせからなる圧縮コードに変換する変換部の機能と、
    を実現させ
    前記サブベクトル群生成部は、前記M個のサブベクトル群同士で前記次元可変サブベクトルの分散の度合いが近くなるように、前記特徴ベクトル集合から前記M個のサブベクトル群を生成する
    プログラム。
JP2018024700A 2018-02-15 2018-02-15 データ処理装置、データ処理方法およびプログラム Active JP6640896B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018024700A JP6640896B2 (ja) 2018-02-15 2018-02-15 データ処理装置、データ処理方法およびプログラム
CN201810695673.1A CN110209665B (zh) 2018-02-15 2018-06-29 数据处理装置、数据处理方法以及记录介质
US16/126,557 US10853400B2 (en) 2018-02-15 2018-09-10 Data processing device, data processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018024700A JP6640896B2 (ja) 2018-02-15 2018-02-15 データ処理装置、データ処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019139670A JP2019139670A (ja) 2019-08-22
JP6640896B2 true JP6640896B2 (ja) 2020-02-05

Family

ID=67541723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018024700A Active JP6640896B2 (ja) 2018-02-15 2018-02-15 データ処理装置、データ処理方法およびプログラム

Country Status (3)

Country Link
US (1) US10853400B2 (ja)
JP (1) JP6640896B2 (ja)
CN (1) CN110209665B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936630B2 (en) * 2018-09-13 2021-03-02 Microsoft Technology Licensing, Llc Inferring topics with entity linking and ontological data

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52143648A (en) 1976-05-26 1977-11-30 Hitachi Ltd Call registering circuit for elevator
JP2641209B2 (ja) 1987-05-26 1997-08-13 株式会社リコー 特徴ベクトルの圧縮方法
US4959870A (en) * 1987-05-26 1990-09-25 Ricoh Company, Ltd. Character recognition apparatus having means for compressing feature data
US5477221A (en) * 1990-07-10 1995-12-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Pipeline synthetic aperture radar data compression utilizing systolic binary tree-searched architecture for vector quantization
JP3151874B2 (ja) 1991-02-26 2001-04-03 日本電気株式会社 音声パラメータ符号化方式および装置
US5339164A (en) * 1991-12-24 1994-08-16 Massachusetts Institute Of Technology Method and apparatus for encoding of data using both vector quantization and runlength encoding and using adaptive runlength encoding
JP2973805B2 (ja) * 1993-12-10 1999-11-08 日本電気株式会社 標準パターン作成装置
US5692100A (en) * 1994-02-02 1997-11-25 Matsushita Electric Industrial Co., Ltd. Vector quantizer
US5577135A (en) * 1994-03-01 1996-11-19 Apple Computer, Inc. Handwriting signal processing front-end for handwriting recognizers
US5890110A (en) * 1995-03-27 1999-03-30 The Regents Of The University Of California Variable dimension vector quantization
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
JPH11308112A (ja) * 1998-04-17 1999-11-05 Matsushita Electric Ind Co Ltd コードブック作成方法およびコードブック作成装置
US6256607B1 (en) * 1998-09-08 2001-07-03 Sri International Method and apparatus for automatic recognition using features encoded with product-space vector quantization
AU1445100A (en) * 1998-10-13 2000-05-01 Hadasit Medical Research Services & Development Company Ltd Method and system for determining a vector index to represent a plurality of speech parameters in signal processing for identifying an utterance
AU2000276404A1 (en) * 2000-09-30 2002-04-15 Intel Corporation (A Corporation Of Delaware) Method, apparatus, and system for building a compact model for large vocabulary continuous speech recognition (lvcsr) system
JP2003256466A (ja) * 2002-03-04 2003-09-12 Denso Corp 適応的情報検索システム
CN100530979C (zh) * 2006-09-13 2009-08-19 华为技术有限公司 一种矢量量化方法及矢量量化器
CN101419802B (zh) * 2007-10-25 2011-07-06 华为技术有限公司 用于语音编码的矢量量化方法及矢量量化器
US8077994B2 (en) * 2008-06-06 2011-12-13 Microsoft Corporation Compression of MQDF classifier using flexible sub-vector grouping
US8676729B1 (en) * 2011-06-14 2014-03-18 Narus, Inc. Network traffic classification using subspace clustering techniques
JP5637939B2 (ja) 2011-06-28 2014-12-10 Kddi株式会社 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム
JP5826049B2 (ja) * 2012-01-20 2015-12-02 Kddi株式会社 ユーザが搭乗している移動車両を推定する移動車両推定方法、移動端末及びプログラム
US10013477B2 (en) * 2012-11-19 2018-07-03 The Penn State Research Foundation Accelerated discrete distribution clustering under wasserstein distance
JP6171544B2 (ja) * 2013-05-08 2017-08-02 カシオ計算機株式会社 音声処理装置、音声処理方法及びプログラム
US9946935B2 (en) * 2013-07-17 2018-04-17 Nec Corporation Object tracking device, object tracking method, and object tracking program
JP2015207047A (ja) * 2014-04-17 2015-11-19 日本電信電話株式会社 類似特徴抽出装置、方法、及びプログラム
US10616038B2 (en) * 2014-06-24 2020-04-07 Vmware, Inc. Method and system for clustering event messages and managing event-message clusters
US20180341805A1 (en) * 2015-11-06 2018-11-29 Thomson Licensing Method and Apparatus for Generating Codebooks for Efficient Search

Also Published As

Publication number Publication date
JP2019139670A (ja) 2019-08-22
US10853400B2 (en) 2020-12-01
CN110209665A (zh) 2019-09-06
CN110209665B (zh) 2023-07-28
US20190251203A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
JP5755822B1 (ja) 類似度算出システム、類似度算出方法およびプログラム
CN111868710B (zh) 搜索大规模非结构化数据的随机提取森林索引结构
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
JP5436346B2 (ja) 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム
US11971906B2 (en) Clustering apparatus, clustering method, program and data structure
US9298757B1 (en) Determining similarity of linguistic objects
CN108027816B (zh) 数据管理系统、数据管理方法及记录介质
WO2008036302A2 (en) A method and an apparatus to perform feature similarity mapping
Ozan et al. K-subspaces quantization for approximate nearest neighbor search
JP2017151926A (ja) 情報処理プログラム、情報処理装置および情報処理方法
JP6640896B2 (ja) データ処理装置、データ処理方法およびプログラム
JP6311000B1 (ja) 生成装置、生成方法、及び生成プログラム
Jain et al. Approximate search with quantized sparse representations
JP5432936B2 (ja) ランキングモデル選択機能を有する文書検索装置、ランキングモデル選択機能を有する文書検索方法およびランキングモデル選択機能を有する文書検索プログラム
JP5637939B2 (ja) 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム
WO2021214935A1 (ja) 学習装置、検索装置、学習方法、検索方法及びプログラム
JP2009116593A (ja) 単語ベクトル生成装置、単語ベクトル生成方法、プログラムおよびプログラムを記録した記録媒体
CN113609313A (zh) 数据处理方法、装置、电子设备和存储介质
JP6195365B2 (ja) ベクトル符号化プログラム、装置及び方法
Liu et al. Weighted two-step aggregated VLAD for image retrieval
Chiu et al. Effective product quantization-based indexing for nearest neighbor search
JP2013140494A (ja) 高次元の特徴ベクトルを検索する検索装置及びプログラム
JP7353330B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2019008640A (ja) 類似度計算装置及び類似度計算方法
JP6562984B2 (ja) 生成装置、生成方法、及び生成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191226

R150 Certificate of patent or registration of utility model

Ref document number: 6640896

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150