IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ドロップボックス, インコーポレイテッドの特許一覧

<>
  • 特許-意味画像検索 図1
  • 特許-意味画像検索 図2
  • 特許-意味画像検索 図3
  • 特許-意味画像検索 図4
  • 特許-意味画像検索 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-18
(45)【発行日】2022-11-29
(54)【発明の名称】意味画像検索
(51)【国際特許分類】
   G06F 16/532 20190101AFI20221121BHJP
   G06F 16/56 20190101ALI20221121BHJP
【FI】
G06F16/532
G06F16/56
【請求項の数】 9
(21)【出願番号】P 2021550269
(86)(22)【出願日】2020-02-21
(65)【公表番号】
(43)【公表日】2022-04-13
(86)【国際出願番号】 US2020019172
(87)【国際公開番号】W WO2020209940
(87)【国際公開日】2020-10-15
【審査請求日】2021-10-27
(31)【優先権主張番号】16/378,261
(32)【優先日】2019-04-08
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】509117964
【氏名又は名称】ドロップボックス, インコーポレイテッド
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】バーグ, トーマス
(72)【発明者】
【氏名】ベリュムール, ピーター ニール
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2019-008783(JP,A)
【文献】特開2007-249584(JP,A)
【文献】米国特許第08391618(US,B1)
【文献】杉山 裕樹,外2名,「画像とテキスト双方の特徴空間に対する相互適合性フィードバック」,第2回データ工学と情報マネジメントに関するフォーラム-DEIM 2010-論文集,日本,電子情報通信学会データ工学研究専門委員会,2010年05月25日
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
意味画像検索のための方法であって、前記方法は1つ以上のコンピュータにより実施され、前記方法は、
入力キーワード単位を表すワードベクトルを取得することであって、前記ワードベクトルは、ベクトル空間内のキーワード単位をN次元ベクトルとして投影する、且つ、前記ベクトル空間内のベクトル間の距離が前記キーワード単位間の意味類似度に対応する、埋め込み関数に従って生成される、取得することと、
複数の画像コンテンツクラスキーワード単位を表す複数のワードベクトルを取得することであって、前記複数の画像コンテンツクラスキーワード単位の各画像コンテンツクラスキーワード単位は、複数の画像コンテンツクラスのそれぞれの画像コンテンツクラスを記述し、前記複数のワードベクトルの各ワードベクトルは前記埋め込み関数に従って生成される、取得することと、
複数のベクトル類似度測定値を含む画像マッチベクトルを生成することであって、前記複数のベクトル類似度測定値の各ベクトル類似度測定値は、(a)前記入力キーワード単位を表す前記ワードベクトルと、(b)前記複数のワードベクトルのそれぞれのワードベクトルとの間の計算されたベクトル類似度に基づくものである、生成することと、
前記画像マッチベクトルと特定の画像ベクトルとの間のベクトル類似度測定値を計算することであって、前記特定の画像ベクトルは、特定のデジタル画像についてのものであり、前記特定のデジタル画像についての前記特定の画像ベクトルは、前記複数の画像コンテンツクラスについての複数の確率値を含み、前記複数の確率値の各確率値は、前記特定のデジタル画像が前記複数の画像コンテンツクラスのそれぞれの画像コンテンツクラスに属する確率を反映する、計算することと、
前記画像マッチベクトルと前記特定の画像ベクトルとの間の前記ベクトル類似度測定値に基づいて、前記特定のデジタル画像を前記入力キーワード単位と関連するものとして識別することと、
を含む方法。
【請求項2】
前記複数のベクトル類似度測定値の前記画像マッチベクトルを生成すること、をさらに含み、前記複数のベクトル類似度測定値の各ベクトル類似度測定値は、(a)前記入力キーワード単位を表す前記ワードベクトルと、(b)前記複数の画像コンテンツクラスキーワード単位を表す前記複数のワードベクトルの前記それぞれのワードベクトルとの間の計算された余弦類似度に基づくものである、請求項1に記載の方法。
【請求項3】
前記画像マッチベクトルと前記特定の画像ベクトルとの間の余弦類似度を計算することと、
前記画像マッチベクトルと前記特定の画像ベクトルとの間の前記余弦類似度に基づいて、前記特定のデジタル画像を前記入力キーワード単位に関連するものとして識別することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記複数の画像コンテンツクラスの特定の画像コンテンツクラスは、前記複数の画像コンテンツクラスキーワード単位の2つ以上の画像コンテンツクラスキーワード単位に関連付けられており、前記方法は、
前記2つ以上の画像コンテンツクラスキーワード単位の各画像コンテンツクラスキーワード単位について、前記入力キーワード単位を表す前記ワードベクトルと前記画像コンテンツクラスキーワード単位の前記それぞれのワードベクトルとの間のベクトル類似度を計算することと、
前記特定の画像コンテンツクラスに対する代表ベクトル類似度測定値として前記画像マッチベクトルに含めるために、前記入力キーワード単位で、前記2つ以上の画像コンテンツクラスキーワード単位のうち、最も大きな意味類似度を表す、前記2つ以上の画像コンテンツクラスキーワード単位について計算された2つ以上のベクトル類似度の、前記ベクトル類似度を選択することと、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記画像マッチベクトルと前記特定の画像ベクトルとの間の前記ベクトル類似度測定値に基づいて、グラフィカルユーザインタフェースをクライアントコンピューティングデバイスで提示することをさらに含み、
前記グラフィカルユーザインタフェースは、前記特定のデジタル画像が前記入力キーワード単位に関連することを示す、請求項1に記載の方法。
【請求項6】
前記画像マッチベクトルと複数の画像ベクトルの各々との間のベクトル類似度測定値を計算することであって、前記複数の画像ベクトルの各画像ベクトルは、それぞれのデジタル画像に対するものであり、前記それぞれのデジタル画像に対する前記画像ベクトルは、前記複数の画像コンテンツクラスに対する複数の確率値を含み、前記複数の確率値の各確率値は、前記それぞれのデジタル画像が前記複数の画像コンテンツクラスのそれぞれの画像コンテンツクラスに属する確率を反映する、計算することと、
前記画像マッチベクトルと前記複数の画像ベクトルとの間の前記ベクトル類似度測定値に基づいて、複数のデジタル画像を前記入力キーワード単位に関連するものとして識別することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
前記画像マッチベクトルの特定の要素に対応する、前記複数の画像コンテンツクラスの特定の画像コンテンツクラスを選択することと、
前記特定の画像コンテンツクラスの識別子を反転インデックスへのキーとして使用して、前記反転インデックスから前記特定の画像ベクトルを検索することと、
をさらに含む、請求項1に記載の方法。
【請求項8】
請求項1乃至7の何れか1項に記載の方法を実行するように構成された命令を有する1つ以上のコンピュータプログラムを含む1つ以上の非一時的コンピュータ可読媒体。
【請求項9】
コンピューティングシステムであって、
1つ以上のプロセッサと、
記憶媒体と、
前記記憶媒体に記憶され、前記1つ以上のプロセッサによって実行されるように構成された1つ以上のコンピュータプログラムであって、前記1つ以上のコンピュータプログラムは、請求項1乃至7の何れか1項に記載の方法を実行するように構成された命令を有する、1つ以上のコンピュータプログラムと、
を含むコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、デジタル画像のコーパスからデジタル画像のサブセットを取り出す(検索する)ためのコンピュータ実施技術に関する。より詳細には、本開示は、1つ以上の入力キーワード単位(ユニット)に意味的に一致する画像コンテンツを含むデジタル画像を取り出す(検索する)ためのコンピュータ実施技術に関する。
【背景技術】
【0002】
数百万のデジタル画像をシンセット(synset:1つ以上の同義語の組)で記述された意味のある概念に従って編成するビジュアルデータベースが存在する。シンセットは互いにほぼ同義である同じ語彙カテゴリ(例えば、名詞、動詞など)からの1つ以上のキーワード単位のセットを含むことができる。キーワード単位は、単一の単語、フレーズ、又は他の論理的な文法単位から構成されてもよい。
【0003】
ビジュアルデータベースは、複数のデジタル画像を各シンセットに関連付けることができる。シンセットに関連付けられた画像の各々は、シンセットによって記述された概念を表すコンテンツを有することができる。例えば、スタンディングスタートまたはランニングスタートからできるだけ遠くへジャンプする行為の概念は、キーワード単位「ブロードジャンプ(broad jump)」および「ロングジャンプ(long jump)」を有するシンセットに対応することができる。このシンセットは例えば、トラックおよびフィールドコンテストにおけるように、ブロードジャンプまたはロングジャンプする人物の画像を含むデータベース内の画像に関連することができる。
【0004】
ビジュアルデータベース内の画像は、さまざまな概念の範囲にまたがる数万の異なるシンセットに関連付けられてもよい。例えば、IMAGENETビジュアルデータベースは、現在、21,000を超える異なるシンセットに関連する1400万を超えるデジタル画像を含む。IMAGENET自体のシンセットは、WORDNETと呼ばれる大きな語彙データベースに基づいている。IMAGENETの詳細情報については、インターネットのimage-net.orgドメインを利用可能である。WORDNETの詳細情報については、インターネットのwordnet.princeton.eduドメインを利用可能である。別のビジュアルデータベースはOPEN IMAGESデータベースであり、それについてはインターネット上のstorage.googleapis.comドメインの/openimages/web/index.htmlを利用可能である。
【0005】
コンピュータビジョン技術を用いて、IMAGNETのようなビジュアルデータベースに基づいてディープ畳み込み人工ニューラルネットワークをトレーニングし、入力デジタル画像を、異なる画像コンテンツクラスの画像コンテンツに関して比較的高い精度で分類することができる。このようなトレーニングされたネットワークによる画像の分類は、一つ以上のシンセットに対応する一つ以上の画像コンテンツクラスを示してもよい。例えば、トレーニングされたネットワークは、所与の画像に対するソフトマックス値のセットを出力することがある。ソフトマックス値のセットは例えば、所与の画像に対する最も確率の高いIMAGENET画像コンテンツクラスが識別子「n00440382」をもつ画像コンテンツクラスであることを示すことができ、これはキーワードフレーズ「ブロードジャンプ」および「ロングジャンプ」を含むシンセットに対応する。同様に、画像のセットはそれぞれ、一つ以上の異なる画像コンテンツクラスの中の画像コンテンツに関して分類されることができる。
【0006】
画像が画像コンテンツクラス内の画像コンテンツに関して分類された後、特定の画像を電子的に検索することが望ましい場合がある。例えば、例えば、カリフォルニア州サンフランシスコのDropbox,Inc.によって提供されるDROPBOXクラウドベースのコンテンツ管理サービスのようなクラウドベースのコンテンツ管理サービスのユーザは、ユーザのペットのプードル(poodle)の画像であるサービスと共にホストされるユーザのデジタル写真を検索又は閲覧することを望むことができる。これを容易にするために、サービスは、ユーザがキーワード単位「poodle」を入力および提出することを可能にするユーザインタフェースをユーザに提供し、その後、そのキーワード単位に関連すると見なされるユーザの画像の1つを示す結果を受信することができる。
【0007】
ユーザのデジタル写真のどれが所定のキーワード単位に関連するかを識別するための1つの可能なアプローチは、トレーニングされた画像分類器によって決定されるように、デジタル写真が属する画像コンテンツクラスに関連付けられたシンセットのキーワード単位によって、反転されたキーワード単位インデックス内のデジタル写真をインデックス付けすることである。例えば、プードルのデジタル写真は、IMAGENET画像コンテンツクラス「n02111277」に分類されてもよい、この画像コンテンツクラスに関連付けられたシンセットは、キーワード単位:「dog」、「domestic dog」、および「canis familiaris」を含む。プードルの写真は、関連付けられたシンセットのこれらのキーワード単位によって、反転されたキーワード単位インデックスでインデックス付けされてもよい。しかし、このシンセットにはキーワード単位「poodle」が含まれていないため、キーワード単位「poodle」による反転されたキーワード単位インデックスでデジタル写真がインデックス付けされない場合がある。その結果、ユーザのクエリに明確に関連する写真がクエリに関連するものとして識別されない可能性がある。全体として、反転されたキーワードインデックスアプローチは、画像が反転キーワード単位インデックスにおいてインデックス付けされる新セットのキーワード単位のセットとほぼ同義であるが、それには含まれない入力キーワード単位に関連する画像を識別しない可能性がある。
【0008】
本発明は、この問題および他の問題に対処する。
【0009】
このセクションで説明されるアプローチは、追求されることができるアプローチであるが、必ずしも、以前に考えられた、または追求されたアプローチではない。したがって、特に断らない限り、このセクションに記載されるアプローチのいずれも、単にこのセクションに含まれることによって、先行技術として適格であるか、または周知の、日常的な、もしくは従来的なものであると仮定すべきではない。
【図面の簡単な説明】
【0010】
図面において:
【0011】
図1図1は、本発明の一実施形態による、意味(セマンティック)画像検索をサポートする画像マトリクスを示す。
【0012】
図2図2は、本発明の一実施形態による、意味(セマンティック)画像検索をサポートするラベルマトリクスを示す。
【0013】
図3図3は、本発明の一実施形態による、ラベルマトリクスを生成するためのオフライン処理を示す。
【0014】
図4図4は、本発明の一実施形態による、意味(セマンティック)画像検索のためのオンライン処理を示す。
【0015】
図5図5は、本発明の実施形態を実施することができるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0016】
以下の説明において、説明の目的のために、本発明の完全な理解を提供するために、多数の特定の詳細が記載される。しかしながら、本発明は、これらの特定の詳細なしに実施されてもよいことは明らかであろう。本発明を不必要に不明瞭にするのを避けるために公知の構造及び装置はブロック図で示してある。
【0017】
全体概要
意味(セマンティック)画像検索のためのコンピュータ実施技術が開示される。所与の入力キーワード単位(ここでは「クエリ」と呼ばれることもある)に意味的に関連する画像コンテンツを有するデジタル画像のサブセットは、そのクエリによって画像のサブセットが反転キーワードインデックスでインデックス付けされていない場合であっても、デジタル画像のコーパスから検索する(取り出す)ことができる。これを行うために、画像のコーパスはまず、画像分類器を用いて画像コンテンツクラス(ここでは「カテゴリ」と呼ばれることもある)のセットに分類される。分類の結果、画像のコーパスは、「画像」ベクトルのセットによって表現され、コーパス内の画像ごとに1つの画像ベクトルである。画像のための画像ベクトルは、カテゴリのセット内の各カテゴリについて1つまでの確率値である数値確率値のセットを含む。対応するカテゴリの確率値は、画像分類器に従って、対応するカテゴリに画像が属する確率を反映する。
【0018】
カテゴリのセットの各カテゴリは、そのカテゴリを記述する1つ以上のそれぞれの画像コンテンツクラスキーワード単位(ここでは「ラベル」とも呼ぶ)に関連付けられてもよい。例えば、カテゴリは、IMAGENETカテゴリとすることができ、1つ以上のラベルは、IMAGENETカテゴリに関連付けられたシンセットのキーワード単位を含むことができる。
【0019】
クエリに関連するデジタル画像のサブセットを検索するために、入力キーワード単位のワードベクトル表現が取得される。ワードベクトル表現は、埋め込み関数に従って生成される。埋め込み関数は、ベクトル空間内のワードベクトル間の距離が、キーワード単位間の意味(セマンティック)類似度に対応するワードベクトルとして、ベクトル空間内にキーワード単位を「投影」するように構成される。ワードベクトル表現は、カテゴリのセットに関連付けられたラベルについても取得される。
【0020】
クエリを画像ベクトルのセットに投影するために、カテゴリのセット内の各カテゴリについて1つのベクトル類似度測定値まで、ベクトル類似度測定値の第1のセットを有する「画像マッチ」ベクトルが生成される。ベクトル類似度測定値の第1のセットにおけるベクトル類似度測定値は、クエリのワードベクトル表現とカテゴリのワードベクトル表現との間のベクトル類似度を測定する。ベクトル類似度測定値は例えば、余弦類似度測定値またはドット積測定値とすることができる。例えば、カテゴリのワードベクトル表現は、クエリのワードベクトル表現がベクトル類似度測定値に従って最も類似しているカテゴリに関連付けられたラベルのワードベクトル表現とすることができる。
【0021】
クエリを画像ベクトルのセットに投影することによって、画像ベクトルのセットの次元数と同じ次元数を有する画像マッチベクトルが生成される。これは、画像マッチベクトルのベクトル類似度を画像ベクトルのセット内の画像ベクトルと比較することを容易にする。したがって、ベクトル類似度測定値の第2のセットは、画像マッチベクトルと画像ベクトルのセットの画像ベクトルとの間のベクトル類似度を計算することによって生成される。ベクトル類似度測定値の第1のセットと同様に、ベクトル類似度測定値の第2のセットのベクトル類似度測定値は例えば、余弦類似度測定値またはドット積測定値とすることができる。画像は、ベクトル類似度測定値の第2のセットにおけるベクトル類似度測定値に基づいて、クエリに関連するものとして選択されてもよい。例えば、それぞれのベクトル類似度測定値による画像マッチベクトルに対して最大の類似度を有する画像ベクトルのセットの画像ベクトルによって表される画像を、クエリに最も関連する画像として選択することができる。
【0022】
この意味(セマンティック)画像検索アプローチの結果、画像がクエリによって反転キーワード単位インデックスでインデックス付けされていなくても、画像はクエリに意味的に関連するものとして識別できる。意味(セマンティック)画像検索アプローチは、画像検索のための既存のアプローチと併せて、またはその代わりに使用することができる。例えば、意味(セマンティック)画像検索アプローチに従って検索された画像は、反転キーワードインデックスアプローチに従って検索された画像と組み合わせて、所与のクエリに関連すると考えられる画像の最終セットを生成することができる。
【0023】
ここで、図を用いて、開示された意味(セマンティック)画像検索アプローチの実施例を説明する。
【0024】
画像マトリクス
ベクトル類似度測定値の第2のセットを効率的に計算するために、デジタル画像のコーパスおよび画像分類器によるそれらの分類は、「画像」行列(マトリクス)としてコンピュータ記憶媒体に表すことができる。図1は、本発明の一実施形態による、意味(セマンティック)画像検索をサポートする画像マトリクス100を示す。
【0025】
画像マトリクス100は、デジタル画像のコーパスに基づいて生成されてもよい。例えば、デジタル画像のコーパスは、ユーザまたはユーザのグループがクラウドベースのコンテンツ管理サービスでホスティングしているデジタル画像のセットであってもよい。例えば、デジタル画像のセットは、クラウドベースのコンテンツ管理サービスによって動作される1つ以上のサーバコンピュータの記憶媒体に記憶することができる。別の例として、デジタル画像のコーパスは、例えばカメラ付きスマートフォンなどのポータブル電子コンピューティングデバイスに記憶されるデジタル画像のセットに対応することができる。したがって、画像マトリクス100は、例えば、クラウドベースのコンテンツ管理サービスによって動作されるサーバコンピュータのようなサーバコンピュータ、および/またはクラウドベースのコンテンツ管理サービスのユーザのポータブル電子コンピューティングデバイスのようなポータブル電子コンピューティングデバイスに記憶されてもよい。
【0026】
画像マトリクス100では、マトリクス100の各行は画像ベクトルのセットの画像ベクトルであり、マトリクス100の各列はカテゴリのセットのカテゴリに対応する。画像ベクトルは、デジタル画像のコーパスのそれぞれのデジタル画像に対するものである。例えば、画像ベクトルIV1に対するマトリクス100の行は、デジタル画像102に対するものである。マトリクス100の画像ベクトルによって表されるデジタル画像は、事実上任意のタイプのラスタデジタル画像(ビットマップデジタル画像と呼ばれることもある)とすることができ、.gif(Graphics Interchange Format)、.jpg (Joint Photographic Experts Group)、.png (Portable Network Graphics)等のデータフォーマットのうちの1つを有するデジタル画像を含むが、これらに限定されない。例えば、デジタル画像のコーパスは、カメラ付きポータブル電子デバイス(例えば、スマートフォン)によって撮像されたデジタル写真(またはその圧縮バージョン)を含むことができる。しかしながら、マトリクス100で表されるデジタル画像は、ベクトルグラフィクスデジタル画像(例えば、スケーラブルベクトルグラフィクス(SVG)画像)であってもよい。
【0027】
一実施形態では、画像マトリクス100の行が画像ベクトルに対応し、画像マトリクス100の列がカテゴリに対応するが、他の実施形態では、画像マトリクスの行がカテゴリに対応してもよく、列が画像ベクトルに対応してもよい。
【0028】
それぞれのデジタル画像に対する画像マトリクス100の画像ベクトルは、それぞれのデジタル画像に対する確率値のセットを含む。例えば、画像ベクトルIV1は、確率値デジタル画像102のためのPV1,0 ; PV1,1 ; PV1,2、及びPV1,3を含む。画像マトリクス100内の画像ベクトルの次元の数は、数カテゴリに等しくてもよい。明確な例を提供するために、図1には4つのカテゴリのみが示されている。しかしながら、画像マトリクスは、例えば、一実施形態では、数万の次元/カテゴリを有することができる。
【0029】
画像ベクトルの各確率値は、画像分類器によって決定されるように、それぞれのデジタル画像がカテゴリのセットのそれぞれのカテゴリに属する確率を反映する範囲内の実数(例えば、コンピュータ内の浮動小数点数として表すことができる)とすることができる。例えば、確率値PV1,0は、デジタル画像102がカテゴリICC0に属する確率を反映し、確率値PV1,1 は、デジタル画像102がカテゴリICC1に属する確率を反映し、確率値PV1,2 は、デジタル画像102がカテゴリICC2に属する確率を反映し、確率値PV1,3は、デジタル画像102がカテゴリICC3に属する確率を反映する。
【0030】
マトリクス100内の画像ベクトルの確率値は、カテゴリのセット内のそれぞれのデジタル画像を分類する際の画像分類器の出力に基づくものであってもよい。例えば、画像ベクトルIV1の確率値は、カテゴリのセット内のデジタル画像102を分類する際の画像分類器の出力に基づいてもよい。所与のデジタル画像に対する画像分類器の出力は、カテゴリのセットにわたるデジタル画像の確率分布を表すソフトマックスであってもよい。例えば、画像ベクトルIV1の確率値は、カテゴリのセットにわたるデジタル画像102の確率分布を表すソフトマックス出力に基づいてもよい。例えば、画像ベクトルIV1の確率値の和は1であってもよい。
【0031】
所与のデジタル画像に対する画像分類器の出力は、カテゴリのセットに対応するクラスロジット(class logit)のセットであってもよく、各クラスロジットは、画像ベクトルに対する確率値を生成するために独立したシグモイド関数を介して処理される。例えば、画像分類器によって生成され、シグモイド関数を介して処理されて、確率値PV1,0を生成するカテゴリICC0のためのクラスロジットから確率値PV1,0が生じることがある。
【0032】
複数の画像分類器を使用することも可能である。例えば、デジタル画像のコーパス内の各デジタル画像は、複数の異なる画像分類器に入力されてもよい。この場合、カテゴリのセットは、異なる画像分類器がデジタル画像を分類することができる画像コンテンツクラスの異なるサブセットを含むことができる。例えば、第1の画像分類器は、カテゴリICC0およびICC1でデジタル画像を分類することができ、第2の画像分類器は、カテゴリICC2およびICC3でデジタル画像を分類することができる。例えば、一実施形態では、第1の画像分類器を使用してデジタル画像のコーパス内の各デジタル画像を21,076のIMAGENETカテゴリに分類し、第2の画像分類器を使用してデジタル画像のコーパス内の各デジタル画像を5,000のOPEN IMAGESカテゴリに分類する、多種多様な異なるタイプの画像コンテンツに及ぶカテゴリのセット内に合計26,076のカテゴリがある。この場合、マトリクス100の各画像ベクトルは、21,076のIMAGENETカテゴリに対する21,076の確率値と、5,000のOPEN IMAGESカテゴリに対する5,000の確率値を含む26,076の次元を有する。
【0033】
マトリクス100内の画像ベクトルの1つ以上の確率値はゼロであり得ることに留意されたい。したがって、マトリクス100は、多数のゼロ値確率値を含むことができる。この場合、マトリクス100は疎(スパース:sparse)マトリクス表現(例えば、アレイ表現またはリンクされたリスト表現)を使用してコンピュータ記憶媒体に記憶することができ、ゼロ値の確率値は、記憶媒体空間を節約するために個別に表現されない。
【0034】
一実施形態では、マトリクス100の記憶媒体のサイズを縮小し、画像検索時に画像マッチベクトルを画像ベクトルのセットと比較する計算性能を改善するために、マトリクス100に記憶された各画像ベクトルは、要素として確率値の上位X個のみを含み、要素の残りはゼロである。例えば、Xは単に1つの確率として、100であってもよく、Xは手元の特定の実施の要件に従って変化してもよい。加えて、ベクトル内に非ゼロ要素の上位X個のみを保持する代わりに、ゼロに近い(例えば、閾値量内の)非ゼロ要素をゼロに設定することができる。したがって、マトリクス100内の各画像ベクトルは、画像分類器による対応するデジタル画像に対して最も確率の高いカテゴリのみに対する要素として非ゼロ確率値を含むことができる。これは、対応するデジタル画像が対応するカテゴリに属する比較的わずかな確率を反映する小さな数値を有する画像ベクトル内の潜在的に多くの確率値を効果的にゼロに切り捨てる。
【0035】
上記の技術は、コンピュータ記憶媒体のサイズを縮小し、その疎(スパース)表現を使用することによって画像マトリクスに関する計算性能を改善するものとして説明されているが、上記の技術は、本明細書で説明する他のマトリクスおよびベクトルに適用して、それらのマトリクスおよびベクトルに関するコンピュータ記憶媒体のサイズを縮小し、計算効率を改善することができる。例えば、ラベルマトリクスまたは画像マッチベクトルの疎(スパース)表現が、実装において使用されてもよい。したがって、ここでのマトリクスまたはベクトルへの参照は、疎(スパース)表現が上位X個の非ゼロ要素に切り捨てられるか、閾値内の非ゼロ要素がゼロであると考えられるかまたはゼロに設定されるように閾値保持されるか、または切り捨てられた表現と閾値保持された表現との組合せのいずれかで、その疎(スパース)表現を包含することを意図している。パラメータXおよび閾値は、本開示に照らして当業者が理解するように、(a)低減されたコンピュータ記憶媒体サイズと、Xに対するより低い値および閾値に対するより高い値を有する増大された計算効率、及び、(b)Xに対するより高い値および閾値に対するより低い値を有する意味(セマンティック)画像検索動作の増大された精度、の間のトレードオフに基づくことを含む手元の特定の実装の要件に従って選択されてもよい。
【0036】
様々な異なる画像分類器を使用することができ、特定のタイプの画像分類器は必要とされない。一般に、画像分類器は例えば、視点、スケール、変形、オクルージョン、照明条件、背景クラッタ、およびクラス内変動のような画像における可能な視覚的変動を説明しながら、明るさ値の三次元アレイのような画像の生(raw)表現に基づいて、デジタル画像における視覚的概念を認識するために、コンピュータビジョン技術を使用する(例えば、多くの異なる種類の犬(イヌ)がイヌカテゴリに該当する可能性がある)。
【0037】
一実施形態では、画像分類器は、または複数の画像分類器が使用される場合には複数の画像分類器は、ディープ人工ニューラルネットワークコンピューティングアーキテクチャに基づくものである。人工ニューラルネットワークは、動物脳の生物学的ニューラルネットワークによって着想(インスパイア)される機械学習アルゴリズムのための計算モデルである。人工ニューラルネットワークは、生物脳のニューロンをゆるくモデル化する、人工ニューロンと呼ばれる接続された単位(ユニット)またはノードの集合に基づくことができる。それぞれの接続は、生体脳のシナプスと同様に、ある人工ニューロンから別のニューロンへ信号を送信することができる。信号を受信する人工ニューロンはそれを処理し、次いでそれに接続された追加の人工ニューロンに信号を送ることができる。ディープ人工ニューラルネットワークは、入力層と出力層との間に複数の層を有する人工ニューラルネットワークの一種である。
【0038】
一実施形態では、画像分類器は、または複数の画像分類器が使用される場合には複数の画像分類器は、ディープ畳み込み人工ニューラルネットワークコンピューティングアーキテクチャに基づくものである。ディープ畳み込み人工ニューラルネットワークコンピューティングアーキテクチャは、人工ニューロン間の接続パターンが動物の視覚皮質の組織に似ているという点で、生物学的処理によって着想(インスパイア)されるディープ人工ニューラルネットワークコンピューティングアーキテクチャの一種である。したがって、ディープ畳み込み人工ニューラルネットワークアーキテクチャは、デジタル画像のような視覚的画像を分析するのに特に適していることが証明されている。画像コンテンツに基づいてデジタル画像のコーパスを分類するためのディープ畳み込み人工ニューラルネットワークをトレーニングするために、様々な異なるアプローチを使用することができる。例えば、アプローチは、A. Krizhevsky, I Sutskever, GE Hinton, "ImageNet Classification with Deep Convolutional Neural Networks," Advances in neural information processing systems, pp. 1096-1105 (2012)の論文に記載されているように、画像をカテゴリに分類するために、大きなディープ畳み込み人口ニューラルネットワークをトレーニングすることに基づいてもよい。
【0039】
ディープ畳み込み人工ニューラルネットワークアーキテクチャを画像分類器によって使用して、視覚画像コンテンツに従ってカテゴリのセット内のデジタル画像のコーパスを分類することができるが、非人工ニューラルネットワークベースのアプローチを使用してもよい。例えば、ディープ畳み込み人工ニューラルネットワークベースのアプローチの代わりに、マルチクラスサポートベクトルマシンをトレーニングすることに基づくアプローチを使用することができる。
【0040】
さらに、実装は、トレーニングされた機械画像分類器(例えば、トレーニングされたマルチクラスサポートベクトルマシンまたはトレーニングされたディープ畳み込み人工ニューラルネットワーク)を使用して、カテゴリのセットにおけるデジタル画像のコーパスを分類するが、代わりに、手動アプローチが使用されてもよい。例えば、マトリクス100内の確率値は、それぞれのデジタル画像が人間のユーザの判断に従ってそれぞれのカテゴリに属するか否かを示す、人間のユーザ入力に基づいて割り当てられた数値ブール値(真偽値:Boolean value)(例えば、0または1)であってもよい。例えば、確率値PV1,1は、デジタル画像102が犬の画像を含むことを示すものと等しいことがある。全体として、デジタル画像のコーパスにおけるカテゴリのセットへのデジタル画像の分類は、機械分類、人間分類、または機械分類と人間分類との組合せに基づくことができる。例えば、機械は、デジタル画像をカテゴリのセットの1つ以上のカテゴリに初期分類し、次いで、これを人間が確認または補正して、デジタル画像の最終分類を行うことができる。
【0041】
マトリクス100に表されるカテゴリのセットは、異なる画像コンテンツクラスに対応する。各画像コンテンツクラスは、画像コンテンツクラスの分類法の中で画像コンテンツクラスを識別するクラス識別子と関連づけられてもよい。例えば、図1に示すように、カテゴリICC1は、IMAGENETカテゴリを識別するクラス識別子「n02110341」に関連付けられている。関連するクラス識別子によって、カテゴリは、当該カテゴリを記述するラベルを含むシンセットさらに関連付けることができる。
【0042】
例えば、図1に示すように、カテゴリICC1は、ラベル「dog」、「domestic dog」、「canis familiaris」からなるシンセット106に関連付けられている。したがって、カテゴリのセットのカテゴリは、そのカテゴリに関連付けられたシンセットが複数のラベルを含むかどうかに応じて、そのカテゴリを記述する複数のラベルに関連付けることができる。したがって、すべてのカテゴリに対するラベル単位のセットは、カテゴリのセットよりも大きくてもよい。
【0043】
一実施形態では、カテゴリのセットに関連付けられたシンセットには、約25,000のカテゴリと、これらのカテゴリに対して約50,000の合計ラベルがある。ただし、一部またはすべてのカテゴリをそれぞれ1つのラベルにのみ関連付けることもできる。
【0044】
ラベルマトリクス
前述したように、ラベルのセットは、それぞれのワードベクトルのセットにマッピングされてもよい。それぞれのワードベクトルのセットは、事前にトレーニングされてもよい。例えば、それぞれのワードベクトルのセットは、Common CrawlおよびGloVeに基づいて事前にトレーニングされてもよい。Common Crawlは、commoncrawl.orgドメイン内のインターネット上で利用可能なウェブクロールデータ(例えば、ブログ、ニュース、およびコメント)の公開リポジトリである。GloVeは、単語のベクトル表現を取得するための教師無し学習アルゴリズムである。トレーニングは、例えば、Common Crawlから利用可能なコーパスなどのコーパスからの集約されたグローバル単語-単語共起統計に対して実行され、結果として得られるワードベクトル表現は、ワードベクトル空間の線形部分構造を示す。GloVeに関するさらなる情報は、Jeffrey Pennington, Richard Socher, and Cristopher D. Manning, 2014, "GloVe: Global Vectors for Word Representation"の論文に見出すことができる。
【0045】
一実施形態では、コンテキストに依存しない事前トレーニングされたワード埋め込みからキーワード単位(例えば、ラベル、クエリなど)についてワードベクトルが取得されるが、別の実施形態では、コンテキスト化されたワードベクトルが、事前にトレーニングされた言語モデルに基づいて取得される。例えば、トランスフォーマからの事前トレーニングされた双方向エンコーダ表現(BERT)モデルが、コンテキスト化されたワードベクトルを生成するための実施形態において使用され得る。BERTモデルに関するさらなる情報は、Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," arXiv:1810.04805 (2018)の論文を利用可能である。
【0046】
一実施形態では、ラベルのセットに対するそれぞれのワードベクトルのセットの各ワードベクトルは、300次元のベクトルである。例えば、各ラベル(またはラベルのワード)を、ラベル(またはそのキーワード単位)を固有のワードベクトルにマッピングするするデータ辞書、連想配列などへのキーとして用いることによって、各ワードベクトルのセットを取得することができる。
【0047】
一実施形態では、spacy.ioドメインの/models/en#en_vectors_web_lg にあるインターネットで現在利用可能なen_vectors_web_lg データ辞書が発行される。手元にある特定の実装の要件に従って、他の英語モデル、ならびに非英語モデルを使用することができる。例えば、ラベルのセットがドイツ語の場合、ドイツ語モデルを使用できる。
【0048】
一実施形態では、それぞれのワードベクトルのセットが、GloVeワード埋め込み関数を使用してCommon Crawlコーパスに基づいて事前にトレーニングされるが、別の実施形態では、それぞれのワードベクトルのセットが、異なるトレーニングコーパスおよび/または異なるワード埋め込み関数に基づいて事前にトレーニングされる。例えば、それぞれのワードベクトルのセットは、word2vecワード埋め込み関数またはfastTextワード埋め込み関数を使用するWikipedia記事のセットに基づいて事前にトレーニングされてもよい。word2vecワード埋め込み関数に関するさらなる情報は、Thomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey dean, "Distributed Representations of Words and Phrases and their Compositionality," NIPS, Curran Associates, Inc.,(2013)の論文を利用可能である。fastTextワード埋め込み関数に関するさらなる情報は、Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov, "Enriching Word Vectors with Subword Information," Transactions of the Association for Computational Linguistics (2017)の論文に記載されている。
【0049】
単一の事前にトレーニングされたワードベクトルは、ラベルが複数のワードを含む所与のラベルに対して、利用可能でないことがあることに留意されたい。例えば、「Boston Globe」のようなイディオマティックフレーズ(慣用句、熟語)のための事前にトレーニングされたワードベクトルは利用可能ではないかもしれない。しかし、別個の事前にトレーニングされたワードベクトルは「Boston」および「Globe」のために利用可能であるかもしれない。この場合、マルチワードラベルのために利用可能な単一の事前にトレーニングされたワードベクトルは存在しないが、ラベルを構成するワードの各々のために利用可能な別個のワードベクトルが存在する場合、別個のワードベクトルは、ラベルを表す単一のワードベクトルを生成するために結合(例えば、平均化)されてもよい。例えば、「Boston」のための事前にトレーニングされたワードベクトルおよび「Globe」のための事前にトレーニングされたワードベクトルを平均して、「Boston Globe」を表す単一のワードベクトルを生成することができる。
【0050】
事前にトレーニングされたワードベクトルが、非常にまれワードなどの特定のラベルに利用可能でない場合、ゼロベクトルを使用して、その特定のラベルを表すことができる。
【0051】
また、述べたように、画像検索時に、ラベルのセットがそれぞれのワードベクトルのセットにマッピングされるのと同じ方法で、クエリがそれぞれのワードベクトルにマッピングされてもよい。また、上述したように、画像検索時に、クエリのワードベクトル表現は、ベクトル類似度について、ラベルのセットに対するそれぞれのワードベクトルのセットの各ワードベクトルと比較される。このベクトル類似度比較を効率的にするために、それぞれのワードベクトル表現のセットは、「ラベル」マトリクスとしてコンピュータ記憶媒体に記憶されてもよい。
【0052】
図2は、本発明の一実施形態による、意味(セマンティック)画像検索をサポートするラベルマトリクス200を示す。ラベルマトリクス200の行は、ワードベクトルである。各ワードベクトルは、それぞれのラベルを表す。例えば、ワードベクトルWV1は「dog」というワードであるラベル202を表す。ラベルマトリクス200の列は、ワードベクトルの次元である。この例では、ラベルマトリクス200には、300次元のワードベクトルが記憶されている。しかしながら、手元にある特定の実装の要件に従って、より低次元またはより高次元のワードベクトルを使用することができる。
【0053】
一実施形態では、ラベルマトリクスの行がワードベクトルに対応し、ラベルマトリクスの列が次元に対応するが、他の実施形態では、ラベルマトリクスの行がワードベクトルの次元に対応し、列がワードベクトルに対応する。
【0054】
一実施形態では、ラベルマトリクス200内の非ゼロワードベクトル(例えば、ベクトル内の少なくとも1つの要素が非ゼロ数値である)は、画像検索時にベクトル類似度計算を高速化するために、単位L2ノルムに正規化される。重複するワードベクトルは、ラベルマトリクス200から省略することができる。例えば、ラベルマトリクス200は、ゼロワードベクトルによって表される全てのラベルについて1つのゼロベクトルのみを記憶する必要がある(例えば、ベクトルの全ての要素がゼロである)。場合によっては、非ゼロワードベクトルは、例えば、複数のラベルが同じワードのセットを異なる順序で含む場合や、稀なワードが近い同意語(同義語)についてワードベクトルを使用して近似される場合など、別の非ゼロワードベクトルの複製であってもよい。
【0055】
ラベルマトリクスを生成するためのオフライン処理
デジタル画像のコーパスの各デジタル画像は、画像分類器によって、M個の異なるカテゴリのうちの1つ以上に割り当てることができる。例えば、M個のカテゴリのセットは、例えば、犬、猫、椅子、猫、アイスクリーム、夕暮れ、屋外、屋内等のような画像に現れ得る視覚的アイテム又は概念のカテゴリに対応し得る。一実施形態では、Mは約25,000である。
【0056】
M個のカテゴリの各々は、1つ以上のラベルに関連付けられてもよい。したがって、NがMよりも大きいM個のカテゴリについて、総数N個のラベルが存在する可能性がある。一実施形態では、Nは約45,000である。
【0057】
ここで図3を参照すると、本発明の一実施形態による、ラベルマトリクス(例えば、ラベルマトリクス200)を生成するためのオフライン処理300が示されている。
【0058】
最初に、N個のラベルのセットの各ラベルが、300次元ベクトル空間にワード埋め込みを使用してマッピングされる(302)。マッピングは、埋め込み関数nlp()で与えられる。埋め込み関数nlp()は、GloVe、fastText、または上記のword2vec埋め込み関数のうちの1つであってもよい。
【0059】
言い換えると、次の式のように、N個のラベルのセットの中のlavelごとに、ラベルlavelはワードベクトルlにマッピングされてもよい。
【数1】
【0060】
ここで、ワードベクトルliは、ラベルのセットのithラベル(i番目のラベル)に対して埋め込み関数nlp()によって提供されるワードベクトルを表す。ラベルlavelをワードベクトルにマッピングするときにワードベクトルlを取得するために埋め込み関数nlp()を起動しなければならないのとは対照的に、ラベルlavelのためのワードベクトルlを取得することが、ラベル(またはそのキーワード単位)のセットを事前にトレーニングされたワードベクトルのセットにマッピングするマッピングへのルックアップを単純に含むように、ワードベクトルlは埋め込み関数nlp()によって事前にトレーニングされてもよいことに留意されたい。
【0061】
画像検索時の計算効率のために、動作302で得られたワードベクトルのセットの各ワードベクトルは、単位L2ノルムに対して正規化される(304)。すなわち、ラベルのセットに対して得られた(302)ワードベクトルのセットの中のワードベクトルliごとに、ワードベクトルliは、次式のように正規化される:
【数2】
【0062】
ここで、ワードベクトルl' iは、上記の式のように、単位L2ノルムに対して正規化された、動作302で得られたワードベクトルのセットのithワードベクトル(i番目のワードベクトル)を表す。
【0063】
動作306においては、動作304で正規化されたワードベクトルの正規化されたセットは、ラベルマトリクス(例えば、ラベルマトリクス200)に格納される。特に、
【数3】
である。
【0064】
ここで、ラベルマトリクスL'は、各列が動作304で正規化された単位L2正規化ワードベクトルを含むラベルマトリクスを表す。
【0065】
動作308では、動作306で記憶されたラベルマトリクスL'に対して特異値分解が実行される。特に、
【数4】
である。
【0066】
ここで、
【数5】
【0067】
動作310では、ランク1のマトリクスが、ラベルマトリクスL'の最大特異値
【数6】
に対応する左特異ベクトルのそれ自身との外積から構築される。ランク1のマトリクスは、ラベルマトリクスL'内のワードベクトルの各々からの全てのベクトルから形成された左特異ベクトルを除去するために使用される。動作310は、Sanjeev Arora, Yingyu Liang, and Tengyu Ma, "A simple but tough-to-beat baseline for sentence embeddings," ICLR 2017の論文に記載されている共通成分除去によって動機付けられる。言い換えると、動作310は、以下の式に従って実行することができる:
【数7】
【0068】
ここで、ラベルマトリクスL''は、共通成分除去のために補正されたワードベクトル
【数8】
を有する補正されたラベルマトリクスを表す。
【0069】
上記の動作310のように、ワードベクトルが共通成分除去のために補正された後、補正されたワードベクトルの各々は、次式のように、単位L2ノルムについて再び正規化される(312):
【数9】
【0070】
ここで、
【数10】
は、上記の式のように、単位L2ノルムに対して正規化されたith(i番目の)補正された(動作310)ワードベクトルを表す。
【0071】
処理300の結果として、最終ラベルマトリクス
【数11】
は、以下の式によって表されるように生成される。
【数12】
【0072】
処理300は、オフライン処理であってもよい。すなわち、処理300は(例えば、前処理ステップとして)所与のクエリについて画像を検索するコンテキストの前または外部で実行されてもよい。意味(セマンティック)画像検索のためのオンライン処理を、図4に関して、および図3のオフライン処理300を参照して、ここで説明する。
【0073】
意味(セマンティック)画像検索のためのオンライン処理
次に図4を参照すると、本発明の一実施形態による意味(セマンティック)画像検索のためのオンライン処理400が示されている。処理400は、クエリを取得または受信し、クエリに関連する1つ以上のデジタル画像を識別するコンテキストにおいて「オンライン」で実行されてもよい。
【0074】
動作402において、クエリは、上述の処理300の動作302のように、ラベルのセットをワードベクトルのセットに変換するために使用される同じワード埋め込みを使用して、ワードベクトルにマッピングされる。マッピングは、同じ埋め込み関数nlp()で与えられてもよい。埋め込み関数nlp()は、GloVe、fastText、または上記のword2vec埋め込み関数のうちの1つであってもよい。言い換えると、クエリは、次式のように、入力ワードベクトルqにマッピングされてもよい。
【数13】
【0075】
クエリqueryに対するワードベクトルqは、処理400の実行の前に埋め込み関数nlp()によって事前に計算されてもよいことに留意されたい。そのようにして、クエリに対する入力ワードベクトルqを決定することは、データ辞書、連想配列、または他のルックアップテーブルにおけるルックアップのような、比較的計算効率の良い動作であってもよい。
【0076】
動作404において、入力ワードベクトルqは、以下の式のように、単位L2ノルムに対して正規化されてもよい。
【数14】
【0077】
ここで、入力ワードベクトルq'は、入力ワードベクトルqの単位L2正規化バージョンを表す。
【0078】
動作406では、上述の補正されたラベルマトリクスL'の最大特異値の左特異ベクトルに整列された正規化入力ワードベクトルq'の成分の除去が実行される。これは、処理300に関して上述した動作310に類似している。これにより、補正された入力ワードベクトルq''が生成される。一実施形態では、動作406は以下の式に従って実行される。
【数15】
【0079】
動作408において、補正された入力ワードベクトルq''は、以下の式のように単位L2ノルムに対して正規化される。
【数16】
【0080】
動作410において、正規化された入力ワードベクトルq''は、最終ラベルマトリクス
【数17】
の各正規化されたワードベクトル
【数18】
に対する類似度について比較され、最終ラベルマトリクス
【数19】
の各正規化されたワードベクトル
【数20】
に対するベクトル類似度測定値を決定する。ベクトル類似度測定値は、例えば、余弦類似度測定値またはドット積測定値とすることができる。一実施形態では、入力ワードベクトルq''と最終ラベルマトリクス
【数21】
のワードベクトル
【数22】
との余弦類似度測定が以下の式に従って行われる:
【数23】
【0081】
また、動作410において、ベクトル類似度測定値のセットから画像マッチングベクトルが生成されてもよい。画像マッチベクトルは、カテゴリの数に等しい次元の数を有することができる。すなわち、画像マッチベクトルの次元と、画像マトリクス内の画像ベクトルのセットとが一致してもよい。画像マッチベクトルの各要素は、画像マッチベクトル内の要素の位置によってカテゴリに対応することができ、画像ベクトル内の要素の同じ位置は、同じカテゴリに対応する。したがって、ベクトル類似度測定値を使用して、デジタル画像の画像ベクトルによって表されるデジタル画像が確率的に属するカテゴリに基づいて、クエリが、画像マッチベクトルによって表されるラベルのセットに対するクエリの類似度に基づいてデジタル画像にどのように関連するかを測定することができる。例えば、画像マッチベクトルと画像ベクトルとの間の余弦類似度測定値またはドット積測定値は、画像ベクトルに対応する画像がクエリにどのように意味的に関連付けられているかを数値的に定量化する。
【0082】
一実施形態では、画像マッチベクトルは行指向である。
【数24】
【0083】
また、画像マッチベクトルを列指向にすることも可能である。
【数25】
【0084】
いずれの場合も、画像マッチベクトルの各要素は、画像マトリクスの画像ベクトルのセットの要素に、位置によって対応する。ここで、Nはカテゴリ数を表す。例えば、画像マトリクス100において、画像ベクトルのセットは4つの要素位置を有する。第1の位置はカテゴリICC0に対応し、第2の位置はカテゴリICC1に対応し、第3の位置はカテゴリICC2に対応し、第4の位置はカテゴリICC3に対応する。この場合、画像マッチベクトル
【数26】
において、ベクトル類似度測定値S1を持つ第1の位置はカテゴリICC0に対応し、ベクトル類似度測定隊S2を持つ第2の位置はカテゴリICC1に対応し、ベクトル類似度測定値S3を持つ第3の位置はカテゴリICC3に対応し、ベクトル類似度測定値S4を持つ第4の位置はカテゴリICC4に対応する。
【0085】
画像マッチベクトルの要素のベクトル類似度測定値は、画像マッチベクトルが生成されるクエリと、その要素に対応するカテゴリのラベルとの間の意味的(セマンティック)類似度を反映する。例えば、図1の画像マトリクス100に関する画像マッチベクトル
【数27】
では、ベクトル類似度測定値S2が、クエリ(例えば、「Poodle(プードル)」)とカテゴリ104のラベル106との間の意味的(セマンティック)類似度を反映する。クエリが「Poodle」である場合、例えば、ベクトル類似度測定値S2は、クエリとラベル106との間の比較的高い意味的(セマンティック)類似度を反映する可能性がある。なぜならば、プードルは国内の犬の一種であり、従って、「Poodle」のためのワードベクトルは、ラベル106のためのワードベクトルとのベクトル類似度を有する可能性が高いからである。
【0086】
カテゴリに対して1つのラベルしかない場合、カテゴリに対する画像マッチベクトルにおけるベクトル類似度測定値は、クエリに対するワードベクトルとラベルに対するワードベクトルとの間のベクトル類似度とすることができる。ただし、カテゴリには複数のラベルがあってもよい。例えば、図1のカテゴリ104は、複数のラベル106を有する。この場合、マルチラベルカテゴリの画像マッチベクトルにおけるベクトル類似度測定値は、クエリに対するワードベクトルと、カテゴリのすべてのラベルのすべてのワードベクトルとの間の最大ベクトル類似度とすることができる。代替的に、マルチラベルカテゴリに対する画像マッチベクトルにおけるベクトル類似度測定値は、カテゴリのラベルの全てに対するワードベクトルの全ての平均とすることができる。
【0087】
一実施形態では、強くマッチングされたカテゴリに対応する画像マッチベクトルの比較的高いベクトル類似度測定値の数値的顕著性を増大させるために、画像マッチベクトルを「引き伸ばす(ストレッチする)」ことができる。特に、負である画像マッチベクトルのベクトル類似度測定値は、画像マッチベクトルにおいてゼロに設定され、画像マッチベクトルの正のベクトル類似度測定値は、画像マッチベクトルにおけるベクトル類似度測定値の所定の指数関数として設定される。これは、画像マッチベクトルにおける負のベクトル類似度測定値をゼロにし、画像マッチベクトルにおける正のベクトル類似度測定値を引き伸ばす(ストレッチする)効果を有し、その結果、画像マッチベクトルにおけるより強く一致(マッチング)したカテゴリに対するベクトル類似度測定値間の分離が大きくなる。例えば、画像マッチベクトルの各正ベクトル類似度測定値Siは、
【数28】
と等しくなるように調整されてもよく、ここでkは指数である。一実施形態では、kは3.3であるが、指数kによって引き伸ばされた(ストレッチされた)画像マッチベクトルと画像ベクトルのセットとの間のベクトル類似度測定値の計算に基づいて画像について計算されたランキングスコアに従って、kの値が画像のランキングにどのように影響するかに基づいて、手元の特定の実装の要件に従って上下に調整することができる。一実施形態では、指数kは、クリックスルーログに基づく機械学習技法に従って学習され、調整される。
【0088】
動作412において、画像マッチベクトルと画像マトリクスの画像ベクトルとの間のベクトル類似度を計算することに基づいて、クエリに関連する画像のランキングスコアを計算することができる。例えば、余弦類似度は、画像マッチベクトル及び画像マトリクスの各画像ベクトルに対して計算されてもよい。あるいは、各画像ベクトルの画像マッチベクトル間のドット積が計算されてもよい。画像マッチベクトルに対して最大のベクトル類似度を有する画像ベクトルに対応する画像を、クエリに最も関連する画像として選択することができる。画像は、対応するベクトル類似度の順序でクエリとの関連性に関してランク付けされてもよい。
【0089】
画像検索要求には、複数のキーワード単位を含めることができる。例えば、「poodle」(プードル)等の単一のキーワード単位を指定した画像検索要求の代わりに、「poodle beach」(プードル ビーチ)のように複数のキーワード単位を指定した画像検索要求であってもよい。この場合、画像検索要求が複数のキーワード単位を指定した場合には、上述したように個々のキーワード単位ごとに中間画像マッチベクトルを生成してもよい。次に、画像マッチベクトルの各々についてベクトル類似度測定値が得られる。例えば、画像マッチベクトルのベクトル類似度測定値は、単一のキーワード単位のクエリの場合のように、画像マッチベクトルと所与の画像ベクトルとの間の余弦類似度、またはそのドット積を計算することによって得られる。これは、所与の画像ベクトルに関して、各画像マッチベクトルに対して1つずつ、ベクトル類似度測定値のセットをもたらす。ランキングスコアは、複数のキーワード単位について計算された複数のベクトル類似度測定値のスカラー積を計算することによって、所与の画像ベクトル(したがって、関連する画像)について計算することができる。これは、クエリが複数のキーワード単位を有する場合に、それらの画像ベクトルおよび関連する画像についてのランキングスコアを計算するために、考慮中の他の画像ベクトルごとに繰り返されてもよい。
【0090】
画像ラベルマトリクスの最適化
一実施形態では、画像ラベルマトリクスは、画像検索の前にあらかじめ計算され、入力キーワード単位に関連する画像を識別するために画像検索で使用される。これは、画像ラベルマトリクスが疎(スパース)表現にあまり従わないという潜在的な欠点を伴って、画像検索時の計算効率を改善するという利点を提供することができる。
【0091】
画像ラベルマトリクスは、A×N画像マトリクスにN×BカテゴリマトリクスまたはN×Bラベルマトリクスを乗算することによって生成されてもよい。ここで、Aは画像マトリクス内の画像ベクトルの数を表し、Nは画像コンテンツカテゴリの数(例えば、45,000)を表し、Bはワードベクトル表現の次元数(例えば、300)を表す。N×Bカテゴリマトリクスは、ラベルマトリクスからまたはラベルのセットのワードベクトル表現から生成され得る。特に、N個の画像コンテンツカテゴリの各々について、ワードベクトル表現は、カテゴリに対するラベルのワードベクトル表現に基づいて生成され、カテゴリマトリクスに含まれてもよい。例えば、カテゴリが2つ以上のラベルを有する場合、カテゴリのラベルのワードベクトル表現を平均化することによって、カテゴリのワードベクトル表現を生成することができる。カテゴリが単一のラベルしか持たない場合、そのラベルのワードベクトル表現を用いてカテゴリマトリクスのカテゴリを表現することができる。A×N画像マトリクスにN×BカテゴリマトリクスまたはN×Bラベルマトリクスを乗算した結果として、A×B画像ラベルマトリクスが生成され、これは、A×N画像マトリクスよりも少ないコンピュータ記憶媒体を占有し、ここで、画像コンテンツカテゴリの数Nは典型的であるワードベクトル表現の次元の数B(例えば、300のワードベクトル次元)よりもはるかに大きい(例えば、45,000の画像コンテンツカテゴリ)。
【0092】
画像検索時には、典型的には、より小さい画像ラベルマトリクスにアクセスすることができ、典型的には、より大きい画像マトリクスにアクセスする必要はない。特に、入力キーワード単位のB×1ワードベクトル表現が与えられると、ランキングスコアは、A個の画像の各々について、A×B画像ラベルマトリクスに、入力キーワード単位のB×1ワードベクトル表現を乗算する(例えば、そのドット積を計算する)ことによって計算して、A×1ランキングスコアベクトルを生成することができ、ランキングスコアベクトルの各要素は、乗算(例えばドット積)の結果として対応する画像の数値ランキングスコアを含む。画像は、ランキングスコアベクトルのランキングスコアに基づいて、入力キーワード単位との関連性の順にランク付けされてもよい。
【0093】
A×B画像ラベルマトリクスに、入力キーワード単位のB×1ワードベクトル表現を乗算してA×1ランキングスコアベクトルを生成する場合、ドット積の代わりに余弦類似度を計算してもよい。
【0094】
反転インデックス実施
一実施形態では、反転インデックス検索が、画像検索時の計算効率を改善するためにサポートされる。この実施形態では、画像マトリクスに記憶することができる画像ベクトルは、画像コンテンツカテゴリによってキーイングされた反転インデックスのポスティングリストに記憶される。入力キーワードに対して生成された画像マッチベクトルに対しては、画像マッチベクトルの疎(スパース)表現が使用される。疎(スパース)画像マッチベクトルは、全ての画像コンテンツカテゴリのサブセットに対応する非ゼロ要素を有する。画像マッチベクトルの非ゼロ要素に対応する画像コンテンツカテゴリの識別子は、それらの画像コンテンツカテゴリに関連付けられたすべての画像ベクトルをそれらのそれぞれの非ゼロ要素によって効率的に検索するために、反転インデックスへのキーとして使用されてもよい。画像マッチベクトル(非疎(スパース)バージョンまたは疎(スパース)バージョンのいずれか)は、検索された画像ベクトルに対応する画像のランキングスコアを計算するために、それらの検索された画像ベクトルだけに対するベクトル類似度について比較され得る。疎(スパース)画像マッチングベクトル及び反転インデックスを用いたベクトル類似度に対する比較回数は、画像マトリクス内の全ての画像ベクトルに対して、画像マッチベクトルをベクトル類似度に対して比較した場合よりも実質的に少なくてよく、これにより、画像検索時間における計算効率が向上する。
【0095】
このような反転インデックスの実施形態では、画像マトリクスは、コンピュータ記憶媒体に記憶されてアクセス可能である必要はないことに留意されたい。しかしながら、一実施形態では、反転インデックスと画像マトリクスとの両方を使用することも可能である。例えば、反転インデックスを使用して、関連画像を迅速に識別し、返すことができ、同時に、反転インデックスアクセスとは非同期に画像マトリクスにアクセスして、関連画像のより包括的な識別(例えば、画像マトリクス内のすべての画像のランク付け)を実行する。
【0096】
国際化
一実施形態では、非英語意味(セマンティック)画像検索が、減少した追加のコンピュータ記憶媒体オーバヘッドでサポートされる。具体的には、非英語ターゲット言語(例えば、中国語、日本語、ドイツ語など)に対して追加のラベルマトリクスが生成され、ここで、英語ラベルマトリクスのラベルのセットがターゲット言語ラベルのセットに翻訳され、ターゲット言語ラベルのセットに対するワードベクトルがターゲット言語に対する埋め込み関数に基づいて取得される。ターゲットラベルマトリクスは、ターゲット言語ラベルのセットに対するワードベクトルを含む。ターゲット言語における入力キーワード単位は、英語ラベルマトリクスの代わりにターゲット言語ラベルマトリクスを使用することを除いて英語入力キーワード単位又は複数の単位のように処理することができる。また、入力キーワード単位又は複数の単位はターゲット言語であるため、ターゲット言語に対する埋め込み関数に従ってワードベクトル表現に変換される。画像マトリクスによって表される画像のための画像内容カテゴリは両方の言語に対して同じであるので、ターゲット言語をサポートするために追加の画像マトリクスを格納する必要はないことに留意されたい。英語の場合と同様に、ターゲット言語ラベルのセットのためのワードベクトルは、ターゲット言語のための埋め込み関数によって生成された事前にトレーニングされたワードベクトルのセットから得ることができる。英語ラベルのセットは、異なる言語ペア間でテキストを翻訳するように構成された自然言語機械翻訳器を使用して、ラベルごとにターゲット言語ラベルのセットに翻訳することができる。
【0097】
例示的適用
一実施形態では、意味(セマンティック)画像検索技術を使用して、検索結果としてユーザのキーワード単位クエリに返す画像を識別する。キーワード単位クエリは、例えば、クエリ「poodle」、「poodle beach」、または「poodle on beach」のような1つ以上のキーワード単位を有することができる。例えば、オンラインコンテンツ管理システムは、例えば、ウェブブラウザアプリケーションまたはモバイルアプリケーションなどにおいて、ユーザのパーソナルコンピューティングデバイスにおいて、ユーザにグラフィカルユーザインタフェースを提示することができる。グラフィカルユーザインタフェースは、オンラインコンテンツ管理システムにキーワード単位クエリを入力して提出するようにユーザに促すことができる。キーワード単位クエリを受信すると、本明細書に開示する技法が、キーワード単位クエリに意味的に一致するオンラインコンテンツ管理システムでホストされる1つ以上のデジタル画像を識別するために使用される。意味的に一致する画像へのリンクまたはサムネイルは、そこでのグラフィカルユーザインタフェースでの提示のために、ユーザのパーソナルコンピューティングデバイスに戻されてもよい。意味的に一致する画像は、最も関連性の高いものからあまり関連性のないものへランキング順に、グラフィカルユーザインタフェースにおいて提示することができる。
【0098】
別の実施形態では、意味(セマンティック)画像検索技術は、ワード処理文書に含める画像を提案するために、オンラインコンテンツ管理システム内で使用される。特に、ユーザが文書編集アプリケーションを用いてワード処理文書にテキストを入力した後、入力されたテキストに基づいて文書に含めるための画像がユーザに提案される。例えば、ユーザはセンテンスのテキストを入力したばかりであり得る「I love taking a walk on the beach with my pet poodle.(私はペットのプードルとビーチを歩くことが好きである。)」。文書編集アプリケーションは、例えば、名詞キーワード単位「beach」及び「poodle」のようなキーワード単位についてセンテンスを構文解析し得る。文書編集アプリケーションは次に、キーワード単位クエリ「beach poodle」を有するオンラインコンテンツ管理システムに非同期画像検索要求を送信し得る。当該要求は、ユーザがワード処理文書にテキストを入力し続ける間、非同期で送信され得る。オンラインコンテンツ管理システムは、キーワード単位クエリ「beach poodle」に意味的に一致するオンラインコンテンツ管理システムでホストされる1つ以上のデジタル画像を識別するために、本明細書に開示される技法を使用してもよい。意味的に一致する画像へのリンクまたはサムネイルは、文書編集アプリケーションによる提示のために、ユーザのパーソナルコンピューティングデバイスに戻されてもよい。次に、ユーザは、リンクまたはサムネイルの1つを選択して、編集中のワード処理文書に選択されたデジタル画像を含めることができる。このようにして、ユーザは、ユーザが文書に著作したテキストと意味的に一致するワード処理文書に含めるためのデジタル画像を自動的に提案される。
【0099】
ベクトル類似度測定値
いくつかの実施形態では,
ベクトルドット積またはベクトル余弦類似度が、2つの所与の数値ベクトルに対するベクトル類似度測定値として使用されるが、他の実施形態では、他のベクトル類似度測定値が使用される。例えば、ユークリッド距離、マンハッタン距離、ミンコフスキー距離、ジャッカード類似度、チェビシェフ距離、または手元の特定の実装の要件に適した他のベクトル類似度測定値を使用することができる。
【0100】
コンピューティングシステムの実装
本発明の実施は、1つ以上のプロセッサおよび記憶媒体を有するコンピューティングシステムによる方法の実行を包含することができる。1つ以上のプロセッサおよび記憶媒体は、必ずしも同じコンピュータシステムではなく、1つ以上のコンピュータシステムによって提供されてもよい。コンピューティングシステムの記憶媒体は、1つ以上のコンピュータプログラムを記憶することができる。1つ以上のプログラムは、方法を実行するように構成された命令を含むことができる。命令は、方法を実行するために、1つ以上のプロセッサによって実行されてもよい。
【0101】
本発明の実施は、1つ以上の非一時的なコンピュータ可読媒体を包含することができる。1つ以上の非一時的なコンピュータ可読媒体は、本方法を実行するように構成された命令を含む1つ以上のコンピュータプログラムを記憶することができる。
【0102】
本発明の実施は、1つ以上のプロセッサと、本方法を実行するように構成された命令を含む1つ以上のコンピュータプログラムを記憶する記憶媒体とを有するコンピューティングシステム(計算システム)を含むことができる。
【0103】
本発明の実施は、1つ以上のコンピュータシステム上で動作し、仮想ハードウェアをエミュレートする1つ以上の仮想マシンを包含することができる。仮想マシンは、例えば、タイプ1またはタイプ2のハイパーバイザとすることができる。コンテナを使用したオペレーティングシステムの仮想化も、ハイパーバイザによるハードウェア仮想化の代わりに、またはそれと組み合わせて実行できる。
【0104】
複数のコンピュータシステムを包含する実施の場合、コンピュータシステムは、1つ以上のデータ通信ネットワーク(例えば、1つ以上のインターネットプロトコル(IP)ネットワーク)によって、コンピュータシステムが連続的、周期的、または断続的に相互接続される分散型、並列型、クラスタ型、またはその他の任意マルチノードコンピューティング構成で配置されてもよい。さらに、命令を実行するコンピュータシステムのセットは、1つ以上のコンピュータプログラムを記憶する記憶媒体を提供するコンピュータシステムの同じセットである必要はなく、そのセットは部分的にのみ重複する場合も、相互に排他的である場合もある。例えば、コンピュータシステムのセットは、別の異なるコンピュータシステムのセットが1つ以上のコンピュータプログラムをダウンロードし、その命令を実行する1つ以上のコンピュータプログラムを記憶することができる。
【0105】
図5は、本発明の実施形態で使用される例示的なコンピュータシステム500のブロック図である。コンピュータシステム500は、情報を通信するためのバス502または他の通信メカニズムと、情報を処理するためのバス502と接続された1つ以上のハードウェアプロセッサとを含む。
【0106】
ハードウェアプロセッサ504は、例えば、汎用マイクロプロセッサ、中央処理装置(CPU)またはそのコア、グラフィクス処理装置(GPU)、またはシステムオンチップ(SoC)とすることができる。
【0107】
コンピュータシステム500はまた、プロセッサ504によって実行される情報および命令を記憶するためにバス502に接続された、典型的には1つ以上の不揮発性メモリデバイスによって実現されるメインメモリ506を含む。メインメモリ506はまた、プロセッサ504による命令の実行中に、一時変数または他の中間情報を記憶するために使用されてもよい。
【0108】
コンピュータシステム500はまた、プロセッサ504のための静的情報および命令を記憶するために、バス502に接続されたリードオンリーメモリ(ROM)508または他の静的記憶装置を含んでもよい。
【0109】
典型的には、1つ以上の不揮発性メモリデバイスによって実装されるストレージシステム510が提供され、情報および命令を格納するためにバス502に接続される。
【0110】
コンピュータシステム500は、コンピュータユーザに情報を表示するために、バス502を介して、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、または陰極線管(CRT)などのディスプレイ512に接続することができる。ディスプレイ512は、タッチスクリーンディスプレイを形成するために、タッチセンシティブ表面と組み合わされてもよい。タッチセンシティブ表面は、方向情報およびコマンド選択を含む情報をプロセッサ504に通信し、ユーザの指、複数の指、または手による、あるいはハンドヘルドスタイラスまたはペンによるタッチセンシティブ表面との触知接触または触覚接触などによってタッチセンシティブ表面に向けられたタッチ入力を介してディスプレイ512上のカーソル移動を制御するための入力デバイスであってもよい。タッチセンシティブ表面は、例えば、抵抗性、容量性、表面音響波(SAW)または赤外線技術を含む、種々の異なるタッチ検出および位置決め技術を使用して実装されてもよい。
【0111】
英数字キーおよび他のキーを含む入力デバイス514は、情報およびコマンド選択をプロセッサ504と通信するためにバス502に接続されてもよい。
【0112】
別のタイプのユーザ入力デバイスは、プロセッサ504と方向情報およびコマンド選択を通信し、ディスプレイ512上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御516であってもよい。この入力デバイスは通常、デバイスが平面内の位置を指定することを可能にする第1の軸(例えば、x)及び第2の軸(例えば、y)の2つの軸における2つの自由度を有する。
【0113】
命令は、例えば、メインメモリ506または記憶システム510のような、プロセッサ504にアクセス可能な非一時的な記憶媒体に記憶されると、コンピュータシステム500を、命令で指定された動作を実行するようにカスタマイズされた特殊目的のマシンにレンダリングする。あるいは、カスタマイズされたハードワイヤードロジック、1つ以上のASICまたはFPGA、ファームウェアおよび/またはハードウェアロジックであって、コンピュータシステムと組み合わせることにより、プログラムコンピュータシステム500を特殊目的のマシンにさせるものである。
【0114】
コンピュータ実施処理は、メインメモリ506に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ504に応答して、コンピュータシステム500によって実行されてもよい。このような命令は、記憶システム510のような別の記憶媒体からメインメモリ106に読み込まれてもよい。メインメモリ506に含まれる命令シーケンスの実行は、プロセッサ504に処理を実行させる。あるいは、ハードワイヤード回路を、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用して、処理を実行することができる。
【0115】
本明細書で使用される「記憶媒体」という用語は、マシンを特定の様式で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体(例えば、記憶システム510)および/または揮発性媒体(例えば、メインメモリ506)を含むことができ、不揮発性媒体は例えば、リードオンリーメモリ(例えば、EEPROM)、フラッシュメモリ(例えば、ソリッドステートドライブ)、磁気記憶デバイス(例えば、ハードディスクドライブ)、および光ディスク(例えば、CD-ROM)を含むことができる。揮発性媒体は、例えば、ランダムアクセスメモリデバイス、ダイナミックランダムアクセスメモリデバイス(例えば、DRAM)、およびスタティックランダムアクセスメモリデバイス(例えば、SRAM)を含む。
【0116】
記憶媒体は伝送媒体とは異なるが、伝送媒体と併せて使用することができる。伝送媒体は、記憶媒体間の情報転送に関与する。例えば、伝送媒体は、バス502を備える回路を含む同軸ケーブル、銅線及び光ファイバを含む。また、伝送媒体は、ラジオ波および赤外線データ通信中に生成されるような音波または光波の形態をとることができる。
【0117】
コンピュータシステム500は、バス502に結合されたネットワークインタフェース518も含む。ネットワークインタフェース518は、ローカル、セルラーまたはモバイルネットワーク522に接続されている有線または無線のネットワークリンク520との双方向データ通信接続を提供する。例えば、通信インタフェース518は、IEEE 802.3有線「イーサネット」カード、IEEE 802.11無線ローカルエリアネットワーク(WLAN)カード、IEEE 802.15無線パーソナルエリアネットワーク(例えば、Bluetooth)カードまたはセルラーネットワーク(例えば、GSM、LTEなど)カードであってもよく、互換性のある有線または無線ネットワークとのデータ通信接続を提供することができる。一実装形態では、通信インタフェース518は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【0118】
ネットワークリンク520は、典型的には1つ以上のネットワークを介して他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク520は、ネットワーク522を介して、ローカルコンピュータシステム524との接続を提供することができ、この接続はネットワーク522にも接続されているか、あるいは、例えば、インターネットサービスプロバイダまたはセルラネットワークプロバイダなどのネットワークアクセスプロバイダ526によって動作されるデータ通信装置にも接続されている。ネットワークアクセスプロバイダ526は次に、別のデータ通信ネットワーク528(例えば、インターネット)へのデータ通信接続性を提供する。ネットワーク522および528は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。コンピュータシステム500との間でデジタルデータを搬送する、様々なネットワークを介する信号、ならびにネットワークリンク520上の信号、および通信インタフェース518を介する信号は、伝送媒体の例示的な形態である。
【0119】
コンピュータシステム500は、ネットワーク522および528、ネットワークリンク520および通信インタフェース518を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、リモートコンピュータシステム530が、ネットワーク528、ネットワーク522および通信インタフェース518を介して、アプリケーションプログラムについて要求されたコードを送信することができる。受信されたコードは、受信されたときにプロセッサ504によって実行されてもよく、および/または記憶デバイス510、または後に実行するために他の不揮発性記憶デバイスに記憶されてもよい。
【0120】
結論
前述の詳細な説明では、本発明の可能な実施形態を、実施形態ごとに異なることがある多数の特定の詳細を参照して説明した。したがって、詳細な説明および図面は、限定的な意味ではなく例示的な意味に見なされるべきである。
【0121】
詳細な説明において、本発明の実施形態を参照することは、文脈が特に明確に示さない限り、その実施形態が本発明の他の開示された実施形態を排除することを意味することを意図していない。したがって、記述された実施形態は、文脈がその実施形態が互換性がないことを明確に示す場合を除き、特定の組み合わせで、一つ以上の他の記述された実施形態と組み合わせてもよい。さらに、記載された実施形態は例によって本発明を例示することを意図しており、記載された実施形態に本発明を限定することを意図していない。
【0122】
前述の詳細な説明および添付の特許請求の範囲では、第1、第2などの用語は場合によっては様々な要素を説明するために本明細書で使用されるが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、1つの要素を別の要素から区別するためにのみ使用される。例えば、様々な記述された実施形態の範囲から逸脱することなく、第1のユーザインタフェースを第2のユーザインタフェースと呼ぶことができ、同様に、第2のユーザインタフェースを第1のユーザインタフェースと呼ぶことができる。第1のユーザインタフェースと第2のユーザインタフェースは両方ともユーザインタフェースであるが、同じユーザインタフェースではない。
【0123】
前述の詳細な説明および様々な説明された実施形態の添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「the」は文脈が特に明確に示さない限り、複数形も同様に含むことが意図されており、前述の詳細な説明および添付の特許請求の範囲で使用されるように、用語「and/or」は関連する列挙された項目のうちの1つまたは複数の任意のすべての可能な組合せを指し、包含する。
【0124】
添付の特許請求の範囲において前述の詳細な説明で使用されるように、用語「に基づく(based on)」、「に従う(according to)」、「含む(includes)」、「含む(including)」、「備える(comprises)」、および/または「備える(comprising)」は述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しない。
【0125】
上述の実施形態がユーザに関する情報を収集する状況では、ユーザは、個人情報を収集する可能性のあるプログラムまたは特徴をオプトイン/オプトアウトする機会を提供されてもよい。さらに、いくつかの実施形態では、個人識別可能な情報が除去されるように、記憶または使用される前に、特定のデータが1つ以上の方法で匿名化されてもよい。例えば、個人識別可能な情報がユーザに関して決定されたり、ユーザと関連づけられたりすることができないように、ユーザのアイデンティティ(ID)が匿名化されてもよく、その結果、ユーザの好みまたはユーザのインタラクションは、特定のユーザと関連づけられるのではなく、一般化される。例えば、ユーザの好みまたはユーザのインタラクションは、ユーザの人口統計に基づいて一般化されてもよい。
図1
図2
図3
図4
図5