様々な図面における同様の参照符号は、同様の要素を示す。
図1は、デジタルコンポーネント106を形成する1つまたは複数のコンテンツアセット104の品質がコンテンツの配信を規制するために使用され得るコンピューティング環境102を示す。一部の例において、コンテンツアセット104は、画像、テキスト、オーディオ、アニメーション、ビデオ、インタラクティブコンテンツ、任意のその他のマルチメディア、および/またはインタラクティブなボタンなどのユーザインターフェース要素のうちの1つまたは複数であることが可能であり、デジタルコンポーネント106は、コンテンツアセット104のうちの2つ以上の組合せであることが可能である。
コンピューティング環境102は、恐らくデジタルコンポーネント106を形成するために使用され得るコンテンツアセット104をコンテンツプロバイダ108またはコンテンツサーバ110から受信し、それらのコンテンツアセット104の少なくとも一部を組み立てて(たとえば、組み合わせて)異なるデジタルコンポーネント106を形成し、外部呼び出し112に応じてデジタルコンポーネント106をそれぞれのクライアントデバイス114に送信する(たとえば、1つもしくは複数のサーバまたは1つもしくは複数のその他のデータ処理装置を含む)コンテンツ配信システム107を含む。簡潔にするために、以下の検討は、コンテンツプロバイダ108から受信されるコンテンツアセット104に言及するが、検討は、コンテンツサーバ110またはその他の所から受信されるコンテンツアセット104に等しく適用可能である。場合によっては、コンテンツ配信システム107は、どのデジタルコンポーネント106が配信されるのか、および/またはどのようにしてデジタルコンポーネント106がクライアントデバイス114に配信されるのかを調整するまたは規制するためにコンテンツアセット104および/またはデジタルコンポーネント106についての品質情報(たとえば、画像品質情報)を使用することができる。たとえば、コンテンツ配信システム107は、指定された閾値の品質レベルを下回る品質を有するデジタルコンポーネント106の配信を防止する(または制限する)ことができる。
上述のように、デジタルコンポーネント106は、コンテンツ配信システム107によってコンテンツアセット104から生成されるものとして説明される。たとえば、デジタルコンポーネント106は、コンテンツ配信システム107(または別のコンピューティングシステム)によってプログラムで生成される。たとえば、コンテンツプロバイダ108が、コンテンツアセット(たとえば、画像、テキスト、および/またはインタラクティブなボタンなどのユーザインターフェース要素)104の組をアップロードし、コンテンツ配信システム107が異なるコンテンツアセット104を様々に組み合わせてコンテンツアセット104の組を使用する複数の異なるデジタルコンポーネント106を生成することを許可することができる。
コンテンツアセット104(たとえば、8つの異なるコンテンツアセット104)の組がコンテンツ配信システム107にアップロードされると、コンテンツ配信システム107は、(a)その組内のそれぞれの個々のコンテンツアセットの品質、(b)コンテンツアセット104の組全体の品質、および/または(c)対応するアセット104(たとえば、そのデジタルコンポーネント106のための8つのコンテンツアセットの組から選択された3つのコンテンツアセット)を使用して形成された各デジタルコンポーネント106の品質を評価することができる。これらの評価が、以下で説明される。
コンテンツ配信システム107は、コンテンツアセット104のアップロードされた組内のそれぞれの個々のコンテンツアセット104の品質(たとえば、視覚的品質とも呼ばれる画像品質)を評価し、コンテンツアセット104の各々に関する品質データをコンテンツアセットデータベース116に記憶することができる。一部の実装において、コンテンツ配信システム107は、コンテンツプロバイダ108によって提供されたコンテンツアセット104の組全体の品質を評価することができる。コンテンツ配信システム107は、品質--たとえば、それぞれの個々のコンテンツアセット104の固有の品質(たとえば、視覚的品質)および/またはコンテンツアセット104の組の全体的な品質--をコンテンツプロバイダ108に提示することができる。一部の例において、画像の組の品質の評価は、以下のように実行されることが可能である。品質のヒューリスティックス(たとえば、デジタルコンポーネント106を生成し、配信するための基準を示す予め設定された規則)がコンテンツアセット104の組が少なくとも予め設定された数(たとえば、5つ)の高品質な画像(たとえば、少なくとも指定されたレベルの品質の画像)を含むときに比較的高い品質のデジタルコンポーネント106が生成されることが可能であることを示す場合、予め設定された数よりも少ない(たとえば、5つ未満の)高品質な画像が組に含まれるとき、コンテンツアセット104の組の品質は、引き下げられ得る。同様に、品質のヒューリスティックスは、コンテンツアセット104の組が(たとえば、正方形のフォーマットに対応する)第1のアスペクト比を有する少なくとも2つの画像および(たとえば、横長のフォーマットに対応する)第2のアスペクト比を有する少なくとも2つの画像を含むときにより高品質なデジタルコンポーネント106が生成されることが可能であることを示す場合がある。この例において、コンテンツアセット104の組の品質レベルは、第1のアスペクト比または第2のアスペクト比を有する2つ未満の画像が存在するとき、引き下げられる場合がある。
コンテンツアセット104を使用して生成された各デジタルコンポーネント106の品質レベルは、コンテンツ配信システム107によって評価されることも可能である。一部の実装において、デジタルコンポーネントの評価は、デジタルコンポーネント106を生成するために使用されたコンテンツアセット104の総合的品質、および/または組み立てられたデジタルコンポーネント106の特徴(たとえば、視覚的特徴もしくは機能的特徴)に基づくことが可能である。(たとえば、肌色のピクセルの数が多い)扇情的な画像としても分類されるぼやけた画像を含むデジタルコンポーネント106は、扇情的な画像として分類されない(たとえば、モデルによってぼやけていないとみなされる)よりぼやけていない画像を有する別のデジタルコンポーネント106よりも低い品質スコアを有する場合がある。同様に、1つのコンテンツアセットが別のコンテンツアセット104に含まれるテキストの一部またはすべてを覆い隠すまたは遮蔽するデジタルコンポーネントは、テキストが覆い隠されず、遮蔽されないようにして同じコンテンツアセット104を配列する異なるデジタルコンポーネント106よりも低い品質スコアを有する場合がある。
デジタルコンポーネント106がコンテンツプロバイダ108によって生成される状況において、コンテンツ配信システム107は、コンテンツプロバイダ108(たとえば、デジタルコンポーネント106を生成するおよび/またはアップロードする主体)に、デジタルコンポーネント106の生成中かまたはデジタルコンポーネント106が完成された後かのどちらかに、デジタルコンポーネント106の品質に関する情報を提示することができるインタラクティブなユーザインターフェースを提供することが可能である。たとえば、コンテンツプロバイダ108が画像コンテンツアセット104をテキストコンテンツアセット104と組み合わせると仮定する。この例において、コンテンツ配信システム107は、コンテンツプロバイダ108にデジタルコンポーネント106のレンダリングを提示し(たとえば、その提示を生じるデータを提供し)、さらに、コンテンツ配信システム107によって評価されたデジタルコンポーネント106の品質レベルをコンテンツプロバイダに知らせる品質のインジケーション104を提示することが可能である。インタラクティブなユーザインターフェースを使用して、コンテンツプロバイダ108は、(たとえば、デジタルコンポーネント106内のコンテンツアセット104の位置を再配列することおよび/またはデジタルコンポーネント106に含まれるコンテンツアセット104の組合せを変更することによって)デジタルコンポーネント106をインタラクティブに修正し、コンテンツ配信システム107から更新された品質情報を得ることを可能にされる。
下で詳細に検討されるように、コンテンツ配信システム107は、(a)1つもしくは複数のコンテンツアセット104および/または1つもしくは複数のコンテンツアセット104から形成されたデジタルコンポーネント106の品質のインジケーション104を生成する機械学習モデルを訓練し、デプロイし、(b)コンテンツプロバイダ108に対するそのようなインジケーション104の表示を助け/制御し、ならびに/あるいは品質のインジケーション104に基づいてデジタルコンポーネント106の配信を制御する。
コンテンツアセット104は、テキスト、オーディオ、画像、アニメーション、ビデオ、インタラクティブコンテンツ、または任意のその他のマルチメディアのうちの1つまたは複数であることが可能である。一部の実装において、コンテンツアセット104は、コンテンツプロバイダ108からコンテンツ配信システム107にアップロードされる。それから、コンテンツアセットは、デジタルコンポーネント106を形成するために組み立てられる(たとえば、一緒に組み合わされる)ことが可能である。一例において、デジタルコンポーネント106は、デジタル広告ドキュメント(広告とも呼ばれ得る)であることが可能である。一部の実装において、コンテンツアセット104は、デジタルコンポーネント106を生成するためにそれらのコンテンツアセット104を組み立てるとき、受信されたままで(たとえば、それらのコンテンツアセット104を修正することなく)使用される。その他の実装においては、少なくとも一部のコンテンツアセット104が、それらのコンテンツアセット104がデジタルコンポーネント106を形成するために組み立てられる前に修正されてもよい。たとえば、コンテンツ配信システム107は、コンテンツアセット104の中の画像の視覚的特徴--ぼやけ、向き(たとえば、横長、縦長)、解像度、色、様々な物体および/もしくはテキストのサイズ、任意のその他の視覚的特徴、ならびに/またはそれらの任意の組合せなど--の、コンテンツプロバイダ108のグラフィカルユーザインターフェース上での修正を可能にするソフトウェアモジュールをデプロイしてもよい。各ソフトウェアモジュールは、リンクモジュールによって組み合わされるまたはリンクされることが可能である複数の独立して開発されたモジュールを含み得るコンピュータプログラムの一部であることが可能である。各ソフトウェアモジュールは、対応するプロシージャまたは関数を実行するソフトウェアコードである1つまたは複数のソフトウェアルーチンを含むことができる。
コンテンツ配信システム107は、クライアントデバイス114に配信される異なるデジタルコンポーネント106を生成するために使用され得る1つまたは複数の画像を含む場合がある、コンテンツプロバイダ108によってアップロードされたコンテンツアセット104を特定する。コンテンツ配信システム107は、視覚的品質を示すとみなされる1つまたは複数の視覚的性質(たとえば、ぼやけ、いかがわしい内容の包含、向き、または任意のその他の視覚的性質)を評価するように訓練された1つまたは複数の機械学習モデルを使用して、1つまたは複数の画像を含むアップロードされたコンテンツアセットの品質を評価する。上述のように、視覚的品質のインジケーションは、視覚的品質のインジケーションが生成されたコンテンツアセットに連動して(たとえば、関連して)コンテンツアセットデータベース116に記憶されることが可能である。視覚的品質のインジケーションをコンテンツアセット104と連動させることは、コンテンツアセット104がデジタルコンポーネント106を生成するためにおよび/または品質のインジケーションをコンテンツプロバイダ108に提示するために使用されるときの視覚的品質のインジケーションの使用を容易にする。
デジタルコンポーネント106がコンテンツアセットデータベース116内で特定されたコンテンツアセット104のうちの1つまたは複数のコンテンツアセット104を使用して生成されるとき、コンテンツ配信システム107は、1つまたは複数の画像を含むデジタルコンポーネントの視覚的品質(たとえば、画像の組合せの視覚的品質)を示す1つまたは複数の機械学習モデルの出力に少なくとも部分的に基づいて、デジタルコンポーネント106において使用されるコンテンツアセット104の総合的品質を決定することができる。コンテンツアセットの総合的品質の視覚的なインジケーションが、インジケーション104内で提示される。
上述のように、コンテンツアセット104(たとえば、8つの異なるコンテンツアセット104)の組がコンテンツ配信システム107にアップロードされると、コンテンツ配信システム107は、(a)その組内のそれぞれの個々のコンテンツアセットの品質、(b)コンテンツアセット104の組全体の品質、および/または(c)対応するアセット104(たとえば、そのデジタルコンポーネント106のための8つのコンテンツアセットの組から選択された3つのコンテンツアセット)を使用して形成された各デジタルコンポーネント106の品質を評価することができる。コンテンツ配信システム107は、各コンテンツアセット104を評価してそのコンテンツアセットの品質を決定し、それから、コンテンツアセット104のアップロードされた組内のすべてのコンテンツアセットに関するそのような品質の値を集約して組に関する総合的品質を決定し、デジタルコンポーネント106内のすべてのコンテンツアセット104に関するそのような品質の値を集約してデジタルコンポーネントに関する総合的品質を決定することによってそのような評価を行うことができる。各コンテンツアセット104の評価は、以下のように実行される。
各コンテンツアセット104を評価するために、コンテンツ配信システム107は、ぼやけモデル、いかがわしい内容モデル、向きモデルなどの複数の機械学習モデルを訓練し、デプロイすることができる。訓練フェーズにおいて、コンテンツアセット104は、複数のラベル(たとえば、ぼやけ値(blurriness value)、いかがわしい内容値(objectionable content value)、向き値(orientation value))のうちの1つまたは複数を持つことが可能である。各ラベルは、コンテンツアセット(たとえば、画像)の対応する品質の特徴(たとえば、ぼやけ、いかがわしい内容の包含、向き)を特徴付けることができる。各モデルは、複数のラベルのうちのそれぞれのラベルに従ってコンテンツアセット(たとえば、画像)を分類するように訓練されることが可能である。モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、および向きモデル)が訓練されると、コンテンツ配信システム107は、ラベル(たとえば、ぼやけ、いかがわしい内容、および向き)の各々に関するスコアを生成するためにデジタルコンポーネント106のコンテンツアセット104に対してそれらのモデルをデプロイすることができる。コンテンツ配信システム107は、各スコアに重みを割り振って重み付けされたスコアを生成し、それから、重み付けされたスコアを組み合わせてそのコンテンツアセット104に関する組み合わされたスコアを生成することができる。コンテンツ配信システム107は、そのコンテンツアセットの品質の推測結果を生成するために、組み合わされたスコアを1つまたは複数の閾値と比較することができる。一部の例において、推測結果は、「非常に良い」品質、「普通」の品質、または「低い」品質であることが可能である。
コンテンツ配信システム107は、コンテンツアセット104の組の品質を以下のように評価することができる。コンテンツアセット104のアップロードされた組の品質は、その組を形成する様々なコンテンツアセット104の個々の品質の組合せ(たとえば、総和)--または一部の実装においては、平均、加重平均、中央値など--であることが可能である。いくつかの場合、コンテンツアセット104の組の総合的品質は、組内のすべてのコンテンツアセット104の組み合わされたスコアの、それらのコンテンツアセット104のすべてに関する可能な合計スコアに対する比として計算されることが可能である。
コンテンツ配信システム107は、デジタルコンポーネント106の品質を以下のように評価することができる。デジタルコンポーネント106の品質は、そのデジタルコンポーネント106を形成する様々なコンテンツアセット104の個々の品質の組合せであることが可能である。たとえば、デジタルコンポーネント106のコンテンツアセット104の総合的品質(たとえば、平均の品質、加重平均、中央値の品質、または別の適切な集約)は、4つの「非常に良い」画像および1つの「普通」の画像の組合せとして示されることが可能である。別の例において、デジタルコンポーネント106の品質は、4つの「非常に良い」コンテンツアセット104および3つの「普通」のコンテンツアセット104の組合せとして示されることが可能である。その他の実装において、デジタルコンポーネント106の総合的品質203は、デジタルコンポーネント106を形成するために使用されたすべてのコンテンツアセット104の組み合わされたスコアの総和として表されることが可能である。いくつかの場合、デジタルコンポーネント106の総合的品質は、すべてのコンテンツアセットの組み合わされたスコアの、すべてのコンテンツアセット104に関する可能な合計スコアに対する比として計算されることが可能である。
上述のように、コンテンツ配信システム107は、1つまたは複数の機械学習モデルを訓練し、それぞれの新しいコンテンツアセット104に関するインジケーション120を生成するために訓練されたモデルをデプロイすることができる。一部の実装において、コンテンツ配信システム107は、その他の1つまたは複数のサーバから訓練された機械学習モデルを受け取り、それらの受け取られた機械学習モデルをデプロイしてもよい。たとえば、コンテンツ配信システム107は、通信ネットワークを介してコンテンツ配信システム107に結合された第1のサーバからぼやけモデルを受け取り、通信ネットワークを介してコンテンツ配信システム107に結合された第2のサーバからいかがわしい内容モデルを受け取り、通信ネットワークを介してコンテンツ配信システム107に結合された第3のサーバから向きモデルを受け取るなどしてもよい。この例に合う一部の実装において、第1のサーバ、第2のサーバ、および第3のサーバは、同じ物理的位置かまたは異なる物理的位置かのどちらかに置かれることが可能である3つの別個のサーバであることができる。その他の実装において、第1のサーバ、第2のサーバ、および第3のサーバは、単一の物理的位置に置かれた単一のサーバであることができる。
上の例は機械学習モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、向きモデルなど)を受け取られたままでデプロイすることを検討するが、その他の例において、受け取られた機械学習モデルは、そのような機械学習モデルがデプロイされる前に--デジタルコンポーネント106を形成するためにコンテンツプロバイダ108によって使用されたコンテンツアセット104の特定の種類に合うように--カスタマイズされることが可能である。たとえば、そのようなカスタマイズは、訓練された機械学習モデルが一部のコンテンツアセット104(たとえば、画像)に基づいてコンテンツ配信システム107に結合されたその他のサーバによって訓練されたが、より正確な推測を行うように機械学習モデルをより効果的に訓練することができる追加的な関連するコンテンツアセット104(たとえば、画像)にコンテンツ配信システム107がアクセスすることができる可能性がある場合に効果的であり得る。一部の実装において、受け取られた機械学習モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、向きモデルなど)は、そのような機械学習モデルがデプロイされる前に、コンテンツ配信システム107によって課されたシステム要件に合うようにまずカスタマイズされることが可能である。コンテンツ配信システム107は、コンテンツ配信システム107のアーキテクチャの情報、コンテンツプロバイダ108のシステム要件(たとえば、アーキテクチャの情報)、および/または1つもしくは複数のクライアントデバイスのシステム要件(たとえば、アーキテクチャの情報)のうちの1つまたは複数に基づいてシステム要件を課してもよい。一部の実装において、コンテンツ配信システム107は、各コンテンツプロバイダ108に関して別々に機械学習モデルをカスタマイズしてもよく、これは、各コンピューティングデバイスのユーザ(たとえば、広告主)がデジタルコンポーネント106のそれぞれの組を形成するために組み合わされる画像の種類に関して異なる好みを有するときに有益であり得る。
機械学習モデルは、ニューラルネットワークモデル、最近傍モデル(nearest neighbor model)、ナイーブベイズモデル、決定木モデル、回帰モデル、サポートベクターマシン(SVM)、任意のその他の機械学習モデル、および/またはそれらの任意の組合せであることが可能である。機械学習モデルは、カスタマイズされることが可能である。たとえば、機械学習モデルがニューラルネットワークモデルである場合、機械学習モデルは、ニューラルネットワークモデルのサイズ(つまり、ノード数)、ニューラルネットワークモデルの幅(つまり、特定の層内のノード数)、ニューラルネットワークモデルの深さ(つまり、層の数)、ニューラルネットワークモデルの能力(capacity)(つまり、ネットワーク構成によって学習され得る機能の種類もしくは構造。表現能力とも呼ばれる)、またはニューラルネットワークモデルのアーキテクチャ(つまり、層およびノードの特定の配列)のうちの1つまたは複数を変えることによって実行され得る。
各コンテンツアセット104の品質のインジケーションは「非常に良い」品質、「普通」の品質、または「低い」品質であるものとして説明されているが、その他の例においては、任意のその他のカテゴリ名(つまり、それぞれ、すばらしい、まあまあ、または悪いなどの、非常に良い、普通、または低い以外のカテゴリ名)が、使用され得る。さらに、品質の3つのカテゴリが説明されているが、一部の実装において、カテゴリの数は、2つ以上の任意のその他の数であってもよい。もちろん、数値的尺度(たとえば、1~10)、または複数の異なるコンテンツアセット104の間の品質の比較を可能にする何らかのその他の適切な品質のインジケーションなどのその他の種類の品質のインジケーションが、使用され得る。
視覚的品質の評価は、視覚的品質のインジケーションが生成されたコンテンツアセット104に連動して(たとえば、関連して)コンテンツアセットデータベース116に記憶されることが可能である。コンテンツアセット104の視覚的品質のインジケーションを連動させることは、コンテンツ配信システム107が、必要とされるときに(たとえば、そのコンテンツアセット104の品質の任意の評価中に、そのコンテンツアセット104を含むコンテンツアセット104の任意の組の評価中に、およびそのコンテンツアセット104を使用する任意のデジタルコンポーネント106の評価中に)、そのコンテンツアセットの品質を迅速に取り出すことを可能にする。そのような迅速な取り出しは、コンテンツ配信システム107が、そのコンテンツアセット104に関する品質を、そのような品質が必要とされるたびに(たとえば、そのコンテンツアセット104の品質の任意の評価中に、そのコンテンツアセット104を含むコンテンツアセット104の任意の組の評価中に、およびそのコンテンツアセット104を使用する任意のデジタルコンポーネント106の評価中に)再計算する必要がないようにする。コンテンツアセット104の品質を再評価する必要のそのような回避は、品質の評価中のレイテンシを減らすことができる。これは、ひいては、(たとえば、グラフィカルユーザインターフェース上で)コンテンツプロバイダ108に対して品質が提示される(たとえば、表示される)速度を改善する。
デジタルコンポーネント106は、配信の前に修正されてもよく、これは、デジタルコンポーネント106が望ましくない/低い全体的な品質(たとえば、デジタルコンポーネント106を作成し、配信するための基準を示す可能性がある予め設定された規則であってよい品質のヒューリスティックスを満たさない品質)を有する場合に望ましい場合がある。一部の例において、コンテンツ配信システム107は、コンテンツプロバイダ108が(a)デジタルコンポーネント106を形成するために使用される1つもしくは複数のコンテンツアセット104を更新する、および/または(b)デジタルコンポーネント106を形成するために使用される1つもしくは複数のコンテンツアセット104を1つもしくは複数のその他のコンテンツアセット104によって置き換えることを許してもよい。いくつかの例において、コンテンツ配信システム107は、(a)デジタルコンポーネント106を形成するために使用される1つもしくは複数のコンテンツアセット104を自動的に更新し、および/または(b)デジタルコンポーネント106を形成するために使用される1つもしくは複数のコンテンツアセット104を1つもしくは複数のその他のコンテンツアセット104によって自動的に置き換えてもよい。
一例において、品質のヒューリスティックスは、(デジタルコンポーネント106を生成するためにいくつかのコンテンツアセット104が選択される)コンテンツアセット104のアップロードされた組内に存在するべき「非常に良い」コンテンツアセット(たとえば、画像)104の数、そのアップロードされた組内の様々なコンテンツアセット(たとえば、画像)104の向き、その組内のコンテンツアセット104に関する内容に基づくガイドラインなどを含み得る。デジタルコンポーネント106は、(a)コンテンツ配信システム107によって自動的に(たとえば、品質のヒューリスティックスを満たすコンテンツアセット104を--コンテンツアセット104のアップロードされた組から--自動的に選択することによって)、(b)アップロードされた組から1つもしくは複数のコンテンツアセット104を選択するコンテンツプロバイダ108によって、および選択されたコンテンツアセット104を組み合わせてデジタルコンポーネントを形成するコンテンツ配信システム107によって、または(c)そのような選択およびコンテンツアセット104の組合せを実行してデジタルコンポーネントを形成するコンテンツプロバイダ108によって生成され得る。コンテンツプロバイダ108がデジタルコンポーネント106に固有のコンテンツアセット104を組み合わせることによってデジタルコンポーネント106を生成する実装において、コンテンツ配信システム107は、コンテンツプロバイダ108がユーザインターフェース118を使用してデジタルコンポーネント106に繰り返し修正を行うことを可能にすることができる。たとえば、コンテンツ配信システム107は、コンテンツアセット104および/またはデジタルコンポーネント106の品質を高めるためのそのようなコンテンツアセット104および/またはデジタルコンポーネント106に対する修正の推薦を生成することができる。
一部の例においては、コンテンツアセット104の品質が「普通」であるとき、コンテンツ配信システム107は、品質が「非常に良い」に高まり得るように推薦を生成することができ、コンテンツアセット104の品質が「低い」とき、コンテンツ配信システム107は、品質が「普通」に高まり得るように推薦の第1の組を生成し、および/または品質が「非常に良い」に高まり得るように推薦の第2の組を生成することができる。品質を高めるための一部の推薦は、特定された画像の様々な視覚的特徴--たとえば、明度、コントラスト、色、色の強さ、色相、彩度、サイズ、雑音、シャープネス、輝度、望ましくない要素、いかがわしい要素、任意のその他の特徴、および/またはそれらの任意の組合せ--の変更を提案することであることが可能である。
コンテンツ配信システム107がコンテンツアセット104のアップロードされた組を集合的に評価する実装において、コンテンツ配信システム107は、その組内のコンテンツアセット104の修正の推薦を生成することができる。一部の実装において、コンテンツ配信システム107は、たとえば、コンテンツアセット104の組が品質のヒューリスティックスに準拠したデジタルコンポーネント106の生成をサポートすることができないときにそのような推薦を生成することができる。たとえば、推薦は、デジタルコンポーネント106の視覚的品質に関する予め設定された規則がデジタルコンポーネント106が3つの正方形の画像を含まなければならないことを示すが、コンテンツアセットの組が正方形の画像を2つだけ含むときに生成され得る。別の例において、推薦は、デジタルコンポーネント106の視覚的品質に関する予め設定された規則がデジタルコンポーネント106が3つの「非常に良い」品質の正方形の画像を含まなければならないことを示すが、コンテンツアセットの組が「非常に良い」品質の正方形の画像を2つだけ含むときに生成され得る。
コンテンツ配信システム107がデジタルコンポーネント106を評価する実装において、コンテンツ配信システム107は、デジタルコンポーネント106を形成するコンテンツアセット104の修正の推薦を生成することができる。一部の実装において、コンテンツ配信システム107は、たとえば、デジタルコンポーネント104が品質のヒューリスティックス(すなわち、規則)を満たさないときにそのような推薦を生成することができる。たとえば、推薦は、デジタルコンポーネント106の視覚的品質に関する予め設定された規則がデジタルコンポーネント106が3つの正方形の画像を含まなければならないことを示すが、デジタルコンポーネントが1つの正方形の画像のみからなるときに生成され得る。別の例において、推薦は、デジタルコンポーネント106の視覚的品質に関する予め設定された規則がデジタルコンポーネント106が2つの「非常に良い」品質の正方形の画像を含まなければならないことを示すが、コンテンツアセットの組が「非常に良い」品質の正方形の画像を1つだけ含むときに生成され得る。一部の推薦において、コンテンツ配信システム107は、デジタルコンポーネント106内の1つもしくは複数のコンテンツアセット104の位置を再配列することを推薦し、および/またはデジタルコンポーネント106の全体的な品質を高めるためにデジタルコンポーネント106に含まれるコンテンツアセット104の組合せを変更することが可能である。
(任意の実装--つまり、それぞれの個々のコンテンツアセット104が評価される実装、コンテンツアセット104のアップロードされた組が評価される実装、および/またはデジタルコンポーネントが評価される実装--において)推薦が1つまたは複数のコンテンツアセットを修正するために生成されると、コンテンツ配信システム107は、グラフィカルユーザインターフェース118上で推薦をレンダリングすることができる。そのような推薦に応じて、コンテンツ配信システム107は、1つまたは複数のコンテンツアセット104に対して行われる自動的改善を承認または拒否するためにコンテンツプロバイダ108が選択することができるオプションを表示するためにグラフィカルユーザインターフェース118を更新してもよい。コンテンツ配信システム107は、コンテンツアセット104のアップロードされた組および/またはデジタルコンポーネント106の品質を繰り返し更新し(つまり、コンテンツプロバイダ108が何か変更を行うたびに品質の査定を更新し)、ユーザインターフェース118上に品質の更新されたインジケーションを表示することができる。
一部の実装において、コンテンツ配信システム107は、品質のその他のインジケーション、たとえば、重なり合う要素、トリックトゥクリック(trick to click)、不良なクロッピング(cropping)、巨大なボタンなどに関して完成したデジタルコンポーネント106を再評価し得る。デジタルコンポーネント106のそのような二次的な評価は、集約された品質を増強するための推薦を生成するために使用され得る。たとえば、ボタンが画像の扇情的なまたはぼやけた部分に被さる場合、デジタルコンポーネント106の全体的な品質は、構成要素である部分の総合的品質よりも良いかもしれない。一方、大き過ぎ、画像のほとんどに被さるボタンは、たとえアセットが個々に高品質であるとしても品質を低下させる場合がある。
コンテンツ配信システム107がコンテンツアセット104を組み合わせることによってデジタルコンポーネント106を生成する実装において、コンテンツ配信システム107は、1つもしくは複数のコンテンツアセット104および/またはデジタルコンポーネント106に対して行われる改善を自動的に(つまり、コンテンツプロバイダ108とのいかなるインタラクションもなしに)行うことができる。たとえば、コンテンツ配信システム107は、(たとえば、画像の扇情的な部分を覆うことによって)デジタルコンポーネント106全体の品質を高めるようにして画像アセット上に被せられるボタンアセットの位置を調整することができる。コンテンツ配信システム107は、そのような改善が行われると、デジタルコンポーネント106の品質を更新する(つまり、コンテンツプロバイダが何か変更を行うたびに品質の査定を更新する)ことができる。
一部の実装において、コンテンツ配信システム107は、以下のように、デジタルコンポーネント106の最終的な品質に基づいてデジタルコンポーネント106の配信を制限することができる。デジタルコンポーネント106を生成し、配信するための基準を示す可能性がある予め設定された品質の規則/ヒューリスティックスが、デジタルコンポーネント106のために存在してもよい。コンテンツ配信システム107は、(上述のように更新された可能性がある)デジタルコンポーネント106を予め設定された品質の規則/ヒューリスティックスと比較して、デジタルコンポーネント106が配信されるのに適切であるかどうかを判定することができる。たとえば、品質のヒューリスティックスが基準--たとえば、(a)デジタルコンポーネント106が「低い」品質の画像を含んではならない、(b)デジタルコンポーネント106が「扇情的な」画像を含んではならない、(c)デジタルコンポーネント106が「横長の」画像を有していてはならない、(d)デジタルコンポーネント106が「正方形」フォーマットの単一の画像を有していなければならないなどのうちの1つまたは複数--を示す場合、コンテンツ配信システム107は、基準を満たすデジタルコンポーネント106の配信を許すが、その基準を満たさない別のデジタルコンポーネント106の配信を防止してもよい。コンテンツ配信システム107は、そのような基準を満たすことに基づいて配信のためのデジタルコンポーネント106をさらにまたは代替的に制限することができる。したがって、コンテンツ配信システム107は、デジタルコンポーネント106の配信を自動的に制限することができる。
配信の自動制御が上で説明されているが、一部の実装において、コンテンツ配信システム107は、コンテンツ配信システム107によって決定された品質に基づいてデジタルコンポーネント106の配信を手動で制御する機会をコンテンツプロバイダ108に与えてもよい。たとえば、コンテンツ配信システム107は、コンテンツプロバイダ108のインタラクティブなユーザインターフェース118上で、デジタルコンポーネント106の品質のインジケーション120を関連する品質のヒューリスティックスと一緒に提供してもよい。インタラクティブなユーザインターフェース118は、デジタルコンポーネント106の配信を進める、デジタルコンポーネント106の配信を防止する、および/または(たとえば、品質のヒューリスティックスを満たすようにデジタルコンポーネント106の品質を改善するために)デジタルコンポーネント106を修正するためのオプションをコンテンツプロバイダ108にさらに提供してもよい。そのような実装においては、コンテンツプロバイダ108が、配信を制御することができてもよい--たとえば、コンテンツプロバイダが、たとえデジタルコンポーネント106が品質のヒューリスティックスを満たさないときでもデジタルコンポーネント106の配信を許してもよく、またはたとえデジタルコンポーネント106が品質のヒューリスティックスを満たすときでもデジタルコンポーネント106の配信を防止してもよい。
コンテンツプロバイダ108は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ファブレットコンピュータ、電話、キオスクコンピュータ、任意のその他のコンピューティングデバイス、および/またはそれらの任意の組合せなどのコンピューティングデバイスを介してコンテンツ配信システム107とインタラクションすることができる。コンピューティングデバイスは、たとえば、ユーザ名およびパスワード、バイオメトリックデータ、外部デバイスから取得されたセキュリティデータ(たとえば、セキュリティキーフォブに埋め込まれたセキュリティデータ、コンピューティングデバイスに接続された電子メールもしくはソフトウェアアプリケーションから取得されたワンタイムパスワードなど)、任意のその他の認証データ、および/またはそれらの任意の組合せなどの認証データを入力することによって、たとえば、ドメインホスト(domain host)(たとえば、広告主)によって管理されるように構成され得る。
ユーザは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ファブレットコンピュータ、電話、キオスクコンピュータ、任意のその他のコンピューティングデバイス、および/またはそれらの任意の組合せなどのクライアントデバイス114を使用してコンテンツ配信システム107とインタラクションする。クライアントデバイス114は、任意のエンドユーザによって使用されるように構成され得る。コンテンツアセットデータベース116は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、任意のその他の1つもしくは複数のストレージデバイス、および/またはそれらの任意の組合せなどのメモリデバイスであることが可能である。コンテンツサーバ110またはコンテンツ配信システム107のいずれも、少なくとも1つのプログラミング可能なプロセッサと、少なくとも1つのプロセッサによって実行されるときに少なくとも1つのプログラミング可能なプロセッサに本明細書において説明される様々な動作を実行させる命令を記憶する機械可読媒体とを有するシステムであることが可能である。
コンテンツサーバ110の各々は、少なくとも1つのプログラミング可能なプロセッサと、少なくとも1つのプロセッサによって実行されるときに少なくとも1つのプログラミング可能なプロセッサにコンテンツアセット104を収集することおよびデジタルコンポーネント106のために必要とされるときにそれらのコンテンツアセット104をコンテンツプロバイダ108に送信することなどの様々な動作を実行させる命令を記憶する機械可読媒体とを有するシステムであることが可能である。一部の実装において、コンテンツサーバ110は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ファブレットコンピュータ、電話、キオスクコンピュータ、任意のその他のコンピューティングデバイス、および/またはそれらの任意の組合せであることが可能である。
図1に示された様々なコンポーネントの間の矢印は、ローカルエリアネットワーク、広域ネットワーク、インターネット、イントラネット、Bluetoothネットワーク、赤外線ネットワーク、任意のその他の1つもしくは複数のネットワーク、および/またはそれらの任意の組合せを介した有線接続かまたはワイヤレス接続かのどちらかを含むことが可能であるそれらのコンポーネントの間の通信ネットワークを示し得る。
図2Aおよび図2Bは、コンテンツプロバイダ108に対して提示され得るグラフィカルユーザインターフェースを示す。図2Aは、(a)デジタルコンポーネント106を形成するために特定のコンテンツアセット104が選択される、コンテンツプロバイダ108によってアップロードされたコンテンツアセット104(たとえば、画像)の組202、(b)組202内のすべてのコンテンツアセット104の総合的品質203、および(c)デジタルコンポーネント106が品質のヒューリスティックス(たとえば、デジタルコンポーネント106が様々なクライアントコンピューティングデバイス114に配信されてもよいようにデジタルコンポーネント106またはデジタルコンポーネント106内のコンテンツアセット104に関する品質の閾値を示す場合がある予め設定された規則)に準拠するように(i)組202を形成する少なくとも1つのコンテンツアセット104または(ii)組202全体の品質を改善するための様々な推薦に関するボタン204を表示するグラフィカルユーザインターフェース200を示す。一部の例において、デジタルコンポーネント106は、2つ以上のコンテンツアセット104の組合せによって形成された広告などのデジタル広告ドキュメントであることが可能である。この例の組202内のコンテンツアセット104は、画像206、208、210、212、および214、ならびにテキスト216を含む。組202内のコンテンツアセット104が画像またはテキストとして説明されるが、一部の実装において、コンテンツアセット104は、オーディオ、アニメーション、ビデオ、インタラクティブコンテンツ、その他のマルチメディア、および/またはインタラクティブなボタンなどのユーザインターフェース要素も含み得る。
画像206~218のいずれも、ジョイントフォトグラフィックエキスパートグループ(JPEG: Joint Photographic Experts Group)、JPEGファイル交換フォーマット(JFIF)、交換可能画像ファイルフォーマット(Exif: Exchangeable image file format)、タグ付き画像ファイルフォーマット(TIFF)、グラフィックス交換フォーマット(GIF)、ビットマップ(BMP)、ポータブルネットワークグラフィックス(PNG)、ポータブルピックスマップ(PPM: portable pixmap)、ポータブルグレーマップ(PGM: portable graymap)、ポータブルビットマップ(PBM)、ポータブルエニーマップ(PNM: Portable aNy Map、PPM、PGM、およびPBMの組合せであることが可能である)、生画像フォーマット、ならびに/または任意のその他のフォーマットなどの任意のフォーマットのデジタル画像であることが可能である。
組202の総合的品質203は、以下のように生成され得る。まず、コンテンツ配信システム107が、組を形成する各コンテンツアセット104の品質(すなわち、画像206、208、210、212、および214、ならびにテキスト216の各々の品質)を評価することができる。そのようにするために、コンテンツ配信システム107は、ぼやけモデル、いかがわしい内容モデル、向きモデルなどの複数の機械学習モデルを訓練し、デプロイすることができる。訓練フェーズにおいて、各コンテンツアセット104(たとえば、画像206~214のうちの1つ)は、複数のラベル(たとえば、ぼやけ値、いかがわしい内容値、向き値)のうちの1つまたは複数を持つことが可能である。各ラベルは、画像の対応する品質の特徴(たとえば、ぼやけ、いかがわしい内容の包含、向き)を特徴付けることができる。各モデルは、複数のラベルのうちのそれぞれのラベルに従って画像を分類するように訓練されることが可能である。モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、および向きモデル)が訓練されると、コンテンツ配信システム107は、ラベル(たとえば、ぼやけ、いかがわしい内容、および向き)の各々に関するスコアを生成するために画像206~214の各画像にそれらのモデルをデプロイすることができる。コンテンツ配信システム107は、各スコアに重みを割り振って重み付けされたスコアを生成し、それから、重み付けされたスコアを組み合わせてその画像に関する組み合わされたスコアを生成することができる。コンテンツ配信システム107は、そのコンテンツアセット(たとえば、画像)の品質の推測結果を生成するために、組み合わされたスコアを1つまたは複数の閾値と比較することができる。一部の例において、推測結果は、「非常に良い」品質、「普通」の品質、または「低い」品質であることが可能である。
各コンテンツアセット104の品質のインジケーションは「非常に良い」品質、「普通」の品質、または「低い」品質であるものとして説明されているが、その他の例においては、任意のその他のカテゴリ名(つまり、それぞれ、すばらしい、まあまあ、または悪いなどの、非常に良い、普通、または低い以外のカテゴリ名)が、使用され得る。さらに、品質の3つのカテゴリが説明されているが、一部の実装において、カテゴリの数は、2つ以上の任意のその他の数であってもよい。もちろん、数値的尺度(たとえば、1~10)、または複数の異なるコンテンツアセット104の間の品質の比較を可能にする何らかのその他の適切な品質のインジケーションなどのその他の種類の品質のインジケーションが、使用され得る。
組202の総合的品質203は、一部の実装において、4つの「非常に良い」画像および3つの「普通」の画像の組合せとして示され得る。場合によっては、組202の総合的品質203は、すべての画像206~214の組み合わされたスコアの総和として示され得る。いくつかの場合、組202の総合的品質203は、図2Aに示されるように、すべての画像206~214の組み合わされたスコアの、すべての画像206~214に関する可能な合計スコアに対する比として計算され得る。示された例において、すべての画像206~214に関する可能な合計スコアは、10である。
コンテンツ配信システム107は、組202の品質を改善するための推薦を生成することができる。一部の例において、コンテンツ配信システム107は、組202の総合的品質203が閾値未満(たとえば、5/10未満)であるときにのみ、そのような推薦を生成してもよい。そのような閾値は、組202内の1つまたは複数のコンテンツアセット104を使用して形成されることになるデジタルコンポーネント106に関する品質のヒューリスティックスに準拠する最低品質の値を示してもよい。いくつかの例において、品質のヒューリスティックスがデジタルコンポーネント106が「横長のフォーマット」の「非常に良い」品質を有する画像を含まなければならないという基準を示す場合、コンテンツ配信システム107は、そのような基準が満たされるかどうかを判定するために画像206~214を評価してもよい。そのような基準が満たされない場合、コンテンツ配信システム107は、(a)画像206~210のうちの「横長の」画像の品質が改善される可能性がある、または(b)そのような画像が「非常に良い」画像品質を有する別の「横長の」画像によって置き換えられる推薦を行ってもよい。グラフィカルユーザインターフェース200は、図2Bのグラフィカルユーザインターフェース上で個々の画像に対する修正を行うためにそのような推薦に対応するボタン204をクリックするオプションをコンテンツプロバイダ108に提供する。
図2Bは、画像206の品質およびしたがって組202の集合的品質203を改善するために、図2Aに関連して上で検討されたコンテンツアセット104の組202内の個々の画像206またはその他のアセットに対してコンテンツプロバイダ108が修正を行うことを可能にするグラフィカルユーザインターフェース232を示す。グラフィカルユーザインターフェース232は、上述のように、画像の品質を「非常に良い」、「普通」、または「低い」として示す。示された例において、画像206の品質は、図2Aに関連して上で説明されたように、機械学習モデルをデプロイすることによって「普通」と決定される。グラフィカルユーザインターフェース232は、画像206をフォーマットするためのオプション236をコンテンツプロバイダ108に提供することができる。フォーマットするオプション236は、画像206の品質を改善するためにコンテンツ配信システム107によって推薦されたように画像206を自動的に修正するためのオプションを含み得る。一部の実装において、フォーマットするオプション236は、コンテンツプロバイダ108が画像206に対する変更を手動で行うことを可能にすることができる。
グラフィカルユーザインターフェース232は、コンテンツプロバイダ108が画像206に対する修正を承認することを可能にするオプション238、コンテンツプロバイダ108が画像206に対する修正を拒否することを可能にする別のオプション240、およびコンテンツプロバイダ108がデジタルコンポーネント108から画像を除去することを可能にする別のオプション242をさらに含む。コンテンツプロバイダ108は、画像があまり改善され得ない非常に低い品質を有する場合、デジタルコンポーネント108から画像を削除したい場合がある。
画像206が修正されるかまたは改善されるとき、コンテンツ配信システム107は、修正されたまたは改善された画像206に対応するように品質のインジケーション234を繰り返し更新する(つまり、画像206が修正されるたびに品質の査定を更新するために訓練された機械学習モデルをデプロイする)ことができる。(画像206に関する更新された品質を含む)画像206~214の各々の品質が、組202に関する総合的品質203を生成するために使用され得る。
図3は、コンテンツプロバイダ108に対する--それぞれの個々のコンテンツアセット104の、コンテンツアセットの組202の、および/またはデジタルコンポーネント106の--品質の表示を容易にするコンテンツ配信システム107によって実施されるプロセスを示す。コンテンツ配信システム107は、302において、組202内に存在する--画像を含む--コンテンツアセット104(すなわち、1つまたは複数のクライアントデバイス114に配信され得る異なるデジタルコンポーネント106を生成するために組み合わされることが可能であるコンテンツアセット)を特定することができる。コンテンツアセット104の特定は、コンテンツサーバ110および/またはコンテンツアセットデータベース116から特定のコンテンツアセット104を取り出すことを含み得る。コンテンツアセット104の品質が前に決定された場合、そのような品質は、次に、コンテンツアセットデータベース116内のコンテンツアセット104と連動させられる。そのような連動は、必要とされるときにコンテンツアセットデータベース116からコンテンツアセット104に関する品質を簡単に取り出すことを可能にし、これは、コンテンツアセット104の品質を再計算する必要性をなくすことができる。
コンテンツ配信システム107は、304において、視覚的品質を示すとみなされる視覚的性質(たとえば、ぼやけ、いかがわしさ、向きなど)を評価するように訓練された1つまたは複数の機械学習モデルを使用して組み202を形成する各画像(たとえば、組202内の画像206~214の各々)の品質を評価することができる。たとえば、コンテンツ配信システム107は、それらの1つまたは複数の機械学習モデルを訓練し、デプロイすることができる。一部の実装において、コンテンツ配信システム107は、ぼやけモデル、いかがわしい内容モデル、向きモデル、および/または何らかの画像品質の特徴を検出するように訓練される任意のその他の機械学習モデルを別々に訓練することができる。コンテンツ配信システム107は、一部の実装において、機械学習モデルを生成し、訓練することができる。その他の実装において、コンテンツ配信システム107は、1つまたは複数の他のサーバから機械学習モデルを取得することができ、それから、たとえば、コンテンツプロバイダ108および様々なクライアントデバイス114のアーキテクチャの詳細に合うようにそれらのモデルをさらに訓練することができる。コンテンツ配信システム107は、それぞれの品質スコアを生成するために訓練されたモデルをデプロイすることができる。たとえば、ぼやけモデルは、画像内のぼやけを定量化するぼやけスコアを生成することができ、いかがわしい内容モデルは、画像内の内容のいかがわしさを定量化するいかがわしい内容スコアを生成することができ、第3のモデルは、典型的なデジタルコンポーネント106(たとえば、幅および高さの予め設定されたサイズを有するデジタルコンポーネント)の標準的な幅および高さとの画像の幅および高さの適合性を定量化する向きスコアを生成することができ、以下同様である。
コンテンツ配信システム107は、各画像の視覚的品質を示す、1つまたは複数の機械学習モデルの出力に基づく画像の品質を決定することができる。一部の実装において、コンテンツ配信システム107は、それぞれの機械学習モデルによって生成された各スコアに重みを割り振って、重み付けされたスコアを生成することができる。たとえば、コンテンツ配信システム107は、ぼやけスコアに第1の重みを割り振り、いかがわしい内容スコアに第2の重みを割り振り、向きスコアに第3の重みを割り振ることができる。コンテンツ配信システム107は、次に重み付けされたスコアを組み合わせて画像に関する組み合わされたスコアを生成することができる。コンテンツ配信システム107は、画像の品質の推測結果を生成するために、組み合わされたスコアを1つまたは複数の閾値と比較することができる。たとえば、スコアが下の閾値未満である場合、コンテンツ配信システム107は、画像が「低い」品質を有するという推測結果を生成し、スコアが(下の閾値と上の閾値との両方が範囲に含まれるようにして)下の閾値と上の閾値との間にある場合、コンテンツ配信システム107は、画像が「普通」の品質を有するという推測結果を生成し、スコアが上の閾値よりも大きい場合、コンテンツ配信システム107は、画像が「非常に良い」品質を有するという推測結果を生成する。そのような推測結果は、本明細書において品質のインジケーション120とも呼ばれる。
コンテンツ配信システム107は、306において、組202を形成するコンテンツアセット104(たとえば、画像206~214)の総合的品質203を決定することができる。組202の総合的品質203は、一部の例において、4つの「非常に良い」画像および3つの「普通」の画像の組合せとして示され得る。場合によっては、組202の総合的品質203は、デジタルコンポーネント106を形成するすべての画像206~214の組み合わされたスコアの総和として計算され得る。場合によっては、デジタルコンポーネント106の総合的品質203は、(すべての画像206~214の可能な合計スコアが10である図2Aに示されたように)すべての画像206~214の組み合わされたスコアの、すべての画像206~214に関する可能な合計スコアに対する比として計算され得る。
コンテンツ配信システム107は、308において、組202の総合的品質203の視覚的なインジケーションを提示するようにコンテンツプロバイダ108のグラフィカルユーザインターフェース200を更新することができる。グラフィカルユーザインターフェース203の更新は、組202を形成する画像の総合的品質203の視覚的なインジケーションをコンテンツプロバイダ108に送信することを含み得る。
一部の実装において、コンテンツ配信システム107は、コンテンツアセット104の品質と、ひいては、そのコンテンツアセット104を含む組202の品質とを高めるためにそのようなコンテンツアセット104に対する修正の推薦を生成することもできる。一部の例においては、コンテンツアセット104の品質が、品質が「普通」であることを示すとき、コンテンツ配信システム107は、品質が「非常に良い」に高まり得るように推薦を生成することができ、コンテンツアセット104の品質が「低い」と決定されるとき、コンテンツ配信システム107は、品質が「普通」に高まり得るように推薦の第1の組を生成し、および/または品質が「非常に良い」に高まり得るように推薦の第2の組を生成することができる。品質を高めるための一部の推薦は、画像の様々な特徴--たとえば、明度、コントラスト、色、色の強さ、色相、彩度、サイズ、雑音、シャープネス、輝度、望ましくない要素、いかがわしい要素、任意のその他の特徴、および/またはそれらの任意の組合せ--の変更を提案することであることが可能である。いくつかのさらなる実装において、コンテンツ配信システム107は、提案された変更によって画像を自動的に改善することができる。コンテンツ配信システム107は、画像に対して行われる自動的改善を承認または拒否するためにコンテンツプロバイダ108が選択することができるオプションを表示するためにコンテンツプロバイダ108のグラフィカルユーザインターフェースを更新してもよい。
図4は、コンテンツ配信システム107によって訓練され、デプロイされる機械学習モデルの例を示す。示される機械学習モデルは、ニューラルネットワークモデル402である。ニューラルネットワークモデル402は、単に、ニューラルネットワーク、人工ニューラルネットワーク、または人工ニューラルネットワークモデルとも呼ばれ得る。ニューラルネットワークモデルが説明されたが、その他の実装において、機械学習モデルは、最近傍モデル、ナイーブベイズモデル、決定木モデル、回帰モデル、サポートベクターマシン(SVM)、任意のその他の機械学習モデル、および/または(任意のそのようなモデルをニューラルネットワークモデルと組み合わせて含み得る)それらの任意の組合せなどの任意のその他の機械学習モデルであることが可能である。ニューラルネットワークモデル402の種類は、示されるように、順伝播型ニューラルネットワークであることが可能である。その他の実装において、ニューラルネットワークモデル402は、放射基底関数ニューラルネットワーク、多層パーセプトロン、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、モジュール型ニューラルネットワーク(modular neural network)、2つの再帰型ニューラルネットワークからなるシーケンスツーシーケンス(sequence to sequence)モデル、および/または任意のその他の種類のニューラルネットワークなどの任意のその他の種類であることが可能である。
ニューラルネットワークモデル402は、入力層404、1つまたは複数の内部層(隠れ層とも呼ばれる)406、および出力層408を含む複数の層を持ち得る。層404、406、および408の各々は、ニューロンまたは人工ニューロンとも呼ばれ得る1つまたは複数のノードを持ち得る。たとえば、示された実装において、層404は、3つのノードを有し、層406の各々は、4つのノードを有し、層408は、単一のノードを有する。(ニューロンとも呼ばれる)各ノードは、計算ユニットである。一部の実装において、隠れ層の数およびそれぞれの対応する層内のノードの数は、モデルが訓練される画像の量/数に基づいて変更され得る。たとえば、画像の量/数が非常に多い(たとえば、1000、5000、10000、100000、または実装に固有の任意のその他の閾値などの閾値よりも多い)とき、より多い数のノードおよび/またはより多い数の層が、訓練プロセス、およびデプロイプロセス中の推測を促進するために使用されてもよい。一部の実装において、ノードおよび/または層の数は、ニューラルネットワーク402内のノードおよび/または層の理想的な数を実験的に決定するために訓練フェーズが進むにつれて変更されてもよい。
入力層404は、コンテンツアセット(たとえば、画像)を入力として受け取るように構成される。そのモデル402に関する訓練フェーズにおいて(つまり、そのモデル402が訓練されている時間の継続中に)、入力層404は、モデル402が訓練される画像を受け取る。デプロイフェーズにおいて(つまり、訓練されたモデル402が推測結果を生成するために使用されている時間の継続中に)、入力層404は、品質が推測されるべき新しい画像(たとえば、画像204)を受け取る。入力層404の各ノード(ニューロンとも呼ばれる)は、何らかの構成可能な方法で画像からのデータを組み合わせ、出力の接続を有する計算ユニットである。
内部層406は、ニューラルネットワークモデル402を実装するシステムの入力および出力から直接観測可能でないので隠れ層とも呼ばれる。各隠れ層406の各ノード(ニューロンとも呼ばれる)は、1つまたは複数の重み付けされた入力の接続、何らかの構成可能な方法で入力を組み合わせる伝達関数、および出力の接続を有する計算ユニットである。
出力層408は、入力される画像(たとえば、画像206~214のいずれか)に関するスコアを出力する。たとえば、ぼやけモデルの出力層408は、ぼやけスコアを出力することができ、いかがわしい内容モデルの出力層408は、いかがわしい内容スコアを出力することができ、向きモデルの出力層408は、向きスコアを出力することができ、以下同様である。訓練フェーズにおいて、各モデル402は、画像の異なる(またはその他の実装においては同じ)組に関して訓練されることが可能である。しかし、デプロイフェーズにおいて、各モデルは、品質の推測が行われるべき同じ新しい画像(たとえば、画像206~214のいずれか)を受け取る。示された例の出力層408は、1つまたは複数の重み付けされた入力の接続と、何らかの構成可能な方法で入力を組み合わせてスコア(たとえば、モデルがぼやけモデルである場合のぼやけスコア、モデルがいかがわしい内容モデルである場合のいかがわしい内容スコア、モデルが向きモデルである場合の向きスコアなど)を生成する伝達関数とを有する単一のノードを有する。
一部の実装においては、ハードウェアアクセラレータが、機械学習モデルをデプロイするために使用され得る。そのようなハードウェアアクセラレータは、いくつかの計算ユニット(コンピュートタイルとも呼ばれ得る)を含むことが可能であり、それらの計算ユニットに--デジタルコンポーネント内の1つまたは複数のコンテンツアセットの品質を示すスコアを計算するためにデプロイされる--機械学習モデル(たとえば、ニューラルネットワーク)の計算が分散され得る。コンピュートタイルへの計算のそのような分散は、ニューラルネットワークが中央演算処理装置によって処理されていたとしたら必要とされたであろう命令の数に比べて少ない数の命令を使用することによってニューラルネットワークを処理することを可能にする。命令の数のそのような削減は、複数のクラスに関する確率が計算される速度を上げ、それによって、デジタルコンポーネント内の1つまたは複数のコンテンツアセットの品質を示すスコアを決定するプロセスにおけるレイテンシを減らす。
図5は、新しい画像(たとえば、画像206~214のいずれか)の品質を決定するための複数の機械学習モデル402-1、402-2、...および402-nの同時デプロイを示す。ここで、nは、任意の決まった整数値であることが可能である。各モデル402-i(iは1からnまでの範囲の任意の整数値である)は、新しい画像(たとえば、画像206~214のいずれか)を入力として受け取り、モデル402-iが決定するように訓練される視覚的特徴を定量化するスコアSiを出力することができる。たとえば、モデル402-1は、画像204を入力として受け取り、ぼやけスコアS1を出力することができるぼやけモデルであることが可能であり、モデル402-2は、画像204を入力として受け取り、いかがわしい内容スコアS2を出力することができるいかがわしい内容モデルであることが可能であり、...モデル402-nは、画像204を入力として受け取り、向きスコアSnを出力することができる向きモデルであることが可能である。ここでの検討は特定の機械学習モデルに焦点を当てるが、一部の実装においては、デジタルコンポーネント106内の大きなボタン、デジタルコンポーネント106内のトリックトゥクリックの問題、デジタルコンポーネント106内の画像の扇情性、デジタルコンポーネント106の画像の下手なクロッピング、デジタルコンポーネント106内の不適切なテキストの重なり合い、デジタルコンポーネント106内のロゴの位置などを検出し、それに応じてデジタルコンポーネントを分類するために、さらなるモデル(図示せず)が、追加的にまたは代替的に訓練され、デプロイされ得る。
モデル402-iの各々(iは1からnまでの範囲の任意の整数値である)は、対応する推測を行うために各モデルを適合させるために異なるモデル402-iの間で隠れ層406が追加または修正され得るので、異なる隠れ層406(たとえば、異なる数の隠れ層406および/または各隠れ層406内の異なる数のノード)を有することが可能である。
コンテンツ配信システム107は、各モデル402-iのスコアSiに重みWi(iは1からnまでの範囲の任意の決まった整数)を割り振り、すべてのモデルに関する重み付けされたスコアWiSiを足して合計スコア504(組み合わされたスコアとも呼ばれ得る)を生成することができる計算ユニット(たとえば、1つまたは複数のプロセッサ)502を含み得る。
合計スコア504は、入力画像(たとえば、画像206~218のいずれか)の品質を示し得る。コンテンツ配信システム107は、入力画像(たとえば、画像206~218のいずれか)の品質の推測結果を生成するために、合計スコア504を1つまたは複数の閾値と比較することができる。一部の例において、推測結果は、「非常に良い」品質、「普通」の品質、または「低い」品質であることが可能である。品質のインジケーション120は「非常に良い」品質、「普通」の品質、または「低い」品質であるものとして説明されているが、その他の例においては、任意のその他のカテゴリ名(つまり、それぞれ、すばらしい、まあまあ、または悪いなどの、非常に良い、普通、または低い以外のカテゴリ名)が、使用され得る。さらに、品質の3つのカテゴリが説明されているが、一部の実装において、カテゴリの数は、2つ以上の任意のその他の数であってもよい。
コンテンツ配信システム107は、組202を形成するコンテンツアセット104(たとえば、画像206~214)の総合的品質203を決定することができる。組202の総合的品質203は、一部の例において、4つの「非常に良い」画像および3つの「普通」の画像の組合せとして示され得る。場合によっては、組202の総合的品質203は、組202を形成するすべての画像206~214の組み合わされたスコアの総和として計算され得る。場合によっては、デジタルコンポーネント106の総合的品質203は、(すべての画像206~218の可能な合計スコアが10である図2Aに示されたように)すべての画像206~214の組み合わされたスコアの、すべての画像206~214に関する可能な合計スコアに対する比として計算され得る。
コンテンツ配信システム107は、デジタルコンポーネント106を形成するコンテンツアセット104の総合的品質203の視覚的なインジケーション120を提示するようにコンテンツプロバイダ108のグラフィカルユーザインターフェースを更新することができる。グラフィカルユーザインターフェースの更新は、組202を形成する画像の総合的品質203の視覚的なインジケーションをコンテンツプロバイダ108に送信することを含み得る。
特定のニューラルネットワークモデルがここで説明されているが、その他の実装においては、レイテンシおよび処理能力を損なわない任意のその他のニューラルネットワークモデルまたは任意の好適な機械学習モデルが、使用され得る。たとえば、任意のニューラルネットワークモデル402-i(iは1からnまでの範囲の任意の決まった整数である)は、(示されるように)順伝播型ニューラルネットワーク、または放射基底関数ニューラルネットワーク、多層パーセプトロン、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、モジュール型ニューラルネットワーク、2つの再帰型ニューラルネットワークからなるシーケンスツーシーケンスモデル、および/もしくは任意のその他の種類のニューラルネットワークなどの任意のその他のニューラルネットワークであることが可能である。
図6は、機械学習モデル402-i(iは1からnまでの範囲の任意の決まった整数である)を訓練し、デプロイするためにコンテンツ配信システム107によって実施されるプロセスを示す。コンテンツ配信システム107は、602において、コンテンツサーバ110および/またはコンテンツアセットデータベース116から取得された複数の画像に対して複数の機械学習モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、および向きモデル)を訓練することができる。そのような訓練中に、それらの画像の各々は、画像の品質の特徴(たとえば、ぼやけ、いかがわしい内容の量、デジタルコンポーネント106との向きの適合性)を示すスコア(たとえば、ぼやけスコア、いかがわしい内容スコア、向きスコア)を割り振られる。各機械学習モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、または向きモデル)は、それぞれの品質の特徴(たとえば、それぞれ、ぼやけ、いかがわしい内容の量、デジタルコンポーネント106との向きの適合性)に関して画像を採点するように訓練される。
コンテンツ配信システム107は、604において、コンテンツプロバイダ108によってアップロードされたコンテンツアセット104の組202に含まれる新しい画像(たとえば、画像206~214のいずれか)の品質を評価する要求をコンテンツプロバイダ108から受信することができる。そのような要求に応じて、コンテンツ配信システム107は、606において、それぞれの品質の特徴に関するスコアS1、S2、...、Sn(たとえば、ぼやけに関するスコアS1、いかがわしい内容の量に関するスコアS2、...および向きの適合性に関するスコアSn)を生成するために新しい画像に対して機械学習モデル(たとえば、ぼやけモデル、いかがわしい内容モデル、および向きモデル)をデプロイすることができる。
コンテンツ配信システム107は、各モデル402-i(たとえば、ぼやけモデル、いかがわしい内容モデル、および向きモデルの各々)のスコアSiに重みWi(iは1からnまでの範囲の任意の決まった整数である)を割り振ることができる計算ユニット(たとえば、1つまたは複数のプロセッサ)502を含み得る。コンテンツ配信システム107は、608において、各モデルに関する重み付けされたスコアWiSiを組み合わせて画像(たとえば、画像206~214のいずれか)に関する組み合わされたスコア504を生成することができる。合計スコア504は、入力画像(たとえば、画像206~214のいずれか)の品質を示し得る。
コンテンツ配信システム107は、610において、入力画像(たとえば、画像206~214のいずれか)の品質の推測結果を生成するために、合計スコア504を1つまたは複数の閾値と比較することができる。推測結果は、品質のインジケーションとも呼ばれる。一部の例において、推測結果(つまり、品質のインジケーション)は、「非常に良い」品質、「普通」の品質、または「低い」品質であることが可能である。品質のインジケーションは「非常に良い」品質、「普通」の品質、または「低い」品質であるものとして説明されているが、その他の例においては、任意のその他のカテゴリ名(つまり、それぞれ、すばらしい、まあまあ、または悪いなどの、非常に良い、普通、または低い以外のカテゴリ名)が、使用され得る。さらに、品質の3つのカテゴリが説明されているが、一部の実装において、カテゴリの数は、2つ以上の任意のその他の数であってもよい。
コンテンツ配信システム107は、612において、デジタルコンポーネント106を形成するコンテンツアセット104(たとえば、画像206~214のすべて)の総合的品質203を決定することができる。デジタルコンポーネント106の総合的品質203は、一部の例において、4つの「非常に良い」画像および3つの「普通」の画像の組合せとして示され得る。場合によっては、デジタルコンポーネント106の総合的品質203は、デジタルコンポーネント106を形成するすべての画像206~214の組み合わされたスコアの総和として計算され得る。場合によっては、デジタルコンポーネント106の総合的品質203は、(すべての画像206~214の可能な合計スコアが10である図2Aに示されたように)すべての画像206~214の組み合わされたスコアの、すべての画像206~214に関する可能な合計スコアに対する比として計算され得る。
コンテンツ配信システム107は、組202の総合的品質203を示すデータをコンテンツプロバイダ108に送信することができる。そのような送信は、新しい1つまたは複数の画像の組202の品質の推測結果(すなわち、インジケーション203)を表示するためにコンテンツプロバイダ108のグラフィカルユーザインターフェースを更新することができる。
図7は、上述の動作を実行するために使用され得る例示的なコンピュータシステム700のブロック図である。システム700は、プロセッサ710、メモリ720、ストレージデバイス730、および入力/出力デバイス740を含む。コンポーネント710、720、730、および740の各々は、たとえば、システムバス750を用いて相互接続され得る。プロセッサ710は、システム700内で実行するための命令を処理することができる。1つの実装において、プロセッサ710は、シングルスレッドプロセッサである。別の実装において、プロセッサ710は、マルチスレッドプロセッサである。プロセッサ710は、メモリ720またはストレージデバイス730に記憶された命令を処理することができる。
メモリ720は、システム700内でデータを記憶する。1つの実装において、メモリ720は、コンピュータ可読媒体である。1つの実装において、メモリ720は、揮発性メモリユニットである。別の実装において、メモリ720は、不揮発性メモリユニットである。
ストレージデバイス730は、システム700に大容量ストレージを提供することができる。1つの実装において、ストレージデバイス730は、コンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス730は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有されるストレージデバイス(たとえば、クラウドストレージデバイス)、または何らかのその他の大容量ストレージデバイスを含み得る。
入力/出力デバイス740は、システム700に入力/出力操作を与える。1つの実装において、入力/出力デバイス740は、ネットワークインターフェースデバイス、たとえばイーサネットカード、シリアル通信デバイス、たとえばRS-232ポート、および/または無線インターフェースデバイス、たとえば802.11カードのうちの1つまたは複数を含み得る。別の実装において、入力/出力デバイスは、入力データを受信し、その他の入力/出力デバイス、たとえば、キーボード、プリンター、およびディスプレイデバイス760に出力データを送信するように構成されたドライバデバイスを含み得る。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどのその他の実装も、使用され得る。
例示的な処理システムが図7に示されたが、本明細書に記載の主題の実装および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
本明細書に記載の主題の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号--たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号--上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることが可能である。
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはこれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶されることが可能である。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対してデータを表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、オンラインのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され得る。
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の適切な部分的組合せで実装されることも可能である。さらに、特徴は、ある組合せで働くように上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によってはその組合せから削除される可能性があり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるかまたは複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
このように、主題の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。