JP2014534773A - 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム - Google Patents

移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム Download PDF

Info

Publication number
JP2014534773A
JP2014534773A JP2014539973A JP2014539973A JP2014534773A JP 2014534773 A JP2014534773 A JP 2014534773A JP 2014539973 A JP2014539973 A JP 2014539973A JP 2014539973 A JP2014539973 A JP 2014539973A JP 2014534773 A JP2014534773 A JP 2014534773A
Authority
JP
Japan
Prior art keywords
mobile device
user
outgoing
messages
message
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.)
Granted
Application number
JP2014539973A
Other languages
English (en)
Other versions
JP5864769B2 (ja
JP2014534773A5 (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 JP2014534773A publication Critical patent/JP2014534773A/ja
Publication of JP2014534773A5 publication Critical patent/JP2014534773A5/ja
Application granted granted Critical
Publication of JP5864769B2 publication Critical patent/JP5864769B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一実施形態では、移動体デバイスが移動体デバイスのユーザインタフェースモードに基づいて通知モードを決定し、通知モードを含むメッセージをサーバに送信することにより、サーバに移動体デバイスに対して通知モードに基づき1または複数のメッセージを送信させる。

Description

本開示は、一般にデータ通信に関する。
2つのコンピューティングデバイスがネットワークに接続されている場合、1または複数の適切なネットワークプロトコルを使用してその2つのデバイス間でネットワークを通じてデータを送信することができる。ネットワークはインターネット、企業イントラネット、仮想プライベートネットワーク、ローカルエリアネットワーク、無線ローカルエリアネットワーク、セルラーネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、または2以上のこのようなネットワークの組み合わせの場合がある。
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムのユーザとソーシャルネットワーキングシステムとの対話、およびシステムを通じたユーザ同士の対話を可能にする。ソーシャルネットワーキングシステムは、よくユーザプロファイルと称する記録を、ユーザと関連付けて作成し記憶することができる。ユーザプロファイルには、ユーザの人口学的情報、通信チャネル情報、および個人的関心などが含まれ得る。また、ソーシャルネットワーキングシステムは、ユーザとソーシャルネットワーキングシステム内の他のユーザとの関係の記録(例えばソーシャルグラフ)を作成して記憶し、サービス(ウォール投稿、写真のシェア、イベント企画、メッセージ交換、ゲームまたは広告など)を提供して、ソーシャルネットワーキングシステム内のユーザ間のソーシャルネットワーク上の対話を促すこともできる。ソーシャルネットワーキングシステムは、そのサービスに関連するコンテンツおよびメッセージを、ネットワークを通じてユーザのクライアントデバイスに送信することができる。
例示のネットワーク環境を示す図。 サーバから移動体デバイスへのメッセージ送信を、移動体デバイスのユーザインタフェースモードに基づいて管理する例示の方法を示す図。 ユーザインタフェースモードおよび通知モードの例を示す図。 例示の無線接続状態を示す図。 サーバから移動体デバイスへのメッセージ送信を、管理する例示の方法を示す図。 メッセージキューを送信する例示の方法を示す図。 メッセージキューを送信する他の例示の方法を示す図。 ソーシャルネットワーキングシステム内のユーザの親和度の尺度を計算するための例示のブロック図を示す図。 例示のソーシャルネットワーキング環境を示す図。 要求に基づいてユーザの親和度の尺度を計算する例示の方法を示す図。 例示のコンピュータシステムを示す図。 例示の移動体デバイスプラットフォームを示す図。
データ通信において、サーバはコンピュータネットワークを通じてクライアントデバイスに1または複数のメッセージを送信することができる。例えば、電子メール交換ソフトウェアを動作させているサーバシステムは、インターネットを通じてユーザのクライアン
トデバイス(例えばデスクトップコンピュータ、携帯電話、タブレットコンピュータ)に電子メールメッセージを送信することができる。ユーザは、移動体デバイス上で動作している電子メールプログラム(例えばマイクロソフトアウトルック(Microsoft Outlook))を使用して、クライアントデバイスで受信した電子メールメッセージにアクセスすることができる。
図1に、サーバから移動体デバイスに1または複数のメッセージを送信することができる例示のネットワーク環境を示す。特定の実施形態では、サーバ120はネットワーククラウド121を通じて移動体デバイス122と通信し、移動体デバイス122に1または複数のメッセージを送信することができる。サーバ120は、1または複数のコンピュータまたはコンピューティングデバイスを含み得る。特定の実施形態では、サーバ120は1または複数のメッセージサービス112に動作可能に接続することができる。各メッセージサービス112は、1または複数のユーザにメッセージを転送するように構成された1または複数のコンピュータまたはコンピューティングデバイスであってもよい。例えば、メッセージは電子メール、インスタントメッセージ(IM)、ショートメッセージサービス(SMS)メッセージ、マルチメディアメッセージングサービス(MMS)メッセージ、ニュース記事、広告、システム更新メッセージ、またはこれらの任意の組み合わせであってもよいが、これらには限定されない。例えば、メッセージは、リアルタイム通信セッション(例えば通話、ビデオ通話)の確立要求を示す通知であってもよい。例えば、サーバ120はユーザへの1または複数の発信メッセージのためにメッセージサービス112にアクセスし、ネットワーククラウド121を通じてユーザの移動体デバイス122にその1または複数の発信メッセージを送信することができる。ネットワーククラウド121は、サーバ120がそれを通じて移動体デバイス122と通信することができるネットワークまたはネットワークの集合(インターネット、企業イントラネット、仮想プライベートネットワーク、ローカルエリアネットワーク、無線ローカルエリアネットワーク、セルラーネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、または2以上のこのようなネットワークの組み合わせなど)を一般に表す。
移動体デバイス122は、一般に、ネットワークを通じて通信(例えば遠隔通信)するための機能を備えた携帯型コンピュータまたはコンピューティングデバイスである。例えば、移動体デバイス122は、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲーム機、電子書籍リーダ、またはその他任意の適切な携帯型デバイスであってよい。移動体デバイス122が、ウェブブラウザ(例えば、マイクロソフトウィンドウズ(登録商標)インターネットエクスプローラ(Microsoft Windows(登録商標)Internet Explorer)、モジラファイアフォックス(Mozilla Firefox)、アップルサファリ(Apple Safari)、グーグルクローム(Google Chrome)、およびオペラ(Opera)など)、または専用クライアントアプリケーション(例えばマイクロソフトアウトルック(Microsoft Outlook)、フェースブック(登録商標)フォーアイフォン(Facebook(登録商標)for iPhone(登録商標))など)などの1または複数のクライアントアプリケーションを実行することによって、ネットワーククラウド121を通じてサーバ120から送信されたコンテンツおよびメッセージにアクセスし、閲覧することができる。特定の実施形態では、移動体デバイス122はセルラーネットワーク(例えばグローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications)すなわちGSM(登録商標)セルラーネットワーク、ロングタームエボリューション(Long Term Evolution)すなわちLTEネットワーク)の基地局131を通じてネットワーククラウド121に接続することができる。特定の実施形態では、移動体デバイス122はWi−Fiネットワークの無線アクセスポイント132を通じてネットワーククラウド121に接続することができる。
移動体デバイス(例えば携帯電話、タブレットコンピュータ)は、移動体デバイス自体のバッテリのみで動作することが多い。一方、無線ネットワークを通じたメッセージの受信は、(例えば移動体デバイスの無線送受信部によって)移動体デバイスのバッテリに蓄積されたエネルギーを相当量減少させることがある。ユーザがユーザの移動体デバイスで利用できる大量のメッセージ(前述のメッセージなど)を考えると、移動体デバイスのバッテリの電力の節約のために、ユーザの移動体デバイスへのメッセージ送信を管理することが望ましい。本開示における特定の実施形態では、ユーザの移動体デバイスに対するメッセージの送信を管理する方法について説明する。より具体的には、特定の実施形態では、移動体デバイスとのユーザの対話に基づいて、ユーザの移動体デバイスへのメッセージの送信を管理する。例えば、特定の実施形態は、ユーザが移動体デバイスと活発に対話している場合(例えばユーザが移動体デバイス上で動作している1または複数のアプリケーションにアクセスしている場合)、1または複数のメッセージをユーザの移動体デバイスにリアルタイムで送信することができる。例えば、特定の実施形態は、ユーザの移動体デバイスがユーザの手元にないとき(例えばユーザが睡眠中)に移動体デバイスと活発に対話していない場合は、ユーザの要求時にのみユーザの移動体デバイスに1または複数のメッセージを送信することができる。
図2に、サーバから移動体デバイスへのメッセージ送信を、移動体デバイスのユーザインタフェースモードに基づいて管理する例示の方法を示す。図2の例示の方法は、ユーザの移動体デバイスの1または複数のプロセッサ上で動作している通知モードマネージャ処理によって実装されてもよい。例えば、移動体デバイスは携帯電話、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲーム機、電子書籍リーダ、またはその他任意の適切な携帯型デバイスであってもよい。特定の実施形態では、サーバ120は、図1に示すようにネットワーククラウド121(例えばインターネット)を通じて通信し、移動体デバイスにメッセージを送信することができる。特定の実施形態では、移動体デバイスは、図1に示すようにセルラーネットワークの基地局131および/またはWi−Fiネットワークのアクセスポイント122を通じてネットワーククラウド121に接続することができる。特定の実施形態では、通知モードマネージャ処理は、移動体デバイスのユーザインタフェースモードに基づいて通知モードを決定してもよい(201)。特定の実施形態では、通知モードマネージャ処理は、1または複数のコンピューティングデバイス(例えばサーバ120)に通知モードを含むメッセージを送信し、それによって、その1または複数のコンピューティングデバイスに通知モードに基づいて移動体デバイスに1または複数のメッセージを送信させることができる(202)。
図3に、図2の例示の方法のユーザインタフェースモードおよび通知モードの例を示す。特定の実施形態では、通知モードマネージャ処理は、ユーザが移動体デバイスと活発に対話していることを示す現在のユーザインタフェースモードに基づいてトリクル通知モードを決定することができる。通知モードマネージャ処理は、ユーザが移動体デバイス上で動作している1または複数のアプリケーションと対話している場合に、ユーザが移動体デバイスと活発に対話していると判断してもよい。通知モードマネージャ処理は、特定のアプリケーションのユーザインタフェースがユーザ入力を受け取ったか、または所定時間内(例えば最近の20秒以内)にユーザインタフェースフォーカスを受け取ったか否かを判断することによって、ユーザが特定のアプリケーションと対話しているか否かを判断することができる。例えば、通知モードマネージャ処理は、移動体デバイスのオペレーティングシステムにアクセスすることによって、または特定のアプリケーションのユーザ入力イベントのリスナとして加入することによって、特定のアプリケーションのユーザインタフェースが所定時間内にユーザ入力を受け取ったか(またはユーザインタフェースフォーカスを受け取ったか)を判断してもよい。
例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話しているか否かを判断してもよい。また、例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上でメッセージリーダ以外のアプリケーションと対話しているかを判断してもよい。メッセージリーダは専用クライアントアプリケーション(例えばマイクロソフトアウトルック(Microsoft Outlook)、フェースブックフォーアイフォン(Facebook for iPhone)であってもよい。メッセージリーダは、1または複数のメッセージ(例えばグーグル(Google)のGmailウェブインタフェース、フェースブック(Facebook)ウェブユーザインタフェース)にアクセスするための1または複数の構造化文書(例えばウェブページ、アイフレーム(iFrame))を表示するウェブブラウザとすることもできる。特定の実施形態では、図3に示すように、通知モードマネージャ処理は、現在のユーザインタフェースモードが、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話していること(301)であるか、またはユーザが移動体デバイス上のメッセージリーダ以外のアプリケーションと対話していること(302)である場合、トリクル通知モード(310)と決定してもよい。特定の実施形態では、通知モードマネージャ処理は、サーバ120に、トリクル通知モードを示すメッセージを送信して、サーバ120に1または複数のメッセージを移動体デバイスにリアルタイムで送信させることができる。例えば、トリクル通知モードを示すメッセージに応答して、サーバ120上で動作しているサーバ側の処理は、ユーザへの1または複数の発信メッセージのために1または複数のメッセージサービス112にアクセスし、その1または複数のメッセージをユーザにリアルタイムで(例えば新たな発信メッセージが利用可能なときはいつでも)送信することができる。
特定の実施形態では、通知モードマネージャ処理は、例えばユーザが歩行中または車の運転中に移動体デバイスがユーザのポケットに入っている場合など、現在のユーザインタフェースモードが、移動体デバイスがユーザの手元にあるがユーザが移動体デバイスと活発に対話していないことを示していることに基づいて、ナッピング通知モードと決定してもよい。通知モードマネージャ処理は、移動体デバイス上で動作しているいずれのアプリケーションも、所定時間内(例えば最近の3分間以内)にユーザ入力(またはユーザ入力フォーカス)を受け取っていない場合、ユーザが移動体デバイスと対話していないと判断してもよい。他の実施形態では、通知モードマネージャ処理は、移動体デバイスのディスプレイが低電力または低利用状態(ディスプレイの電力を落としている状態またはスクリーンセーバまたはスクリーンロックプログラムが実行されている状態)である場合に、ユーザが移動体デバイスと対話していないと判断することができる。通知モードマネージャ処理は、移動体デバイスが移動中である(例えばユーザが移動体デバイスを持ち歩いていることを示している)場合に、移動体デバイスがユーザの手元にあると判断することができる。通知モードマネージャ処理は、移動体デバイスの加速度計のデバイスドライバにアクセスすることによって、移動体デバイスが移動中であるか否かを判断することができる。
特定の実施形態では、通知モードマネージャ処理は、図3に示すように、移動体デバイスの移動中であってユーザが移動体デバイスと対話していない場合(303)、ナッピング通知モード(311)と決定してもよい。特定の実施形態では、通知モードマネージャ処理は、ナッピング通知モードを示すメッセージをサーバ120に送信して、サーバ120に所定時間間隔で(例えば10分おきに)移動体デバイスに対して1または複数のメッセージを送信させることもできる。例えば、ナッピング通知モードを示すメッセージに応答して、サーバ120上で動作しているサーバ側の処理は、ユーザへの1または複数の発信メッセージのために1または複数のメッセージサービス112にアクセスし、10分おきに移動体デバイスにその1または複数の発信メッセージを送信することができる。
特定の実施形態では、通知モードマネージャ処理は、現在のユーザインタフェースモードが、移動体デバイスが所定時間静止している(例えば移動体デバイスが最近15分間静止している)ときにユーザが移動体デバイスと活発に対話していないことを示していることに基づいて、スリープ通知モードと決定してもよい。例えば、ユーザが睡眠中である可能性がある。前述のように、通知モードマネージャ処理は、移動体デバイス上で動作しているいずれのアプリケーションも所定時間内にユーザ入力(またはユーザ入力フォーカス)を受け取っていない場合、ユーザが移動体デバイスと対話していないと判断することができる。通知モードマネージャ処理は、移動体デバイスのディスプレイが低電力または低利用状態にある場合にユーザが移動体デバイスと対話していないと判断することもできる。通知モードマネージャ処理は、移動体デバイスの加速度計のデバイスドライバにアクセスすることによって、移動体デバイスが静止状態またはIDLE状態(アイドル)であるかを判断することができる。
特定の実施形態では、通知モードマネージャ処理は、図3に示すように、移動体デバイスが静止しておりユーザが移動体デバイスと対話していない場合(304)に、スリープ通知モード(312)と決定することができる。特定の実施形態では、通知モードマネージャ処理は、スリープ通知モードを示すメッセージをサーバ120に送信して、サーバ120にユーザの要求時に移動体デバイスに対して1または複数のメッセージを送信させてもよい。すなわち、サーバ120は、ユーザがメッセージへのアクセスを要求しない限り、移動体デバイスにメッセージを送信しない。例えば、ユーザは前述のメッセージリーダアプリケーションにアクセスして、前述のように通知モードマネージャ処理にトリクル通知モード(310)を示すメッセージをサーバ120に対して送信させてもよい。トリクル通知モードを示すメッセージに応答して、サーバ120上で動作しているサーバ側の処理が、ユーザへの1または複数の発信メッセージのために1または複数のサービス112にアクセスし、その1または複数のメッセージをユーザに送信することができる。
通知モードマネージャ処理は、ユーザインタフェースモードの様々な組み合わせに基づいて通知モードを決定することもできる。例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上でメッセージリーダアプリケーション以外のアプリケーションと対話している場合(302)、または移動体デバイスの移動中にユーザが移動体デバイスと対話していない場合(303)に、ナッピング通知モードと決定してもよい。通知モードマネージャ処理は、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話している場合(301)に、トリクル通知モードと決定してもよい。通知モードマネージャ処理は、移動体デバイスが静止しておりユーザが移動体デバイスと対話していない場合(304)に、スリープ通知モードと決定してもよい。
また、通知モードマネージャ処理は、移動体デバイスの電源状態に基づいて通知モードを決定することができる。例えば、通知モードマネージャ処理は、移動体デバイスのバッテリのデバイスドライバにアクセスし、バッテリレベルが低い(例えば充電率20%未満)と判断することができる。バッテリエネルギーを節約するために、図3に示すように、通知モードマネージャ処理は、バッテリレベルが低い場合(305)に、スリープ通知モード(312)と決定してもよい。他の実施形態では、通知モードマネージャ処理は、バッテリがほぼ完全に充電されている(例えば充電率90%を超えている)場合、ナッピング通知モードと決定してもよい。通知モードは、バッテリが充電中である場合に、トリクル通知モードと決定してもよい。
通知モードマネージャ処理は、移動体デバイスの現在の無線ネットワーク状態に基づいて通知モードを決定してもよい。例えば、通知モードマネージャ処理は、移動体デバイスの無線通信サブシステムのデバイスドライバにアクセスし、現在の無線ネットワーク接続の信号強度(例えばバー5本のうちの4本)を判断することができる。例えば、信号強度
の弱い(例えばバー5本のうちの1本)無線ネットワーク接続は、パケット損失によりデータ通信の効率が良くない(したがってより多くのエネルギーを消費する)可能性がある。図3に示すように、通知モードマネージャ処理は、現在の無線ネットワーク接続の信号強度が低い場合(306)、スリープ通知モード(312)と決定してもよい。
特定の実施形態は、通知モードに基づいて移動体デバイスの無線ネットワーク状態をさらに変更することができる。例示として、図3AにGSMおよび次世代UMTS(ユニバーサルモバイルテレコミュニケーションシステム(Universal Mobile Telecommunication System))地上無線アクセスネットワーク(Terrestrial Radio Access Network)(E−UTRAN)セルラーネットワーク接続の無線リソース制御(RRC)接続モードを示す。本開示は、任意の種類のセルラーネットワークの無線ネットワーク状態の任意の組み合わせを企図する。図3Aの例では、電源投入後、移動体デバイスは、DCH(専用チャネル(Dedicated Channel))接続モード(351)またはFACH(下りアクセスチャネル(Forward Access Channel))接続モード(353)に遷移することによって基地局との接続を確立するまでIDLE状態(350)である。DCH接続モードおよびFACH接続に加えて、移動体デバイスはPCH(ページングチャネル(Paging Channel))接続モード(352)でも基地局に接続することができる。これらの接続モードのうち、DCH接続モードのデータ帯域幅が最も大きく、エネルギー消費が最も高い(例えば2MB/秒、200mA)可能性がある。FACH接続モードは、データ帯域幅はより小さいがエネルギー消費はDCH接続モードの約50%である(例えば4kB/秒、100mA)。PCH接続モードのデータ帯域幅はゼロであるが、エネルギー消費はDCH接続モードの1%〜2%である(例えばデータなし、2mA)。移動体デバイスは、基地局との接続を維持したまま、より高い電力およびより大きいデータ帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に遷移して(例えば図3Aの360、361および362)、エネルギー消費を節約することができる。遷移360、361、362は、タイマーを使用することによってトリガされ得る。例えば、基地局は、移動体デバイスがデータ転送セッションを完了した10秒後に移動体デバイスとの無線接続をより高い電力およびより大きいデータ帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に遷移させてもよい。移動体デバイスは、より低い電力およびより小さい帯域幅の接続状態への遷移要求(例えば3GPP TS25.331リリース8のCR3483R2に記載されているファストドーマンシー(fast dormancy)要求)を基地局に送信することにより、タイマーが満了するのを待たずに基地局との無線接続をより高い電力およびより大きい帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に能動的に遷移させることも可能である。
特定の実施形態では、通知モードマネージャ処理は、通知モードに基づいて第2の無線ネットワーク状態を決定してもよい。特定の実施形態では、通知モードマネージャ処理は、第2の無線ネットワーク状態の要求をセルラー基地局に送信して、基地局に移動体デバイスとセルラー基地局との間の接続を第2の無線ネットワーク状態に遷移させることができる。例えば、図3に示すように、通知モードマネージャ処理はユーザインタフェースモード(304)に基づいてスリープ通知モード(312)と決定することがある。スリープ通知モード中は、ユーザ要求がない限りサーバ120が移動体デバイスにメッセージを送信しないため、より低い電力およびより小さいデータ帯域幅のモードにして移動体デバイスのバッテリの寿命を節約することが望ましい。例えば、通知モードマネージャ処理は、基地局131にIDLE接続モード要求を送信して、基地局131に移動体デバイスと基地局131との間の無線接続をIDLE接続モードに遷移(322)させることができる。同様に、例えば図3に示すように、通知モードマネージャ処理はユーザインタフェースモード(303)に基づいてナッピング通知モード(311)と決定してもよい。通知
モードマネージャ処理は、基地局131にPCH接続モード要求を送信して、基地局131に移動体デバイスと基地局131との無線接続をPCH接続モードに遷移(321)させることができる。さらに他の例として、通知モードマネージャ処理は、図3に示すように、ユーザインタフェースモード(301または302)に基づいてトリクル通知モード(310)と決定してもよい。通知モードマネージャ処理は、基地局131にFACH接続モード要求を送信して、基地局131に移動体デバイスと基地局131との無線接続をFACH接続モードに遷移(320)させることができる。
前述のように、特定の実施形態は移動体デバイスのユーザインタフェースモードに基づいて移動体デバイスのための通知モードを決定することができる。特定の実施形態は、通知モードを示すメッセージをサーバに送信して、サーバに移動体デバイスに対して通知モードに基づいてメッセージを送信させることができる。例えば、サーバは通知モードがトリクル通知モードである場合、移動体デバイスにリアルタイムでメッセージを送信することができる。例えば、通知モードがナッピング通知モードである場合、サーバは移動体デバイスに10分おきにメッセージを送信することができる。通知モードに基づいて移動体デバイスに発信メッセージを送信することに加えて、特定の実施形態は図4に示すようにさらに発信メッセージのランク付けに基づいて移動体デバイスに発信メッセージを送信することができる。
特定の実施形態では、サーバ120がユーザの移動体デバイスから、移動体デバイスの通知モード(例えばトリクル通知モード、ナッピング通知モード)を含むメッセージを受信することができる(401)。特定の実施形態では、サーバ120はユーザの移動体デバイスから、バッテリの寿命、信号強度、無線ネットワークの利用可能性(WiFiまたは3G/4G)、デバイスが充電中か否かなどの移動体デバイスの健全性を含むメッセージを受信してもよく、サーバ120は移動体デバイスの通知モードを決定することができる。特定の実施形態では、移動体デバイスは移動体デバイスの通知モードを決定する要因、すなわち変動要素301〜306等をサーバ120に送信することができる。特定の実施形態では、サーバ120は移動体デバイスの通知モードを決定し、移動体デバイスに対して移動体デバイスの通知モードを調整する命令を送信する。特定の実施形態では、移動体デバイスが移動体デバイス自体の通知モードを決定するが、この場合も移動体デバイス自体のシステム健全性に関する情報を移動体デバイスがサーバ120に送信する。
メッセージはさらに、ユーザの識別子(例えばユーザ名、電話番号、電子メールアドレス)を含んでもよい。メッセージに応答して、サーバ120上で動作しているサーバ側の処理はユーザへの1または複数の発信メッセージを示す1または複数のメッセージサービス112にアクセスすることができる(402)。サーバ側の処理は、その1または複数の発信メッセージのための情報について、1または複数のメッセージサービス112にアクセスすることができる。例えば、発信メッセージのための情報は、発信メッセージの発信者の1または複数の識別子(例えばユーザ名、電話番号、電子メールアドレス)を含み得る。
特定の実施形態では、サーバ側の処理は、1または複数の発信メッセージのそれぞれの価値を決定することができる(403)。特定の実施形態では、サーバ側の処理は、1または複数の発信メッセージのそれぞれとユーザとの親和度またはソーシャル関連性に基づいて、すなわち各発信メッセージの発信者とユーザとの親和度に基づいて、1または複数の発信メッセージのそれぞれの価値を決定してもよい。例えば、サーバ側の処理は、1または複数の発信メッセージのそれぞれに親和度スコアを割り当ててもよい。例えば、サーバ側の処理は、発信メッセージの発信者がユーザの近親者(例えば親、兄弟姉妹)である場合にその発信メッセージに親和度スコア1.0を割り当て、発信メッセージの発信者がユーザと頻繁に通信している場合は親和度係数0.9を割り当て、発信メッセージの発信
者がソーシャルネットワーキングシステムのソーシャルグラフにおけるユーザの一次連絡先である場合、親和度係数0.7を割り当ててもよい。ソーシャルネットワーキングシステム上でのユーザ間のチャット、ウォール投稿、電子メールなどの対話も、ソーシャルネットワーキングシステムのユーザ間の親和度にスコアを付ける際に使用することができる。親和度スコア付けの評価方法については後述する。
特定の実施形態は、ユーザが移動体デバイスと対話している場合には移動体デバイスにより多くの発信メッセージを送信し、ユーザが移動体デバイスと活発に対話していない場合には、移動体デバイスにより少ない発信メッセージを送信してもよい。特定の実施形態では、サーバ側の処理は、通知モードと1または複数の発信メッセージのそれぞれの価値とに基づいて、移動体デバイスに少なくとも1つの発信メッセージを送信してもよい(404)。例えば、サーバ側の処理は、トリクル通知モード(例えばユーザが移動体デバイスで対話中)を示す移動体デバイスからのメッセージに応答して、所定の閾値(例えば0.4)より大きい親和度スコアを有する発信メッセージを選択し、選択した発信メッセージを移動体デバイスに送信することができる。一方、例えばナッピング通知モード(例えば移動体デバイスの移動中にユーザが移動体デバイスと対話していない状態)を示す移動体デバイスからのメッセージに応答して、サーバ側の処理は、より高い閾値(例えば0.8)を使用して親和度の高い発信メッセージ(例えばユーザにとって最も関連性の高いメッセージ)のみを選択し、この選択した親和度の高い発信メッセージを移動体デバイスに送信することができる。
最も高い親和度スコアを有する発信メッセージを移動体デバイスに送信することに加えて、特定の実施形態は、1または複数の残りの発信メッセージをキューに記憶し、後で移動体デバイスに送信してもよい。特定の実施形態では、サーバ側の処理が、1または複数の発信メッセージの価値と通知モードとに基づいて1または複数の発信メッセージのうちの1または複数を選択し、キューに記憶してもよい。例えば、サーバ側の処理は、通知モードがトリクル通知モードである場合、親和度スコアが0.4未満の発信メッセージを選択し、選択したメッセージをキューに記憶してもよい。例えば、サーバ側の処理は、通知モードがナッピング通知モードの場合、親和度スコアが0.8未満の発信メッセージを選択し、選択したメッセージをキューに記憶してもよい
サーバ側の処理は、キューに入れられた1または複数の発信メッセージのうちの少なくとも1つをより後の時点で移動体デバイスに送信することができる。例えば、サーバ側の処理は、少なくとも1つのキューに入れられた発信メッセージを所定の時間間隔で(例えば30分ごとに)移動体デバイスに送信してもよい。例えば、サーバ側の処理は、キューのサイズが所定の閾値よりも大きい場合(例えばキューに入っているメッセージが20個を超える場合)、キューに入れられた少なくとも1つの発信メッセージを移動体デバイスに送信してもよい。例えば、サーバ側の処理は、リアルタイム発信メッセージ(例えば通話)が移動体デバイスに送信されるときに、キューに入れられた少なくとも1つの発信メッセージを移動体デバイスに送信してもよい。例えば、サーバ側の処理は、親和度の高い発信メッセージ(例えば親和度スコアが0.8を超えるメッセージ)が移動体デバイスに送信されるときに、キューに入れられた少なくとも1つの発信メッセージを移動体デバイスに送信してもよい。すなわち、サーバ側の処理は、キューに入れられた少なくとも1つの発信メッセージを、他のリアルタイムまたは親和度の高い発信メッセージにピギーバックすることができる。
図4Aに、移動体デバイスの報告された通知モード、または代替として移動体デバイスの報告されたシステム健全性に基づいてメッセージをキューに入れ、移動体デバイスに送信する例示の方法を示す。ステップ405で、サーバ120上の1または複数のサーバ側の処理はメッセージサービス112から発信メッセージを受信することができる。前述のように、メッセージは移動体デバイスに送信する任意の種類の通知または通信であっても
よく、これにはインスタントメッセージ、友達リクエストおよびその承認、ユーザのウォールへの他のユーザによる書込み、ユーザの写真への他のユーザによるタグ付け、付近のユーザからのチェックイン、ユーザの友達からの近況メッセージなどが含まれるが、これらには限定されない。
ステップ406で、サーバ120上の1または複数のサーバ側の処理は、発信メッセージにスコアを割り当てる。前述のように、このスコアは親和度スコアに基づいて割り当てられてもよい。特定の実施形態では、親和度スコアは、ユーザがそのようなメッセージに対して有する相対的な関心度の予測であってもよい。そのような実施形態では、予測関数は、同じ種類のメッセージに対するユーザの過去の関り(エンゲージメント)に基づく機械学習アルゴリズムであってもよい。メッセージの親和度スコア付けについて、図5および図7を参照しながら詳細に記載する。特定の実施形態では、メッセージの所定のカテゴリ化に基づいてメッセージに価値を割り当てることができる。例えばインスタントメッセージ、ウォール投稿、または友達リクエストなど、特定のメッセージをすべてのユーザにとってより重要であるとみなし、その他のメッセージを重要度が有意により低いとみなしてもよい。特定の実施形態では、メッセージをリアルタイムメッセージと非リアルタイムメッセージに分類する。本開示は、個々の発信メッセージのメッセージスコアを計算する任意の適切な方法を企図する。
ステップ407で、サーバ120上の1または複数のサーバ側の処理は、新たにスコア付けされたメッセージを発信メッセージキューに追加し、そのスコアを、メッセージキュー内のすべてのメッセージのスコアの現在の合計に加算する。したがって、ステップ407ではキュースコアの合計はその特定のメッセージについて算出されたスコアだけ増加する。
ステップ408で、サーバ120上の1または複数のサーバ側の処理は、発信メッセージキュー内のすべてのメッセージのスコアの合計が所定の閾値を超えるか否かを判断する。閾値は、移動体デバイスから受信した通知モードメッセージまたは代替としてシステム健全性を示す情報に基づいて、1または複数のサーバ側の処理によってリアルタイムで調整されてもよい。特定の実施形態では、より高い電力消費通知モードは「より健全な」デバイスということになり、閾値を下げてもよい。例えば、移動体デバイスが、バッテリが完全に充電されていて、プラグ接続され、WiFiネットワークに接続されていると報告した場合、閾値をゼロに設定してもよく、その結果、サーバ120上のサーバ側の処理は移動体デバイスにほぼリアルタイムでメッセージをプッシュ送信することができる。反対に、移動体デバイスが、バッテリの寿命が10%未満であり、3Gネットワークのエッジにあると報告した場合、サーバ120上の1または複数のサーバ側の処理は、閾値を極めて高い数値、例えば100に増加させてもよい。特定の実施形態では、通知モードまたは移動体デバイスの状況を含むメッセージの受け取りをトリガとして割り込みを行い、それによって閾値を更新し、図4Aの処理を強制的にステップ408にジャンプさせることができる。したがって、このような実施形態では、デバイスが例えば3GアクセスのみのエリアからWiFiアクセスが可能なエリアに移動することによってデバイス自体の「健全性」が増加したと報告した場合、サーバ120上のサーバ側の処理は、移動体デバイスのための閾値を下げる方向に調整し、キューを送信すべきかを判定するためのチェックを行う。したがって、新たなメッセージが存在しないときでも、移動体デバイスの健全性または通知モードの変化をトリガとしてキューの送信を行うことができる。
ステップ408でサーバ120上の1または複数のサーバ側の処理が、発信メッセージキュー内のスコアの合計が閾値を超えたと判断した場合、サーバ側の処理は、発信メッセージキュー内のすべてのメッセージを移動体デバイスに送信し、キューを空にし、合計をクリアする。ステップ408で発信メッセージキュー内のメッセージのスコアの合計が閾
値を超えない場合、処理はステップ405に戻り、サーバ120上のサーバ側の処理は、移動体デバイスへの他の発信メッセージの受け取りを待つ。
図4Bに、重要度がより低いメッセージの送信を、より重要なメッセージの送信にピギーバックする他の例示の方法を示す。図4Aの方法と同様に、図4Bの方法は発信メッセージの相対的重要度と移動体デバイスの通知モードまたはデバイスの健全性に基づいて、発信メッセージの送信を調整する。
ステップ410で、サーバ120上の1または複数のサーバ側の処理は移動体デバイスへの発信メッセージを受信する。ステップ411で、サーバ120上のサーバ側の処理は、メッセージのタイムアウト(時間切れ)を計算する。特定の実施形態では、メッセージのタイムアウトは判定された重要度に反比例し、移動体デバイスの相対的健全性または通知モードに逆の関連性を示してもよい。例えば、特定のメッセージはタイムアウト値をゼロ(すなわち、メッセージが即座にほぼリアルタイムでユーザに送信される)とし得るほど重要な場合がある。例えば、「至急」の印の付けられたインスタントメッセージは、ゼロのタイムアウト値を有してもよい。反対に、単なる知人からの極めて低い値の状況メッセージは無限大のタイムアウト値を有していてもよくそのメッセージは決して単独では送信されない。特定の実施形態では、各発信メッセージのタイムアウト値は以下に述べるように親和度スコア付けによって決定されてもよく、タイムアウト値はメッセージの親和度に逆の関連性を示すようにされてもよい。個々のメッセージそれぞれのタイムアウト値は、デバイスの健全性または通知モードに対し逆の関連性を示してもよい。したがって、デバイスがDCHモードなどのプロミスキャス(高メッセージ)通知モードである場合、個々のメッセージのタイムアウト値が所定の要素分だけ短縮される。逆に、移動体デバイスが低メッセージ送信モードである場合、または不健全な状態(この場合も教示を目的として、低バッテリの寿命または低ネットワーク接続性)を報告した場合、各メッセージのタイムアウト期間を、1を超える所定のスケール係数を乗じたものにしてもよい。本開示は、個々の発信メッセージのタイムアウトの任意の適切な計算方法を企図する。
ステップ412で、発信メッセージはメッセージキューに記憶される。特定の実施形態では、サーバ120上の1または複数のサーバ側の処理は、発信メッセージキュー内の発信メッセージのそれぞれについて別々のタイマーを維持する。特定の実施形態では、サーバ側の処理は、単一のシステムタイマーを維持し、発信メッセージキュー内の各メッセージについてカウントダウン値と開始時刻とを記憶する。本開示は、いずれかの個々の発信メッセージがタイムアウト(時間切れ)したか否かを決定する任意の適切な方法を企図する。
ステップ413で、サーバ120上の1または複数のサーバ側の処理は、発信メッセージキュー内のいずれかのメッセージがタイムアウトしたか否かを判断する。特定の実施形態では、発信メッセージキュー内のいずれかのメッセージのタイムアウトをトリガとして、図4Bの方法をステップ414に直ちに分岐させる割り込み処理を開始させる。タイムアウトしたメッセージが存在しない場合、処理はステップ410に戻り、送信デバイスに送信する新たなメッセージの受信を待つ。
ステップ414で、発信メッセージキュー内のメッセージのいずれかがタイムアウトした場合、サーバ120上の1または複数のサーバ側の処理は、発信メッセージキュー内のすべてのメッセージを移動体デバイスに送信し、キューを空にする。次に、移動体デバイスへの次の発信メッセージの受信について処理が繰り返される。上記の各方法は、2つの例示のサーバ側メッセージ送信アルゴリズムを例示したに過ぎない。本開示は、メッセージの重要度、メッセージに対するユーザの親和度、デバイスの送信モードまたはデバイスの健全性に基づく他の方法も企図する。原則として、移動体デバイスは図3を参照しなが
ら説明した様々な要因(バッテリの寿命、ユーザの対話、ネットワーク接続など)に基づいて、メッセージを受信する資源コストを認識するのに対し、サーバは(ソーシャル要因および経験的関りに基づいて)ユーザに送信する情報またはメッセージの価値を認識する。移動体デバイスによって資源コストを通知された後、サーバは、その価値がコストを超える場合に移動体デバイスにメッセージを送信すべきか否かの判断に基づくことができる。本開示は、1つの情報の受信に関連付けられた資源コストの任意の適切な計算方法またはその計算の任意の適切な配分方法を企図する。本開示は、特定のユーザにとっての1つの情報の主観的価値もしくはすべてのユーザにとっての1つの情報の客観的価値の任意の適切な計算方法またはその計算の任意の適切な配分方法を企図する。
一実施形態では、ソーシャルネットワーキング環境で動作する処理が、親和度関数を実装するモジュールに対して特定のユーザの親和度の尺度を要求する。このモジュールは、一実装形態では、予測関数の重み付きの組を組み合わせる(例えば加算する)ことによって、要求された親和度の尺度を計算する。ここで、各予測関数はユーザが異なるアクションを行うか否かを予測する関数である。重みは、親和度の尺度を要求する処理によって提供されてもよく、これによって要求側の処理は予測関数に異なる重みを付けることができる。この意味で親和度関数は要求側の処理がその処理自体の目的に合わせて調整可能である。一実装形態では、意図した受信者に対する発信メッセージの親和度スコアを計算する目的で親和度を計算することができる。
予測関数は、ユーザが特定のアクションを行うか否かを、そのアクションに対するユーザの関心に基づいて予測することができる。例えば、予測関数は、ユーザの過去のアクティビティ(例えば前述のソーシャルネットワーキングシステム機能を使用した他のユーザとの対話など)に基づいて導き出すことができる。さらに、予測関数は、ユーザの過去のアクティビティによって与えられた信号の強度を時間とともに減衰させる減衰係数を含むことができる。予測関数は、任意の数のアクションを予測することができ、アクションはソーシャルネットワーキングシステムの内部または外部のアクションであってもよい。例えば、これらのアクションは、メッセージ、コンテンツの投稿、およびコンテンツへのコメントなどのユーザの様々な種類の通信、他の連絡先のプロファイルの閲覧、および他の連絡先によって投稿された写真およびコンテンツの閲覧などユーザの様々な種類の観察アクション、ならびに、同じ写真内のタグ付け、同じ場所へのチェックインおよび同じイベントへの参加などの2つ以上のユーザに関する様々な種類の同時発生情報を含み得る。予測関数は、過去のアクティビティおよび過去のユーザ応答、またはユーザを様々な選択肢および測定応答に触れさせることによってユーザから育てられた(farmed)データで学習した機械学習アルゴリズムを使用して決定されてもよい。
所定の状況でユーザがとる可能性の高いアクションを予測するために、ソーシャルネットワーキングシステム上または外部の任意の処理が、1組の重みを提供することによってユーザの親和度の尺度を要求することができる。親和度の尺度は、ソーシャルネットワーキングシステム内の他のユーザ、コンテンツ、アクション、広告またはその他任意の対象に対するユーザの関心を反映することができる。重みは、2進数またはより一般的に任意の実数であってもよい。一実装態様では、例えばソーシャルネットワーキングシステムによって送信または中継された対象ユーザの通信デバイスへのメッセージを処理して、その対象ユーザとメッセージとの親和度を計算してもよい。親和度の値は、通信デバイスに送信する前にメッセージの後に付加され得る。他の実装態様では、通信デバイス上で実行されている処理が親和度モジュールにアクセスして親和度の尺度を要求してもよい。一部の実装態様では、通信デバイスは通信デバイスの対象ユーザと(通信デバイス上にローカルに記憶されているかまたはソーシャルネットワーキングシステム上に遠隔に記憶された)対象ユーザの連絡先データベースで識別される1または複数の他のユーザとの親和度を要求することができる。その後の同期処理で、修正された親和度値を得ることができる。通
信デバイスはこれらの親和度値をそれぞれのユーザからのメッセージのために使用することができる。他の実装態様では、通信デバイスは対話をローカルで監視し、親和度値をローカルで計算することができる。
図5は、ソーシャルネットワーキングシステムにおけるユーザの親和度の尺度を計算するための機能を示すブロック図である。所定の状況でユーザが行いたいと考える可能性のある1組のアクションを示す親和度の尺度615を計算するために、予測関数610に重み105を適用し、次にそれらを組み合わせて親和度の尺度615を得る。図5には3つの予測関数610が示されているが、他の実施形態では任意の数の予測関数を採用することができる。また、図5の実施形態では重み付けされた予測関数610は線形的に組み合わされる。異なる実施形態では、調和平均、二乗平均、および相乗平均を含む、他の形態の組み合わせを使用することができる。また、ユーザのアクションを予測する前に様々な重み605を有する親和度の複数の尺度615を計算してもよい。
親和度関数の重み605によって、ソーシャルネットワーキングシステム環境内の様々な処理が親和度関数を異なる目的のために使用することが可能になる。例えば、閲覧者の友達からのソーシャルエンドースメントとともに広告を提供する処理では、広告アルゴリズムが親和度の尺度615関数を使用して、ソーシャルエンドースメントにおいてユーザの連絡先のいずれについて言及するか、またはエンドースメントにおいてどのような種類のアクションについて言及するかを決定することができる。親和度の尺度615は、ユーザが他のユーザによって投稿されたコンテンツを閲覧することにどの程度関心があるかを示すこれらの予測子関数610、および、ソーシャルエンドースメントにおいて言及可能な様々なアクションにユーザがどの程度関心があるかを示す1つまたは複数の予測関数610に基づくことができる。したがって広告アルゴリズムは、これらの予測関数610に比較的大きな重みを与え、それによって、その結果としての親和度の尺度によって、どのソーシャルエンドースメントがその閲覧ユーザとってより関心のあるものかをより正確に判定されるようにする。次に広告アルゴリズムは、その結果の親和度の尺度を使用してソーシャルエンドースメントを選択し、それによって広告のコンバージョンの尤度を向上させることができる。
第2の例として、ユーザ間の通信を中継するメッセージングアプリケーションのための処理において、ソーシャルアルゴリズムが親和度の尺度615関数を使用して、特定の送信側ユーザによって送信されたメッセージに対するユーザの関心の高さを判断することができる。この目的のための親和度の尺度615は、ユーザの連絡先によって投稿されたコンテンツを閲覧することにユーザがどの程度関心があるか、および/またはユーザ同士が一般にどれ程度の頻度でメッセージを送信するかを示す予測関数610、および、ユーザが様々な種類のメッセージを投稿することまたは様々な種類のメッセージにアクセスすることにどの程度関心があるかを示す1または複数の予測関数610に基づくことができる。したがって、ソーシャルアルゴリズムはこれらの予測関数610に比較的高く重みを付け、それによってその結果の親和度の尺度によって、どのメッセージがその閲覧ユーザにとってより関心のあるものかを正確に判定されるようにする。この親和度関数は、重み付けされた予測関数610によって可能になった高い調整可能な特性のため、多くの異なる目的に使用することができる。
図6は、一実施形態によるソーシャルネットワーキングシステムの環境を示すハイレベルブロック図である。図6には、ネットワーク708によって接続された、ソーシャルネットワーキングシステム700、ユーザデバイス702、および外部サーバ704が示されている。ソーシャルグラフ718は、各ユーザとソーシャルネットワーキングシステム100の他のユーザとのつながりを記憶する。ソーシャルグラフ718は、一部の実施形態では二次つながりを記憶することもできる。したがってつながりは、直接的または間接
的であってもよい。例えば、ユーザAがユーザBの一次連絡先であるがユーザCの一次連絡先ではなく、BはCの一次連絡先である場合、Cはソーシャルグラフ718上でAの二次連絡先である。
アクションストア740は、ソーシャルネットワーキングシステム700のユーザによって行われたアクションを、それらのアクションに関連付けられた時刻を示す標識およびアクションに関連する任意のオブジェクトへの参照とともに記憶する。さらに、アクションストア740は、アクションの指定カテゴリの統計も記憶することができる。例えば、所与のユーザについて、アクションストア740は30日間にユーザが行ったウォール投稿数、ユーザが送信したメッセージの数、ユーザが30日間に投稿した写真の数、30日間にこのユーザのコメントを受信した異なるユーザの人数を含むことができる。アクションストア740は、ユーザAとユーザBという2つのユーザ間の所与のつながりについて、AからBへのプロファイルページの閲覧回数、AからBへの写真ページの閲覧回数、AからBへのメッセージ数、およびAとBが同じ写真内でタグ付けされた回数などのアクションを含むことができ、これらのアクションはタイムスタンプと関連付けられることができ、または期限(例えば24時間、90日など)によってフィルタリングされてもよい。アクションストア740に記録されるアクションは、育てられた(farmed)アクション、すなわちソーシャルネットワーキングシステム700がユーザに対して提案したアクションの選択肢の提示に応答してユーザが行うアクションであってもよい。
予測モジュール720は、ユーザが1組の対応するアクションを行うか否かを予測する予測関数610の組を計算する役割を担う。前述のように、各予測関数610はその予測関数610に関連付けられた特定のアクションに対するユーザの関心を表すことができる。ユーザの過去のアクティビティを同じアクティビティに対するユーザの将来の関心を示すものとして使用することができる。一部の実施形態では、予測関数610は、アクションに関連付けられたユーザの過去のアクティビティを使用して学習した機械学習アルゴリズムを使用して生成される。したがって予測モジュール720は、1組のアクションのそれぞれについて予測関数610を提供し、予測関数610はユーザの過去のアクティビティを入力とし、対応するアクティビティにユーザが関る尤度の尺度を出力する。
一部の実施形態では、予測関数610のうちの1または複数は、ユーザの過去のアクティビティからの信号の強度が時間の経過とともに減衰する、減衰係数を使用することができる。さらに、異なる予測関数610が過去のアクティビティを異なるレート(割合)で減衰させてもよい。例えば、新たなつながりの追加などの所定のユーザアクティビティは、他のユーザの近況にコメントするなど、より一時的な関心を示す他の種類のアクティビティよりも持続的な関心を示す。したがって、予測関数610は、そのアクティビティが時間の経過とともにどのように関連性が少なくなっていくかについての認識に基づいて過去のアクティビティの効果を減衰させることができる。この目的のために様々な減衰のメカニズムを使用し得る。例えば、予測関数610は、指数関数的減衰などの数学的な関数を使用して、ユーザの挙動に関する統計値を減衰させてもよい。他の実施形態では、24時間または30日などの特定の時間窓内で発生したユーザの挙動に関する統計値のみを選択することによって減衰が実装される。
一実施形態では、予測関数610は、式(1)に示す2つのアフィン関数の比として実現される。この分子のアフィン関数および分母のアフィン関数は、ユーザの過去のアクティビティの統計値を入力とする。
上式で
Pは予測関数610、
はi=0、1、2、...、Nについての分子のアフィン関数における係数、
はi=0、1、2、...、Mについての分母のアフィン関数における係数、
はi=1、2、...、N+Mについての予測関数Pに関連するユーザの過去のアクティビティの統計値である。
分母のアフィン関数は、分子のアフィン関数の正規化を表すことができる。例えば、ユーザのコメントの数を、様々な統計値の中でも、ユーザがソーシャルネットワーキングシステム700上で活動的であった回数によって正規化してよい。具体的には、i=0、1、2、...、Mについてbを変更することによって正規化パターンを変更することができる。一部の実施形態では、i=0、1、2、...、Nについての係数aおよびi=0、1、2、...、Mについての係数bを、機械学習によって求める。機械学習は予測モジュール720で実装可能である。特定の実施形態では、教師あり機械学習アルゴリズムは、統計的に有意な数のユーザに対していくつかの選択肢を提供し、それらのユーザの応答を監視することによるファーミング(farming)で得た学習データとともに使用される。他の実施形態では、過去のユーザアクティビティとアクションの選択肢に対する過去の応答とに全体的に基づいて教師あり機械学習アルゴリズムを学習させる。予測関数610は非線形であってもよい。実施形態の一例は家族の予測関数610を実装し、その場合、予測関数610は家族のメンバについての「if−then」構文を含む。すなわち予測関数610は、それが親と子のいずれについて計算されるかによって異なるように計算される。
ソーシャルネットワーキングシステム700における所定の予測関数610は、ソーシャルネットワーキングシステム700におけるユーザの通信に関連するアクションを予測することができる。通信に特に関連する統計は、ブロードキャストデータと通信データを含み得る。ブロードキャストデータは、例えば、一定期間にユーザが投稿した写真の数、一定期間にユーザがアプリケーションを通じて行った投稿の数、およびユーザが他のユーザのグループに対して投稿またはその他の方法で配信したその他任意の通信が含まれ得る。通信データとしては、例えば、一定期間中にユーザが「いいね!」と表明した回数、一定期間中にユーザが投稿したコメントの数、およびユーザの通信アクティビティに関するその他の任意の情報などがある。
同様に、ソーシャルネットワーキングシステム700における所定の予測関数610は、ソーシャルネットワーキングシステム700におけるユーザによるコンテンツ観察に関連するアクションを予測してもよい。観察に特に関連する統計には、例えば一定期間にユーザが他のユーザのプロファイルページを閲覧した回数、一定期間中にユーザが閲覧した写真の数、一定期間中のソーシャルエンドースメントを含む広告の閲覧回数、およびユーザによるコンテンツの閲覧を含むその他任意のアクティビティなどがある。
最後に、ソーシャルネットワーキングシステム700における所定の予測関数610は、ユーザとソーシャルネットワーキングシステムの1または複数の他のユーザとの同時発生に関連するアクションを予測することができる。同時発生に特に関連する統計値としては、例えば同じ写真内で2つ以上のユーザがタグ付けされた割合、同じ場所にチェックイ
ンした割合、または同じイベントに出席する予定であると(例えば出欠返信依頼によって)確認した割合、および複数のユーザに関連するソーシャルネットワーキングシステム内のアクションまたはオブジェクトを含む他の任意のアクティビティの割合などが含まれ得る。
親和度モジュール760は、予測関数610を使用して、ソーシャルネットワーキングシステム700からのユーザに関する入力データに基づいて親和度の尺度615を提供する。図5の実施形態では、親和度モジュール760は式(2)に示すように予測関数を線形に加算する。ただし、他の実装形態も同様に実現可能である。
上式で
Aは要求された親和度の尺度615、
はi=0、1、2、...、sについてのソーシャルネットワーキングシステム700におけるs番目の予測関数610、
βはi=1、2、...、sについてのソーシャルネットワーキングシステム100におけるs番目の予測関数610に割り当てられた重み605である。
図7に、要求に基づいてユーザの親和度の尺度615を計算する方法の一実施形態を示す。ソーシャルネットワーキングシステム700は、まず、処理から、ユーザの親和度の尺度615の要求を、様々な予測関数610に割り当てられる重み605とともに受信する(771)。要求は、親和度スコアが所望されるメッセージ、またはメッセージから抽出された1または複数の属性を含むことができる。次に、ソーシャルネットワーキングシステム700は、予測モジュール772においてユーザの予測関数610を計算する(772)。以前に計算された予測関数610を組み合わせて総合的な親和度の尺度615を求め(773)、次にそれを要求側処理に提供する(774)。
図8に、一部の実施形態とともに使用可能な例示のコンピュータシステム800を示す。本開示は、任意の適合する数のコンピュータシステム800を企図する。本開示は、任意の適切な物理的形態であるコンピュータシステム800を企図する。例として、コンピュータシステム800は、組込コンピュータシステム、システムオンチップ(SOC)、デスクトップコンピュータシステム、モバイルコンピュータシステム、ゲーム機、メインフレーム、コンピュータシステム網、サーバ、またはこれらのうちの2以上の組み合わせであってもよいが、これらには限定されない。必要に応じて、コンピュータシステム800は1または複数のコンピュータシステム800を含むことができ、単独型または分散型、複数の場所に亘って設置されたもの、複数のマシンに跨って設置されたもの、または1または複数のネットワーク内の1または複数のクラウドコンポーネントを含むクラウドにあるものでもよい。必要に応じて、1または複数のコンピュータシステム800が、実質的な空間的または時間的な限定なしに、本開示に記載または図示する1または複数の方法の1または複数のステップを実行することができる。例として、1または複数のコンピュータシステム800は、本開示に記載または図示する1または複数の方法の1または複数のステップを、リアルタイムでまたはバッチモードで実行してもよいが、これには限定されない。1または複数のコンピュータシステム800は、必要に応じて、本開示に記載または図示する1または複数の方法の1または複数のステップを、異なる時点または異なる場所で実行してもよい。
特定の実施形態では、コンピュータシステム800は、プロセッサ802、メモリ804、ストレージ806、入出力(I/O)インタフェース808、通信インタフェース810、およびバス812を含む。特定の実施形態では、プロセッサ802は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを備える。例として、プロセッサ802は命令を実行するために、内部レジスタ、内部キャッシュ、メモリ804またはストレージ806から命令を取り出し(またはフェッチし)、デコードして実行し、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806に書き込むことができるが、これには限定されない。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1または複数の内部キャッシュを含んでもよい。特定の実施形態では、メモリ804は、プロセッサ802が実行するための命令またはプロセッサ802が操作するためのデータを記憶するためのメインメモリを含む。例として、コンピュータシステム800は、ストレージ806からメモリ804に命令をロードすることができるが、これには限定されない。プロセッサ802は、次に、命令をメモリ804から内部レジスタまたは内部キャッシュにロードすることができる。プロセッサ802は命令を実行するために、内部レジスタまたは内部キャッシュから命令を取り出し、デコードすることができる。命令の実行中または実行後、プロセッサ802は1または複数の結果(中間結果または最終結果でもよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次に、プロセッサ802はこれらの結果の1または複数をメモリ804に書き込んでもよい。1または複数のメモリバス(各バスがアドレスバスとデータバスとを含み得る)によって、プロセッサ802をメモリ804に組み合わせることができる。バス812は、以下に述べるように、1または複数のメモリバスを含み得る。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)が、プロセッサ802とメモリ804との間に存在し、プロセッサ802によって要求されるメモリ804へのアクセスを容易にする。特定の実施形態では、メモリ804はランダムアクセスメモリ(RAM)を含む。このRAMは、必要に応じて揮発性メモリであってもよい。必要に応じて、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。
特定の実施形態では、ストレージ806はデータまたは命令のための大容量ストレージを含む。例として、ストレージ806はHDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープまたはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2以上の組み合わせを含み得るが、これらには限定されない。ストレージ806は、必要に応じて、取り外し可能または取り外し不能な(または固定)媒体を含むことができる。ストレージ806は、必要に応じて、コンピュータシステム800の内部ストレージでも外部ストレージでもよい。特定の実施形態では、ストレージ806は不揮発性の固体メモリである。特定の実施形態では、ストレージ806は読み取り専用メモリ(ROM)を含む。必要に応じて、このROMはマスクプログラム型ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、またはフラッシュメモリまたはこれらのうちの2以上の組み合わせであってもよい。
特定の実施形態では、I/Oインタフェース808は、コンピュータシステム800と1または複数のI/Oデバイスとの間の通信のための1または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム800は、必要に応じて、これらのI/Oデバイスの1または複数を含み得る。これらのI/Oデバイスの1または複数は、人間とコンピュータシステム800との間の通信を可能にすることができる。一例として、I/Oデバイスはキーボード、マイクロフォン、ディスプレイ、タッチスクリーン、マウス、スピーカ、カメラ、その他の適切なI/Oデバイス、またはこれらのうちの2以上の組み合わせを含むことができるが、これらには限定され
ない。I/Oデバイスは、1または複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスおよびそれらのための任意の適切なI/Oインタフェース808を企図している。必要に応じて、I/Oインタフェース808は、プロセッサ802がこれらのI/Oデバイスの1または複数を駆動することができるようにする1または複数のデバイスドライバまたはソフトウェアドライバを含み得る。I/Oインタフェース808は、必要に応じて、1または複数のI/Oインタフェース808を含むことができる。本開示では、特定のI/Oインタフェースについて記載し、図示しているが、本開示は任意の適切なI/Oインタフェースを企図している。
特定の実施形態では、通信インタフェース810は、コンピュータシステム800と1もしくは複数の他のコンピュータシステム800または1もしくは複数のネットワークとの間の通信(例えばパケット方式の通信など)のための1または複数のインタフェースを提供するハードウェア、ソフトウェアまたはその両方を含む。一例として、通信インタフェース810は、イーサネット(登録商標)(Ethernet(登録商標))またはその他の有線ネットワークとの通信のためのネットワークインタフェースコントローラ(NIC)、または、Wi−Fiネットワークなどの無線ネットワークとの通信のための無線NIC(WNIC)を含み得るが、これらには限定されない。本開示では、任意の適切なネットワークおよびそのための任意の適切な通信インタフェース810を企図している。一例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットの1もしくは複数の部分、あるいはこれらのうちの2以上の組み合わせを含み得るが、これらには限定されない。これらのネットワークのうちの1または複数のネットワークの1または複数の部分は、有線または無線であってもよい。例として、コンピュータシステム800は、無線PAN(WPAN)(例えばBluetooth(登録商標)WPAN)、Wi−Fiネットワーク(例えば802.11a/b/g/n Wi−Fiネットワーク)、Wi−Maxネットワーク、セルラーネットワーク(例えばグローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications:GSM)ネットワーク、ロングタームエボリューション(Long Term Evolution:LTE)ネットワーク)、またはその他の適切な無線ネットワーク、あるいはこれらのうちの2以上の組み合わせと通信することができる。
特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに結合するハードウェア、ソフトウェアまたはその両方を含む。一例として、バス812は、アクセラレーテッドグラフィクスポート(Accelerated Graphics
Port:AGP)またはその他のグラフィクスバス、エンハンストインダストリースタンダードアーキテクチャ(Enhanced Industry Standard Architecture:EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HyperTransport:HT)相互接続、インフィニバンド(InfiniBand)相互接続、ローピンカウント(LPC)バス、メモリバス、ペリフェラルコンポーネントインターコネクトエクスプレス(Peripheral Component Interconnect Express)またはPCI−Expressバス、シリアルアドバンストテクノロジーアッタチメント(serial advanced technology attachment:SATA)バス、インターインテグレーテッドサーキット(Inter−Integrated Circuit:I2C)バス、セキュアデジタル(SD)メモリインタフェース、セキュアデジタル入出力(SDIO)インタフェース、ユニバーサルシリアルバス(USB)バス、汎用入出力(GPIO)バス、またはその他の適切なバスあるいはこれらのうちの2以上の組み合わせであってもよいが、これらには限定されない。バス812は、必要に応じて1または複数
のバス812を含み得る。
上述のクライアント側機能は、実行されるとプログラマブルプロセッサに上述の操作を実装させるコンピュータ可読記憶媒体に記憶された一連の命令として実装可能である。移動体デバイス122は様々なハードウェアおよびコンピューティングシステムで実装可能であるが、図9に様々な特定の実施形態によるクライアントまたは移動体デバイスの例示のコンピューティングプラットフォームの主要構成要素の概略図を示す。特定の実施形態では、コンピューティングプラットフォーム902は、コントローラ904、メモリ906および入出力サブシステム910を含むことができる。特定の実施形態では、コントローラ904は、命令を実行し、コンピューティングプラットフォームに関連付けられた操作を行うように構成された1または複数のプロセッサおよび/あるいは1または複数のマイクロコントローラを含み得る。様々な実施形態では、コントローラ904は、シングルチップ、マルチプルチップならびに/もしくは、1または複数の集積回路およびプリント回路基板を含むその他電気構成要素として実装可能である。必要に応じ、コントローラ904は、命令、データまたはコンピュータアドレスの一時的なローカルストレージとしてキャッシュメモリユニットを含んでもよい。コントローラ904は、例えばメモリから取り出した命令を使用して、コンピューティングプラットフォーム902の構成要素間での入出力データの受信および操作を制御することができる。一例として、コントローラは904は、例えば二次元/三次元グラフィクス処理、画像処理、または映像処理のためなど、コンピューティングプラットフォーム902の特定の処理タスク専用の1または複数のプロセッサあるいは1または複数のコントローラを含み得る。
コントローラ904は、適切なオペレーティングシステムと協働して、コンピュータコードの形態の命令を実行し、データを生成および使用するように動作することができる。一例として、オペレーティングシステムは、ウィンドウズ(Windows)、Mac、またはUnix(登録商標)またはLinux(登録商標)、シンビアン(Symbian)ベースなどの適切なオペレーティングシステムであってもよいが、これらには限定されない。オペレーティングシステム、その他のコンピュータコードおよび/またはデータは、コントローラ904に動作可能に結合されたメモリ906内に物理的に記憶されてもよい。
メモリ906は、1または複数の記憶媒体を含むことができ、一般に、コンピューティングプラットフォーム902が使用するコンピュータコード(例えばソフトウェアおよび/またはファームウェア)およびデータを記憶する場所を提供する。例として、メモリ906は、読み取り専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)を含む様々な有形のコンピュータ可読記憶媒体を含み得る。当技術分野で周知のように、ROMはコントローラ904に対して一方向にデータおよび命令を転送するように動作し、RAMは典型的にはデータおよび命令を双方向に転送するために使用される。メモリ906は、コントローラ904に双方向に結合された適切な形態のメモリ、特に例えばハードディスクドライブ(HDD)、半導体ドライブ(SSD)、フラッシュメモリカード(例えばセキュアデジタルすなわちSDカード)などの形態の、1または複数の固定ストレージデバイスも含み得る。情報は、必要に応じてコンピューティングプラットフォーム902に装着または搭載される1または複数の取り外し可能な記憶媒体上にあってもよい。一例として、多数の適切なメモリカード(例えばSDカード)のいずれも、コンピューティングプラットフォーム902に一時的または永続的に装着されてもよい。
入出力サブシステム910は、コントローラ904に動作可能に接続された1または複数の入出力デバイスを含み得る。例えば、入出力サブシステムは、キーボード、マウス、1または複数のボタン、および/または、ディスプレイ(例えば液晶ディスプレイ(LCD)、またはその他の任意の適切な表示技術)を含み得る。一般に、入力デバイスは、外
部からコンピューティングプラットフォーム902にデータ、コマンドおよび応答を転送するように構成される。ディスプレイは一般に、コンピューティングプラットフォーム902のユーザと移動体デバイス上で動作するオペレーティングシステムまたはアプリケーションとの間の操作性のよい視覚インタフェースを提供するグラフィカルユーザインタフェース(GUI)を表示するように構成される。一般に、GUIはプログラム、ファイルおよび操作選択項目にグラフィカルイメージを提示する。操作中、ユーザは、そのグラフィカルイメージ関連付けられた機能および作業を開始するために、ディスプレイ上に表示された様々なグラフィカルイメージを選択し有効化することができる。入出力サブシステム910は、タッチパッドやタッチスクリーンなどのタッチ方式のデバイスも含み得る。タッチパッドは、ユーザのタッチ方式の入力を検出する表面を備えた入力デバイスである。同様に、タッチスクリーンはユーザのタッチ入力の存在および場所を検出するディスプレイである。入出力システム910は、2回または3回の指のタッチなど、複数のタッチ入力の存在、場所および移動を識別可能なデュアルタッチまたはマルチタッチディスプレイまたはタッチパッドも含み得る。
特定の実施形態では、コンピューティングプラットフォーム902はさらに、コントローラ904に動作可能に接続されてコンピューティングプラットフォーム902の様々な機能をサポートするオーディオサブシステム912、カメラサブシステム912、無線通信サブシステム916、センササブシステム918、および/または有線通信サブシステム920を含み得る。例えば、オーディオサブシステム912は、スピーカ、マイクロフォン、および音声信号を処理するように構成されたコーデックモジュールを含み、音声認識、音声再生、デジタル録音、および電話機能などの音声対応機能をサポートするために使用することができる。例えば、カメラサブシステム912は、光学センサ(例えば電荷結合素子(CCD)イメージセンサ)を含み、写真撮影やビデオ録画などのカメラ機能をサポートするために使用されてもよい。有線通信サブシステム920は、例えば、ファイル転送用のユニバーサルシリアルバス(USB)ポート、またはローカルエリアネットワーク(LAN)への接続用のイーサネット(Ethernet)ポートを含み得る。さらに、コンピューティングプラットフォーム902は、電源932によって電力供給されてもよい。
無線通信サブシステム916は、1または複数の無線ネットワーク、例えば、無線PAN(WPAN)(例えばBluetooth)、Wi−Fiネットワーク(例えば802.11a/b/g/nネットワーク)、Wi−Maxネットワーク、セルラーネットワーク(例えばグローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications:GSM)ネットワーク、ロングタームエボリューション(Long Term Evolution:LTE)ネットワーク)などを通じて動作するように設計され得る。さらに、無線通信サブシステム916は、コンピューティングプラットフォーム902を他の無線デバイスの基地局として構成することができるように、ホストプロトコルを含んでもよい。その他の入出力デバイスとして、デバイスの向きを検出するために使用可能な加速度計を含み得る。
センササブシステム918は、付加的な入力を実現し、コンピューティングプラットフォーム902の複数の機能をサポートする1または複数のセンサデバイスを含んでもよい。例えば、センササブシステム918は、位置測定用のGPSセンサ、高度測定用の高度計、移動体デバイスの向き測定用の運動センサ、カメラサブシステム914による写真撮影機能用の光センサ、周囲温度測定用の温度センサ、および/またはセキュリティアプリケーション(例えば指紋リーダ)用のバイオメトリックセンサを含んでもよい。
特定の実施形態では、コンピューティングプラットフォーム902の様々な構成要素が1または複数のバス(ハードウェアおよび/またはソフトウェア)によって、動作可能に
互いに接続されていてもよい。例として、1または複数のバスは、アクセラレーテッドグラフィクスポート(Accelerated Graphics Port:AGP)またはその他のグラフィクスバス、フロントサイドバス(FSB)、ハイパートランスポート(HyperTransport:HT)相互接続、インダストリースタンダードアーキテクチャ(ISA)バス、インフィニバンド(InfiniBand)相互接続、ローピンカウント(LPC)バス、メモリバス、ペリフェラルコンポーネントインターコネクトエクスプレス(Peripheral Component Interconnect Express)PCI−Expressバス、シリアルアドバンストテクノロジーアッタチメント(serial advanced technology attachment(SATA)バス、インターインテグレーテッドサーキット(Inter−Integrated Circuit(I2C)バス、セキュアデジタル(SD)メモリインタフェース、セキュアデジタル入出力(SDIO)インタフェース、ユニバーサルシリアルバス(USB)バス、汎用入出力(GPIO)バス、アドバンストマイクロコントローラバスアーキテクチャ(Advanced Microcontroller Bus Architecture:AMBA)バスまたはその他適切なバスあるいはこれらのうちの2以上の組み合わせであってもよいがこれらには限定されない。
本開示でコンピュータ可読記憶媒体という場合、それは1または複数の非一時的な有形のコンピュータ可読記憶媒体処理構造を包含する。一例として、コンピュータ可読記憶媒体は、必要に応じて、半導体ベースまたはその他の集積回路(IC)(例えばフィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、半導体ドライブ(SSD)、RAMドライブ、セキュアデジタルカード、セキュアデジタルドライブ、またはその他適切なコンピュータ可読記憶媒体、あるいはこれらのうちの2以上の組み合わせを含むことができるが、これらには限定されない。本開示において、コンピュータ可読記憶媒体という場合、それは米国特許法101条(35U.S.C.§101)の保護の対象として適格でない媒体を含まない。本開示において、コンピュータ可読記憶媒体という場合、それは米国特許法101条の保護の対象として適格でない限りにおいて、信号送信(電気信号または電磁信号自体の伝播など)の一時的形態を含まない。コンピュータ可読非一時的記憶媒体は、必要に応じて、揮発性、不揮発性または、揮発性と不揮発性の組み合わせであってもよい。
本開示において、「または(or)」は、別様に明記する場合または文脈により別様に示される場合を除き、包含的であり、排他的ではない。したがって、本開示において「AまたはB」は、別様に明記する場合または文脈により別様に示される場合を除き、「AまたはB、あるいはその両方」を意味する。また、「および(and)」は、別様に明記する場合または文脈により別様に示される場合を除き、共同と個別的の両方である。したがって、本開示において「AおよびB」は、別様に明記する場合または文脈により別様に示される場合を除き、「AとBとが共同して、またはAとBとが個別に」であることを意味する。
本開示は、本開示に記載の例示の実施形態に対する、当業者であれば理解されると考えられるすべての変更、代替、変形、改変および修正を包含する。さらに、添付の特許請求の範囲において、特定の機能を、実行するように適合化された(adapted to)、実行するように設定された(arranged to)、実行可能な(capable
of)、実行するように構成された(configured to)、実行可能にされた(enabled to)、実行するように動作可能な(operable to)、または、実行するように作動可能な(operative to perform)デバ
イスまたはシステム、またはデバイスもしくはシステムの構成要素という場合、それはデバイス、システム、構成要素またはその特定の機能が起動、オン、またはロック解除されているか否かにかかわらず、そのデバイス、システムまたは構成要素がそのように適合化され、設定され、可能であり、構成され、可能にされ、動作可能であり、または作動可能である限りにおいて、そのデバイス、システム、構成要素を包含する。

Claims (20)

  1. 1または複数のコンピューティングデバイスによって、
    第1のユーザの移動体デバイスから、該移動体デバイスのメッセージを受け付けるための資源コストを含む第1のメッセージを受信する、第1のメッセージ受信ステップと、
    前記第1のユーザに対する1または複数の発信メッセージを示す1または複数のサービスにアクセスする、サービスアクセスステップと、
    前記1または複数の発信メッセージのそれぞれの価値を決定する、発信メッセージ価値決定ステップと、
    前記1または複数の発信メッセージを発信メッセージキューに入れる、発信メッセージをキューに入れるステップと、
    前記資源コストと前記1または複数の発信メッセージのそれぞれの価値とに基づくトリガ条件を検出すると、前記発信メッセージキュー内のすべてのメッセージを前記移動体デバイスに送信する、送信ステップと、からなる方法。
  2. 前記発信メッセージ価値決定ステップはさらに、前記1または複数の発信メッセージのぞれぞれと前記第1のユーザとの間の親和度に基づく、請求項1に記載の方法。
  3. 前記発信メッセージをキューに入れるステップは、前記発信メッセージキュー内のすべてのメッセージの価値の合計を計算するを含み、前記トリガ条件は、該合計が所定の閾値を超えることを含む、請求項1に記載の方法。
  4. 前記所定の閾値は、前記資源コストに基づく、請求項3に記載の方法。
  5. 前記発信メッセージ価値決定ステップは、前記1または複数の発信メッセージのそれぞれにタイムアウト期間を割り当てることを含む、請求項1に記載の方法。
  6. 前記1または複数の発信メッセージのそれぞれの前記タイムアウト期間は、前記第1のユーザと前記1または複数の発信メッセージのそれぞれとの間の計算された親和度と逆相関する、請求項5に記載の方法。
  7. 前記1または複数の発信メッセージのそれぞれの前記タイムアウト期間はさらに、前記資源コストに基づくスケーリング係数によって増減される、請求項6に記載の方法。
  8. 前記トリガ条件は、前記発信メッセージキュー内の前記1または複数のメッセージの前記タイムアウト期間のうちのいずれか1つが経過した場合にトリガされる、請求項5に記載の方法。
  9. 前記資源コストは、前記移動体デバイスのシステム健全性を含む、請求項1に記載の方法。
  10. 前記移動体デバイスの前記システム健全性は、前記移動体デバイスのバッテリ状態を含む、請求項9に記載の方法。
  11. 非一時的なコンピュータ可読媒体であって、
    1または複数のコンピューティングデバイスによって実行されると、
    第1のユーザの移動体デバイスから、該移動体デバイスのメッセージを受け付けるための資源コストを含む第1のメッセージを受信し、
    前記第1のユーザに対する1または複数の発信メッセージを示す1または複数のサービスにアクセスし、
    前記1または複数の発信メッセージのそれぞれの価値を決定し、
    前記1または複数の発信メッセージを発信メッセージキューに入れ、
    前記資源コストと前記1または複数の発信メッセージのそれぞれの価値とに基づくトリガ条件を検出すると、前記発信メッセージキュー内のすべてのメッセージを前記移動体デバイスに送信するように動作可能な命令を含む、媒体。
  12. 前記1または複数の発信メッセージの価値を前記決定することはさらに、前記1または複数の発信メッセージのぞれぞれと前記第1のユーザとの間の親和度に基づく、請求項11に記載の媒体。
  13. 前記1または複数の発信メッセージを発信メッセージキューに入れることは、前記発信メッセージキュー内のすべてのメッセージの価値の合計を計算することを含み、前記トリガ条件は、該合計が所定の閾値を超えることを含む、請求項11に記載の媒体。
  14. 前記所定の閾値は、前記資源コストに基づく、請求項13に記載の媒体。
  15. 前記1または複数の発信メッセージのそれぞれの価値を決定することは、前記1または複数の発信メッセージのそれぞれにタイムアウト期間を割り当てることを含む、請求項11に記載の媒体。
  16. 前記1または複数の発信メッセージのそれぞれの前記タイムアウト期間は、前記第1のユーザと前記1または複数の発信メッセージのそれぞれとの間の計算された親和度と逆相関する、請求項15に記載の媒体。
  17. 前記1または複数の発信メッセージのそれぞれの前記タイムアウト期間はさらに、前記資源コストに基づくスケーリング係数によって増減される、請求項16に記載の媒体。
  18. 前記トリガ条件は、前記発信メッセージキュー内の前記1または複数のメッセージの前記タイムアウト期間のうちのいずれか1つが経過した場合にトリガされる、請求項15に記載の媒体。
  19. 前記資源コストは、前記移動体デバイスのシステム健全性を含む、請求項11に記載の媒体。
  20. 前記移動体デバイスの前記システム健全性は、前記移動体デバイスのバッテリ状態を含む、請求項19に記載の媒体。
JP2014539973A 2011-11-04 2012-10-15 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム Active JP5864769B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/290,000 US8954100B2 (en) 2011-11-04 2011-11-04 Server-side rate-limiting algorithms for piggybacking social updates for mobile devices
US13/290,000 2011-11-04
PCT/US2012/060229 WO2013066611A1 (en) 2011-11-04 2012-10-15 Server-side rate-limiting algorithms for piggybacking social updates for mobile devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015251450A Division JP5965049B2 (ja) 2011-11-04 2015-12-24 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム

Publications (3)

Publication Number Publication Date
JP2014534773A true JP2014534773A (ja) 2014-12-18
JP2014534773A5 JP2014534773A5 (ja) 2015-10-08
JP5864769B2 JP5864769B2 (ja) 2016-02-17

Family

ID=48192600

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014539973A Active JP5864769B2 (ja) 2011-11-04 2012-10-15 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム
JP2015251450A Active JP5965049B2 (ja) 2011-11-04 2015-12-24 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム
JP2016129694A Active JP6352339B2 (ja) 2011-11-04 2016-06-30 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2015251450A Active JP5965049B2 (ja) 2011-11-04 2015-12-24 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム
JP2016129694A Active JP6352339B2 (ja) 2011-11-04 2016-06-30 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム

Country Status (12)

Country Link
US (4) US8954100B2 (ja)
EP (1) EP2774318B1 (ja)
JP (3) JP5864769B2 (ja)
KR (3) KR101806984B1 (ja)
CN (2) CN107547361B (ja)
AU (4) AU2012333039B2 (ja)
BR (1) BR112014012350A2 (ja)
CA (3) CA2854275C (ja)
IL (3) IL232430A (ja)
IN (1) IN2014CN03844A (ja)
MX (2) MX353415B (ja)
WO (1) WO2013066611A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016113958A1 (ja) * 2015-01-13 2016-07-21 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2017502581A (ja) * 2013-12-09 2017-01-19 アルカテル−ルーセント プッシュデータ送信をスケジューリングするための方法およびシステム
JP2018515871A (ja) * 2015-07-23 2018-06-14 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グループ管理方法および端末、および記憶媒体

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2497076A (en) * 2011-11-23 2013-06-05 Skype Delivering only selected communication events to a user terminal or to a user
US9319373B1 (en) * 2012-03-15 2016-04-19 PlayStudios, Inc. Social networking game with prioritized message queue
KR101361265B1 (ko) * 2012-05-08 2014-02-12 (주)카카오 복수의 알림 모드들을 이용하는 이동 단말의 알림 방법 및 그 방법을 이용한 이동 단말
US9955286B2 (en) * 2013-05-08 2018-04-24 Natalya Segal Smart wearable devices and system therefor
WO2015011710A1 (en) * 2013-07-26 2015-01-29 Anagog Ltd. Associating external devices to vehicles and usage of said association
US9442944B2 (en) * 2013-11-12 2016-09-13 Dropbox, Inc. Content item purging
US10924815B2 (en) * 2015-12-31 2021-02-16 Idomoo Ltd System and method for generating and updating video news edition
JP6693817B2 (ja) * 2016-06-16 2020-05-13 株式会社三共 遊技機
US20180123986A1 (en) 2016-11-01 2018-05-03 Microsoft Technology Licensing, Llc Notification of a Communication Session in a Different User Experience
US10198291B2 (en) 2017-03-07 2019-02-05 International Business Machines Corporation Runtime piggybacking of concurrent jobs in task-parallel machine learning programs
US10271185B1 (en) 2017-10-20 2019-04-23 Mediatek Singapore Pte. Ltd. Method and apparatus for short message service re-transmission in mobile communications
CN112206509A (zh) * 2020-10-12 2021-01-12 上海酷量信息技术有限公司 一种根据服务器状态动态发送通知的系统和方法
CN117891696A (zh) * 2024-03-15 2024-04-16 天津医康互联科技有限公司 计算资源调整方法、装置、电子设备和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006911A1 (en) * 2000-12-22 2003-01-09 The Cadre Group Inc. Interactive advertising system and method
EP1962473A1 (en) * 2007-02-21 2008-08-27 Research In Motion Limited Efficient transmission of presence update information to presence service clients
WO2010128198A1 (en) * 2009-05-08 2010-11-11 Zokem Oy System and method for behavioural and contextual data analytics
WO2013032619A1 (en) * 2011-08-29 2013-03-07 Facebook, Inc. Modulation of visual notification parameters based on message activity and notification value

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424841B1 (en) * 1999-02-18 2002-07-23 Openwave Systems Inc. Short message service with improved utilization of available bandwidth
US7444383B2 (en) 2000-06-17 2008-10-28 Microsoft Corporation Bounded-deferral policies for guiding the timing of alerting, interaction and communications using local sensory information
WO2001069432A2 (en) 2000-03-16 2001-09-20 Microsoft Corporation Priorities generation and management
EP1139679A1 (en) 2000-03-31 2001-10-04 BRITISH TELECOMMUNICATIONS public limited company Mobile telephone with pager mode
US20070037610A1 (en) * 2000-08-29 2007-02-15 Logan James D Methods and apparatus for conserving battery power in a cellular or portable telephone
JP3876687B2 (ja) 2001-10-30 2007-02-07 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
CN1264306C (zh) * 2001-12-25 2006-07-12 中兴通讯股份有限公司 一种提高宽带接入服务器接入速率的方法
JP2004274297A (ja) 2003-03-07 2004-09-30 Nippon Telegr & Teleph Corp <Ntt> 通信制御方法、通信制御装置及び通信制御プログラム
ATE373913T1 (de) * 2003-06-24 2007-10-15 Research In Motion Ltd Serialisierung von eine verteiltenapplikation einer router
US8443049B1 (en) * 2004-08-20 2013-05-14 Sprint Spectrum L.P. Call processing using trust scores based on messaging patterns of message source
US7242920B2 (en) 2005-05-31 2007-07-10 Scenera Technologies, Llc Methods, systems, and computer program products for controlling data transmission based on power cost
US8208946B2 (en) * 2006-07-24 2012-06-26 Qualcomm Incorporated Method, apparatus, and system for transmitting messages
US8504118B2 (en) * 2006-10-11 2013-08-06 Kyocera Corporation System and method for optimizing battery power
KR101405936B1 (ko) * 2007-02-02 2014-06-17 엘지전자 주식회사 광대역 무선 접속 시스템에서 수면 모드와 관련된 메시지를송수신하는 방법
CN101136837A (zh) 2007-09-21 2008-03-05 华为技术有限公司 推送消息的控制方法、装置和系统
EP2051479A1 (en) 2007-10-18 2009-04-22 Nokia Siemens Networks Oy Control of push services
US20090182589A1 (en) 2007-11-05 2009-07-16 Kendall Timothy A Communicating Information in a Social Networking Website About Activities from Another Domain
US20090124241A1 (en) 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
KR101021763B1 (ko) 2008-01-11 2011-03-15 주식회사 케이티 Ims 기반의 유무선 복합망에서의 지능형 개인화 정보 생성 장치, 시스템 및 방법
US9402277B2 (en) * 2008-03-03 2016-07-26 Qualcomm Incorporated Proxy server for facilitating power conservation in wireless client terminals
US8112475B2 (en) * 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US8923803B2 (en) * 2008-07-03 2014-12-30 Centurylink Intellectual Property Llc System and method for processing emergency data messages at a PSAP
TW201008234A (en) * 2008-08-12 2010-02-16 Acer Inc Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system
US8344852B2 (en) 2008-12-24 2013-01-01 Blackboard Connect Inc. Method and system for transmitting a plurality of notifications in a notification pool
JP2010198243A (ja) 2009-02-24 2010-09-09 Oki Electric Ind Co Ltd 行動予測装置および行動予測方法
US8930438B2 (en) 2009-06-17 2015-01-06 Apple Inc. Push-based location update
US9015597B2 (en) 2009-07-31 2015-04-21 At&T Intellectual Property I, L.P. Generation and implementation of a social utility grid
US8489557B2 (en) * 2010-03-22 2013-07-16 Research In Motion Limited Method, system and apparatus for archiving data
WO2011133195A1 (en) * 2010-04-22 2011-10-27 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
US8694313B2 (en) * 2010-05-19 2014-04-08 Google Inc. Disambiguation of contact information using historical data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006911A1 (en) * 2000-12-22 2003-01-09 The Cadre Group Inc. Interactive advertising system and method
EP1962473A1 (en) * 2007-02-21 2008-08-27 Research In Motion Limited Efficient transmission of presence update information to presence service clients
WO2010128198A1 (en) * 2009-05-08 2010-11-11 Zokem Oy System and method for behavioural and contextual data analytics
WO2013032619A1 (en) * 2011-08-29 2013-03-07 Facebook, Inc. Modulation of visual notification parameters based on message activity and notification value

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017502581A (ja) * 2013-12-09 2017-01-19 アルカテル−ルーセント プッシュデータ送信をスケジューリングするための方法およびシステム
WO2016113958A1 (ja) * 2015-01-13 2016-07-21 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JPWO2016113958A1 (ja) * 2015-01-13 2017-10-19 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US10552881B2 (en) 2015-01-13 2020-02-04 Sony Corporation Information processing device, information processing method, and program
JP2018515871A (ja) * 2015-07-23 2018-06-14 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グループ管理方法および端末、および記憶媒体

Also Published As

Publication number Publication date
KR20160011238A (ko) 2016-01-29
IL232430A (en) 2016-06-30
KR101645620B1 (ko) 2016-08-05
JP2016201118A (ja) 2016-12-01
CN104040942A (zh) 2014-09-10
CA2854275C (en) 2016-04-26
JP2016119674A (ja) 2016-06-30
AU2017201196B2 (en) 2019-03-07
US10194285B2 (en) 2019-01-29
WO2013066611A1 (en) 2013-05-10
KR101806984B1 (ko) 2017-12-08
AU2012333039A1 (en) 2014-06-05
AU2016201197B2 (en) 2017-03-09
AU2016201197A1 (en) 2016-03-17
MX2014005395A (es) 2015-02-05
CA2964991C (en) 2018-05-22
JP5864769B2 (ja) 2016-02-17
IL232430A0 (en) 2014-06-30
EP2774318A4 (en) 2015-06-10
MX353415B (es) 2018-01-11
AU2017201196A1 (en) 2017-03-09
IL245521A0 (en) 2016-06-30
US20150087345A1 (en) 2015-03-26
IL243345A (en) 2016-09-29
CA2964991A1 (en) 2013-05-10
US9801032B2 (en) 2017-10-24
KR101590497B1 (ko) 2016-02-01
JP6352339B2 (ja) 2018-07-04
KR20140095532A (ko) 2014-08-01
CN107547361A (zh) 2018-01-05
EP2774318A1 (en) 2014-09-10
KR20160092058A (ko) 2016-08-03
US9232372B2 (en) 2016-01-05
US20180007522A1 (en) 2018-01-04
AU2019203407A1 (en) 2019-06-06
US20130115981A1 (en) 2013-05-09
JP5965049B2 (ja) 2016-08-03
US20160100296A1 (en) 2016-04-07
CA2920651C (en) 2017-06-20
CN104040942B (zh) 2017-09-29
IL245521B (en) 2019-02-28
BR112014012350A2 (pt) 2017-06-13
CN107547361B (zh) 2019-04-19
US8954100B2 (en) 2015-02-10
IN2014CN03844A (ja) 2015-09-04
EP2774318B1 (en) 2019-03-13
CA2854275A1 (en) 2013-05-10
AU2012333039B2 (en) 2016-04-14
MX340567B (es) 2016-07-14
CA2920651A1 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
JP6352339B2 (ja) 移動体デバイスのソーシャル更新情報のピギーバックを行うためのサーバ側のレート制限アルゴリズム
US10771932B1 (en) Device actions based on device power
JP6306755B2 (ja) 電力消費およびソーシャル要因に基づく通知制御
US10070284B2 (en) Low power high frequency social updates for mobile devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150818

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150818

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150917

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: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151224

R150 Certificate of patent or registration of utility model

Ref document number: 5864769

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250