JP6744993B2 - ディープラーニングモデルを使用した推奨の生成 - Google Patents

ディープラーニングモデルを使用した推奨の生成 Download PDF

Info

Publication number
JP6744993B2
JP6744993B2 JP2019522918A JP2019522918A JP6744993B2 JP 6744993 B2 JP6744993 B2 JP 6744993B2 JP 2019522918 A JP2019522918 A JP 2019522918A JP 2019522918 A JP2019522918 A JP 2019522918A JP 6744993 B2 JP6744993 B2 JP 6744993B2
Authority
JP
Japan
Prior art keywords
entity
entities
embedding
embeddings
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2019522918A
Other languages
English (en)
Other versions
JP2020503590A (ja
Inventor
ブラッドリー レイ グリーン,
ブラッドリー レイ グリーン,
Original Assignee
フェイスブック,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2020503590A publication Critical patent/JP2020503590A/ja
Application granted granted Critical
Publication of JP6744993B2 publication Critical patent/JP6744993B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/40Business processes related to social networking or social networking services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本開示は一般に、ディープラーニングモデルを訓練することに関する。
ディープラーニングは、教師あり設定または教師なし設定のモデルを訓練することを含むことができる機械学習の一種である。ディープラーニングモデルは、データの表現を学習するように訓練されることが可能である。限定ではなく、例として、ディープラーニングモデルは、強度値のベクトルとしてデータを表すことができる。強度値のベクトルは、埋め込み(embedding)空間内のポイントに対応することが可能である。ディープラーニングモデルは、埋め込み空間内で、有意義に異種データを圧縮する埋め込みを生成するために使用されることが可能である。
特定の実施形態において、システムは、ディープラーニングモデルを使用して、入力されたコンテンツ項目に類似の1つまたは複数のコンテンツ項目を識別することができる。ディープラーニングモデルは、多次元埋め込み空間内の埋め込みにエンティティをマッピングするように訓練されることが可能である。各埋め込みは、埋め込み空間内のポイントの座標に対応することが可能である。ディープラーニングモデルは、エンティティの属性を組み込むエンティティの埋め込みを生成するように訓練されることが可能である。したがって、異なる変数(すなわち、異なるタイプのエンティティ属性)は、エンティティの埋め込みを介して同じ埋め込み空間内で表されることが可能である。
エンティティ属性を組み込むエンティティの埋め込みは、任意の数の適切なタスクを達成するために使用されることが可能である。埋め込みされたエンティティは、ベクトル演算(すなわち、ベクトル加算およびベクトル減算)が、エンティティの対応するベクトル表現に対して行われることが可能なように、有効に圧縮される属性のエンティティを含むことができる。システムは、検索アルゴリズムを用いて、埋め込み空間内のポイントに近似のものとして、エンティティの1つまたは複数の埋め込みを識別することができ、ここでポイントは、ベクトル代数を使用して判断される。限定ではなく、例として、システムは、クライアントシステムにおいてユーザによって入力される、受け取った検索クエリに応答して、エンティティの埋め込みを識別することができる。ユーザは質問を入力することができ、システムは、質問をベクトル演算に変換することができる。ベクトル演算は埋め込み空間に適用されてよく、1つまたは複数のエンティティは、質問に応じて識別されることが可能である。識別されたエンティティは、(例えば、メッセージングプラットフォーム、ソーシャルネットワーキングシステムと関連付けられたアプリケーション、または他の任意の適切なアプリケーションといった)クライアントシステム上で動くアプリケーションのインターフェース上に提案としてユーザに表示されることが可能である。限定ではなく、別の例として、システムは、ベクトル演算を使用して、埋め込み空間内の特定のエンティティの補完物であるエンティティの埋め込みを識別することができる。限定ではなく、別の例として、エンティティは、ソーシャルネットワーキングシステムのページであってよく、システムは、ユーザのコンテキスト変更(例えば、ソーシャルネットワーキングシステム上のユーザのプロフィールのコンテキスト変更)に基づいて、ベクトル演算を用いることによってユーザに対するコンテキストページの推奨を生成することができる。
本明細書で説明されるような本発明は、埋め込み空間内で、有効な方式で異種データを圧縮する埋め込みを生成するために、斬新な方式でディープラーニングモデルを実装し、したがって、ほぼ全種類のデータ、特に異種データのカタログ作成およびインデックス作成に関する技術的問題への解決策をもたらし、このデータセット内での後の計算および検索を可能にする。提案された解決策は、例えばソーシャルネットワーキングシステムといった大きなデータベースに追加され、存在するデータが、データオブジェクトのカタログ作成およびインデックス作成の従来の既知の解決策の能力を簡単に超えるときに有利である。特に、ソーシャルネットワーキングシステムにおいて、例えばソーシャルグラフの構造を含む異種データをデータベースに統合する必要があり、逆に、このデータを反映するために、データベースまたはソーシャルグラフ自体の構造を継続的に拡張する必要もある。
本発明による1つの実施形態において、方法は、
エンティティの第1のセット内の各エンティティに対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの第1のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の第1のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第1のセットの各エンティティ属性が、複数のエンティティの少なくとも1つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1のセット内のエンティティの埋め込みを1つまたは複数のコンピューティングデバイスによって修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含む。
本発明による1つの実施形態において、埋め込み空間内のデータストアに格納されたデータオブジェクトに対応するエンティティのセットを埋め込むためのコンピュータ実装方法は、
エンティティの第1のセット内の各エンティティに対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの第1のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の第1のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第1のセットの各エンティティ属性が、複数のエンティティの少なくとも1つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1のセット内のエンティティの埋め込みを1つまたは複数のコンピューティングデバイスによって修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
本発明による1つの実施形態において、方法は、
エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第2のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第2のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1および第2のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
各エンティティの埋め込みを修正することは、個々のエンティティと関連付けられているエンティティ属性の埋め込みと共にエンティティの第1のセット内の各エンティティの埋め込みをプールすることを含むことができる。
複数のエンティティは、ソーシャルネットワーキングシステム内の複数のページを含むことができる。
複数のエンティティは、
ソーシャルネットワーキングシステム内の複数のページ、ソーシャルグラフのエンティティと関連付けられたページ、ウェブページ、および他の任意の適切なエンティティ
のうちの少なくとも1つを含むことができる。
エンティティ属性タイプは、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザであってよい。
エンティティ属性タイプは、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、ページと関連付けられたユーザ、ページと関連付けられたサイズ、およびエンティティの他の任意の適切なプロパティのうちの少なくとも1つに対応することが可能である。
ディープラーニングモデルは、スキップグラムネガティブダウンサンプリングを使用して訓練されることが可能である。
埋め込み空間内の各埋め込みは、個々のベクトル表現に対応することが可能である。
本発明による1つの実施形態において、方法は、
ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第1のコンテキストから第2のコンテキストに変更されたことを検出することと、
第2のコンテキストに関連するものとして1つまたは複数の埋め込みを識別することであって、
第2のコンテキストと関連付けられた埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
検索アルゴリズムを埋め込み空間に適用すること
によって、識別することと
を含み、識別されたエンティティの1つまたは複数の埋め込みに対応するポイントが、第2のコンテキストと関連付けられた埋め込み空間内の判断されたポイントに対応するポイントの閾値距離内にある。
本発明による1つの実施形態において、方法は、
クエリを受け取ることであって、クエリがユーザによって入力される、受け取ることと、
クエリをベクトル表現に変換することと、
クエリと関連付けられた埋め込み空間内のポイントを識別するためにベクトル表現を評価することと、
検索アルゴリズムを埋め込み空間に適用することによって、クエリに関連するものとして1つまたは複数のエンティティを識別することであって、識別されたエンティティの1つまたは複数の埋め込みに対応するポイントが、クエリと関連付けられた埋め込み空間内の識別されたポイントに対応するポイントの閾値距離内にある、識別することと
を含むことができる。
本発明による1つの実施形態において、1つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、
エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの第1のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の第1のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第1のセットの各エンティティ属性が、複数のエンティティの少なくとも1つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能になり得る。
本発明による1つの実施形態において、1つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、
エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第2のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第2のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1および第2のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能になり得る。
本発明による1つの実施形態において、システムは、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を有する、プロセッサに連結されたメモリとを備えることができ、プロセッサが、命令を実行すると、
エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの第1のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の第1のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第1のセットの各エンティティ属性が、複数のエンティティの少なくとも1つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能である。
本発明による1つの実施形態において、システムは、
エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第2のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第2のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第1および第2のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
本発明によるさらなる実施形態において、1つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
本発明によるさらなる実施形態において、システムは、1つまたは複数のプロセッサと、プロセッサに連結され、プロセッサによって実行可能な命令を有する少なくとも1つのメモリとを備え、プロセッサは、命令を実行すると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
本発明によるさらなる実施形態において、好ましくはコンピュータ可読非一時的ストレージ媒体を備えるコンピュータプログラム製品は、データ処理システム上で実行されると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
上記または下記で開示される実施形態は、単なる例にすぎず、本開示の範囲はこれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップの全てまたはいくつかを含むか、いずれも含まなくてもよい。本発明による実施形態は、方法、ストレージ媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲の中で具体的に開示されており、例えば、方法といった1つの請求項のカテゴリの中で言及されるいずれかの特徴は、例えばシステムといった別の請求項のカテゴリの中でも同様に特許請求されることが可能である。添付の特許請求の範囲に記載された従属性または参照は、正式な理由に対してのみ選ばれる。しかし、任意の先の請求項(特に多数項従属性)を意図的に参照した結果生じるいずれかの主題も同様に特許請求されることが可能であり、その結果、請求項と請求項の特徴との任意の組合せが開示され、添付の特許請求の範囲の中で選ばれる従属性にかかわらず特許請求されることが可能である。特許請求されることが可能な主題は、添付の特許請求の範囲に記載されている特徴の組合せだけでなく、特許請求の範囲内の特徴の他の任意の組合せも含み、特許請求の範囲に記載された各特徴は、特許請求の範囲内の他の任意の特徴、または他の特徴の組合せと組み合わされてよい。さらに、本明細書に記載されるか、描写される実施形態および特徴のいずれかは、別々の請求項において、および/あるいは本明細書に記載されるか、描写される任意の実施形態もしくは特徴との任意の組合せ、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで特許請求されることが可能である。
ソーシャルネットワーキングシステムと関連付けられたネットワーク環境の例を示す図である。 ソーシャルグラフの例を示す図である。 ディープラーニングモデルの例を示す図である。 エンティティおよび関連付けられたエンティティ属性を埋め込み空間に埋め込むための方法の例を示す図である。 ディープラーニングモデルを使用して生成された埋め込み空間のビューの例を示す図である。 関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法の例を示す図である。 コンピュータシステムの例を示す図である。
システムの全体像
図1は、ソーシャルネットワーキングシステムと関連付けられたネットワーク環境100の例を示している。ネットワーク環境100は、ネットワーク110によって互いに接続されたクライアントシステム130、ソーシャルネットワーキングシステム160、およびサードパーティシステム170を含む。図1は、クライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110の特定の配置を示しているが、本開示は、クライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110の任意の適切な配置を想定する。限定ではなく、例として、クライアントシステム130、ソーシャルネットワーキングシステム160、およびサードパーティシステム170のうちの2つ以上が、ネットワーク110を迂回して、互いに直接的に接続されることが可能である。別の例として、クライアントシステム130、ソーシャルネットワーキングシステム160、およびサードパーティシステム170のうちの2つ以上が、全体的または部分的に、物理的または論理的に互いに同じ場所に配置されることが可能である。さらに、図1は、特定の数のクライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110を示しているが、本開示は、任意の適切な数のクライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110を想定する。限定ではなく、例として、ネットワーク環境100は、複数のクライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110を含むことができる。
本開示は、任意の適切なネットワーク110を想定する。限定ではなく、例として、ネットワーク110の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、広域ネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組合せを含むことができる。ネットワーク110は、1つまたは複数のネットワーク110を含むことができる。
リンク150は、クライアントシステム130、ソーシャルネットワーキングシステム160、およびサードパーティシステム170を通信ネットワーク110に、または互いに接続することができる。本開示は、任意の適切なリンク150を想定する。特定の実施形態において、1つまたは複数のリンク150は、1つまたは複数の有線リンク(例えば、デジタル加入者線(DSL)、もしくはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)など)、ワイヤレスリンク(例えば、Wi−Fi、もしくはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)など)、または光リンク(例えば、同期光ネットワーク(SONET)、もしくは同期デジタル階層(SDH)など)を含む。特定の実施形態において、1つまたは複数のリンク150はそれぞれ、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2つ以上のこのようなリンク150の組合せを含む。リンク150は、ネットワーク環境100の全体を通して必ずしも同じである必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の第2のリンク150とは1つまたは複数の点で相違してよい。
特定の実施形態において、クライアントシステム130は、ハードウェア、ソフトウェア、もしくは埋め込み式ロジックコンポーネント、または2つ以上のこのようなコンポーネントの組合せを含む電子デバイスであってよく、クライアントシステム130によって実装またはサポートされる適正な機能を実行することができる。限定ではなく、例として、クライアントシステム130は、デスクトップコンピュータ、ノートブックもしくはラップトップコンピュータ、ネットブック、タブレット型コンピュータ、eブックリーダ、GPSデバイス、カメラ、パーソナルデジタルアシスタント(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張現実デバイス/仮想現実デバイス、他の適切な電子デバイス、またはこれらの任意の適切な組合せなどのコンピュータシステムを含むことができる。本開示は、任意の適切なクライアントシステム130を想定する。クライアントシステム130は、クライアントシステム130のネットワークユーザがネットワーク110にアクセスすることを可能にすることができる。クライアントシステム130は、このユーザが、他のクライアントシステム130の他のユーザと通信することを可能にすることができる。
特定の実施形態において、クライアントシステム130は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブブラウザ132を含むことができ、1つまたは複数のアドオン、プラグイン、またはTOOLBARもしくはYAHOO TOOLBARなどの他の拡張を有することができる。クライアントシステム130のユーザは、ユニフォームリソースロケータ(URL)、またはウェブブラウザ132を特定のサーバ(サーバ162、もしくはサードパーティシステム170と関連付けられたサーバなど)に導く他のアドレスを入力することができ、ウェブブラウザ132は、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信することができる。サーバは、HTTP要求を受け入れ、HTTP要求に応答して、1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム130に通信することができる。クライアントシステム130は、ユーザに提示するために、サーバからのHTMLファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを想定する。限定ではなく、例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。このようなページは、限定ではなく、例として、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたスクリプトなどのスクリプト、AJAX(Asynchronous JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトの組合せ、ならびに同様のものを実行することもできる。本明細書において、ウェブページへの言及は、適正な場合、(ウェブページをレンダリングするためにブラウザが使用できる)1つまたは複数の対応するウェブページファイルを含み、逆もまた同様である。
特定の実施形態において、ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークをホストできるネットワークアドレス可能なコンピューティングシステムであってよい。ソーシャルネットワーキングシステム160は、例えば、ユーザプロフィールデータ、コンセプトプロフィールデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関連した他の適切なデータなどのソーシャルネットワーキングデータを生成すること、格納すること、受け取ること、および送付することができる。ソーシャルネットワーキングシステム160は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を介してアクセスされることが可能である。特定の実施形態において、ソーシャルネットワーキングシステム160は、1つまたは複数のサーバ162を含むことができる。各サーバ162は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンタに及ぶ分散型サーバであってよい。サーバ162は、限定ではなく、例として、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ(exchange server)、データベースサーバ、プロキシサーバ、本明細書で説明される機能もしくは処理を行うのに適した別のサーバ、またはこれらの任意の組合せなどの様々なタイプのものでよい。特定の実施形態において、各サーバ162は、ハードウェア、ソフトウェア、あるいは埋め込み式ロジックコンポーネント、またはサーバ162によって実装もしくはサポートされる適正な機能を実行するための2つ以上のこのようなコンポーネントの組合せを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストア164を含むことができる。データストア164は、様々なタイプの情報を格納するために使用されてよい。特定の実施形態において、データストア164に格納された情報は、固有のデータ構造に従って編成されてよい。特定の実施形態において、各データストア164は、リレーショナルデータベース、カラムナデータベース、相互関係データベース、または他の適切なデータベースであってよい。本開示は、データベースの特定のタイプを説明または図示しているが、本開示は、データベースの任意の適切なタイプを想定する。特定の実施形態は、クライアントシステム130、ソーシャルネットワーキングシステム160、またはサードパーティシステム170が、データストア164に格納された情報を管理、取得、修正、追加、または削除することを可能にするインターフェースを提供することができる。
特定の実施形態において、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストア164に1つまたは複数のソーシャルグラフを格納することができる。特定の実施形態において、ソーシャルグラフは、((それぞれが特定のユーザに対応する)複数のユーザノード、または(それぞれが特定のコンセプトに対応する)複数のコンセプトノードを含むことができる)複数のノードと、ノードに接続する複数のエッジとを含むことができる。ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供することができる。特定の実施形態において、ユーザは、ソーシャルネットワーキングシステム160を介してオンラインソーシャルネットワークに参加し、彼らがつなげられたいと思うソーシャルネットワーキングシステム160の他の何人かのユーザへのつながり(例えば関係)を追加することができる。本明細書で、用語「友達(friend)」は、ソーシャルネットワーキングシステム160を介してユーザがつながり、関連付け、または関係を形成した、ソーシャルネットワーキングシステム160の他の任意のユーザを指すことができる。
特定の実施形態において、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160によってサポートされる様々なタイプのアイテムまたはオブジェクトに対するアクションを行う能力をユーザに提供することができる。限定ではなく、例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム160のユーザが属する可能性があるグループもしくはソーシャルネットワーク、ユーザが興味をもつ可能性があるイベントもしくはカレンダエントリ、ユーザが使用する可能性があるコンピュータベースのアプリケーション、サービスを介してユーザがアイテムを売買することを可能にするトランザクション、ユーザが行う可能性がある広告との対話、または他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャルネットワーキングシステム160内で表されることが可能な、またはソーシャルネットワーキングシステム160とは別のものであり、ネットワーク110を介してソーシャルネットワーキングシステム160に連結された、サードパーティシステム170の外部システムによって表されることが可能な、どのようなものとでも対話することができる。
特定の実施形態において、ソーシャルネットワーキングシステム160は、様々なエンティティをリンクできることが可能である。限定ではなく、例として、ソーシャルネットワーキングシステム160は、ユーザが互いに対話すること、ならびにサードパーティシステム170または他のエンティティからコンテンツを受け取ることを可能にすることができ、また、アプリケーションプログラミングインターフェース(API)または他の通信チャネルを通じて、ユーザがこれらのエンティティと対話することを可能にすることができる。
特定の実施形態において、サードパーティシステム170は、サーバの1つもしくは複数のタイプ、1つもしくは複数のデータストア、APIを含むが限定されない1つもしくは複数のインターフェース、1つもしくは複数のウェブサービス、1つもしくは複数のコンテンツソース、1つもしくは複数のネットワーク、または例えば、サーバが通信できる他の任意の適切な構成要素を含むことができる。サードパーティシステム170は、ソーシャルネットワーキングシステム160を運用するエンティティとは異なるエンティティによって運用されることが可能である。特定の実施形態において、しかし、ソーシャルネットワーキングシステム160およびサードパーティシステム170は、ソーシャルネットワーキングシステム160またはサードパーティシステム170のユーザにソーシャルネットワーキングサービスを提供するために、互いに協力して動作することができる。この意味では、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングサービスおよび機能をインターネット中のユーザに提供するために、サードパーティシステム170などの他のシステムが使用できるプラットフォームまたはバックボーンを提供することができる。
特定の実施形態において、サードパーティシステム170は、サードパーティコンテンツオブジェクトプロバイダを含むことができる。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム130に通信されることが可能なコンテンツオブジェクトの1つまたは複数のソースを含むことができる。限定ではなく、例として、コンテンツオブジェクトは、例えば、映画の上映時間、映画の批評、レストランの批評、レストランのメニュー、製品情報および批評、または他の適切な情報など、ユーザにとって関心のあるもの、またはアクティビティに関する情報を含むことができる。限定ではなく、別の例として、コンテンツオブジェクトは、クーポン、割引チケット、商品券、または他の適切なインセンティブオブジェクトなどの、インセンティブコンテンツオブジェクトを含むことができる。
特定の実施形態において、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160とのユーザの対話を拡張できる、ユーザが生成したコンテンツオブジェクトも含む。ユーザが生成したコンテンツは、ソーシャルネットワーキングシステム160にユーザが、追加、アップロード、送付、または「ポスト」することができるどのようなものでも含むことができる。限定ではなく、例として、ユーザは、クライアントシステム130からソーシャルネットワーキングシステム160にポストを通信する。ポストは、ステータスアップデートもしくは他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、または他の類似のデータもしくは媒体などのデータを含むことができる。コンテンツは、ニュースフィードまたはストリームなど、「通信チャネル」を通じてサードパーティによってソーシャルネットワーキングシステム160に追加されてもよい。
特定の実施形態において、ソーシャルネットワーキングシステム160は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ウェブサーバ、アクションロガー、API要求サーバ、関連性ランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト公開ログ、推測モジュール、認可/プライバシサーバ、検索モジュール、広告ターゲットモジュール、ユーザインターフェースモジュール、ユーザプロフィールストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含むことができる。ソーシャルネットワーキングシステム160は、ネットワークインターフェース、セキュリティメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク動作コンソール、他の適切な構成要素、またはこれらの任意の適切な組合せなどの、適切な構成要素を含むこともできる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ユーザプロフィールを格納するための1つまたは複数のユーザプロフィールストアを含むことができる。ユーザプロフィールは、例えば、経歴情報、人口統計学情報、行動情報、ソーシャル情報、あるいは職業経験、教育履歴、趣味もしくは好み、興味、親近感、またはロケーションなどの他のタイプの記述情報を含むことができる。興味情報は、1つまたは複数のカテゴリに関連した興味含むことができる。カテゴリは、一般的または固有のものであってよい。限定ではなく、例として、靴のブランドについての記事にユーザが「いいね!」と表明する場合、カテゴリは、このブランド、すなわち「靴」または「衣類」に関する一般的なカテゴリであってよい。つながりストアは、ユーザについてのつながり情報を格納するために使用されることが可能である。つながり情報は、類似もしくは共通の職業経験、グループメンバシップ、趣味、教育履歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザを示すことができる。つながり情報は、(内部と外部両方の)様々なユーザとコンテンツの間にあるユーザが定義したつながりを含むこともできる。ウェブサーバは、ネットワーク110を介して、1つもしくは複数のクライアントシステム130、または1つもしくは複数のサードパーティシステム170にソーシャルネットワーキングシステム160をリンクするために使用されることが可能である。ウェブサーバは、メールサーバ、またはソーシャルネットワーキングシステム160と1つまたは複数のクライアントシステム130との間のメッセージを受け取るため、およびルーティングするための他のメッセージ機能を含むことができる。API要求サーバは、1つまたは複数のAPIをコールすることによって、ソーシャルネットワーキングシステム160からの情報に、サードパーティシステム170がアクセスすることを可能にすることができる。アクションロガーは、ソーシャルネットワーキングシステム160上、または外でのユーザのアクションについての、ウェブサーバからの通信を受け取るために使用されることが可能である。アクションログと共に、サードパーティコンテンツオブジェクトへのユーザ公開に関する、サードパーティコンテンツオブジェクトログが維持されてよい。通知コントローラは、コンテンツオブジェクトに関する情報をクライアントシステム130に提供することができる。情報は、クライアントシステム130に通知としてプッシュされることが可能であり、また情報は、クライアントシステム130から要求が受け取られたことに応答してクライアントシステム130からプルされることが可能である。認可サーバは、ソーシャルネットワーキングシステム160のユーザの1つまたは複数のプライバシ設定を実施するために使用されることが可能である。ユーザのプライバシ設定は、ユーザと関連付けられた特定の情報がどのように共有されることが可能であるかを判断する。認可サーバは、ユーザのアクションが、ソーシャルネットワーキングシステム160によってログに記録されること、または例えば適正なプライバシ設定を設定することなどによって、他のシステム(例えばサードパーティシステム170)と共有されることについて、ユーザがオプトインまたはオプトアウトすることを可能にすることができる。サードパーティコンテンツオブジェクトストアは、サードパーティシステム170などのサードパーティから受け取られたコンテンツオブジェクトを格納するために使用されることが可能である。ロケーションストアは、ユーザと関連付けられたクライアントシステム130から受け取られたロケーション情報を格納するために使用されることが可能である。広告価格設定モジュールは、通知の形で関連広告をユーザに提供するために、ソーシャル情報、現在時刻、ロケーション情報、または他の適切な情報を組み合わせることができる。
ソーシャルグラフ
図2は、ソーシャルグラフ200の例を示す。特定の実施形態において、ソーシャルネットワーキングシステム160は、1つまたは複数のソーシャルグラフ200を1つまたは複数のデータストアに格納することができる。特定の実施形態において、ソーシャルグラフ200は、(複数のユーザノード202または複数のコンセプトノード204を含むことができる)複数のノードと、ノードを接続する複数のエッジ206とを含むことができる。説明のために、2次元の視覚マップ表現で、図2に示されるソーシャルグラフ200の例が示される。特定の実施形態において、ソーシャルネットワーキングシステム160、クライアントシステム130、またはサードパーティシステム170は、適切なアプリケーションに対するソーシャルグラフ200および関連ソーシャルグラフ情報にアクセスすることができる。ソーシャルグラフ200のノードおよびエッジは、例えば(ソーシャルグラフデータベースなどの)データストアに、データオブジェクトとして格納されてよい。このようなデータストアは、ソーシャルグラフ200のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含むことができる。
特定の実施形態において、ユーザノード202は、ソーシャルネットワーキングシステム160のユーザに対応することが可能である。限定ではなく、例として、ユーザは、ソーシャルネットワーキングシステム160と、またはソーシャルネットワーキングシステム160上で、対話または通信する個人(人間ユーザ)、エンティティ(例えば、企業、ビジネス、もしくはサードパーティアプリケーション)、または(例えば、個人もしくはエンティティの)グループであってよい。特定の実施形態において、ソーシャルネットワーキングシステム160にユーザがアカウントを登録すると、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード202を作り出し、1つまたは複数のデータストアにユーザノード202を格納することができる。本明細書で説明されるユーザおよびユーザノード202は、適正な場合、登録済ユーザおよび登録済ユーザと関連付けられたユーザノード202を指すことができる。さらに、または代替として、本明細書で説明されるユーザおよびユーザノード202は、適正な場合、ソーシャルネットワーキングシステム160に登録されていないユーザを指すことができる。特定の実施形態において、ユーザノード202は、ユーザによってもたらされた情報、またはソーシャルネットワーキングシステム160を含む様々なシステムによって集められた情報と関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性、配偶者の有無、家族状況、勤務先、学歴、好み、興味、または他の人口統計学情報を提供することができる。特定の実施形態において、ユーザノード202は、ユーザと関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられることが可能である。特定の実施形態において、ユーザノード202は、1つまたは複数のウェブページに対応することが可能である。
特定の実施形態において、コンセプトノード204は、コンセプトに対応することが可能である。限定ではなく、例として、コンセプトは、(例えば、映画館、レストラン、ランドマーク、または都市などの)場所、(例えば、ソーシャルネットワークシステム160と関連付けられたウェブサイト、もしくはウェブアプリケーションサーバと関連付けられたサードパーティのウェブサイトなどの)ウェブサイト、(例えば、人、ビジネス、グループ、スポーツチーム、もしくは有名人などの)エンティティ、ソーシャルネットワーキングシステム160内、もしくはウェブアプリケーションサーバなどの外部サーバ上に置かれることがある(例えば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、もしくはアプリケーションなどの)リソース、(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、もしくは書かれた作品などの)物的財産もしくは知的財産、ゲーム、アクティビティ、アイデアもしくは理論、拡張現実環境/仮想現実環境におけるオブジェクト、別の適切なコンセプト、または2つ以上のこのようなコンセプトに対応することが可能である。コンセプトノード204は、ユーザによってもたらされたコンセプトについての情報、またはソーシャルネットワーキングシステム160を含む様々なシステムによって集められた情報と関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、1つもしくは複数の画像(例えば、本のカバーページの画像)、ロケーション(例えば、住所もしくは地理的な位置)、(URLと関連付けられることが可能な)ウェブサイト、連絡先情報(例えば、電話番号もしくは電子メールアドレス)、他の適切なコンセプト情報、またはこのような情報の任意の適切な組合せを含むことができる。特定の実施形態において、コンセプトノード204は、コンセプトノード204と関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられてよい。特定の実施形態において、コンセプトノード204は、1つまたは複数のウェブページに対応することが可能である。
特定の実施形態において、ソーシャルグラフ200内のノードは、(「プロフィールページ」と呼ばれることがある)ウェブページを表すことができ、またウェブページによって表されることができる。プロフィールページは、ソーシャルネットワーキングシステム160によってホストされてよく、またソーシャルネットワーキングシステム160にとってアクセス可能であってよい。プロフィールページは、サードパーティサーバ170と関連付けられたサードパーティのウェブサイト上でホストされてもよい。限定ではなく、例として、特定の外部のウェブページに対応するプロフィールページは、特定の外部のウェブページであってよく、プロフィールページは、特定のコンセプトノード204に対応することが可能である。プロフィールページは、他のユーザの全ての、または選択されたサブセットによって閲覧可能であってよい。限定ではなく、例として、ユーザノード202は、対応するユーザが、コンテンツを追加すること、発表すること、またはそうでなければ自分自身を表現することができる、対応するユーザプロフィールページを有することができる。限定ではなく、別の例として、コンセプトノード204は、特に、コンセプトノード204に対応するコンセプトに関連して、1人または複数のユーザがコンテンツを追加すること、発表すること、または自分自身を表現することができる、対応するコンセプトプロフィールページを有することができる。
特定の実施形態において、コンセプトノード204は、サードパーティシステム170によってホストされるサードパーティのウェブページまたはリソースを表すことができる。サードパーティのウェブページまたはリソースは、他の要素の中でも、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す(例えば、JavaScript、AJAX、もしくはPHPコードで実装されることが可能な)他の対話可能オブジェクトを含むことができる。限定ではなく、例として、サードパーティのウェブページは、「いいね!」、「チェックイン」、「食べる」、「推奨」、または別の適切なアクションまたはアクティビティなどの選択可能アイコンを含むことができる。サードパーティのウェブページを閲覧しているユーザは、アイコンのうちの1つ(例えば「チェックイン」)を選択することによってアクションを行うことができ、このことにより、クライアントシステム130は、ユーザのアクションを示すメッセージをソーシャルネットワーキングシステム160に送る。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード202と、サードパーティのウェブページまたはリソースに対応するコンセプトノード204との間のエッジ(例えば、チェックインタイプのエッジ)を作り出し、1つまたは複数のデータストアにエッジ206を格納することができる。
特定の実施形態において、ソーシャルグラフ200内の1対のノードは、1つまたは複数のエッジ206によって互いに接続されることが可能である。1対のノードを接続するエッジ206は、1対のノード間の関係を表すことができる。特定の実施形態において、エッジ206は、1対のノード間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含むことができ、また表すことができる。限定ではなく、例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャルネットワーキングシステム160は、「友達要求」を第2のユーザに送ることができる。第2のユーザが「友達要求」を承認すると、ソーシャルネットワーキングシステム160は、ソーシャルグラフ200内で、第1のユーザのユーザノード202を第2のユーザのユーザノード202に接続するエッジ206を作り出し、データストア164の1つまたは複数にソーシャルグラフ情報としてエッジ206を格納することができる。図2の例において、ソーシャルグラフ200は、ユーザ「A」のユーザノード202と、ユーザ「B」のユーザノード202との間の友達関係を示すエッジ206、およびユーザ「C」のユーザノード202と、ユーザ「B」のユーザノード202との間の友達関係を示すエッジを含む。本開示は、特定の属性を有する特定のエッジ206が特定のユーザノード202を接続することを説明または図示しているが、本開示は、任意の適切な属性を有する任意の適切なエッジ206がユーザノード202を接続することを想定する。限定ではなく、例として、エッジ206は、友人関係、家族関係、ビジネスもしくは雇用関係、(例えば、いいね!と表明すること、等を含む)ファン関係、フォロワ関係、(例えば、アクセスすること、閲覧すること、チェックインすること、共有すること、等を含む)ビジタ関係、加入者関係、上下関係、互恵関係、非互恵関係、別の適切なタイプの関係、または2つ以上のこのような関係を表すことができる。さらに、本開示は全体的に、ノードを接続されているものとして説明しているが、本開示は、ユーザまたはコンセプトも接続されているものとして説明する。本明細書において、接続されているユーザまたはコンセプトへの言及は、適正な場合、1つまたは複数のエッジ206によってソーシャルグラフ200に接続されているこれらのユーザまたはコンセプトに対応するノードを指すことができる。
特定の実施形態において、ユーザノード202とコンセプトノード204との間のエッジ206は、コンセプトノード204と関連付けられたコンセプトに対する、ユーザノード202と関連付けられたユーザによって行われる特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図2に示されるように、ユーザは、コンセプトに対して「いいね!と表明した」、「通った」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「観た」可能性があり、これらのそれぞれが、エッジのタイプまたはサブタイプに対応することが可能である。コンセプトノード204に対応するコンセプトプロフィールページは、例えば、(例えば、クリック可能な「チェックイン」アイコンなどの)選択可能な「チェックイン」アイコン、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステム160は、個々のアクションに対応するユーザのアクションに応答して、「お気に入り」エッジ、または「チェックイン」エッジを作り出すことができる。限定ではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンラインミュージックアプリケーションであるSPOTIFY)を使用して、特定の歌(「Imagine」)を聴くことができる。この場合、ソーシャルネットワーキングシステム160は、歌およびアプリケーションに対応するユーザに対応するユーザノード202と、コンセプトノード204との間の(図2に示すような)「聴いた」エッジ206、および「使用した」エッジを作り出し、ユーザが歌を聴き、アプリケーションを使用したということを示すことができる。さらに、ソーシャルネットワーキングシステム160は、歌に対応するコンセプトノード204と、アプリケーションに対応するコンセプトノード204との間の(図2に示すような)「プレイした」エッジ206を作り出し、特定の歌が特定のアプリケーションによってプレイされたということを示すことができる。この場合、「プレイした」エッジ206は、外部オーディオファイル(歌「imagine」)に対して外部アプリケーション(SPOTIFY)によって行われたアクションに対応する。本開示は、特定の属性を有する特定のエッジ206が、ユーザノード202とコンセプトノード204を接続することを説明しているが、本開示は、任意の適切な属性を有する任意の適切なエッジ206が、ユーザノード202とコンセプトノード204を接続することを想定する。さらに、本開示は、ユーザノード202とコンセプトノード204との間のエッジが、単一の関係を表すことを説明しているが、本開示は、ユーザノード202とコンセプトノード204との間のエッジが、1つまたは複数の関係を表すことを想定する。限定ではなく、例として、エッジ206は、ユーザが、特定のコンセプトに対して、いいね!と表明すること、および特定のコンセプトを使用したことの両方を表すことができる。一方、別のエッジ206は、(ユーザ「E」のユーザノード202と、「SPOTIFY」のコンセプトノード204との間の、図2に示すような)ユーザノード202とコンセプトノード204との間の関係(または多様な単一の関係)のそれぞれのタイプを表すことができる。
特定の実施形態において、ソーシャルネットワーキングシステム160は、ソーシャルグラフ200内にユーザノード202とコンセプトノード204との間のエッジ206を作り出すことができる。限定ではなく、例として、(例えば、ウェブブラウザ、またはユーザのクライアントシステム130によってホストされる専用アプリケーションを使用することなどによって)コンセプトプロフィールページを閲覧するユーザは、「いいね!」アイコンをクリックまたは選択することによってコンセプトノード204によって表されるコンセプトに自分がいいね!と表明したことを示すことができ、これにより、ユーザのクライアントシステム130に、コンセプトプロフィールページと関連付けられたコンセプトについてのユーザのいいね!を示すメッセージをソーシャルネットワーキングシステム160へ送らせることができる。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザとコンセプトノード204との間の「いいね!」エッジ206によって示されるような、ユーザと関連付けられたユーザノード202と、コンセプトノード204との間のエッジ206を作り出すことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストアにエッジ206を格納することができる。特定の実施形態において、エッジ206は、特定のユーザアクションに応答して、ソーシャルネットワーキングシステム160によって自動的に形成されることが可能である。限定ではなく、例として、第1のユーザが画像をアップロードすること、映画を観ること、または歌を聴くことを行うと、第1のユーザに対応するユーザノード202と、これらのコンセプトに対応するコンセプトノード204との間にエッジ206が形成されることが可能である。本開示は、特定の手法で特定のエッジ206を形成することを説明しているが、本開示は、任意の適切な手法で任意の適切なエッジ206を形成することを想定する。
ディープラーニングモデルの訓練
特定の実施形態は、1つまたは複数のディープラーニングモデルを使用して、所与のエンティティの代用として、または補完物として、1つまたは複数のエンティティを識別する。ディープラーニングモデルは、エンティティと関連付けられた異種データを各エンティティが組み込む埋め込み空間内でエンティティの埋め込みを生成するために使用されることが可能である。限定ではなく、例として、エンティティの埋め込みは、個々の埋め込みと関連付けられている任意の適切な数のエンティティ属性に関する情報を含むことができる。エンティティは、限定ではなく、例として、ソーシャルグラフのエンティティと関連付けられたページ(例えば、ソーシャルネットワーキングシステム160のユーザまたはコンセプトと関連付けられたページ)、ウェブページ、他の任意の適切なエンティティ、またはこれらの任意の組合せを含むことができる。本明細書で使用されるように、エンティティ属性は、限定ではなく、例として、ユーザ(例えば、エンティティと対話したことがあるユーザ)、トピック(例えば、エンティティによって行われたポスト、またはエンティティ上のポストと関連付けられたトピック)、カテゴリ(例えば、エンティティからのカテゴリプロフィールデータ)、ロケーションデータ(例えば、エンティティと関連付けられたロケーション)、エンティティサイズ(例えば、「ファンになった」もしくは「いいね!と表明した」、またはそうでなければエンティティと肯定的に対話したことがあるユーザの数)、エンティティの他の任意の適切なプロパティ、あるいはこれらの任意の組合せを含むことができる。
図3は、ディープラーニングモデル310の例を示す。ディープラーニングモデル310は、機械学習モデル、ニューラルネットワーク、潜在ニューラルネットワーク、他の任意の適切なディープラーニングモデル、またはこれらの任意の組合せであってよい。特定の実施形態において、ディープラーニングモデル310は、複数の抽象化レイヤを有することができる。入力302、304、306、および308は、任意の適切な数のエンティティであってよい。特定の実施形態において、出力312は、埋め込み空間内のエンティティの1つまたは複数の埋め込みであってよい。特定の実施形態において、出力312は、埋め込み空間内のエンティティ属性の埋め込みであってよい。埋め込み空間は、多次元空間(例えば、d−次元、ここで、dは、容量を制御するハイパーパラメータである)であってよく、コンテンツ項目の埋め込みに対応する複数のポイントを含むことができる。本明細書で使用されるように、エンティティの埋め込みは、埋め込み空間内のエンティティの表現を指す。特定の数の入力エンティティ302、304、306、および308が図3に示されるが、ディープラーニングモデル310は、任意の適切な数の入力エンティティ302、304、306、および308に対する、エンティティの埋め込みを生成することができる。
特定の実施形態において、ディープラーニングモデル310(例えばニューラルネットワーク)は、
Figure 0006744993
におけるベクトルにエンティティをマッピングする、1つまたは複数のインデックスを含むことができ、ここで、
Figure 0006744993
は実数のセットを表し、dは容量を制御するハイパーパラメータである。ベクトルは、d次元の強度ベクトルであってよい。本明細書で使用されるように、強度値は、−1から1までの範囲内の任意の適切な値であってよい。エンティティのベクトル表現のそれぞれは、埋め込み空間内の個々のポイントに座標を提供することができる。特定の数の入力エンティティ302、304、306、および308が図3に示されるが、ディープラーニングモデル310は、任意の適切な数のエンティティ302、304、306、および308と、ベクトル表現との間でマッピングを行うことができる。
ディープラーニングモデル310は、エンティティの最適な埋め込みを生成するように訓練されることが可能である。特定の実施形態において、ディープラーニングモデル310は、1つまたは複数のディープラーニングモデルを含むことができる。ディープラーニングモデル310は、ディープラーニングモデル310が訓練されると動的に更新されることが可能な、1つまたは複数のインデックスを含むことができる。1つまたは複数のインデックスは、ディープラーニングモデル310の訓練段階で生成されることが可能である。ディープラーニングモデル310は、限定ではなく、例として、ニューラルネットワーク、潜在ニューラルネットワーク、または他の任意の適切なディープラーニングモデルであってよい。ディープラーニングモデル310は、ランダム分布を使用して初期化されることが可能である。すなわち、ディープラーニングモデル310は、マッピングを最初にランダムに割り当てておくことができる(すなわち、エンティティ302、304、306、および308とベクトル表現との間でのマッピングであり、このマッピングに基づいてエンティティ302、304、306、および308の埋め込みが生成されることが可能である)。限定ではなく、例として、ランダム分布はガウス分布であってよい。訓練は、最初のマッピングよりもさらに最適なマッピングを生成する、ディープラーニングモデル310の1つまたは複数のインデックスを生じることができる。
本開示は、ソーシャルネットワーキングシステム160によって実装されているものとして、図3の特定の実施形態を説明し、示しているが、本開示は、任意の適切なプラットフォームまたはシステムによって実装されているものとして、図3の任意の適切な実施形態を想定する。限定ではなく、例として、図3の特定の実施形態は、クライアントシステム130、サードパーティシステム170、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図3の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図3の方法の任意の適切なステップを実行することを想定する。
特定の実施形態において、1つまたは複数のディープラーニングモデル310は、様々なタイプのエンティティ属性に対して動作し、有効な方式(すなわち、ベクトル加算およびベクトル減算をサポートする)で、エンティティ全てと、関連付けられたエンティティ属性データとを圧縮するエンティティの埋め込みを生成することができる。システムは、(例えば、ページと関連付けられた異種データといった)ページの属性を考慮するページの埋め込みを生成することができる。したがって、ページは、限定ではなく、例として、ユーザ、カテゴリ、ロケーション、およびサイズを含む、ページのエンティティ属性と同じ埋め込み空間に効果的に埋め込まれることが可能である。限定ではなく、例として、Homewood Mountain Resortのページに対して、Homewoodのページと関連付けられたユーザデータは、Homewoodのページを「フォローする」または「ファン」である人々を含むことができる。Homewoodのページと関連付けられたトピックデータは、固有のトピックについてのHomewoodのページによるポスト(例えば、Homewoodのページは気象条件に関するポストを行う)、および(例えば、スキー、スノーボード、Tahoe、雪といった)広告ターゲティング内のページによって指定されたトピックを含むことができる。Homewoodのページと関連付けられたカテゴリデータは、(例えば、Lake Tahoe、スキーリゾートといった)ページの管理者によって指定されたラベル付けされたカテゴリ、ユーザによって示されたカテゴリ、および機械学習システムによって判断されたカテゴリを含むことができる。Homewoodのページと関連付けられたロケーションデータは、(例えば、Homewood Mountain Resortの住所といった)ページの管理者によって指定された固有の住所/ロケーション、(例えば、住所にチェックインすることといった)ページと対話したことがある人々のロケーション、および(例えば、Lake TahoeのCalifornia州側といった)ページが広告のターゲットにしたことがあるロケーションを含むことができる。
異種データの反復埋め込み
図4は、エンティティおよび関連付けられたエンティティ属性を埋め込み空間に埋め込むための方法の例を示す。ステップ410において、システムは、エンティティのセットを埋め込み空間に埋め込むことを判断するようにディープラーニングモデル310を訓練することができる。限定ではなく、例として、エンティティは、ソーシャルネットワーキングシステム160のページであってよい。システムは、各ページと関連付けられた、並べられた順番のデータを含む訓練データ使用して、ディープラーニングモデル310を訓練することができる。限定ではなく、例として、システムは、各ページに対して、ユーザが個々のページにも親近感を表現したときにユーザが親近感を表現した一連の他のページ、ページのポストから抽出された一連のトピック、ページの広告の中で使用された一連のトピック、ページと関連付けられた広告キャンペーンの中で使用された一連の広告キーワード、ページの管理者によってページと関連付けられた一連のラベル付けされたカテゴリ、ページと関連付けられた一連のロケーション(例えば、地区、都市、州、国、大陸)、およびページに対して「ファンになった」もしくは「いいね!と表明した」ユーザ数に対応する一連のサイズ情報、または他の任意の適切な一連の訓練データを含む訓練データを使用して、ディープラーニングモデル310を訓練することができる。限定ではなく、例として、埋め込みが生成されているページは、映画IRON MANのページであってよく、訓練データは、THE AVENGERS、CAPTAIN AMERICA、MINNESOTA VIKINGS、およびMINNESOTA TWINSといった、ユーザがIRON MANのページにも親近感を表現したときにユーザが親近感を表現した一連のページを含むことができる。限定ではなく、別の例として、IRON MANのページに対する訓練データは、ANT MAN、映画、プレミア、予告編、およびRobert Downey Jr.といった、IRON MANのページのポストから抽出された一連のトピックを含むことができる。限定ではなく、別の例として、IRON MANのページに対する訓練データは、ANT MAN、映画、劇場、MARVEL、およびアクション映画といった、IRON MANのページと関連付けられた広告キャンペーンからの一連の広告キーワードを含むことができる。限定ではなく、別の例として、Coach Sushiのページに対する訓練データは、寿司、レストラン、日本人、酒、さしみ、および天ぷらといった、ページの管理者によってページと関連付けられた一連のラベル付けされたカテゴリを含むことができる。限定ではなく、別の例として、Coach Sushiのページに対する訓練データは、Adam’s Point、Lake Merritt、Oakland、California、アメリカ合衆国、北アメリカといった、ページと関連付けられた一連の場所、またはページと対話するユーザと関連付けられた一連の場所を含むことができる。
システムは、個々のページと実際に関連付けられている訓練データ(すなわち肯定的なサンプルだけ)を使用して、ディープラーニングモデルを訓練することができる。システムは、限定ではなく、例として、スキップグラムネガティブダウンサンプリング、または他の任意の適切な訓練アルゴリズムを使用して、ディープラーニングモデル310を訓練することができる。特定の実施形態は、エンティティおよびコンテキストを含む、特定の長さのスライドウィンドウを用いる訓練アルゴリズムを使用する。コンテキストは、スライドウィンドウの長さに基づく任意の適切な数の訓練データ項目(例えば、5つの訓練データ項目)を含むことができる。ディープラーニングモデルは、コンテキスト内に特定の訓練データ項目が現れるときにエンティティが現れる条件付き確率を最大化するように訓練されることが可能である。ディープラーニングモデル310を訓練するために使用される訓練アルゴリズムは、対応するベクトル表現がベクトル代数(すなわち、ベクトル加算およびベクトル減算)をサポートする埋め込みを生成することができる。
ステップ410において埋め込みが判断されているエンティティのセットは、任意の適切な数のエンティティを含むことができる。特定の実施形態において、エンティティのセット内のエンティティは、エンティティのコーパスからランダムにサンプリングされてよい。限定ではなく、例として、エンティティのセットは、埋め込みが生成されることになるエンティティ全体の25%を含むことができる。限定ではなく、例として、エンティティのセットは、任意の固定サイズのバッチとして選択されてよい。限定ではなく、例として、エンティティのセットのサイズ(すなわち、エンティティのセット内のエンティティの数)は、ディープラーニングモデル310の訓練の、予め固定されたパラメータであってよい。
ステップ420において、システムは、プーリングアルゴリズムを使用して、エンティティ属性のセットの最初の埋め込みを判断することができる。エンティティはページであってよく、エンティティ属性はページと関連付けられてよい。エンティティ属性は、特定のエンティティ属性タイプのものでよい。エンティティ属性タイプは、限定ではなく、例として、ユーザ(例えば、ページと対話したことがあるユーザ、または他の任意の適切なユーザ)、トピック(例えば、ページによって行われたポストと関連付けられたトピック、もしくはページ上のトピック、ページによって指定された広告トピック、または他の任意の適切なトピック)、カテゴリ(例えば、ページからのカテゴリプロフィールデータ、管理者によってページと関連付けられたラベル付けされたカテゴリ、ユーザによって示されるページと関連付けられたカテゴリ、ソーシャルネットワーキングシステム160の機械学習プロセスによって判断されるページと関連付けられたカテゴリ、または他の任意の適切なカテゴリ)、ロケーションデータ(例えば、ページと関連付けられたロケーション、ページと対話したことがあるユーザと関連付けられたロケーション、ページが広告されたロケーション、または他の任意の適切なロケーション)、エンティティサイズ(例えば、「ファンになったことがある」もしくは「いいね!と表明したことがある」、またはそうでなければページと肯定的に対話したことがあるユーザの数)、ページの他の任意の適切なプロパティ、あるいはこれらの任意の組合せを含むことができる。エンティティ属性のセットは、1つのタイプのエンティティ属性(例えば同種データ)を含むことができる。限定ではなく、例として、エンティティ属性は、エンティティ属性タイプのトピックのものでよく、ページによって行われたポストと関連付けられたトピック、またはページ上にポストされたトピックを含むことができる。トピックは、テキストと関連付けられた任意の適切なサブジェクトまたはラベルであってよい。本明細書で使用されるように、ラベルは、ハッシュタグ、絵文字、ステッカー、表意記号、他の任意の適切なテキストアノテーション、他の任意の適切なキャラクタ、シンボル、または画像であってよく、これらは、それぞれ、文字もしくは単語、またはこれらの任意の組合せの使用の有無にかかわらず、アイデアまたはものを表すことができる。
特定の実施形態において、ステップ410において判断されたエンティティ(例えばページ)のセットの埋め込みは、エンティティ属性(例えばトピック)のセットの最初の埋め込みを構築するために使用されてよい。特定の実施形態において、エンティティのセットの埋め込みを生成するために使用されるプーリングアルゴリズムは、サムプーリングアルゴリズムであってよい。限定ではなく、例として、システムは、個々のトピックと関連付けられているページ(例えば、特定のトピックのエンティティ属性と関連付けられているページ)の埋め込みの合計の平均を計算することによって、エンティティ属性のセット内の各エンティティ属性に対する最初の埋め込みを判断することができる。限定ではなく、例として、トピック「映画」のベクトル表現および対応する埋め込みは、トピック「映画」と関連付けられたページのベクトル表現の合計の平均を計算することによって判断されてよい(すなわち、「映画」は、ページのポストと関連付けられたトピック、またはページ上のトピックである)。特定の実施形態において、γ(topic)で表される、トピックの埋め込みを判断するためのプーリングアルゴリズムは、以下の式によって与えられることが可能である。
Γ(pages)={page:トピックと関連付けられたページ} (1)
Figure 0006744993
本明細書で使用されるように|Γ(pages)|は、トピックと関連付けられているページの埋め込みのセットのサイズを表し、γ(page)は、トピックと関連付けられたページの埋め込みを表す。
ステップ430において、システムは、エンティティ属性のセットの埋め込みを絞り込むようにディープラーニングモデル310を訓練することができる。特定の実施形態において、ステップ410においてエンティティの埋め込みを生成するために使用されるディープラーニングモデル、およびステップ430においてエンティティ属性の埋め込みを絞り込むために使用されるディープラーニングモデルは、同じディープラーニングモデル310であってよい。ディープラーニングモデル310は、ステップ410に関連して説明される技法のいずれかを使用して訓練されることが可能である。限定ではなく、例として、システムは、スキップグラムネガティブダウンサンプリング、または他の任意の適切な訓練アルゴリズムを使用してディープラーニングモデル310を訓練することができる。特定の実施形態において、ディープラーニングモデル310は、トピック訓練データを使用して再訓練されることが可能である。このトピック訓練データは、ディープラーニングモデル310に入力されることが可能であり、トピックの最初の埋め込みは、上述のようなプーリングアルゴリズムを使用して構築されることが可能である。トピック訓練データは、限定ではなく、例として、広告ターゲティングにおいて使用される一連のトピック、もしくはページ上に現れる一連のトピック、またはユーザと関連付けられた一連のトピック、あるいは他の任意の適切なトピック訓練データを含むことができる。ディープラーニングモデル310は次に、エンティティ属性のセットの絞り込まれた埋め込みを生成することができる。
ステップ440において、システムは、プーリングアルゴリズムを使用して、ステップ430において判断されたエンティティ属性のセットの絞り込まれた埋め込みに基づいて、ステップ410からエンティティのセットに対する更新された埋め込みを判断する。システムは、ステップ430において判断されたエンティティ属性のセットの埋め込みに基づいて、ステップ410において判断されたエンティティのセットの埋め込みを修正することができる。特定の実施形態において、エンティティの第1のセットの埋め込みを生成するために使用されるプーリングアルゴリズムは、サムプーリングアルゴリズムであってよい。限定ではなく、例として、IRON MANのページの更新されたベクトル表現および対応する埋め込みは、IRON MANのページ上のポスト、またはIRON MANのページによるポストの中で言及される(ステップ430において判断された)トピックの絞り込まれたベクトル表現の合計を、ページIRON MANの古いベクトル表現に追加することによって判断されてよい(すなわち、ステップ410において判断されてよい)。特定の実施形態において、γ(page)で表される、ページの更新された埋め込みを判断するためのプーリングアルゴリズムは、以下の式によって与えられることが可能である。
Γ(topics)={topic:ページと関連付けられたトピック} (3)
Figure 0006744993
本明細書で使用されるように、|Γ(topics)|は、ページと関連付けられているトピックの埋め込みのセットのサイズを表し、γ(page)は、(例えば、ステップ410において判断されるような)ページの埋め込みを表し、γ(topic)は、(例えば、ステップ430において判断されるような)ページと関連付けられたトピックの絞り込まれた埋め込みを表し、αは係数であり、ここで、α∈(1,0)であり、iは整数である。α項は、更新ステップ(例えば図4のステップ440)の中での変動および学習を減少させることができる。システムは次に、エンティティに対する新しい埋め込みとして、エンティティのセットにエンティティの更新された埋め込みを格納することができる(すなわち、ステップ410において判断された埋め込みを置き替える)。ステップ440において判断されたエンティティの更新された埋め込みは、エンティティ属性(例えばトピック)の埋め込みに基づいて判断されたので、更新された埋め込みは、エンティティ属性に関する情報を含む。
特定の実施形態において、図4のステップ410〜ステップ440は、特定のタイプのエンティティ属性(例えばトピック)の全てを考慮する、エンティティの全てに対する埋め込みをシステムが生成するまで反復して繰り返されてよい。限定ではなく、例として、システムは、エンティティの第1のセットを形成するためにエンティティのコーパスの25%を、またエンティティ属性の第1のセットを形成するために特定のタイプのエンティティ属性のコーパスの25%を、ランダムにサンプリングすることができる。システムは、図4のステップ410〜ステップ440を行う際に、エンティティおよびエンティティ属性のこれらの第1のセットを使用することができる。システムは次に、エンティティの第2のセットを形成するためにエンティティの残りのコーパスの別の25%を、またエンティティ属性の第2のセットを形成するために特定のタイプのエンティティ属性の残りのコーパスの25%を、ランダムにサンプリングすることができる。システムは、図4のステップ410〜ステップ440を行う際に、エンティティおよびエンティティ属性のこれらの第2のセットを使用することができる。システムは次に、エンティティの第3のセットを形成するためにエンティティの残りのコーパスの別の25%を、また第3のエンティティ属性のセットを形成するために特定のタイプのエンティティ属性の残りのコーパスの25%を、ランダムにサンプリングすることができる。システムは、図4のステップ410〜ステップ440を行う際に、エンティティおよびエンティティ属性のこれらの第3のセットを使用することができる。最終的に、システムは、エンティティの第4のセットを形成するためにエンティティのコーパスの残りの25%を、またエンティティ属性の第4のセットを形成するために特定のタイプのエンティティ属性のコーパスの残りの25%を利用することができる。システムは、図4のステップ410〜ステップ440を行う際に、エンティティおよびエンティティ属性のこれらの第4のセットを使用することができる。特定の実施形態において、システムは、ステップ410〜ステップ440の反復の中で、エンティティの更新された埋め込みをランダムに挿入することができる。特定の実施形態において、図4のステップ410〜ステップ440は、ディープラーニングモデル310が収束するまで、反復して繰り返されてよい。特定の実施形態において、図4のステップ440においてエンティティの埋め込みが更新されると、この反復と関連付けられた特定のセット内の埋め込みだけでなく、エンティティの埋め込みの全てが更新されることが可能である(すなわち、エンティティの埋め込みの第4のセットだけでなく、エンティティの埋め込みの第1、第2、第3、および第4のセットが更新されることが可能である)。限定ではなく、例として、システムが図4のステップ440を行うたびに、システムは、個々のエンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて(すなわち、プーリングアルゴリズムを使用して)、各エンティティの埋め込みを修正する。
特定の実施形態において、システムは、2つ以上のタイプのエンティティ属性を考慮する(例えば基づく)エンティティの埋め込みを判断することができる。限定ではなく、例として、エンティティは、ソーシャルネットワーキングシステム160のページであってよく、第1のタイプのエンティティ属性はトピックであってよい。同じ例において、システムは、(例えば、ディープラーニングモデル310が収束するまで)図4のステップ410〜ステップ440を繰り返し、これらのページのそれぞれに対する、更新された埋め込みを反復して判断することができる。システムは、ページの最初に判断された埋め込みの代わりに、ページの更新された埋め込みを格納することができる。システムは次に、同じ処理を行い、第2のタイプのエンティティ属性(例えばロケーション)を考慮する、ページの新たに更新された埋め込みを反復して判断することができる。ステップ420において、システムは、個々のトピックと関連付けられているページ(例えば、特定のロケーションのエンティティ属性と関連付けられているページ)の埋め込みの合計の平均を計算することによって、エンティティ属性の第2のセット内の各エンティティ属性に対する最初の埋め込みを判断することができる。ステップ430において、システムは、これらの埋め込みを絞り込むために、ロケーションデータの訓練セットを使用してディープラーニングモデルを訓練することができる。ステップ430において、システムは、プーリングアルゴリズムを使用して、ページの埋め込みのランダムにサンプリングされたバッチに対する、更新された埋め込み(すなわち、トピックの埋め込みに基づくページの埋め込み)を判断することができる。システムは、個々のページと関連付けられているトピックおよびロケーションに関する情報を考慮する、ページの更新された埋め込みが判断されるまで、ロケーションのエンティティ属性のセットを使用して、図4のステップを反復して繰り返すことができる。特定の実施形態において、システムは、様々なタイプの任意の適切な数のエンティティ属性に関する情報をエンティティの埋め込みが含むまで、この処理(すなわち図4のステップ410〜ステップ440)を反復して繰り返すことができる。
特定の実施形態は、適正な場合、図4の方法の1つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で発生するものとして図4の方法の特定のステップを説明し、示しているが、本開示は、図4の方法の任意の適切なステップが任意の適切な順序で発生することを想定する。本開示は、特定の方式で実装されているものとして図4の特定の実施形態を説明し、示しているが、本開示は、図4の任意の適切な実施形態が、任意の適切なインターフェース上で発生すること、および任意の適切なプラットフォームまたはシステムによって実装されるものと想定する。限定ではなく、例として、図4の特定の実施形態は、クライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、図4の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し、示しているが、本開示は、図4の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せを想定する。
エンティティと関連付けられたエンティティ属性に関する情報を組み込む埋め込み空間内でエンティティの埋め込みを生成するようにディープラーニングモデルが訓練されると、埋め込み空間は、様々なタスクを達成するために使用されることが可能である。限定ではなく、例として、システムは、同じ埋め込み空間内の埋め込みにページおよびページの属性が圧縮されるので、ページの属性を考慮するページの推奨(すなわち、エンティティ推奨)を行うことができる。
エンティティ推奨を識別するための埋め込み空間の使用
図5は、埋め込み空間のビュー500の例を示す。埋め込み空間500は、ターゲットポイント520の埋め込みに対応する1つのポイント、および複数のエンティティの埋め込み510に対応する複数のポイントを含むことができる。複数のエンティティの埋め込みは、(例えば、図4に関連して説明されたような)1つまたは複数のディープラーニングモデル310を使用して判断されたエンティティのベクトル表現に基づいて判断されることが可能であり、エンティティの埋め込みは、ポイント510として埋め込み空間500内で表されることが可能である。ポイント510は、図4に関連して上述されたように、個々のエンティティと関連付けられた1つまたは複数のエンティティ属性をそれぞれが考慮する複数のエンティティの埋め込み510に対応することが可能である。埋め込み空間は、ディープラーニングモデル310を使用して生成されることが可能である。図5の埋め込み空間は、2次元であるものとして描写されているが、埋め込み空間は、任意の適切な次元(例えば多次元)のものであってよいということが理解されよう。
特定の実施形態において、埋め込み空間500は、ソーシャルネットワーキングシステム160のユーザに対するページの推奨(すなわちエンティティ推奨)を生成するために使用されてよい。エンティティは、ページであるものとして説明されているが、これは、例証的なものにすぎず、限定のためのものではないということが理解されよう。エンティティは、限定ではなく、例として、ウェブページを含む、任意の適切なエンティティであってよい。図4に関連して上述されたように、異種のタイプのエンティティ属性(すなわちページ属性)をページの埋め込みに有効に圧縮する方法は、ベクトル演算(例えば追加および減算)に適している。ベクトル加算、ベクトル減算、または両方は、コンテキストページの推奨を提供するために、ページのベクトル表現と共に使用されてよい。特定の実施形態において、代用ページの推奨は、ソーシャルネットワーキングシステム160のユーザと関連付けられたユーザプロフィールまたは他のデータの変更をシステムが検出するのに応答して生成されてよい。代用ページは、判断可能な代用がある任意のコンテキスト変更に対して判断されてよい。限定ではなく、例として、代用が判断されることが可能なコンテキスト変更は、ロケーション、交際状況、宗教的信念、卒業生の状況、仕事の状況、他の任意の適切なコンテキスト、またはこれらの任意の組合せを含むことができる。限定ではなく、例として、システムは、第1のコンテキストから第2のコンテキストに、ユーザがプロフィール設定を変更したことを検出することができる。この検出に応答して、システムは、第1のコンテキストおよび第2のコンテキストと関連付けられたページ、ならびにユーザがいいね!と表明したことがあるページ、またはそうでなければユーザが親近感を表現したことがあるページに基づいて、ベクトル演算を使用する方程式を生成することができる。ベクトル演算の結果は、ターゲットポイント520として埋め込み空間500内で表されることが可能なターゲットベクトル表現である。システムは、ユーザのコンテキストの変更を検出することに応答して、または入力されたユーザクエリに応答して、ターゲットポイントを判断することができる。システムは、検索アルゴリズムを使用して、ターゲットポイント520に関連するエンティティの埋め込み510に対応する1つまたは複数のポイントを識別することができる。検索アルゴリズムは、ベクトル演算の結果の埋め込みに対応するターゲットポイント520の閾値距離530の範囲内にあるエンティティの埋め込みに対応するポイント540を識別するために、埋め込み空間500に適用されてよい。限定ではなく、例として、変更されたコンテキストは現在のロケーションであってよく、第1のコンテキストはPhiladelphiaであってよく、第2のコンテキストはOaklandであってよく、システムは、ベクトル演算を使用して、Philadelphiaと関連付けられたページの代用であるOaklandと関連付けられたページを識別することができる。同じ例において、システムは、PhiladelphiaのDel Frisco’s Double Eagle Steakhouseにユーザがチェックインしたことがあると判断することができるので、システムは次に、OaklandのDel Frisco’s Double Eagle Steakhouseの代用を見つけることができる。PhiladelphiaからOaklandへのコンテキスト変更の1つまたは複数の代用を判断するためのベクトル演算は、方程式(5)によって与えられることが可能である。
|argmin:γ(page)|=γ(Del Frisco’s)−γ(Philadelphia)+γ(Oakland) (5)
本明細書で使用されるように、|argmin:γ(page)|は、方程式(5)の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント520に最も近い(すなわち、ターゲットポイント520からの最短距離の)ページの埋め込みを表す。γ(Del Frisco’s)は、Del Frisco’s Double Eagle Steakhouseのページの埋め込みを表し、γ(Philadelphia)は、Philadelphiaのページの埋め込みを表し、γ(Oakland)は、Oaklandのページの埋め込みを表す。方程式(5)は、対応するベクトル表現を埋め込みのそれぞれが有するので、評価されることが可能である。ターゲットポイント520が方程式(5)によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間500内のターゲットポイント520に最も近い、ページの埋め込み540に対応するポイントを見つける。ページの埋め込み540に対応する識別されたポイントは、限定ではなく、例として、PhiladelphiaにあるDel Frisco’s Double Eagle Steakhouseの代用になり得る、OaklandにあるレストランであるMichel Bistroのページに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ユーザへの表示のために、コンテキスト変更に基づいて代用として識別された1つまたは複数のページをユーザのクライアントシステム130に送ることができる。特定の実施形態において、1つまたは複数の識別されたページは、ユーザのクライアントシステム130上で動くソーシャルネットワーキングシステム160のネイティブアプリケーションにおける通知の一部として表示されることが可能である。特定の実施形態において、1つまたは複数の識別されたページは、ソーシャルネットワーキングシステム160のフィードの中に表示されることが可能である。1つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム130のユーザに提示されてよい。
特定の実施形態において、埋め込み空間500は、ソーシャルネットワーキングシステム160のユーザに対する他のページを補完するページの推奨を生成するために使用されてよい。システムは、補完物を判断するためのトピックおよびカテゴリのオントロジー(例えば、カテゴリツリーグラフ)、ならびに特定のページに対するオントロジーを利用することができる。例えば、システムは、写真屋が、パン屋、花屋、およびイベントプランナサービスの補完サービスであることを、カテゴリのオントロジーに基づいて判断することができる。パン屋、花屋、およびイベントプランナサービスの1つまたは複数にユーザが「いいね!と表明したことがある」か、チェックインしたことがある場合、システムは、ユーザへの推奨のために写真屋を判断するためのベクトル表現を生成することができる。限定ではなく、例として、ユーザは、Farmgirl Flowersにチェックインすることができ、システムは、方程式(6)を使用して、ユーザに関連する可能性のある花屋を判断することができる。
|argmin:γ(page)|=γ(Farmgirl Flowers)−γ(florist)+γ(photographer) (6)
本明細書で使用されるように、|argmin:γ(page)|は、方程式(6)の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント520に最も近い(すなわち最短距離の)ページの埋め込みを表す。γ(Farmgirl Flowers)は、Farmgirl Flowersのページの埋め込みを表し、γ(florist)は、花屋のページの埋め込みを表し、γ(photographer)は、写真屋のページの埋め込みを表す。ターゲットポイント520が方程式(6)によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間500内のターゲットポイント520に最も近い、ページの埋め込み540に対応するポイントを見つける。ページの埋め込み540に対応する識別されたポイントは、限定ではなく、例として、Farmgirl Flowersの補完物になることが可能な、写真撮影サービスである、Wyatt’s Photographyの埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ユーザへの表示のために、補完物として識別された1つまたは複数のページをユーザのクライアントシステム130に送ることができる。上述のように、1つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム130のユーザに提示されることが可能である。
限定ではなく、別の例として、システムは、野球がフットボールの補完物であると判断することができ、システムは、Minnesota Vikingsフットボールチームのページをユーザが「いいね!と表明している」ことを知ることができる。Minnesota Vikingに対する野球チームの補完物を見つけるために、システムは、方程式(7)を使用することができる。
|argmin:γ(page)|=γ(Vikings)−γ(football)+γ(baseball) (7)
本明細書で使用されるように、|argmin:γ(page)|は、方程式(7)の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント520に最も近い(すなわち最短距離の)ページの埋め込みを表す。γ(Vikings)は、Minnesota Vikingsのページの埋め込みを表し、γ(football)は、フットボールのページの埋め込みを表し、γ(baseball)は、野球のページの埋め込みを表す。ターゲットポイント520が方程式(7)によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間500内のターゲットポイント520に最も近いページの埋め込み540に対応するポイントを見つける。ページの埋め込み540に対応する識別されたポイントは、限定ではなく、例として、Minnesota Vikings フットボールチームに対する補完物になり得る野球チームである、Minnesota Twinsに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ユーザへの表示のために、補完物として識別された1つまたは複数のページをユーザのクライアントシステム130に送ることができる。上述のように、1つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム130のユーザに提示されてよい。
特定の実施形態において、埋め込み空間500は、ソーシャルネットワーキングシステム160のユーザによって入力されたクエリに応答してページの推奨を生成するために使用されることが可能である。実際には、ユーザは、質問、類推の始まり(例えば、AはBにとってDに対するCのようなものである)、または他の任意の適切なユーザ入力を入力することができ、システムは、埋め込み空間500にアクセスして、答え(すなわちページ)を見つけることができる。限定ではなく、例として、ユーザは、「San Franciscoでどこが最も良い寿司レストランであるか」を入力することができる。システムは、Denverにある特定の寿司レストランのページにユーザが「いいね!と表明したことがある」と判断することができるので、システムは次に、方程式(8)を使用して、San FranciscoにあるDenver Sushi Restaurantの代用を見つけることができる。
|argmin:γ(page)|=γ(Denver Sushi)−γ(Denver)+γ(San Francisco) (8)
本明細書で使用されるように、|argmin:γ(page)|は、方程式(8)の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント520に最も近い(すなわち最短距離の)ページの埋め込みを表す。γ(Denver Sushi)、Denver Sushiのページの埋め込みを表し、γ(Denver)は、Denverのページの埋め込みを表し、γ(San Francisco)は、San Franciscoのページの埋め込みを表す。ターゲットポイント520が方程式(8)によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間500内のターゲットポイント520に最も近いページの埋め込み540に対応するポイントを見つける。ページの埋め込み540に対応する識別されたポイントは、限定ではなく、例として、DenverにあるDenver Sushiの代用になり得る、San Franciscoにあるレストランである、SF Sushiのページに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム160は、ユーザへの表示のために、補完物として識別された1つまたは複数のページをユーザのクライアントシステム130に送ることができる。上述のように、1つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム130のユーザに提示されてよい。
本開示は、特定の方式で実装されているものとして図5の特定の実施形態を説明し、示しているが、本開示は、図5の任意の適切な実施形態が、任意の適切なインターフェース上で発生すること、および任意の適切なプラットフォームまたはシステムによって実装されるものと想定する。限定ではなく、例として、図5の特定の実施形態は、クライアントシステム130、ソーシャルネットワーキングシステム160、サードパーティシステム170、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図5の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図5の方法の任意の適切なステップを実行することを想定する。
図6は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法600の例を示す。方法は、ステップ610において始めることができ、ここでエンティティの第1のセット内の各エンティティに対する埋め込みが判断される。エンティティの第1のセットは、複数のエンティティから選択される。各埋め込みは、埋め込み空間内のポイントに対応する。埋め込み空間は、複数のエンティティの埋め込みに対応する複数のポイントを含む。エンティティの埋め込みは、ディープラーニングモデルを使用して判断される。ステップ620において、埋め込みは、エンティティ属性の第1のセット内の各エンティティ属性に対して判断される。エンティティ属性の第1のセット内のエンティティ属性のそれぞれは、エンティティ属性タイプのものである。エンティティ属性の第1のセットの各エンティティ属性は、複数のエンティティの少なくとも1つのエンティティと関連付けられる。エンティティ属性の埋め込みは、ディープラーニングモデルを使用して絞り込まれる。ステップ630において、エンティティの第1のセット内のエンティティの埋め込みは、エンティティの第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて修正され、更新された埋め込みは、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む。
特定の実施形態は、適正な場合、図6の方法の1つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で発生するものとして図6の方法の特定のステップを説明し、示しているが、本開示は、図6の方法の任意の適切なステップが、任意の適切な順序で発生することを想定する。さらに、本開示は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法の例が、図6の方法の特定のステップを含むことを説明し、示しているが、本開示は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための任意の適切な方法が、適正な場合、図6の方法のステップの全て、もしくはいくつかを含むこと、またはこれらのステップのいずれも含まないことが可能な、任意の適切なステップを含むことを想定する。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図6の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図6の方法の任意の適切なステップを実行することを想定する。
システムおよび方法
図7は、コンピュータシステム700の例を示す。特定の実施形態において、1つまたは複数のコンピュータシステム700は、本明細書で説明されるか、示される1つまたは複数の方法の1つまたは複数のステップを行う。特定の実施形態において、1つまたは複数のコンピュータシステム700は、本明細書で説明されるか、示される機能を行う。特定の実施形態において、1つまたは複数のコンピュータシステム700上で動くソフトウェアは、本明細書で説明されるか、示される1つまたは複数の方法の1つまたは複数のステップを行うか、本明細書で説明されるか、示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム700の1つまたは複数の部分を含む。本明細書で、コンピュータシステムへの言及は、コンピューティングデバイスを包含することができ、適正な場合、逆もまた同様である。さらに、コンピュータシステムへの言及は、適正な場合、1つまたは複数のコンピュータシステムを包含することができる。
本開示は、任意の適切な数のコンピュータシステム700を想定する。本開示は、コンピュータシステム700が、任意の適切な物理的形状をしていることを想定する。限定ではなく、例として、コンピュータシステム700は、埋め込み式コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップコンピュータシステムもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント(PDA)、サーバ、タブレット型コンピュータシステム、またはこれらのうちの2つ以上の組合せであってよい。適正な場合、コンピュータシステム700は、1つもしくは複数のコンピュータシステム700を含むこと、単一もしくは分散型であること、複数のロケーションに及ぶこと、複数の機械に及ぶこと、複数のデータセンタに及ぶこと、または1つもしくは複数のネットワーク内の1つもしくは複数のクラウド構成要素を含み得るクラウドの中にあることが可能である。適正な場合、1つまたは複数のコンピュータシステム700は、実質的に空間的な制限も一時的な制限もなく、本明細書で説明されるか、示される1つまたは複数の方法の1つまたは複数のステップを行うことができる。限定ではなく、例として、1つまたは複数のコンピュータシステム700は、本明細書で説明されるか、示される1つまたは複数の方法の1つまたは複数のステップを、リアルタイムモードまたはバッチモードで行うことができる。1つまたは複数のコンピュータシステム700は、適正な場合、様々な時間に、または様々なロケーションで、本明細書で説明されるか、示される1つまたは複数の方法の1つまたは複数のステップを行うことができる。
特定の実施形態において、コンピュータシステム700は、プロセッサ702、メモリ704、ストレージ706、入出力(I/O)インターフェース708、通信インターフェース710、およびバス712を含む。本開示は、特定のコンピュータシステムが、特定の配置の中に特定の数の特定の構成要素を有することを説明し、示しているが、本開示は、任意の適切なコンピュータシステムが、任意の適切な配置の中に任意の適切な数の任意の適切な構成要素を有することを想定する。
特定の実施形態において、プロセッサ702は、コンピュータプログラムを作り上げる命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706から命令を取得(またはフェッチ)すること、これらをデコードして実行すること、および1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706に書き込むことができる。特定の実施形態において、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、プロセッサ702が、適正な場合、任意の適切な数の任意の適切な内部キャッシュを含むことを想定する。限定ではなく、例として、プロセッサ702は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ704またはストレージ706内の命令のコピーであってよく、命令キャッシュは、プロセッサ702によるこれらの命令の取得を高速化することができる。データキャッシュ内のデータは、動作するためにプロセッサ702において実行する命令、プロセッサ702において実行するその後の命令によるアクセスのため、またはメモリ704もしくはストレージ706に書き込むための、プロセッサ702において実行された以前の命令の結果、あるいは他の適切なデータのためのメモリ704またはストレージ706内のデータのコピーであってよい。データキャッシュは、プロセッサ702による読込み動作または書込み動作を高速化することができる。TLBは、プロセッサ702のための仮想アドレス変換を高速化することができる。特定の実施形態において、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。本開示は、プロセッサ702が、適正な場合、任意の適切な数の任意の適切な内部レジスタを含むことを想定する。適正な場合、プロセッサ702は、1つもしくは複数の算術論理演算装置(ALU)を含むこと、マルチコアプロセッサであること、または1つもしくは複数のプロセッサ702を含むことが可能である。本開示は、特定のプロセッサを説明し、示しているが、本開示は、任意の適切なプロセッサを想定する。
特定の実施形態において、メモリ704は、プロセッサ702が実行するための命令、またはプロセッサ702が動作させるデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム700は、ストレージ706または別のソース(例えば、別のコンピュータシステム700など)からメモリ704に命令をロードすることができる。プロセッサ702は次に、メモリ704から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ702は、内部レジスタまたは内部キャッシュから命令を取得し、これらをデコードすることができる。命令の実行中または実行後、プロセッサ702は、(中間結果または最終結果である可能性のある)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ702は次に、これらの結果の1つまたは複数をメモリ704に書き込むことができる。特定の実施形態において、プロセッサ702は、(ストレージ706または他の場所とは対照的に)1つもしくは複数の内部レジスタもしくは内部キャッシュ内の命令、またはメモリ704内の命令だけを実行し、(ストレージ706または他の場所とは対照的に)1つもしくは複数の内部レジスタもしくは内部キャッシュ内のデータ、またはメモリ704内のデータに対してのみ動作する。(アドレスバスおよびデータバスをそれぞれ含む可能性がある)1つまたは複数のメモリバスは、プロセッサ702をメモリ704に連結することができる。バス712は、下記で説明されるような1つまたは複数のメモリバスを含むことができる。特定の実施形態において、1つまたは複数のメモリ管理ユニット(MMU)がプロセッサ702とメモリ704の間にあり、プロセッサ702によって要求されるメモリ704へのアクセスを容易にする。特定の実施形態において、メモリ704は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適正な場合、揮発性メモリであってよい。適正な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。さらに、適正な場合、このRAMは、シングルポートRAMまたはマルチポートRAMであってよい。本開示は、任意の適切なRAMを想定する。メモリ704は、適正な場合、1つまたは複数のメモリ704を含むことができる。本開示は、特定のメモリを説明し、示しているが、本開示は、任意の適切なメモリ想定する。
特定の実施形態において、ストレージ706は、データまたは命令のためのマスストレージを含む。限定ではなく、例として、ストレージ706は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組合せを含むことができる。ストレージ706は、適正な場合、取外し可能な媒体または取外し不能な(もしくは固定された)媒体を含むことができる。ストレージ706は、適正な場合、コンピュータシステム700の内部または外部にあってよい。特定の実施形態において、ストレージ706は、不揮発性の固体メモリであってよい。特定の実施形態において、ストレージ706は、リードオンリメモリ(ROM)を含む。適正な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的消去再書込ROM(EAROM)、もしくはフラッシュメモリ、またはこれらのうちの2つ以上の組合せであってよい。本開示は、マスストレージ706が任意の適切な物理的形状をしていることを想定する。ストレージ706は、適正な場合、プロセッサ702とストレージ706との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含むことができる。適正な場合、ストレージ706は、1つまたは複数のストレージ706を含むことができる。本開示は、特定のストレージ説明し、示しているが、本開示は、任意の適切なストレージを想定する。
特定の実施形態において、I/Oインターフェース708は、コンピュータシステム700と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。コンピュータシステム700は、適正な場合、これらのI/Oデバイスの1つまたは複数を含むことができる。これらのI/Oデバイスの1つまたは複数は、人とコンピュータシステム700との間の通信を可能にすることができる。限定ではなく、例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはこれらのうちの2つ以上の組合せを含むことができる。I/Oデバイスは、1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/Oデバイス、およびこれらのデバイスための任意の適切なI/Oインターフェース708を想定する。適正な場合、I/Oインターフェース708は、これらのI/Oデバイスの1つまたは複数をプロセッサ702が駆動させることを可能にする、1つまたは複数のデバイスまたはソフトウェアドライバを含むことができる。I/Oインターフェース708は、適正な場合、1つまたは複数のI/Oインターフェース708を含むことができる。本開示は、特定のI/Oインターフェースを説明し、示しているが、本開示は、任意の適切なI/Oインターフェースを想定する。
特定の実施形態において、通信インターフェース710は、コンピュータシステム700と、1つもしくは複数の他のコンピュータシステム700、または1つもしくは複数のネットワークとの間の通信(例えば、パケットベースの通信など)のための、1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、通信インターフェース710は、イーサネットもしくは他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI−FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)もしくはワイヤレスアダプタを含むことができる。本開示は、任意の適切なネットワーク、およびネットワークのための任意の適切な通信インターフェース710を想定する。限定ではなく、例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークの1つまたは複数の1つまたは複数の部分は、有線またはワイヤレスであってよい。例として、コンピュータシステム700は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラー電話ネットワーク(例えば、グローバルシステムフォーモバイルコミュニケーションズ(GSM)ネットワークなど)、もしくは他の適切なワイヤレスネットワーク、またはこれらのうちの2つ以上の組合せと通信することができる。コンピュータシステム700は、適正な場合、これらのネットワークのいずれかに対する任意の適切な通信インターフェース710を含むことができる。通信インターフェース710は、適正な場合、1つまたは複数の通信インターフェース710を含むことができる。本開示は、特定の通信インターフェースを説明し、示しているが、本開示は、任意の適切な通信インターフェースを想定する。
特定の実施形態において、バス712は、コンピュータシステム700の構成要素を互いに連結するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、バス712は、アクセラレイティッドグラフィックスポート(AGP)もしくは他のグラフィックスバス、拡張インダストリスタンダードアーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)インターコネクト、インダストリスタンダードアーキテクチャ(ISA)バス、INFINIBANDインターコネクト、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI−Express(PCIe)バス、シリアルアドバンスドテクノロジアタッチメント(SATA)バス、ビデオエレクトロニクススタンダーズアソシエーションローカル(VLB)バス、もしくは別の適切なバス、またはこれらのうちの2つ以上の組合せを含むことができる。バス712は、適正な場合、1つまたは複数のバス712を含むことができる。本開示は、特定のバスを説明し、示しているが、本開示は、任意の適切なバスまたは相互接続を想定する。
本明細書で、1つまたは複数のコンピュータ可読非一時的ストレージ媒体は、適正な場合、1つもしくは複数の半導体ベースの集積回路(IC)もしくは他の集積回路(例えば、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向けIC(ASIC))、ハードディスクドライブ(HDD)、複合ハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードもしくはドライブ、他の任意の適切なコンピュータ可読非一時的ストレージ媒体、またはこれらの2つ以上の任意の適切な組合せを含むことができる。コンピュータ可読非一時的ストレージ媒体は、適正な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
その他
本明細書で、「または」は、別途明確に示されない限り、または文脈によって別途示されない限り、包括的であるが、排他的ではない。したがって、本明細書において、「AまたはB」は、別途明確に示されない限り、または文脈によって別途示されない限り、「A、B、または両方」を意味する。さらに、「および」は、別途明確に示されない限り、または文脈によって別途示されない限り、協同(joint)、および個々(several)の両方である。したがって、本明細書において、「AおよびB」は、別途明確に示されない限り、または文脈によって別途示されない限り、「協同してまたは個々に、AおよびB」を意味する。
本開示の範囲は、当業者が理解するであろう本明細書で説明されるか、示される実施形態の例への全ての変更、代用、変形、代替、および修正を包含する。本開示の範囲は、本明細書で説明されるか、示される実施形態の例に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして本明細書の個々の実施形態を説明し、示しているが、これらの実施形態のいずれかは、当業者が理解するであろう本明細書のどこかで説明されるか、示される構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含むことができる。さらに、特定の機能を行うように適応される、特定の機能を行うように配置される、特定の機能を行うことができる、特定の機能を行うように構成される、特定の機能を行うこと可能にする、特定の機能を行うように動作可能な、または特定の機能を行うように動作する、装置もしくはシステム、または装置もしくはシステムの構成要素に対する添付の特許請求の範囲における言及は、その特定の機能またはこの特定の機能が、活性化されるか、電源オンされるか、開錠されるかにかかわらず、この装置、システム、または構成要素が、そのように適応されるか、配置されるか、行うことができるか、構成されるか、可能にされるか、動作可能か、動作する限り、この装置、システム、構成要素を包含する。

Claims (33)

  1. エンティティの第1のセット内の各エンティティに対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを1つまたは複数のコンピューティングデバイスによって修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を含む、方法。
  2. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項1に記載の方法。
  3. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項1に記載の方法。
  4. 前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項1に記載の方法。
  5. 前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項4に記載の方法。
  6. 前記ディープラーニングモデルが、スキップグラムネガティブダウンサンプリングを使用して訓練される、請求項1に記載の方法。
  7. 前記埋め込み空間内の各埋め込みが、個々のベクトル表現に対応する、請求項1に記載の方法。
  8. ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第1のコンテキストから第2のコンテキストに変更されたことを検出することと、
    前記第2のコンテキストに関連するものとして1つまたは複数の埋め込みを識別することであって、
    前記第2のコンテキストと関連付けられた前記埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
    検索アルゴリズムを前記埋め込み空間に適用すること
    によって、識別することと
    をさらに含み、識別されたエンティティの1つまたは複数の埋め込みに対応するポイントが、前記第2のコンテキストと関連付けられた前記埋め込み空間内の判断されたポイントに対応する前記ポイントの閾値距離内にある、請求項7に記載の方法。
  9. クエリを受け取ることであって、前記クエリがユーザによって入力される、受け取ることと、
    前記クエリをベクトル表現に変換することと、
    前記クエリと関連付けられた前記埋め込み空間内のポイントを識別するために前記ベクトル表現を評価することと、
    検索アルゴリズムを前記埋め込み空間に適用することによって、前記クエリに関連するものとして1つまたは複数のエンティティを識別することであって、識別されたエンティティの1つまたは複数の埋め込みに対応するポイントが、前記クエリと関連付けられた前記埋め込み空間内の識別されたポイントに対応する前記ポイントの閾値距離内にある、識別することと
    をさらに含む、請求項7に記載の方法。
  10. ソフトウェアを具体化する1つまたは複数のコンピュータ可読非一時的ストレージ媒体であって、前記ソフトウェアは、実行されると、
    エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的ストレージ媒体。
  11. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項10に記載の媒体。
  12. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項10に記載の媒体。
  13. 前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項10に記載の媒体。
  14. 前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項13に記載の媒体。
  15. 1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を有する、前記プロセッサに連結されたメモリとを備えるシステムであって、前記プロセッサが、前記命令を実行すると、
    エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を行うように動作可能である、システム。
  16. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項15に記載のシステム。
  17. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項15に記載のシステム。
  18. 前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項15に記載のシステム。
  19. 前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項18に記載のシステム。
  20. 埋め込み空間内のデータストアに格納されたデータオブジェクトに対応するエンティティのセットを埋め込むためのコンピュータ実装方法であって、
    エンティティの第1のセット内の各エンティティに対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを1つまたは複数のコンピューティングデバイスによって判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを1つまたは複数のコンピューティングデバイスによって修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を含む、方法。
  21. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項20に記載の方法。
  22. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項20または21に記載の方法。
  23. 前記複数のエンティティが、
    ソーシャルネットワーキングシステム内の複数のページと、
    ソーシャルグラフのエンティティと関連付けられたページと、
    ウェブページと、
    他の任意の適切なエンティティと
    のうちの少なくとも1つを含み、
    ならびに/または
    前記エンティティ属性タイプが、
    ページと関連付けられたトピック、
    ページと関連付けられたカテゴリ、
    ページと関連付けられたロケーション、
    ページと関連付けられたユーザ、
    ページと関連付けられたサイズ、および
    エンティティの他の任意の適切なプロパティ
    のうちの少なくとも1つに対応する、
    請求項20から22のいずれか一項に記載の方法。
  24. 前記ディープラーニングモデルが、スキップグラムネガティブダウンサンプリングを使用して訓練される、請求項20から23のいずれか一項に記載の方法。
  25. 前記埋め込み空間内の各埋め込みが、個々のベクトル表現に対応し、
    好ましくは、
    ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第1のコンテキストから第2のコンテキストに変更されたことを検出することと、
    前記第2のコンテキストに関連するものとして1つもしくは複数の埋め込みを識別することであって、
    前記第2のコンテキストと関連付けられた前記埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
    検索アルゴリズムを前記埋め込み空間に適用すること
    によって、識別することと
    をさらに含み、識別されたエンティティの1つもしくは複数の埋め込みに対応するポイントが、前記第2のコンテキストと関連付けられた前記埋め込み空間内の判断されたポイントに対応する前記ポイントの閾値距離内にあり、ならびに/または
    好ましくは、
    クエリを受け取ることであって、前記クエリがユーザによって入力される、受け取ることと、
    前記クエリをベクトル表現に変換することと、
    前記クエリと関連付けられた前記埋め込み空間内のポイントを識別するために前記ベクトル表現を評価することと、
    検索アルゴリズムを前記埋め込み空間に適用することによって、前記クエリに関連するものとして1つもしくは複数のエンティティを識別することであって、前記識別されたエンティティの1つもしくは複数の埋め込みに対応するポイントが、前記クエリと関連付けられた前記埋め込み空間内の識別されたポイントに対応する前記ポイントの閾値距離内にある、識別することと
    をさらに含む、
    請求項20から24のいずれか一項に記載の方法。
  26. ソフトウェアを具体化する1つまたは複数のコンピュータ可読非一時的ストレージ媒体であって、前記ソフトウェアは、実行されると、
    エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的ストレージ媒体。
  27. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項26に記載の媒体。
  28. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項26または27に記載の媒体。
  29. 前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを備え、
    好ましくは、前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、
    請求項26から28のいずれか一項に記載の媒体。
  30. 1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を有する、前記プロセッサに連結されたメモリとを備えるシステムであって、前記プロセッサが、前記命令を実行すると、
    エンティティの第1のセット内の各エンティティに対する埋め込みを判断することであって、
    エンティティの前記第1のセットが、複数のエンティティから選択され、
    各埋め込みが、埋め込み空間内のポイントに対応し、
    前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
    前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
    判断することと、
    エンティティ属性の第1のセット内の各エンティティ属性に対する埋め込みを判断することであって、
    エンティティ属性の前記第1のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
    エンティティ属性の前記第1のセットの各エンティティ属性が、前記複数のエンティティの少なくとも1つのエンティティと関連付けられ、
    前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
    判断することと、
    エンティティの前記第1のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    を行うように動作可能である、システム。
  31. エンティティの第2のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第2のセットが、前記複数のエンティティから選択される、判断することと、
    エンティティ属性の第2のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第2のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
    エンティティの前記第1および第2のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第1および第2のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
    をさらに含む、請求項30に記載のシステム。
  32. 各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第1のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項30または31に記載のシステム。
  33. 前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含み、
    好ましくは、前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、
    請求項30から32のいずれか一項に記載のシステム。
JP2019522918A 2016-10-28 2016-12-02 ディープラーニングモデルを使用した推奨の生成 Expired - Fee Related JP6744993B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/337,978 2016-10-28
US15/337,978 US11361242B2 (en) 2016-10-28 2016-10-28 Generating recommendations using a deep-learning model
PCT/US2016/064535 WO2018080557A1 (en) 2016-10-28 2016-12-02 Generating recommendations using a deep-learning model

Publications (2)

Publication Number Publication Date
JP2020503590A JP2020503590A (ja) 2020-01-30
JP6744993B2 true JP6744993B2 (ja) 2020-08-19

Family

ID=62021553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019522918A Expired - Fee Related JP6744993B2 (ja) 2016-10-28 2016-12-02 ディープラーニングモデルを使用した推奨の生成

Country Status (5)

Country Link
US (2) US11361242B2 (ja)
JP (1) JP6744993B2 (ja)
KR (1) KR20190064641A (ja)
CN (1) CN110140134A (ja)
WO (1) WO2018080557A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11226831B2 (en) * 2016-12-05 2022-01-18 Facebook, Inc. Customizing content based on predicted user preferences
AU2019284379A1 (en) 2018-06-12 2021-01-28 Intergraph Corporation Artificial intelligence applications for computer-aided dispatch systems
WO2020123124A1 (en) 2018-12-14 2020-06-18 Google Llc Methods, systems, and media for identifying videos containing objectionable content
US11361365B2 (en) * 2019-02-25 2022-06-14 Etsy, Inc. Intuitive entity navigation
US11741191B1 (en) * 2019-04-24 2023-08-29 Google Llc Privacy-sensitive training of user interaction prediction models
US11263400B2 (en) * 2019-07-05 2022-03-01 Google Llc Identifying entity attribute relations
US11886971B2 (en) 2019-08-15 2024-01-30 Microsoft Technology Licensing, Llc Multiple-entity-based recommendation system
US11184301B2 (en) * 2019-08-15 2021-11-23 Microsoft Technology Licensing, Llc Message recommendation system
KR102755297B1 (ko) * 2019-10-18 2025-01-17 삼성전자주식회사 데이터 베이스에 포함된 데이터를 분석하는 데이터 분석 장치 및 방법
KR102223382B1 (ko) * 2019-11-14 2021-03-08 숭실대학교산학협력단 다중타입 엔티티에 기반한 지식 보완 방법 및 장치
JP2021135722A (ja) * 2020-02-26 2021-09-13 国立大学法人 東京大学 情報処理装置、及びプログラム
US11818091B2 (en) * 2020-05-10 2023-11-14 Salesforce, Inc. Embeddings-based discovery and exposure of communication platform features
AU2020356799B2 (en) * 2020-06-18 2022-09-08 Citrix Systems, Inc. Autonomous learning of entity values in artificial intelligence conversational systems
US20210406779A1 (en) * 2020-06-26 2021-12-30 Facebook, Inc. System and methods for feature engineering based on graph learning
US20220215310A1 (en) * 2021-01-07 2022-07-07 Ritual Mobile, Inc. Automatically generating parameters for enterprise programs and initiatives
US12014029B2 (en) * 2021-05-26 2024-06-18 Intuit Inc. Smart navigation
US12013859B2 (en) 2022-06-16 2024-06-18 X Development Llc Aggregating information from different data feed services
US12130809B2 (en) * 2022-09-19 2024-10-29 Ebay Inc. Deep navigation via a multimodal vector model
US20240232613A1 (en) * 2023-01-08 2024-07-11 Near Intelligence Holdings, Inc. Method for performing deep similarity modelling on client data to derive behavioral attributes at an entity level
CN116340545A (zh) * 2023-04-17 2023-06-27 北京航空航天大学 基于图谱关联与融合的数字资源组件多维映射系统及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0211488D0 (en) 2002-05-18 2002-06-26 Univ Aston Information embedding method
EP2531936A1 (en) 2010-02-01 2012-12-12 Google, Inc. Joint embedding for item association
US9324113B2 (en) * 2011-10-12 2016-04-26 Microsoft Technology Licensing, Llc Presenting social network connections on a search engine results page
US9075824B2 (en) 2012-04-27 2015-07-07 Xerox Corporation Retrieval system and method leveraging category-level labels
US9092211B2 (en) * 2012-12-13 2015-07-28 Microsoft Technology Licensing, Llc Social-based information recommendation system
US9129227B1 (en) 2012-12-31 2015-09-08 Google Inc. Methods, systems, and media for recommending content items based on topics
US9037464B1 (en) * 2013-01-15 2015-05-19 Google Inc. Computing numeric representations of words in a high-dimensional space
US9147154B2 (en) * 2013-03-13 2015-09-29 Google Inc. Classifying resources using a deep network
EP2887237B1 (en) * 2013-12-19 2017-06-14 Facebook, Inc. Generating recommended search queries on online social networks
US9535960B2 (en) * 2014-04-14 2017-01-03 Microsoft Corporation Context-sensitive search using a deep learning model
US10193902B1 (en) * 2015-11-02 2019-01-29 Deep Instinct Ltd. Methods and systems for malware detection
US10706351B2 (en) * 2016-08-30 2020-07-07 American Software Safety Reliability Company Recurrent encoder and decoder

Also Published As

Publication number Publication date
JP2020503590A (ja) 2020-01-30
US20180121827A1 (en) 2018-05-03
KR20190064641A (ko) 2019-06-10
CN110140134A (zh) 2019-08-16
US11710079B2 (en) 2023-07-25
US20220300859A1 (en) 2022-09-22
WO2018080557A1 (en) 2018-05-03
US11361242B2 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
JP6744993B2 (ja) ディープラーニングモデルを使用した推奨の生成
US20230017819A1 (en) Iterative Classifier Training on Online Social Networks
JP6689389B2 (ja) ディープラーニングモデルを用いたエンティティの識別
JP6615260B2 (ja) オフライン・コンテンツの生成
JP6145576B2 (ja) オンライン・ソーシャル・ネットワークにおける大規模ページ推薦
US10387464B2 (en) Predicting labels using a deep-learning model
JP6621914B2 (ja) オンライン・ソーシャル・ネットワーク上でのキー・トピックの検出
US20190138331A1 (en) Contextual and Personalized Help
JP6055122B2 (ja) ユーザのためのビデオのランク付け
US20170132510A1 (en) Identifying Content Items Using a Deep-Learning Model
US10459950B2 (en) Aggregated broad topics
JP6349331B2 (ja) ソーシャルネットワークにおける連絡先の集約
US9703870B2 (en) Social-based optimization of web crawling for online social networks
US9450992B2 (en) Node properties in a social-networking system
JP2016507804A (ja) クライアント側の広告の決定
US11375259B2 (en) Video creation at scale
EP3316185A1 (en) Generating recommendations using a deep-learning model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200731

R150 Certificate of patent or registration of utility model

Ref document number: 6744993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees