(57)【要約】  オンライン・システム、たとえば、ソーシャル・ネットワーキング・システムは、そのオンライン・システムにおいて表されているエンティティ間における関係について記述している特徴を記憶する。それらの特徴について記述している情報は、グラフとして表される。オンライン・システムは、累積特徴グラフおよび増分特徴グラフを維持する。最近のユーザ・アクションに基づく特徴値は、増分グラフ内に記憶され、以前のアクションに基づく特徴値は、累積グラフ内に記憶される。定期的に、増分特徴グラフ内に記憶されている情報と、累積特徴グラフ内に記憶されている情報とが併合される。増分グラフは、併合中には非アクティブの印を付けられ、新たなユーザ・アクションに基づく情報は、アクティブ増分特徴グラフ内に記憶される。特徴情報の要求が受け取られた場合、累積特徴グラフ、非アクティブ増分特徴グラフ、およびアクティブ増分特徴グラフから得られた特徴情報同士が組合わされて、特徴情報が決定される。
2016505940.tif 000002
【特許請求の範囲】
【請求項１】
特に予測モデルの入力値として使用される大量の特徴値を取り扱うためのコンピュータ実装された方法であって、
オンライン・システムが、所定の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶する累積特徴ストアを維持する工程と、
前記オンライン・システムが、前記時点より後に実行されたユーザ・アクションから決定された特徴値を記憶する増分特徴ストアを維持する工程であって、前記維持する工程は、ユーザ・アクションについて記述している情報を受け取ったことに応答して前記増分特徴ストアの特徴値を更新する工程を含む、工程と、
特徴値の要求を受け取る工程であって、前記要求は、ユーザおよび特徴を識別する、工程と、
前記累積特徴ストアから第１の部分的結果を受け取る工程であって、前記第１の部分的結果は、前記時点より前に前記ユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、
前記増分特徴ストアから第２の部分的結果を受け取る工程であって、前記第２の部分的結果は、前記時点より後に前記ユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、
前記第１の部分的結果および前記第２の部分的結果を含む重み付けされた組合せを決定する工程であって、前記第１の部分的結果は、減衰係数によって重み付けされる、工程と、
要求された前記特徴値として前記重み付けされた組合せを返す工程と、を備える、方法。
【請求項２】
前記減衰係数は、１未満の値である、請求項１に記載の方法。
【請求項３】
前記減衰係数は、前記特徴に関連付けられているタイプに基づく、請求項１または２に記載の方法。
【請求項４】
前記増分特徴ストアは、第１の増分特徴ストアであり、前記方法は、
前記オンライン・システムが、第２の増分特徴ストアを維持する工程と、
後続の時点において前記第１の増分特徴ストアについて非アクティブとして印を付け、前記後続の時点より後に前記オンライン・システムによって受け取られたユーザ・アクションに応答して前記第２の増分特徴ストアの特徴を更新する工程と、
前記要求を受け取ったことに応答して、前記第２の増分特徴ストアから第３の部分的結果を受け取る工程と、をさらに備える、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記重み付けされた組合せは、前記第３の部分的結果をさらに含む、請求項４に記載の方法。
【請求項６】
前記重み付けされた組合せでは、第２の減衰係数によって前記第３の部分的結果を重み付けする、請求項４または５に記載の方法。
【請求項７】
特徴は、ユーザ・アクションについて記述している値またはその他の特徴値のうちの１以上に基づく式として表され、
特に特徴は、
前記オンライン・システムの複数のユーザの間における対話の割合に基づく、前記複数のユーザの間における親密度のような、および／または、
ユーザについて、たとえば、前記ユーザによって指定されたユーザの関心、または、ユーザ対話、たとえば、過去に前記ユーザによって取り出された情報のタイプについて記
述している情報に基づく前記ユーザが特定の情報に関心がある蓋然性のような、および／または、
特定の情報について記述しているページにユーザがアクセスする蓋然性のような、および／または、
前記オンライン・システム上で利用可能な画像、映像、もしくはその他の任意のタイプのコンテンツにユーザがアクセスする蓋然性のような、
前記オンライン・システムのユーザについて、または、前記オンライン・システムの前記ユーザと、前記オンライン・システム、もしくは前記オンライン・システムにおいて表されているエンティティとの対話について記述している情報に基づく値である、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記増分特徴ストアについて非アクティブとして印を付け、前記増分特徴ストア内に記憶されている前記特徴値に対する前記更新を停止する工程と、
前記増分特徴ストアからの特徴値と、前記累積特徴ストアからの対応する特徴値との重み付けされた組合せを決定する工程であって、前記累積特徴ストアからの前記特徴値は、減衰係数によって重み付けされる、工程と、
前記重み付けされた組合せによって前記累積特徴ストアの前記特徴値を更新する工程と、をさらに備える、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記累積特徴ストアの前記特徴値を更新する工程は、
前記増分特徴ストアと前記累積特徴ストアとを併合する工程を備え、
前記増分特徴ストアからの新たな特徴が含まれ、
前記増分特徴ストアと前記累積特徴ストアとの間における重複する特徴は修正され、
特徴値の前記更新および／または集約は、前記特徴そのものに依存する、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記累積特徴ストア用に使用されているデータ・ストアと比較して、より速いデータ・アクセスを提供するデータ・ストア内に前記増分特徴ストアを記憶する工程をさらに備える、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記増分特徴ストアは、ランダム・アクセス・メモリ内に記憶されている、請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
各特徴は、ユーザと、ターゲット・エンティティと、前記ターゲット・エンティティに関連付けられている前記ユーザによって実行されたユーザ・アクションに基づく特徴値とに関連付けられている、請求項１〜１１のいずれか一項に記載の方法。
【請求項１３】
１以上の非一時的コンピュータ可読記憶媒体であって、
実行されたときに、請求項１〜１２のいずれか一項に記載の方法を実行するように機能するソフトウェアを具体化している、記憶媒体。
【請求項１４】
１以上のプロセッサと、前記プロセッサによって実行可能な命令を含み、前記プロセッサに結合されているメモリと、を備えるシステムであって、前記プロセッサは、前記命令を実行したときに、請求項１〜１２のいずれか一項に記載の方法を実行するように機能する、システム。
【請求項１５】
コンピュータ実行形式のコードを記憶している非一時的コンピュータ可読記憶媒体を有するコンピュータ・プログラム製品であって、前記コードは、
所定の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶する累積特徴ストアを維持する工程、および、
特徴値を記憶する増分特徴ストアを維持する工程であって、前記維持する工程は、前記時点より後に実行されたユーザ・アクションについて記述している情報を受け取ったことに応答して前記増分特徴ストアの特徴値を更新する工程を含む、工程、
を行うように構成されるオンライン・システムの特徴管理モジュールと、
特徴値の要求を受け取る工程であって、前記要求は、ユーザ、および所定のタイプのユーザ・アクションに関連付けられている特徴を識別する、工程、
前記累積特徴ストアから第１の部分的結果を受け取る工程であって、前記第１の部分的結果は、前記時点より前に前記ユーザによって実行された前記タイプのユーザ・アクションから決定される、工程、
前記増分特徴ストアから第２の部分的結果を受け取る工程であって、前記第２の部分的結果は、前記時点より後に前記ユーザによって実行された前記タイプのユーザ・アクションから決定される、工程、
前記第１の部分的結果および前記第２の部分的結果を含む重み付けされた組合せを決定する工程であって、前記第１の部分的結果は、減衰係数によって重み付けされる、工程、および、
要求された前記特徴値として前記重み付けされた組合せを返す工程、
を行うように構成される要求プロセッサ・モジュールと、を備える、コンピュータ・プログラム製品。
【請求項１６】
前記減衰係数は、１未満の値である、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記減衰係数は、前記特徴に関連付けられているタイプに基づく、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
前記特徴管理部は、
第２の増分特徴ストアを維持する工程と、
後続の時点において第１の増分特徴ストアについて非アクティブとして印を付け、前記後続の時点より後に前記オンライン・システムによって受け取られたユーザ・アクションに応答して前記第２の増分特徴ストアの特徴を更新する工程と、を行うようにさらに構成され、
前記要求プロセッサ・モジュールは、
前記要求を受け取ったことに応答して、前記第２の増分特徴ストアから第３の部分的結果を受け取る工程を行うようにさらに構成される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記重み付けされた組合せは、前記第３の部分的結果をさらに含む、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
前記重み付けされた組合せでは、第２の減衰係数によって前記第３の部分的結果を重み付けする、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２１】
特徴は、ユーザ・アクションについて記述している値またはその他の特徴値のうちの１以上に基づく式として表される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２２】
前記特徴管理部は、
前記増分特徴ストアについて非アクティブとして印を付け、前記増分特徴ストア内に記憶されている前記特徴値に対する前記更新を停止する工程と、
前記増分特徴ストアからの特徴値と、前記累積特徴ストアからの対応する特徴値との重み付けされた組合せを決定する工程であって、前記累積特徴ストアからの前記特徴値は、
減衰係数によって重み付けされる、工程と、
前記重み付けされた組合せによって前記累積特徴ストアの前記特徴値を更新する工程と、を行うようにさらに構成される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２３】
前記特徴管理部は、
前記累積特徴ストア用に使用されているデータ・ストアと比較して、より速いデータ・アクセスを提供するデータ・ストア内に前記増分特徴ストアを記憶する工程を行うようにさらに構成される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２４】
前記増分特徴ストアは、ランダム・アクセス・メモリ内に記憶されている、請求項１５に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンライン・システム、たとえば、ソーシャル・ネットワーキング・システムにおけるユーザ・アクションについて記述する特徴を更新することに関し、詳細には、オンライン・システムにおけるユーザ・アクションに基づいてリアルタイムで更新される特徴について照会することに関する。
【背景技術】
【０００２】
オンライン・システムはしばしば、ユーザにとって有用な情報を提示し、ユーザがそのオンライン・システムと対話することを可能にする。オンライン・システムは、ユーザにとって関心がある可能性が高い情報を、その情報をそのユーザに提示する前に決定するために、さまざまな技術を使用することができる。ユーザは、自分が好む情報を提示される場合、オンライン・システムを定期的に訪問する可能性が高くなる。オンライン・システムはしばしば、広告から収益を得ている。広告主は、オンライン・システムのユーザによって定期的に訪問されるオンライン・システムに広告を出すことを好む。したがってユーザのロイヤリティが、オンライン・システムによって生み出される収益を決定する場合がある。結果として、関心を引く情報をユーザに提示するオンライン・システムの能力が、典型的には、そのオンライン・システムによって得られる収益に影響を与える。
【０００３】
オンライン・システムはしばしば、それらのオンライン・システムによって取られるアクションに関する決定を行うために過去のユーザ・アクションを使用する。たとえば、過去のユーザ・アクションは、関心があるとユーザが感じる可能性がある情報をそのユーザに提案するためにオンライン・システムによって使用される場合がある。オンライン・システムの一例は、ユーザ同士が互いにつながりを確立することを可能にするソーシャル・ネットワーキング・システムである。ソーシャル・ネットワーキング・システムは、ユーザにとって関心がある可能性があるニュースフィード・ストーリを識別するために、またはユーザに推奨するためのそのユーザの潜在的な友達を識別するために、過去のユーザ・アクションを使用する場合がある。オンライン・システムは、ユーザにとって関心がある情報を決定するための予測モデル、たとえば、機械学習モデルを使用する場合がある。これらのモデルは、オンライン・システムにおけるユーザおよびユーザのアクションについて記述する特徴に基づいてアクションを予測する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オンライン・システムはしばしば、多数のユーザ、たとえば、数千万人または数億人のユーザを有することがあり、それらのユーザは、日常的にオンライン・システムと対話し、オンライン・システムにおいて大量の情報を生成する。生成された情報は、特徴に基づいて決定を行うオンライン・システムまたはさまざまなモジュールのモデルによって使用される特徴の値を決定するために使用される。典型的には、オンライン・システムは、過去において取られたユーザ・アクションのセットに基づいて特徴を維持する。特徴を更新することは、計算の集中した複雑な演算になる。したがって、特徴値を非常に頻繁に更新することはできない。結果として、オンライン・システムとの対話のパターンにおける最近の変化は、かなり遅くまで特徴の中に反映されない場合がある。たとえば、オンライン・システムのユーザ・インターフェースが変更された場合、そのオンライン・システムとのユーザ対話は、著しく変化する。同様に、技術における変化があった場合、オンライン・システムとのユーザ対話は、著しく変化する。たとえば、以前にはモバイル・デバイスを通じてアクセス可能ではなかったオンライン・システムが、モバイル・デバイスを通じ
てアクセス可能になった場合、ユーザは、以前には可能でなかったか、または普及していなかった新たな方法でそのオンライン・システムと対話することができる。しかしながら、そのオンライン・システムの特徴値がこれらの最近の変化を反映していない場合、そのオンライン・システムによって特徴値に基づいて行われる決定は、ユーザ・アクションにおけるそれらの最近の変化を反映しない。結果として、オンライン・システムは、もはやユーザに関連していないアクションを取る場合があり、またはオンライン・システムは、ユーザにとって関心がない情報を提示する場合がある。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、オンライン・システムが、ユーザによって実行されたアクションに基づいて、ユーザとエンティティとの間における関係を表す特徴値について照会することを可能にする。たとえば、ソーシャル・ネットワーキング・システムが、ユーザと、そのユーザにつながっている別のユーザとの間における対話に基づいて特徴値を記憶することができる。それぞれの特徴は、ユーザと、ターゲット・エンティティと、そのターゲット・エンティティに関してそのユーザによって実行されたユーザ・アクションに基づく値とに関連付けられている。オンライン・システムは、累積特徴ストアおよび増分特徴ストアを維持する。累積特徴ストアは、所与の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶し、増分特徴ストアは、所与の時点より後に実行されたユーザ・アクションから決定された特徴値を記憶する。
【０００６】
ユーザおよび特徴タイプを識別する特徴値の要求が受け取られる。所与の時点より前に実行されたユーザ・アクションから決定された特徴値に関する第１の部分的結果が、累積特徴ストアから受け取られる。所与の時点より後に実行されたユーザ・アクションから決定された第２の部分的結果が、増分特徴ストアから受け取られる。第１の部分的結果が減衰係数によって重み付けされるように第１の部分的結果と第２の部分的結果とを組合せることによって、特徴値が決定される。決定された特徴値は、要求元に返される。
【０００７】
一実施形態において、増分特徴ストア内に記憶されている特徴値は、オンライン・システムのユーザによって実行されている現在のユーザ・アクションに応答して更新される。さらに、後続の時点において、増分特徴ストアに対する更新は停止される。後続の時点より後に発生するユーザ・アクションを使用して決定される特徴値を記憶するための新たな増分特徴ストアが維持される。特徴を求める要求に応答して、後続の時間間隔の後に受け取られたユーザ・アクションを使用して決定された第３の部分的結果の値が、新たな増分特徴ストアから取り出される。第１の部分的結果、第２の部分的結果、および第３の部分的結果という結果同士を組合せることによって、特徴値が決定される。部分的結果同士の組合せでは、第１の部分的結果を減衰係数によって重み付けすることによって実行される。第２の部分的結果は、別の減衰係数によって重み付けされる。増分特徴ストアからの特徴値と、累積ストア内の特徴値とを併合することが可能であり、増分特徴ストアは、リセットされる。
【０００８】
この概要および以降の詳細な説明において記述されている特徴および利点は、すべてを網羅したものではない。図面、明細書、および特許請求の範囲を考慮すれば、当技術分野における通常の知識を有する当業者にとっては、多くのさらなる特徴および利点が明らかになるであろう。
【０００９】
本発明による実施形態は、方法、媒体、およびシステムを対象とした添付の特許請求の範囲において詳細に開示されており、１つの請求項のカテゴリ、たとえば方法において言及されている任意の特徴が、別の請求項のカテゴリ、たとえばシステムにおいて特許請求されることも可能である。
【００１０】
本発明による一実施形態において、オンライン・システムが、所定の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶する累積特徴ストアを維持する工程と、オンライン・システムが、その時点より後に実行されたユーザ・アクションから決定された特徴値を記憶する増分特徴ストアを維持する工程であって、前記維持する工程は、ユーザ・アクションについて記述している情報を受け取ったことに応答して増分特徴ストアの特徴値を更新する工程を含む、工程と、特徴値の要求を受け取る工程であって、その要求は、ユーザおよび特徴を識別する、工程と、累積特徴ストアから第１の部分的結果を受け取る工程であって、その第１の部分的結果は、その時点より前にユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、増分特徴ストアから第２の部分的結果を受け取る工程であって、その第２の部分的結果は、その時点より後にユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、第１の部分的結果および第２の部分的結果を含む重み付けされた組合せを決定する工程であって、第１の部分的結果は、減衰係数によって重み付けされる、工程と、要求された特徴値として重み付けされた組合せを返す工程と、を備えるコンピュータ実装された方法が提供される。
【００１１】
減衰係数は、１未満の値である。
減衰係数はさらに、特徴に関連付けられているタイプに基づく。
特許請求される本発明の別の実施形態において、増分特徴ストアは第１の増分特徴ストアであるコンピュータ実装された方法が提供され、そのコンピュータ実装された方法は、オンライン・システムが、第２の増分特徴ストアを維持する工程と、後続の時点において第１の増分特徴ストアについて非アクティブとして印を付け、その後続の時点より後にオンライン・システムによって受け取られたユーザ・アクションに応答して第２の増分特徴ストアの特徴を更新する工程と、要求を受け取ったことに応答して、第２の増分特徴ストアから第３の部分的結果を受け取る工程と、をさらに備える。好ましくは、重み付けされた組合せは、第３の部分的結果をさらに含む。
【００１２】
好ましくは、重み付けされた組合せでは、第２の減衰係数によって第３の部分的結果を重み付けする。
特徴は、ユーザ・アクションについて記述している値またはその他の特徴値のうちの１以上に基づく式として表される。
【００１３】
特許請求されるさらなる実施形態において、増分特徴ストアについて非アクティブとして印を付け、増分特徴ストア内に記憶されている特徴値に対する更新を停止する工程と、増分特徴ストアからの特徴値と、累積特徴ストアからの対応する特徴値との重み付けされた組合せを決定する工程であって、累積特徴ストアからの特徴値は、減衰係数によって重み付けされる、工程と、重み付けされた組合せによって累積特徴ストアの特徴値を更新する工程と、を備えるコンピュータ実装された方法が提供される。
【００１４】
このコンピュータ実装された方法は、累積特徴ストア用に使用されているデータ・ストアと比較して、より速いデータ・アクセスを提供するデータ・ストア内に増分特徴ストアを記憶する工程をさらに備える。
【００１５】
増分特徴ストアは、ランダム・アクセス・メモリ内に記憶されている。
各特徴は、ユーザと、ターゲット・エンティティと、そのターゲット・エンティティに関連付けられているそのユーザによって実行されたユーザ・アクションに基づく特徴値とに関連付けられている。
【００１６】
特許請求される本発明による一実施形態において、コンピュータ実行可能コードを記憶している非一時的コンピュータ可読記憶媒体を有するコンピュータ・プログラム製品が提
供され、そのコードは、所定の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶する累積特徴ストアを維持する工程、および特徴値を記憶する増分特徴ストアを維持する工程であって、その維持する工程は、その時点より後に実行されたユーザ・アクションについて記述している情報を受け取ったことに応答して増分特徴ストアの特徴値を更新する工程を含む、工程を行うように構成されるオンライン・システムの特徴管理モジュールと、特徴値の要求を受け取る工程であって、その要求は、ユーザ、および所定のタイプのユーザ・アクションに関連付けられている特徴を識別する、工程、第１の部分的結果を累積特徴ストアから受け取る工程であって、その第１の部分的結果は、その時点より前にユーザによって実行されたそのタイプのユーザ・アクションから決定される、工程、増分特徴ストアから第２の部分的結果を受け取る工程であって、その第２の部分的結果は、その時点より後にユーザによって実行されたそのタイプのユーザ・アクションから決定される、工程、第１の部分的結果および第２の部分的結果を含む重み付けされた組合せを決定する工程であって、第１の部分的結果は、減衰係数によって重み付けされる、工程、および要求された特徴値として重み付けされた組合せを返す工程を行うように構成される要求プロセッサ・モジュールと、を備える。
【００１７】
特許請求される別の実施形態では、特徴管理部は、オンライン・システムが、第２の増分特徴ストアを維持する工程と、後続の時点において第１の増分特徴ストアについて非アクティブとして印を付け、その後続の時点より後にオンライン・システムによって受け取られたユーザ・アクションに応答して第２の増分特徴ストアの特徴を更新する工程と、を行うようにさらに構成され、要求プロセッサ・モジュールは、要求を受け取ったことに応答して、第２の増分特徴ストアから第３の部分的結果を受け取る工程を行うようにさらに構成される、コンピュータ・プログラム製品を含む。
【００１８】
特徴管理部は、増分特徴ストアについて非アクティブとして印を付け、増分特徴ストア内に記憶されている特徴値に対する更新を停止する工程と、増分特徴ストアからの特徴値と、累積特徴ストアからの対応する特徴値との重み付けされた組合せを決定する工程であって、累積特徴ストアからの特徴値は、減衰係数によって重み付けされる、工程と、重み付けされた組合せによって累積特徴ストアの特徴値を更新する工程と、を行うようにさらに構成される。
【００１９】
特徴管理部は、累積特徴ストア用に使用されているデータ・ストアと比較して、より速いデータ・アクセスを提供するデータ・ストア内に増分特徴ストアを記憶する工程を行うように構成される。
【００２０】
特許請求されるさらなる実施形態は、特に予測モデルの入力値として使用される大量の特徴値を取り扱うためのコンピュータ実装された方法であって、オンライン・システムが、所定の時点より前に実行されたユーザ・アクションから決定された特徴値を記憶する累積特徴ストアを維持する工程と、オンライン・システムが、その時点より後に実行されたユーザ・アクションから決定された特徴値を記憶する増分特徴ストアを維持する工程であって、その維持する工程は、ユーザ・アクションについて記述している情報を受け取ったことに応答して増分特徴ストアの特徴値を更新する工程を含む、工程と、特徴値の要求を受け取る工程であって、その要求は、ユーザおよび特徴を識別する、工程と、累積特徴ストアから第１の部分的結果を受け取る工程であって、その第１の部分的結果は、その時点より前にユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、増分特徴ストアから第２の部分的結果を受け取る工程であって、その第２の部分的結果は、その時点より後にユーザによって実行されたタイプのユーザ・アクションから決定される、工程と、第１の部分的結果および第２の部分的結果を含む重み付けされた組合せを決定する工程であって、第１の部分的結果は、減衰係数によって重み付けされる、工程と、要求された特徴値として重み付けされた組合せを返す工程と、を備えるコンピュータ実
装された方法を含む。
【００２１】
好ましくは、特徴は、ユーザ・アクションについて記述している値またはその他の特徴値のうちの１以上に基づく式として表され、特に特徴は、オンライン・システムの複数のユーザの間における親密度のような、および／または、ユーザについて、たとえば、ユーザによって指定されたユーザの関心、または、ユーザ対話、たとえば、過去に前記ユーザによって取り出された情報のタイプについて記述している情報に基づくユーザが特定の情報に関心がある蓋然性のような、および／または、特定の情報について記述しているページにユーザがアクセスする蓋然性のような、および／または、オンライン・システム上で利用可能な画像、映像、もしくはその他の任意のタイプのコンテンツにユーザがアクセスする蓋然性のような、前記オンライン・システムのユーザについて、または、前記オンライン・システムの前記ユーザと、前記オンライン・システム、もしくは前記オンライン・システムにおいて表されているエンティティとの対話について記述している情報に基づく値である、
累積特徴ストアの特徴値を更新する工程は、増分特徴ストアと累積特徴ストアとを併合する工程を備え、増分特徴ストアからの新たな特徴が含まれ、増分特徴ストアと累積特徴ストアとの間における重複する特徴は修正され、特徴値の更新および／または集約は、特徴そのものに依存する。
【００２２】
特許請求される本発明のさらなる実施形態において、実行されたときに、本発明または上述の実施形態のうちのいずれかによる方法を実行するように機能するソフトウェアを具体化している１以上の非一時的コンピュータ可読記憶媒体が提供される。
【００２３】
特許請求される本発明のさらなる実施形態において、あるシステムは、１以上のプロセッサと、それらのプロセッサによって実行可能な命令を含み、それらのプロセッサに結合されているメモリと、を備え、それらのプロセッサは、命令を実行したときに、本発明または上述の実施形態のうちのいずれかによる方法を実行するように機能する。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態による、オンライン・システム、たとえば、ソーシャル・ネットワーキング・システムにおいて使用するためのユーザ・アクションに基づいて特徴を維持するためのシステム環境の図。
【図２】本発明の一実施形態による、オンライン・システムにおいて表されている２つのエンティティの間における対話を表す特徴を示す図。
【図３】本発明の一実施形態による、累積特徴グラフと増分特徴グラフとを併合することを示す図。
【図４Ａ】本発明の一実施形態による、対応するユーザ・アクションが利用可能である場合に処理するためにその他のモジュールにとって特徴を利用可能にするオンライン・システム、たとえば、ソーシャル・ネットワーキング・システムのシステム・アーキテクチャを示す図。
【図４Ｂ】本発明の一実施形態による、オンライン・システムにおける特徴の管理を可能にする特徴管理モジュールのサブモジュールを示す図。
【図５】本発明の一実施形態による、増分特徴ストアと累積特徴ストアとを併合する全体的なプロセスを示す図。
【図６】本発明の一実施形態による、データと累積増分特徴とを併合するための、アクティブ増分特徴ストアおよび非アクティブ増分特徴ストアを示す図。
【図７Ａ】本発明の一実施形態による、累積特徴ストアおよび増分特徴ストアに関連付けられている時間間隔を示す図。
【図７Ｂ】本発明の一実施形態による、累積特徴ストアおよび増分特徴ストアに関連付けられている時間間隔を示す図。
【図７Ｃ】本発明の一実施形態による、累積特徴ストアおよび増分特徴ストアに関連付けられている時間間隔を示す図。
【図８】本発明の一実施形態による、増分特徴ストアおよび累積特徴ストアを維持するシステムに関する特徴値の要求を処理するための全体的なプロセスを示す図。
【発明を実施するための形態】
【００２５】
これらの図は、例示のみの目的で本発明のさまざまな実施形態を示している。本明細書において記述されている本発明の原理から逸脱することなく、本明細書において示されている構造および方法の代替実施形態が採用されることを当業者であれば以降の考察から容易に理解するであろう。
【００２６】
次いで、一実施形態を詳細に参照し、それらの実施形態の例が、添付の図において示されている。実用的な箇所ならどこでも、類似のまたは同様の参照番号が図において使用されることが可能であり、類似のまたは同様の機能を示すことができることに留意されたい。これらの図は、例示のみの目的で、開示されているシステム（または方法）の実施形態を示している。本明細書において記述されている原理から逸脱することなく、本明細書において示されている構造および方法の代替実施形態が採用されることを当業者であれば以降の説明から容易に理解するであろう。
【００２７】
システム環境
図１は、本発明の一実施形態による、オンライン・システム、たとえば、ソーシャル・ネットワーキング・システムにおいて使用するためのユーザ・アクションに基づいて特徴を維持するためのシステム環境の図である。本明細書において論じられている本発明は、ソーシャル・ネットワーキング・システムを使用して示されているが、ユーザがオンライン・システムと対話することを可能にする任意のオンライン・システムに適用可能である。具体的には、ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システムのユーザに、ソーシャル・ネットワーキング・システムのその他のユーザと通信および対話する能力を提供する。ユーザは、ソーシャル・ネットワーキング・システムに参加し、次いで、ユーザがつながりたいと望むその他の複数のユーザにつながりを付加する。本明細書において使用される際には、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システムを通じて、つながり、関連付け、または関係を形成しているその他の任意のユーザに及ぶ。
【００２８】
図１およびその他の図は、同様の要素を識別するために同様の参照番号を使用する。「１１０ａ」など、参照番号の後の文字は、そのテキストが、その特定の参照番号を有する要素を具体的に示していることを示す。「１１０」など、後続の文字を伴わないテキスト内の参照番号は、その参照番号を有している図における要素のうちの任意のものまたはすべてを示す（たとえば、テキスト内の「１１０」は、図における参照番号「１１０ａ」および／または「１１０ｂ」を示す）。
【００２９】
ユーザは、クライアント・デバイス１１０を使用してソーシャル・ネットワーキング・システム２００と対話する。一実施形態において、クライアント・デバイス１１０は、オペレーティング・システム、たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）に準拠したオペレーティング・システム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行するパーソナル・コンピュータ（ＰＣ）、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ノート、タブレットＰＣである。別の実施形態において、クライアント・デバイス１１０は、コンピュータ機能を有する任意のデバイス、たとえば、携帯情報端末（ＰＤＡ）、モバイル電話、スマート・フォンなどである。
【００３０】
オンライン・システム１００は、オンライン・システム１００とのユーザ対話を表すさまざまな信号１０５を受け取る。これらの信号１０５について記述している情報が、特徴としてオンライン・システム内に記憶される。特徴は、オンライン・システムのユーザについて、またはオンライン・システムのユーザと、オンライン・システム１００、もしくはオンライン・システム１００において表されているエンティティとの対話について記述している情報に基づく値である。たとえば、特徴は、オンライン・システムの２人のユーザの間における対話の割合に基づいて、それらの２人のユーザの間における親密度について記述する。特徴は、ユーザについて記述している情報、たとえば、ユーザまたはユーザ対話によって指定されたユーザの関心、たとえば、過去においてユーザによって取り出された情報のタイプに基づいて、そのユーザが特定の情報に関心がある蓋然性について記述する。特徴は、特定の情報について記述しているページにユーザがアクセスする蓋然性、または、オンライン・システム１００上で利用可能である画像、映像、もしくはその他の任意のタイプのコンテンツにユーザがアクセスする蓋然性を表す。一実施形態において、オンライン・システム１００は、システム内のオブジェクトの１対に関する特徴ベクトルを記憶し、その場合、その特徴ベクトルは、それらのオブジェクトの間における関係について記述している複数の特徴を含む。ソーシャル・ネットワーキング・システムにおいて、たとえば、ソース・ユーザとターゲット・ユーザとの関係に関して特徴ベクトルが記憶される場合があり、その場合、その特徴ベクトルは、ソース・ユーザが、ターゲット・ユーザに関する情報を閲覧した頻度、ターゲット・ユーザとの通信を開始した頻度という尺度、およびソース・ユーザとターゲット・ユーザとの間における関係について記述しているその他のさまざまな尺度などの特徴を含む。特徴管理部１５０は、オンライン・システム１００によって受け取られた信号１０５を処理して、さまざまな特徴値を決定し、それらの特徴値を特徴ストア１３０内に記憶する。
【００３１】
オンライン・システム１００は、オンライン・システムにおいて表されているエンティティをランク付けするために、特徴ストア１３０において利用可能な情報を使用する。たとえば、ソーシャル・ネットワーキング・システムは、ユーザのさまざまな友達をランク付けして、親密な友達のセットを決定することができる。または、ソーシャル・ネットワーキング・システムは、ターゲット・ユーザに関連付けられているユーザのセットをランク付けして、そのターゲット・ユーザに提案するためのそのターゲット・ユーザの潜在的な友達のセットを決定することができる。オンライン・システムは、ユーザに提示されることになる情報を決定するために特徴値を使用することもできる。
【００３２】
オンライン・システム１００は、異なるタイプの情報をユーザに提示する。たとえば、ソーシャル・ネットワーキング・システムは、その他のユーザ、ソーシャル・グループ、ソーシャル・イベント、コンテンツ、画像などについて記述している情報をユーザに提示する。オンライン・システムのユーザに関連付けられているオンライン・システム１００において発生している多数のアクションが存在する。ユーザは、典型的には、オンライン・システム１００上で費やす時間が限られており、オンライン・システム１００のユーザ・インターフェースにおいて利用可能な空間の量も、典型的には限られているため、オンライン・システム１００は、そのユーザにとって関心がある可能性が最も高い情報を、そのユーザに提示するために選択する。オンライン・システム１００は、ユーザに提示するための情報をさまざまな利用可能なオプションから選択する１つまたは複数の提案モジュール１４０を組み込むことができる。
【００３３】
提案モジュール１４０は、ユーザに提示された情報に基づいてそのユーザが所望のアクションを実行する可能性が高いか否かを決定するために、特徴ストアにおいて利用可能な情報を使用する。たとえば、オンライン・システムは、ユーザ・アクションを予測する１つまたは予測モデルを含む。提案モジュール１４０は、予測されたユーザ・アクションに基づいてユーザへの提案１１５を行う。ユーザに提示される情報に関する決定を行うため
に、提案モジュールによって予測モデルが呼び出される。予測モデルは、ユーザ・アクションを予測するために、特徴ストアにおいて利用可能な情報を利用する。たとえば、予測モデルは、特徴ストア１３０において利用可能な特徴値を使用して訓練される。一例として、オンライン・システムは、ユーザに提示されたニュースフィード・アイテムに関連したさらに多くの情報をそのユーザが要求する蓋然性を決定する予測モデルを含む。または、予測モデルは、ユーザに提示された画像についてそのユーザがコメントする蓋然性を決定する。あるいは、予測モデルは、ソーシャル・ネットワーキング・システムによって推奨された潜在的なつながりとつながりたいという要求をユーザが送信する蓋然性を決定する。
【００３４】
オンライン・システム１００は、ソフトウェア・モジュールを実行する１つまたは複数のコンピュータ・プロセッサを備えている。システム１００および１１０の一実施形態は、本明細書において記述されているのとは異なるおよび／またはその他のモジュールを有し、本明細書において記述されているのとは異なる様式でそれらのモジュールの間において機能同士が分散される。オンライン・システム１００は、図１において示されているモジュール以外のモジュール、たとえば、図４において示されているモジュールを備えることができ、それらのモジュールについては、本明細書においてさらに記述されている。
【００３５】
図２は、本発明の一実施形態による、オンライン・システムにおいて表されているエンティティ２２０間における対話を表す特徴２３０を示す図である。特徴２３０は、ソース・エンティティとターゲット・エンティティとの間における対話を表す。たとえば、特徴ｆ１１、ｆ１２、およびｆ１３は、ソース・エンティティ２２０ｍと２２０ｐとの間における対話を表しており、特徴ｆ２１、ｆ２２、およびｆ２３は、ソース・エンティティ２２０ｍと２２０ｑとの間における対話を表す。たとえば、特徴は、２人のユーザの間における対話の割合、２人のユーザが互いに対話したのはどれぐらい最近か、あるエンティティに関して１人のユーザによって取り出された情報の割合もしくは量、またはあるエンティティに関してユーザによって投稿されたコメントの数およびタイプを表す。特徴は、特定のエンティティ、たとえばユーザについて記述している情報を表すこともできる。一例として、特徴は、ユーザが特定のトピックに対して有している関心のレベル、ユーザがオンライン・システムにログインしている割合、またはユーザに関する人口統計学的情報について記述している情報を表す。
【００３６】
一般に、オンライン・システム１００のさまざまな特徴は、特徴グラフとして表される。それぞれの特徴は、ソース・エンティティ、ターゲット・エンティティ、および特徴値に関連付けられる。特徴は、ソース・エンティティ、ターゲット・エンティティ、またはソース・エンティティとターゲット・エンティティとの間における対話について記述している値に基づく式として指定される。特徴式は、合成されることが可能であり、すなわち、特徴式は、その他の特徴式の関数である。オンライン・システムは、多数のユーザ、たとえば、数百万人のユーザまたは数億人のユーザを有する。ユーザとオンライン・システムとの非常に多数の対話、ユーザ間における対話、およびユーザについて記述している大量の情報が存在する。したがって、オンライン・システム１００によって表される特徴グラフは、継続的に受け取られる情報に基づいて絶えず更新される。
【００３７】
図３は、本発明の一実施形態による、累積特徴グラフと増分特徴グラフとを併合することを示す図である。さまざまなノード２２０は、オンライン・システム１００において表されているエンティティに対応しており、ソース・エンティティからターゲット・エンティティへのエッジ２３０は、ソース・エンティティおよびターゲット・エンティティに関連付けられている特徴に対応している。累積特徴グラフ３２０ａは、エンティティ２２０ａ、２２０ｂ、２２０ｃ、２２０ｄ、および２２０ｅ、ならびにエッジ２３０ｍ、２３０ｎ、２３０ｐ、および２３０ｑを含む。増分特徴グラフ３３０は、オンライン・システム
１００によって最近受け取られたユーザ・アクション、たとえば、所与の時点以降に受け取られたすべてのユーザ・アクションに対応する特徴グラフを表している。累積特徴グラフ３２０は、所与の時点より前に発生したすべてのユーザ・アクションの集約情報に基づいて特徴を表している。増分特徴グラフ３３０において示されているように、所与の時点以降のユーザ・アクションに基づいて、新たなエンティティ２２０ｆが導入されており、２つの新たなエッジ２３０ｒおよび２３０ｓが導入されている。増分特徴グラフ３３０はまた、既存のエッジ２３０ｑを修正しているエッジ２３０ｑ’を含む。
【００３８】
増分特徴グラフ４８０の特徴値と累積特徴グラフとが併合される前に増分特徴グラフ４８０が特徴を蓄積する時間の間隔の長さを、設定することができる。たとえば、オンライン・システムのシステム管理者は、増分特徴グラフに関連付けられている時間間隔の長さを、１日、数時間、または数日間であるかを決定することができる。一実施形態において、時間間隔の長さは、ユーザの特定のセットに関して設定される。したがって、ユーザの特定のセットに関する増分特徴ストアのための時間間隔の長さは、ユーザの別のセットとは異なる。たとえば、ユーザのあるセットが、ユーザ・アクションのさらに高い割合に関連付けられている場合、ユーザのこのセットに関する時間間隔の長さは、オンライン・システムをあまり頻繁に使用しないでユーザ・アクションを実行するユーザのセットよりも短くなるように設定される。一実施形態において、増分特徴ストアのための時間間隔の長さは、それぞれの個々のユーザごとに設定される。
【００３９】
増分特徴グラフ３２０と累積特徴グラフ３２０ａとの併合３１０によって、修正された累積特徴グラフ３２０ｂが得られる。修正された累積特徴グラフ３２０ｂは、増分特徴グラフ３２０ならびに累積特徴グラフ３２０ａからのグラフの部分を含む。増分特徴グラフ３２０からの新たなエンティティおよびエッジが、累積特徴グラフ３２０ｂ内に含まれている。さらに、累積特徴グラフ３２０ａ内の既存のエッジ２３０ｑに対応する増分特徴グラフ３２０内の任意のエッジ２３０ｑ’によって、既存のエッジ２３０ｑがエッジ２３０ｑ’’へ修正される。エッジ２３０ｑに対応する特徴値と、２３０ｑ’に対応する特徴値とを集約することによって、エッジ２３０ｑ’’が得られる。特徴値同士の集約は、特徴に依存する。特徴のタイプが異なると、コンポーネント値へ併合するために異なる演算が必要とされる。たとえば、エッジ２３０ｑは、ソース・エンティティがターゲット・エンティティに情報を要求する割合を表し、エッジ２３０ｑは、所与の時点以降にターゲット・エンティティに情報を求めるソース・エンティティによる頻繁な要求を表す。所与の時点以降の通信によって、エッジ２３０ｑ’’によって示されているように、ソース・エンティティがターゲット・エンティティに情報を要求する全体的な割合が修正される。
【００４０】
累積特徴グラフ３２０は、グラフ併合演算３１０中に更新される。しかしながら、併合演算が実行されていない場合、累積特徴グラフ３２０に対する更新はない。オンライン・システムによって受け取られた最近のユーザ・アクションに基づく更新は、増分特徴グラフ３３０において実行される。一実施形態において、併合演算３１０中に、増分特徴グラフは、非アクティブとして印を付けられ、非アクティブ増分特徴グラフに対する更新は、停止される。併合演算３１０中に最近のユーザ・アクションに基づいて更新を行うために、新たな増分特徴グラフが使用される。併合されている累積特徴グラフまたは非アクティブ増分特徴グラフに対する更新がないため、併合演算は、効率よく実行される。併合演算の２つの入力グラフが併合演算中に更新されるならば、それらのグラフのさまざまな部分がロックされなければならず、それによって併合演算が非効率的になる場合がある。
【００４１】
図３は、累積特徴グラフおよび増分特徴グラフにおける少数のノードおよびエッジを伴う一例を示している。しかしながら、多数のユーザを伴うオンライン・システムにおいて、累積特徴グラフおよび増分特徴グラフは両方とも、多数のノードおよびエッジを有する場合がある。累積特徴グラフは、オンライン・システム１００のその他のモジュールが特
徴値を要求するために利用可能である。
【００４２】
システム・アーキテクチャ
図４は、オンライン・システム１００の一例としてのソーシャル・ネットワーキング・システム２００の一実施形態のシステム・アーキテクチャの図である。ソーシャル・ネットワーキング・システム２００は、本明細書においては例示的なオンライン・システムとして記述されているが、本明細書において記述されている原理は、その他のオンライン・システムにも適用可能である。ソーシャル・ネットワーキング・システム２００は、ニュースフィード生成器４３５、ウェブ・サーバ４１５、アクション・ロガー４４０、アクション・ログ２４５、つながりストア４３０、ユーザ・プロフィール・ストア４２５、および提案モジュール１４０、および特徴管理部１５０を含む。その他の実施形態において、ソーシャル・ネットワーキング・システム２００は、さまざまなアプリケーションに関するさらなる、より少ない、または別のモジュールを含む。ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク・オペレーション・コンソール等などの従来の構成要素は、このシステムの詳細をわかりにくくすることのないように示されていない。
【００４３】
ソーシャル・ネットワーキング・システム２００は、ユーザ・プロフィールをユーザ・プロフィール・ストア４２５内に記憶する。ユーザ・プロフィール・ストア４２５は、経歴情報、人口統計学的情報、およびその他のタイプの記述的情報、たとえば、職業経験、学歴、性別、性的な好み、趣味または好み、ロケーションなどを含めて、ソーシャル・ネットワーキング・システム２００のユーザについて記述している情報を記憶する。ユーザ・プロフィール・ストア４２５は、ユーザによって提供されるコンテンツ、たとえば、画像、映像、コメント、および状態更新を記憶することもできる。一実施形態において、ソーシャル・ネットワーキング・システム２００のユーザは、組織、たとえば、企業、非営利組織、製造業者、プロバイダなどである。組織のユーザ・プロフィール内に記憶されている情報のタイプは、個人のユーザ・プロフィール内に記憶されている情報とは異なる場合がある。たとえば、組織は、ビジネスのタイプ、その組織に関連付けられている財務情報、その組織の構造などについて記述している情報を記憶することができる。ユーザは、ソーシャル・ネットワーキング・システム２００において表される任意のタイプのエンティティである。
【００４４】
ソーシャル・ネットワーキング・システム２００は、ユーザが、ユーザがつながりたいと望むソーシャル・ネットワーキング・システム２００のその他の複数のユーザにつながりを付加することを可能にする。つながりは、ユーザによって明示的に付加されることが可能であり、たとえば、ユーザが、その他の特定のユーザを友達であるとして選択することによる。または、ユーザの共通の特徴（たとえば、同じ教育機関の卒業生であるユーザ同士）に基づいてソーシャル・ネットワーキング・システムによって自動的に作成される。ソーシャル・ネットワーキング・システムは、ユーザに固有の情報とともに、そのユーザのつながりについて記述している情報を記憶することができる。
【００４５】
ソーシャル・ネットワーキング・システム２００は、別々のメンバの間における１つまたは複数のつながりについて記述しているデータをつながりストア４３０内に記憶する。つながり情報は、類似のまたは共通の職業経験、グループ・メンバシップ、趣味、または学歴を有しているメンバ同士を示すことができる。加えて、ソーシャル・ネットワーキング・システム２００は、別々のユーザの間におけるユーザ定義によるつながりを含み、ユーザがその他のユーザと自分との関係を指定することを可能にする。たとえば、これらのユーザ定義によるつながりは、メンバが、友達、同僚、パートナ等など、そのユーザの実生活の関係に類似しているその他のユーザとの関係を生成する。ユーザは、事前に定義されたタイプのつながりから選択を行うか、または必要に応じてユーザ自身のつながりタイ
プを定義する。それぞれのユーザについて記述されているユーザ情報は、そのユーザのつながりについて記述されている情報を含む。さらに、ユーザのつながりについて記述している情報は、ユーザによって実行されるアクションに関連してアクセスされる。たとえば、ユーザがソーシャル・ネットワーキング・システム上にコメントを投稿した場合、ソーシャル・ネットワーキング・システムは、そのアクションについて記述している情報をそのユーザのつながりに提供することができる。その情報は、ニュースフィードを通じてそのユーザのつながりに提供される。
【００４６】
ソーシャル・ネットワーキング・システム２００は、データベースまたはその他のデータ・リポジトリ内に維持されている情報を通じて、ユーザによって取られたアクションをユーザのプロフィールに関連付けることができる。そのようなアクションとしては、数ある中でも、たとえば、メッセージをその他のユーザへ送信すること、その他のユーザからのメッセージを読むこと、その他のユーザに関連付けられているコンテンツを閲覧することを含む。加えて、その他のオブジェクトに関連して実行される複数のアクションは、特定のユーザを対象にしており、したがって、これらのアクションは、それらのユーザにも関連付けられる。
【００４７】
アクション・ロガー４４０は、ソーシャル・ネットワーキング・システム２００の上のおよび／または外のユーザ・アクションに関する通信をウェブ・サーバ４１５から受け取ることができる。アクション・ロガー４４０は、ユーザ・アクションに関する情報を追跡把握するために、それらの情報をアクション・ログ４４５に投入する。特定のユーザが別のユーザに関して取るいずれのアクションも、データベースまたはその他のデータ・リポジトリ、たとえばアクション・ログ４４５内に維持されている情報を通じて、それぞれのユーザのプロフィールに関連付けられる。そのようなアクションとしては、数ある中でも、たとえば、その他のユーザへのつながりを付加すること、メッセージをその他のユーザへ送信すること、その他のユーザからのメッセージを読むこと、その他のユーザに関連付けられているコンテンツを閲覧すること、別のユーザによって投稿されたイベントに出席することを含む。
【００４８】
ソーシャル・ネットワーキング・システム２００は、ソーシャル・ネットワーキング・システム２００において利用可能な情報の日常的な更新をユーザに提供するニュースフィード・チャネルを維持する。ニュースフィード・チャネルを通じて報告される情報は、ニュースフィード生成器４３５によって決定される。ニュースフィード生成器４３５は、それぞれのユーザのために、アクション・ログ４４５内に記憶されているアクションに基づいて、そのユーザに関連している可能性がある情報に関するメッセージを生成する。これらのメッセージは、「ストーリ」と呼ばれ、それぞれのストーリは、特定のメンバに関連しているアクション・ログ内のもう１つのアクションに基づく１行または数行の情報を含むメッセージである。たとえば、ユーザのつながりが取引を行った場合、そのアクションは、ニュースフィード・ストーリを通じてユーザに報告される。ニュースフィードを通じて報告されるアクションは、典型的には、ユーザのつながりによって実行されたアクションであるが、それらに限定されない。たとえば、ユーザのつながりに無関係の特定の情報がユーザにとって有用であると決定された場合、その情報は、ニュースフィードを通じてユーザに報告される。
【００４９】
ウェブ・サーバ４１５は、ソーシャル・ネットワーキング・システム２００を、ネットワーク４１０を通じて１つまたは複数のクライアント・デバイス１１０にリンクさせ、ウェブ・サーバ４１５は、ウェブ・ページ、ならびにその他のウェブ関連コンテンツ、たとえばＦｌａｓｈ、ＸＭＬなどを提供する。ウェブ・サーバ４１５は、ソーシャル・ネットワーキング・システム２００とクライアント・デバイス１１０との間におけるメッセージを受け取って回送する機能を提供する。これらのメッセージは、インスタント・メッセー
ジ、キューに入れられたメッセージ（たとえば、Ｅメール）、テキストおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、またはその他の任意の適切なメッセージング技術である。一実施形態において、あるユーザによって別のユーザへ送信されたメッセージは、ソーシャル・ネットワーキング・システム２００のその他のユーザによって、たとえば、そのメッセージを受け取るユーザのつながりたちによって閲覧される。メッセージの受信者以外のソーシャル・ネットワーキング・システム２００のその他のユーザによって閲覧されるメッセージのタイプの一例が、ウォール投稿である。
【００５０】
ソーシャル・ネットワーキング・システム２００は、ウェブサイトによってサポートされるさまざまなタイプのエンティティに関してアクションを取る能力をユーザに提供することができる。これらのエンティティは、ウェブサイトのメンバが属するグループまたはネットワーク（この場合、ここでの「ネットワーク」とは、物理的な通信ネットワークではなく、人々のソーシャル・ネットワークに及ぶ）、メンバが関心を有する可能性があるイベントまたはカレンダ・エントリ、メンバがウェブサイトを通じて使用することができるコンピュータベースのアプリケーション、および、メンバがウェブサイトを通じてアイテムを購入すること、販売すること、オークションに出品すること、レンタルすること、または交換することを可能にする取引を含む。ユーザ・プロフィールは、ユーザとさまざまなエンティティとの関連付けを記憶することができる。
【００５１】
ソーシャル・ネットワーキング・システム２００は、ユーザに対して、互いに通信するための、または、ユーザが関心を有すると感じる情報、たとえば、ユーザの友達が関与しているアクティビティ、ユーザの友達がインストールしているアプリケーション、友達によってその他の友達のアクティビティに対して行われたコメントなどを得るためのさまざまな機構を提供することができる。メンバ間における通信機構は、チャネルと呼ばれる。あるユーザが別のユーザと通信する場合、たとえば、その通信するというアクションを送信者および受信者に関連付けるために、両方のユーザのユーザ情報にアクセスしなければならない場合がある。
【００５２】
特徴管理部１５０は、ユーザ・アクションに対応するソーシャル・ネットワーキング・システム２００によって受け取られた信号１０５から特徴値を抽出する。特徴管理部１５０は、抽出された特徴値を記憶し、特徴値をソーシャル・ネットワーキング・システム２００のさまざまなモジュールに提供する。特徴管理部１５０については、図１の説明において記述されており、本明細書において、たとえば、図４Ｂにおいてさらに詳細に記述されている。
【００５３】
提案モジュール１４０は、さまざまなユーザにとって関心がある情報を識別し、その情報をそれらのユーザに送信する。たとえば、ソーシャル・ネットワーキング・システム２００は、ユーザに対して、そのユーザにつながっているその他のユーザによって取られたアクションについて記述しているストーリを送信する。ストーリは、ソーシャル・ネットワーキング・システム２００の通信のチャネル、たとえば、ニュースフィード・チャネルを通じてユーザに通信される。提案モジュール１４０は、さまざまなユーザのユーザ・プロフィールにおいて利用可能な情報を使用して、それぞれのユーザにとって関心があるストーリを決定する。提案モジュールは、特徴ストア１３０において利用可能な情報を使用して、ユーザに提示される情報を決定する。一実施形態において、提案モジュール１４０は、ユーザに提示される情報を選択するために、予測モデル、たとえば、機械学習モデルを使用することができる。これらの予測モデルは、特徴ストア１３０から得られたデータを使用して訓練される。その他のさまざまなモジュールは、決定を行うために、特徴ストア１３０内に記憶されている情報を使用することができる。たとえば、あるモジュールは、ユーザに提案するためのそのユーザにとっての潜在的な友達を選択するために、特徴ストア１３０内に記憶されている情報を使用することができる。ニュースフィード生成器４
３５は、ユーザに提示するためのニュースフィード・アイテムを選択するために、特徴ストア１３０内に記憶されている情報を使用することができる。特徴は、オンライン・システムにおいてその他のさまざまな目的で使用されることが可能であり、たとえば、ソーシャル・ネットワーキング・システムは、ユーザに関するさまざまなエンティティをランク付けすること、たとえば、ユーザの友達、そのユーザにとっての潜在的な友達、そのユーザにとって関心がある可能性が高いページ、そのユーザにとって関心がある可能性が高いコンテンツ、所与のユーザにとっての先行入力に関する検索語、ユーザにとって関心がある可能性が高い広告などをランク付けする。
【００５４】
クライアント・デバイス１１０は、ユーザがソーシャル・ネットワーキング・システム２００と対話することを可能にするためにブラウザ４０５を実行する。ブラウザ４０５は、ユーザがソーシャル・ネットワーキング・システム２００を使用してさまざまなアクションを実行することを可能にする。これらのアクションとしては、ユーザにとって関心がある情報を取り出すこと、コンテンツをその他のユーザに推奨すること、コンテンツをソーシャル・ネットワーキング・システム２００にアップロードすること、ソーシャル・ネットワーキング・システムのその他のユーザと対話すること、ソーシャル・ネットワーキング・システムのユーザとのつながりを確立することなどが含まれる。
【００５５】
クライアント・デバイス１１０とオンライン・システム１００との間における対話は、典型的には、ネットワーク４１０を通じて、たとえば、インターネットを通じて実行される。ネットワーク４１０は、クライアント・デバイス１１０とソーシャル・ネットワーキング・システム２００との間における通信を可能にする。一実施形態において、ネットワーク４１０は、標準通信技術および／または標準プロトコルを使用する。したがって、ネットワーク４１０は、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、デジタル・サブスクライバー・ライン（ＤＳＬ）、非同期転送モード（ＡＴＭ）、インフィニバンド、ＰＣＩエクスプレス・アドバンスド・スイッチング等などの技術を使用するリンクを含む。同様に、ネットワーク４１０上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、トランスミッション・コントロール・プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・メール・トランスファー・プロトコル（ＳＭＴＰ）、ファイル・トランスファー・プロトコル（ＦＴＰ）などを含む。ネットワーク４１０を通じて交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）などを含む技術および／または形式を使用して表される。加えて、リンクのうちのすべてまたはいくつかは、従来の暗号化技術、たとえば、セキュア・ソケット・レイヤ（ＳＳＬ）、トランスポート・レイヤ・セキュリティ（ＴＬＳ）、仮想プライベート・ネットワーク（ＶＰＮ）、インターネット・プロトコル・セキュリティ（ＩＰｓｅｃ）などを使用して暗号化される。別の実施形態において、エンティティは、上述のデータ通信技術の代わりに、またはそれらに加えて、カスタムのおよび／または専用のデータ通信技術を使用することができる。実施形態によっては、ネットワーク４１０は、インターネットなどのその他のネットワークへのリンクを含む。
【００５６】
図４Ｂは、本発明の一実施形態による、ソーシャル・ネットワーキング・システム２００の特徴管理部１５０のシステム・アーキテクチャの図である。特徴管理部１５０は、特徴抽出器４５５、要求プロセッサ４７０、特徴併合器４７５、スケジュール管理部４６５、特徴メタデータ・ストア４２０、累積特徴ストア４９０、および１つまたは複数の増分特徴ストア４８０ａ、４８０ｂを含むモジュールを備える。特徴管理部１５０は、ユーザ・アクションを処理して特徴値を決定し、それらの特徴値は、特徴ストア４８０、４９０内に記憶される。特徴管理部１５０は、特徴値を提供するためのソーシャル・ネットワー
キング・システム２００のさまざまなモジュールからの要求を受け取る。一実施形態において、特徴管理部１５０は、外部システム、たとえば、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を通じてソーシャル・ネットワーキング・システム内の機能を呼び出す外部システムから特徴値の要求を受け取ることができる。
【００５７】
特徴のさまざまなタイプについて記述しているメタデータは、特徴メタデータ・ストア４２０内に記憶される。特徴は、ソーシャル・ネットワーキング・システム２００において表されているエンティティに関連付けられている値、およびソーシャル・ネットワーキング・システム２００において実行されたアクションに基づく式として表される。特徴を表すこれらの式は、エキスパートによって提供され、および特権を有するユーザ、たとえば、システム管理者によってシステムに付加される。一実施形態において、特徴は、ソーシャル・ネットワーキング・システムにおいてログを取られた（ｌｏｇｇｅｄ）アクション（ａｃｔｉｏｎｓ）の関数、すなわち、特徴＝関数（ｌｏｇｇｅｄ＿ａｃｔｉｏｎｓ）として表される。特徴は、その他の特徴の関数、たとえば、その他の特徴もしくはアクション、またはそれら２つの組合せに基づく式であることも可能である。式としての特徴の一例として、ターゲットはユーザであり、ｖｉｅｗ＿ｐｒｏｆｉｌｅは、ターゲット・ユーザのプロフィールを閲覧しているソース・ユーザに対応し、ｖｉｅｗ＿ｐｈｏｔｏは、ターゲット・ユーザの写真を閲覧しているソース・ユーザに対応し、ｖｉｅｗ＿ｃｏｍｍｅｎｔは、ターゲット・ユーザによって投稿されたコメントを閲覧しているソース・ユーザに対応する場合、観察と呼ばれる特徴は、下記のように定義される。
【００５８】
観察＝ｖｉｅｗ＿ｐｒｏｆｉｌｅ＋ｖｉｅｗ＿ｐｈｏｔｏ＋０．５×ｖｉｅｗ＿ｃｏｍｍｅｎｔ
上記の式において、項、たとえば、ｖｉｅｗ＿ｐｒｏｆｉｌｅの値は、アクションが発生した場合、１であり、アクションが発生しなかった場合、０である。別の実施形態において、それぞれの項の値は、特定のアクションについて記述している情報、たとえば、ある時間間隔内にそのアクションがユーザによって実行される回数に基づくスコア値、またはユーザが、ある写真を、別の写真を取り出す前に眺めている時間の長さなど、そのアクションに関連付けられている時間の長さに基づくスコアである。
【００５９】
一実施形態において、特徴は、ソース・ユーザによって複数のターゲットに関して実行されたアクションに基づく集約値である。たとえば、ある特徴は、所与の時間間隔においてソース・ユーザによって、そのソース・ユーザにつながっているその他のすべてのユーザに関して実行されたすべてのページ閲覧の集約を表す。別の特徴は、ユーザが、そのユーザにつながっているその他のユーザによって投稿された画像を閲覧する割合を表す。特徴は、ソース・ユーザにつながっているその他のすべてのユーザに関するソース・ユーザのアクションに基づいて正規化されるターゲット・ユーザに関してソース・ユーザによって実行されたアクションを表すことができる。たとえば、ある特徴は、ソース・ユーザと、そのソース・ユーザにつながっているその他のユーザとの対話の平均回数を使用して正規化されたターゲット・ユーザとソース・ユーザがどれぐらい頻繁に対話しているかを表すことができる。特徴メタデータは、１つの特徴値に関連付けられている部分的結果同士を組合せるための式を指定することができる。たとえば、特徴について記述している式は、１つの特徴を２つの異なる時間間隔に関して評価することの部分的結果同士を組合せることによって特徴値をどのようにして得るかを指定する。
【００６０】
特徴抽出器４５５は、ソーシャル・ネットワーキング・システム２００のユーザによって実行されたユーザ・アクションに基づいて特徴値を抽出する。特徴抽出器４５５は、特徴について記述しているメタデータに基づいて特徴を抽出する。一実施形態において、さまざまな特徴について記述しているメタデータは、より速いアクセスのために、ソーシャル・ネットワーキング・システム２００を実装するプロセッサのメモリ内に記憶される。
それぞれの特徴タイプは、特定のタイプのユーザ・アクションに関連付けられる。たとえば、ソース・ユーザとターゲット・ユーザとの間における通信の割合に対応する特徴は、ソース・ユーザとターゲット・ユーザとの間におけるそれぞれの通信に関連付けられる。一実施形態において、短い時間間隔内に発生する特定のタイプのアクションの複数のインスタンスは、ユーザ・アクションの単一のインスタンスとして取り扱われる。たとえば、ユーザが数分以内に何回か画像をクリックした場合、特徴管理部１５０は、これらの複数のクリックを単一のクリック・アクションとして取り扱う。同様に、ユーザが、あるエンティティを自分が気に入っていることを示すユーザ・インターフェース・ボタンを数分以内に複数回クリックした場合、特徴管理部１５０は、これらの複数の同様の信号を、そのユーザがそのエンティティを気に入っていることを示す単一のユーザ・アクションとして取り扱う。短い間隔内に発生するインスタンスの回数は、ユーザ・アクションが実行されたという事実と比較して、有意な追加の情報を伝達しないため、これらの一連のユーザ・アクションは、単一のユーザ・アクションとして取り扱われる。
【００６１】
特定のタイプのユーザ・アクションがユーザによって実行された場合、そのユーザ・アクションに関連付けられているすべての特徴が再評価される。一実施形態において、１つの特徴の１つのインスタンスは、さまざまなコンポーネント値として記憶されることが可能であり、それらのコンポーネント値が組合わされて、特徴値が決定される。たとえば、２人のユーザの間における個々の通信回数は、別々の時間間隔に関して記憶される。特徴について記述している式に基づいて別々の回数値を組合せることによって、２人のユーザの間における通信の集約割合を得ることができる。別の例として、ある特徴が、ある写真をユーザが閲覧した回数に基づいている場合、そのユーザがその写真を閲覧することのそれぞれのインスタンスによって、その特徴が再評価される。
【００６２】
一実施形態において、特徴表は、さまざまな特徴の値を記憶する。たとえば、特徴表は、ソースＩＤ、ターゲットＩＤ、ターゲットのタイプ、アクションＩＤ、およびさまざまな特徴という列を有することができる。一実施形態において、さまざまな特徴に関する値は、ソースおよびターゲットのそれぞれのインスタンスに関連付けられている名前／値の対として表される。別の実施形態において、特定の予測モデルのために生成されたデータが、表１として表されており、表１において、それぞれのソースおよびターゲットが、そのモデルに関連しているさまざまな特徴に関連付けられている。
【００６３】
【表１】
2016505940.tif 000003
特徴ストア４８０および４９０は、特徴抽出器４５５によって抽出される特徴値を記憶する。それぞれの特徴ストア４８０ａ、４８０ｂ、および４９０は、特定の時間間隔に関する特徴値を記憶する。累積特徴ストア４９０は、所与の時点より前に発生したユーザ・アクションに基づく特徴値を記憶する。たとえば、現在の時点において、累積特徴ストア４９０は、昨日またはそれ以前に受け取られたユーザ・アクションに基づく特徴値を記憶する。対照的に、増分特徴ストア４８０ａは、所与の時点以降に発生したユーザ・アクションを記憶する。たとえば、特徴ストアは、今日発生したユーザ・アクションに基づくす
べての特徴値を記憶する。
【００６４】
現在のユーザ・アクションに基づく特徴値が決定されて、所与の点の時間まで増分特徴ストア４８０ａ内に記憶されることが可能であり、その点の後に、増分特徴ストア４８０ａ内に記憶されている特徴値と、累積特徴ストア４９０の特徴値とが併合される。特徴併合器４７５は、増分特徴ストア４８０からの特徴値と累積特徴ストア４９０とを併合することを実行する。たとえば、毎日の終わりに、特徴併合器４７５は、増分特徴ストア４８０の特徴値と累積特徴ストア４９０とを併合する。
【００６５】
特徴値が併合されている間の増分特徴ストア４８０ａに対する更新を避けるために、増分特徴ストア４８０ａは、非アクティブとして印を付けられる。非アクティブ増分特徴ストア４８０は、現在生じているユーザ・アクションに応答して更新されない特徴ストアであり、その一方で、アクティブ増分特徴ストア４８０は、ソーシャル・ネットワーキング・システム２００において現在生じているユーザ・アクションに応答して更新される特徴ストアである。したがって、非アクティブの印を付けられている増分特徴ストア４８０ａに対する更新は、増分特徴ストア４８０内に記憶されている情報と累積特徴ストア４９０とが併合されている間は停止される。増分特徴ストア４８０の特徴値が併合されると、増分特徴ストア４８０はリセットされる。すなわち、増分特徴ストア４８０は、空として取り扱われる。増分特徴ストア４８０ｂは、アクティブとして印を付けられ、受け取られたユーザ・アクションによって、増分特徴ストア４８０ｂ内に記憶されている特徴値が更新される。増分特徴ストア４８０ｂに対する更新は、後続の点の時間に達するまで、別の時間間隔に亘って継続される。上述のプロセスが繰り返される。すなわち、増分特徴ストア４８０ｂ内の特徴値と累積特徴ストア４９０とを併合するために、増分特徴ストア４８０ｂが非アクティブとして印を付けられる。この繰り返しにおいて、増分特徴ストア４８０ｂが非アクティブとして印を付けられたことに応答して、増分特徴ストア４８０ａがアクティブとして印を付けられる。この段階において、増分特徴ストア４８０ａ内に以前に記憶された情報と累積特徴ストア４９０とが併合されて、増分特徴ストア４８０ａがリセットされたと想定される。したがって、増分特徴ストア４８０ａは、新たな時間間隔に亘って特徴値を更新するために使用される。したがって、２つの増分特徴ストア４８０ａおよび４８０ｂの状態は、二者択一的に切り替えられる。ある時間間隔において、第１の増分特徴ストアがアクティブの印を付けられて、更新を受け取り、その一方で第２の増分特徴ストアが非アクティブの印を付けられて、累積特徴ストアと併合される。次の時間間隔において、第２の増分特徴ストアがアクティブの印を付けられて、更新を受け取り、その一方で第１の増分特徴ストアが非アクティブの印を付けられて、累積特徴ストアと併合される。このプロセスは、システム１００または２００が稼働している間、継続される。スケジュール管理部４８５は、上述のように、適切な時に、増分特徴ストアと累積特徴ストアとを併合するためのタスク、およびそれぞれの増分特徴ストアの状態を変更するためのタスクをスケジュールする。
【００６６】
一実施形態において、増分特徴ストア４８０は、累積特徴ストア４９０用に使用されているストアのアクセス時間と比較して、より速いアクセス時間を有するコンピュータ・システムのストレージ内に記憶される。累積特徴ストア４９０は、大量のデータを含むため、より遅いがあまり高価ではないストレージ、たとえば、フラッシュ・メモリ内に記憶される。対照的に、増分特徴ストア４８０は、ユーザ・アクションが実行されるにつれて特徴を更新するために頻繁にアクセスされる。したがって、増分特徴ストア４８０は、より速いストレージ、たとえば、ランダム・アクセス・メモリ（ＲＡＭ）内に記憶される。ＲＡＭは、典型的には、２次ストレージと比較して高価であり、コンピュータ・システムのＲＡＭストレージの量は、典型的には、利用可能な２次ストレージ、たとえば、フラッシュ・メモリの量よりも少ない。累積特徴ストア４９０内に記憶されるデータの量は、かなり多くなるため、複数の実施形態は、累積特徴ストア４９０内の情報を複数のコンピュー
タに亘ってパーティションにより分割し、それによって１つのパーティションが、それぞれのコンピュータに割り振られる。たとえば、ユーザのセットが、１つのパーティションに割り振られることが可能であり、それらのユーザに関連付けられている特徴が、そのパーティションに割り当てられる。
【００６７】
要求プロセッサ４７０は、特徴値の要求をソーシャル・ネットワーキング・システム２００のさまざまなモジュールから受け取る。要求プロセッサ４７０は、特徴値を取り出し、それらの特徴値を要求元に返す。一実施形態において、要求プロセッサ４７０は、対応する特徴値をそれぞれの特徴ストアから取り出し、それらの特徴値を組合せて、全体的な特徴値を決定する。たとえば、要求プロセッサ４７０は、ソース・エンティティおよびターゲット・エンティティに関連付けられている特定の特徴タイプの特徴値の要求を受け取る。特徴ストア４８０ａ、４８０ｂ、および４９０のそれぞれは、要求されている特徴に関連付けられている部分的結果を、それぞれの特徴ストアに関連付けられている時間間隔において発生したユーザ・アクションに基づいて記憶する。要求プロセッサ４７０は、特徴値に関する部分的結果をそれぞれの特徴ストアから取り出し、ソーシャル・ネットワーキング・システム２００によって受け取られた関連付けられているユーザ・アクションに基づいて、それらの部分的結果を組合せて、特徴値を決定する。
【００６８】
一実施形態において、要求プロセッサ４７０は、より古い時間間隔に関連付けられている部分的結果の値を減衰させて、より大きな重みを最近のデータに与える。たとえば、組合わされた特徴値を決定するために、累積特徴ストアから得られた部分的結果にアッテネーティング・ファクタ（減衰係数とも呼ばれる）を乗じる。アッテネーティング・ファクタの値は、たとえば、１未満である事前に設定された値、たとえば０．９など、に設定される。結果として、累積データ・ストア内のより古いユーザ・アクションの影響は、時間とともに衰退する。たとえば、特徴値が、別々の時間間隔に関連付けられている部分的結果同士を集約したものとみなされる場合、著しく古い時間間隔に関して決定された部分的結果には、アッテネーティング・ファクタを複数回乗じ、その一方で、比較的最近の時間間隔に関する部分的結果には、アッテネーティング・ファクタを数回だけ乗じる。したがって、より古い時間間隔に関連付けられているユーザ・アクションは、より新しい時間間隔に関連付けられているユーザ・アクションよりも小さく重み付けされる。
【００６９】
特徴値に対するユーザ・アクションの影響は、時間とともに指数関数的に衰退するものとみなされる。一実施形態において、減衰係数の値は、特徴のタイプに依存する。それぞれの特徴は、半減期に関連付けられる。半減期の値は、特徴に関する減衰係数を決定するために使用される。たとえば、いくつかの特徴は、より長い半減期を有する場合があり、その他の特徴は、より短い半減期を有する場合がある。したがって、より長い半減期を有する特徴は、より古い値の衰退をゆっくりと生じさせる減衰係数を有し、より短い半減期を有する特徴は、より古い値の衰退をより速く生じさせる減衰係数を有する。
【００７０】
特徴値を記憶する全体的なプロセス
図５は、本発明の一実施形態による、増分特徴ストアと累積特徴ストアとを併合する全体的なプロセスを示している。一例として、図５において示されているプロセスの実行が開始するときに、増分特徴ストア４８０ａは、アクティブの印を付けられていると想定され、増分特徴ストア４８０は、非アクティブの印を付けられていると想定される。ウェブ・サーバ４１５は、さまざまなユーザ・アクションを実行するための要求をユーザから受け取る。これらのアクションは、アクション・ロガー４４０によってアクション・ログ４４５内に記録される。特徴抽出器４５５は、これらのユーザ・アクションについて記述している情報に基づいて、特徴値、または特徴値に関連した部分的結果を抽出することができる。特徴抽出器４５５は、これらのユーザ・アクションについて記述している情報を、これらのユーザ・アクションが受け取られた際にアクション・ロガー４４０から得る、ま
たはその情報がアクション・ログ４４５内に記録された後にアクション・ログを処理する。特徴抽出器４５５は、特徴値、または特徴値の部分的結果に基づいて、アクティブ増分特徴ストア４８０ａを更新する。ユーザ・アクションを受け取って増分特徴ストア４８０ａを更新するプロセスは、所与の時間間隔に亘って継続される。
【００７１】
スケジュール管理部４６５は、時間間隔の長さがしきい値を超えているか否かを５３０で検査して、増分特徴ストア４８０ａ内に記憶されている部分的結果と累積ストア４９０内の特徴値とを併合するか否かを決定する。別の実施形態において、スケジュール管理部４６５は、増分特徴ストア４８０ａ内に記憶されている部分的結果を累積ストア４９０内の特徴値といつ併合するかを、その他の基準で、たとえば、増分特徴ストア４８０ａ内に記憶されている情報の量がしきい値を超えているか否か、または受け取られたユーザ・アクションの数がしきい値を超えているか否かに基づいて決定する。
【００７２】
増分特徴ストア４８０ａ内の結果と累積ストア４９０内の特徴値とが併合される用意ができているとスケジュール管理部４６５が決定した場合、スケジュール管理部４６５は、増分特徴ストア４８０ａについて非アクティブとして、および増分特徴ストア４８０ａについてアクティブとして印を付ける。したがって、２つの増分特徴ストア４８０の状態は切り替えられる。一実施形態において、特徴管理部４５０は、２つの増分特徴ストアの間において切り替えを行う代わりに、次の時間間隔に亘って更新を記憶するために新たな増分特徴ストア４８０を割り当てる。たとえば、１つの増分特徴ストアが、増分特徴ストアのプールから選択される。一実施形態において、それぞれの新たな時間間隔に関して、新たな増分特徴ストアが割り当てられる。特徴併合器４７５は、増分特徴ストア４８０ａからの特徴値と累積特徴ストア４９０とを併合する。上述の工程５１０、５２０、５３０、５４０、および５５０は、たとえば、ソーシャル・ネットワーキング・システム２００が稼働している限り、複数回に亘って繰り返される。一実施形態において、特徴併合器４７５は、併合演算を実行するバックグラウンド・スレッドとして実行される。
【００７３】
図６は、本発明の一実施形態による、データと累積増分特徴とを併合するための、アクティブ増分特徴ストアおよび非アクティブ増分特徴ストアを示す図である。図６は、さまざまな工程を通じて特徴管理部１５０の特徴ストアを示している。図６において示されているように、工程６５０ａにおいて、増分特徴ストア４８０ａがアクティブの印を付けられ、信号１０５は、増分特徴ストア４８０ａに対する更新を生じさせる。
【００７４】
工程６５０ｂにおいて、増分特徴ストア４８０ａは６１５で非アクティブとして印を付けられ、増分特徴ストア４８０ｂはアクティブとして印を付けられる。したがって、信号１０５に基づく更新が、増分特徴ストア４８０ｂに対して実行され、非アクティブ増分特徴ストア４８０ａに対する更新は停止される。工程６５０ｃにおいて、非アクティブ増分特徴ストア４８０ａからの特徴値は、６２５で累積特徴ストア４９０に併合される。併合演算６２５中に、信号１０５は、増分特徴ストア４８０ｂに対する更新を生じさせる。上述のプロセスは、たとえば、ソーシャル・ネットワーキング・システム２００が稼働している間に、６４５で複数回に亘って繰り返される。
【００７５】
図７Ａ〜図７Ｃは、本発明の一実施形態による、累積特徴ストアおよび増分特徴ストアに関連付けられている時間間隔を示している。図７Ａは、図６において示されている工程６５０ａに対応する時間間隔を示している。図７Ａは、ある時間線を示しており、時点７２０ａが、その時間線を２つの時間間隔７１０ａおよび７１０ｂへと分割している。時間間隔７１０ａは、時点７２０ａの前の時間に対応しており、時間間隔７１０ｂは、時点７２０ａの後の時間に対応している。累積特徴ストア７１０ａは、時間間隔７１０ａ中に発生したユーザ・アクションを使用して決定された特徴値を記憶する。増分特徴ストア４８０ａは、時間間隔７１０ｂ中に発生したユーザ・アクションを使用して決定された特徴値
を記憶し、現在発生しているユーザ・アクションに応答して更新される。現在の時刻は、時点７２０ａより右に生じる点によって表されることが可能であり、時間線に沿って右に向かって移動するものとみなされる。
【００７６】
現在の時点が７２０ｂに達したときに、増分特徴ストア４８０ａは、非アクティブの印を付けられ、新たな増分特徴ストア４８０ｂが、アクティブ増分特徴ストアとして使用される。図７Ｂは、図６において示されている工程６５０ｂに対応する時間間隔を示している。図７Ｂは、時点７１０ａより前の時間に対応する時間間隔７１０ａ、時点７１０ａと７１０ｂとの間における時間に対応する時間間隔７１０ｂ’、および時点７１０ｂ以降の時間に対応する時間間隔７１０ｃという３つの時間間隔を有する時間線を示している。累積特徴ストア７１０ａは、時間間隔７１０ａ’中に発生したユーザ・アクションを使用して決定された特徴値を記憶する。非アクティブ増分特徴ストア４８０ａは、時間間隔７１０ｂ’中に発生したユーザ・アクションを使用して決定された特徴値を記憶し、アクティブ増分特徴ストア４８０ｂは、時間間隔７１０ｃ中に発生したユーザ・アクションを使用して決定された特徴値を記憶し、現在発生しているユーザ・アクションに応答して更新される。
【００７７】
図７Ｃは、図６において示されている工程６５０ｃに対応する時間間隔を示している。図７Ｃは、時点７１０ｂの前の時間に対応する時間間隔７１０ａ’、および時点７１０ｂ以降の時間に対応する時間間隔７１０ｃという２つの時間間隔を有する時間線を示している。この工程６５０ｃにおいて、増分特徴ストア４８０ａと、累積特徴ストア４９０とが併合されている。累積特徴ストア７１０ａは、時間間隔７１０ａ’中に発生したユーザ・アクションを使用して決定された特徴値を記憶する。アクティブ増分特徴ストア４８０ｂは、時間間隔７１０ｃ中に発生したユーザ・アクションを使用して決定された特徴値を記憶し、現在発生しているユーザ・アクションに応答して更新される。
【００７８】
特徴値について照会する全体的なプロセス
要求プロセッサ４７０は、特徴値の要求を受け取り、それらの要求を処理する。要求は、要求されている特徴を識別する情報を提供し、たとえば、要求は、特徴値に関連付けられているユーザ、特徴値に関連付けられているターゲット・エンティティ、および特徴のタイプを識別する情報を識別することができる。別々の特徴ストア４９０、４８０ａ、４８０ｂは、特定の特徴値に対応している部分的結果を記憶し、それぞれの部分的結果は、ユーザ・アクションのセット、たとえば、特定の時間間隔中に発生するユーザ・アクションを使用して決定される。一例として、特徴値が、ユーザ・アクションに関連付けられている値同士を集約することによって決定される場合、あるストアに対応する部分的結果の値は、そのストア内のすべての関連しているアクションを使用して決定された集約値に対応する。したがって、要求プロセッサ４７０は、それぞれの特徴ストア４９０、４８０ａ、４８０ｂから得られた特徴値に対応する部分的結果同士を組合せることによって、特徴値を決定する。特定の特徴ストアは、たとえば、関連しているユーザ・アクションが、その特徴ストアに対応する時間間隔において発生しなかった場合、特徴に対応する部分的結果の値を有しない。この状況において、要求プロセッサ４７０は、特徴値に関する部分的結果を有する特徴ストアからの部分的結果同士を組合せる。
【００７９】
図８は、本発明の一実施形態による、増分特徴ストアおよび累積特徴ストアを維持するシステムに関する特徴値の要求を処理するための全体的なプロセスを示している。要求プロセッサ４７０は、特徴値の要求を８１０で受け取る。要求プロセッサ４７０は、特徴値に対応する第１の部分的結果を累積特徴ストア４９０から８２０で受け取る。第１の部分的結果は、累積特徴ストア４９０内の特徴値が更新されているユーザ・アクションを使用して決定される。要求プロセッサ４７０は、特徴値に対応する第２の部分的結果を増分特徴ストア４８０ａから８３０で受け取る。第２の部分的結果は、増分特徴ストア４８０ａ
内の特徴値が更新されているユーザ・アクションを使用して決定される。要求プロセッサ４７０は、特徴値に対応する増分特徴ストア４８０ｂからの第３の部分的結果を８４０で受け取る。第３の部分的結果は、増分特徴ストア４８０ｂ内の特徴値が更新されているユーザ・アクションを使用して決定される。要求プロセッサ４７０は、第１の部分的結果、第２の部分的結果、および第３の部分的結果の重み付けされた組合せを８５０で決定し、その組合わされた部分的結果を、要求されている特徴値として８６０で返す。
【００８０】
要求プロセッサによって８５０で決定された重み付けされた組合せでは、より古いユーザ・アクションに関連付けられている部分的結果を減衰係数（アッテネーション・ファクタとも呼ばれる）によって重み付けする。これは、特徴値におけるさらに古いユーザ・アクションの影響を減衰させる。減衰係数は、１未満の値、たとえば０．９である。一実施形態において、それぞれの特徴は、別々の減衰係数に関連付けられる。一実施形態において、それぞれの特徴は、半減期に関連付けられており、その特徴に関する減衰係数は、その半減期に基づいて決定される。たとえば、特定の特徴に関しては、その他の特徴と比較して、より古いユーザ・アクションが、より関連している場合がある。より古いユーザ・アクションが、より関連している場合、減衰係数は、より大きくなり、より古いユーザ・アクションは、よりゆっくりと衰退する結果となる。その一方で、より古いユーザ・アクションが、特徴の計算に関して、あまり関連していない場合、減衰係数は、より小さくなり、より古いユーザ・アクションは、より速く衰退する結果となる。一実施形態において、減衰係数の値を設定することができる。
【００８１】
要求されている特徴に関する部分的結果は、たとえば、その特徴を求める要求が工程６５０ａ中に受け取られた場合、単一の増分特徴ストアおよび累積特徴ストアにおいて利用可能である。この状況における特徴値ｆは、式（１）を使用して決定され、式（１）において、ｘは、増分特徴ストア４８０ａから得られた部分的結果を表しており、ｙは、累積特徴ストア４９０から得られた部分的結果を表しており、αは、減衰係数を表している。
【００８２】
ｆ＝ｘ＋α×ｙ      （１）
要求されている特徴に関する部分的結果は、たとえば、その特徴を求める要求が工程６５０ｂ中に受け取られた場合、増分特徴ストア４８０ａ、増分特徴ストア４８０ｂ、および累積特徴ストアにおいて利用される。この状況における特徴値ｆは、式（１）を使用して決定され、式（１）において、ｘは、増分特徴ストア４８０ａから得られた部分的結果を表しており、ｙは、累積特徴ストア４９０から得られた部分的結果を表しており、ｚは、増分特徴ストア４８０ｂから得られた部分的結果を表しており、αは、増分特徴ストア４８０ａからの部分的結果に関する減衰係数を表しており、βは、増分特徴ストア４８０ｂからの部分的結果に関する減衰係数を表している。
【００８３】
ｆ＝ｘ＋α×ｙ＋β×ｚ      （２）
式（１）は、図５において示されているような増分特徴ストア４８０からの特徴値を累積特徴ストア４９０に併合すること５５０、または図６において示されているような併合すること６２５のために実行される計算に対応する。
【００８４】
代替アプリケーション
本明細書において記述されている特徴および利点は、すべてを網羅したものではなく、特に図面、明細書、および特許請求の範囲を考慮すれば、当技術分野における通常の知識を有する当業者にとっては、多くのさらなる特徴および利点が明らかになるであろう。その上、本明細書において使用されている用語は、主として読みやすさおよび教示上の目的で選択されており、本発明の主題の線引きまたは画定を行うために選択されてはいない場合があることに留意されたい。
【００８５】
たとえば、予測モデルは、その他のタイプのオンライン・システムにおいて生成および使用されることが可能であり、ソーシャル・ネットワーキング・システムに限定されない。たとえば、ユーザ・プロフィールを記憶し、ユーザがアクションを取ることを可能にするオンライン・システムは、ユーザが取ることができるさまざまなアクションに関するプレディクタを生成し、および使用する。たとえば、オンライン・システムは、さまざまなタイプのデータのフィードをユーザが受け取ることを可能にする。予測モデルは、ユーザに提示されたフィードをそのユーザが開くことになるか否かを予測するために開発される。予測モデルは、ユーザに提示されたフィードを順序付けるためにオンライン・システムによって使用されることが可能であり、たとえば、フィード同士は、ユーザがフィードを開くことになる、またはフィードからのさらなる情報を要求することになる可能性に基づいて順序付けられる。
【００８６】
本発明の実施形態についての前述の記述は、例示の目的で提示されており、すべてを網羅すること、または開示されている厳密な形態に本発明を限定することを意図するものではない。上述の開示に照らせば、多くの修正形態および変形形態が可能であることを、関連する技術の分野における技術者であれば理解されるであろう。
【００８７】
この記述のいくつかの部分は、情報に関する演算のアルゴリズムおよびシンボル表示という点から本発明の実施形態について記述している。これらのアルゴリズム的な記述および表示は一般に、データ処理の技術分野における技術者によって、それらの技術者の作業の実体を他の当業者に効果的に伝達するために使用されている。これらの演算は、機能的に、計算処理的に、または論理的に記述されているが、コンピュータ・プログラムまたは均等な電気回路、マイクロコードなどによって実装されることがわかる。さらに、一般性を失うことなく、モジュールとして演算のこれらの構成に言及することが時として好都合であることもわかっている。記述されている演算およびそれらの関連付けられているモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで具体化される。
【００８８】
本明細書において記述されている工程、演算、またはプロセスのうちのいずれも、１つもしくは複数のハードウェア・モジュールもしくはソフトウェア・モジュールを用いて、単独で、またはその他のデバイスと組み合わせて実行または実装される。一実施形態において、ソフトウェア・モジュールは、記述されている工程、演算、またはプロセスのうちの任意のものまたはすべてを実行するためにコンピュータ・プロセッサによって実行されるコンピュータ・プログラム・コードを含むコンピュータ可読媒体を備えるコンピュータ・プログラム製品とともに実装される。
【００８９】
本発明の実施形態は、本明細書における演算を実行するための装置に関連することも可能である。この装置は、求められている目的のために特別に構築されることが可能であり、および／または、コンピュータ内に記憶されているコンピュータ・プログラムによって選択的にアクティブ化もしくは再構成される汎用コンピューティング・デバイスを備えることができる。そのようなコンピュータ・プログラムは、有形のコンピュータ可読記憶媒体、または電子命令を記憶するのに適している任意のタイプの媒体内に記憶されること、およびコンピュータ・システム・バスに結合される。さらに、本明細書において言及されているいずれのコンピューティング・システムも、シングル・プロセッサを含むことができ、またはコンピューティング能力を高めるためにマルチ・プロセッサ設計を採用しているアーキテクチャである。
【００９０】
最後に、本明細書において使用されている用語は、主として読みやすさおよび教示上の目的で選択されており、本発明の主題の線引きまたは画定を行うために選択されてはいない場合がある。したがって、本発明の範囲は、この詳細な説明によってではなく、本明細
書に基づく出願上で生じる請求項によって限定されることが意図されている。したがって、本発明の実施形態の開示は、例示的なものであり、添付の特許請求の範囲において示されている本発明の範囲を限定するものではないことが意図される。
【図１】
2016505940.tif 000004
【図２】
2016505940.tif 000005
【図３】
2016505940.tif 000006
【図４Ａ】
2016505940.tif 000007
【図４Ｂ】
2016505940.tif 000008
【図５】
2016505940.tif 000009
【図６】
2016505940.tif 000010
【図７Ａ】
2016505940.tif 000011
【図７Ｂ】
2016505940.tif 000012
【図７Ｃ】
2016505940.tif 000013
【図８】
2016505940.tif 000014
【国際調査報告】
2016505940.tif 000015
2016505940.tif 000016
2016505940.tif 000017