特許第5661813号(P5661813)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト コーポレーションの特許一覧

特許5661813セマンティックオブジェクトの特徴付けおよび検索
<>
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000045
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000046
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000047
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000048
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000049
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000050
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000051
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000052
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000053
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000054
  • 特許5661813-セマンティックオブジェクトの特徴付けおよび検索 図000055
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5661813
(24)【登録日】2014年12月12日
(45)【発行日】2015年1月28日
(54)【発明の名称】セマンティックオブジェクトの特徴付けおよび検索
(51)【国際特許分類】
   G06F 17/30 20060101AFI20150108BHJP
【FI】
   G06F17/30 210A
   G06F17/30 412
【請求項の数】15
【全頁数】26
(21)【出願番号】特願2012-556120(P2012-556120)
(86)(22)【出願日】2011年2月25日
(65)【公表番号】特表2013-521574(P2013-521574A)
(43)【公表日】2013年6月10日
(86)【国際出願番号】US2011026358
(87)【国際公開番号】WO2011109251
(87)【国際公開日】20110909
【審査請求日】2014年1月28日
(31)【優先権主張番号】12/715,174
(32)【優先日】2010年3月1日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500046438
【氏名又は名称】マイクロソフト コーポレーション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ウッピナークドゥル ラガヴェンドラ ウドゥパ
(72)【発明者】
【氏名】シャイシャヴ クマール
【審査官】 伊知地 和之
(56)【参考文献】
【文献】 米国特許第06006221(US,A)
【文献】 特開2007−073054(JP,A)
【文献】 特開2001−084258(JP,A)
【文献】 国際公開第2006/090732(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06F 17/21
G06F 17/28
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
セマンティックオブジェクトを特徴付けるためのコンピュータの動作方法であって、
前記方法は、セマンティックオブジェクトの第1の表現またはビューを、前記セマンティックオブジェクトを表現する第1のバイナリハッシュコードの形式で特徴付けし、前記セマンティックオブジェクトを表現する第2のバイナリハッシュコードの形式における同一のセマンティックオブジェクトの第2の表現またはビューの特徴付けしたバージョンと比較すると、前記第1および第2のバイナリハッシュコードが、前記オブジェクトが同一のオブジェクトであることを示す類似度を表し、前記方法は、
同性質のセマンティックオブジェクトのペアを入力するステップであって、前記同性質のセマンティックオブジェクトのペアは、前記第1および第2の表現またはビューで提示される同一のセマンティックオブジェクトを含む、入力するステップと、
同性質のセマンティックオブジェクトの各ペアのそれぞれのセマンティックオブジェクトを特徴抽出にかけ、前記セマンティックオブジェクトを表現する特徴ベクトルを作成するステップと、
前記同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、前記第1の表現またはビューに対する所定数の変換と、前記第2の表現またはビューに対する同数の変換とを確立するステップであって、前記第1または第2の表現またはビューの内の一方に対して確立される変換は、前記表現またはビューを表すセマンティックオブジェクトを表現する特徴ベクトルに適用されると、前記セマンティックオブジェクトを表現する前記第1のバイナリハッシュコードを作成し、前記第1または第2の表現またはビューの内の他方に対して確立された変換を、前記他方の表現またはビューを表す同一のセマンティックオブジェクトを表現する特徴ベクトルに適用する時に作成される前記セマンティックオブジェクトを表現する前記第2のバイナリハッシュコードと、前記第1のバイナリハッシュコードは実質上類似する、確立するステップと、
前記第1の表現またはビューに対して確立された変換を使用して、前記第1の表現またはビューを表すセマンティックオブジェクトを、前記セマンティックオブジェクトを表現する前記第1のバイナリハッシュコードとして特徴付けするステップと
を含む方法。
【請求項2】
前記第1の表現またはビューに対して確立された変換を使用して、前記第1の表現またはビューを表すセマンティックオブジェクトを、前記セマンティックオブジェクトを表現する第1のバイナリハッシュコードの形式で特徴付けするステップは、
前記セマンティックオブジェクトを、前記第1の表現またはビューを表す同性質のセマンティックオブジェクトの各ペアにおける前記セマンティックオブジェクトに適用されるものと同じ特徴抽出にかけ、前記セマンティックオブジェクトを表現する特徴ベクトルを作成するステップと、
前記第1の表現またはビューに対して確立された変換のそれぞれについて、前記変換を前記セマンティックオブジェクトを表現する特徴ベクトルに適用し、その結果をバイナリ化し、前記セマンティックオブジェクトを表現する前記第1のバイナリハッシュコードのビットを作成するステップと、
前記作成されたビットを所定の順序で連結し、前記セマンティックオブジェクトを表現する前記第1のバイナリハッシュコードを作成するステップと
を含む、請求項1に記載の方法。
【請求項3】
同性質のセマンティックオブジェクトの各ペアのそれぞれのセマンティックオブジェクトを特徴抽出にかけ、前記セマンティックオブジェクトを表現する特徴ベクトルを作成するステップは、バイナリ特徴ベクトルまたは実数値特徴ベクトルの内の1つを作成するステップを含む、請求項1に記載の方法。
【請求項4】
同性質のセマンティックオブジェクトの各ペアのそれぞれのセマンティックオブジェクトを特徴抽出にかけ、前記セマンティックオブジェクトを表現する特徴ベクトルを作成するステップは、次元縮小技術を使用して低次元の表現を作成するステップを含む、請求項3に記載の方法。
【請求項5】
前記同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立するステップは、
正準相関分析を使用して、前記第1および第2の表現またはビューのそれぞれの候補の変換を計算するステップと、
前記第1の表現またはビューに対する第1の変換セットを、前記第1の表現またはビューについて計算された候補の変換から確立し、前記第2の表現またはビューに対する第2の変換セットを、前記第2の表現またはビューについて計算された候補の変換から確立するステップであって、セマンティックオブジェクトの同性質のペアのそれぞれに対して、前記第1の変換セットを、前記第1の表現またはビューを表すセマンティックオブジェクトの前記同性質のペアのセマンティックオブジェクトを表現する特徴ベクトルに適用し、かつ、前記第2の変換セットを、前記第2の表現またはビューを表すセマンティックオブジェクトの前記同性質のペアのセマンティックオブジェクトを表現する特徴ベクトルに適用すると、セマンティックオブジェクトの前記同性質のペアの全てについて作成される、結果として得られる第1および第2のバイナリハッシュコードの間の総ハミング距離を最小化する、確立するステップと
を含む、請求項1に記載の方法。
【請求項6】
前記同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立するステップは、
前記第1の変換セットを、作成される前記第1のバイナリハッシュコードのビットのほぼ半分が第1の二進値を表し、かつ残りのビットが他方の二進値を表すという制約を示すように、確立するステップと、
前記第2の変換セットを、作成される前記第2のバイナリハッシュコードのビットのほぼ半分が前記第1の二進値を表し、かつ残りのビットが他方の二進値を表すという制約を示すように、確立するステップと
をさらに含む、請求項5に記載の方法。
【請求項7】
前記同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立するステップは、
前記第1の変換セットを、作成される前記第1のバイナリハッシュコードのビットが無相関であるという制約を示すように確立するステップと、
前記第2の変換セットを、作成される前記第2のバイナリハッシュコードのビットが無相関であるという制約を示すように確立するステップと
をさらに含む、請求項6に記載の方法。
【請求項8】
検索可能なデータベースを作成するためのコンピュータの動作方法であって、前記データベース内の項目は、第1の表現またはビューを表すセマンティックオブジェクトであり、前記データベースに含まれるセマンティックオブジェクトと同一であるが第2の表現またはビューを表すセマンティックオブジェクトを、前記検索可能なデータベースに対して検索クエリとして提示すると、前記検索クエリの前記セマンティックオブジェクトに対応する、前記第1の表現またはビューを表すセマンティックオブジェクトの識別を含む出力を行い、前記方法は、
前記第1の表現またはビューに対する所定数の変換と、前記第2の表現またはビューに対する同数の変換とを確立するステップであって、前記第1または第2の表現またはビューの内の一方に対して確立される変換を、前記表現またはビューを表すセマンティックオブジェクトを表現する特徴ベクトルに適用すると、前記セマンティックオブジェクトを表現する第1のバイナリハッシュコードを作成し、前記第1または第2の表現またはビューの内の他方に対して確立された変換を、前記他方の表現またはビューを表す同一のセマンティックオブジェクトを表現する特徴ベクトルに適用する時に作成される前記セマンティックオブジェクトを表現する第2のバイナリハッシュコードと、前記第1のバイナリハッシュコードは実質上類似する、確立するステップと、
前記第1の表現またはビューに対して確立された変換を使用して、前記データベースに含まれる前記セマンティックオブジェクトのそれぞれを、前記セマンティックオブジェクトを表現する前記第1のバイナリハッシュコードの形式で特徴付けするステップであって、前記データベースに含まれるセマンティックオブジェクトを特徴付ける前記第1のバイナリハッシュコードは、前記データベース内の他のセマンティックオブジェクトを特徴付ける前記第1のバイナリハッシュコードと実質上異なる、特徴付けするステップと、
前記データベースに含まれる前記セマンティックオブジェクトのそれぞれを特徴付ける前記第1のバイナリハッシュコードを、前記データベースにおける、それぞれに対応するセマンティックオブジェクトにそれぞれ関連付けるステップと
を含む方法。
【請求項9】
検索クエリが第2の表現またはビューを表すデータベースに入力されるときは常に、
前記検索クエリを表現する特徴ベクトルを生成するステップと、
前記第2の表現またはビューに対して確立される変換のそれぞれについて、前記変換を前記検索クエリを表現する特徴ベクトルに適用し、その結果をバイナリ化し、前記検索クエリを表現する前記第2のバイナリハッシュコードのビットを作成するステップと、
前記作成されたビットを所定の順序で連結して、前記検索クエリを表現する前記第2のバイナリハッシュコードを作成するステップと、
前記検索クエリを表現する前記第2のバイナリハッシュコードに対して所定の類似度を表す第1のバイナリハッシュコードを有する、前記データベースに含まれるセマンティックオブジェクト(単数または複数)を発見するステップと、
前記検索クエリを表現する前記第2のバイナリハッシュコードに対して所定の類似度を表すことが発見された第1のバイナリハッシュコードを有する、前記データベースに含まれる一致するセマンティックオブジェクト(単数または複数)の識別を出力するステップと
を含む請求項8に記載の方法。
【請求項10】
前記検索クエリを表現する第2のバイナリハッシュコードに対して所定の類似度を表す第1のバイナリハッシュコードを有する、前記データベースに含まれるセマンティックオブジェクト(単数または複数)を発見するステップは、
前記検索クエリを表現する前記第2のバイナリハッシュコードと前記データベースに含まれる前記セマンティックオブジェクトのそれぞれに関連する前記第1のバイナリハッシュコードとの間のハミング距離の値をそれぞれ計算するステップと、
第1のバイナリハッシュコードと前記検索クエリを表現する前記第2のバイナリハッシュコードとの間の最小であるハミング距離を表す第1のバイナリハッシュコードを有する、前記データベースに含まれる前記セマンティックオブジェクト(単数または複数)を発見するステップと
を含む、請求項9に記載の方法。
【請求項11】
前記検索クエリを表現する第2のバイナリハッシュコードに対して所定の類似度を表す第1のバイナリハッシュコードを有する、前記データベースに含まれるセマンティックオブジェクト(単数または複数)を発見するステップは、
前記検索クエリを表現する前記第2のバイナリハッシュコードと前記データベースに含まれる前記セマンティックオブジェクトのそれぞれに関連する前記第1のバイナリハッシュコードとの間のハミング距離の値をそれぞれ計算するステップと、
第1のバイナリハッシュコードと前記検索クエリを表現する前記第2のバイナリハッシュコードとの間の、ハミング距離の閾値よりも小さいハミング距離を表す第1のバイナリハッシュコードを有する、前記データベースに含まれる前記セマンティックオブジェクト(単数または複数)を発見するステップと
を含む、請求項9に記載の方法。
【請求項12】
前記データベースに入力される検索クエリは、単一のセマンティックオブジェクトに組み合わされた複数のセマンティックオブジェクトを含み、前記データベースに含まれる前記セマンティックオブジェクトの内の少なくとも一部が、単一のセマンティックオブジェクトに組み合わされた複数のセマンティックオブジェクトである、請求項9に記載の方法。
【請求項13】
前記データベースに入力された検索クエリは、複数のセマンティックオブジェクトを含み、前記特徴ベクトルの生成、変換の適用およびバイナリ化、連結、発見ならびに出力するステップを、前記検索クエリの前記複数のセマンティックオブジェクトのそれぞれに対して繰り返し、前記方法は、
重み付き二部グラフを構築するステップであって、前記検索クエリのセマンティックオブジェクトのそれぞれは、前記グラフの第1のノードセットを形成し、前記検索クエリのセマンティックオブジェクトのそれぞれに対して出力された識別された一致するセマンティックオブジェクト(単数または複数)が前記グラフの第2のノードセットを形成する、構築するステップと、
前記第1のノードセットに関連する前記セマンティックオブジェクトのそれぞれのバイナリハッシュコードと、前記第2のノードセットに関連する前記セマンティックオブジェクトのそれぞれのバイナリハッシュコードとの間の類似度を、既知でない場合にそれぞれ計算するステップと、
前記第1のノードセットに関連する各セマンティックオブジェクトと、前記第2のノードセットに関連するセマンティックオブジェクトとの間に、それらのバイナリハッシュコードに基づくセマンティックオブジェクト間の類似度が閾値と交差する場合に、エッジを割り当てるステップであって、前記エッジの重みを前記類似度と等しく設定する、割り当てるステップと、
前記グラフにおける最大重み付き二部グラフマッチングを求めるステップと、
前記マッチングの重みを計算するステップと、
前記マッチングの重みを、前記第1および第2のノードセット間のノード数の差に基づき正規化するステップと
をさらに含む請求項9に記載の方法。
【請求項14】
前記データベースに含まれるセマンティックオブジェクトのそれぞれを特徴付ける前記第1のバイナリハッシュコードを、前記データベースにおける、それぞれに対応するセマンティックオブジェクトにそれぞれ関連付けるステップは、
前記データベースに含まれる前記セマンティックオブジェクトに対応するデータベースディレクトリを含むハッシュテーブルを確立するステップと、
前記データベースに含まれる前記セマンティックオブジェクトのそれぞれを特徴付ける前記第1のバイナリハッシュコードを前記ハッシュテーブルに追加するステップと、
前記データベースに含まれる前記セマンティックオブジェクトのそれぞれを特徴付ける前記第1のバイナリハッシュコードを、前記ハッシュテーブル内における、それぞれに対応するデータベースディレクトリエントリに関連付けるステップと
を含む、請求項8に記載の方法。
【請求項15】
人の名前を特徴付けるためのコンピュータの動作方法であって、
第1の言語による人の名前を前記名前を表現する第1のバイナリハッシュコードの形式で特徴付けし、第2の言語による同一の名前を前記名前を表現する第2のバイナリハッシュコードの形式で特徴付けしたバージョンと比較すると、前記第1および第2のバイナリハッシュコードは、それらの名前が同一の名前であることを示す類似度を表し、前記方法は、
同性質の名前のペアを入力するステップであって、前記同性質の名前の各ペアは、前記第1および第2の言語で提示される人の名前を含み、同性質の名前の各ペアは異なる名前に対応する、入力するステップと、
同性質の名前の各ペアを特徴抽出にかけ、前記名前を表現するバイナリ特徴ベクトルを作成するステップと、
前記同性質の名前のペアを表現する特徴ベクトルに基づき、前記第1の言語に対する所定数の変換と、前記第2の言語に対する同数の変換とを確立するステップであって、前記第1または第2の言語の内の一方に対して確立された変換を、前記言語による名前を表現する特徴ベクトルに対して適用すると、前記名前を表現する前記第1のバイナリハッシュコードを作成し、前記第1または第2の言語の内の他方に対して確立された変換を、前記他方の言語による同一の名前を表現する特徴ベクトルに適用する時に作成し、前記名前を表現する前記第2のバイナリハッシュコードと、前記第1のバイナリハッシュコードが実質上類似する、確立するステップと、
前記第1の言語に対して確立された変換を使用して、第1の言語による人の名前を前記名前を表現する前記第1のバイナリハッシュコードとして特徴付けるステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セマンティックオブジェクトの特徴付けおよび検索に関する。
【背景技術】
【0002】
検索エンジンとは、最も一般的な表現では、1つまたは複数のデータベースに含まれる情報にインデックスを付けるソフトウェアプログラムである。このインデックス化された情報はデータベースのディレクトリ内に記憶されることが多い。そして、検索エンジンは、ユーザに検索クエリを入力させ、その内の用語を採用してディレクトリを介してデータベース内の関連情報を探索する。探索された関連情報はユーザに報告される。
【0003】
インデックス化される情報のタイプは考え得る任意のものとすることができる。これにはウェブページ、文書、ラベル付き画像などがある。典型的には、情報は特定の言語によるもので、検索クエリも同一の言語で提示される。
【0004】
加えて、多くの場合、インデックス化された情報の項目は、一般的にセマンティックオブジェクトと称することができ、リストアップされたオブジェクトを介して素早くかつ効果的な検索を行なう方法でディレクトリにおいて特徴付けされる。そのような場合、検索クエリは典型的には、特徴付けされたディレクトリエントリと比較される前に、同じ様式で特徴付けされる。
【発明の概要】
【0005】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を決定する際の助けとして使用されることも意図していない。
【0006】
本明細書に記載されるセマンティックオブジェクトの特徴付けおよび検索に関する実施形態は、一般に、まず、同性質のセマンティックオブジェクトのペアを入力する動作を含む。同性質のセマンティックオブジェクトのペアを、第1および第2の表現またはビューで提示される同一のセマンティックオブジェクトとして定義する。例えば、セマンティックオブジェクトが人名に対応する場合、同性質の名前のペアは、2つの異なる言語、および潜在的には2つの異なる文字体系で提示される同一の名前とすることができる。同性質のオブジェクトの各ペアのそれぞれのセマンティックオブジェクトは、特徴抽出により、セマンティックオブジェクトを表現する特徴ベクトルを作成する。次に、相関および最適化の方法を採用し、同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立する。一般に、第1または第2の表現またはビューの内の一方に対して確立された変換は、当該表現またはビューを表すセマンティックオブジェクトを表現する特徴ベクトルに適用する場合、セマンティックオブジェクトを表現する第1のバイナリハッシュコードを作成するが、第1または第2の表現またはビューの内の他方に対して確立された変換を、他方の表現またはビューを表す同一のセマンティックオブジェクトを表現する特徴ベクトルに適用される時に作成する、当該セマンティックオブジェクトを表現する第2のバイナリハッシュコードと、第1のバイナリハッシュコードは実質上類似する。
【0007】
第1の表現またはビューに対して確立された変換を使用して、データベースに含まれる、第1の表現またはビューを表すセマンティックオブジェクトを、セマンティックオブジェクトを表現する第1のバイナリハッシュコードの形式で特徴付けする。次に、データベースに含まれるセマンティックオブジェクトを特徴付ける第1のバイナリハッシュコードを、データベースディレクトリ内のその対応するセマンティックオブジェクトにそれぞれ関連付けする。
【0008】
前述の第2の表現またはビューを表す検索クエリを入力すると、検索クエリを表現する特徴ベクトルを生成する。次に第2の表現またはビューに対して確立された変換のそれぞれを、検索クエリ特徴ベクトルに適用し、結果をバイナリ化し、検索クエリを表現する第2のバイナリハッシュコードのビットを作成する。変換により作成されたビットを、次に、所定の順序で連結し、検索クエリを表現する第2のバイナリハッシュコードを作成する。次に、検索クエリを表現する第2のバイナリハッシュコードに対して所定の類似度を表す第1のバイナリハッシュコードを有する、データベースに含まれるセマンティックオブジェクト(単数または複数)を発見する。次に、その一致するセマンティックオブジェクト(単数または複数)の識別を出力する。
【図面の簡単な説明】
【0009】
本開示の特定の特徴、態様、および利点は、以下の説明、添付の請求項、および添付の図面を顧慮することで、より良く理解されるであろう。
【0010】
図1】セマンティックオブジェクトの特徴付けのためのプロセスの一実施形態を全体的に概説するフロー図である。
図2】第1の表現またはビューに対して確立された変換を使用して、第1の表現またはビューを表すセマンティックオブジェクトを第1のバイナリハッシュコードとして特徴づける動作を含む、図1のプロセスの一部の一実装を全体的に概説するフロー図である。
図3】人の名前を特徴付けするためのプロセスの一実施形態を全体的に概説するフロー図である。
図4】第1の言語に対して確立された変換を使用して、第1の言語による人名を第1のバイナリハッシュコードとして特徴付けする動作を含む図3のプロセスの一部の一実装を全体的に概説するフロー図である。
図5】各言語それぞれについて、同性質の名前の各ペアにおけるそれぞれの名前を特徴抽出にかけ、名前を表現するバイナリ特徴ベクトルを作成する動作を含む図3のプロセスの一部の一実装を全体的に概説するフロー図である。
図6】同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立する動作を含む図1のプロセスの一部の一実装を全体的に概説するフロー図である。
図7】データベースのディレクトリをインデックス化するためのプロセスの一実施形態を全体的に概説するフロー図である。
図8】データベースに含まれるセマンティックオブジェクトを特徴付ける第1のバイナリハッシュコードを、データベース内の対応するセマンティックオブジェクトに関連付けする動作を含む図7のプロセスの一部の一実装を全体的に概説するフロー図である。
図9】特徴付けされた検索クエリを使用してデータベースの特徴付けされたディレクトリを検索するためのプロセスの一実施形態を全体的に概説するフロー図である。
図10】特徴付けされた複数部分セマンティックオブジェクト検索クエリを使用してデータベースの特徴付けされたディレクトリを検索するためのプロセスの一実施形態を全体的に概説するフロー図である。
図11】本明細書に記載されるセマンティックオブジェクトの特徴付けおよび検索の実施形態を実装する例示のシステムを構成する汎用コンピューティング装置を示す図である。
【発明を実施するための形態】
【0011】
セマンティックオブジェクトの特徴付け、および、データベースディレクトリのインデックス化と検索でのその使用についての以下の説明において、本明細書の一部を形成する添付の図面に対する参照がなされ、図面には、例として、特徴付けを実践することができる特定の実施形態を示す。他の実施形態を利用しても良いこと、また、本技術の範囲から逸脱することなく構造的変更がなされても良いことは理解されるであろう。
【0012】
1.0 セマンティックオブジェクトの特徴付け
一般に、セマンティックオブジェクトの特徴付けはコンピュータに実装される技術であって、セマンティックオブジェクトの第1の表現またはビューを第1のバイナリハッシュコードの形式で特徴付けし、同一のセマンティックオブジェクトの第2の表現またはビューを第2のバイナリハッシュコードの形式で特徴付けしたバージョンと比較すると、オブジェクトが同一のオブジェクトであることを示す類似度を、第1および第2のバイナリハッシュコードが表すようにする技術である。
【0013】
図1を参照すると、本セマンティックオブジェクトの特徴付けの一実施形態では、まず、同性質のセマンティックオブジェクトのペアを入力する動作を含む(100)。1つのペアの同性質のセマンティックオブジェクトを、第1および第2の表現またはビューで提示される同一のセマンティックオブジェクトとして定義する。例えば、セマンティックオブジェクトが人名に対応する場合、同性質の名前のペアは2つの異なる言語で提示される同一の名前とすることができる。さらに、ある言語で該言語に関連する文字体系を採用する場合、該言語で示される人名をその関連する文字体系で提示することができる。なお、採用される同性質のペアの数は含まれるセマンティックオブジェクトのタイプに依存する。人名の場合、1万から1万5千のペアが適切なペアの数であることが分かっている。
【0014】
同性質のオブジェクトの各ペアのそれぞれのセマンティックオブジェクトを、次に特徴抽出にかけ、セマンティックオブジェクトを表現する特徴ベクトルを作成する(102)。この特徴抽出については、本説明の後の章でより詳細に記載する。相関および最適化の方法を採用して、同性質のセマンティックオブジェクトのペアを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換とを確立する(104)。この手続きについても、後の章でより詳細に記載する。しかし、一般に、第1または第2の表現またはビューの内の一方に対して確立される変換は、その表現またはビューを表すセマンティックオブジェクトを表現する特徴ベクトルに適用すると、該セマンティックオブジェクトを表現する第1のバイナリハッシュコードを作成する。第1もしくは第2の表現またはビューの内の他方に対して確立された変換を、他方の表現またはビューを表す同一のセマンティックオブジェクトを表現する特徴ベクトルに適用すると作成されるセマンティックオブジェクトを表現する第2のバイナリハッシュコードと、第1のバイナリハッシュコードは実質上類似する。なお、一実装において、正準相関分析を相関法として採用する。
【0015】
次に、第1の表現またはビューに対して確立される変換を使用して、第1の表現またはビューを表すセマンティックオブジェクトを、該セマンティックオブジェクトを表現する第1のバイナリハッシュコードとして特徴付ける(106)。図2を参照すると、一実装において、この最後の動作には、まず、セマンティックオブジェクトを、第1の表現またはビューを表した同性質のセマンティックオブジェクトの各ペアにおけるセマンティックオブジェクトに適用されるものと同じ特徴抽出にかけ、セマンティックオブジェクトを表現する特徴ベクトルを作成する動作(200)が含まれる。次に、第1の表現またはビューに対して確立された変換の内の前回選択されなかった変換を選択する(202)。選択された変換を、セマンティックオブジェクトを表現する特徴ベクトルに適用し、その結果をバイナリ化し、セマンティックオブジェクトを表現する第1のバイナリハッシュコードのビットを作成する(204)。次に、第1の表現またはビューに対して確立された全ての変換を選択しかつ処理したかどうかを判定する(206)。全ての変換を選択および処理していない場合、動作(202)を、(206)を介して繰り返す。全ての変換を選択かつ処理すると、各変換により作成されたビットを所定の順序で連結し、セマンティックオブジェクトを表現する第1のバイナリハッシュコードを作成する(208)。
【0016】
上に示したように、セマンティックオブジェクトの特徴付けは、セマンティックオブジェクトが人名であること、表現またはビューが2つの異なる言語(および、場合により2つの異なる文字体系タイプ)であることに関与して良い。そのような実装には重要な利点がある。例えば、特徴付けを使用してデータベースディレクトリをインデックス化および検索するという文脈においては、データベースディレクトリは英語であるが、ユーザが英語以外の言語でさらには異なる文字体系を採用する言語の検索クエリを使用してデータベースを検索することを望むことが想定される。セマンティックオブジェクトの特徴付けをそのようなクロス言語検索に適用し、第1の言語によるデータベースディレクトリでの名前を、その名前についての言語および文字体系独自の表現を使用して特徴付ける。そして、第2の言語および可能性のある異なる文字体系による検索クエリを、同一の言語および文字体系独自の様式で特徴付けすることができる。このため、ユーザは第2の言語によるクエリをサブミットし、データベースの言語による一致結果を取得することができる。従って、データベースの言語との任意の非精通性または2つの言語間の発音上の相違は無視される。
【0017】
ここで、セマンティックオブジェクトが人名であり、表現またはビューが2つの異なる言語(および、場合により2つの異なる文字体系タイプ)であるセマンティックオブジェクトの特徴付けの一実装について説明する。一般に、本実装では、第1の言語による人名を該名前を表現する第1のバイナリハッシュコードの形式で特徴付けし、第2の言語による同一の名前を該名前を表現する第2のバイナリハッシュコードの形式で特徴付けしたバージョンと比較すると、第1および第2のバイナリハッシュコードが、それらの名前が同一の名前であることを示す類似度を表すようにする。
【0018】
さらに特に、図3を参照すると、本実装では、まず、同性質の名前のペアを入力する動作(300)を含み、同性質の名前のペアを、第1および第2の言語(および、場合により異なる文字体系)で提示される同一の名前として定義する。次に、同性質の名前の各ペアのそれぞれの名前を特徴抽出にかけ、該名前を表現する特徴ベクトルを作成する(302)。そして、上述の相関および最適化の方法を採用して同性質の名前のペアを表現する特徴ベクトルに基づき、第1の言語に対する所定数の変換と、第2の言語に対する同数の変換とを確立する(304)。両言語の内の一方に対して確立された変換は、その言語による名前を表現する特徴ベクトルに適用されると、該名前を表現する第1のバイナリハッシュコードを作成する。他方の言語に対して確立された変換を該他方の言語による同一の名前を表現する特徴ベクトルに適用すると作成される、該名前を表現する第2のバイナリハッシュコードと、第1のバイナリハッシュコードは実質上類似する。
【0019】
次に、第1の言語に対して確立される変換を使用して、第1の言語による名前を、該名前を表現する第1のバイナリハッシュコードとして特徴付ける(306)。ここで図4を参照すると、一実装において、この最後の動作には、まず名前を、第1の言語による同性質の名前の各ペアにおける名前に適用されるものと同じ特徴抽出にかけ、名前を表現する特徴ベクトルを作成する動作(400)が含まれる。次に、第1の表現またはビューに対して確立された変換の内前回選択されなかった変換を選択される(402)。選択された変換を、人名を表現する特徴ベクトルに適用し、その結果をバイナリ化し、名前を表現する第1のバイナリハッシュコードのビットを作成する(404)。次に、第1の言語に対して確立された全ての変換を選択しかつ処理したかどうかを判定する(406)。全ての変換を選択および処理していない場合、動作(402)を、(406)を介して繰り返す。全ての変換を選択および処理すると、各変換により作成されたビットを所定の順序で連結し、人名を表現する第1のバイナリハッシュコードを作成する(408)。
【0020】
ここで、上述のセマンティックオブジェクトの特徴付けおよび検索の態様について、以下の章でより詳細に説明する。
【0021】
1.1 特徴ベクトル
同一のセマンティックオブジェクトの2つの表現/ビューを直接使用するのではなく、フォーマット、言語、文字体系などに関して独自の特徴表現を採用する。そのような独自の表現を取得するために、特徴ベクトルを各オブジェクトのビューごとに形成する。オブジェクトに適切な任意の特色付けの方法を採用して特徴ベクトルを生成することができる。例えば、人名の場合、文字nグラムを特徴として抽出しバイナリ化して、バイナリ特徴ベクトルを形成することができる。なお、利用可能な可能性のある特色付けの方法はこれだけではない。例えば、名前から抽出された音節を特徴として使用することも可能であり、特徴ベクトルをバイナリ化するのではなく実数で構成することもできる。主成分分析または任意の他の次元縮小技術を特徴ベクトルに対して使用することにより、低次元の表現を求めることも可能である。
【0022】
【0023】
さらに特に、図5を参照すると、同性質の名前の各ペアにおけるそれぞれの名前を特徴抽出にかけ、名前を表現するバイナリ特徴ベクトルを作成する動作には、各言語それぞれについて、最初にその言語による所定数の名前から所定の特徴を抽出して、その言語に特有の特徴のセットを作成する動作(500)が含まれる。次に、抽出された特徴について所定の順序を確立する(502)。次に、作成されている特徴ベクトルのビット位置を、確立された順序で各抽出された特徴と同等とみなす(504)。対象としている言語による同性質の名前の各ペアから前回選択されなかった名前を選択し(506)、対象としている言語に特有の特徴のセット内にある特徴に対応する、選択された名前に存在する所定の特徴のそれぞれを識別する(508)。そして、選択された名前の中に発見された特徴に対応するビット位置に第1の二進値を割り当て、かつ、選択された名前の中に発見されない特徴に対応するビット位置に第2の二進値を割り当てるように、選択された名前の特徴ベクトルを生成する(510)。次に、対象としている言語による同性質の名前の各ペアから、名前が選択され処理されたかどうを判定する(512)。名前が選択され処理されていないと判定された場合、動作(506)を、(512)を介して繰り返す。そうでない場合、対象としている言語について手続きは終了し、他方の言語による名前を処理する。
【0024】
【0025】
一実装において、Kビットのハッシュ関数は、例えば、セマンティックオブジェクトの第1の表現またはビューにはg、セマンティックオブジェクトの第2の表現またはビューにはhとすると、以下のようにK個の1ビットハッシュ関数で構成される。
【0026】
【数1】
【0027】
【数2】
【0028】
後に説明するように、各1ビットハッシュ関数を、セマンティックオブジェクトを入力として取るように設計し、それを+1または−1(または、同じように1または0)のどちらかにハッシュする。K個の1ビットハッシュ関数のそれぞれを用いてオブジェクトをハッシュし、ビットを1つに連結することにより、オブジェクトを表現するKビットバイナリコードを作成する。セマンティックオブジェクトをバイナリコードとして表現することには、従来のハミング距離計算を使用して2つのバイナリ表現の間の類似度を判定することができるなど、多くの利点がある。後により詳細に説明するように、これにより検索をより速くより効率的に行い、特に大きなデータベースでは影響がある。
【0029】
訓練データ内の同性質のオブジェクト(例えば、名前)間のハミング距離を最小化するハッシュ関数gおよびhを求めることが課題である。より詳細には、同性質のオブジェクトで構成される訓練データから上述のK個の1ビットハッシュ関数を学習することが、タスクである。このタスクは以下の最適化問題として提示することができる。
【0030】
【数3】
【0031】
これは、計算上簡素化された最小化の定式では、
【0032】
【数4】
【0033】
となり、ここで、Nは同性質のオブジェクトのペアの数であり、xiは対象としている同性質のオブジェクト(例えば、英語バージョンの人名)の第1のビューについての特徴ベクトルであり、yiは対象としている同性質のオブジェクト(例えば、カンナダ語バージョンの人名)の他方のビューについての特徴ベクトルである。
【0034】
加えて、ハッシュ関数は、制約として符号化されるある有利な特性を有することが望ましい。第一に、ハッシュ関数は、得られるバイナリハッシュコードの作成されたビットの内、約50%が+1となり、残りが−1となる、集約的な結果を出すことができる。以下の通りである。
【0035】
【数5】
【0036】
かつ
【0037】
【数6】
【0038】
さらに、有利なことに、得られるバイナリハッシュコードの作成されるビットは無相関である。従って、
【0039】
【数7】
【0040】
かつ
【0041】
【数8】
【0042】
ここで、
【0043】
【数9】
【0044】
かつ
【0045】
【数10】
【0046】
である。
【0047】
計算上さらに簡単に1ビットハッシュ関数を得るために、線形緩和を採用し、以下のようになる。
【0048】
【数11】
【0049】
かつ
【0050】
【数12】
【0051】
ここで、AおよびBは変換を表す。
【0052】
従って、最終的な形式では、最適化問題は以下のように定式化することができる。
【0053】
【数13】
【0054】
これは、さらに上述の集約される制約および無相関のビット制約を受け、ここで以下のように定式化することができる。
【0055】
【数14】
【0056】
かつ
【0057】
【数15】
【0058】
変換AおよびBは、2つの異なる表現またはビュー(例えば、2つの異なる言語)による類似するオブジェクト(例えば、人名)が、Kビットのハッシュ関数によって類似するバイナリハッシュコードにマッピングされる、というものである。そのような変換を、上述の同性質のオブジェクト訓練セットおよび相関法を使用して、学習することが可能である。
【0059】
一実施形態において、特徴ベクトルのグループのそれぞれの同性質のオブジェクトのペアを、同一のセマンティックオブジェクトの2つの表現またはビューとしてみなすことにより、正準相関分析(CCA)を採用して変換AおよびBを求めることが可能である。より詳細には、2つのビューを有する多変量データのサンプルを考えると、CCAは、2つのビューの予測の間の相関が最大になるように各ビューについて線形変換を求める。多変量データのサンプル
【0060】
【数16】
【0061】
を考える。ここで、
【0062】
【数17】
【0063】
および
【0064】
【数18】
【0065】
はオブジェクトの2つのビューである。
【0066】
【数19】
【0067】
かつ
【0068】
【数20】
【0069】
とする。XおよびYを集約する、すなわち、ゼロ平均を持つと仮定する。aおよびbは2つの方向であるとする。すると、Xを方向aに投影して、
【0070】
【数21】
【0071】
を得ることができる。ここで、
【0072】
【数22】
【0073】
である。同様に、Yを方向bに射影して射影関数
V={vi}Ni=1
を求める。ここで、
【0074】
【数23】
【0075】
である。CCAの目的は、射影関数UおよびVを最大限に相関するように、方向のペア(a;b)を求めることである。これを、以下の最適化問題を解決することにより達成する。
【0076】
【数24】
【0077】
上述の方程式13の目的関数は、以下の一般固有値問題を解決することにより最大化可能である。
【0078】
【数25】
【0079】
【数26】
【0080】
次の基底ベクトルは、基本制約の直交性を目的関数に加えることにより求めることができる。基底ベクトルの数はmin{Rank(X),Rank(Y)}程度に高くすることができるが、実際は、より少ない数の最初に生成された基底ベクトル(「最上」基底ベクトルと称する)を使用し、これは射影関数の相関がこれらのベクトルには高く、残りのベクトルには低いためである。加えて、最上基底ベクトルの内、方程式(12)を順次最大化するものを採用し、上述の集約的および無相関のビット制約に適合させることが望ましい。この目的のため、AおよびBを、CCAにより計算される第1のK個(K>0(例えば、32))の基底ベクトルとする。従って、AおよびBは次のように表すことができる。
【0081】
【数27】
【0082】
かつ
【0083】
【数28】
【0084】
【0085】
上記を考慮して図6を参照すると、一実装において、同性質のセマンティックオブジェクトを表現する特徴ベクトルに基づき、第1の表現またはビューに対する所定数の変換と、第2の表現またはビューに対する同数の変換を確立する動作には、まず、CCAを使用して第1および第2の表現またはビューのそれぞれの候補の変換を計算する動作が含まれる(600)。そして、第1の表現またはビューに対する第1の変換セットを、第1の表現またはビューについて計算された候補の変換から確立し、第2の表現またはビューに対する第2の変換セットを、第2の表現またはビューについて計算された候補の変換から確立する(602)。確立された変換は、セマンティックオブジェクトの同性質のペアごとに、第1の変換セットを、第1の表現またはビューを表すセマンティックオブジェクトの同性質のペアのセマンティックオブジェクトを表現する特徴ベクトルに適用し、かつ、第2の変換セットを、第2の表現またはビューを表すセマンティックオブジェクトの同性質のペアのセマンティックオブジェクトを表現する特徴ベクトルに適用すると、セマンティックオブジェクトの同性質のペアの全てについて作成され、結果と生じる第1および第2のバイナリハッシュコードの間の総ハミング距離を最小化するようにする。加えて、第1の変換セットを、作成される第1のバイナリハッシュコードのビットのほぼ半分が第1の二進値を表し、かつ残りのビットが他方の二進値を表すという制約を示すように確立する。同様に、第2の変換セットを、作成される第2のバイナリハッシュコードのビットのほぼ半分が第1の二進値を表し、かつ残りのビットが他方の二進値を表すという制約を示すように確立する。さらに、第1の変換セットを、作成される第1のバイナリハッシュコードのビットが無相関であるという制約を示すように確立し、かつ、第2の変換セットうぃ、作成される第2のバイナリハッシュコードが無相関であるという制約を示すように確立する。
【0086】
1.3 バイナリハッシュコードの生成
同性質のオブジェクト訓練ペアから計算された変換AおよびBを、1ビットハッシュ関数として採用し、変換を作成するために使用される表現/ビュー(例えば、言語)に関連するセマンティックオブジェクト(例えば、人名)を表現する特徴ベクトルから、バイナリハッシュコードを作成する。従って、上述の例において、Aを使用して、人の英語での名前を表現する特徴ベクトルからバイナリハッシュコードを作成することができ、Bを使用して、人のカンナダ語での名前を表現する特徴ベクトルからバイナリハッシュコードを作成することができる。
【0087】
【0088】
【0089】
【数29】
【0090】
ここで、
【0091】
【数30】
【0092】
の時、
【0093】
【数31】
【0094】
【数32】
【0095】
ここで、
【0096】
【数33】
【0097】
の時、
【0098】
【数34】
【0099】
【0100】
【数35】
【0101】
なお、バイナリ化sgn関数は、必要に応じて、j<0の時に−1値の代わりに0ビット値を返すことができる。
【0102】
2.0 ディレクトリのインデックス化および検索
上述の様式で作成される各バイナリハッシュコードは、ハッシュコードの作成に使用される変換に関連する表現またはビュー(例えば、言語)によるセマンティックオブジェクト(例えば、人名)のデータベースディレクトリに、加えることができる。これにより、検索可能なデータベースを作成するが、このデータベースおいては、データベース内の項目が第1の表現またはビューを表すセマンティックオブジェクトであり、第2の表現またはビューを表すセマンティックオブジェクトを、該検索可能なデータベースに対して検索クエリとして提示すると、検索クエリのセマンティックオブジェクトに対応する、データベースからの任意のセマンティックオブジェクトの識別を含む出力が行われる。
【0103】
上記は、最初にデータベースのディレクトリをインデックス化することにより達成することができる。一般に、セマンティックオブジェクトのディレクトリ(例えば、人名のディレクトリ)を前提とすると、一実施形態において、以下のようにインデックス化が可能である。まず、ディレクトリ内のリストアップされた各オブジェクトについて、その特徴ベクトルを上述のように形成する。次に、対になった2つの表現/ビュー(例えば、英語−カンナダ語)の内のディレクトリの特定の表現/ビュー(例えば、英語)に対して展開されたKビットハッシュ関数を、各オブジェクトについてKビットバイナリコードを計算するために使用する。このハッシュ関数は、他方の表現/ビュー(例えば、カンナダ語)のバイナリコードの計算に使用される随伴する関数を有する。そして、各オブジェクトのリストを、オブジェクトに関連するオブジェクトのバイナリコードと共に、キーとしてハッシュテーブルに挿入する。
【0104】
より詳細には、図7を参照すると、第1の表現またはビュー用に確立された変換を使用して、第1の表現またはビューを表す、データベースに含まれるセマンティックオブジェクトを、該セマンティックオブジェクトを表現する第1のバイナリハッシュコードの形式で特徴付ける(700)。なお、本手続きの一実装を、図2およびそれに付随する説明において概説する。次に、データベースに含まれるセマンティックオブジェクトを特徴付ける第1のバイナリハッシュコードを、データベース内の対応するセマンティックオブジェクトにそれぞれ関連付ける(702)。図8を参照すると、一実装において、この最後の動作には、まず、データベースに含まれるセマンティックオブジェクトに対応するデータベースディレクトリのエントリを有するハッシュテーブルを確立する動作(800)が含まれる。次に、データベースに含まれるセマンティックオブジェクトそれぞれを特徴付ける第1のバイナリハッシュコードを、ハッシュテーブルに追加し(802)、それぞれを、ハッシュテーブル内のその対応するデータベースディレクトリエントリに関連付ける(804)。
【0105】
ディレクトリ内のセマンティックオブジェクトのリストを、上述のようにインデックス化すると、ディレクトリはクエリを使用した検索が可能となる。このクエリは、表現/ビューのどちらか(例えば、英語またはカンナダ語)とすることができる。より詳細には、クエリを入力し、クエリの表現/ビューに適切な手続きを使用して、最初に特徴ベクトルをクエリから生成する。次に、クエリの表現/ビューに対して当てられるKビットハッシュ関数を使用して、クエリの特徴ベクトルからKビットバイナリコードを計算する。次に、ハッシュテーブル内の各キーに対するクエリのKビットバイナリコードの類似度を計算する。なお、クエリが、ディレクトリのインデックス化に使用されるKビットハッシュ関数に関連する同一の表現またはビュー(例えば、英語)である上記の例においては、これは、単一言語による検索と等しく、スペル訂正の目的に有用である。
【0106】
上記を考慮して図9を参照すると、一実装において、検索クエリを上述の第2の表現またはビューを表すデータベースに入力すると(900)、該検索クエリを表現する特徴ベクトルが生成される(902)。そして、第2の表現またはビューに対して確立された変換の内の前回選択されなかった変換を選択する(904)。選択された変換を、検索クエリの特徴ベクトルに適用し、その結果をバイナリ化し、検索クエリを表現する第2のバイナリハッシュコードのビットを作成する(906)。次に、全ての変換を選択したかどうかを判定する(908)。全ての変換を選択していない場合、動作(904)を、(908)を介して繰り返す。全ての変換を選択しかつ適用すると、変換により作成されたビットを、所定の順序で連結し、検索クエリを表現する第2のバイナリハッシュコードを作成する(910)。次に、検索クエリを表現する第2のバイナリハッシュコードに対して所定の類似度を表す第1のバイナリハッシュコードを有する、データベースに含まれるセマンティックオブジェクト(単数または複数)を発見する(912)。検索クエリを表現する第2のバイナリハッシュコードに対して所定の類似度を表すことが発見された第1のバイナリハッシュコードを有する、一致するセマンティックオブジェクト(単数または複数)の識別を出力する(914)。
【0107】
なお、類似度には任意の適切な測定値を採用することが可能であるが、一実装において、ハミング距離を測定値として使用する。ハミング距離を使用することは、クエリおよびインデックスキーの両方がバイナリコードであるため、適切であり、ハミング距離を使用して、素早くかつ容易に2つのバイナリコードを比較することが可能である。ディレクトリ内のセマンティックオブジェクトおよびクエリをバイナリコードとして表現すること、ならびに、ハミング距離を類似度の測定値として使用することには、かなりの利点がある。ディレクトリ内に数百万のオブジェクトをリストアップする場合でも、ハミング距離をクエリと各キーの間で別々に計算する総当たりの比較を採用することが可能であり、全体の手続きに1秒かからないであろう。従って、ディレクトリの検索は速く、別段必要が無い限り、より高機能の類似度測定値および比較の方法を採用する必要はない。次に、クエリと各キーの間で計算される類似度を、最も近接するマッチングキー(単数または複数)の識別に使用する。一実装において、最も近接したマッチングキーだけを識別する(または、関連がある場合は最も近接する複数のマッチングキー)。しかし、代替の実装において、クエリに対する類似度が類似閾値と交差する全てのキーを識別する。なお、ハミング距離の場合、距離が所定の距離以下である全てのキーを識別することができる。閾値は、関係するセマンティックオブジェクトのタイプおよび検索に求められる精度に依存する。一実装において、類似閾値を、上位の5から10個の結果が識別されて出力されるように、設定することができる。
【0108】
3.0 複数部分オブジェクトの特徴付けおよび検索
ここまで、本明細書に記載されるセマンティックオブジェクトの特徴付けでは、単一部分セマンティックオブジェクトの特徴付けを扱っている。例えば、単一の単語から成る名前などである。しかし、これを拡張させて、複数の単語から成る名前などの、複数部分オブジェクトを扱うことができる。一般的な例としては、人の姓と名がある。これは2つの単語から成る名前を構成する。人名を探してディレクトリを検索する場合、そのフルネームの使用を有利とすることができる。
【0109】
一実装において、オブジェクトを構成する複数の部分を、それらの部分を組み合わせることによる単一の部分オブジェクトと見なすことができる。例えば、人の姓と名は簡単に1つの単語に組み合わせ、その形式で特徴付けすることが可能である。複数の部分オブジェクトが組み合わされて、複数の部分クエリを用いて単一の部分形式で特徴付けされる、ディレクトリにおける検索を実行するためには、そのクエリの部分を、特徴付けおよびサブミットする前に組み合わせる。
【0110】
しかし、代替の実施形態において、複数の部分セマンティックオブジェクトの各部分を、特徴付けし、別々にインデックス化する。そして、複数の部分オブジェクトのクエリの個々の部分を別々に特徴付けし、各部分について戻される類似度測定値を組み合わせて全体の類似度測定値を作成する。一実装において、これを、複数部分オブジェクトのクエリの各部分について戻される類似度測定値から重み付き二部グラフを構築することにより達成する。
【0111】
図10を参照すると、この後者の実施形態の一実装において、複数のセマンティックオブジェクトから構成される検索クエリを入力する(1000)。次に、上述した図9の手続きを、検索クエリの複数のセマンティックオブジェクトのそれぞれに対して実行する。従って、検索クエリ内の各セマンティックオブジェクトに対して、一致するセマンティックオブジェクト(単数または複数)の識別を出力する(1002)。次に、重み付き二部グラフを構築する(1004)。このグラフでは、検索クエリのセマンティックオブジェクトのそれぞれが、第1のノードセットを形成し、また、検索クエリのセマンティックオブジェクトのそれぞれに対して出力され識別された一致するセマンティックオブジェクト(単数または複数)が、第2のノードセットを形成する。加えて、第1のノードセットに関連する各セマンティックオブジェクトと、第2のノードセットに関連するセマンティックオブジェクトとの間には、それらのセマンティックオブジェクトバイナリハッシュコードに基づく該セマンティックオブジェクト間の計算された類似度が閾値と交差する場合に、エッジを割り当てる。エッジの重みを、エッジが接続するノード間の類似度と等しく設定する。グラフを構築すると、グラフにおける最大重み付き二部グラフマッチングを求め(1006)、このマッチングの重みを計算する(1008)。次に、マッチングの重みを、第1のノードセットと第2のノードセットの間のノード数の差に基づき正規化する(1010)。
【0112】
【0113】
wをグラフGにおける最大重み付き二部マッチングの重みとする。EとHとの間の類似度は、以下のように定義することができる。
【0114】
【数36】
【0115】
方程式(36)の右辺の分子には、かなりの数の高品質のマッチングを個々のレベルで有する名前のペアが好ましく、一方、分母は不均衡な長さを有するペアには不利に働く。
【0116】
なお、実際は、IとJは両者とも小さく、従って最大重み付き二部マッチングは非常に簡単に求めることができる。さらに、二部グラフにおける最大のエッジの重みは無視できるほど小さい。従って、実際には貪欲マッチングアルゴリズムでも十分である。
【0117】
4.0 コンピューティング環境
ここで、本明細書に記載されるセマンティックオブジェクトの特徴付けおよび検索の実施形態の一部を実装することができる、適切なコンピューティング環境の簡単な概要について説明する。技術的な実施形態は、多数の汎用または専用のコンピューティングシステム環境または構成を用いて操作可能である。適切な周知のコンピューティングシステム、環境、および/または、構成の例に含まれるものには、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップの装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置の内のいずれかを含む分散コンピューティング環境、などがあるが、これに限定しない。
【0118】
図11には、適切なコンピューティングシステム環境の例を示す。コンピューティングシステム環境は、適切なコンピューティング環境の単なる一例にすぎず、本明細書に記載される実施形態の使用または機能性の範囲について任意の制限を示唆することを意図しない。また、コンピューティング環境は、例示の動作環境において例示される構成要素の内の任意の1つまたは組み合わせに関する任意の依存性または要件を有するものとして解釈されるべきでもない。図11を参照すると、本明細書に記載される実施形態を実装するための一例のシステムには、コンピューティング装置10などのコンピューティング装置を含む。最も基本的な構成において、コンピューティング装置10には典型的には、少なくとも1つの処理装置12およびメモリ14を含む。コンピューティング装置の厳密な構成およびタイプに依存して、メモリ14は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)またはその2つの何らかの組み合わせとすることができる。この最も基本的な構成を、図11に点線16で示す。加えて、装置10は、追加の特徴/機能性を有することができる。例えば、装置10は、磁気また光のディスクまたはテープを含むがこれに限定されない追加の記憶装置(着脱可能および/または着脱不能)を含むことができる。そのような追加の記憶装置を、着脱可能記憶装置18および着脱不能記憶装置20により図11に示す。コンピュータ記憶媒体には、揮発性および不揮発性、着脱可能および着脱不能の、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される媒体を含む。メモリ14、着脱可能記憶装置18、および着脱不能記憶装置20は、全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望の情報の記憶に使用可能、かつ、装置10がアクセス可能な任意の他の媒体、を含むがこれに限定しない。任意のそのようなコンピュータ記憶媒体は装置10の一部とすることができる。
【0119】
装置10はまた、装置と他の装置との通信を可能にする通信接続(単数または複数)22を含むことができる。装置10はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、カメラ、などの入力装置(単数または複数)24を有しても良い。ディスプレイ、スピーカ、プリンタなどの出力装置(単数または複数)26を、含むことができる。これらの装置全ては、従来技術において周知であり、ここで詳細に検討する必要はない。
【0120】
本明細書に記載されるセマンティックオブジェクトの特徴付けおよび検索の実施形態は、プログラムモジュールなどの、コンピューティング装置により実行されるコンピュータ実行可能命令の一般的な文脈でさらに説明することができる。一般に、プログラムモジュールには、特定のタスクを実行または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造など、を含む。本明細書に記載される実施形態はまた、タスクを通信ネットワークを介してリンクされるリモート処理装置により実行する分散コンピューティング環境において実践することができる。分散コンピューティング環境において、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体に配置させることができる。
【0121】
5.0 他の実施形態
セマンティックオブジェクトと表現またはビューとの、上で説明した名前−言語の例以外のある他の例には、セマンティックオブジェクトがユーザによりクエリされるエンティティであり、2つの表現またはビューがこのエンティティに関連するウェブページからの画像特徴とテキスト特徴であるという場合を含む。従って、同一のセマンティックオブジェクトについて、マルチモーダル検索の操作を向上させるために使用可能な2つのビューが存在する。別の例は、セマンティックオブジェクトが文書であり、2つの表現またビューが第1の言語による文書と第2の言語による文書である場合である。2つの言語による配列された同性質の文書のセットからハッシュ関数を学習後、ハッシュ関数を使用してどちらかの言語による文書コレクションをクロス言語検索することが可能である。さらに別の例には、セマンティックオブジェクトが単語であり、その2つのビューがその単語の文字配列と音素配列であるものがある。発音辞書からハッシュ関数を学習後、該ハッシュ関数を使用して、テキスト中の未知語を探して辞書における最も近い音素配列を検索することができる。
【0122】
本記載全体にわたる、上述の実施形態の内のいずれかまたは全てを、所望の任意の組み合わせで使用して追加の混合実施形態を形成することができる。加えて、主題は、構造的特徴および/または方法論的動作に特有の言語で記載されたが、添付の請求項に定義される主題が、必ずしも上述の特定の特徴または動作に限定されないことは理解されるべきである。むしろ、上述の特定の特徴および動作は、請求項を実装する例示の形式として開示される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11