(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-07
(45)【発行日】2022-04-15
(54)【発明の名称】ディープバイナリハッシュおよび量子化を介した効率的なクロスモーダル検索
(51)【国際特許分類】
G06F 16/903 20190101AFI20220408BHJP
G06T 7/00 20170101ALI20220408BHJP
G06N 3/02 20060101ALI20220408BHJP
【FI】
G06F16/903
G06T7/00 350C
G06N3/02
(21)【出願番号】P 2020209580
(22)【出願日】2020-12-17
【審査請求日】2020-12-17
(32)【優先日】2019-12-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100110135
【氏名又は名称】石井 裕一郎
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100163452
【氏名又は名称】南郷 邦臣
(74)【代理人】
【識別番号】100180312
【氏名又は名称】早川 牧子
(72)【発明者】
【氏名】ヤン シ
(72)【発明者】
【氏名】鄭 容朱
【審査官】原 秀人
(56)【参考文献】
【文献】特開2017-041206(JP,A)
【文献】特開2011-103082(JP,A)
【文献】中国特許出願公開第107256271(CN,A)
【文献】特開2009-163466(JP,A)
【文献】入江 豪,メディア処理のための機械学習 ~ビッグデータ活用を支えるキーテクノロジー~ 3章 効率的な類似画像検索のためのハッシング,映像情報メディア学会誌,日本,一般社団法人映像情報メディア学会,2015年02月01日, 第69巻 第2号,pp. 124--130
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06T 7/00
G06N 3/02
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムによって実行され、異なるモーダル性を有するクエリアイテムと意味論的な意味が類似するデータベースアイテムをクロスモーダル検索するための方法であって、
訓練フェーズでは、
(a)データアイテムのペアを複数含む訓練データセットであって、
各ペアは、第1モーダル性のデータアイテムと、第2モーダル性のデータアイテムと、を含み、第1モーダル性と第2モーダル性は異なり、
ペアの第1部分集合は、意味論的な意味が類似するデータアイテムを含み、
ペアの第2部分集合は、意味論的な意味が非類似のデータアイテムを含み、
各ペアは、ペア内のデータアイテムの意味論的な意味が類似か非類似かに基づいてラベルが付けられている
訓練データセットを取得し、
(b)第1ニューラルネットワークを当該訓練データセット内の第1モーダル性を有するデータアイテムに適用して、第1モーダル性を有するデータアイテムのそれぞれの特徴ベクトルを生成し、
(c)第2ニューラルネットワークを当該訓練データセット内の第2モーダル性を有するデータアイテムに適用して、第2モーダル性を有するデータアイテムのそれぞれの特徴ベクトルを生成し、
(d)バイナリハッシュコードと量子化コードを、訓練データセット内のデータアイテムの各々に対して、当該データアイテムの特徴ベクトルに基づいて生成し、
当該バイナリハッシュコードはバイナリハッシュアルゴリズムを使用して生成され、
当該量子化コードは量子化アルゴリズムを使用して生成され、
(e)損失関数を使用して損失値を計算し、
当該損失関数は、当該特徴ベクトルと、当該バイナリハッシュコードと、当該量子化コードと、が訓練データペア内の意味論的な類似関係を保存する度合を測り、
(f)当該第1ニューラルネットワークと、当該第2ニューラルネットワークと、当該バイナリハッシュアルゴリズムと、当該
量子化アルゴリズムと、のパラメータを、当該損失値が減るように更新し、
(g) ステップ(b)-(f)を何回か繰り返し、
予測フェーズでは、
(h)当該第1モーダル性を有する複数のデータベースアイテムを持つデータベースにアクセスし、
(i)当該第1ニューラルネットワークを当該データベースアイテムに適用して、当該データベースアイテムのそれぞれに対する特徴ベクトルを生成し、
(j)当該データベースアイテムに対する特徴ベクトルと、当該バイナリハッシュアルゴリズムと、当該量子化アルゴリズムと、を使用して、当該データベースアイテムのそれぞれに対して、バイナリハッシュコードと、量子化コードと、を生成し、
(k)第2モーダル性を有するクエリアイテムを受け取り、
(l)第2ニューラルネットワークを当該クエリアイテムに適用して当該クエリアイテムに対する特徴ベクトルを生成し、
(m)当該クエリアイテムに対する特徴ベクトルに基づいて、当該クエリアイテムに対するバイナリハッシュコードを生成し、
(n)当該クエリアイテムと、当該データベースアイテムの各々と、の距離を、当該クエリアイテムと当該データベースアイテムとのバイナリハッシュコードに基づいて計算し、
(o)当該計算された距離に基づいて、当該クエリアイテムとの近さが上位のデータベースアイテムの部分集合を選択し、
(p)当該部分集合内のデータベースアイテムの各々に対する量子化コードを使用して、当該クエリアイテムと、当該部分集合内のデータベースアイテムの各々と、の量子化距離を計算し、
(q)当該部分集合内のデータベースアイテムであって前記クエリアイテムに対する量子化距離が最も近いものを検索する
ことを特徴とする方法。
【請求項2】
当該第1モーダル性はテキストであり、当該第2モーダル性は画像である
ことを特徴とする請求項1に記載の方法。
【請求項3】
当該第1モーダル性は画像であり、当該第2モーダル性はテキストである
ことを特徴とする請求項1に記載の方法。
【請求項4】
当該損失関数は、
訓練データアイテムのペアの特徴ベクトル間の類似度を測る類似損失サブ関数と、
バイナリコード誤差を測るハッシュ損失サブ関数と、
量子化誤差を測る量子化損失サブ関数と、
を備えることを特徴とする請求項1から3のいずれか1項に記載の方法。
【請求項5】
当該損失関数は、当該訓練データセットに対する当該バイナリハッシュコードにおける+1と-1のバイナリビットの数の分布を測るバランス損失サブ関数を備えることを特徴とする請求項4に記載の方法。
【請求項6】
畳み込みニューラルネットワークを画像データアイテムに適用し、長・短期記憶ニューラルネットワークもしくは多層パーセプトロンをテキストデータアイテムに適用することを特徴とする請求項1から5のいずれか1項に記載の方法。
【請求項7】
当該バイナリハッシュコードに基づいて計算される距離は、ハミング距離であることを特徴とする請求項1から6のいずれか1項に記載の方法。
【請求項8】
当該量子化距離は、当該クエリアイテムの特徴ベクトルと、当該データベースアイテムの量子化コードと、を使用して計算される非対称量子化距離であることを特徴とする請求項1から7のいずれか1項に記載の方法。
【請求項9】
量子化コードが当該クエリアイテムに対して生成され、当該量子化距離は、当該クエリアイテムの量子化コードと、当該データベースアイテムの量子化コードと、を使用して計算されることを特徴とする請求項1から7のいずれか1項に記載の方法。
【請求項10】
コンピュータシステムによって実行され、異なるモーダル性を有するクエリアイテムと意味論的な意味が類似するデータベースアイテムをクロスモーダル検索を実行するシステムを訓練するための方法であって、
(a)データアイテムのペアを複数含む訓練データセットであって、
各ペアは、第1モーダル性のデータアイテムと、第2モーダル性のデータアイテムと、を含み、第1モーダル性と第2モーダル性は異なり、
ペアの第1部分集合は、意味論的な意味が類似するデータアイテムを含み、
ペアの第2部分集合は、意味論的な意味が非類似のデータアイテムを含み、
各ペアは、ペア内のデータアイテムの意味論的な意味が類似か非類似かに基づいてラベルが付けられている
訓練データセットを取得し、
(b)第1ニューラルネットワークを当該訓練データセット内の第1モーダル性を有するデータアイテムに適用して、第1モーダル性を有するデータアイテムのそれぞれの特徴ベクトルを生成し、
(c)第2ニューラルネットワークを当該訓練データセット内の第2モーダル性を有するデータアイテムに適用して、第2モーダル性を有するデータアイテムのそれぞれの特徴ベクトルを生成し、
(d)バイナリハッシュコードと量子化コードを、訓練データセット内のデータアイテムの各々に対して、当該データアイテムの特徴ベクトルに基づいて生成し、
当該バイナリハッシュコードはバイナリハッシュアルゴリズムを使用して生成され、
当該量子化コードは量子化アルゴリズムを使用して生成され、
(e)損失関数を使用して損失値を計算し、
当該損失関数は、当該特徴ベクトルと、当該バイナリハッシュコードと、当該量子化コードと、が訓練データペア内の意味論的な類似関係を保存する度合を測り、
(f)当該第1ニューラルネットワークと、当該第2ニューラルネットワークと、当該バイナリハッシュアルゴリズムと、当該
量子化アルゴリズムと、のパラメータを、当該損失値が減るように更新し、
(g) ステップ(b)-(f)を何回か繰り返す
ことを特徴とする方法。
【請求項11】
当該第1モーダル性はテキストであり、当該第2モーダル性は画像である
ことを特徴とする請求項10に記載の方法。
【請求項12】
当該第1モーダル性は画像であり、当該第2モーダル性はテキストである
ことを特徴とする請求項10に記載の方法。
【請求項13】
当該損失関数は、
訓練データアイテムのペアの特徴ベクトル間の類似度を測る類似損失サブ関数と、
バイナリコード損失を測るハッシュ損失サブ関数と、
量子化コード損失を測る量子化損失サブ関数と、
を備えることを特徴とする請求項10に記載の方法。
【請求項14】
当該損失関数は、当該訓練データセットに対する当該バイナリハッシュコードにおける+1と-1のバイナリビットの数の分布を測るバランス損失サブ関数を備えることを特徴とする請求項13に記載の方法。
【請求項15】
畳み込みニューラルネットワークを画像データアイテムに適用し、長・短期記憶ニューラルネットワークもしくは多層パーセプトロンをテキストデータアイテムに適用することを特徴とする請求項10から
14のいずれか1項に記載の方法。
【請求項16】
コンピュータシステムによって実行され、異なるモーダル性を有するクエリアイテムと意味論的な意味が類似するデータベースアイテムをクロスモーダル検索するための方法であって、
第1モーダル性を有する複数のデータベースアイテムを持つデータベースにアクセスし、
各データベースアイテムは、バイナリハッシュコードおよび量子化コードに対応付けられており、
各データベースアイテムに対する当該バイナリハッシュコードおよび当該量子化コードは、
当該データベースアイテムの特徴ベクトル表現に基いており、
当該データベースに対して第1ニューラルネットワークを適用することにより生成されたものであり、
第2モーダル性を有するクエリアイテムを受け取り、
第2ニューラルネットワークを当該クエリアイテムに適用して当該クエリアイテムに対する特徴ベクトルを生成し、
当該クエリアイテムに対する特徴ベクトルに基づいて、当該クエリアイテムに対するバイナリハッシュコードを生成し、
当該クエリアイテムと、当該データベースアイテムの各々と、の距離を、当該クエリアイテムと当該データベースアイテムとのバイナリハッシュコードに基づいて計算し、
当該計算された距離に基づいて、当該クエリアイテムとの近さが上位のデータベースアイテムの部分集合を選択し、
当該部分集合内のデータベースアイテムの各々に対する量子化コードを使用して、当該クエリアイテムと、当該部分集合内のデータベースアイテムの各々と、の量子化距離を計算し、
当該部分集合内のデータベースアイテムであって前記クエリアイテムに対する量子化距離が最も近いものを検索する
ことを特徴とする方法。
【請求項17】
当該第1モーダル性はテキストであり、当該第2モーダル性は画像である
ことを特徴とする請求項16に記載の方法。
【請求項18】
当該第1モーダル性は画像であり、当該第2モーダル性はテキストである
ことを特徴とする請求項16に記載の方法。
【請求項19】
当該バイナリハッシュコードに基づいて計算される距離は、ハミング距離であることを特徴とする請求項16から18のいずれか1項に記載の方法。
【請求項20】
当該量子化距離は、当該クエリアイテムの特徴ベクトルと、当該データベースアイテムの量子化コードと、を使用して計算される非対称量子化距離であることを特徴とする請求項16から19のいずれか1項に記載の方法。
【請求項21】
量子化コードが当該クエリアイテムに対して生成され、当該量子化距離は、当該クエリアイテムの量子化コードと、当該データベースアイテムの量子化コードと、を使用して計算されることを特徴とする請求項16から19のいずれか1項に記載の方法。
【請求項22】
異なるモーダル性を有するクエリアイテムと意味論的な意味が類似するデータベースアイテムをクロスモーダル検索するためのコンピュータシステムであって、当該
コンピュータシステムは、
1以上のプロセッサと、
前記1以上のプロセッサに接続される1以上のメモリユニットと、
を備え、
前記1以上のメモリユニットは、前記1以上のプロセッサにより実行される指令を格納し、
前記指令は、前記システムに、
第1モーダル性を有する複数のデータベースアイテムを持つデータベースにアクセスし、
各データベースアイテムは、バイナリハッシュコードおよび量子化コードに対応付けられており、
各データベースアイテムに対する当該バイナリハッシュコードおよび当該量子化コードは、
当該データベースアイテムの特徴ベクトル表現に基いており、
当該データベースに対して第1ニューラルネットワークを適用することにより生成されたものであり、
第2モーダル性を有するクエリアイテムを受け取り、
第2ニューラルネットワークを当該クエリアイテムに適用して当該クエリアイテムに対する特徴ベクトルを生成し、
当該クエリアイテムに対する特徴ベクトルに基づいて、当該クエリアイテムに対するバイナリハッシュコードを生成し、
当該クエリアイテムと、当該データベースアイテムの各々と、の距離を、当該クエリアイテムと当該データベースアイテムとのバイナリハッシュコードに基づいて計算し、
当該計算された距離に基づいて、当該クエリアイテムとの近さが上位のデータベースアイテムの部分集合を選択し、
当該部分集合内のデータベースアイテムの各々に対する量子化コードを使用して、当該クエリアイテムと、当該部分集合内のデータベースアイテムの各々と、の量子化距離を計算し、
当該部分集合内のデータベースアイテムであって前記クエリアイテムに対する量子化距離が最も近いものを検索する
処理を実行させることを特徴とする
コンピュータシステム。
【請求項23】
コンピュータに、異なるモーダル性を有するクエリアイテムと意味論的な意味が類似するデータベースアイテムをクロスモーダル検索させるためのプログラムであって、
前記プログラムは、前記コンピュータに、
第1モーダル性を有する複数のデータベースアイテムを持つデータベースにアクセスし、
各データベースアイテムは、バイナリハッシュコードおよび量子化コードに対応付けられており、
各データベースアイテムに対する当該バイナリハッシュコードおよび当該量子化コードは、
当該データベースアイテムの特徴ベクトル表現に基いており、
当該データベースに対して第1ニューラルネットワークを適用することにより生成されたものであり、
第2モーダル性を有するクエリアイテムを受け取り、
第2ニューラルネットワークを当該クエリアイテムに適用して当該クエリアイテムに対する特徴ベクトルを生成し、
当該クエリアイテムに対する特徴ベクトルに基づいて、当該クエリアイテムに対するバイナリハッシュコードを生成し、
当該クエリアイテムと、当該データベースアイテムの各々と、の距離を、当該クエリアイテムと当該データベースアイテムとのバイナリハッシュコードに基づいて計算し、
当該計算された距離に基づいて、当該クエリアイテムとの近さが上位のデータベースアイテムの部分集合を選択し、
当該部分集合内のデータベースアイテムの各々に対する量子化コードを使用して、当該クエリアイテムと、当該部分集合内のデータベースアイテムの各々と、の量子化距離を計算し、
当該部分集合内のデータベースアイテムであって前記クエリアイテムに対する量子化距離が最も近いものを検索する
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、クロスモーダルデータ検索(cross-modal data retrieval)のためのニューラルネットワークの使用に関し、より詳細には、ディープバイナリハッシュと量子化の両方を使用した、より効率の良いクロスモーダル検索システムに関する。
【背景技術】
【0002】
マルチメディアデータの膨張にともなって、異なるモーダル性(modality)を有するコンテンツをまたいだ近似最近傍検索(approximate nearest neighbor search)が注目を集めている。クロスモーダル検索は、異なるモーダル性を有するコンテンツをまたいで、意味論的な意味が類似するデータを検索することを目的とする。クロスモーダルデータ検索の一つの例は、写真と、その写真を正しく記述するテキストと、をマッチさせることである。
【0003】
クロスモーダル検索については、種々の公知の手法がある。ある手法では、異なるモーダル性を有するデータアイテムに対して密な特徴ベクトルを生成してから、種々の検索および順位付けアルゴリズム、たとえばコサイン類似度検索を当該密な特徴ベクトルに適用することにより、意味論的に類似するアイテムを、モーダル性をまたいで同定する(非特許文献1参照)。手作業で作られた統計およびさまざまなディープニューラルネットワークは、密な特徴を抽出するために使用される。しかしながら、密な特徴表現に基く検索および順位付けは、メモリ及び計算効率の制限を受けてしまう。
【0004】
効率上の問題を解決するため、クロスモーダル検索については種々の符号化手法が提案されている。これらの手法では、各データアイテムの特徴をコード化した表現は、そのアイテムについて抽出された特徴から作成される。ある手法では、手作業で特徴が付与されたデータアイテムに対するバイナリコードを生成し、ならびに、バイナリコードに基づいてアイテム間の距離を計算することを含む(非特許文献2, 3参照)。
【0005】
これらの手法は、密な特徴ベクトルに基づく検索よりも計算効率が良いものの、データを表現するためのバイナリコードの能力に制約があるため、正確さで劣る。この制約を克服するため、ある手法では、バイナリコードにかえて量子化コードを使用する(非特許文献4, 5参照)。
【先行技術文献】
【非特許文献】
【0006】
【文献】Amit Singhal, Modern information retrieval: A brief overview, Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, 34-43頁, 2001年
【文献】Shaishav Kumar and Raghavendra Udupa, Learning hash functions for cross-view similarity search, IJCAI, 1360-1365頁, 2001年
【文献】Shen and Dit-Yan Yeung, A probabilistic model for multi-modal hash function learning, KDD, 940-948頁, 2012年
【文献】Yue Cao, Mingsheng Long, Jianmin Wang, and Shichen Liu, Collective deep quantization for efficient cross-modal retrieval, AAAI, 3974-3980頁, 2017年
【文献】Erkun Yang, Cheng Deng, Chao Li, Wei Liu, Jie Li, and Dacheng Tao, Shared predictive cross-modal deep quantization, IEEE Transaction on Neural Networks and Learning Systems, 2019年
【発明の概要】
【発明が解決しようとする課題】
【0007】
量子化コードは連続値であるため、内在的なデータをよりよく表現することができるので、より正確な検索が可能となる。しかしながら、量子化に基づく手法は、バイナリハッシュに比べて、計算効率の点で劣る。
【0008】
したがって、バイナリコードに基づく既知手法よりも正確で、量子化コードに基づく既知手法よりも計算効率の良いクロスモーダル検索システムが求められている。
【課題を解決するための手段】
【0009】
本開示は、ディープバイナリハッシュと量子化を介したクロスモーダル検索のための新しい手法に関する。この手法は、コンピュータシステムによって実行される。訓練フェーズでは、システムは、ニューラルネットワークモデル、バイナリハッシュアルゴリズム、ならびに、量子化アルゴリズムを同時に学習し、これらが協働することで、システムは、2以上のデータモーダル性にわたる特徴ベクトル、バイナリハッシュコード、および、量子化コードを生成できるようになり、しかも、内在的なデータにおける意味論的な類似関係が、これらのデータ表現内に保存(preserve)される。
【0010】
特に、システムはニューラルネットワークを異なるモーダル性をもつラベル付けされた訓練データに適用して、訓練データに対する特徴ベクトルを生成し、ハイナリハッシュアルゴリズムと量子化アルゴリズムを使用して、特徴ベクトルから訓練データに対するバイナリハッシュコードと量子化コードをそれぞれ生成する。訓練データは、類似、あるいは、非類似にラベル付けされたデータアイテムの複数ペアからなり、各ペアは、少なくとも、異なるモーダル性を有する2つのデータアイテムを含む。学習された特徴とコードがモーダル性をまたがる訓練データアイテム間の類似あるいは非類似の関係を保存することを保証するため、well-definedな損失関数が使用される。
【0011】
一つの実施形態では、損失関数は4つの部分からなる。
(1)異なるモーダル性の間の類似度を密な特徴ベクトルに基づいて測るクロスエントロピー損失。
(2)密な特徴ベクトルと量子化された特徴との間の違いを測る量子化損失。
(3)密な特徴ベクトルとバイナリ化された特徴との間の違いを測るバイナリハッシュ損失。
(4)バイナリコード内のビット情報を最適化するためのバランス損失。
【0012】
多数の繰り返しに対して、システムは、特徴ベクトル、バイナリハッシュコード、および、量子化コードを訓練データに対して生成し、これらの表現に基いて損失値を計算し、その後に、ニューラルネットワーク、バイナリハッシュアルゴリズム、および、量子化アルゴリズムのパラメータを、損失値を最小化する方向へ更新する。このようにして、システムは、データモーダル性をまたいだ意味論的な類似関係を保存するようなニューラルネットワークモデル、バイナリハッシュアルゴリズム、および、量子化アルゴリズムを、同時に学習する。
【0013】
予測フェーズでは、システムは、データベース内のデータアイテムであって異なるモーダル性を有するクエリアイテムに意味論的に類似するものを検索する。予測フェーズにおいて問題となるデータモーダル性は、訓練フェーズにおけるそれと同じである。まず、システムは、意味論的な意味においてクエリアイテムに最も近いデータベースアイテムを同定するため、それぞれのデータベースアイテムとクエリアイテムとの間のバイナリハッシュコード距離に基づいて、データベース探索空間を絞り込む。クエリアイテムとデータベースアイテムに対するバイナリハッシュコードは、訓練フェーズで訓練されたニューラルネットワークとバイナリハッシュアルゴリズムに基づいて生成される。
【0014】
ついで、システムは、クエリアイテムと、絞り込みによって小さくなった探索空間内のデータと、の間の類似度を、当該小さくなった探索空間内のデータベースアイテムに対して生成された量子化コードを使用して(訓練フェーズで訓練された量子化アルゴリズムに基づいて)測る。システムは、量子化コードを使用することでクエリアイテムに意味論的マッチで最も近いものと同定される最近傍データベースアイテムを検索する。
【発明の効果】
【0015】
本手法の利点は、少なくとも以下の2点にある。
(1)検索効率。探索空間を単純なバイナリコードで絞り込むことによって、検索プロセスの速度は、密な特徴ベクトルのみ、あるいは、量子化コードのみに基づいて探索をする手法に比べて格段に向上する。
(2)検索品質。特徴学習は、ハッシュ損失と量子化損失を用いて律則される。量子化では限られた数の連続特徴表現を学習する一方で、バイナリハッシュでは、特徴を離散化する。2つのコード化手法の組み合わせは、特徴学習における正則化として働くので、システムは、データモーダル性をまたいだ類似あるいは非類似を保存するような良いデータ表現を学習することができる。
【図面の簡単な説明】
【0016】
【
図1】バイナリハッシュコードと量子化コードを使用するクロスモーダル検索を実行するためのシステムを訓練するための1つの実施形態に係る方法を示すフローチャートである。
【
図2A】バイナリハッシュコードと量子化コードを使用するクロスモーダル検索のための1つの実施形態に係る方法を示すフローチャートである。
【
図2B】バイナリハッシュコードと量子化コードを使用するクロスモーダル検索のための1つの実施形態に係る方法を示すフローチャートである。
【
図3A】訓練プロセスの例を図解して示す説明図である。
【
図3B】予測フェーズの例を図解して示す説明図である。
【
図4】バイナリハッシュコードと量子化コードを使用するクロスモーダルデータ検索を実行するシステム例のブロック図である。
【
図5】ベクトルxからバイナリハッシュコードh
xへの計算例を示す説明図である。
【
図6】辞書Cを用いてベクトルxをベクトルb
xへ量子化する計算例を示す説明図である。
【発明を実施するための形態】
【0017】
本開示は、ディープバイナリハッシュと量子化を用いたクロスモーダル検索のためのシステム、方法、およびコンピュータプログラムに関する。本願で開示される方法は、コンピュータシステム(以下「システム」という。)によって実行される。
【0018】
本方法は、訓練フェーズと予測フェーズを含む。訓練フェーズでは、システムは2以上のモーダル性をまたいだデータに対する特徴ベクトル、バイナリコード、量子化コードであって元のデータにおける意味論的な類似関係を保存するものを生成することを同時に学習する。意味論的な類似関係の保存には、データアイテム間の類似および非類似関係(該当する場合は)の保存を含む。予測フェーズでは、システムは、データベース内のデータアイテムであって異なるモーダル性を有するクエリアイテムに意味論的に類似するものを、バイナリハッシュと量子化の両方を用いて検索する。予測フェーズに関わるデータモーダル性は、訓練フェーズにおけるそれと同様である。
【0019】
訓練フェーズおよび予測フェーズは、それぞれ、異なるエンティティ(entities)によって実行することもできる(すなわち、1つのエンティティにおけるコンピュータシステムがモデルを訓練し、他のエンティティにおけるコンピュータシステムが、訓練されたモデルを使用して、クロスモーダル検索を実行することとしても良い。)。そこで、以下では、「システム」という用語は、両フェーズを実行する1つのシステムを意味することもあるし、訓練フェーズの説明においては訓練フェーズのみを実行するシステムを意味することもあるし、予測フェーズの説明においては説明フェーズのみを実行するシステムを意味することもある。いずれにせよ、これらのフェーズの各々は、1つのコンピュータシステムによって実行される。訓練フェーズと予測フェーズの両方について、以下詳細に説明する。
【0020】
(訓練フェーズ)
訓練方法について、
図1および3Aを参照して説明する。
図1は、バイナリハッシュと量子化を使用するクロスモーダルデータ検索を実行するシステムを訓練する方法を図示している。
図3Aは、1つの実施形態に係る訓練方法の例を図解して示す。図解された例においては、2つのデータモーダル性は、画像とテキストであるが、本方法は、これらのモーダル性に限定されるものではない。
【0021】
(訓練データ)
システムは、異なるモーダル性を有するデータアイテムの複数ペアからなる訓練データセットを取得する(ステップ110)。特に、各ペアは、第1モーダル性を有するデータアイテムと、第2モーダル性を有するデータアイテムと、を含み、第1モーダル性と、第2モーダル性と、は異なる。データモーダル性には、たとえば、テキスト、画像、動画等がある。たとえば、ペアのおける一方のアイテムはテキストアイテムであり、他方のアイテムは画像もしくは動画である。
【0022】
ペアには、当該ペアが意味論的に類似するか否かを示すラベルが対応付けられている。1つの実施形態では、ペアには、バイナリ形式で単純に類似か非類似かのラベルが付される。たとえば、テキスト「犬」と犬の写真のペアは、類似のラベル(あるいは、「1」のような類似を表す数値表現)が付され、テキスト「自動車」と犬の写真には、「非類似」のラベル(あるいは、「0」のような非類似を表す数値表現)が付される。他の実施形態では、類似の度合を示すために、より段階的な尺度が使用される。たとえば、0-5の尺度があり、0は最も非類似を意味し、5は最も類似を意味する、等である。この場合、テキスト「ドーナツ」とドーナツの写真にはラベルとして「5」が付され、テキスト「食べ物」とドーナツの写真にはラベルとして「3」が付され、テキスト「猫」とドーナツの写真にはラベルとして「0」が付されることになる。
【0023】
(特徴ベクトルの生成)
ニューラルネットワークを使用して、訓練データアイテムの特徴ベクトル表現を生成する。特に、システムは、第1ニューラルネットワークを、訓練データセット内の第1モーダル性を有するデータアイテムに適用して、これらのアイテムのそれぞれに対する特徴ベクトルを生成する(ステップ120)。同様に、システムは、第2ニューラルネットワークを、訓練データセット内の第2モーダル性を有するデータアイテムに適用して、これらのアイテムのそれぞれに対する特徴ベクトルを生成する(ステップ130)。たとえば、
図3Aでは、鉢(bowl)に入ったりんご(apple)等の有機果実(organic fruits)が撮影された画像が訓練画像310として図示されており、「apple」「orange」「pear」「bowl」「fruits」「organic」が訓練テキストアイテム330として図示されている。本図に示すように、ニューラルネットワーク320は、画像の特徴抽出器として機能して、入力された訓練画像310のそれぞれに対する特徴ベクトルf
iを生成し、ニューラルネットワーク340は、テキストの特徴抽出器として機能して、入力された訓練テキストアイテム330のそれぞれに対する特徴ベクトルf
jを生成する。ある実施形態では、畳み込みニューラルネットワークを画像や動画のデータアイテムに適用し、長・短期記憶(LSTM; Long Short-Term Memory)ニューラルネットワークや多層パーセプトロンをテキストデータに適用する。ある実施形態では、特徴ベクトルは密な特徴ベクトルである。
【0024】
(バイナリハッシュコードと量子化コードの生成)
以下に詳細に説明するように、システムは、訓練データアイテムのそれぞれに対するバイナリハッシュコードおよび量子化コードを、そのアイテムに対する特徴ベクトルから生成する(ステップ140)。
【0025】
(バイナリハッシュ)
あるデータアイテムに対する特徴ベクトルx∈R
nが与えられると、システムはバイナリハッシュコードh
x = H(x)∈R
nを計算する。ここで、H()は、連続値を、集合{+1,-1}に写像する関数である。たとえば、
図3Aでは、バイナリハッシュコードh
iが、画像特徴ベクトルf
iに基づいて生成され、バイナリハッシュコードh
jが、テキスト特徴ベクトルf
jに基づいて生成される。
【0026】
(量子化)
あるデータアイテムに対する特徴ベクトルx∈Rnが与えられると、システムは、量子化コードを、Cbx≒xにより計算する。
【0027】
【0028】
ここで、C∈R
n×kは、量子化のための辞書(いわゆるコードブック)である。また、b
xは、辞書内の列を示すインデックス指示子であり、これが量子化コードとなる。ある実施形態では、システムは、入力は辞書のいずれか1つに属することを仮定する(すなわち、||b
x||
0=1)。
図3Aでは、量子化コードb
iは、画像特徴ベクトルf
iに基づいて生成され、量子化コードb
jは、テキスト特徴ベクトルf
jに基づいて生成される。
【0029】
(特徴ベクトル、バイナリハッシュコード、量子化を同時に最適化)
前述の通り、システムは、訓練データに対して特徴ベクトル、バイナリハッシュコード、量子化コードを繰り返し生成し(ステップ120-140)、これらの表現に基づいて損失値を計算し(ステップ150)、ニューラルネットワーク、バイナリハッシュアルゴリズム、および、量子化アルゴリズムのパラメータを、損失値を最小化するように調整する(ステップ160)。システムは、学習された特徴ならびにバイナリハッシュおよび量子化コードがモーダル性をまたがる訓練データの間の意味論的な類似関係を保存する度合を測る損失関数を使用する(すなわち、意味論的に類似する2つのデータアイテムに対するハッシュコードと量子化コードが、類似するように訓練される)。
【0030】
1つの実施形態では、損失関数は4つの部分からなる。
(1)異なるモーダル性の間の類似度を密な特徴ベクトルに基づいて測るクロスエントロピー損失。
(2)密な特徴ベクトルと量子化された特徴との間の違いを測る量子化損失。
(3)密な特徴ベクトルとバイナリ化された特徴との間の違いを測るバイナリハッシュ損失。
(4)バイナリコード内のビット情報を最適化するためのバランス損失。
この種の損失関数によって、システムは、特徴ベクトル、バイナリハッシュコード、および、量子化コードを同時に最適化できるようになる。
【0031】
以下では、損失関数が4つの部分(すなわち、4つのサブ関数)に分かれて定義できる様子を示す。以下の数式のため、異なるモーダル性に由来するデータアイテムi, jを持つ訓練ペアを定義する。当該データアイテムは、密な表現による特徴fi, fjを有し、当該ペアは類似度ラベルsijを有する。ここで、sij=1は、アイテムi, jが類似すること意味し、sij=0は、アイテムi, jが非類似であること意味する。4つのサブ関数のそれぞれの例は、以下の通りである。
【0032】
類似損失: 異なるモーダル性の間の類似度を測るため、最大事後確率(MAP; Maxixum a Posteriori)推定を使用することができる。対数MAPは以下の通りである。
【0033】
【0034】
この式において、類似度ラベルsijに対する条件付き尤度(conditional likelihood)は、以下の通りである。
【0035】
【0036】
ここで、σ(x)はシグモイド関数であり、〈x,y〉は内積演算である。
【0037】
【0038】
事前にfiとfjが知られていると仮定して、クロスエントロピー損失項をLsimと表記すると、以下のように表現できる。
【0039】
【0040】
ハッシュ損失: ハッシュ損失関数は、バイナリコード誤差を最小化する。長さnのバイナリコードh∈{+1,-1}nが与えられたとして、ハッシュ損失をLhと表記すると、以下のように表現できる。
【0041】
【0042】
ここで、||A||Fは、行列もしくはベクトルAのフロベニウスノルムを意味する。
【0043】
バランス損失: バイナリコード内のビット情報を最適化(して、ビット情報が最大限利用されるように)する。バランス損失をLbと表記すると、以下のように表現できる。
【0044】
【0045】
ここで、太字の1は、要素として数値1が並んだベクトルである。これは、各訓練サンプルにおいて、+1と-1の個数を均衡させる。
【0046】
量子化損失: 量子化誤差を最小化するため、システムは複数の辞書を使用し、以下の数式の結果の総和をとる。
【0047】
【0048】
ただし、各辞書Cl∈Cn×k、バイナリ指示子bl∈{0,1}kであり、||bl||0=1である。ここで、||v||0は、ベクトルvの要素のうち非零の要素の個数を意味する。すると、量子化損失をLqと表記すると、以下のように表現することができる。
【0049】
【0050】
これら4つの損失サブ関数を組み合わせると、以下の損失関数Lが得られる。
【0051】
【0052】
ここで、λsim、λh、λb、λqは、異なる損失関数間を均衡させるためのハイパーパラメータである。
【0053】
損失値を計算した後、システムは、ニューラルネットワーク、バイナリハッシュアルゴリズム、および、量子化アルゴリズムのパラメータを、損失値が減るように調整する。すなわち、システムは、ニューラルネットワークのパラメータ、バイナリハッシュコードh、辞書C、および、量子化コードbを、損失値が減るように調整する。ステップ120-160は、類似と(あるいは、段階的尺度において最も類似する、と)ラベル付けされたペアに含まれるデータアイテムのバイナリハッシュコード距離および量子化コード距離を最小化(および、好ましくは最小化)するために、何回も繰り返される(ステップ170)。順に実行される繰り返しのそれぞれにおいて、繰り返し進行中のニューラルネットワーク、バイナリハッシュアルゴリズム、および、量子化アルゴリズムの調整量に基づいて、新しい特徴ベクトル、バイナリハッシュコード、および量子化コードが生成される。ステップ120-160は、固定された回数繰り返しても良いし、収束するまで繰り返しても良い。
【0054】
(予測フェーズ)
図2Aおよび2Bは、バイナリハッシュ及び量子化を用いて、異なるモーダル性を有するクエリアイテムに対して意味論的な意味が類似するデータベースアイテムをクロスモーダル検索する方法について図示する。予測フェーズでは、システムは、訓練フェーズで訓練されたニュートラルネットワーク、バイナリハッシュアルゴリズム、および、量子化アルゴリズムを使用する。予測フェーズにおけるデータモーダル性は、訓練フェーズにおけるデータモーダル性と同じである。これを説明する目的のため、データベースアイテムは第1モーダル性(訓練フェーズにおける第1モーダル性と同じもの)を有し、クエリアイテムは第2モーダル性(訓練フェーズにおける第2モーダル性と同じもの)を有するものとする。
【0055】
(第1モーダル性を有するデータベースアイテムに対するバイナリハッシュコードと量子化コードの生成)
システムは、第1モーダル性を有するデータベースを複数持つデータベースにアクセスする(ステップ210)。システムは、第1ニューラルネットワークをデータベースアイテムに適用して、データベースアイテムの各々について、特徴ベクトルを生成する(ステップ220)。システムは、バイナリハッシュアルゴリズムと量子化アルゴリズムを使用して、データベースアイテムの各々について、バイナリハッシュコードと量子化コードを生成する(ステップ230)。これらのステップで使用される第1ニューラルネットワーク、および、バイナリハッシュならびに量子化アルゴリズムは、訓練フェーズで訓練されたものである。
【0056】
前述した通り、実施形態によっては、システムは、異なるエンティティにて訓練フェーズおよび予測フェーズを実行しても良い。データベースアイテムに対してバイナリハッシュコードと量子化コードを作成するステップは、訓練を実行するシステムと同じシステムにより実行されても良いし、予測フェーズを実行するシステムは、データベースアイテムに対応付けられるバイナリハッシュコードと量子化コードを既に持っているデータベースに単にアクセスするだけでも良い。
【0057】
(第2モーダル性を有するクエリアイテムを受け取る)
予測フェーズを実行するシステムは、第2モーダル性を有するクエリアイテムを受け取り、第2ニューラルネットワークをクエリアイテムに適用して、クエリアイテムに対する特徴ベクトルを生成する(ステップ240, 250)。ついで、システムは、特徴ベクトルとバイナリハッシュアルゴリズムに基づいて、クエリアイテムに対するバイナリハッシュコードを生成する(ステップ260)。実施形態によっては、アイテム間の類似度を測るために量子化コードに基づく量子化距離(quantization distance)あるいは非対称量子化距離(AQD; Asymmetric Quantization Distance)を使用するかに応じて、システムがクエリアイテムに対する量子化コードも生成することとしても良い(後述する)。
【0058】
(探索空間の絞り込み)
システムは、クエリアイテムと、データベースアイテムの各々と、の間の距離(すなわち、類似性の尺度)を、クエリアイテムとデータベースアイテムのバイナリハッシュコードに基づいて計算する(ステップ260)。ある実施形態では、類似性の尺度はハミング距離
dist(hx,hy) = sum(hx XOR hy)
とする。ここで、hxおよびhyはクエリアイテムxおよびyに対するバイナリハッシュコードである。ハミング距離の値が大きくなればなるほど、アイテムxとyは意味論的に、一層非類似となる。
【0059】
ついで、システムは、さらなる処理のためのデータベースアイテムの部分集合を選択することにより、データベース探索空間を絞り込む。特に、システムは、ステップ270にて計算された距離に基づいて、クエリアイテムとの意味論的な近さが上位のデータベースアイテムを複数選択する(ステップ275)。当該部分集合の大きさは、データベースアイテムの総数Nに応じて、たとえば0より大きく1未満の定数αを設定して、αNとなるように絞り込むことができる。たとえば、データベースアイテムを、クエリアイテムとの意味論的な近さでソートして、近さが1位からαN位までのデータベースアイテムを、この部分集合の要素とすれば良い。
【0060】
(量子化コードに基いて最も意味論的に類似するデータベースアイテムを同定)
ついで、システムは、クエリアイテムと、絞り込まれた探索空間内のデータベースアイテムのそれぞれ(すなわち、選択された部分集合内のデータベースアイテムのそれぞれ)と、の間の量子化距離を計算する(ステップ280)。量子化距離は、
データベースアイテムの部分集合のそれぞれに対応付けられる量子化コードと、
クエリアイテムの特徴ベクトルもしくはクエリアイテムの量子化コードのいずれか一方と、
を使用して計算される。
【0061】
このステップでクエリアイテムの特徴ベクトルを使用する場合は、類似性を測るために非対称量子化距離AQDを使用することができる。
AQD(x,y) = fx
T (Cby)
ここで、
xはクエリアイテムであり、yはデータベースアイテムであり、
fxは、xの特徴ベクトルであり、
Tは転置操作であり、
Cは量子化に対する辞書であり、
byは、辞書の列を示すインデックス指示子である。
【0062】
AQDの計算は、特徴ベクトルxと量子化コードyの間の内積の計算を含み、AQD値が大きければ大きいほど、xとyの量子化距離は近くなり、xとyは、一層類似することになる。
【0063】
このステップでクエリアイテムの量子化コードを使用する場合は、類似度を測るために量子化距離(QD; Quantization Distance)を使用することができる。
QD(x,y) = (Cbx)T(Cby)
QD値が大きくなればなるほど、両アイテムの量子化距離は小さくなり、両アイテムは一層類似することになる。
【0064】
システムは、クエリアイテムとの量子化距離が最も近いデータベースアイテムを検索する(ステップ290)が、これは、意味論的な意味がクエリアイテムに最も近いデータベースアイテムであると考えられるからである。
【0065】
(予測フェーズの例の図示)
図3Bは、1つの実施形態に対する予測プロセスの例を図示して示す。この例では、システムは、画像クエリアイテム350 (本図では、ドーナツの形のオーナメントが飾られたクリスマスツリーの写真の画像を例として示す。)に対して、データベース365からマッチするテキスト記述を探す。ニューラルネットワーク360は、画像の特徴抽出器として機能して、画像クエリアイテム350に対する特徴ベクトルfを生成する。それから、バイナリハッシュコードhが特徴ベクトルに基づいて計算させる。それから、このプロセスは、以下のように進む。
【0066】
(1)システムは、画像クエリアイテムと、テキストデータベースアイテムの各々と、の間のハミング距離を、画像クエリアイテムおよびテキストデータベースアイテムの各々のバイナリハッシュコードを使用して計算する(バイナリハッシュコード370は、テキストデータベース365に対応付けられている)。
【0067】
(2)システムは、画像クエリアイテム350に対するハミング距離の近さが上位のデータベースアイテム375の部分集合を選択することにより、探索空間を絞り込む。
【0068】
(3)システムは、画像クエリアイテムと、テキストアイテムの部分集合のそれぞれと、の間のAQD値を、クエリアイテムに対する特徴ベクトルfと、当該部分集合内のテキストデータベースアイテムに対する量子化コード380と、を使用して計算する。
【0069】
システムは、AQD値に基づいて、画像クエリアイテムに対する量子化距離が最も近いテキストデータベースアイテムを検索する。本図に示す例では、量子化距離は、「Donut」が最も近く、「Christmas」が2番目に近い。このように、「量子化距離が最も近い」とは、「量子化距離が一番近いもののみ」としても良いし、英語における最上級の用法に応じて、「量子化距離の近さが上位のもの」としても良い。クエリアイテムとデータベースアイテムに対するAQD値が大きければ大きいほど、両アイテム間の量子化距離は近くなり、両アイテムは意味的に近くなる。
【0070】
(システム例)
図4に、ここで説明した手法によるクロスモーダル検索を実行するシステムのソフトウェアアーキテクチャの例を図示する。他のソフトウェアアーキテクチャを使用することも可能であり、ここで説明した手法は、図示するアーキテクチャに限られるものではない。
【0071】
システム400は、データ表現モジュール430を有し、データ表現モジュール430は、ニューラルネットワークモジュール450、バイナリハッシュモジュール460、ならびに、量子化モジュール470を含む。前述の通り、これらのモジュールはそれぞれ、データベース410内のデータベースアイテムおよびクエリアイテム420に対する特徴ベクトル、バイナリハッシュコード、および、量子化コードを生成する。これらのモジュールは、前述した訓練手法の下、訓練データ405を使用して、訓練モジュール490によって訓練される。本システムによって扱われるデータモーダル性の各タイプにつき、1つのニューラルネットワークモジュール450が設けられる。
【0072】
クエリモジュール480は、データベース410内のアイテムであってクエリアイテム420に意味論的に最も近いアイテムを、前述の予測プロセスにしたがって同定し、これを検索結果とする。本例では、クエリモジュール480は、ハミング距離モジュール484ならびにAQDモジュール488を含む。これらはそれぞれ、クエリアイテムとデータベースアイテムとの間のハミング距離ならびに非対称量子化距離を計算する。データベースインターフェース415によって、システムはデータベース410に接続される。
【0073】
(注記)
以下では、上記実施形態に対する注記をいくつか掲げる。
【0074】
本実施形態では、ニューラルネットワークのパラメータΘ、バイナリハッシュリコードh、辞書C、および、インデックス指示子b (1-of-kバイナリ指示子と呼ばれることもある。)が学習される。
【0075】
Θは、与えられた損失関数に対してバックプロパゲーションをすることによって最適化できる。
【0076】
バイナリハッシュコードhについては、h∈{-1,+1}であるから、||f-h||F
2を最小化する最適解は、h=sgn(f)である。
【0077】
【0078】
図5は、ベクトルxからバイナリハッシュコードh
xへの計算例を示す説明図である。本図では、ある学習時点のハッシュ関数H(・)によってxのハッシュコードh
x = H(x)が求められており、xとh
xは同じ要素数であるが、h
xの各要素は、-1と1のいずれかになっている。
【0079】
Cおよびbの更新には、種々の公知技術を適用することができる。Cについては、他のパラメータを固定すれば閉形式解法(closed form solution)がある。
【0080】
【0081】
ここで、F, Bは、全訓練サンプルの特徴と指示子をまとめたものである(batched features and indicators)。
【0082】
bについては、||b||0=1という制限があるので、候補となるすべての指示子をチェックすることによって更新することができる。
【0083】
図6は、辞書Cを用いてベクトルxをベクトルb
xへ量子化する計算例を示す説明図である。本図では、ある学習時点の辞書Cに基づいてベクトルxがベクトルb
xに量子化されている。ここで、b
xは3次元ベクトルであるから、b
xの候補は、どの要素を1とするかに応じて、[1, 0, 0]
T, [0, 1, 0]
T, [0, 0, 1]
Tの3通りある。これらの全通りについて辞書Cとの行列演算(行列の各列からいずれかを、ベクトル中で1が配置される位置に応じて抜き出す演算。)を行って、得られた結果が最もxに近いものが得られる候補を、量子化コードb
xとして選ぶことになる。本図に示す例では、Cを構成する3つの列[-1.1, -3, 5, 3.2, 9.4]
T, [2.4, -6, 1, 6.9, -8]
T, [-2, -12, 23, 1.2, 0.4]
Tのうち、[2.4, -6, 1, 6.9, -8]
Tが最もx=[0, -7.1, 2.3, 9.3, -12]
Tに近いので、量子化コードb
x = [0, 1, 0]
Tとなる。
【0084】
一般に、量子化はバイナリコードよりも多くの情報を保存するが、AQDはハミング距離よりも複雑なため、検索ステップで速度が遅くなる。そこで、本実施形態では、まずハミング距離により絞り込みを行ってから、AQDにより検索結果を得ることとして、検索速度を向上させることとしている。
【0085】
発明者の分析によれば、検索に要する時間のオーダーは、αに比例する。すなわち、探索空間を絞り込めば絞り込むほど、検索は速くなる。
【0086】
さらに、検索に要する時間のオーダーは、特徴ベクトルの大きさnに比例する。
【0087】
したがって、特徴ベクトルの大きさnに応じて、たとえば反比例するようにαを選べば、定数時間のオーダーで検索をすることができる。このように、本実施形態では、nとαを適切に定めることで、検索時間を調整することができる。
【0088】
(まとめ)
本願図面において記述された手法は、ソフトウェア内に具体化され、当該ソフトウェアを実行(execute)する(1以上のコンピューティングデバイスを備える)コンピュータシステムによって実行(perform)される。コンピュータシステムは、ソフトウェア指令を格納するための1以上の物理メモリユニット、ディスクあるいは他の物理的な、コンピュータ読取可能なストレージメディアを有するほか、ソフトウェア指令を実行するための1以上のプロセッサを有する。コンピュータシステムは、スタンドアロンのものでも良いし、コンピュータ通信網にサーバとして接続されたものでも良い。実施形態によっては、あるエンティティにより制御されるコンピュータシステムが訓練プロセスを実行し、別のエンティティにより制御されるコンピュータシステムが予測プロセスを実行することとしても良い。
【0089】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
本願においては、アメリカ合衆国に対して令和1年(2019年)12月20日(金)に出願した仮出願62/952090、および、アメリカ合衆国に対して令和2年(2020年)5月7日(木)に出願した特許出願16/869408を基礎とする優先権を主張するものとし、法令が許す限り、当該基礎出願の内容を本願に取り込むものとする。
【産業上の利用可能性】
【0090】
本発明によれば、クロスモーダル検索を効率良く実現することができるようになる。
【符号の説明】
【0091】
310 訓練画像
320 ニューラルネットワーク
330 訓練テキストアイテム
340 ニューラルネットワーク
350 画像クエリアイテム
360 ニューラルネットワーク
365 テキストデータベース
370 バイナリハッシュコード
375 データベースアイテムの部分集合
380 量子化コード
400 システム
405 訓練データ
410 データベース
415 データベースインターフェース
420 クエリアイテム
430 データ表現モジュール
450 ニューラルネットワークモジュール
460 バイナリハッシュモジュール
470 量子化モジュール
480 クエリモジュール
484 ハミング距離モジュール
488 AQDモジュール
490 訓練モジュール