(57)【要約】一実施形態では、方法は、第１のコンテンツアイテムを受信するステップを含む。第１のコンテンツアイテムの第１の埋め込みが決定され、第１の埋め込みは埋め込み空間の第１のポイントに対応する。埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含む。埋め込みは、ディープラーニングモデルを使用して決定される。ポイントは埋め込み空間内の１つまたは複数のクラスタ内に配置され、各クラスタはコンテンツアイテムのクラスに関連付けられている。クラスタ内のポイントの位置は、個々の対応するコンテンツアイテムの１つまたは複数の属性に基づく。第１のコンテンツアイテムに類似する第２のコンテンツアイテムは、第１のポイントおよび第２のポイントの位置、および特定された第２のコンテンツアイテムに対応する第２のポイントが配置された特定のクラスタに基づいて識別されてもよい。
2019503528.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
１つまたは複数のコンピューティングデバイスが第１のコンテンツアイテムを受信するステップと、
前記１つまたは複数のコンピューティングデバイスが前記第１のコンテンツアイテムの第１の埋め込みを決定するステップであって、ここで、
前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置される、前記決定するステップと、
前記１つまたは複数のコンピューティングデバイスが、前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するステップと
を含む方法。
【請求項２】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を用いて訓練される、請求項１に記載の方法。
【請求項３】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数である、請求項１に記載の方法。
【請求項４】
前記ディープラーニングモデルは、ニューラルネットワークである、請求項１に記載の方法。
【請求項５】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項６】
前記第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリである、請求項１に記載の方法。
【請求項７】
１つまたは複数の識別された第２のコンテンツアイテムをユーザに表示するために前記クライアントシステムに送信するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のコンテンツアイテムのコンテンツのタイプは、テキストコンテンツ、画像コンテンツ、オーディオコンテンツ、およびビデオコンテンツの１つまたは複数を含む、請求項１に記載の方法。
【請求項９】
前記第１のコンテンツアイテムのコンテンツのタイプを決定するステップをさらに含み、前記１つまたは複数の第２のコンテンツアイテムを識別するステップが、前記第１のコンテンツアイテムのコンテンツのタイプにさらに基づく、請求項８に記載の方法。
【請求項１０】
ソフトウェアを具体化する１つまたは複数のコンピュータ可読の非一時的記憶媒体であって、前記ソフトウェアは、実行時に、
第１のコンテンツアイテムを受信し、
前記第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置され、
前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である、１つまたは複数のコンピュータ可読の非一時的記憶媒体。
【請求項１１】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練される、請求項１０に記載の媒体。
【請求項１２】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数である、請求項１０に記載の媒体。
【請求項１３】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含む、請求項１０に記載の媒体。
【請求項１４】
前記第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリである、請求項１０に記載の媒体。
【請求項１５】
１つまたは複数のプロセッサと、前記プロセッサに結合され、前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、前記プロセッサは、前記命令の実行時に、
第１のコンテンツアイテムを受信し、
前記第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置され、
前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である、システム。
【請求項１６】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練される、請求項１５に記載のシステム。
【請求項１７】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数である、請求項１５に記載のシステム。
【請求項１８】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含む、請求項１５に記載のシステム。
【請求項１９】
前記第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリである、請求項１５に記載のシステム。
【請求項２０】
コンピュータが実行する方法であって、
１つまたは複数のコンピューティングデバイスが第１のコンテンツアイテムを受信するステップと、
前記１つまたは複数のコンピューティングデバイスが前記第１のコンテンツアイテムの第１の埋め込みを決定するステップであって、ここで、
前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置される、前記決定するステップと、
前記１つまたは複数のコンピューティングデバイスが、前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するステップと
を含む方法。
【請求項２１】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を用いて訓練される、請求項２０に記載の方法。
【請求項２２】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数であり、かつ／または前記ディープラーニングモデルはニューラルネットワークである、請求項２０または２１に記載の方法。
【請求項２３】
識別された１つまたは複数の第２のコンテンツアイテムに基づいて、検索結果を生成し、クエリを行うユーザに関連付けられた表示装置に表示するために前記検索結果を提供するステップを含み、かつ／または識別された１つまたは複数の第２のコンテンツアイテムに関連するクラスタに従って第１のコンテンツアイテムを格納するステップをさらに含み、かつ／または識別された１つまたは複数の第２のコンテンツアイテムをユーザに関連するクライアントデバイス上にキャッシングまたは事前キャッシュするステップを含み、かつ／または識別された類似の第２のコンテンツアイテムに基づいて、特に識別された１つまたは複数の第２のコンテンツアイテムから選択されたコンテンツアイテムを再クラスタリングするステップをさらに含む、請求項２０乃至２２のいずれか一項に記載の方法。
【請求項２４】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含む、請求項２０乃至２３のいずれか一項に記載の方法。
【請求項２５】
前記第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリであり、好ましくは、１つまたは複数の識別された第２のコンテンツアイテムをユーザに表示するためにクライアントシステムに送信するステップをさらに含む、請求項２０乃至２４のいずれか一項に記載の方法。
【請求項２６】
前記第１のコンテンツアイテムのコンテンツのタイプは、テキストコンテンツ、画像コンテンツ、オーディオコンテンツ、およびビデオコンテンツのうちの１つまたは複数を含み、前記第１のコンテンツアイテムのコンテンツのタイプを決定するステップをさらに含み、前記１つまたは複数の第２のコンテンツアイテムを識別するステップが、前記第１のコンテンツアイテムのコンテンツのタイプにさらに基づく、請求項２０乃至２５のいずれか一項に記載の方法。
【請求項２７】
ソフトウェアを具体化する１つまたは複数のコンピュータ可読の非一時的記憶媒体であって、前記ソフトウェアは、実行時に、
第１のコンテンツアイテムを受信し、
前記第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置され、
前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である、１つまたは複数のコンピュータ可読の非一時的記憶媒体。
【請求項２８】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを減少させる損失関数を用いて訓練される、請求項２７に記載の媒体。
【請求項２９】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数である、請求項２７または２８に記載の媒体。
【請求項３０】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含み、かつ／または第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリである、請求項２７乃至２９のいずれか１項に記載の媒体。
【請求項３１】
１つまたは複数のプロセッサと、前記プロセッサに結合され、前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、前記プロセッサは、前記命令の実行時に、
第１のコンテンツアイテムを受信し、
前記第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、前記第１の埋め込みは埋め込み空間の第１のポイントに対応し、
前記埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
前記第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
前記第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
前記クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
前記第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、前記第１および第２のポイントがクラスタ内にさらに配置され、
前記第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
前記第１のポイントの位置、
前記１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
前記特定のクラスタ内の前記１つまたは複数の第２のコンテンツアイテムに対応する前記１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である、システム。
【請求項３２】
前記ディープラーニングモデルは、前記１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練される、請求項３１に記載のシステム。
【請求項３３】
前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、前記ディープラーニングモデルの潜在入力変数である、請求項３１または３２に記載のシステム。
【請求項３４】
前記第１のコンテンツアイテムおよび前記第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、前記第１および第２のコンテンツアイテムの前記１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含み、かつ／または第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリである、請求項３１乃至３３のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にディープラーニングモデルを訓練することに関する。
【背景技術】
【０００２】
ディープラーニングは、教師ありの設定または教師無しの設定でモデルを訓練することを含む機械学習の一種である。ディープラーニングモデルは、データの表現を学習するために訓練され得る。限定ではなく一例として、ディープラーニングモデルは、強度値のベクトルとしてデータを表現し得る。ディープラーニングモデルは、データの分類に使用され得る。分類は、ディープラーニングモデルを訓練することによって、データポイントが属する一組のカテゴリのうちのどれかを決定することを含む。
【発明の概要】
【０００３】
特定の実施形態では、システムは、ディープラーニングモデルを使用して、入力されたコンテンツアイテムに類似する１つまたは複数のコンテンツアイテムを識別する。ディープラーニングモデルは、コンテンツアイテムを多次元埋め込み空間（ｍｕｌｔｉ−ｄｉｍｅｎｓｉｏｎａｌ  ｅｍｂｅｄｄｉｎｇ  ｓｐａｃｅ）内の埋め込み（ｅｍｂｅｄｄｉｎｇｓ）にマッピングするように訓練されてもよい。各埋め込みは、埋め込み空間内のポイントの座標に対応する。ディープラーニングモデルは、同じクラスに属するコンテンツアイテムが埋め込み空間内のポイントの同じクラスタ内に配置されるようにコンテンツアイテムの埋め込みを生成すべく訓練される。さらに、ディープラーニングモデルは、コンテンツアイテムの１つまたは複数の属性に基づいてクラスタ内の特定の位置にコンテンツアイテムを配置するコンテンツアイテムの埋め込みを生成するように訓練され得る。
【０００４】
コンテンツアイテムの埋め込みを使用して、任意の数の適切なタスクが達成され得る。限定ではなく一例として、システムは、埋め込み空間において検索クエリに近接するコンテンツアイテムの１つまたは複数の埋め込みを識別する検索アルゴリズムを使用することができる。システムは、識別された埋め込みのコンテンツアイテムが検索クエリに類似していると判断する。特定の実施形態では、コンテンツアイテムは、クライアントシステムにおいてユーザによって入力された受信された検索クエリに応答して識別され得る。識別されたコンテンツアイテムは、クライアントシステム上で動作するアプリケーション（例えば、メッセージングプラットフォーム、ソーシャルネットワーキングシステムに関連するアプリケーション、または他の任意の適切なアプリケーション）のインタフェース上に提案としてユーザに対して表示され得る。
【０００５】
特定の実施形態では、（例えば、第１のコンテンツアイテムを含む検索クエリに応答して）第２のコンテンツアイテムが識別され、第２のコンテンツアイテムは第１のコンテンツアイテムに近接する埋め込みを埋め込み空間内に有し得る（例えば、識別された第２のコンテンツアイテムが第１のコンテンツアイテムに関連および／または類似するエンティティまたはデータオブジェクトであり得る）。識別された第２のコンテンツアイテムは、キャッシュされるか、または事前キャッシュされ得る。限定ではなく一例として、第１のコンテンツアイテムに近い識別された第２のコンテンツアイテムは、１人または複数人のユーザまたは１つまたは複数のクライアントシステムのために個別にキャッシュされるか、または事前キャッシュされ得る。キャッシングまたは事前キャッシングは、限定ではなく一例として、１人または複数人の特定のユーザのために、または各ユーザのために、サーバ側またはクライアント側で実施または実行されてもよい。キャッシングまたは事前キャッシングは、コンテンツアイテムのアクセスを高速化することができる。限定ではなく一例として、個々のユーザがコンテンツアイテムを要求した場合、またはサーバが推薦（識別された第２のコンテンツアイテム）をユーザ（例えば、ユーザのクライアントシステム）にプッシュした場合、コンテンツアイテム（例えば、第１のコンテンツアイテムに関連するか、または類似する識別された第２のコンテンツアイテム）が素早くアクセスされ得る。提案された方法を使用することにより、限定ではなく一例として、ユーザまたはクライアントシステムからの検索クエリとして取得または受信された第１のコンテンツに関連するコンテンツアイテム（例えば、コンピューティングシステム、限定ではなく一例として、ソーシャルネットワーキングシステムの１つまたは複数のデータベース内に格納されたデータオブジェクト）を識別することが可能である。識別された第２のコンテンツアイテムは、それぞれアクセスされる確率に関連付けられ得る。特定の実施形態では、第２のコンテンツアイテムは、特定の最小確率を超えてアクセスされる確率に基づいて選択され得る。そのようなコンテンツアイテムまたはオブジェクトのキャッシングまたは事前キャッシングは、無駄なキャッシングを回避すること、および／またはデータトラフィックを削減すること、および／または個々のコンテンツアイテムまたはデータオブジェクトにアクセスするための速度またはアクセス時間を改善することにおいて効果的であり得る。すべての可能なコンテンツアイテム（例えば、数十億のコンテンツアイテム）の中で、一部のコンテンツアイテムのみが、各検索において関連性があると見なされ得る。提案された方法を使用することによって、一部の関連するコンテンツアイテムは、クライアントシステムに送信されるか、またはクライアントシステムによってキャッシュまたは事前キャッシュされる。限定ではなく一例として、第１のコンテンツアイテムに類似している（例えば埋め込み空間内の第１のコンテンツアイテムに近接している）と判定された第２のコンテンツアイテム、第１のコンテンツアイテムを含む関連のコンテンツアイテムは、埋め込み空間内で検索（例えば、距離検索）を実行することよって得られ、かつ／または識別され得る。特定の実施形態では、エンティティのクラスタリングは、使用される個々のデータベースに基づくものとすることができる。換言すれば、クラスタリングはデータベース特有のものであってもよい。関連するエンティティのクラスタリングは、限定ではなく一例として提案された方法に基づいてソーシャルネットワーキングシステムの１人または複数人のユーザに対して、実行され得る。
【０００６】
特定の実施形態では、コンテンツアイテム、コンテンツアイテムに関連付けられた情報、またはその両方は、限定ではなく一例として、１つまたは複数のデータベースまたはデータストアにデータオブジェクトとして格納され得る。これらのデータベースまたはデータストアは、限定ではなく一例として、（例えば、異なる場所、都市、国および／または大陸において）地理的に分散している１つまたは複数のデータセンター内に存在し得る。特定の実施形態では、埋め込み空間を使用して、１人または複数人の特定のユーザ、各ユーザ、ソーシャルネットワーキングシステムの１人または複数人のユーザ、またはそれらの任意の組み合わせに関する１つまたは複数のコンテンツアイテムの関連性の予測を行うことができ、ユーザはそれぞれ、個々の地理的な場所に位置することができる。関連性があると予測されたコンテンツアイテムおよび対応する情報は、決定された関連性に基づいて、１人または複数のユーザにより近い距離に位置するデータベースに格納され得る。関連性があると判定されたコンテンツアイテムおよび関連する情報は、限定ではなく一例として、１人または複数人のユーザまたは１つまたは複数のクライアントシステムの地理的位置に近い距離にある１つまたは複数のクライアントシステム、１つまたは複数のサーバ、またはそれらの任意の組み合わせにおいて事前キャッシュまたはキャッシュし得る。そのような実施形態は、リモートデータベース間および／またはデータセンター間の負荷および／またはデータトラフィックを低減するのに有効であり得る。これらの実施形態は、（例えば、特定のコンテンツアイテムにアクセスするための）アクセス時間を改善（例えば、低減）することもできる。
【０００７】
特定の実施形態では、さらにコンテンツアイテムはクラスタリングまたは再クラスタリングされ得る。クラスタリングは、より速い検索結果（すなわち、検索時間の短縮、それにより検索エンジンの負荷の低減）および／または対応するデータネットワークにわたるより少ないデータトラフィックをもたらし得る。クラスタは、埋め込み空間内の位置または場所に基づいて、複数のデータストアにわたって格納され得る。この記憶方式は、データアクセス時間および／または検索時間を改善することができる。限定ではなく一例として、埋め込み空間内の個々の位置に基づいて複数のデータストアにわたってコンテンツアイテムのクラスタを格納することにより、関連する結果を検索するために検索エンジンがより少ないデータストアを検索することができる。さらに、埋め込みをクラスタリングすることによって、埋め込み空間から検索された検索結果は、クラスタリングが実行されていない埋め込み空間から検索結果を検索するアプリケーションと比較して、より正確で／特定的であり得る。その理由は、検索結果は、一般的な高レベルの分類のみならず、エンティティの属性に付加的に基づくものであり得るからである。クライアントシステムは、ユーザに対する適切な検索結果を得るために、より多くの洗練された検索を提示し続ける必要はない。これは、クライアントシステムとサーバとの間のインタラクションの数および強度が減少する可能性があることを意味する。さらに、クラスタリングは、異なるクラスタからの検索結果が意図的に検索結果に引き込まれる可能性があるので、より多様な検索結果を提供することができる。埋め込みの決定がサーバによって実行される特定の実施形態が説明されているが、これは限定ではなく一例であり、クライアントシステムは埋め込み空間内のコンテンツアイテムの埋め込みの一部または全部を決定し得る。限定ではなく一例として、コンテンツアイテムはビジュアルコンテンツであってもよく、ビジュアルコンテンツの前処理（例えば、ビジュアルコンテンツの１つまたは複数の属性を決定すること）は、クライアントシステム上で、またはクライアントシステムによって実行され得る。次いで、ユーザに、ビジュアルコンテンツに対応する１つまたは複数の検索語（例えば、各検索語がビジュアルコンテンツの１つまたは複数の属性に基づく）が（例えば、クライアントシステムのインタフェースにおいて）提示され得る。ユーザは、（例えば、クライアントシステムまたは個々のプロンプトを発行しているサーバによって）検索語を確認するよう促される。
【０００８】
本明細書で開示される実施形態は単なる例であり、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてまたは一部を含むか、いずれも含まなくてもよい。本発明による実施形態は、方法、記憶媒体、システム、およびコンピュータプログラム製品に向けられた添付の特許請求の範囲に特に開示されており、１つの請求項のカテゴリ、例えば方法で言及された任意の特徴は、別の請求項のカテゴリ、例えばシステムも同様に請求することができる。添付の特許請求の範囲に記載された従属性または参照は、形式的な理由のためにのみ選択される。しかしながら、先の請求項（特に多数項従属性）を意図的に参照した結果生じる主題も同様に請求することができ、その結果、請求項およびその請求項の特徴の任意の組合せが開示され、かつ添付された特許請求の範囲で選択された従属性にかかわらず請求することができる。特許請求することができる主題は、添付の特許請求の範囲に記載されている特徴の組み合わせだけでなく、特許請求の範囲内の特徴の任意の他の組み合わせをも含み、特許請求の範囲に記載された各特徴は、特許請求の範囲内の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載または図示された実施形態および特徴のうちのいずれかは、別個の請求項および／または本明細書に記載または図示される任意の実施形態または特徴との任意の組み合わせまたは添付の特許請求の範囲の特徴との任意の組み合わせ請求することができる。
【０００９】
本発明による実施形態では、コンピュータが実行する方法は、
１つまたは複数のコンピューティングデバイスが、第１のコンテンツアイテムを受信するステップと、
１つまたは複数のコンピューティングデバイスが、第１のコンテンツアイテムの第１の埋め込みを決定することであって、ここで、
第１の埋め込みは埋め込み空間の第１のポイントに対応し、
埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、第１および第２のポイントがクラスタ内にさらに配置される、決定するステップと、
１つまたは複数のコンピューティングデバイスが、第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
第１のポイントの位置、
１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
特定のクラスタ内の１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントの位置に基づいて識別するステップとを含む。
【００１０】
実施形態におけるディープラーニングモデルは、機械学習モデル、ニューラルネットワーク、潜在ニューラルネットワーク、任意の他の適切なディープラーニングモデル、またはそれらの任意の組み合わせであってもよい。実施形態では、ディープラーニングモデルは、入力が任意の適切な数のコンテンツアイテムであり、出力がコンテンツアイテムの１つまたは複数の埋め込みである複数の抽象層を有し得る。
【００１１】
埋め込み空間は、多次元空間、例えばｄ次元であってもよく、ｄは、容量（例えば、自然数）を制御するハイパーパラメータであり、埋め込み空間は、コンテンツアイテムの埋め込みに対応する複数のポイントを含み得る。本明細書で使用されるように、コンテンツアイテムの埋め込みとは、埋め込み空間内のコンテンツアイテムの表現を指す。
【００１２】
特定の実施形態では、ディープラーニングモデル、例えば、ニューラルネットワークは、コンテンツアイテムを
【００１３】
【数１】
2019503528.tif 000003
のベクトルにマッピングする１つまたは複数のインデックスを含み、
【００１４】
【数２】
2019503528.tif 000004
は一組の実数を表し、ｄは、例えば自然数などの容量を制御するハイパーパラメータである。ベクトルは、ｄ次元の強度ベクトルであってもよい。本明細書で使用されるように、強度値は、−１から１の範囲内の任意の適切な値であり得る。コンテンツアイテムのベクトル表現の各々は、埋め込み空間内の個々のポイントに関する座標を提供し得る。
【００１５】
特定の実施形態では、第２のコンテンツアイテムが関連付けられている（即ち、配置されている）クラスタは、限定ではなく一例として、埋め込み空間内のクラスタの個々の位置に応じて、複数のデータストアにわたって格納され得る。特に、クラスタリングは、（例えば、検索クエリにおいて）第１のコンテンツアイテムを受信した対応する検索エンジンが、限られた数のデータストアに集中し得るという利点を有する。すなわち、検索エンジンは、関連する結果（例えば、第１のコンテンツアイテムに類似する第２のコンテンツアイテム）を検索するために、多くのデータストアを探索する必要がない。これにより、検索エンジンの負荷を軽減することができる。また、これにより、データ転送速度が低下する可能性がある。
【００１６】
特定の実施形態では、多様な検索結果を提供するためにクラスタリングが使用され得る。例えば、検索結果を多様化するために、異なるクラスタから意図的に検索結果を引き出すことができる。
【００１７】
特定の実施形態では、埋め込み空間内のコンテンツアイテムの埋め込みは、１つまたは複数のサーバによって決定され得る。特定の実施形態では、コンテンツアイテムの埋め込みは、１つまたは複数のクライアントシステムによって決定され得る。限定ではなく一例として、任意の適切なタイプのコンテンツ（例えば、ビジュアルコンテンツ）の前処理は、クライアントシステムによって全体的にまたは部分的に実行されてもよい。限定ではない別の例として、クライアントシステムは、コンテンツアイテム（例えば、ビジュアルコンテンツアイテム）の１つまたは複数の属性を決定し得る。
【００１８】
特定の実施形態では、埋め込みおよびクラスタリングを使用して、対応するコンテンツアイテムを１つまたは複数のデータベースに格納し得る。これらの１つまたは複数のデータベースは、限定ではなく一例として、１つまたは複数の相互接続されたデータベースを含むデータセンターであってもよい。コンテンツアイテムは、特定の地理的位置内のユーザまたは他のエンティティに関連する予測された、または決定された確率に基づいて、１つまたは複数のデータベースに格納されてもよい。コンテンツアイテムは、コンテンツアイテムと、特定の地理的位置に関連するコンテンツアイテムとの間の類似性に基づいて、１つまたは複数のデータベースに格納されてもよい。
【００１９】
特定の実施形態では、（例えば、埋め込み空間内のコンテンツアイテム間の近接性に基づいて、または埋め込み空間内の同じクラスタ内にあるコンテンツアイテムに基づいて）埋め込み空間は、所与の第１のコンテンツアイテムに関する第２のコンテンツアイテムの関連性の確率または類似性値を決定するために使用され得る。コンテンツアイテムが１つまたは複数のデータベースにどのように格納されるか（即ち、どのコンテンツアイテムがどのデータベースに格納されるか）は、決定された確率または類似性値に基づいて決定され得る。限定ではなく一例として、例えば、ユーザおよび／または地理的に特有の予測に基づく。
【００２０】
コンテンツアイテム間の類似性の決定に関して埋め込み空間を使用する精度によって、データアクセス時間が改善され得る。埋め込みはまた、（例えば、検索エンジンによる）検索時間を短縮するのに有効であり得る。特に、埋め込み空間から決定された類似性による分類および／または記憶、特に決定された類似性によるクラスタリングは、より速い検索時間、より少ないデータトラフィック、および個々の検索エンジンおよび関連のデータベースのシステム負荷の低減をもたらす。
【００２１】
本発明の実施形態はまた、１つまたは複数の電子データベース内のコンテンツアイテムを検索および／または取得するコンピュータが実装された検索エンジンを動作させる方法に関し、コンテンツアイテムは、１つまたは複数のデータベースに格納されたデータオブジェクトに関連している。検索エンジンを動作させる方法は、本明細書で説明される任意の実施形態を含む、上述の方法を含み、第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムが決定される方法が、１つまたは複数の電子データベース内の検索結果を識別するために使用され得る。決定された類似の第２のコンテンツアイテムに基づいて、検索結果、特に検索結果ページが生成され、例えばクエリを行うユーザに関連付けられた表示装置に表示のために提供される。具体的には、第１のコンテンツアイテムは、１つまたは複数のコンピューティングデバイスによって受信された検索クエリまたは検索語を表し得、第１のコンテンツアイテムに類似すると決定された１つまたは複数の第２のコンテンツアイテムは、第１のコンテンツアイテムの受信に応答して検索結果として使用されるか、または検索結果を生成するために使用される。
【００２２】
特定の実施形態では、限定ではなく一例として、多次元埋め込み空間内のコンテンツアイテム間の類似性に基づく検索結果を決定することにより、１つまたは複数の異なるデータベースを含む電子データベース内の特定のコンテンツアイテムに対する検索の速度および／または正確性が改善され得る。
【００２３】
提案された方法に従って動作する個々の検索エンジンによって生成された検索結果は、より正確かつ／または特定的であり得るが、少なくとも検索結果が既知の検索アルゴリズムの場合のように高レベルのクラスだけに基づいていない可能性があるため、検索結果は、検索されるコンテンツアイテムの属性に基づくこともできる。したがって、クライアントシステムは、ユーザが求める検索結果を得るために、換言すれば、検索エンジンに提出される検索の数を大幅に低減し得る検索結果を得るためにより多くの洗練された検索を提出し続ける必要はない。これは、特に、クライアントシステムとサーバとの間の特にインタラクションにおけるシステム負荷を軽減するのに適している。
【００２４】
ディープラーニングモデルは、１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練されてもよい。
第１および第２のコンテンツアイテムの１つまたは複数の属性は、ディープラーニングモデルの潜在入力変数であってもよい。
【００２５】
ディープラーニングモデルは、ニューラルネットワークであってもよい。
特定の実施形態では、本発明によれば、方法は、識別された１つまたは複数の第２のコンテンツアイテムに基づいて、検索結果を生成し、クエリを行うユーザに関連付けられた表示装置に表示するために検索結果を提供するステップを含み、かつ／または識別された１つまたは複数の第２のコンテンツアイテムに関連するクラスタに従って第１のコンテンツアイテムを格納するステップをさらに含み、かつ／または識別された１つまたは複数の第２のコンテンツアイテムをユーザに関連するクライアントデバイス上にキャッシングまたは事前キャッシュするステップを含み、かつ／または識別された類似の第２のコンテンツアイテムに基づいて、特に識別された１つまたは複数の第２のコンテンツアイテムから選択されたコンテンツアイテムを再クラスタリングするステップをさらに含む。
【００２６】
第１のコンテンツアイテムおよび第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、第１および第２のコンテンツアイテムの１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含み得る。
【００２７】
第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリであってもよい。
本発明による実施形態では、方法はさらに、１つまたは複数の識別された第２のコンテンツアイテムをユーザに表示するためにクライアントシステムに送信するステップを含んでもよい。
【００２８】
第１のコンテンツアイテムのコンテンツのタイプは、テキストコンテンツ、画像コンテンツ、オーディオコンテンツ、およびビデオコンテンツのうちの１つまたは複数を含んでもよい。
【００２９】
本発明による実施形態では、方法は、第１のコンテンツアイテムのコンテンツのタイプを決定するステップをさらに含み、１つまたは複数の第２のコンテンツアイテムを識別するステップが、第１のコンテンツアイテムのコンテンツのタイプにさらに基づいてもよい。
【００３０】
本発明による実施形態では、ソフトウェアを具体化する１つまたは複数のコンピュータ可読の非一時的記憶媒体であって、ソフトウェアは、実行時に、
第１のコンテンツアイテムを受信し、
第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、第１の埋め込みは埋め込み空間の第１のポイントに対応し、
埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、第１および第２のポイントがクラスタ内にさらに配置され、
第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
第１のポイントの位置、
１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
特定のクラスタ内の１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である。
【００３１】
ディープラーニングモデルは、１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練されてもよい。
第１および第２のコンテンツアイテムの１つまたは複数の属性は、ディープラーニングモデルの潜在入力変数であってもよい。
【００３２】
第１のコンテンツアイテムおよび第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、第１および第２のコンテンツアイテムの１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含んでもよい。
【００３３】
第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリであってもよい。
本発明による実施形態では、１つまたは複数のプロセッサと、プロセッサに結合され、前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、プロセッサは、命令の実行時に、
第１のコンテンツアイテムを受信し、
第１のコンテンツアイテムの第１の埋め込みを決定し、
ここで、第１の埋め込みは埋め込み空間の第１のポイントに対応し、
埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、
第１および第２の埋め込みはディープラーニングモデルを用いて決定され、
第１および第２のポイントは埋め込み空間内の１つまたは複数のクラスタに配置され、
クラスタの各々はコンテンツアイテムのクラスに関連付けられており、
第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいて、第１および第２のポイントがクラスタ内にさらに配置され、
第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムを、
第１のポイントの位置、
１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、
特定のクラスタ内の１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントの位置に基づいて識別するように動作可能である。
【００３４】
ディープラーニングモデルは、１つまたは複数のクラスタ内に配置されたポイント間の重なりを低減する損失関数を使用して訓練されてもよい。
第１および第２のコンテンツアイテムの１つまたは複数の属性は、ディープラーニングモデルの潜在入力変数であってもよい。
【００３５】
第１のコンテンツアイテムおよび第２のコンテンツアイテムは、それぞれビジュアルコンテンツであり、第１および第２のコンテンツアイテムの１つまたは複数の属性は、色、姿勢、照明条件、シーンの幾何学的形状、材質、テクスチャ、サイズ、および粒度のうちの１つまたは複数を含んでもよい。
【００３６】
第１のコンテンツアイテムは、ユーザのクライアントシステムで受信された検索クエリであってもよい。
本発明によるさらなる実施形態では、１つまたは複数のコンピュータ可読の非一時的記憶媒体は、実行時に本発明による方法または上述の実施形態を実行するように動作可能なソフトウェアを具体化する。
【００３７】
本発明によるさらなる実施形態では、システムは、１つまたは複数のプロセッサと、プロセッサによって実行可能な命令を含む少なくとも１つのメモリとを含み、プロセッサは、命令の実行時に本発明による方法または上述の実施形態を実行するように動作可能である。
【００３８】
本発明によるさらなる実施形態では、好ましくはコンピュータ可読の非一時的記憶媒体を含むコンピュータプログラム製品が、データ処理システム上での実行時に、本発明による方法または上述の実施形態を実行するように動作可能である。
【図面の簡単な説明】
【００３９】
【図１】ソーシャルネットワーキングシステムに関連する例示的なネットワーク環境を示す。
【図２】一例のソーシャルグラフを示す。
【図３】一例のディープラーニングモデルを示す。
【図４】ディープラーニングモデルを使用して生成された例示的な埋め込み空間を示す。
【図５】埋め込み空間内の類似のコンテンツアイテムを識別するための例示的な方法を示す。
【図６】一例の埋め込み空間を示す。
【図７】第１のコンテンツアイテムに類似する第２のコンテンツアイテムを識別するための例示的な方法を示す。
【図８】例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００４０】
システムの概要
図１は、ソーシャルネットワーキングシステムに関連付けられている例示的なネットワーク環境１００を示している。ネットワーク環境１００は、ネットワーク１１０によって互いにつながっているクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０を含む。図１は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０の特定の構成を示しているが、本開示は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０の任意の適切な構成を想定している。限定ではなく、例として、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０のうちの複数は、ネットワーク１１０を迂回して、互いに直接つながることが可能である。別の例として、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、図１は、特定の数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を想定している。限定ではなく、例として、ネットワーク環境１００は、複数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を含むことができる。
【００４１】
本開示は、任意の適切なネットワーク１１０を想定している。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００４２】
リンク１５０は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定している。特定の実施形態においては、１つまたは複数のリンク１５０は、１つもしくは複数の有線リンク（たとえば、デジタルサブスクライバライン（ＤＳＬ）もしくはデータオーバケーブルサービスインタフェース仕様（ＤＯＣＳＩＳ）など）、ワイヤレスリンク（たとえば、Ｗｉ−Ｆｉもしくはワールドワイドインターオペラビリティーフォーマイクロウェーブアクセス（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期光ネットワーク（ＳＯＮＥＴ）もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態においては、１つまたは複数のリンク１５０はそれぞれ、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラーテクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク１５０、または複数のそのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通じて必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の点において１つまたは複数の第２のリンク１５０とは異なることが可能である。
【００４３】
特定の実施形態においては、クライアントシステム１３０は、クライアントシステム１３０によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジックコンポーネント、または複数のそのようなコンポーネントの組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアントシステム１３０は、デスクトップコンピュータ、ノートブックコンピュータもしくはラップトップコンピュータ、ネットブック、タブレットコンピュータなどのコンピュータシステム、ｅブックリーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張現実デバイス／仮想現実デバイスその他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアントシステム１３０を想定している。クライアントシステム１３０は、クライアントシステム１３０のネットワークユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアントシステム１３０は、自分のユーザがその他のクライアントシステム１３０のその他のユーザと通信することを可能にすることができる。
【００４４】
特定の実施形態においては、クライアント１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ（いずれも登録商標）などのウェブブラウザ１３２を含むことができ、１つまたは複数のアドオン、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲ（登録商標）などのその他の拡張を有することができる。クライアントシステム１３０のユーザは、ウェブブラウザ１３２を特定のサーバ（サーバ１６２、またはサードパーティシステム１７０に関連付けられているサーバなど）へ導くユニフォームリソースロケータ（ＵＲＬ）またはその他のアドレスを入力することができ、ウェブブラウザ１３２は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成して、そのＨＴＴＰ要求をサーバに通信することができる。サーバは、そのＨＴＴＰ要求を受け入れて、そのＨＴＴＰ要求に応答して１つまたは複数のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルをクライアントシステム１３０に通信することができる。クライアントシステム１３０は、ユーザに提示するためにサーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴ（登録商標）  ａｎｄ  ＸＭＬ）などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、（そのウェブページをレンダリングするためにブラウザが使用することができる）１つまたは複数の対応するウェブページファイルを含み、その逆もまた同様である。
【００４５】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス可能なコンピューティングシステムであることが可能である。ソーシャルネットワーキングシステム１６０は、たとえば、ユーザプロフィールデータ、コンセプトプロフィールデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関連したその他の適切なデータなどのソーシャルネットワーキングデータを生成すること、格納すること、受け取ること、および送信することが可能である。ソーシャルネットワーキングシステム１６０は、ネットワーク環境１００のその他のコンポーネントによって直接、またはネットワーク１１０を介してアクセスされることが可能である。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、１つまたは複数のサーバ１６２を含むことができる。それぞれのサーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ１６２は、限定ではなく、例として、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、Ｅｘｃｈａｎｇｅサーバ、データベースサーバ、プロキシサーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ１６２は、サーバ１６２によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジックコンポーネント、または複数のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、１つまたは複数のデータストア１６４を含むことができる。データストア１６４は、さまざまなタイプの情報を格納するために使用されることが可能である。特定の実施形態においては、データストア１６４内に格納されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータストア１６４は、リレーショナルデータベース、行のデータベース、相関関係データベース、あるいはその他の適切なデータベースであることが可能である。本開示は特定のタイプのデータベースを記述し、例示するが、本開示においては、任意の適切なタイプのデータベースが考えられる。特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、またはサードパーティシステム１７０が、データストア１６４内に格納されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【００４６】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、１つまたは複数のソーシャルグラフを１つまたは複数のデータストア１６４内に格納することができる。特定の実施形態においては、ソーシャルグラフは、複数のノード（複数のユーザノード（それぞれが、特定のユーザに対応している）、または複数のコンセプトノード（それぞれが、特定のコンセプトに対応している）を含むことができる）と、ノード同士をつなげる複数のエッジとを含むことができる。ソーシャルネットワーキングシステム１６０は、オンラインソーシャルネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャルネットワーキングシステム１６０を介してオンラインソーシャルネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャルネットワーキングシステム１６０のその他の複数のユーザへのつながり（すなわち、関係）を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャルネットワーキングシステム１６０を介して、つながり、関連付け、または関係を形成しているソーシャルネットワーキングシステム１６０のその他の任意のユーザを指すことができる。
【００４７】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、ソーシャルネットワーキングシステム１６０によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャルネットワーキングシステム１６０のユーザが属することが可能であるグループもしくはソーシャルネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダーエントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャルネットワーキングシステム１６０において、またはサードパーティシステム１７０の外部システム（ソーシャルネットワーキングシステム１６０とは別個のものであって、ネットワーク１１０を介してソーシャルネットワーキングシステム１６０に結合されている）によって表されることが可能である任意のものと対話することができる。
【００４８】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャルネットワーキングシステム１６０は、ユーザたちが互いに対話すること、ならびにサードパーティシステム１７０もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーションプログラミングインタフェース（ＡＰＩ）もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【００４９】
特定の実施形態においては、サードパーティシステム１７０は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータストア、１つもしくは複数のインタフェース（ＡＰＩを含むが、それには限定されない）、１つもしくは複数のウェブサービス、１つもしくは複数のコンテンツソース、１つもしくは複数のネットワーク、または（たとえば、サーバと通信することができる）その他の任意の適切なコンポーネントを含むことができる。サードパーティシステム１７０は、ソーシャルネットワーキングシステム１６０を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャルネットワーキングシステム１６０およびサードパーティシステム１７０は、ソーシャルネットワーキングシステム１６０またはサードパーティシステム１７０のユーザにソーシャルネットワーキングサービスを提供するために互いに連携して機能することができる。この意味において、ソーシャルネットワーキングシステム１６０は、サードパーティシステム１７０などのその他のシステムがインターネットを介してソーシャルネットワーキングサービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【００５０】
特定の実施形態においては、サードパーティシステム１７０は、サードパーティコンテンツオブジェクトプロバイダを含むことができる。サードパーティコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの１つまたは複数のソースを含むことができ、それらのソースは、クライアントシステム１３０に通信されることが可能である。限定ではなく、例として、コンテンツオブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツオブジェクトは、インセンティブコンテンツオブジェクト、たとえば、クーポン、ディスカウントチケット、ギフト券、またはその他の適切なインセンティブオブジェクトを含むことができる。
【００５１】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０はまた、ユーザによって生成されたコンテンツオブジェクトを含み、それらのコンテンツオブジェクトは、ソーシャルネットワーキングシステム１６０とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム１６０に付加、アップロード、送信、または「ポスト」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアントシステム１３０からソーシャルネットワーキングシステム１６０へポストを通信する。ポストは、ステータス更新もしくはその他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュースフィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャルネットワーキングシステム１６０に付加されることも可能である。
【００５２】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含むことができる。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、ウェブサーバ、アクションロガー、ＡＰＩ要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推測モジュール、認可／プライバシーサーバ、検索モジュール、広告ターゲティングモジュール、ユーザインタフェースモジュール、ユーザプロフィールストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの１つまたは複数を含むことができる。ソーシャルネットワーキングシステム１６０は、適切なコンポーネント、たとえば、ネットワークインタフェース、セキュリティーメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワークオペレーションコンソール、その他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、ユーザプロフィールを格納するための１つまたは複数のユーザプロフィールストアを含むことができる。ユーザプロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味もしくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、１つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関する記事に対して「いいね！」を表明した場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を格納するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループメンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ（内部および外部の両方）の間におけるユーザ定義のつながりを含むこともできる。ネットワーク１１０を介してソーシャルネットワーキングシステム１６０を１つもしくは複数のクライアントシステム１３０または１つもしくは複数のサードパーティシステム１７０にリンクさせるために、ウェブサーバが使用されることが可能である。ウェブサーバは、ソーシャルネットワーキングシステム１６０と、１つまたは複数のクライアントシステム１３０との間においてメッセージを受け取って回送するためにメールサーバまたはその他のメッセージング機能を含むことができる。ＡＰＩ要求サーバは、サードパーティシステム１７０が、１つまたは複数のＡＰＩを呼び出すことによってソーシャルネットワーキングシステム１６０からの情報にアクセスすることを可能にすることができる。ソーシャルネットワーキングシステム１６０の上のまたは外のユーザのアクションに関してウェブサーバから通信を受け取るために、アクションロガーが使用されることが可能である。アクションログとともに、サードパーティコンテンツオブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクトログが保持されることが可能である。通知コントローラは、コンテンツオブジェクトに関する情報をクライアントシステム１３０に提供することができる。情報は、通知としてクライアントシステム１３０へプッシュされることが可能であり、または情報は、クライアントシステム１３０から受け取られた要求に応答してクライアントシステム１３０からプルされることが可能である。ソーシャルネットワーキングシステム１６０のユーザの１つまたは複数のプライバシー設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、自分のアクションをソーシャルネットワーキングシステム１６０によって記録されること、またはその他のシステム（たとえば、サードパーティシステム１７０）と共有されることのオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティシステム１７０などのサードパーティから受け取られたコンテンツオブジェクトを格納するために、サードパーティコンテンツオブジェクトストアが使用されることが可能である。ユーザに関連付けられているクライアントシステム１３０から受け取られたロケーション情報を格納するために、ロケーションストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【００５３】
ソーシャルグラフ
図２は、例示的なソーシャルグラフ２００を示している。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、１つまたは複数のソーシャルグラフ２００を１つまたは複数のデータストア内に格納することができる。特定の実施形態においては、ソーシャルグラフ２００は、複数のノード（複数のユーザノード２０２、または複数のコンセプトノード２０４を含むことができる）と、ノード同士をつなげる複数のエッジ２０６とを含むことができる。図２において示されている例示的なソーシャルグラフ２００は、教示上の目的から、２次元のビジュアルマップ表示で示されている。特定の実施形態においては、ソーシャルネットワーキングシステム１６０、クライアントシステム１３０、またはサードパーティシステム１７０は、適切なアプリケーションに関してソーシャルグラフ２００および関連したソーシャルグラフ情報にアクセスすることができる。ソーシャルグラフ２００のノードおよびエッジは、データオブジェクトとして、たとえば（ソーシャルグラフデータベースなどの）データストア内に格納されることが可能である。そのようなデータストアは、ソーシャルグラフ２００のノードまたはエッジの１つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【００５４】
特定の実施形態においては、ユーザノード２０２は、ソーシャルネットワーキングシステム１６０のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャルネットワーキングシステム１６０と、またはソーシャルネットワーキングシステム１６０を介して対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、ビジネス、もしくはサードパーティアプリケーション）、または（たとえば、個人もしくはエンティティの）グループであることが可能である。特定の実施形態においては、あるユーザがソーシャルネットワーキングシステム１６０とのアカウントに登録した場合には、ソーシャルネットワーキングシステム１６０は、そのユーザに対応するユーザノード２０２を作成し、そのユーザノード２０２を１つまたは複数のデータストア内に格納することができる。本明細書において記述されているユーザおよびユーザノード２０２は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザノード２０２を指すことができる。追加として、または代替として、本明細書において記述されているユーザおよびユーザノード２０２は、適切な場合には、ソーシャルネットワーキングシステム１６０に登録されていないユーザを指すことができる。特定の実施形態においては、ユーザノード２０２は、ユーザによって提供された情報、またはソーシャルネットワーキングシステム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザノード２０２は、ユーザに関連付けられている情報に対応する１つまたは複数のデータオブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザノード２０２は、１つまたは複数のウェブページに対応することができる。
【００５５】
特定の実施形態においては、コンセプトノード２０４は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワークシステム１６０に関連付けられているウェブサイト、もしくはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど）、エンティティ（たとえば、人、企業、グループ、スポーツチーム、もしくは有名人など）、ソーシャルネットワーキングシステム１６０内に、もしくはウェブアプリケーションサーバなどの外部サーバ上に配置されることが可能であるリソース（たとえば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化されたドキュメント、もしくはアプリケーションなど）、物的もしくは知的財産（たとえば、彫塑、絵画、映画、ゲーム、曲、アイディア、写真、もしくは執筆作品など）、ゲーム、アクティビティ、アイディアもしくは理論、拡張現実環境／仮想現実環境におけるオブジェクト、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプトノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキングシステム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数のイメージ（たとえば、本の表紙のイメージ）、ロケーション（たとえば、住所もしくは地理的位置）、（ＵＲＬに関連付けられることが可能である）ウェブサイト、連絡先情報（たとえば、電話番号もしくはＥメールアドレス）、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプトノード２０４は、コンセプトノード２０４に関連付けられている情報に対応する１つまたは複数のデータオブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプトノード２０４は、１つまたは複数のウェブページに対応することができる。
【００５６】
特定の実施形態においては、ソーシャルグラフ２００内のノードは、ウェブページ（「プロフィールページ」と呼ばれる場合もある）を表すこと、またはウェブページによって表されることが可能である。プロフィールページは、ソーシャルネットワーキングシステム１６０によってホストされること、またはソーシャルネットワーキングシステム１６０にとってアクセス可能であることが可能である。プロフィールページは、サードパーティサーバ１７０に関連付けられているサードパーティウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィールページは、その特定の外部ウェブページであることが可能であり、そのプロフィールページは、特定のコンセプトノード２０４に対応することができる。プロフィールページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザノード２０２は、対応するユーザプロフィールページを有することができ、そのユーザプロフィールページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプトノード２０４は、対応するコンセプトプロフィールページを有することができ、そのコンセプトプロフィールページにおいては、１人または複数のユーザが、特にコンセプトノード２０４に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【００５７】
特定の実施形態においては、コンセプトノード２０４は、サードパーティシステム１７０によってホストされているサードパーティウェブページまたはリソースを表すことができる。サードパーティウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す（たとえば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能である）その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティウェブページを閲覧しているユーザは、それらのアイコンのうちの１つ（たとえば、「チェックイン」）を選択することによってアクションを実行して、クライアントシステム１３０に、そのユーザのアクションを示すメッセージをソーシャルネットワーキングシステム１６０へ送信させることができる。そのメッセージに応答して、ソーシャルネットワーキングシステム１６０は、ユーザに対応するユーザノード２０２と、サードパーティウェブページまたはリソースに対応するコンセプトノード２０４との間においてエッジ（たとえば、「チェックインタイプ」エッジ）を作成して、エッジ２０６を１つまたは複数のデータストア内に格納することができる。
【００５８】
特定の実施形態においては、ソーシャルグラフ２００内の１対のノードが、１つまたは複数のエッジ２０６によって互いにつながることが可能である。１対のノードをつなげるエッジ２０６は、それらの１対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ２０６は、１対のノードの間における関係に対応する１つまたは複数のデータオブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャルネットワーキングシステム１６０は、「友達要求」を第２のユーザに送信することができる。第２のユーザがその「友達要求」を承認した場合には、ソーシャルネットワーキングシステム１６０は、ソーシャルグラフ２００内で第１のユーザのユーザノード２０２を第２のユーザのユーザノード２０２につなげるエッジ２０６を作成して、エッジ２０６をソーシャルグラフ情報としてデータストア１６４のうちの１つまたは複数の中に格納することができる。図２の例においては、ソーシャルグラフ２００は、ユーザ「Ａ」のユーザノード２０２と、ユーザ「Ｂ」のユーザノード２０２との間における友達関係を示すエッジ２０６と、ユーザ「Ｃ」のユーザノード２０２と、ユーザ「Ｂ」のユーザノード２０２との間における友達関係を示すエッジとを含む。本開示は、特定のユーザノード２０２同士をつなげる特定の属性を伴う特定のエッジ２０６を記述している、または示しているが、本開示は、ユーザノード２０２同士をつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。限定ではなく、例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係（例えば、「いいね」他を含む）、フォロワー関係、ビジター関係（例えば、アクセスすること、視聴すること、チェックインすること、共有すること、他を含む）、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、１つまたは複数のエッジ２０６によってソーシャルグラフ２００内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を指すことができる。
【００５９】
特定の実施形態においては、ユーザノード２０２とコンセプトノード２０４との間におけるエッジ２０６は、ユーザノード２０２に関連付けられているユーザによって、コンセプトノード２０４に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２において示されているように、ユーザは、コンセプトに対して「いいね！を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらのそれぞれは、エッジタイプまたはサブタイプに対応することができる。コンセプトノード２０４に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに加える」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャルネットワーキングシステム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ（ユーザ「Ｃ」）が、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の曲（例えば「イマジン」）を聴く場合がある。このケースにおいては、ソーシャルネットワーキングシステム１６０は、そのユーザに対応するユーザノード２０２と、その曲およびアプリケーションに対応するコンセプトノード２０４との間において、（図２に示されているような）「聴いた」エッジ２０６および「使用した」エッジを作成して、そのユーザがその曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャルネットワーキングシステム１６０は、その曲に対応するコンセプトノード２０４と、そのアプリケーションに対応するコンセプトノード２０４との間において、（図２に示されているような）「再生した」エッジ２０６を作成して、その特定の曲がその特定のアプリケーションによって再生されたということを示すことができる。このケースにおいては、「再生した」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオファイル（「イマジン」という曲）に関して実行されたアクションに対応する。本開示は、ユーザノード２０２とコンセプトノード２０４とをつなげる特定の属性を伴う特定のエッジ２０６について記述しているが、本開示は、ユーザノード２０２とコンセプトノード２０４とをつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。その上、本開示は、単一の関係を表すユーザノード２０２とコンセプトノード２０４との間におけるエッジについて記述しているが、本開示は、１つまたは複数の関係を表すユーザノード２０２とコンセプトノード２０４との間におけるエッジを想定している。限定ではなく、例として、エッジ２０６は、ユーザが特定のコンセプトに対して「いいね！」を表明しているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ２０６は、（図２において、ユーザ「Ｅ」を表すユーザノード２０２と、「ＳＰＯＴＩＦＹ」を表すコンセプトノード２０４との間において示されているような）ユーザノード２０２とコンセプトノード２０４との間におけるそれぞれのタイプの関係（または、単一の関係が複数集まったもの）を表すことができる。
【００６０】
特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、ソーシャルグラフ２００内でユーザノード２０２とコンセプトノード２０４との間においてエッジ２０６を作成することができる。限定ではなく、例として、（たとえば、ユーザのクライアントシステム１３０によってホストされているウェブブラウザまたは専用のアプリケーションを使用することなどによって）コンセプトプロフィールページを閲覧しているユーザは、「いいね！」アイコンをクリックまたは選択することにより、コンセプトノード２０４によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね！」アイコンをクリックまたは選択することは、ユーザのクライアントシステム１３０に、そのコンセプトプロフィールページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャルネットワーキングシステム１６０へ送信させることができる。そのメッセージに応答して、ソーシャルネットワーキングシステム１６０は、そのユーザとコンセプトノード２０４との間における「いいね！」エッジ２０６によって示されているように、そのユーザに関連付けられているユーザノード２０２とコンセプトノード２０４との間においてエッジ２０６を作成することができる。特定の実施形態においては、ソーシャルネットワーキングシステム１６０は、エッジ２０６を１つまたは複数のデータストア内に格納することができる。特定の実施形態においては、エッジ２０６は、特定のユーザアクションに応答してソーシャルネットワーキングシステム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ２０６は、第１のユーザに対応するユーザノード２０２と、それらのコンセプトに対応するコンセプトノード２０４との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ２０６を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ２０６を形成することを想定している。
【００６１】
ディープラーニングモデルの訓練
特定の実施形態は、ディープラーニングモデルを使用して所与のコンテンツアイテム（例えば、検索クエリ）に類似する１つまたは複数のコンテンツアイテムを識別する。コンテンツアイテムは、限定ではなく一例として、テキストコンテンツ（例えば、１つまたは複数のｎグラム（ｎ−ｇｒａｍｓ））、ビジュアルコンテンツ（例えば、１つまたは複数の画像）、オーディオコンテンツ（例えば、１つまたは複数のオーディオ記録）、ビデオコンテンツ（例えば、１つまたは複数のビデオクリップ）、任意の他の適切なタイプのコンテンツ、またはそれらの任意の組み合わせを含むことができる。本明細書で使用される場合、ｎグラムは、単語または単語のグループ、音声の一部、句読点（例えば、「！」）、口語（例えば、「遠慮せずどうぞ（例えば、ｇｏ  ｎｕｔｓ）」）、頭字語（例えば、「ＢＲＢ」）、略語（例えば、「ｍｇｍｔ．」）、感嘆符（「例えば、うっ（ｕｇｈ）」）、英数字、記号、書かれた文字（ｗｒｉｔｔｅｎ  ｃｈａｒａｃｔｅｒｓ）、アクセント記号、またはそれらの任意の組み合わせを含むことができる。
【００６２】
図３は、例示的なディープラーニングモデル３１０を示す。ディープラーニングモデル３１０は、機械学習モデル、ニューラルネットワーク、潜在ニューラルネットワーク（ｌａｔｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）、任意の他の適切なディープラーニングモデル、またはそれらの任意の組み合わせであってもよい。特定の実施形態では、ディープラーニングモデル３１０は、複数の抽象層（ｌａｙｅｒｓ  ｏｆ  ａｂｓｔｒａｃｔｉｏｎ）を有することができる。入力３０２，３０４，３０６および３０８は、任意の適切な数のコンテンツアイテムであり得る。出力３１２は、コンテンツアイテムの１つまたは複数の埋め込みであり得る。埋め込み空間は、多次元空間（例えば、ｄ次元、ｄは容量を制御するハイパーパラメータである）であってもよく、かつコンテンツアイテムの埋め込みに対応する複数のポイントを含み得る。本明細書で使用されるように、コンテンツアイテムの埋め込みとは、埋め込み空間内のコンテンツアイテムの表現を指す。特定の数の入力コンテンツアイテム３０２，３０４，３０６，および３０８が図３に示されているが、図３に示すように、ディープラーニングモデル３１０は、任意の適切な数の入力コンテンツアイテム３０２，３０４，３０６，および３０８に対するコンテンツアイテムの埋め込みを生成し得る。
【００６３】
特定の実施形態では、ディープラーニングモデル３１０（例えば、ニューラルネットワーク）は、コンテンツアイテムを
【００６４】
【数３】
2019503528.tif 000005
のベクトルにマッピングする１つまたは複数のインデックスを含み、
【００６５】
【数４】
2019503528.tif 000006
は一組の実数を表し、ｄは、容量を制御するハイパーパラメータである。ベクトルは、ｄ次元の強度ベクトルであってもよい。本明細書で使用されるように、強度値は、−１から１の範囲内の任意の適切な値であり得る。コンテンツアイテムのベクトル表現のそれぞれは、埋め込み空間内の個々のポイントに関する座標を提供し得る。特定の数の入力コンテンツアイテム３０２，３０４，３０６，および３０８が図３に示されているが、ディープラーニングモデル３１０は、任意の適切な数のコンテンツアイテム３０２，３０４，３０６，および３０８とベクトル表現との間のマッピングを提供し得る。
【００６６】
ディープラーニングモデル３１０は、コンテンツアイテムの最適な埋め込みを生成するように訓練され得る。ディープラーニングモデル３１０は、ディープラーニングモデル３１０が訓練されるときに動的に更新される１つまたは複数のインデックスを含み得る。１つまたは複数のインデックスは、ディープラーニングモデル３１０の訓練段階中に生成されてもよい。ディープラーニングモデル３１０は、例えば、ニューラルネットワークまたは潜在ニューラルネットワークであってもよい。ディープラーニングモデル３１０は、ランダム分布を使用して初期化することができる。すなわち、ディープラーニングモデル３１０は、最初に、（即ち、コンテンツアイテム３０２，３０４，３０６および３０８のどの埋め込みが生成され得るかに基づいて、コンテンツアイテム３０２，３０４，３０６および３０８とベクトル表現との間の）ランダムに割り当てられたマッピングを有し得る。限定ではなく一例として、ランダム分布はガウス分布であってもよい。訓練は、ディープラーニングモデル３１０の１つまたは複数のインデックスが初期マッピングよりもより最適なマッピングを生成する結果となり得る。
【００６７】
本開示は、図３の特定の実施形態をソーシャルネットワーキングシステム１６０によって実施されるものとして説明および図示しているが、本開示は、図３の任意の実施形態を任意の適切なプラットフォームまたはシステムによって実施されるものとして想定している。限定ではなく一例として、図３の特定の実施形態は、クライアントシステム１３０、サードパーティシステム１７０、または任意の他の適切なシステムによって実施されてもよい。さらに、本開示は、図３の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明および図示しているが、本開示は、図１の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【００６８】
特定の実施形態では、埋め込み空間内にコンテンツアイテムの埋め込みのクラスタを生成するためにディープラーニングモデル３１０が訓練される。各クラスタは、コンテンツアイテムのクラス（例えば、コンテンツアイテムの分類またはコンテンツアイテムのサブセット）に関連付けられる。本明細書では、クラスタは、埋め込み空間内のコンテンツアイテムの埋め込みに対応する一組の１つまたは複数のポイントであり、埋め込みがクラスタ内にあるコンテンツアイテムは、同じクラスに属している。
【００６９】
図４は、ディープラーニングモデル３１０を使用して生成された埋め込み空間の例示的な図４００を示す。埋め込み空間は、２つのクラスタ４１０および４１２を含むものとして示されている。クラスタ４１０は、一組の円（一組の白い円４０２および一組の黒い円４０４）として描画されたコンテンツアイテムの埋め込みを含むものとして示されている。クラスタ４１２は、一組の四角（一組の白い四角４０６および一組の黒い四角４０８）として描画されたコンテンツアイテムの埋め込みを含むものとして示されている。コンテンツアイテム４０２，４０４，４０６，および４０８の埋め込みは、特定の形状で図４において描画されているが、これらの埋め込みの各々は、多次元埋め込み空間内の個々のポイント（即ち、座標によって定義される）を表すことが理解されるであろう。コンテンツアイテム４０２，４０４，４０６，および４０８の埋め込みは、説明の明瞭さおよび簡易さのために特定の形状を有するものとして示されている。
【００７０】
特定の実施形態では、ディープラーニングモデル３１０は、（例えば、コンテンツアイテムを分類するために）コンテンツアイテムを埋め込み空間内のクラスタに埋め込むとともに、クラス間のバリエーションに基づいてクラスタ内の複数の位置にコンテンツアイテムを埋め込むように訓練される。本明細書で使用されるように、コンテンツアイテムを埋め込むことは、埋め込み空間内の特定のポイントに対応するコンテンツアイテムの埋め込みを生成することを指す。ディープラーニングモデル３１０が訓練される前に（例えば、初期化時に）、ディープラーニングモデル３１０は、埋め込み空間にランダムに点在するコンテンツアイテムの埋め込みを生成する。ディープラーニングモデル３１０は、コンテンツアイテムの各埋め込みのベクトル表現と、類似するコンテンツアイテムの埋め込みのベクトル表現との間の誤差を最小化または低減するように訓練される。ディープラーニングモデル３１０は、意味的類似性（例えば、コンテンツアイテムの１つまたは複数の意味に基づく関係）および視覚的類似性（例えば、ビジュアルコンテンツアイテムの１つまたは複数の視覚的属性に基づく関係）を使用して、コンテンツアイテム間の類似性を決定するように訓練される。特定の実施形態では、ディープラーニングモデル３１０は、コンテンツアイテムの意味的類似性に基づいてコンテンツアイテムを分類するように（例えば、特定のクラスタに埋め込むように）訓練される。特定の実施形態では、ディープラーニングモデル３１０は、同じクラスタ内に埋め込まれたコンテンツアイテムと、異なるクラスタ（例えば、近接または隣接クラスタ）に埋め込まれたコンテンツアイテムとの間の視覚的類似性に基づいて、コンテンツアイテムをクラスタ内の特定の位置に埋め込むように訓練される。ディープラーニングモデル３１０は、埋め込み空間内の１つまたは複数のクラスタ内に配置されたポイント間の重なりを（例えば、付加的な類似性の尺度を追加することによって）減少させる損失関数を使用して訓練され得る。類似性は、意味的類似性および視覚的類似性から構成されるものとして本明細書に記載および図示されているが、これは単なる例示であり、限定するものではないことを理解されたい。類似性は、意味的類似性、視覚的類似性、音声類似性、類似性の他の適切な尺度、またはそれらの任意の組み合わせに基づいて定義されてもよい。類似性は、コンテンツアイテムのタイプに基づいて定義されてもよい。限定ではなく一例として、ディープラーニングモデル３１０は、オーディオコンテンツアイテムの埋め込みを生成することができ、ディープラーニングモデル３１０は、意味的類似性およびオーディオ類似性（例えば、オーディオコンテンツの１つまたは複数の属性）に基づいてオーディオコンテンツアイテムを埋め込むように訓練され得る。
【００７１】
ディープラーニングモデル３１０は、教師無しの設定でコンテンツアイテムを分類する（例えば、クラスタに埋め込むように）ように訓練されてもよい（例えば、ラベル付けされていないデータに関する構造を提供するように訓練されてもよい）。特定の実施形態では、埋め込み空間内の同じクラスタおよび異なるクラスタにおけるコンテンツアイテム間の視覚的類似性を反映するクラスタ内の位置にコンテンツアイテムを（例えば、コンテンツアイテムを分類するために使用されたものとは異なるディープラーニングモデル３１０の層を使用して）埋め込むようにディープラーニングモデル３１０を訓練することができる。視覚的類似性は、コンテンツアイテムの１つまたは複数の属性に基づいて決定され得る。限定ではなく一例として、視覚的類似性は、姿勢、照明条件、シーンの幾何学的形状、色、材質、テクスチャ、サイズ、粒度（ｇｒａｎｕｌａｒｉｔｙ）（例えば、細粒（ｆｉｎｅ  ｇｒａｉｎ）または粗粒（ｃｏａｒｓｅ  ｇｒａｉｎ））、コンテンツアイテムの他の任意の適切な視覚的属性、またはそれらの任意の組み合わせを含む。コンテンツアイテムの属性は、ディープラーニングモデル３１０の潜在入力変数（ｌａｔｅｎｔ  ｉｎｐｕｔ  ｖａｒｉａｂｌｅｓ）であってもよい。
【００７２】
類似性は、埋め込み空間内で距離によって表すことができる。高いレベルでは、埋め込み空間内で互いに近接するポイントに類似のコンテンツアイテムが埋め込まれる。意味的類似性は、グローバル近接度によって表されてもよい（例えば、同じクラスのコンテンツアイテムは、埋め込み空間内の同じクラスタ内のポイントに埋め込まれる）。視覚的類似性は、ローカル近接度によって表されてもよい（例えば、１つまたは複数の共通の属性を有するコンテンツアイテムは、クラスタ割り当てにもかかわらず、互いに近接するポイントに埋め込まれる）。
【００７３】
図４の図示された例において、白い円４０２は、白いイヌの画像の埋め込みを表し、黒い円４０４は、黒いイヌの画像の埋め込みを表し、白い四角４０６は、白いネコの画像の埋め込みを表し、黒い四角４０８は、黒いネコの画像の埋め込みを表し得る。ディープラーニングモデル３１０は、動物のクラス（例えば、イヌおよびネコ）間をグローバル的に区別するように訓練され、さらに、白いネコと黒いネコとの間および白いイヌと黒いイヌとの間で局所的に区別するように訓練されてもよい（すなわち、埋め込み空間内で表されるネコおよびイヌの属性は色である）。ディープラーニングモデル３１０は、イヌのクラスに関連するクラスタ４１０内に配置された白いイヌの画像の埋め込み４０２と、黒いイヌの画像の埋め込み４０４とを生成し得る。ディープラーニングモデルはまた、ネコのクラスに関連するクラスタ４１２内に配置された白いネコの画像の埋め込み４０６と、黒いネコの画像の埋め込み４０８とを生成し得る。図４に示すように、埋め込み４０２および４０６は異なるクラスタ内に存在しているが、白いイヌの画像の埋め込み４０２は、白いネコの画像の埋め込み４０６と距離が近い。また、図４に示すように、埋め込み４０４および４０８は異なるクラスタ内に存在しているが、黒いイヌの画像の埋め込み４０４は、黒いネコの画像の埋め込み４０８と距離が近い。埋め込み空間は、１つまたは複数の属性（例えば、色）に基づいて視覚的類似性と同様にクラスにおける類似性の表現を提供することができる。
【００７４】
特定の実施形態では、ディープラーニングモデル３１０は、クラスタリング技術に基づくアルゴリズムを使用して訓練される。ディープラーニングモデル３１０は、教師無しの方法で訓練されて、コンテンツアイテムを各クラスに関するクラスタに割り当てる（即ち、個々のクラスに各コンテンツアイテムを埋め込む）。ディープラーニングモデル３１０は、埋め込み空間内のポイントのクラスタ間の重なりを検索して、局所レベルでこれらのクラスタ間の重なりを低減または最小化するアルゴリズムを用いてさらに訓練され得る。特定の実施形態では、ディープラーニングモデル３１０のための訓練セットは、以下の式（１）〜（４）によって与えられる。
【００７５】
【数５】
2019503528.tif 000007
式中、Θはパラメータベクトル、ｘｎはコンテンツアイテム、ｙｎはコンテンツアイテム、およびｎ∈［１、Ｎ］を示す。特定の実施形態では、ディープラーニングモデル３１０は、式（３）によって与えられる損失関数（Ｌ（Θ））を用いて訓練され得る。
【００７６】
【数６】
2019503528.tif 000008
式中、μは学習率、αはクラスタ間の可変マージンを示す。αパラメータは、埋め込み空間のクラスタの所望の密度（ｔｉｇｈｔｎｅｓｓ）に応じて調整することができる。（例えば、埋め込み空間内でポイントのクラスタが互いにどれくらい近接しているか）
特定の実施形態では、（例えば、式（５）として示される損失関数を使用して）ディープラーニングモデル３１０を訓練することにより、ディープラーニングモデル３１０の１つまたは複数の重みが更新される。ディープラーニングモデルの１つまたは複数の重みの初期値は、（例えば、ガウス分布を使用して）ランダムに決定される。特定の実施形態では、埋め込み空間内のポイントのクラスタ間の重なりを最小にするために、ディープラーニングモデルの１つまたは複数の重みが更新される。特定の実施形態では、誤差を最小にするために式（５）によって与えられる損失関数を用いてディープラーニングモデルの１つまたは複数の重みが更新される。ディープラーニングモデルの重みは、コンテンツアイテムに対するより良好な埋め込みを生成するように更新され、これにより、クラスタ間の重複が少ない状態で埋め込み空間内のポイントの分布（即ち、コンテンツアイテムの埋め込みに対応する）を生じさせることができる。
【００７７】
本開示は、特定の方法で実施されるものとして図４の特定の実施形態を説明しかつ図示しているが、本開示は、任意の適切なインタフェース上で発生し、任意の適切なプラットフォームまたはシステムによって実施される図４の任意の適切な実施形態を想定している。限定ではなく一例として、図４の特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、または任意の他の適切なシステムによって実施されてもよい。さらに、本開示は、図４の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明しかつ図示しているが、本開示は、図４の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【００７８】
ディープラーニングモデルが埋め込み空間にコンテンツアイテムを埋め込むように訓練されると、埋め込み空間を使用して、限定ではなく一例として、入力コンテンツアイテムが与えられると特定のコンテンツアイテムを識別することを含む様々なタスクを遂行することができる。
【００７９】
埋め込み空間を使用して類似のコンテンツアイテムを識別する
図５は、埋め込み空間内の類似のコンテンツアイテムを識別する例示的な方法５００を示す。ステップ５１０において、システムは、ユーザのクライアントシステム１３０から第１のコンテンツアイテムを受信する。限定ではなく一例として、第１のコンテンツアイテムは、クライアントシステム１３０のインタフェースでユーザによって入力された検索クエリであってもよい。ステップ５２０において、ディープラーニングモデル３１０を使用して、埋め込み空間内の第１のコンテンツアイテムの第１の埋め込みが決定される。特定の実施形態では、第１のコンテンツアイテムの第１の埋め込みを決定する前に、ディープラーニングモデル３１０は、図４に関連して説明したように訓練されてもよい。ディープラーニングモデルは、限定ではなく一例として、第１のコンテンツアイテムを第１のコンテンツアイテムの第１のベクトル表現にマッピングする。第１のコンテンツアイテムの第１の埋め込みは、第１のコンテンツアイテムの第１のベクトル表現に基づいて決定され、第１の埋め込みは、埋め込み空間内の第１のポイントに対応する。特定の実施形態では、埋め込み空間は、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含む。第２の埋め込みは、ディープラーニングモデル３１０を使用して決定することができる。第１および第２のポイントは、埋め込み空間内の１つまたは複数のクラスタに配置することができる。第１および第２のポイントは、埋め込み空間内の１つまたは複数のクラスタ内に配置され得る。第１および第２のポイントは、第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいてクラスタ内にさらに配置され得る。第１および第２のコンテンツアイテムの１つまたは複数の属性は潜在変数（ｌａｔｅｎｔ  ｖａｒｉａｂｌｅｓ）であってもよく、その潜在変数に基づいてディープラーニングモデル３１０を訓練することができる。
【００８０】
ステップ５３０において、システムは、第１のコンテンツアイテムのコンテンツのタイプを決定する。第１のコンテンツアイテムのコンテンツのタイプは、テキストコンテンツ、画像コンテンツ、オーディオコンテンツ、ビデオコンテンツ、医療画像コンテンツ、任意の他の適切なタイプのコンテンツ、またはそれらの任意の組み合わせとすることができる。限定ではなく一例として、第１のコンテンツアイテムは、ビジュアルコンテンツ（例えば、フレンチブルドッグと一緒に眠っている赤ちゃんの画像）であってもよい。限定ではない別の例として、第１のコンテンツアイテムは、テキストコンテンツ（例えば、「ケイシー  マスグレイヴス」）であってもよい。
【００８１】
ステップ５４０において、システムは、第１のコンテンツアイテムに類似する埋め込み空間内の１つまたは複数の第２のコンテンツアイテムを識別する。特定の実施形態では、システムは、第１のコンテンツアイテムの第１の埋め込みに対応する第１のポイントの位置に基づいて、１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置された１つまたは複数の特定のクラスタに基づいて、かつ特定のクラスタ内の１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントの位置に基づいて１つまたは複数の第２のコンテンツアイテムを識別する。限定ではなく一例として、第１のコンテンツアイテムの埋め込みに対応する第１のポイントが特定のクラスタ内に配置され、検索アルゴリズムを適用して特定のクラスタ内の第１のポイントの閾値距離内にある１つまたは複数の第２のポイントが識別される。限定ではない別の例として、第１のポイントが埋め込み空間内の１つまたは複数のクラスタに近接して配置され、検索アルゴリズムを適用して近接クラスタの各々における第１のポイントの閾値距離内にある１つまたは複数の第２のポイントが識別される（即ち、多様な検索結果を得るために）。限定ではない別の例として、第１のポイントが埋め込み空間内の１つまたは複数のクラスタに近接して配置され、検索アルゴリズムを近接クラスタの各々に適用して個々の近接クラスタの重心の閾値距離内にある近接クラスタの各々における１つまたは複数のポイントが識別される。
【００８２】
特定の実施形態では、システムは、ステップ５３０で特定された第１のコンテンツアイテムのコンテンツのタイプに基づいて、第１のコンテンツアイテムに類似する埋め込み空間内の１つまたは複数の第２のコンテンツアイテムを特定する。第１のコンテンツアイテムに類似する第２のコンテンツアイテムを特定するために適用される特定の検索アルゴリズムは、第１のコンテンツアイテムのコンテンツのタイプに依存して変化し得る。限定ではなく一例として、第１のコンテンツアイテムがテキストコンテンツ（例えば、「ケイシー  マスグレイヴス」）である場合、第１のコンテンツアイテムの第１の埋め込みに対応する第１のポイントが配置されるクラスタ（例えば、カントリーミュージシャンのクラス）内の第２のポイントを検索するための検索アルゴリズムが適用される。限定ではない別の例として、第１のコンテンツアイテムがビジュアルコンテンツ（例えば、フレンチブルドッグと一緒に眠っている赤ちゃんの画像）である場合、各第２のポイントが配置されているクラスタに関係なく、第１のポイントの閾値距離内の第２のポイントを検索するための検索アルゴリズムが適用される。
【００８３】
ステップ５５０において、システムは、ステップ５４０で識別された第２のコンテンツアイテムをユーザに表示するためにクライアントシステム１３０に送信する。限定ではなく一例として、第１のコンテンツアイテムは、クライアントシステム１３０のインタフェースにてユーザによって検索クエリとして入力され、識別された第２のコンテンツアイテムは、クライアントシステム１３０において検索結果としてユーザに表示される。
【００８４】
特定の実施形態は、適切な場合、図５の方法の１つまたは複数のステップを繰り返すことができる。本開示は、図５の方法の特定のステップを特定の順序で進行するものとして説明および図示しているが、本開示は、図５の方法の任意の適切なステップを任意の適切な順序で進行することを想定している。本開示は、図５の特定の実施形態を特定の方法で実施されるものとして説明および図示しているが、本開示は、任意の適切なインタフェース上で進行し、任意の適切なプラットフォームまたはシステムによって実施される任意の適切な図５の実施形態を想定している。限定ではなく一例として、図５の特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、または任意の他の適切なシステムによって実施することができる。さらに、本開示は、図５の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明し図示しているが、本開示は、図５の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【００８５】
図６は、埋め込み空間の例示的な図６００を示す。埋め込み空間は、第２のコンテンツアイテムの第２の埋め込みに対応する第２のポイントのクラスタ６２０，６３０，６４０，および６５０を含む。クラスタ６２０，６３０，６４０，および６５０の各々は、コンテンツアイテムのクラスに関連付けられる。埋め込み空間はまた、第１のコンテンツアイテムの第１の埋め込みに対応する第１のポイント６１０を含む。埋め込み空間は、ディープラーニングモデル３１０を使用して生成される。図６に示すように、埋め込み空間は、（例えば、式（５）の損失関数を使用して）少なくとも部分的に訓練されてもよい。クラスタ６２０，６３０，６４０，および６５０の各々の間の距離は、図４に関連して上述したように、式（５）のαパラメータに依存し得る。図６における埋め込み空間は２次元であるものとして描画されているが、埋め込み空間は任意の適切な次元（例えば、多次元）であってもよい。
【００８６】
第１のコンテンツアイテムは受信され、かつディープラーニングモデル３１０を使用して第１のコンテンツアイテムの第１の埋め込みに対応する第１のポイント６１０を決定することによって埋め込み空間に埋め込まれてもよい。図６の図示した例において、第１のポイント６１０は、第２のポイントのクラスタ６２０内に配置される。図５に関連して上述したように、検索アルゴリズムを適用して第１のコンテンツアイテムに対する１つまたは複数の類似の第２のコンテンツアイテムが識別される。限定ではなく一例として、検索アルゴリズムを適用してクラスタ６２０内の１つまたは複数の第２のポイントがクラスタ６２０内の第１のポイント６１０の閾値距離内にあることが決定され、かつ１つまたは複数の第２のポイントに対応する第２のコンテンツアイテムが第１のコンテンツアイテムと類似しているものとして識別される。限定ではなく一例として、検索アルゴリズムを適用してクラスタ６２０，６３０，および６５０内の１つまたは複数の第２のポイントが第１のポイント６１０の閾値距離内にあることが決定され、かつクラスタ６２０，６３０，および６５０内の１つまたは複数の第２のポイントが第１のコンテンツアイテムと類似しているものとして識別されてもよい。
【００８７】
本開示は、図６の特定の実施形態を特定の態様で実施されるものとして説明し図示しているが、本開示は、任意の適切なインタフェース上で生じ、任意の適切なプラットフォームまたはシステムによって実施される図６の任意の適切な実施形態を想定している。限定ではなく一例として、図６の特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、または任意の他の適切なシステムによって実施されてもよい。さらに、本開示は、図６の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明し図示しているが、本開示は、図６の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【００８８】
図７は、第１のコンテンツアイテムに類似する第２のコンテンツアイテムを識別する例示的な方法を示す。方法は、ステップ７１０で始まり、第１のコンテンツアイテムが受信される。ステップ７２０において、第１のコンテンツアイテムの第１の埋め込みが決定され、ここで、第１の埋め込みが埋め込み空間内の第１のポイントに対応している。埋め込み空間が、第２のコンテンツアイテムの複数の第２の埋め込みに対応する複数の第２のポイントを含み、第１および第２の埋め込みがディープラーニングモデルを使用して決定され、第１および第２のポイントが埋め込み空間内の１つまたは複数のクラスタ内に配置され、各クラスタがコンテンツアイテムのクラスに関連付けられ、第１および第２のポイントが第１および第２のコンテンツアイテムの１つまたは複数の属性に基づいてクラスタ内にさらに配置される。ステップ７３０において、第１のコンテンツアイテムに類似する１つまたは複数の第２のコンテンツアイテムが、第１のポイントの位置、１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントが配置されている１つまたは複数の特定のクラスタ、および特定のクラスタ内の１つまたは複数の第２のコンテンツアイテムに対応する１つまたは複数の第２のポイントの位置に基づいて識別される。
【００８９】
特定の実施形態は、適切な場合、図７の方法の１つまたは複数のステップを繰り返すことができる。本開示は、図７の方法の特定のステップを特定の順序で進行するものとして説明し図示しているが、本開示は、任意の適切な順序で進行する図７の方法の任意の適切なステップを想定している。さらに、本開示は、図７の方法の特定のステップを含む、第１のコンテンツアイテムに類似する第２のコンテンツアイテムを識別する例示的な方法を説明し図示しているが、本開示は、適切な場合、図７の方法のステップの全て、いくつかを含むか、またはいずれも含まない、任意の適切なステップを含む、第１のコンテンツアイテムに類似する第２のコンテンツアイテムを識別するための任意の適切な方法を想定している。さらに、本開示は、図７の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明し図示しているが、本開示は、図７の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【００９０】
システムおよび方法
図８は、例示的なコンピュータシステム８００を示している。特定の実施形態においては、１つまたは複数のコンピュータシステム８００が、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を実行する。特定の実施形態においては、１つまたは複数のコンピュータシステム８００が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、１つまたは複数のコンピュータシステム８００上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、１つまたは複数のコンピュータシステム８００の１つまたは複数の部分を含む。本明細書においては、コンピュータシステムへの言及は、適切な場合には、コンピューティングデバイスおよびその逆を包含することができる。その上、コンピュータシステムへの言及は、適切な場合には、１つまたは複数のコンピュータシステムを包含することができる。
【００９１】
本開示は、任意の適切な数のコンピュータシステム８００を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータシステム８００を想定している。限定ではなく、例として、コンピュータシステム８００は、組み込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータシステム８００は、１つもしくは複数のコンピュータシステム８００を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つもしくは複数のネットワーク内の１つもしくは複数のクラウドコンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータシステム８００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータシステム８００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程をリアルタイムで、またはバッチモードで実行することができる。１つまたは複数のコンピュータシステム８００は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【００９２】
特定の実施形態においては、コンピュータシステム８００は、プロセッサ８０２、メモリ８０４、ストレージ８０６、入力／出力（Ｉ／Ｏ）インタフェース８０８、通信インタフェース８１０、およびバス８１２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータシステムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータシステムを想定している。
【００９３】
特定の実施形態においては、プロセッサ８０２は、コンピュータプログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ８０２は、内部レジスタ、内部キャッシュ、メモリ８０４、またはストレージ８０６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ８０４、またはストレージ８０６に書き込むことができる。特定の実施形態においては、プロセッサ８０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ８０２を想定している。限定ではなく、例として、プロセッサ８０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数の変換ルックアサイドバッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ８０４またはストレージ８０６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ８０２によるそれらの命令の取り出しをスピードアップすることができる。データキャッシュ内のデータは、プロセッサ８０２において実行される命令が機能する際に基づくメモリ８０４もしくはストレージ８０６内のデータのコピー、プロセッサ８０２において実行される後続の命令によるアクセスのための、もしくはメモリ８０４もしくはストレージ８０６への書き込みのためのプロセッサ８０２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データキャッシュは、プロセッサ８０２による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。ＴＬＢは、プロセッサ８０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ８０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ８０２を想定している。適切な場合には、プロセッサ８０２は、１つまたは複数の演算ロジックユニット（ＡＬＵ）を含むこと、マルチコアプロセッサであること、または１つもしくは複数のプロセッサ８０２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【００９４】
特定の実施形態においては、メモリ８０４は、プロセッサ８０２が実行するための命令、またはプロセッサ８０２が機能する際に基づくデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム８００は、命令をストレージ８０６または別のソース（たとえば、別のコンピュータシステム８００など）からメモリ８０４にロードすることができる。次いでプロセッサ８０２は、命令をメモリ８０４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ８０２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ８０２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ８０２は、それらの結果のうちの１つまたは複数をメモリ８０４に書き込むことができる。特定の実施形態においては、プロセッサ８０２は、（ストレージ８０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ８０４内の命令のみを実行し、（ストレージ８０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ８０４内のデータ上でのみ機能する。１つまたは複数のメモリバス（それらはそれぞれ、アドレスバスおよびデータバスを含むことができる）は、プロセッサ８０２をメモリ８０４に結合することができる。バス８１２は、以降で記述されているような１つまたは複数のメモリバスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ８０２とメモリ８０４との間に常駐し、プロセッサ８０２によって要求されるメモリ８０４へのアクセスを容易にする。特定の実施形態においては、メモリ８０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ８０４は、適切な場合には、１つまたは複数のメモリ８０４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【００９５】
特定の実施形態においては、ストレージ８０６は、データまたは命令のためのマスストレージを含む。限定ではなく、例として、ストレージ８０６は、ハードディスクドライブ（ＨＤＤ）、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ８０６は、適切な場合には、取り外し可能なまたは取り外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ８０６は、適切な場合には、コンピュータシステム８００の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ８０６は、不揮発性のソリッドステートメモリである。特定の実施形態においては、ストレージ８０６は、読み取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマスストレージ８０６を想定している。ストレージ８０６は、適切な場合には、プロセッサ８０２とストレージ８０６との間における通信を容易にする１つまたは複数のストレージコントロールユニットを含むことができる。適切な場合には、ストレージ８０６は、１つまたは複数のストレージ８０６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【００９６】
特定の実施形態においては、Ｉ／Ｏインタフェース８０８は、コンピュータシステム８００と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム８００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータシステム８００との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／Ｏデバイスのための任意の適切なＩ／Ｏインタフェース８０８を想定している。適切な場合には、Ｉ／Ｏインタフェース８０８は、プロセッサ８０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイスドライバまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインタフェース８０８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース８０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【００９７】
特定の実施形態においては、通信インタフェース８１０は、コンピュータシステム８００と、１つもしくは複数のその他のコンピュータシステム８００または１つもしくは複数のネットワークとの間における通信（たとえば、パケットベースの通信など）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース８１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷＩ−ＦＩネットワークなどのワイヤレスネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレスアダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース８１０を想定している。限定ではなく、例として、コンピュータシステム８００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線またはワイヤレスであることが可能である。例として、コンピュータシステム８００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥースＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ（登録商標））ネットワークなど）、またはその他の適切なワイヤレスネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータシステム８００は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース８１０を含むことができる。通信インタフェース８１０は、適切な場合には、１つまたは複数の通信インタフェース８１０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【００９８】
特定の実施形態においては、バス８１２は、コンピュータシステム８００のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス８１２は、アクセラレイティッドグラフィックスポート（ＡＧＰ）もしくはその他のグラフィックスバス、エンハンストインダストリースタンダードアーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリースタンダードアーキテクチャ（ＩＳＡ）バス、インフィニバンドインターコネクト、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクススタンダーズアソシエーションローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス８１２は、適切な場合には、１つまたは複数のバス８１２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【００９９】
本明細書においては、１つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）など）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）ディスケット、フロッピー（登録商標）ディスクドライブ（ＦＤＤ）、磁気テープ、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【０１００】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【０１０１】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定のコンポーネント、要素、特徴、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、特徴、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。
【図１】
2019503528.tif 000009
【図２】
2019503528.tif 000010
【図３】
2019503528.tif 000011
【図４】
2019503528.tif 000012
【図５】
2019503528.tif 000013
【図６】
2019503528.tif 000014
【図７】
2019503528.tif 000015
【図８】
2019503528.tif 000016
【国際調査報告】
2019503528.tif 000017
2019503528.tif 000018