(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
オンライン・システムが、複数の予測器を生成するための複数の要求を受信することであって、前記複数の予測器の各々は、オンライン・システムの複数のユーザにより実行された行動タイプと、ユーザのカテゴリと、該行動タイプの成功したインスタンスを識別するための基準とを特定する、前記複数の要求を受信すること、
行動タイプと関連付けられた各要求に関して、前記オンライン・システムが行動タイプに関する予測器を生成することであって、
特定されたユーザのカテゴリに属することに応答して選択された前記オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと失敗したインスタンスとからトレーニング・データ・セットを生成すること、
前記トレーニング・データ・セットを用いて１つまたは複数の候補予測器をトレーニングすることであって、各候補予測器は、機械学習モデルを含む、前記１つまたは複数の候補予測器をトレーニングすること、
特定されたユーザのカテゴリに属することに応答して選択された前記オンライン・システムのユーザが実行した行動タイプの追加の複数の成功したインスタンスと失敗したインスタンスとから生成されたテスト・データ・セットに基づいて、各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、行動タイプに関する予測器を選択すること、
を含む前記行動タイプに関する予測器を生成すること、
生成された予測器に対応するハンドルを選択された予測器の要求元に戻すこと、
前に生成された予測器の性能に対して新しい予測器の性能を比較すること、および新しい予測器の性能が前に生成された予測器の性能を超えることに応答して、前に生成された予測器を新しい予測器に置換することによって、新しい予測器を周期的に生成すること、
行動タイプに関する新しい予測器を周期的に生成する頻度を、既存の予測器の性能と比較して新しい予測器の性能の改善がしきい値未満であることに応答して低下させることを備える、コンピュータ実装方法。
【請求項２】
前記オンライン・システム内で実行するプロセスから、ハンドルとユーザ情報のインスタンスとを識別する、予測器に関する要求を受信すること、
ユーザ情報のインスタンスに関して識別されたハンドルに対応する予測器を実行すること、
予測器の結果を要求するプロセスに戻すことをさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
行動タイプの成功したインスタンスが、ユーザが行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザが該行動タイプの行動をとることを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記要求は、失敗したインスタンスに関する基準をさらに特定し、
行動タイプの失敗したインスタンスが、ユーザが行動タイプの行動をとることを可能にする情報がユーザに提示されることに応答して、ユーザが行動タイプの行動をとることに失敗したことを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記要求は、失敗したインスタンスに関する基準をさらに特定し、
行動タイプの失敗したインスタンスが、ユーザが行動タイプと関連付けられたユーザ・インターフェース内で提示された情報に対して「よくないね」を表明することを示す入力を提供することを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１に記載のコンピュータ実装方法。
【請求項６】
各行動タイプは、前記オンライン・システム内に表されたエンティティを対象とする、請求項１に記載のコンピュータ実装方法。
【請求項７】
行動タイプに対応するエンティティが、前記オンライン・システムのユーザ、ソーシャル・グループ、または画像のうちの１つである、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記複数の候補予測器のうちの少なくとも１つが、線形回帰、ロジスティック回帰、ブースティング・ツリー、または加重決定木のうちの少なくとも１つに基づく機械学習モデル・タイプである、請求項１に記載のコンピュータ実装方法。
【請求項９】
コンピュータ実装方法であって、
オンライン・システムのユーザが行動タイプを実行するかどうかを予測するために既存の予測器を記憶することであって、前記既存の予測器は、行動タイプの成功したインスタンスを判断するための基準と関連付けられる、前記既存の予測器を記憶すること、
前記既存の予測器を周期的に再生成することであって、
前記オンライン・システムのユーザが実行した行動タイプの成功したインスタンスと失敗したインスタンスとを含むデータ・セットを識別すること、
識別されたデータ・セットを使用して、１つまたは複数の候補予測器をトレーニングすることであって、各候補予測器は、機械学習モデルを含む、前記１つまたは複数の候補予測器をトレーニングすること、
前記オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むテスト・データ・セットに基づいて各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、１つまたは複数の候補予測器から候補予測器を選択すること、
選択された候補予測器の性能を既存の予測器の性能と比較すること、
選択された候補予測器の性能が既存の予測器の性能を超えることに応答して、既存の予測器を選択された候補予測器によって置換すること
によって、前記既存の予測器を周期的に再生成すること、
行動タイプに関する既存の予測器を周期的に再生成する頻度を、既存の予測器の性能と比較して選択された候補予測器の性能の改善がしきい値未満であることに応答して低下させることを備える、コンピュータ実装方法。
【請求項１０】
行動タイプの成功したインスタンスが、ユーザが行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザが該行動タイプの行動をとることを示す、前記オンライン・システム内に記憶された情報に対応する、
、請求項９に記載のコンピュータ実装方法。
【請求項１１】
行動タイプの失敗したインスタンスが、ユーザが該行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザが行動タイプをとることに失敗したことを示す、前記オンライン・システム内に記憶された情報に対応する、請求項９に記載のコンピュータ実装方法。
【請求項１２】
前記複数の候補予測器のうちの少なくとも１つが、線形回帰、ロジスティック回帰、ブースティング・ツリー、または加重決定木のうちの少なくとも１つに基づく機械学習モデル・タイプである、請求項９に記載のコンピュータ実装方法。
【請求項１３】
コンピュータ実行可能コードを記憶した非一時的コンピュータ可読記憶媒体を有するコンピュータ・プログラム製品であって、
オンライン・システムの予測器生成モジュールであって、
オンライン・システムのユーザが行動タイプを実行するかどうかを予測するために既存の予測器を記憶することであって、前記既存の予測器は、行動タイプの成功したインスタンスを判断するための基準と関連付けられる、前記既存の予測器を記憶すること、
前記既存の予測器を周期的に再生成することであって、
オンライン・システムのユーザが実行した行動タイプの成功したインスタンスと失敗したインスタンスとを含むデータ・セットを識別すること、
識別されたデータ・セットを使用して、１つまたは複数の候補予測器をトレーニングすることであって、各候補予測器が、機械学習モデルを含む、前記１つまたは複数の候補予測器をトレーニングすること、
オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むテスト・データ・セットに基づいて各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、１つまたは複数の候補予測器から候補予測器を選択すること、
選択された候補予測器の性能を既存の予測器の性能と比較すること、
選択された候補予測器の性能が既存の予測器の性能を超えることに応答して、既存の予測器を選択された候補予測器によって置換すること
によって、前記既存の予測器を周期的に再生成すること、
行動タイプに関する既存の予測器を周期的に再生成する頻度を、既存の予測器の性能と比較して選択された予測器の性能の改善がしきい値未満であることに応答して低下させること、を実行するように構成された前記予測器生成モジュールを備える、コンピュータ・プログラム製品。
【請求項１４】
行動タイプの成功したインスタンスが、ユーザが行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザが行動タイプをとることを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１５】
行動タイプの失敗したインスタンスが、ユーザが行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、前記ユーザが前記行動タイプをとることに失敗したことを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１６】
前記オンライン・システムのユーザは、ソーシャル・ネットワーキング・システムのユーザであり、
前記行動タイプは、前記ソーシャル・ネットワーキング・システムにおいて示される対象とするエンティティとの接続を開始することに基づく、請求項１に記載のコンピュータ実装方法。
【請求項１７】
前記オンライン・システムのユーザは、ソーシャル・ネットワーキング・システムのユーザであり、
前記行動タイプは、前記ソーシャル・ネットワーキング・システムにおいて投稿される対象とするエンティティに関してコメントすることに基づく、請求項１に記載のコンピュータ実装方法。
【請求項１８】
前記オンライン・システムは、ソーシャル・ネットワーキング・システムを備え、
前記行動タイプは、前記ソーシャル・ネットワーキング・システムにおいて示される対象とするエンティティとの接続を開始すること、および前記ソーシャル・ネットワーキング・システムにおいて投稿される対象とするエンティティに関してコメントすることのうちの少なくとも１つに基づく、請求項９に記載のコンピュータ実装方法。
【請求項１９】
前記オンライン・システムは、ソーシャル・ネットワーキング・システムを備え、
前記行動タイプは、前記ソーシャル・ネットワーキング・システムにおいて示される対象とするエンティティとの接続を開始すること、および前記ソーシャル・ネットワーキング・システムにおいて投稿される対象とするエンティティに関してコメントすることのうちの少なくとも１つに基づく、請求項１３に記載のコンピュータ・プログラム製品。
【請求項２０】
行動タイプの失敗したインスタンスが、ユーザが行動タイプと関連付けられたユーザ・インターフェース内で提示された情報に対して「よくないね」を表明することを示す入力を提供することを示す、前記オンライン・システム内に記憶された情報に対応する、請求項９に記載のコンピュータ実装方法。
【請求項２１】
行動タイプの失敗したインスタンスが、ユーザが行動タイプと関連付けられたユーザ・インターフェース内で提示された情報に対して「よくないね」を表明することを示す入力を提供することを示す、前記オンライン・システム内に記憶された情報に対応する、請求項１３に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンライン・システム内、例えば、ソーシャル・ネットワーキング・システム内のユーザ行動を予測することに関し、詳細には、オンライン・システム内の潜在的なユーザ相互作用を高速化することを特に目標とする、オンライン・システム内のユーザ行動に関するカスタマイズされた予測の生成に関する。
【背景技術】
【０００２】
オンライン・システムは、一般に、ユーザに有用な情報を提示して、ユーザがオンライン・システムと相互作用することを可能にする。オンライン・システムは、情報をユーザに提示する前に、ユーザにとって関心がある可能性が高い情報を判断するための技法を使用することができる。ユーザに自らが好む情報が提示された場合、ユーザがそのオンライン・システムに定期的に訪問する可能性は高い。オンライン・システムは、多くの場合、広告から収益を得る。広告主は、そのユーザが定期的に訪問するオンライン・システム内に広告を出すことを好む。したがって、ユーザ忠実性（user loyalty）は、オンライン・システムを使用して生成される収益を判断することができる。結果として、オンライン・システムがユーザに関心ある情報を提示する能力は、一般に、オンライン・システムによって得られる収益に影響を及ぼす。
【０００３】
一部のシステムは、ユーザ行動を予測するための機械学習技法を使用して、個々のユーザに関連する情報を判断する。例えば、機械学習モデルが、ユーザがある種のコンテンツを閲覧する可能性が高いことを予測する場合、オンライン・システムは、他のコンテンツの代わりに、そのコンテンツを選択してユーザに提示することができる。他方で、機械学習モデルが、ユーザがある種の情報に関心を持ちそうにないことを予測する場合、オンライン・システムは、何らの他の情報を選択してユーザに提示することができる。
【０００４】
しかし、機械学習モデルを開発することは、オンライン・システムの開発業者によるかなりの努力を必要とする。典型的には、機械学習モデルの開発業者は、使用すべき機械学習技法、その機械学習モデルに関連する様々な特徴を指定して、その機械学習モデルをトレーニングするためのトレーニング・データを提供する。複雑なオンライン・システムの場合、開発業者は、様々な特徴が予測器モデルに及ぼす影響に気づかない場合がある。多くの場合、開発業者は、モデル内で使用され得る複雑なシステムにおいて利用可能なすべての考えられる特徴に気づかない場合すらある。さらに、様々な特徴がモデルに及ぼす影響は、経時的に変化する場合がある。新しい技術開発は、モデルに対する様々な特徴の影響に予測不可能な形で影響する場合がある。例えば、新しいタイプのモバイル技術が利用可能であった場合、その新しい技術がそのオンライン・システムに関して開発されていないとしても、システムのユーザは異なった行動をとる場合がある。ユーザ挙動の変化は、モデルに対する様々な特徴の影響を変化させる可能性がある。これは、機械学習モデルの開発業者が、その独自のオンライン・システムのすべての考えられる態様、ならびにそのモデルに影響を及ぼし得る外部要因を考慮に入れながら、モデルを開発および維持するのを困難にする。結果として、従来の技法は、機械学習モデルの開発業者にかなりの負担を課す。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の実施形態は、オンライン・システムがそのオンライン・システムのユーザの行動を予測するためのモデルを生成することを可能にする。例えば、ソーシャル・ネットワーキング・システムなど、オンライン・システムは、モデルを使用して、ユーザが別のユーザとのつながり（connection）を築く可能性が高いかどうか、ユーザが画像にコメントする可能性が高いかどうか、またはユーザがソーシャル・グループに参加する可能性が高いかどうかを予測することができる。これらのモデルは、本明細書で、予測器とも呼ばれる。ソーシャル・ネットワーキング・システムは、予測器を使用して、例えば、ユーザに対する潜在的なつながりを示唆するために、ユーザに提示されるためのコンテンツを選択するために、またはソーシャル・グループをユーザに勧めるために、ソーシャル・ネットワーキング・システムのユーザに提示される情報を選択する。
【０００６】
１実施形態では、オンライン・システムは、ユーザが特定の行動タイプの行動をとる可能性が高いかどうかを予測するために新しい予測器を生成するための要求を受信する。例えば、行動タイプは、ユーザが画像に対して「いいね」を表明すること（liking）、ユーザが別のユーザとつながるための要求を送信すること、またはユーザがソーシャル・グループに参加することに対応し得る。この要求は、行動タイプと、その行動タイプの成功または失敗を識別するための基準とを指定する。例えば、行動タイプはユーザが別のユーザとつながるための要求を送信することに対応し、行動の成功したインスタンスは、ユーザがオンライン・システムによって示唆された潜在的な友人とつながるための要求を送信することに対応し、失敗したインスタンスは、ユーザが潜在的な友人とつながることに失敗したこと、または友人示唆を隠すことを試みることに対応する。オンライン・システムは、経時的に、そのオンライン・システムとのユーザの相互作用から行動タイプの成功したインスタンスと失敗したインスタンスとを含むデータを収集する。オンライン・システムは、生成されたデータを使用して、異なるタイプの１つまたは複数の予測器を生成する。例えば、ある予測器は線形回帰を使用することができ、別の予測器はロジスティック回帰を使用することができ、第３の予測器はブースティング・ツリー（boosting tree）または加重決定木（weighted decision tree）を使用することができる。オンライン・システムは、生成された異なる予測器の性能を評価および比較して、その性能に基づいて、予測器を選択する。オンライン・システムは、生成された予測器にアクセスするためのハンドルを予測器の要求元に戻す。要求当事者は、これにより、機械学習について何かを学ぶ必要なしに、その行動に関してカスタマイズされた予測器を受信する。
【０００７】
１実施形態では、オンライン・システムは、既存の予測器と置換するためにオンライン・システムが収集した新しいデータに基づいて、新しい予測器を再生する。新しい予測器は、完全に異なる機械学習技法を使用する新しいモデルであってよく、または同じ機械学習技法を使用するが、モデル内で新しい係数値を使用させるモデルであってよい。新しい予測器は、所定の比率で周期的に生成され得る。新しい予測器が生成される比率は、適応的に修正され得る。例えば、行動タイプに関する既存の予測器と比較して、新しい予測器内で観察された性能改善がしきい値未満である場合、その特定の行動タイプに関する予測器の再生率は低減され得る。
【０００８】
本発明の概要および以下の詳細な説明で説明する特徴および利点は包括的ではない。図面、明細書、および特許請求の範囲に鑑みて、多くの追加の特徴および利点が当業者に明らかになるであろう。
【０００９】
本発明による実施形態は、具体的には、方法、記憶媒体、およびシステムに関して、添付の特許請求の範囲において開示され、１つのクレーム・カテゴリー、例えば、方法で記載される任意の特徴は、別のクレーム・カテゴリー、例えば、システムでも同様に特許請求され得る。
【００１０】
本発明による１実施形態では、
提供されるコンピュータ実装方法、特にオンライン・システム内の潜在的なユーザ相互作用を高速化することを目的とするコンピュータ実装方法は、
オンライン・システムが、各々が、オンライン・システムのユーザが実行された行動タイプと、その行動タイプの成功したインスタンスを識別するための基準とを指定する、予測器を生成するための複数の要求を受信すること、
行動タイプと関連付けられた各要求に関して、オンライン・システムが行動タイプに関する予測器を生成することであって、
オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むトレーニング・データ・セットを識別すること、
識別されたデータ・セットを使用して、各候補予測器が機械学習モデルからなる１つまたは複数の候補予測器をトレーニングすること、
オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むテスト・データ・セットに関して各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、行動タイプに関する予測器を選択することを含む前記オンライン・システムが行動タイプに関する予測器を生成すること、
生成された予測器に対応するハンドルを選択された予測器の要求元に戻すこと
を備える。
【００１１】
このコンピュータ実装方法は、
オンライン・システム内で実行する工程から、ハンドルとユーザ情報のインスタンスとを指定する、予測器に関する要求を受信すること、
ユーザ情報のそのインスタンスに関して指定されたハンドルに対応する予測器を実行すること、
予測器の結果を要求工程に戻すこと
をさらに含み得る。
【００１２】
好ましくは、行動タイプの成功したインスタンスは、ユーザがその行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザがそのタイプの行動をとることを示す、オンライン・システム内に記憶された情報に対応する。
【００１３】
具体的には、この要求は、失敗したインスタンスに関する基準をさらに指定し、行動タイプの失敗したインスタンスは、ユーザがその行動タイプの行動をとることを可能にする情報がユーザに提示されることに応答して、ユーザがそのタイプの行動をとるのに失敗したことを示す、オンライン・システム内に記憶された情報に対応する。
【００１４】
ある行動タイプの失敗したインスタンスは、ユーザがその行動タイプと関連付けられたユーザ・インターフェース内で提示された情報に対して「よくないね」を表明すること（dislike）を示す入力を提供することを示す、オンライン・システム内に記憶された情報に対応し得る。
【００１５】
好ましくは、各行動タイプはオンライン・システム内に表されたエンティティを対象とする。
具体的には、行動タイプに対応するエンティティは、オンライン・システムのユーザ、ソーシャル・グループ、または画像のうちの１つである。
【００１６】
候補予測器は、線形回帰、ロジスティック回帰、ブースティング・ツリー、または加重決定木のうちの１つに基づくタイプの機械学習モデルであり得る。
このコンピュータ実装方法は、行動タイプに関する各生成された予測器に関して、
その行動タイプの既存の予測器の性能に対して生成された予測器の性能を比較すること、
生成された予測器の性能が既存の予測器の性能を超えることに応答して、既存の予測器を生成された予測器に置換すること
をさらに含み得る。
【００１７】
このコンピュータ実装方法は、各行動タイプに関して、新しい予測器を周期的に生成すること、
前に生成された予測器の性能に対して新しい予測器の性能を比較すること、
新しい予測器の性能が前に生成された予測器の性能を超えることに応答して、前に生成された予測器を新しい予測器に置換すること
をさらに含み得る。
【００１８】
好ましくは、各行動タイプに関して新しい予測器を周期的に生成する比率は、新しい予測器の性能と前に生成された予測器の性能との比較に基づいて判断される。
具体的には、各行動タイプに関する新しい予測器を周期的に生成する比率は、既存の予測器の性能と比較して新しい予測器の性能の改善がしきい値未満であることに応答して低減される。
【００１９】
同様に特許請求され得るさらなる実施形態では、
提供されるコンピュータ実装方法は、
オンライン・システムによって複数の予測器を記憶することであって、前記複数の予測器の各々が、オンライン・システムのユーザが行動タイプを実行するかどうかを予測し、前記複数の予測器の各々が、その行動タイプの成功したインスタンスを判断するための基準と関連付けられる、前記複数の予測器を記憶すること、
その行動タイプに対応する既存の予測器を選択すること、
オンライン・システムのユーザが実行した行動タイプの成功したインスタンスと失敗したインスタンスとを含むデータ・セットを識別すること、
識別されたデータ・セットを使用して、各候補予測器が機械学習モデルからなる１つまたは複数の候補予測器をトレーニングすること、
オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むテスト・データ・セットに関して各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、１つまたは複数の候補予測器から候補予測器を選択すること、
選択された候補予測器の性能を既存の予測器の性能と比較すること、
選択された候補予測器の性能が既存の予測器の性能を超えることに応答して、選択された候補予測器によって既存の予測器を置換すること
を備える。
【００２０】
好ましくは、行動タイプの成功したインスタンスは、ユーザがその行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザがそのタイプの行動をとることを示す、オンライン・システム内に記憶された情報に対応する。
【００２１】
好ましくは、行動タイプの失敗したインスタンスは、ユーザがその行動タイプの行動をとることを可能にするユーザ・インターフェースがユーザに提示されることに応答して、ユーザがそのタイプの行動をとるのに失敗したことを示す、オンライン・システム内に記憶された情報に対応する。
【００２２】
このコンピュータ実装方法は、新しい予測器を周期的に生成すること、
前に生成された予測器の性能に対して新しい予測器の性能を比較すること、
新しい予測器の性能が前に生成された予測器の性能を超えることに応答して、前に生成された予測器を新しい予測器に置換すること
をさらに含み得る。
【００２３】
好ましくは、各行動タイプに関する新しい予測器を周期的に生成する比率は、既存の予測器の性能と比較して新しい予測器の性能の改善がしきい値未満であることに応答して低減される。
【００２４】
同様に特許請求され得る、本発明による別の実施形態では、
提供されたコンピュータ実行可能コードを記憶した非一時的コンピュータ可読記憶媒体を有するコンピュータ・プログラム製品は、
オンライン・システムの予測器生成モジュール（predictor factory module）であって、
複数の予測器を記憶することであって、前記複数の予測器の各々が、オンライン・システムのユーザが行動タイプを実行するかどうかを予測し、前記複数の予測器は、行動タイプの成功したインスタンスを判断する基準と関連付けられる、前記複数の予測器を記憶すること、
行動タイプに対応する既存の予測器を選択すること、
オンライン・システムのユーザが実行した行動タイプの成功したインスタンスと失敗したインスタンスとを含むデータ・セットを識別すること、
識別されたデータ・セットを使用して、各候補予測器が機械学習モデルからなる１つまたは複数の候補予測器をトレーニングすること、
オンライン・システムのユーザが実行した行動タイプの複数の成功したインスタンスと複数の失敗したインスタンスとを含むテスト・データ・セットに関して各予測器を実行することによって、各候補予測器の性能を評価すること、
１つまたは複数の候補予測器の性能を比較することによって、１つまたは複数の候補予測器から候補予測器を選択すること、
選択された候補予測器の性能を既存の予測器の性能と比較すること、
選択された候補予測器の性能が既存の予測器の性能を超えることに応答して、選択された候補予測器によって既存の予測器を置換することを実行するように構成された前記予測器生成モジュールを備える。
【００２５】
同様に特許請求され得る、本発明のさらなる実施形態では、１つまたは複数のコンピュータ可読非一時的記憶媒体は、実行されるとき、本発明による方法、または上述の実施形態のうちのいずれかを実行するように動作可能なソフトウェアを実施する。
【００２６】
同様に特許請求され得る、本発明のさらなる実施形態では、システムは、１つもしく複数のプロセッサと、プロセッサに結合され、プロセッサによって実行可能な命令を含むメモリとを備え、プロセッサは、命令を実行するとき、本発明による方法、または上述の実施形態のうちのいずれかを実行するように動作可能である。
【図面の簡単な説明】
【００２７】
【図１Ａ】本発明の実施形態による、オンライン・システム内、例えば、ソーシャル・ネットワーキング・システム内でカスタマイズされた予測器を生成および起動するためのシステム環境の図。
【図１Ｂ】本発明の実施形態による、ユーザがとる特定の行動に関する予測器の例を示す図。
【図２Ａ】本発明の実施形態による、ユーザがとる特定の行動に関する予測器の生成および起動を可能にする、オンライン・システム、例えば、ソーシャル・ネットワーキング・システムのシステム・アーキテクチャを示す図。
【図２Ｂ】本発明の実施形態による、オンライン・システムの予測器生成モジュールのシステム・アーキテクチャの図。
【図３】本発明の実施形態による、ソーシャル・ネットワーキング・システム内の様々なモジュールによって使用するための予測器モデルを生成するための全体的な工程を示す図。
【図４】本発明の実施形態による、ユーザによる所与の行動タイプに関する予測器モデルを生成するための全体的な工程を示す図。
【図５】本発明の実施形態による、ソーシャル・ネットワーキング・システム内でモデルを生成して、それらのモデルを更新するための工程の流れ図。
【発明を実施するための形態】
【００２８】
これらの図は、例示のためだけに、本発明の様々な実施形態を示す。当業者は、以下の説明から、本明細書で説明される本発明の原理から逸脱せずに、本明細書で示される構造および方法の代替実施形態を用いることが可能であることを容易に理解されよう。
【００２９】
次に、その例が添付の図面に示される、いくつかの実施形態を詳細に参照する。実用的であれば、図面において類似のまたは同様の参照番号が使用される場合があり、類似のまたは同様の機能を示す場合があることに留意されたい。これらの図面は、例示のためだけに、開示されるシステム（または、方法）の実施形態を示す。当業者は、以下の説明から、本明細書で説明される原理から逸脱せずに、本明細書で示される構造および方法の代替実施形態を用いることが可能であることを容易に理解されよう。
システム環境
図１Ａは、本発明の実施形態による、オンライン・システム内、例えば、ソーシャル・ネットワーキング・システム内でカスタマイズされた予測器を生成および起動するためのシステム環境の図である。本明細書で議論する発明は、ソーシャル・ネットワーキング・システムを使用して示されるが、ユーザがオンライン・システムと相互作用することを可能にする任意のオンライン・システムに適用可能である。具体的には、ソーシャル・ネットワーキング・システムは、そのユーザにそのソーシャル・ネットワーキング・システムの他のユーザと通信および相互作用するための能力を提供する。ユーザはソーシャル・ネットワーキング・システムに参加し、次いで、それらのユーザがつながることを望む何人かの他のユーザに対するつながりを追加する。本明細書で使用される場合、「友人」という用語は、ユーザが、ソーシャル・ネットワーキング・システムを介して、つながり、関連性、または関係を形成した任意の他のユーザを指す。
【００３０】
図１および他の図面は、同様の要素を識別するために同様の参照番号を使用する。「１１０ａ」など、参照番号の後の文字は、その文章がその特定の参照番号を有する要素を具体的に指すことを示す。「１１０」など、文章内の続き文字を伴わない参照番号は、その参照番号を有する、図面内の要素のうちのいずれかまたはすべてを指す（例えば、文章内の「１１０」は、図面の参照番号「１１０ａ」および／または「１１０ｂ」を指す）。
【００３１】
ユーザは、クライアント・デバイス１１０を使用して、ソーシャル・ネットワーキング・システム１００と相互作用する。１実施形態では、クライアント・デバイス１１０は、オペレーティング・システム、例えば、Ｍｉｃｒｏｓｏｆｔ  ＷＩＮＤＯＷＳ（登録商標）対応オペレーティング・システム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬＩＮＵＸ（登録商標）ディストリビューションを実行するパーソナル・コンピュータ（ＰＣ）、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ノートブック、タブレットＰＣであり得る。別の実施形態では、クライアント・デバイス１１０は、携帯情報端末（ＰＤＡ）、モバイル電話、スマートフォンなど、コンピュータ機能を有する任意のデバイスであり得る。
【００３２】
ソーシャル・ネットワーキング・システム１００は、異なるタイプの情報、例えば、他のユーザ、ソーシャル・グループ、ソーシャル・イベント、コンテンツ、画像などを記述する情報をユーザに提示する。一般に、ユーザと関連付けられる多数の行動がソーシャル・ネットワーキング・システム内で発生している。一般に、ユーザがソーシャル・ネットワーキング・システムに費やす時間は限定されており、ソーシャル・ネットワーキング・システムのユーザ・インターフェース内で利用可能なスペースの量も限定されているため、ソーシャル・ネットワーキング・システムは、ユーザが関心を持つ可能性が最も高い情報を選択する。ソーシャル・ネットワーキング・システムは、様々な利用可能なオプションからユーザに提示するための情報を選択する、１つまたは複数の示唆モジュール１４０（suggestion module）を組み込むことが可能である。
【００３３】
示唆モジュール１４０は、予測器１３０を使用して、ユーザに提示された情報に基づいて、ユーザが所望の行動を実行する可能性が高いかどうかを判断する。例えば、予測器１３０は、ユーザがそのユーザに提示されたニュースフィード項目に関係するさらなる情報を要求する尤度を判断することができる。または、予測器１３０は、ユーザがそのユーザに提示された画像にコメントする尤度を判断することができる。あるいは、予測器１３０は、そのユーザに対する潜在的なつながりとして示唆されたユーザとつながるための要求を送信する尤度を判断することができる。さらに、異なるタイプの示唆モジュールが存在し、各々が、異なる予測器セットを使用することができる。
【００３４】
本発明の実施形態は、要求元（requester）がモデル内で使用されることになる個々の特徴を指定することを必要とするのではなく、要求元が機能レベルで予測器生成部（predictor factory）１５０に対して予測器に関する要件を指定することを可能にする。例えば、要求元は、示唆モジュール１４０に関して予測器モデルが必要とされる行動タイプを指定することができる。例えば、行動タイプは、潜在的なつながりのリストを提示されたとき、ユーザが別のユーザとのつながりを築くための要求を送信することであり得、または行動タイプは、画像が提示されたとき、ユーザがその画像にコメントすることであり得る。要求元は指定された行動タイプが成功または失敗とみなされ得るときを識別するための基準をやはり指定する。１実施形態では、各要求元は、実行中のシステム内で特定の行動タイプが発生するときに起動されるアプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用して実行され得る実行可能命令のセットを提供することができる。行動の成功は、ＡＰＩに対する呼び（call）に基づいて判断され得る。
【００３５】
予測器生成部１５０は、要求元によって提供された情報を使用して、予測器１３０を生成する。複雑なシステムの場合、複数の要求元が存在し得るため、予測器生成部１５０は、いくつかの予測器１３０ａ、１３０ｂ、１３０ｃなどを生成することができる（１６５）。予測器生成部１５０は、ソーシャル・ネットワーキング・システム１００のユーザが提供した信号１０５を使用して、予測器モデルをトレーニング（training）する。これらの信号は、ユーザがソーシャル・ネットワーキング・システム１００と相互作用するときにユーザがとる様々な行動に対応し得る。
【００３６】
生成された予測器１３０は、ソーシャル・ネットワーキング・システムのモジュールによって起動される。例えば、示唆モジュール１４０は予測器１３０ａを起動することができ（１５５）、別のモジュールは、予測器１３０ｂを起動することができる（１５５）、等々である。ソーシャル・ネットワーキング・システムのモジュール、例えば、示唆モジュール１４０は、適切な予測器を起動して（１５５）、例えば、ある種の情報を特定のユーザに提示すべきかどうか、または示唆モジュール１４０はユーザに対してある種の示唆１１５を行うべきかどうかを判断するために、モジュールがとることが可能な様々な行動を判断することができる。
【００３７】
ソーシャル・ネットワーキング・システム１００は、１つまたは複数のコンピュータ・プロセッサ上で実行するソフトウェア・モジュールからなる。システム１００および１１０のいくつかの実施形態は、本明細書で説明されるモジュールとは異なるモジュールおよび／または別のモジュールを有し、これらの機能は、本明細書で説明されるのとは異なる構成でモジュール間に分散され得る。ソーシャル・ネットワーキング・システム１００は、図１に示すモジュール以外のモジュール、例えば、本明細書でさらに説明される、図２に示すモジュールからなり得る。
【００３８】
図１Ｂは、本発明の実施形態による、ユーザがとる特定の行動タイプに関する予測器の例を示す図である。ユーザが実行する行動は、ターゲット・エンティティに関する場合がある。ターゲット・エンティティの例は、ソーシャル・ネットワーキング・システム１００内で提示された他のユーザ、ソーシャル・グループ、画像などを含む。
【００３９】
行動タイプ１８５は、ターゲット・エンティティに依存し得る。例えば、ソーシャル・グループを表すターゲット・エンティティ１８０の場合、行動１８５は、ソーシャル・グループに参加するソース・ユーザ１７０であり得る。ソーシャル・ネットワーキング・システムのユーザを表すターゲット・エンティティ１８０の場合、行動１８５は、ソース・ユーザ１７０がメッセージを送信すること、つながりを築くための要求を送信すること、またはターゲット・ユーザ１８０を記述する情報を閲覧することであり得る。画像を表すターゲット・エンティティ１８０の場合、行動１８５は、ソース・ユーザがターゲット画像にコメントすること、ターゲット画像に対して「いいね」を表明すること、またはターゲット画像を閲覧することに対応し得る。
【００４０】
予測器生成部１５０は、特定のタイプのターゲット・エンティティと関連付けられた各行動タイプに関する予測器モデル１３０を生成することができる。例えば、予測器１３０ｐは、ターゲット・エンティティ・タイプ１８０ａに関する行動タイプ１８５ａを予測して、予測器１３０ｑは、ターゲット・エンティティ・タイプ１８０ａに関する行動タイプ１８５ｂを予測して、予測器１３０ｒは、ターゲット・エンティティ・タイプ１８０ｂに関する行動タイプ１８５ｃを予測する。いくつかの実施形態では、ソースは、別のターゲット・エンティティ上で行動を実行することが可能にされた、ソーシャル・ネットワーキング・システム内に表された任意のエンティティであり得る。エンティティが実行することが可能にされる行動は、ユーザが実行するのが可能にされる行動とは異なる場合がある。
システム・アーキテクチャ
図２Ａは、ソーシャル・ネットワーキング・システム１００であるオンライン・システム１００の実施形態のシステム・アーキテクチャの図である。ソーシャル・ネットワーキング・システムは本明細書で例示的なオンライン・システムとして説明されるが、本明細書で説明される原理は他のオンライン・システムに適用可能である。ソーシャル・ネットワーキング・システム１００は、予測器生成部１５０と、ニュースフィード生成器２３５と、ウェブ・サーバ２１５と、行動ロガー（action logger）２４０と、行動ログ２４５と、つながり記憶部（connection store）２３０と、ユーザ・プロファイル記憶部（user profile store）２２５と、示唆モジュール１４０とを含む。他の実施形態では、ソーシャル・ネットワーキング・システム１００は、様々なアプリケーションに関する追加のモジュール、より少ないモジュール、または異なるモジュールを含み得る。システムの詳細を曖昧にしないように、ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ（failover server）、管理およびネットワーク・オペレーション・コンソール（management and network operations consoles）など、従来の構成要素は示されない。
【００４１】
ソーシャル・ネットワーキング・システム１００は、ユーザ・プロファイルをユーザ・プロファイル記憶部２２５内に記憶する。ユーザ・プロファイル記憶部２２５は、伝記的情報と、人口学的情報と、職歴、学歴、性別、性的好み、趣味または選好、場所など、他のタイプの記述情報を含めて、ソーシャル・ネットワーキング・システム１００のユーザを記述する情報とを記憶する。ユーザ・プロファイル記憶部２２５は、ユーザが提供したコンテンツ、例えば、画像、ビデオ、コメント、およびステータス更新を記憶することも可能である。１実施形態では、ソーシャル・ネットワーキング・システム１００のユーザは、例えば、事業、非営利団体、製造会社、プロバイダなど、組織であり得る。組織のユーザ・プロファイル内に記憶された情報タイプは、個人のユーザ・プロファイル内に記憶された情報と異なる場合がある。例えば、組織は、事業のタイプ、その組織と関連付けられた財務情報、その事業の構造などを記述した情報を記憶することができる。
【００４２】
ソーシャル・ネットワーキング・システム１００は、ユーザが、自らがつながることを望む、ソーシャル・ネットワーキング・システム１００の何人かの他のユーザに対するつながりを追加することを可能にする。つながりは、ユーザによって明示的に追加されることが可能であり、例えば、ユーザは、友人になる特定の他のユーザを選択するか、またはユーザ（例えば、同じ教育機関の卒業生であるユーザ）の共通の特徴に基づいて、ソーシャル・ネットワーキング・システムによって自動的に作成され得る。ソーシャル・ネットワーキング・システムは、そのユーザに特定の情報とともに、ユーザのつながりを記述した情報を記憶することができる。
【００４３】
ソーシャル・ネットワーキング・システム１００は、つながり記憶部２３０内の異なるメンバー間の１つまたは複数のつながりを記述するデータを記憶する。つながり情報は、類似のもしくは共通の職歴、グループ・メンバーシップ、趣味、または学歴を有するメンバーを示すことができる。加えて、ソーシャル・ネットワーキング・システム１００は、ユーザが他のユーザとの関係を指定することを可能にする、異なるユーザ間のユーザ定義されたつながりを含む。例えば、これらのユーザ定義されたつながりは、メンバーが、友人、同僚、パートナーなど、それらのユーザの現実の関係に対応する他のユーザとの関係を生成することを可能にする。
【００４４】
ユーザは、事前定義されたタイプのつながりから選択すること、または、必要に応じて、その独自のタイプのつながりを定義することができる。各ユーザを記述するユーザ情報は、ユーザのつながりを記述する情報を含み得る。さらに、ユーザのつながりを記述する情報は、ユーザが実行する行動に関してアクセスされ得る。例えば、ユーザがソーシャル・ネットワーキング・システム上にコメントを掲載する場合、ソーシャル・ネットワーキング・システムは、ユーザのつながりに対する行動を記述する情報を提供することができる。この情報は、ニュースフィードを介してユーザのつながりに提供され得る。
【００４５】
行動ロガー２４０は、ソーシャル・ネットワーキング・システム１００上および／またはソーシャル・ネットワーキング・システム１００外のユーザ行動に関する通信をウェブ・サーバ２１５から受信することができる。行動ロガー２４０は、ユーザ行動を追跡するために、ユーザ行動に関する情報で行動ログ２４５を埋める。別のユーザに関して特定のユーザがとる任意の行動は、データベース内、または、行動ログ２４５など、他のデータ・リポジトリ内に維持された情報を通じて各ユーザのプロファイルと関連付けられる。そのような行動は、例えば、中でも、他のユーザに対するつながりを追加すること、メッセージを他のユーザに送信すること、他のユーザからのメッセージを読み取ること、他のユーザと関連付けられたコンテンツを閲覧すること、別のユーザが掲載したイベントに参加することを含み得る。
【００４６】
ソーシャル・ネットワーキング・システム１００は、ソーシャル・ネットワーキング・システム１００内で利用可能な情報の定期的な更新をユーザに提供するニュースフィード・チャネルを維持する。ニュースフィード・チャネルを介して報告される情報は、ニュースフィード生成器２３５によって判断される。ニュースフィード生成器２３５は、行動ログ２４５内に記憶された行動に基づいて、ユーザに関連し得る情報に関するメッセージを各ユーザに対して生成する。これらのメッセージは、「ストーリー（story）」と呼ばれ、各ストーリーは、特定のメンバーに関連する、行動ログ内のもう１つの行動に基づく、１つまたは少数の情報ラインからなるメッセージである。例えば、ユーザのつながりがトランザクションを実行する場合、行動はニュースフィード・ストーリーを介してそのユーザに報告される。ニュースフィードを介して報告される行動は、一般に、ユーザのつながりによって実行された行動であるが、それらに限定されない。例えば、ユーザのつながりに関係ないある種の情報がそのユーザにとって有用であると判断された場合、その情報はニュースフィードを介してそのユーザに報告され得る。
【００４７】
ウェブ・サーバ２１５は、ネットワーク２１０を介して、ソーシャル・ネットワーキング・システム１００を１つまたは複数のクライアント・デバイス１１０にリンクし、ウェブ・サーバ２１５は、ウェブ・ページ、ならびに、Ｆｌａｓｈ、ＸＭＬなど、他のウェブ関係コンテンツにサービス提供する。ウェブ・サーバ２１５は、ソーシャル・ネットワーキング・システム１００とクライアント・デバイス１１０との間でメッセージを受信および経路指定する機能を提供する。これらのメッセージは、インスタント・メッセージ、待ち行列（queue）に入れられたメッセージ（例えば、電子メール）、テキスト・メッセージおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、または任意の他の適切なメッセージング技法であり得る。いくつかの実施形態では、ユーザが別のユーザに送信したメッセージは、例えば、そのユーザのつながりがそのメッセージを受信することによって、ソーシャル・ネットワーキング・システム１００の他のユーザによって閲覧され得る。メッセージの受信者の他に、ソーシャル・ネットワーキング・システム１００の他のユーザによって閲覧され得るメッセージのタイプの例はウォール・ポスト（wall post）である。ウォール・ポストは、ユーザが、そのユーザのプライバシー設定によって定義されたユーザのセットによってアクセスされ得る、ウォールと呼ばれる通信チャネルを介してメッセージを掲載することを可能にする。例えば、ユーザは、ユーザのウォールをそのユーザのすべてのつながりと共有すること、ユーザのつながりのサブセットと共有すること、少数の具体的に列挙されたつながりを除くすべてのつながりと共有すること、または明示的に提供されたつながりのリストによって共有することができる。いくつかの実施形態では、ユーザは、別のユーザによってだけアクセスされ得るプライベート・メッセージをその別のユーザに送信することができる。
【００４８】
ソーシャル・ネットワーキング・システム１００は、ウェブサイトによってサポートされた様々なタイプのエンティティに関する行動をとるための能力をユーザに提供することができる。これらのエンティティは、そのウェブサイトのメンバーが属し得るグループまたはネットワーク（この場合、「ネットワーク」は、ここで、物理的な通信ネットワークを指さず、むしろ、人々の社会的ネットワークを指す）と、メンバーが関心を持ち得るイベントまたはカレンダー入力事項と、メンバーがウェブサイトを介して使用することができるコンピュータベースのアプリケーションと、メンバーがウェブサイトを介して品目を購入すること、販売すること、競売にかけること、借りること、または交換することを可能にするトランザクションとを含み得る。ユーザ・プロファイルは、様々なエンティティとのユーザの関連性を記憶することができる。
【００４９】
ソーシャル・ネットワーキング・システム１００は、互いと通信するため、または、例えば、彼らの友人が関与している活動、彼らの友人がインストールしているアプリケーション、他の友人の活動に関して友人が行ったコメントなど、それらのユーザが関心あると思う情報を取得するための様々な機構をユーザに提供することができる。メンバー同士の間の通信の機構はチャネルと呼ばれる。ユーザが別のユーザと通信する場合、例えば、通信の行動をその送信者および受信者と関連付けるために、両方のユーザのユーザ情報にアクセスしなければならない場合がある。
【００５０】
示唆モジュール１４０は、様々なユーザにとって関心ある情報を識別して、その情報をそれらのユーザに送信する。例えば、ソーシャル・ネットワーキング・システムは、そのユーザとつながりがある他のユーザがとる行動を記述するストーリーをユーザに送信することができる。このストーリーは、ソーシャル・ネットワーキング・システムの通信チャネル、例えば、ニュースフィード・チャネルを介してユーザに通信され得る。示唆モジュール１４０は、様々なユーザのユーザ・プロファイル内で利用可能な情報を使用して、各ユーザが関心を持つストーリーを判断する。示唆モジュールは、予測器生成部１５０によって提供される予測器を使用して、提示するために利用可能な様々な情報からユーザに提示するための情報を選択する。予測器生成部１５０は、図１Ａの記述で説明され、本明細書で、例えば、図２Ｂでより詳細に説明される。
【００５１】
クライアント・デバイス１１０は、ブラウザ２２０を実行して、ユーザがソーシャル・ネットワーキング・システム１００と相互作用することを可能にする。ブラウザ２２０は、ユーザがソーシャル・ネットワーキング・システム１００を使用して、様々な行動を実行することを可能にする。これらの行動は、ユーザが関心を持つ情報を取り出すこと、コンテンツを他のユーザに勧めること、コンテンツをソーシャル・ネットワーキング・システム１００にアップロードすること、ソーシャル・ネットワーキング・システムの他のユーザと相互作用すること、ソーシャル・ネットワーキング・システムのユーザとのつながりを築くことなどを含む。
【００５２】
クライアント・デバイス１１０とオンライン・システム１００との間の相互作用は、一般に、ネットワーク２１０を介して、例えば、インターネットを介して実行される。ネットワーク２１０は、クライアント・デバイス１１０とオンライン・システム１００との間の通信を可能にする。１実施形態では、ネットワーク２１０は、標準的な通信技術および／または通信プロトコルを使用する。したがって、ネットワーク２１０は、ＥＴＨＥＲＮＥＴ（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、デジタル加入者線（ＤＳＬ）、非同期転送モード（ＡＴＭ）、ＩｎｆｉｎｉＢａｎｄ、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ａｄｖａｎｃｅｄ  Ｓｗｉｔｃｈｉｎｇなどの技術を使用するリンクを含み得る。同様に、ネットワーク２１０上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング（multiprotocol label switching : ＭＰＬＳ）、送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）などを含み得る。ネットワーク２１０上で交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）、拡張可能マークアップ言語（ＸＭＬ）などを含む技術および／またはフォーマットを使用して表されることが可能である。加えて、リンクのすべてまたは一部は、セキュア・ソケット・レイヤー（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、仮想プライベート・ネットワーク（ＶＰＮ）、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌセキュリティ（ＩＰｓｅｃ）など、従来の暗号化技術を使用して暗号化され得る。別の実施形態では、エンティティは、上で説明した通信技術の代わりに、もしくはそれに加えて、カスタム・データ通信技術および／または専用データ通信技術を使用することができる。実施形態に応じて、ネットワーク２１０は、インターネットなど、他のネットワークに対するリンクを含むことも可能である。
【００５３】
図２Ｂは、本発明の実施形態による、ソーシャル・ネットワーキング・システムの予測器生成部・モジュール１５０のシステム・アーキテクチャの図である。予測器生成部１５０は、機械学習モデル２７５と、スケジューラ２８５と、データ抽出器モジュール２６５と、モデル評価器２８０と、モデル生成器２９０と、行動データ記憶部２６０と、予測器記憶部１２０とを含むモジュールからなる。予測器生成モジュール１５０は、ソーシャル・ネットワーキング・システム内で使用する予測器を生成するための要求を受信する。いくつかの実施形態では、予測器は、外部システム、例えば、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を介してソーシャル・ネットワーキング・システム内の機能を起動する外部システムによって使用するために提供され得る。
【００５４】
予測器生成モジュール１５０によって受信される予測器に関する要求は、予測されることになる行動タイプを指定する。行動タイプは、ソーシャル・ネットワーキング・システム内に表された特定のエンティティ・タイプと関連付けられることが可能である。例えば、予測器は、ソース・ユーザがターゲット・ユーザとのつながりを築く尤度を予測することを要求される場合がある。この状況では、行動はつながりを築くことであり、ターゲット・エンティティは別のユーザである。別の例として、予測器は、ソース・ユーザがソーシャル・グループに参加する尤度を予測することを要求される場合がある。この例では、行動はユーザがソーシャル・グループに参加することであり、ターゲット・エンティティはソーシャル・グループである。
【００５５】
この要求は、行動タイプの成功したインスタンスを識別するための基準と、行動タイプの失敗したインスタンスを識別するための基準とをやはり指定する。例えば、行動タイプが、ユーザが別のユーザとつながるための要求を送信することに対応する場合、行動の成功したインスタンスは、ユーザがオンライン・システムによって示唆された潜在的な友人とつながるための要求を送信することに対応し、失敗したインスタンスは、ユーザが潜在的な友人とつながることに失敗したこと、またはその友人示唆を隠すことを試みることに対応する。成功したインスタンスを識別するための基準は、ユーザに提示された適切なユーザ・インターフェースを示す情報と、そのユーザ・インターフェースを使用して、ユーザが実行した行動タイプを示す情報とからなり得る。例えば、ユーザが別のユーザとのつながりを築く試みの成功は、ユーザの潜在的なつながりを示唆するユーザ・インターフェースがユーザに提示されたことと、ユーザが、そのユーザ・インターフェースを介して、そのユーザが示唆されたつながりのうちの１人とつながることを望むことを示す入力を提供したこととを検出することによって識別され得る。
【００５６】
ある行動タイプの失敗したインスタンスは、ユーザが、例えば、ユーザに提示されたある種の情報を隠すようにソーシャル・ネットワーキング・システムに要求することによって、否定的なフィードバックを提供することにも対応し得る。例として、ソーシャル・ネットワーキング・システム１００は、ユーザがそのコンテンツに関するフィードバックを提供することを可能にするユーザ・インターフェースとともに、ある種のコンテンツをユーザに勧めることができる。ユーザは、ユーザ・インターフェースを使用して、肯定的または否定的であり得るフィードバックを提供することができる。否定的なフィードバックは、ユーザ・インターフェースを介して、ユーザが提示された情報に対して「よくないね」を表明したこと、ユーザが提示された情報を隠すことを試みること、またはユーザが特定のタイプの情報もしくはその特定のソースからの情報をそれ以上見ることを望まないことを示すことに対応し得る。
【００５７】
同じ行動タイプの失敗は、ユーザの潜在的なつながりを示唆するユーザ・インターフェースがユーザに提示されて、その示唆されたユーザとのつながりを築くことを試みる入力がユーザから受信されなかったことを検出することによって識別され得る。ユーザから受信された入力の欠如は、しきい時間間隔を超えて、つながりを築くことを試みる何らかの入力を受信しないことによって、または前のユーザ・インターフェースを置換する新しいユーザ・インターフェースが提示されたとき、もしくは潜在的なつながりの新しいリストがユーザに提示されたとき、検出され得る。ユーザが明示的または暗示的な否定的信号を提供した場合、例えば、ユーザが、そのユーザが示唆されたユーザを記述する情報を隠すことを望むことを示した場合、または、ユーザが、そのユーザがそのユーザ・インターフェースを見ることを望まないことを示した場合にも失敗が識別され得る。これらの行動は、例えば、行動ロガーによって、または、例えば、行動ログを解析することによって、ソーシャル・ネットワーキング・システム内で行動をオフラインで処理することによって、ランタイムで検出され得る。
【００５８】
データ抽出器モジュール２６５は、ソーシャル・ネットワーキング・システム内で利用可能な情報を解析して、予測器モデルのトレーニング、評価、またはテストに有用なデータを抽出する。例えば、モジュールが特定の行動タイプに関する予測器モデルを提供するように予測器生成部に要求する場合、データ抽出器モジュール２６５は、その行動タイプのインスタンスを抽出する。データ抽出器２６５は、行動ログ２４５内で利用可能なデータを解析することによって、所与の行動タイプに関するデータを収集することができる。例えば、データ抽出器２６５は、行動ログ内の所与の行動タイプの様々なインスタンスを探すことができる。
【００５９】
一例として、行動が、ユーザが写真にコメントすることに対応する場合、行動の成功したインスタンスは、写真を提示されたとき、特定のユーザがその写真にコメントすることに対応し、失敗したインスタンスは、写真を提示されたにもかかわらず、ユーザがその写真にコメントしないことに対応する。同様に、行動が、ユーザがニュースフィード項目に関する追加の情報を要求することに対応する場合、成功したインスタンスは、ニュースフィード項目が提示されたとき、特定のユーザが追加の情報を要求することに対応し、失敗したインスタンスは、特定のニュースフィード項目を提示されていることに応答して、ユーザが追加の情報を要求しないことに対応する。データ抽出器２６５は、行動の成功したインスタンスと失敗したインスタンスの両方を識別し、肯定的な成功したことは、ユーザがその行動を実行することに対応し、失敗したインスタンスは、その行動を実行する適切な機会を与えられたユーザがその行動を実行しないことに対応する。
【００６０】
要求元モジュールが、特定のユーザ・カテゴリーに関してその予測器モデルが要求されることを指定した場合、データ抽出器２６５は、そのカテゴリーに属するユーザがとる行動に基づいてデータを生成する。要求元モジュールは、特定の人口統計学的特性を有するユーザ、例えば、男性で、特定の年齢層に属するユーザ、女性で、特定の経済状態を有するユーザ、特定の地理的領域に属するユーザ、特定の民族的背景を有するユーザ、または特定の言語を話すユーザに関する予測器モデルを要求することができる。
【００６１】
１実施形態では、データ抽出器２６５は、ソーシャル・ネットワーキング・システムのモジュールを起動して、選択されたユーザに特定の行動タイプを実行する機会を提示して、選択されたユーザがその行動を実行するかどうかを監視する。選択されたユーザが機会を与えられた行動を実行する場合、データ抽出器２６５は、行動タイプの肯定的なインスタンスを記録する。選択されたユーザが機会を与えられた行動を実行しない場合、データ抽出器２６５は、行動タイプの否定的なインスタンスを記録する。行動の肯定的なインスタンスは、成功とも呼ばれ、否定的なインスタンスは特定の行動の失敗と呼ばれる。
【００６２】
データ抽出器２６５は、抽出したデータを行動データ記憶部２６０内に記憶することができる。行動データ記憶部２６０内に記憶された情報は、予測器モデルを生成すること、または予測器モデルをテストおよび評価することのいずれかに関連してユーザがとる様々な行動を記述する。表１は、所与の行動タイプに関して行動データ記憶部２６０内に記憶された例示的なデータ値を示す。
【００６３】
【表１】
0005913754.tif 000002
表１に示すように、データの各行は、行を一意に識別する行識別子を表すデータ行ＩＤ値を有する。ソースＩＤは、行動のソース、例えば、行動を実行するユーザまたは行動を実行しないユーザを一意に識別する識別子である。ターゲットＩＤは、行動が実行されたエンティティを表す識別子値を表す。ターゲット・タイプは、ターゲットに対応するエンティティのタイプを表す。ターゲットは、例えば、グループ、ユーザ、画像、アプリケーション、コメント、ニュースフィード項目など、ソーシャル・ネットワーキング・システム内に表された任意のタイプのエンティティであり得る。一般に、ターゲットは、ソース・ユーザが相互作用できるエンティティである。ソース・ユーザは、ターゲット・エンティティと相互作用することに対応する行動を実行する。各行動タイプは、一意の識別子によって表されることが可能である。行動ＩＤ値は、その行が表す行動タイプに対応する識別子を記憶する。例えば、ターゲット・エンティティが画像であり、行動が画像についてコメントすることであり得る場合、またはターゲット・エンティティがユーザである場合、行動は、ソース・ユーザがターゲット・ユーザとのつながりを築くための要求を送信することに対応し得る。別の実施形態では、行動データ記憶部２６０は、行動が短い時間間隔内でユーザによって複数回数繰り返された場合、単一の行を記憶する。例えば、ユーザが別のユーザを記述する情報を短い時間間隔内で複数回取り出した場合、またはユーザが短い時間間隔内であるエンティティに対して「いいね」を表明するボタンを押すことを複数回繰り返した場合、同じソースとターゲットとの間の行動タイプのすべてのこれらのインスタンスに関して単一の行が記憶される。１実施形態では、行動データ記憶部２６０は、そのカウントが、所定のサイズの過去の時間間隔、例えば、３０分間隔内の同じターゲット・エンティティに対する同じユーザによる特定の行動タイプのいくつかのインスタンスを示すように、表１の各行に関するカウントを記憶する。
【００６４】
ラベル列は、その行が肯定的なインスタンスに対応するか、または否定的なインスタンスに対応するかを示し、例えば、「１」の値は、行動の肯定的なインスタンスを示し、「０」の値は、行動の否定的なインスタンスを示す。表１に示した例示的なデータでは、ＩＤ１００を有するユーザは、１つがターゲットＩＤ２００を有するエンティティを対象とする行１００１に対応し、もう１つのインスタンスがターゲットＩＤ２０１を有するエンティティを対象とする行１００２に対応する、行動の２つのインスタンスと関連付けられる。第３の行は、ソースＩＤ１０１を有する別のユーザがとる行動のインスタンスに対応する。いくつかの実施形態では、ラベルは、「ゼロ」および「１」以外の値を占有することができ、例えば、ラベルは、任意の正の整数値をとり得るカウンタ値を表すことができる。
【００６５】
表１で収集されたイベントに基づいて、特徴抽出器２９５は利用可能な行動に基づいて特徴を抽出する。特徴の例は、ソース・ユーザおよびターゲット・エンティティ、ならびにソースとターゲットとの間の関係を特徴付ける情報を含む。例えば、ターゲット・エンティティがユーザである場合、特徴は、ソース・ユーザが過去にそのターゲット・ユーザと通信した比率、ターゲット・ユーザがそのターゲット・ユーザを記述する情報にアクセスした比率、ソース・ユーザとターゲット・ユーザとの間の最後の相互作用からの時間の長さ、などを示すことができる。
【００６６】
特徴は、ソーシャル・ネットワーキング・システム１００内に表されるエンティティおよびソーシャル・ネットワーキング・システム１００内で実行された行動と関連付けられた値に基づいて、式として表されることが可能である。特徴を表すこれらの式は、専門家によって提供されて、権利を有するユーザ、例えば、システム・アドミニストレータによってシステムに追加され得る。１実施形態では、特徴（feature）は、ソーシャル・ネットワーキング・システム内で記録された行動の関数として表される。すなわち、ｆｅａｔｕｒｅ＝ｆｕｎｃｔｉｏｎ（ｌｏｇｇｅｄ＿ａｃｔｉｏｎ）。特徴は、他の特徴の関数、例えば、他の特徴もしくは行動、またはそれら２つの組合せに基づく式であってもよい。式としての特徴の一例として、ターゲットがユーザであり、ｖｉｅｗ＿ｐｒｏｆｉｌｅが、ソース・ユーザがターゲット・ユーザのプロファイルを閲覧することに対応する場合、ｖｉｅｗ＿ｐｈｏｔｏはソース・ユーザがターゲット・ユーザの写真を閲覧することに対応し、ｖｉｅｗ＿ｃｏｍｍｅｎｔは、ソース・ユーザが、ターゲット・ユーザが掲載したコメントを閲覧することに対応し、観察と呼ばれる特徴は、以下のように定義され得る。
ｏｂｓｅｒｖａｔｉｏｎ＝ｖｉｅｗ＿ｐｒｏｆｉｌｅ＋ｖｉｅｗ＿ｐｈｏｔｏ＋０．５×ｖｉｅｗ＿ｃｏｍｍｅｎｔ
１実施形態では、上記の式で、条件の値、例えば、ｖｉｅｗ＿ｐｒｏｆｉｌｅは、行動が発生する場合、「１」であり、行動が発生しない場合、「０」である。別の実施形態では、各条件の値は、スコア値、例えば、特定の行動を記述する情報に基づくスコア、例えば、その行動を時間間隔内でユーザが実行した回数、または、ユーザが異なる写真を取り出す前に、ある写真を観察した時間の長さなど、その行動と関連付けられた時間の長さであってよい。
【００６７】
１実施形態では、特徴は、複数のターゲットに関してソース・ユーザが実行した行動に基づく集約値（aggregate value）であってよい。例えば、特徴は、ソース・ユーザとつながりのあるすべての他のユーザに関して、所与の時間間隔内でソース・ユーザが実行したすべてのページ閲覧の集約を表すことが可能である。別の特徴は、ユーザがそのユーザとつながりのある他のユーザが掲載した画像を閲覧する比率を表すことが可能である。特徴は、ソース・ユーザとつながりのあるすべての他のユーザに関するソース・ユーザの挙動に基づいて正規化された、ターゲット・ユーザに関してソース・ユーザが実行した行動を表すことが可能である。例えば、特徴は、ソース・ユーザとつながりのある他のユーザとのソース・ユーザの相互作用の平均数を使用して正規化された、ソース・ユーザがターゲット・ユーザとどの程度頻繁に相互作用するかを表すことが可能である。様々な特徴を記述するメタデータは特徴記憶部２５０内に記憶される。
【００６８】
１実施形態では、表１のデータ表現は、行動データ記憶部２６０内のデータベース表であり得る。行動は、ソーシャル・ネットワーキング・システム内で発生すると、表１のデータ表現に追加される。また、行動タイプに基づく特徴は、行動のインスタンスが追加されると更新される。例えば、特徴が、ユーザが写真を閲覧した回数に基づく場合、ユーザがその写真を閲覧する各インスタンスは、特徴を再評価させることが可能である。１実施形態では、特徴表は、様々な特徴の値を記憶する。例えば、特徴表は、列ソースＩＤと、ターゲットＩＤと、ターゲット・タイプと、行動ＩＤと、様々な特徴とを有し得る。
【００６９】
１実施形態では、行動データ記憶部２６０は、異なる予測器モデルをトレーニングするために必要とされるトレーニング・データを記憶するフィードバック表を維持する。各予測器モデルは、その予測器モデルが起動または使用された状況を表すコール・サイト（call site）と関連付けられることが可能である。同じ行動タイプは、異なる状況でユーザによって実行され得る。状況は、ユーザがその行動をとることができる、ターゲット・ユーザに対する情報の特定の提示と関連付けられることが可能である。一例として、ユーザが別のユーザとつながるための要求を送信する行動は、各々がユーザ・インターフェースのタイプと関連付けられた異なる状況で実行され得る。例えば、ユーザの潜在的なつながりのリストが提示されたとき、ユーザは、別のユーザとつながるための要求を送信することができる。あるいは、ソース・ユーザがターゲット・ユーザを記述する画像または他の情報を閲覧しているとき、ソース・ユーザにターゲット・ユーザとのつながる機会を提示することができる。表２は、ソースＩＤと、ターゲットＩＤと、コール・サイトと、行動インスタンスが成功であるか、または失敗であるかを表すラベルとを含む列を示す。表２で表された情報は、異なる予測器モデルをトレーニングするために使用され得る。
【００７０】
【表２】
0005913754.tif 000003
１実施形態では、様々な特徴に関する値は、ソースおよびターゲットの各インスタンスと関連付けられた名前と値の対として表されることが可能である。別の実施形態では、特定の予測器モデルに関して生成されたデータは、各ソースおよびターゲットがそのモデルに関連する様々な特徴と関連付けられる表３として表される。表３は、各行に関する成功または失敗を示すラベルも記憶する。
【００７１】
【表３】
0005913754.tif 000004
表３の表現に記憶されたデータは、特定の予測器モデルに関する異なる使用タイプに関する異なる部分に分割され得る。例えば、データのある部分はトレーニングのために使用可能であり、別の部分は異なる機械学習モデル・タイプをテストするために使用可能であり、第３の部分は、例えば、所与のコール・サイトに関して特定のモデル・タイプを選択するために異なるモデル・タイプを比較する目的で、異なる機械学習モデルを評価するために使用可能である。
【００７２】
機械学習モジュール２７５は、各所与の行動タイプに関して試みることが可能な様々なモデル・タイプを実装する。機械学習モデル２７５によって実装される異なる機械学習モデル・タイプの例は、線形回帰、ロジスティック回帰、二次関数回帰、冪乗関数回帰、指数回帰、ブースティング・ツリー、加重決定木、ならびに適切な他のモデル・タイプを含む。各モデルは、ある種の係数値を関連付けられることが可能である。例えば、線形回帰モデルをｗ１＊ｆ１＋ｗ２＊ｆ２＋ｗ３＊ｆ３＋・・・として表すことが可能であり、この場合、各特徴ｆｉは、適切な係数ｗｉによって重み付けされる。
【００７３】
モデル評価器２８０は、そのモデルに関して収集されたデータに基づいて、例えば、ログ損失スコアリング（log-loss scorig）を使用して、各予測器モデルを評価する。モデル評価器２８０は、所与のモデルを使用して結果を予測して、予測された結果を観察された実際の結果と比較することができる。１実施形態では、モデル評価器２８０は、無作為の推測に対してモデルによって予測された結果を比較することによって、モデルを評価する。１実施形態では、モデル評価器２８０は、すべての様々な性能モデル・タイプを評価して、所与のコール・サイトに関して予測器モデルとして使用されることになる最良に機能するモデルを選択するために、それらの性能を互いと比較する。モデル評価器２８０は、利用可能である場合、既存のモデルに対して選択されたモデルをやはり比較して、既存のモデルを新しいモデルに置換するかどうかを判断する。２つの異なるモデルが比較される場合、これらのモデルは同じデータ・セットに対して評価されて、その結果が比較される。
【００７４】
スケジューラ２８５は、所定のスケジュールに基づいて、予測器モデルを再生するためのタスクをスケジュールする。特定の行動に関する各予測器モデルについてのスケジュールは異なり得る。１実施形態では、スケジューラ２８５は、タスクの待ち行列を維持する。各タスクは、特定の行動タイプに関する予測器モデルと、その予測器モデルが再生される時間に対応する１つまたは複数のタイムスタンプ値とを識別する。タイムスタンプに対応する所定の時点で、スケジューラは、タスクを選択して、そのタスクを実行するために適切なモジュールを起動する。予測器モデルの再生は、そのモデルに関する様々な係数を再計算することに対応し得る。したがって、既存の予測器モデルは保持され得るが、特定のモデルの係数は変更される。例えば、既存の予測器モデルが線形回帰モデルである場合、新しい予測器モデルは、モデルの様々な条件に関する係数を新しい係数に置換した線形回帰モデルであってもよい。予測器モデルの再生は、新しいモデルを再生することに対応し得る。例えば、既存の予測器モデルと置換するために新しいモデル・タイプを生成することが可能である。いくつかの状況では、新しい予測器モデルが既存のモデルよりもそれほど良好でない場合、または既存のモデルよりも不良である場合、既存の予測器モデルは保持され得る。
全体的なプロセス
図３は、本発明の実施形態による、ソーシャル・ネットワーキング・システム内の様々なモジュールによって起動するための予測器機能を生成するための全体的な工程を示す。ソーシャル・ネットワーキング・システム１００の様々なモジュールは、予測器生成部１５０によって生成された予測モデルの消費者（consumer）であり得る。例えば、ニュースフィード生成器２３５は、ターゲット・ユーザが、ニュースフィードを介してそのターゲット・ユーザに送信されたコンテンツを閲覧することに関心を持つ尤度を予測する予測器モデルを起動することができる。示唆モジュール１４０は、ユーザがそのユーザに示唆されたグループと相互作用する尤度、例えば、ユーザがグループを記述するさらなる情報を要求する尤度、またはユーザがグループのメンバーになる尤度を予測する予測器モデルを起動することができる。
【００７５】
予測器生成部１５０は、ソーシャル・ネットワーキング・システム１００の他のモジュールによって使用するための、ある種のユーザ行動タイプに関する予測器モデルを生成するための要求を受信する（３１０）。上で説明したように、この要求は、例えば、別のユーザを記述する情報を要求すること、ユーザとのつながりを築くこと、写真に関するコメントを書くこと、グループのメンバーになることなど、ターゲット・ユーザがとる可能性が高いある種の行動タイプに関する予測器モデルに関する場合がある。この要求は、行動に対応する成功を判断するための基準と、行動に対応する失敗を判断するための基準とを提供する。行動の成功は、所与のタイプの行動を実行する機会がユーザに与えられ、ユーザがその与えられた行動タイプの行動を実行するかどうかを判断するために使用され得る基準に対応する。行動の失敗は、所与のタイプの行動を実行する機会がユーザに与えられ、ユーザがその与えられた行動タイプのインスタンスを実行しないかどうかを判断するために使用され得る基準に対応する。行動の失敗は、その行動を実行する機会が除去されるまで、その行動が一度も実行されないことに基づいて判断され得る。これは、異なる行動を実行する機会に対応し得る新しい情報セットがユーザに提示され、それによって、前の行動に対応する情報を上書きするときに発生し得る。あるいは、行動の失敗は、ユーザからの能動的なフィードバック、例えば、ユーザが提示された情報をそれ以上閲覧することを望まないこと、またはユーザが提示された情報に対して「よくないね」を表明することを示す、ユーザからの信号に基づいて判断され得る。ユーザはその情報が除去されるべきであることをソーシャル・ネットワーキング・システムに対して示しているため、提示された情報に基づいて、ユーザがその行動を実行する可能性は低く、それによって、行動の失敗を示す。
【００７６】
一例として、行動が、ユーザがそのユーザに提示されたニュースフィードから追加の情報を要求することに対応する場合、行動の成功は、ユーザがニュースフィード項目をクリックして追加の情報を要求することに対応し得る。同様に、この例では、失敗は、ユーザがニュースフィード項目を隠すことを試みるか、ユーザがニュースフィード項目に対して「よくないね」を表明することを示すか、またはそのニュースフィード項目がユーザに提示された後、ユーザがそのニュースフィード項目をクリックしないことのいずれかに対応し得る。
【００７７】
１実施形態では、要求元は、予測器モデルが要求されるユーザのカテゴリーを指定することも可能である。要求された予測器モデルは、ある種の人口統計学的特性を有するユーザを対象とし得る。例えば、要求された予測器モデルは、ある種の年齢層の女性がソーシャル・ネットワーキング・システム内に提示された組織のメンバーになる尤度、または特定の地理的領域からの男性がある種のメディア・コンテンツに関心を持つ尤度を判断することが可能である。
【００７８】
モデル生成器２９０は、要求された予測器モデルを生成する（３２０）。モデル生成器２９０が要求された予測器モデルをどのように生成するか（３２０）の詳細は、本明細書で、例えば、図４に示す流れ図でさらに説明される。予測器モデルは、その実行可能コードと関連付けられたある種のパラメータまたは属性とともに起動され得る実行可能コードからなり得る。例えば、予測器モデルに関する実行可能コードは機械学習モデルであり得、予測器モデルに関するパラメータは、機械学習モデルによって使用される係数であり得る。予測器モデルは、生成された予測器モデルを記述する情報を予測器記憶部１２０内に記憶する。
【００７９】
予測器生成部１５０は、生成された予測器モデルに関するハンドルを生成する。ハンドルは、予測器モデルを一意に識別するために使用される任意の値であり得る。ハンドルは、関数、関数名、または予測器を起動するために使用されるポインタであり得る。予測器生成部は、ハンドルを与えられた予測器モデルを調べるために、予測器モデルに対するテーブル・マッピング・ハンドルを維持することができる。ハンドルは、数字識別子、ストリング、予測器モデルを識別する関数ポインタ、または予測器モデルを実装する関数または方法の名称からなり得る。ハンドルはまた、予測器モデルに対応する係数値を識別する情報、例えば、機械学習技法によって使用される係数値からなる。
【００８０】
予測器生成部１５０は、ハンドルを要求元モジュールに戻す（３３０）。要求元モジュールは、ハンドルを使用して、後で予測器モデルを起動することができる。要求元モジュールは、予測器モデルの特定の起動に関するパラメータとともに、予測器モデルに関するハンドルを提供することができる。例えば、示唆モジュールは、ユーザがグループを記述する情報を要求する尤度を予測するために、特定のユーザおよびグループを識別する情報とともに、生成された予測器モデルに対するハンドルを予測器生成部に提供することによって、予測器モデルを起動することができる。新しい要求、例えば、ソーシャル・ネットワーキング・システムの他のモジュール内で使用するための予測器モデルの要求に関して図３に示す工程のステップを繰り返すことができる。
【００８１】
図４は、本発明の実施形態による、所与の行動タイプに関する予測器モデルを生成する（４２０）工程を示す。予測器生成部１５０は、所与の行動タイプに関する予測器モデルを生成するための要求に応答して、これらのステップを実行する。予測器生成部１５０は、機械学習モデル２７５をトレーニングするためのトレーニング・データ・セットとして、データ抽出器２６５によって生成されたデータを使用する。予測器生成部１５０は異なる機械学習モデル・タイプをトレーニングして、所与の行動タイプに関して異なる予測器モデルを生成する。予測器生成部１５０は、各モデル・タイプに関する係数またはパラメータの値を判断する。
【００８２】
モデル評価器２８０は、生成された異なるモデルを評価するためのテストデータとして、データ抽出器２６５によって生成されたデータの一部を使用する（４３０）。モデル評価器２８０は、予測器モデルを使用することによって、特定のユーザに提示された所与の状況における結果を予測し、次いで、その所与の状況においてそのユーザが実行した行動を実際に観察することによって、所与のモデルを評価することができる。モデル評価器２８０は、予測された結果が観察された結果と整合するインスタンスの数と、予測器モデルがその結果を正確に予測できなかったインスタンスの数とを追跡する。予測器モデルは、所与の行動タイプに関する結果を予測する際のその成功の比率に基づいて得点付けされる。例えば、７０％の回数で正確な結果を予測する、所与の行動タイプに関する予測器モデルは、４０％の回数で正確な結果を予測する、同じ行動タイプに関する予測器モデルよりも高く得点付けされる。
【００８３】
モデル評価器２８０は、所与の行動に関して異なるモデル・タイプの性能を比較して使用するためのモデルを選択する（４４０）。モデル評価器２８０は、各モデルの性能に基づいてモデルを選択する。１実施形態では、モデル評価器２８０は、最良に機能する予測器モデルを所与の行動タイプに関する予測器モデルとして選択する。予測器生成部１５０は、選択された予測器モデルを記述する情報を記憶して、予測器モデルに対するハンドルを要求元に戻す。予測器モデルに関するハンドルは、所与のタイプの行動に関する結果を予測する目的で予測器モデルを起動させるために後で使用され得る。
【００８４】
図５は、本発明の１実施形態による、ソーシャル・ネットワーキング・システム内でモデルを再成して、それらのモデルを更新するための工程の流れ図である。図５に示すように、スケジューラは、予測器モデルの再生および再評価のために特定の行動タイプに関する予測器モデルを選択する（５１０）。データ抽出器２６５は、その行動タイプに関する予測器モデルを再生するため、ならびにそのモデルを評価およびテストするために必要とされるデータを抽出する（５２０）。モデル生成器２９０は、選択された予測器モデルに対応する行動タイプに関する新しい予測器モデルを生成する（５３０）。モデル評価器２８０は、例えば、サンプル・データ・セットを利用して、予測器モデルを実行して、行動を予測して、予測された結果を実際の行動と比較することによって、生成された新しいモデルを評価する（５４０）。モデル評価器２８０は、生成された（５３０）新しい予測器モデルの性能を選択された（５１０）既存の予測器モデルと比較する（５５０）。予測器モデルは、オンラインＡ／Ｂテスト比較（online A/B test comparison）を使用して比較され得る。Ａ／Ｂテストは、システム内で比較されている各モデルを使用して、システムに対するそのモデルの影響を調べることができる。システムに対するモデルの影響は、エンド・ユーザの挙動を使用して判断され得る。新しい予測器モデルが既存のモデルよりも良好に機能すると判断された場合（５６０）、モデル生成器２９０は、既存のモデルを新しい予測器モデルに置換する（５７０）。
【００８５】
予測器記憶部１２０内の予測器モデルを記述するデータは、新しい生成された予測器モデルを反映するために更新される。新しい予測器モデルが既存のモデルよりも劣って機能する場合、または新しい予測器モデルの性能の改善が、既存のモデルと比較して、しきい値未満である場合、モデル生成器２９０は、既存のモデルを維持して、新しい予測器モデルを破棄する。スケジューラ２８５は、特定の行動に関する予測器モデルが再生される比率を再評価することができる。例えば、図５に示した工程の各反復において生成された各新しい予測器モデル内で観察された改善が前のモデルと比べて一貫してわずかである場合、予測器モデルが再生される比率を低減することが可能である。各行動タイプに関する予測器モデルは、異なる比率でスケジューラによって再生され得る。スケジューラは、予測器モデルの再生に関するタスクをタイムスタンプと関連付けて、そのタスクを待ち行列に追加することができる。待ち行列内の次のタスクのタイムスタンプに応じて、スケジューラは、再生のために次の予測器モデルを選択すること（５１０）、またはある時間待機して、後で待ち行列を再度検査することができる。
代替アプリケーション
本明細書で説明した特徴および利点は、すべて包括的ではなく、特に、多くの追加の特徴および利点は、図面、明細書、および特許請求の範囲から当業者に明らかになるであろう。さらに、本明細書で使用される言語は、主に、読みやすくするため、および教育的な目的で選択されており、本発明の主題を描写または制限するために選択されていない場合があることに留意されたい。
【００８６】
例えば、予測器モデルは、他のタイプのオンライン・システム内で生成および使用されることが可能であり、ソーシャル・ネットワーキング・システムに限定されない。例えば、ユーザ・プロファイルを記憶して、ユーザが行動をとることを可能にするオンライン・システムは、ユーザがとり得る様々な行動に関する予測器を生成および使用することができる。例えば、オンライン・システムは、ユーザが様々なデータタイプのフィードを受信するのを可能にし得る。予測器モデルは、ユーザがそのユーザに提示されたフィードを開くかどうかを予測するために開発され得る。予測器モデルは、フィードがユーザに提示されるのを順序付けるために、オンライン・システムによって使用され得、例えば、フィードは、ユーザがそのフィードを開く尤度、またはそのフィードから追加の情報を要求する尤度に基づいて順序付けられてよい。
【００８７】
本発明の実施形態の前述の説明は、例示の目的のために提示され、この説明は、包括的であること、または開示されたまさにその形態に本発明を限定することを意図しない。当業者は、上記の開示に照らして、多くの修正および改変が可能であることを理解されよう。
【００８８】
本明細書のいくつかの部分は、情報に関する演算のアルゴリズムおよび記号表現（symbolic representations）の点で、本発明の実施形態を説明する。これらのアルゴリズム的記述および表現は、データ処理技術分野の当業者がその仕事の内容を他の当業者に効果的に伝えるために一般に使用される。これらの演算は、機能的、計算的、または論理的に説明されているが、コンピュータ・プログラムまたは等価の電気回路、マイクロコードなどによって実装されることを理解されよう。さらに、一般性を失わずに、演算のこれらの構成をモジュールと呼ぶことが時として好都合であることも証明されている。説明した演算およびそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで実施され得る。
【００８９】
本明細書で説明したステップ、演算、または工程のうちのいずれも、１つもしくは複数のハードウェア・モジュールまたはソフトウェア・モジュールを用いて、単独で、もしくは他のデバイスと組み合わせて実行あるいは実装され得る。１実施形態では、ソフトウェア・モジュールは、説明したステップ、演算、または工程のうちのいずれかもしくはすべてを実行するためにコンピュータ・プロセッサによって実行され得るコンピュータ・プログラム・コードを含むコンピュータ可読媒体からなるコンピュータ・プログラム製品を用いて実装される。
【００９０】
本発明の実施形態は、本明細書で演算を実行するための装置にも関係し得る。本装置は、必要とされる目的のために特別に構築されることが可能であり、かつ／または本装置は、コンピュータ内に記憶されたコンピュータ・プログラムによって選択的にアクティブ化もしくは再構成された汎用コンピューティング・デバイスからなり得る。そのようなコンピュータ・プログラムは、電子命令を記憶するのに適し、かつコンピュータ・システム・バスに結合された有形コンピュータ可読記憶媒体内または任意のタイプの媒体内に記憶され得る。さらに、本明細書で参照される任意のコンピューティング・システムは、単一のプロセッサを含むことが可能であるか、または計算能力の増大のために複数のプロセッサ構成を用いるアーキテクチャであり得る。
【００９１】
最後に、本明細書で使用される言語は、主に、読みやすくするため、および教育的な目的で選択されており、本発明の主題を描写または制限するために選択されていない場合がある。したがって、本発明の範囲はこの詳細な説明によって限定されず、むしろ、この詳細な説明に基づく出願に関して発行される任意の特許請求の範囲によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の限定ではく、例示であることが意図され、本発明の範囲は以下の特許請求の範囲に記載される。
【図１Ａ】
0005913754.tif 000005
【図１Ｂ】
0005913754.tif 000006
【図２Ａ】
0005913754.tif 000007
【図２Ｂ】
0005913754.tif 000008
【図３】
0005913754.tif 000009
【図４】
0005913754.tif 000010
【図５】
0005913754.tif 000011