【文献】
Quoc et al. ”Building High−level Features Using Large Scale Unsupervised Learning”,Proceedings of the 29th International Conference on Machine Learning,2012,Edinburgh,Scotland,UK
【文献】
S.−F.Chang et al.”Semantic Visual Templates:Linking Visual Features to Semantics”,Proceedings 1988 Intenational Conference on Image Processing ICIP98,1998,Chicago,IL,USA
【文献】
Ran Xu et al.”Jointly Modeling Deep Video and Compositional Text to Bridge Vison and Language in a Unified Framework”,Proceedings of the 29th AAAI Conference on Artificial Intelligence(AAAI−15),2015, Austiin Texas USA
【文献】
Pradipto Das et al.”Translating Related Words to Videos and Back through Latent Topics”,Web Search and Data Minging(WSDM’13),2013, Rome,Italy
【文献】
柳井啓司,一般画像自動分類の実現へ向けたWorld Wide Webからの画像知識の獲得,人工知能学会論文誌,2004年,19巻5号,pp.429−439
(58)【調査した分野】(Int.Cl.,DB名)
前記レスポンシブビデオの各々についての前記それぞれのビデオ検索結果は、前記レスポンシブビデオからの前記代表フレームから開始する前記レスポンシブビデオの再生へのリンクを含む、請求項1に記載の方法。
前記レスポンシブビデオの各々について、前記レスポンシブビデオから前記複数のフレームの各々に関する前記それぞれのフレーム表現を決定するステップをさらに含む、請求項1に記載の方法。
前記修正後の画像分類畳み込みニューラルネットワークは、訓練トリプレットのセットで訓練されており、各訓練トリプレットは、それぞれの訓練ビデオ、正のクエリ表現、および負のクエリ表現からのそれぞれの訓練フレームを含む、請求項10に記載の方法。
前記正のクエリ表現は、前記訓練ビデオと関連している検索クエリに関するクエリ表現であり、前記負のクエリ表現は、前記訓練ビデオと関連していない検索クエリに関するクエリ表現である、請求項11に記載の方法。
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載の前記方法を実行させる命令を記憶する1つまたは複数のストレージデバイスとを備える、システム。
1つまたは複数の非一時的コンピュータ可読媒体の上に符号化されたコンピュータプログラムであって、前記コンピュータプログラムは、1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載の前記方法を実行させる命令を含む、コンピュータプログラム。
【発明の概要】
【課題を解決するための手段】
【0003】
概括的には、本明細書において説明した発明特定事項の革新的態様の1つを、次のようなアクションを含む方法で具現化することができ、アクションは、検索クエリを受信するステップであって、検索クエリは、1つまたは複数のクエリ用語を含む、ステップと、検索クエリに関するクエリ表現を決定するステップであって、クエリ表現は、高次元空間における数のベクトルである、ステップと、検索クエリに関する複数のレスポンシブビデオを特定するデータを取得するステップであって、各レスポンシブビデオは、複数のフレームを含み、各フレームは、それぞれのフレーム表現を有し、各フレーム表現は、高次元空間における数のベクトルである、ステップと、各レスポンシブビデオについて、クエリ表現およびレスポンシブビデオ内のフレームに関するフレーム表現を使用してレスポンシブビデオから代表フレームを選択するステップと、検索クエリに対する応答を生成するステップであって、検索クエリに対する応答は、レスポンシブビデオの各々についてのそれぞれのビデオ検索結果を含み、レスポンシブビデオの各々についてのそれぞれのビデオ検索結果は、レスポンシブビデオからの代表ビデオフレームの提示を含む、ステップとを含む。
【0004】
レスポンシブビデオの各々についてのそれぞれのビデオ検索結果は、レスポンシブビデオからの代表フレームから開始するレスポンシブビデオの再生へのリンクを含み得る。各レスポンシブビデオについて、クエリ表現およびレスポンシブビデオ内のフレームに関するフレーム表現を使用してレスポンシブビデオから代表フレームを選択するステップは、クエリ表現とレスポンシブビデオフレーム内のフレームに関するフレーム表現の各々との間のそれぞれの距離測度を算出するステップを含み得る。
【0005】
各レスポンシブビデオについて、クエリ表現およびレスポンシブビデオ内のフレームに関するフレーム表現を使用してレスポンシブビデオから代表フレームを選択するステップは、距離測度に従ってクエリ表現に最も近いフレーム表現を有するフレームを代表フレームとして選択するステップをさらに含み得る。
【0006】
各レスポンシブビデオについて、クエリ表現およびレスポンシブビデオ内のフレームに関するフレーム表現を使用してレスポンシブビデオから代表フレームを選択するステップは、距離測度からフレームの各々についてのそれぞれの確率を生成するステップと、フレームのいずれかについての最も高い確率が閾値を超過しているかどうかを決定するステップと、最も高い確率が閾値を超過している場合には、代表フレームとして最も高い確率を有するフレームを選択するステップとをさらに含み得る。
【0007】
各レスポンシブビデオについて、クエリ表現およびレスポンシブビデオ内のフレームに関するフレーム表現を使用してレスポンシブビデオから代表フレームを選択するステップは、最も高い確率が閾値を超過していない場合には、代表フレームとしてデフォルトフレームを選択するステップをさらに含み得る。
【0008】
検索クエリに関するクエリ表現を決定するステップは、検索クエリにおける1つまたは複数の用語の各々に関するそれぞれの用語表現を決定するステップであって、用語表現は、高次元空間内の用語の表現である、ステップと、1つまたは複数の用語表現からクエリ表現を決定するステップとを含み得る。
【0009】
方法は、レスポンシブビデオの各々について、レスポンシブビデオから複数のフレームの各々に関するそれぞれのフレーム表現を決定するステップをさらに含み得る。レスポンシブビデオから複数のフレームの各々に関するそれぞれのフレーム表現を決定するステップは、既定のセットのラベルのうちの各ラベルをそれぞれのラベル表現にマッピングするデータを保持するステップをさらに含み得る。各ラベル表現は、高次元空間における数のベクトルであり得る。フレームは、フレームに関するラベルスコアのセットを生成するためにディープ畳み込みニューラルネットワークを使用して処理され得る、ここで、ラベルスコアのセットは、ラベルの既定のセット内の各ラベルに関するそれぞれのスコアを含み、ラベルの各々に関するそれぞれのスコアは、フレームがラベルによってラベル付けされた対象カテゴリから対象物の画像を包含する尤度を表す。フレームに関するフレーム表現は、フレームに関するラベルスコアのセットおよびラベル表現から算出され得る。
【0010】
フレームに関するラベルスコアのセットおよびラベル表現からフレームに関するフレーム表現を算出するステップは、ラベルの各々について、ラベルに関するラベルスコアをラベルに関するラベル表現と乗算することによってラベルに関する重み付き表現を算出するステップと、重み付き表現の合計を算出することによってフレームに関するフレーム表現を算出するステップとを含み得る。
【0011】
レスポンシブビデオから複数のフレームの各々に関するそれぞれのフレーム表現を決定するステップは、フレームに関するフレーム表現を生成するために修正後の画像分類ニューラルネットワークを使用してフレームを処理するステップを含み得る。修正後の画像分類ニューラルネットワークは、ラベルの既定のセットの各ラベルに関するそれぞれのラベルスコアを生成するためにフレームを処理するように構成される、初期画像分類ニューラルネットワークと、ラベルスコアを受信し、フレームに関するフレーム表現を生成するように構成される、埋め込み層とを備え得る。
【0012】
修正後の画像分類畳み込みニューラルネットワークは、訓練トリプレットのセットで訓練されていてもよく、各訓練トリプレットは、それぞれの訓練ビデオ、正のクエリ表現、および負のクエリ表現からのそれぞれの訓練フレームを含む。
【0013】
正のクエリ表現は、訓練ビデオと関連している検索クエリに関するクエリ表現であり得るし、負のクエリ表現は、訓練ビデオと関連していない検索クエリに関するクエリ表現である。
【0014】
本態様の他の実施形態は、対応するコンピュータシステム、装置、1つまたは複数のコンピュータストレージデバイス上に記録されたコンピュータプログラムを含み、各々は、方法のアクションを行うように構成される。1つまたは複数のコンピュータのシステムは、動作中にシステムにアクションを行わせる、ソフトウェア、ファームウェア、ハードウェア、またはシステムにインストールされるそれらの組合せを有することによって、特定の動作またはアクションを行うように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを行わせる命令を含むことによって、特定の動作またはアクションを行うように構成され得る。
【0015】
本明細書において説明した発明特定事項の特定の実施形態を、以下の利点のうちの1つまたは複数を実現するために実施することができる。ビデオサーチエンジンによって受信した検索クエリに対してレスポンシブなものとして分類済みのビデオから代表フレームを選択することによって、より効果的なビデオサーチエンジンを提供している。具体的には、代表ビデオフレームが受信した検索クエリに依存した方式で選択されているため、所与のレスポンシブビデオの関連性を、レスポンシブビデオを特定する検索結果において代表フレームを含めることによって、ユーザに効果的に示すことができ、それによって、ユーザが最も関連性のある検索結果をより素早く見つけることを可能としている。加えて、選択されると、代表フレームから開始するレスポンシブビデオの再生を開始するリンクを検索結果において含めることによって、ユーザを、レスポンシブビデオの最も関連性のある部分へと容易にナビゲートすることができる。
【0016】
本明細書の発明特定事項についての1つまたは複数の実施形態の詳細を添付の図面および以下の説明において記載している。発明特定事項の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなるであろう。
【発明を実施するための形態】
【0018】
様々な図面における類似の参照符号および記号表現は、類似の要素を示す。
【0019】
本明細書は、ビデオ検索結果を含む検索クエリに対する応答を生成するビデオ検索システムを一般的に説明している。具体的には、検索クエリに対する応答において、システムは、レスポンシブビデオのセットのうちの各々から代表ビデオフレームを選択し、各々がそれぞれのレスポンシブビデオを特定するとともにレスポンシブビデオからの代表ビデオフレームの提示を含んでいるビデオ検索結果を含む、検索クエリに対する応答を生成する。
【0020】
図1は、例示的なビデオ検索システム114を示している。ビデオ検索システム114は、以下に説明したシステム、コンポーネント、および技法を実施する、1つまたは複数の位置内の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されている情報検索システムの例である。
【0021】
ユーザ102は、ユーザデバイス104を介してビデオ検索システム114とやりとりをし得る。ユーザデバイス104は、命令およびデータを記憶するためのメモリ、例えば、ランダムアクセスメモリ(RAM)106と、保存されている命令を実行するためのプロセッサ108とを一般的に備える。メモリは、読み込み専用および書き込み可能メモリの両方を含み得る。例えば、ユーザデバイス104は、データ通信ネットワーク112、例えば、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)、例えば、インターネット、またはそれらのいずれかが無線リンクを含むネットワークの組合せを介してビデオ検索システム114に接続されているコンピュータ、例えば、スマートフォンまたは他のモバイルデバイスであり得る。
【0022】
いくつかの実施形態においては、ビデオ検索システム114は、ユーザ102がビデオ検索システム114とやりとりすることができるユーザインターフェースをユーザデバイス104に提供している。例えば、ビデオ検索システム114は、ユーザデバイス104上に、例えば、モバイルデバイス上に、または別のデバイス上にインストールされたアプリケーションにおいて、ユーザデバイス104上で動作するウェブブラウザによってレンダリングされるウェブページの形式でユーザインターフェースを提供し得る。
【0023】
ユーザ102は、クエリ110をビデオ検索システム114に送信するためにユーザデバイス104を使用し得る。ビデオ検索システム114内のビデオサーチエンジン130は、検索を行ってクエリ110に関するレスポンシブビデオ、すなわち、ビデオサーチエンジン130がクエリ110にマッチングするものとして分類したビデオを特定する。
【0024】
ユーザ102がクエリ110を送信すると、クエリ110は、ビデオ検索システム124にネットワーク112を介して伝送され得る。ビデオ検索システム114は、ビデオをインデックス化するインデックス122およびビデオサーチエンジン130を含む。ビデオ検索システム114は、例えば、ユーザデバイス104上で動作するウェブブラウザによって表示されることになる検索結果ウェブページとして、ユーザ102に対する提示のためにユーザデバイス104にネットワーク112を介して伝送されるビデオ検索結果128を生成することによって、検索クエリ110に応答する。
【0025】
クエリ110がビデオサーチエンジン130によって受信されると、ビデオサーチエンジン130は、インデックス122においてインデックス化されたビデオからクエリ110に関するレスポンシブビデオを特定する。サーチエンジン130は、クエリ110を満足するビデオに関するスコアを生成するとともにそれらそれぞれのスコアに従ってビデオをランク付けするランキングエンジン152または他のソフトウェアを一般的に含み得る。
【0026】
ビデオ検索システム114は、代表フレームシステム150を含むまたは代表フレームシステム150と通信し得る。ビデオサーチエンジン130がクエリ110に関するレスポンシブビデオを選択し終えた後に、代表フレームシステム150は、レスポンシブビデオの各々から代表ビデオフレームを選択する。ビデオ検索システム114は、その後、ビデオ検索結果を含むクエリ110に対する応答を生成する。
【0027】
ビデオ検索結果の各々は、レスポンシブビデオのうちの1つレスポンシブビデオを特定し、代表フレームシステム150によってレスポンシブビデオのために選択された代表フレームの提示を含む。代表フレームの提示は、例えば、代表フレームからのコンテンツを含む代表フレームまたは別の画像のサムネイルであり得る。各ビデオ検索結果はまた、一般的に、ユーザによって選択されると、ビデオ検索結果によって特定されたビデオの再生を開始するリンクを含む。いくつかの実施形態においては、リンクは、レスポンシブビデオからの代表フレームから開始する再生を開始する、すなわち、代表フレームは、ビデオ内の最初のフレームというよりはビデオの再生のための開始点である。
【0028】
代表フレームシステム150は、用語表現リポジトリ152に記憶されている用語表現およびフレーム表現リポジトリ154に記憶されているフレーム表現を使用して所与のレスポンシブビデオから代表フレームを選択する。
【0029】
用語表現リポジトリ152は、用語の所定の語彙の各用語を用語に関する用語表現と関連付けるデータを記憶する。用語表現は、高次元空間における数値のベクトルであり、すなわち、所与の用語に関する用語表現は、高次元空間における位置を用語に与える。例えば、数値は、小数点の値または小数点の値の量子化表現であり得る。
【0030】
一般的に、用語の相対位置が用語間の意味的および構文的類似性を反映するように、関連付けが生成される。すなわち、高次元空間内の用語の相対位置は、例えば、空間におけるそれらの相対位置によって、単語「彼」に類似する単語が単語「彼ら」、「私」、「あなた」などを含み得ることを示す、用語間の構文的類似性と、例えば、空間におけるそれらの相対位置によって、単語「女王」が単語「王」および「王子」と類似していることを示す、意味的類似性とを反映している。さらに、空間における相対位置は、単語「王子」が単語「王女」と類似していることと同じ認識で単語「王」が単語「女王」と類似していることを示し得るし、加えて、単語「女王」が単語「王女」と類似していることと同じ認識で単語「王」が単語「王子」と類似していることを示し得る。
【0031】
加えて、他の用語に対する所望の関係を有する用語を特定するために位置に対して演算が行われ得る。具体的には、位置に対して行われるベクトル減法およびベクトル加法の演算が、用語間の関係を決定するために使用され得る。例えば、用語Bが用語Cと同様の関係性を有しているように用語Aに対して同様の関係性を有する用語Xを特定するために、用語A、B、およびCを表すベクトルに対して次の演算、すなわち、vector(B)-vector(C)+vector(A)が行われ得る。例えば、vector(「男」)-vector(「女」)+vector(「女王」)の演算は、単語「王」のベクトル表現に近いベクトルをもたらし得る。
【0032】
これらの特性を有する高次元ベクトル表現に対する用語の関連付けを、用語の語彙における各用語を処理して高次元空間中の語彙における各用語のそれぞれの数値表現を取得し、語彙における各用語を高次元空間における用語のそれぞれの数値表現と関連付けるように構成される、訓練機械学習システムによって生成し得る。そのようなシステムを訓練し関連付けを生成するための例示的な技法は、Toma Mikolov、Kai Chen、Greg S. Corrado、およびJeffrey Dean、Efficient estimation of word representations in vector space, International Conference on Learning Representations (ICLR)、スコットデール、アリゾナ、米国、2013年に記載されている。
【0033】
フレーム表現リポジトリ154は、インデックス122においてインデックス化されたビデオからのビデオフレームをフレームに関するフレーム表現と関連付けるデータを記憶する。用語表現と同様に、フレーム表現は、高次元空間における数値のベクトルである。ビデオフレームに関するフレーム表現を生成することを以下の
図3および4を参照して説明する。用語表現およびフレーム表現を使用して受信したクエリに対する応答におけるビデオのための代表フレームを選択することを以下の
図2を参照して説明する。
【0034】
図2は、受信した検索クエリに対する応答を生成するための例示的なプロセス200のフロー図である。便宜上、プロセス200を、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。例えば、適切にプログラムされた、ビデオ検索システム、例えば、
図1のビデオ検索システム100は、プロセス200を行い得る。
【0035】
システムは、検索クエリを受信する(ステップ202)。検索クエリは、1つまたは複数のクエリ用語を含む。
【0036】
システムは、検索クエリに関するクエリ表現を生成する(ステップ204)。クエリ表現は、高次元空間における数値のベクトルである。具体的には、クエリ表現を生成するために、システムは、用語表現リポジトリに記憶されているデータ、例えば、
図1の用語表現リポジトリ152から受信した検索クエリにおける各クエリ用語に関するそれぞれの用語表現を決定する。上述したように、用語表現リポジトリは、用語の語彙における各用語について、用語を用語に関する用語表現と関連付けるデータを記憶する。システムは、その後、クエリ用語に関する用語表現を組み合わせてクエリ表現を生成する。例えば、クエリ表現は、検索クエリにおける用語に関する用語表現の平均または中心傾向といった他の尺度であり得る。
【0037】
システムは、検索クエリに関するレスポンシブビデオを特定するデータを取得する(ステップ206)。レスポンシブビデオは、検索クエリに対してレスポンシブなものとして、すなわち、検索クエリにマッチングするものとしてまたは検索クエリを満足するものとして、ビデオサーチエンジン、例えば、
図1のビデオサーチエンジン130によって分類されたビデオである。
【0038】
システムは、レスポンシブビデオの各々から代表フレームを選択する(ステップ208)。システムは、フレーム表現リポジトリ、例えば、
図1のフレーム表現リポジトリ154に記憶されているレスポンシブビデオ内のフレームに関するフレーム表現を使用して所与のレスポンシブビデオから代表フレームを選択する。
【0039】
具体的には、レスポンシブビデオから代表フレームを選択するために、システムは、クエリ表現とレスポンシブビデオ内のフレームに関するフレーム表現の各々との間のそれぞれの距離測度を算出する。例えば、距離測度は、コサイン類似度値、ユークリッド距離、ハミング距離などであり得る。同様に、システムはまた、表現を正規化し、その後、正規化表現間の距離測度を算出し得る。
【0040】
いくつかの実施形態においては、システムは、距離測度に従ってクエリ表現に最も近いフレーム表現を有するレスポンシブビデオからフレームを代表フレームとして選択する。
【0041】
必要に応じて、これらの実施形態においては、システムは、最も近いフレーム表現がクエリ表現に十分に近接しているどうかを検証し得る。すなわち、距離値が大きいほど距離測度に従ってより近い表現を表す場合には、システムは、最大の距離測度が閾値を超過すると最も近いフレーム表現が十分に近接していると決定する。距離値が小さいほど距離測度に従ってより近い表現を表す場合には、システムは、最小の距離測度が閾値を下回ると最も近いフレーム表現が十分に近接していると決定する。
【0042】
最も近いフレーム表現がクエリ表現に十分に近接している場合には、システムは、代表フレームとして最も近いフレーム表現を有するフレームを選択する。最も近いフレーム表現が十分に近接していない場合には、システムは、代表フレームとして既定のデフォルトフレームを選択する。例えば、デフォルトフレームは、レスポンシブビデオ内の所定の位置、例えば、レスポンシブビデオ内の最初のフレーム、または、異なる技法を使用してレスポンシブビデオのための代表フレームとして分類されたフレームにおけるフレームであり得る。
【0043】
いくつかの他の実施形態においては、最も近いフレーム表現がクエリ表現に十分に近接しているかどうかを決定するために、システムは、スコア較正モデルを使用して距離測度を確率にマッピングする。スコア較正モデルは、例えば、等張性回帰モデル、ロジスティック回帰モデル、または距離測度の分布と、必要に応じて、距離測度に対応するフレームの特徴とを受信して、各距離測度をそれぞれの確率にマッピングするように訓練された他のスコア較正モデルであり得る。所与のフレームに関する確率は、フレームが受信したクエリに対するビデオを的確に代表する尤度を表す。例えば、スコア較正モデルは、ビデオフレームに関する距離測度の分布、および、各距離測度の分布について、最も近い距離測度を有するフレームが評価者の検索クエリに対する応答において選択された際のビデオを的確に代表していると評価者が示すかどうかを示すラベルを含む、訓練データで訓練され得る。
【0044】
これらの実施形態においては、システムは、最も高い確率、すなわち、最も近いフレーム表現を有するフレームに関する確率が閾値確率を超過していないかどうかを決定する。最も高い確率が閾値確率を超過している場合には、システムは、代表フレームとして最も高い確率を有するフレームを選択する。確率が閾値を超過していない場合には、システムは、代表フレームとして既定のデフォルトフレームを選択する。
【0045】
システムは、検索クエリに対する応答を生成する(ステップ210)。応答は、各々がそれぞれのレスポンシブビデオを特定するビデオ検索結果を含む。いくつかの実施形態においては、各ビデオ検索結果は、ビデオ検索結果によって特定されたビデオからの代表フレームの提示を含む。いくつかの実施形態においては、各ビデオ検索結果は、ユーザによって選択されると、代表フレームから開始するビデオの再生を開始するリンクを含む。すなわち、所与のビデオのための代表フレームは、ビデオの再生のための代替的な開始点として機能する。
【0046】
図3は、ビデオフレームに関するフレーム表現を生成するための例示的なプロセス300のフロー図である。便宜上、プロセス300を、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。例えば、適切にプログラムされた、ビデオ検索システム、例えば、
図1のビデオ検索システム100は、プロセス300を行い得る。
【0047】
システムは、ラベルの既定のセット内の各ラベルをラベルに関するそれぞれのラベル表現にマッピングするデータを保持する(ステップ302)。各ラベルは、それぞれの対象カテゴリを表す用語である。例えば用語「馬」は、馬カテゴリに関するラベルであり得る、または用語「9」は、数字の9の画像を含むカテゴリに関するラベルであり得る。
【0048】
所与のラベルに関するラベル表現は、高次元空間における数値のベクトルである。例えば、ラベルに関するラベル表現は、用語表現リポジトリに記憶されているラベルに関する用語表現であり得る。
【0049】
システムは、フレームに関するラベルスコアのセットを生成するために画像分類ニューラルネットワークを使用してフレームを処理する(ステップ304)。フレームに関するラベルスコアのセットは、ラベルのセット内のラベルの各々に関するそれぞれのスコアを含み、所与のラベルに関するスコアは、フレームがラベルによって表される対象カテゴリに属する対象物の画像を含む尤度を表す。例えば、ラベルのセットが対象カテゴリ馬を表すラベル「馬」を含む場合には、「馬」ラベルに関するスコアは、フレームが馬の画像を包含する尤度を表す。
【0050】
いくつかの実施形態においては、画像分類ニューラルネットワークは、画像に関するラベルスコアのセットを生成するために入力画像を処理することによって入力画像を分類するように訓練されたディープ畳み込みニューラルネットワークである。ディープ畳み込みニューラルネットワークといった例示的な初期画像分類ニューラルネットワークが、Imagenet classification with deep convolutional neural networks、Alex Krizhevsky、Ilya Sutskever、およびGeoffrey E. Hinton、NIPS、1106〜1114頁、2012年に記載されている。
【0051】
システムは、ラベルスコアおよびラベルに関するラベル表現からフレームに関するフレーム表現を決定する(ステップ306)。具体的には、システムは、ラベルの各々について、ラベルに関するラベルスコアをラベルに関するラベル表現と乗算することによってラベルに関する重み付き表現を算出する。システムは、重み付き表現の合計を算出することによってフレームに関するフレーム表現を算出する。
【0052】
システムがフレームに関するフレーム表現が決定されると、システムは、受信した検索クエリに対する応答における代表フレームを選択する際に使用するために、フレーム表現リポジトリ内のフレーム表現を記憶し得る。
【0053】
いくつかの実施形態においては、システムは、初期画像分類ニューラルネットワークと埋め込み層とを備える修正後の画像分類ニューラルネットワークを使用してフレームを処理することによってフレーム表現を生成する。初期画像分類ニューラルネットワークは、入力ビデオフレームに関するラベルスコアを生成するために入力ビデオフレームを処理することによって入力ビデオフレームを分類する上述した画像分類ニューラルネットワークであり得る。埋め込み層は、入力ビデオフレームに関するラベルスコアを受信し、入力ビデオフレームに関するフレーム表現を生成するためにラベルスコアを処理するように構成される、ニューラルネットワーク層である。
【0054】
図4は、修正後の画像分類ニューラルネットワークを使用してビデオフレームに関するフレーム表現を生成するための例示的なプロセス400のフロー図である。便宜上、プロセス400を、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。例えば、適切にプログラムされた、ビデオ検索システム、例えば、
図1のビデオ検索システム100は、プロセス400を行い得る。
【0055】
システムは、フレームに関するラベルスコアのセットを生成するために初期画像分類ニューラルネットワークを使用してフレームを処理する(ステップ402)。
【0056】
システムは、フレームに関するフレーム表現を生成するために埋め込み層を使用してフレームに関するラベルスコアを処理する(ステップ404)。具体的には、いくつかの実施形態においては、埋め込み層は、フレームに関するラベルスコアを受信し、ラベルの各々について、ラベルに関するラベルスコアをラベルに関するラベル表現と乗算することによってラベルに関する重み付き表現を算出し、重み付き表現の合計を算出することによってフレームに関するフレーム表現を算出するように構成される。いくつかの他の実施形態においては、埋め込み層は、埋め込み層のパラメータのセットの現在の値に従ってラベルスコアを変換することによってフレーム表現を生成するためにフレームに関するラベルスコアを処理するように構成される。
【0057】
プロセス400は、所望のフレーム表現が既知ではないフレーム、すなわち、システムによって生成されるべきフレーム表現が既知ではないフレームに関するフレーム表現を予測するように行われ得る。プロセス400はまた、修正後の画像分類ニューラルネットワークを訓練するため、すなわち、パラメータの初期値またはパラメータの事前に訓練済みの値のいずれかから、初期画像分類ニューラルネットワークのパラメータに関する訓練済みの値と、埋め込み層がパラメータを有する場合には、埋め込み層のパラメータに関する訓練済みの値とを決定するために、訓練データのセット、すなわち、システムによって予測されるべき出力が既知である入力フレームのセットから入力フレームに関するフレーム表現を生成するように行われ得る。
【0058】
例えば、プロセス400は、従来の逆伝播訓練技法を使用して損失関数を最小にすることによって初期画像分類ニューラルネットワークのパラメータに関する訓練済みの値を決定する訓練技法の部分として訓練データのセットから選択された入力フレームに対して繰り返し行われ得る。
【0059】
図5は、修正後の画像分類ニューラルネットワークを訓練するための例示的なプロセス500のフロー図である。便宜上、プロセス500を、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。例えば、適切にプログラムされた、ビデオ検索システム、例えば、
図1のビデオ検索システム100は、プロセス500を行い得る。
【0060】
システムは、訓練ビデオのセットを取得する(ステップ502)。
【0061】
システムは、各訓練ビデオについて、訓練ビデオと関連している検索クエリを取得する(ステップ504)。所与の訓練ビデオと関連付けられた検索クエリとは、ユーザがビデオサーチエンジンに送信して訓練ビデオを特定する検索結果が検索したユーザにもたらされた検索クエリである。
【0062】
システムは、例えば、
図2を参照して上述したように、各訓練ビデオについて、訓練ビデオと関連付けられたクエリのクエリ表現を算出する(ステップ506)。
【0063】
システムは、修正後の画像分類ニューラルネットワークを訓練するための訓練トリプレットを生成する(ステップ508)。各訓練トリプレットは、訓練ビデオ、正のクエリ表現、および負のクエリ表現からのビデオフレームを含む。正のクエリ表現は、訓練ビデオと関連付けられたクエリに関するクエリ表現であり、負のクエリ表現は、訓練ビデオと関連していないが異なる訓練ビデオには関連しているクエリに関するクエリ表現である。
【0064】
いくつかの実施形態においては、システムは、訓練ビデオと関連付けられたクエリに関する表現からランダムに訓練トリプレットに関する正のクエリ表現を選択する、または、訓練ビデオと関連している各クエリに関する所与のフレームに関するそれぞれの訓練トリプレットを生成する。
【0065】
いくつかの他の実施形態においては、所与のフレームについて、システムは、訓練ビデオと関連付けられたクエリに関する表現からフレームに関するフレーム表現に最も近いフレームクエリ表現を含む訓練トリプレットに関する正のクエリ表現として選択する。すなわち、システムは、フレーム表現を生成するためにネットワークのパラメータの現在の値に従って修正後の画像分類ニューラルネットワークを使用してフレームを処理し、その後、生成したフレーム表現を使用して訓練トリプレットに関する正のクエリ表現を選択することによってネットワークを訓練する間に訓練トリプレットを生成し得る。
【0066】
システムは、訓練トリプレットで修正後の画像分類ニューラルネットワークを訓練する(ステップ510)。具体的には、各訓練トリプレットについて、システムは、フレームに関するフレーム表現を生成するためにネットワークのパラメータの現在の値に従って修正後の画像分類ニューラルネットワークを使用して訓練トリプレットにおいてフレームを処理する。システムは、その後、正の距離、すなわち、フレーム表現と正のクエリ表現との間の距離と、負の距離、すなわち、フレーム表現と負のクエリ表現との間の距離とに依存する損失関数の勾配を算出する。システムは、従来の機械学習訓練技法を使用してニューラルネットワークのパラメータの現在の値を調整するためにニューラルネットワークの層を介して算出した勾配を逆伝播し得る。
【0067】
本明細書において説明した発明特定事項の実施形態および機能的動作を、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアまたはファームウェアで、本明細書において開示した構造およびそれらの構造的均等物を備えるコンピュータハードウェアで、または、それらの1つまたは複数の組合せで、実装してもよい。本明細書において説明した発明特定事項の実施形態を、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のためまたはデータ処理装置の動作を制御するための実行のために有形の非一時的プログラム媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装してもよい。あるいはまたは加えて、プログラム命令を、データ処理装置による実行に適切な受信機装置への伝送のための情報を符号化するために生成される、人為的に生成した伝搬信号、例えば、機械が生成した電気、光学、または電磁気信号上に符号化してもよい。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ基盤、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せであり得る。
【0068】
用語「データ処理装置」は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、すべての種類の装置、デバイス、および処理データのためのマシンを含む。装置は、特殊用途論理回路を含み得るし、例えば、FPGA(分野プログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)。装置はまた、ハードウェアに加えて、当該コンピュータプログラムのための実行環境作成するコード、例えば、1つまたは複数のプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの組合せを構成するコードを含み得る。
【0069】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称され得るまたは記載され得る)は、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、プログラミング言語の任意の形式で書くことが可能であり、スタンドアローンプログラムのような形式、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットのような形式を含む、任意の形式でデプロイすることが可能である。コンピュータプログラムは、必ずしもそうある必要はないが、ファイルシステム内のファイルに対応していてもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントに、当該プログラム専用の単一のファイルに、または複数の協調ファイル、例えば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶された1つまたは複数のスクリプトに記憶され得る。コンピュータプログラムは、1つのコンピュータ上でもしくは1つのサイトに位置しまたは複数のサイトにわたって分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるようにデプロイされ得る。
【0070】
本明細書において説明したプロセスおよびロジックフローは、入力データに対する演算をして出力を生成することによって機能を発揮するように、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよびロジックフローはまた、特殊用途論理回路、例えば、FPGA(分野プログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実装され得るし、装置も、特殊用途論理回路、例えば、FPGA(分野プログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実装され得る。
【0071】
コンピュータプログラムの実行のために適切なコンピュータは、一例として、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を行うためのまたは実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般的に、コンピュータはまた、例えば、磁気、光磁気ディスク、または光ディスクなどといったデータを記憶するための1つまたは複数のマスストレージデバイスを含み、そのようなマスストレージデバイスからデータを受信またはそのようなマスストレージデバイスへデータを送信またはその両方を行うために動作可能なように接続されることになる。しかしながら、コンピュータは、必ずしもそのようなデバイスを有している必要はない。さらに、コンピュータは、別のデバイス、いくつか例を挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブといったポータブルストレージデバイスに組み込まれ得る。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスのすべての形式を含む。プロセッサおよびメモリは、特殊用途論理回路によって補完され得るまたは特殊用途論理回路に組み込まれ得る。
【0072】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、情報をユーザに表示するために、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといった、表示デバイスと、ユーザがコンピュータに入力を提供することを可能とする、例えば、マウスまたはトラックボールといった、キーボードおよびポインティングデバイスとを有するコンピュータに実装され得る。他の種類のデバイスが、ユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった、任意の形式の感覚フィードバックであり得るし、ユーザからの入力が、音響、音声、または触覚入力を含む、任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるドキュメントをデバイスに送信するとともにデバイスから受信することによって、例えば、ウェブブラウザから受信した要求に応じたユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとやりとりし得る。
【0073】
本明細書において説明した発明特定事項の実施形態は、例えばデータサーバとしてバックエンドコンポーネントを含む、または、例えばアプリケーションサーバといったミドルウェアコンポーネントを含む、例えばグラフィックユーザインターフェースを有するクライアントコンピュータもしくはユーザが本明細書において説明した発明特定事項の実施形態とやりとりし得るウェブブラウザといったフロントエンドコンポーネントを含む、コンピューティングシステム、または、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実施され得る。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、例えば、インターネットを含む。
【0074】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的に、互いにリモートにあり、典型的には、通信ネットワークを介してやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【0075】
本明細書は、多くの特定の実施形態詳細を包含しているが、これらは、任意の発明または主張され得ることの範囲に対する限定として解釈すべきではないが、むしろ、特定の発明の特定の実施形態に固有のものとなり得る特徴の説明として解釈すべきである。また、別個の実施形態の内容において本明細書に記載したある特徴を、単一の実施形態において組合せで実施し得る。また、反対に、単一の実施形態の内容に記載した様々な特徴を、別々に複数の実施形態でまたは任意の適切なサブコンビネーションで実施し得る。さらに、特徴がある組合せで動作するものとして上記で説明され当初はそのように主張さえされている場合があったとしても、いくつかのケースでは、主張した組合せのうちの1つまたは複数の特徴を組合せから削除することが可能であるし、主張した組合せはサブコンビネーションまたはサブコンビネーションのバリエーションを対象とし得る。
【0076】
同様に、動作を特定の順序で図面に記載しているが、そのような動作を図示した特定の順序もしくは一連の順序で行う必要があると、または、望ましい結果を得るために図示した動作すべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理およびパラレル処理が有利となり得る。さらに、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離が必要になると理解すべきではないし、説明したプログラムコンポーネントおよびシステムが、一般的に、単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージされ得ることを理解されたい。
【0077】
発明特定事項の特定の実施形態を説明してきたが、他の実施形態も、特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションを、異なる順序で行い、依然として望ましい結果を達成し得る。一例として、添付の図面に記載したプロセスは、望ましい結果を達成するために、必ずしも図示した特定の順序または一連の順序を必要とするわけではない。ある実施形態においては、マルチタスク処理およびパラレル処理が有利となり得る。