(57)【要約】  メッセージング・システムは、メッセージング・チャネルを介するユーザの間の通信を容易にする。メッセージング・システムは、複数の通信チャネルをサポートし、ポリシ・ルールのセットまたはトレーニングされたモデルを使用してメッセージの受信者へのメッセージの送達のためにメッセージング・チャネルを自動的に選択するメッセージング・モジュールを含む。メッセージング・モジュールは、メッセージを送信し受信するユーザ・インターフェース内に、メッセージがどのように送達されるのかに関する透過性をユーザに与えるためにメッセージの送信者に選択されたメッセージング・チャネルの視覚的表示を提供することもできる。
2013545199.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実施される方法であって、前記方法は、
受信者にアドレッシングされたメッセージを受信することであって、前記受信者は、メッセージング・システムのユーザであることと；
前記メッセージング・システム内での前記受信者の以前のメッセージング・アクティビティの１または複数の表示に基づき、前記受信者に前記メッセージを送達するために複数のメッセージング・チャネルから１以上のメッセージング・チャネルを選択することと；
選択された前記１以上のメッセージング・チャネルを介して前記メッセージを前記受信者に送達することと
を有する、コンピュータによって実施される方法。
【請求項２】
前記受信者の以前のメッセージング・アクティビティの前記１または複数の表示は、前記メッセージの送信者によって送信された以前のメッセージに応答するために前記メッセージの前記受信者によって使用された最も最近のメッセージング・チャネルの表示からなる、
請求項１に記載の方法。
【請求項３】
前記受信者の以前のメッセージング・アクティビティの前記１または複数の表示は、前記複数のメッセージング・チャネルの前記受信者の以前の使用パターンからなる、
請求項１に記載の方法。
【請求項４】
１または複数のメッセージング・チャネルを選択することはさらに、前記受信者の現在のステータスの１または複数の表示に基づき１または複数のメッセージング・チャネルを選択することを含む、
請求項１に記載の方法。
【請求項５】
１または複数のメッセージング・チャネルを選択することはさらに、前記メッセージの１または複数の属性に基づき１または複数のメッセージング・チャネルを選択することを含む、
請求項１に記載の方法。
【請求項６】
１または複数のメッセージング・チャネルを選択することは、前記メッセージの送信者と前記メッセージの前記受信者との間の社会的関係に基づき１または複数のメッセージング・チャネルを選択することを含む、
請求項１に記載の方法。
【請求項７】
前記メッセージを送達することはさらに、
前記メッセージ前記選択されたチャネルを介して前記受信者に送達する形を判定することと；
前記判定された形で前記１または複数の選択されたチャネルを介して前記受信者に前記メッセージを送達することと
を含む、
請求項１に記載の方法。
【請求項８】
前記メッセージを送達する形を判定することは、前記受信者の現在のステータスの少なくとも１つの表示に基づき、前記メッセージについて前記受信者にどのように通知すべきかを判定することを含む、
請求項７に記載の方法。
【請求項９】
前記メッセージを送達する形を判定することは、前記メッセージング・システム内での前記受信者の以前のメッセージング・アクティビティの少なくとも１つの表示に基づき、前記メッセージをいつ前記受信者に送達すべきかを判定することを含む、
請求項７に記載の方法。
【請求項１０】
前記メッセージを送達する形を判定することは、前記受信者の現在のステータスの少なくとも１つの表示に基づき、前記メッセージをいつ前記受信者に送達すべきかを判定することを含む、
請求項７に記載の方法。
【請求項１１】
前記メッセージを送達することは、
前記受信者にアドレッシングされた他のメッセージと一緒に前記メッセージをバッチ化することと；
前記選択されたメッセージング・チャネルのうちの少なくとも１つを介してメッセージのダイジェストとして前記バッチ化されたメッセージを送達することと
からなる、
請求項１に記載の方法。
【請求項１２】
ダイジェストとして前記バッチ化されたメッセージを送達することは、
前記バッチ化されたメッセージのうちで前記受信者によって読み取られる１または複数を除去することと；
前記選択されたメッセージング・チャネルのうちの少なくとも１つを介してメッセージのダイジェストとして残りのバッチ化されたメッセージを送達することと
からなる、
請求項１１に記載の方法。
【請求項１３】
前記メッセージを送達することは、
前記選択されたメッセージング・チャネルに優先順位を付けることと；
優先順位の順で前記選択されたメッセージング・チャネルを介して前記メッセージを送達することと
からなる、
請求項１に記載の方法。
【請求項１４】
前記メッセージは、前記メッセージに対する応答が事前に決定された長さの時間以内により高い優先順位のチャネルを介して前記受信者から受信されない場合に、より低い優先順位のチャネルに送達される、
請求項１３に記載の方法。
【請求項１５】
前記メッセージング・チャネルは、ウェブ・チャット・チャネル、電子メール・チャネル、およびモバイル・チャット・チャネルのうちの少なくとも１つからなる、
請求項１に記載の方法。
【請求項１６】
前記選択されたメッセージング・チャネルのうちの少なくとも１つは、前記メッセージがそこから受信されるメッセージング・チャネルとは異なる、
請求項１に記載の方法。
【請求項１７】
前記１または複数のメッセージング・チャネルは、ポリシ・ルールのセットを適用することによって選択される、
請求項１に記載の方法。
【請求項１８】
前記１または複数のメッセージング・チャネルは、予測機械学習されたモデルを適用することによって選択される、
請求項１に記載の方法。
【請求項１９】
コンピュータによって実施される方法であって、前記方法は、
複数の以前に送信されたメッセージに対応する複数の信号、前記以前に送信されたメッセージの受信者によって好まれる複数のメッセージング・チャネル、および前記信号と前記好まれるメッセージング・チャネルとの間の関連付けを含むトレーニング・データにアクセスすることと；
前記トレーニング・データを使用して予測モデルをトレーニングすることであって、前記モデルは、前記信号の関数として前記メッセージング・チャネルのチャネル・スコアを出力するように構成され、前記チャネル・スコアは、前記メッセージング・チャネルのユーザ・プリファレンスを示すことと；
前記予測モデルを格納することと
を有する、コンピュータによって実施される方法。
【請求項２０】
前記好まれるチャネルは、前記以前に送信されたメッセージに応答するために前記受信者によって使用されたメッセージング・チャネルからなる、
請求項１９に記載の方法。
【請求項２１】
前記好まれるチャネルは、前記以前に送信されたメッセージを読み取るために前記受信者によって使用されたメッセージング・チャネルからなる、
請求項１９に記載の方法。
【請求項２２】
前記好まれるチャネルは、前記好まれるチャネルであるものとして前記受信者によって明示的に識別されたメッセージング・チャネルからなる、
請求項１９に記載の方法。
【請求項２３】
前記方法はさらに、
新しい受信者にアドレッシングされた新しいメッセージを受け取ることと；
前記予測モデルを用いて前記複数のメッセージング・チャネルの前記チャネル・スコアを判定することと；
前記判定されたスコアに少なくとも部分的に基づいて、前記新しい受信者に前記新しいメッセージを送達するために前記メッセージング・チャネルのうちの１または複数を選択することと；
前記１または複数の選択されたメッセージング・チャネルを介して前記新しい受信者に前記新しいメッセージを送達することと
を有する、
請求項１９に記載の方法。
【請求項２４】
前記トレーニング・データは、共起テーブル内に格納される、
請求項１９に記載の方法。
【請求項２５】
コンピュータによって実施される方法であって、前記方法は、
メッセージング・システムのユーザにアドレッシングされたメッセージを受け取ることと；
複数のメッセージング・チャネルを介して前記メッセージの複数のコピーを前記ユーザに送達することであって、各コピーは、前記複数のメッセージング・チャネルの異なるメッセージング・チャネルを介して送達されることと；
前記複数のメッセージング・チャネルのうちの１つを介して前記ユーザから前記メッセ
ージに対する応答を受信することと；
前記応答を受信することに応答して、前記複数のメッセージング・チャネルの１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを撤回することと
を有する、コンピュータ実施される方法。
【請求項２６】
撤回することは、前記１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを削除することを含む、
請求項２５に記載の方法。
【請求項２７】
撤回することは、前記１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを読み取られたものとしてマーキングすることを含む、
請求項２５に記載の方法。
【請求項２８】
前記メッセージング・チャネルは、ウェブ・チャット・チャネル、電子メール・チャネル、およびモバイル・チャット・チャネルのうちの少なくとも１つからなる、
請求項２５に記載の方法。
【請求項２９】
前記複数のメッセージング・チャネルは、撤回可能チャネルおよび非撤回可能チャネルからなり、前記メッセージのコピーを撤回することは、前記撤回可能チャネルのうちの１または複数に送達された前記メッセージのコピーを撤回することを含む、
請求項２５に記載の方法。
【請求項３０】
コンピュータによって実施される方法であって、前記方法は、
メッセージング・システムのユーザにアドレッシングされたメッセージを受け取ることと；
複数のメッセージング・チャネルを介して前記ユーザに前記メッセージのコピーを送達することであって、各コピーは、前記複数のメッセージング・チャネルの異なるメッセージング・チャネルを介して送達されことと；
前記ユーザが前記メッセージング・チャネルのうちの１に送達された前記コピーのうちの１を読み取ることの表示を受信することと；
前記表示を受信することに応答して、前記複数のメッセージング・チャネルの１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを撤回することと
を有する、コンピュータによって実施される方法。
【請求項３１】
撤回することは、前記１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを削除することを含む、
請求項３０に記載の方法。
【請求項３２】
撤回することは、前記１または複数の他のメッセージング・チャネルに送達された前記メッセージのコピーを読み取られたものとしてマーキングすることを含む、
請求項３０に記載の方法。
【請求項３３】
前記複数のメッセージング・チャネルは、ウェブ・チャット・チャネル、電子メール・チャネル、およびモバイル・チャット・チャネルのうちの少なくとも１つからなる、
請求項３０に記載の方法。
【請求項３４】
前記複数のメッセージング・チャネルは、撤回可能チャネルおよび非撤回可能チャネルからなり、
前記メッセージのコピーを撤回することは、前記撤回可能チャネルのうちの１または複数に送達された前記メッセージのコピーを撤回することを含む、
請求項３０に記載の方法。
【請求項３５】
コンピュータによって実施される方法であって、前記方法は、
メッセージの受信者を識別する情報を受信することであって、前記受信者は、メッセージング・システムのユーザであることと；
前記メッセージング・システムによって自動的に、前記受信者に前記メッセージを送達するために複数のメッセージング・チャネルから１または複数のメッセージング・チャネルを選択することと；
前記１または複数のメッセージング・チャネルを選択することに応答して、前記受信者に前記メッセージを送達するために選択された前記メッセージング・チャネルの視覚的表示をユーザ・インターフェース内の表示のために提供することであって、前記ユーザ・インターフェースは、メッセージ・スレッドを表示する第１領域および前記選択されたメッセージング・チャネルの前記視覚的表示を表示する第２領域からなることと
を有する、コンピュータによって実施される方法。
【請求項３６】
１または複数のメッセージング・チャネルを選択することは、１または複数の信号に基づいて１または複数のメッセージング・チャネルを選択することを含む、
請求項３５に記載の方法。
【請求項３７】
前記１または複数の選択されたメッセージング・チャネルの前記視覚的表示を提供することは、前記１または複数の選択されたメッセージング・チャネルのテキスト説明を提供することを含む、
請求項３５に記載の方法。
【請求項３８】
前記１または複数の選択されたメッセージング・チャネルの前記視覚的表示を提供することは、前記１または複数の選択されたメッセージング・チャネルを表す１または複数のグラフィックスを提供することを含む、
請求項３５に記載の方法。
【請求項３９】
前記方法はさらに、
前記選択されたメッセージング・チャネルのうちの少なくとも１つに関する前記メッセージの受信者であるメッセージ受信者のプレゼンスを判定することと；
前記ユーザ・インターフェース内の表示のために前記メッセージ受信者の前記プレゼンスの視覚的表示を提供することと
を含む、
請求項３５に記載の方法。
【請求項４０】
前記方法はさらに、
前記メッセージの受信者であるメッセージ受信者の位置を判定することと；
前記ユーザ・インターフェース内の表示のために前記メッセージ受信者の前記位置の視覚的表示を提供することと
を含む、
請求項３５に記載の方法。
【請求項４１】
前記選択されたメッセージング・チャネルは、少なくとも２つのメッセージング・チャネルからなり、前記方法はさらに、
前記少なくとも２つのメッセージング・チャネルを介して前記メッセージを送達することと；
前記少なくとも２つのメッセージング・チャネルのうちの一方を介して前記受信者から応答メッセージを受信することと；
前記少なくとも２つのメッセージング・チャネルのうちの他方のメッセージング・チャネルが選択解除されることを示すために前記視覚的表示を更新することと
を含む、
請求項３５に記載の方法。
【請求項４２】
前記方法はさらに、
前記複数のメッセージング・チャネルのうちの第１メッセージング・チャネルを介して前記受信者から第１応答メッセージを受信することと、
前記複数のメッセージング・チャネルのうちの第２メッセージング・チャネルを介して前記受信者から第２応答メッセージを受信することと、
前記ユーザ・インターフェースの前記第１領域内の表示のために前記メッセージ・スレッドの一部として前記第１メッセージおよび前記第２メッセージを提供することと
を含む、
請求項３５に記載の方法。
【請求項４３】
前記メッセージング・チャネルは、ウェブ・チャット・チャネル、電子メール・チャネル、およびモバイル・チャット・チャネルのうちの少なくとも１つからなる、
請求項３５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、メッセージング・システムに関し、より詳細には、ユーザが複数の異なるメッセージング・チャネルを介して通信することを可能にするメッセージング・システムに関する。
【背景技術】
【０００２】
人々は、電子メッセージを送信し、受信することによって、電子デバイスを使用してお互いに通信する。電子メール（ｅメール）、ウェブ・チャット、その他など、さまざまなメッセージング・チャネルが、電子通信に使用可能である。メッセージを送信する時に、送信側は、メッセージの意図される受信者（ｉｎｔｅｎｄｅｄ  ｒｅｃｅｉｐｉｅｎｔ  ｏｆ  ｔｈｅ  ｍｅｓｓａｇｅ）との通信のためにメッセージング・チャネルのうちの１つを任意に選択し、選択されたメッセージング・チャネルを介してメッセージを送信する。しかし、送信者によって選択されたメッセージング・チャネルが、意図される受信者に到達するのに最適ではない場合がある。たとえば、メッセージの意図される受信者が、現在、テキスト・メッセージへのアクセスを有するが、現在は電子メール・アカウントにアクセスできない場合がある。送信者は、それでも、受信者の電子メール・アカウントにメッセージを送信すると決断する可能性がある。というのは、送信者が、どのメッセージ・チャネルが受信者に到達するのに最も適するのかを知らないからである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２６６８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
その結果、正しいチャネルが利用される場合には回避され得る、送信者と受信者との間の通信の遅延が増すことになる。
本発明の実施形態は、ユーザが複数のメッセージング・チャネルを介してお互いに通信することを可能にするメッセージング・システムに関する。
【課題を解決するための手段】
【０００５】
１実施形態では、メッセージサーバのメッセージング・モジュールが、メッセージング・システムのユーザ（すなわち、受信者）にアドレッシングされたメッセージを受け取り、複数のメッセージング・チャネルから１または複数のメッセージング・チャネルを選択する。メッセージング・モジュールは、たとえば受信者の現在のステータスまたは受信者の過去のメッセージング・アクティビティを示す１またはより多くの信号に基づいてメッセージング・チャネルを選択する。その後、メッセージング・モジュールは、選択されたメッセージング・チャネルを介して受信者にメッセージを送達する。或る実施形態では、メッセージング・モジュールは、選択されたメッセージング・チャネルを介してメッセージをどのように送達すべきかを判定することもできる。
【０００６】
或る実施形態では、メッセージング・モジュールは、信号に基づきメッセージング・チャネルを選択するための予測モデルを展開するトレーニング工程を受ける。メッセージング・モジュールは、異なる信号とメッセージング・チャネルとの間の関連付けに関するトレーニング・データを収集し、トレーニング・データを分析して、予測モデルを生成する。予測モデルは、その後、たとえば、受信者にメッセージを送達するための１または複数のメッセージング・チャネルを選択するのに使用される。
【０００７】
更に他の実施形態では、メッセージング・モジュールは、メッセージの送信者に、メッセージがどのように送信されるのかに関する透過的フィードバック（ｔｒａｎｓｐａｒｅｎｔ  ｆｅｅｄｂａｃｋ）を与え、このフィードバックは、メッセージング・システムの使用に対する信頼を構築する。メッセージング・モジュールは、たとえばメッセージの送信者によって入力された情報から、メッセージの受信者を識別する情報を受け取る。メッセージング・モジュールは、受信者へメッセージを送達するために、複数のメッセージング・チャネルから１または複数のメッセージング・チャネルを選択する。その後、メッセージング・モジュールは、メッセージの送信者へのユーザ・インターフェース内の表示のために、システムがその中でメッセージを送信すると判定した選択された１または複数のチャネルの視覚的表示を提供する。メッセージング・チャネルに関する受信者のプレゼンスまたは受信者の位置など、他の情報をユーザ・インターフェース内で提供することができる。
【０００８】
更に他の実施形態では、メッセージング・モジュールは、複数のメッセージング・チャネルを介して受信者にメッセージを送信し、その結果、受信者は、チャネルのいずれかをチェックすることによってメッセージを受信する。しかし、メッセージング・モジュールは、複製メッセージで受信者を閉口させることを回避するやり方でメッセージを管理もする。メッセージが受信者のために受信される時に、メッセージング・モジュールは、複数のメッセージング・チャネルを介して受信者にメッセージのコピーを送達する。各コピーは、異なるメッセージング・チャネルを介して送達され、その結果、受信者は、これらのチャネルのいずれか１つをチェックすることによってメッセージを受信できるようになる。メッセージング・モジュールは、メッセージに対する応答または受信者がメッセージング・チャネルのうちの１つからメッセージを受信したことの他の確認を受信する。これに応答して、メッセージング・モジュールは、他のメッセージング・チャネルに送達されたメッセージのコピーを撤回する（ｒｅｓｃｉｎｄ）。
【図面の簡単な説明】
【０００９】
【図１】１実施形態によるメッセージング・システムを示すハイレベル・ブロック図。
【図２】メッセージング・モジュールの１実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の概要を示す図。
【図３】メッセージング・モジュールの１実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の工程フローを示す図。
【図４】メッセージング・モジュールの１実施形態による、メッセージング・モジュールによってクライアント・デバイスに提供されるユーザ・インターフェースを示す図。
【図５】メッセージング・モジュールの１実施形態による、ユーザ・インターフェース内で選択されたチャネルの表示を提供する工程フローを示す図。
【図６】メッセージング・モジュールの１実施形態による、メッセージを撤回する工程フローを示す図。
【図７】１実施形態による、予測モデルをトレーニングする工程フローを示す図。
【発明を実施するための形態】
【００１０】
図面は、例示のためにのみ本発明のさまざまな実施形態を示す。当業者は、以下の議論から、本明細書で示される構造および方法の代替実施形態を、本明細書で説明される発明の原理から逸脱せずに使用できることをたやすく認めるであろう。
【００１１】
図１は、１実施形態によるメッセージング・システム１００のハイレベル・ブロック図である。図１は、ネットワーク１７０によって接続されたメッセージサーバ１０１および複数のクライアント・デバイス１８０を示す。１実施形態では、メッセージサーバ１０１
およびクライアント・デバイス１８０はそれぞれ、１または複数のコンピュータからなる。あるいは、クライアント・デバイス１８０は、携帯電話機、ラップトップ機、ネットブック、タブレット、ケーブル・ボックス、テレビジョン、ビデオ・ゲーム機、その他など、任意の他のタイプのコンピューティング・デバイスからなることができる。他の実施形態では、メッセージサーバ１０１に通信する数百万個のクライアント・デバイス１８０があってもよい。
【００１２】
クライアント・デバイス１８０のユーザは、ウェブ・ブラウザまたはネイティブ・アプリケーションなどのアプリケーションを介してメッセージサーバ１０１と相互作用して、メッセージング・システム１００の他のユーザへのメッセージの書込および送信、またはメッセージング・システム１００の他のユーザによって送信されたメッセージの取出および読取などの動作を実行する。たとえば、アプリケーションを、サーバ１０１によって提供されるウェブ・ページをロードするウェブ・ブラウザとすることができる。ウェブ・ページ内で提供される機能性を介して、ユーザは、メッセージを読み取り、書き込む。クライアント・デバイス１８０は、メッセージサーバ１０１を介して他のユーザにメッセージを送信し、他のユーザからメッセージを受信し、メッセージは、メッセージサーバによってサポートされるさまざまなメッセージング・チャネルのいずれかを介して通信され得る。或る実施形態では、メッセージは、プレーン・テキストを含むことができ、あるいは、メッセージは、写真、ビデオ、および添付ファイルなど、他のコンテンツを含むことができる。
【００１３】
クライアント・デバイス１８０は、さまざまなタイプの非メッセージング情報（ｎｏｎ−ｍｅｓｓａｇｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ）を追跡し、メッセージサーバ１０１に通信することもできる。非メッセージング情報の例は、たとえば、ユーザが最後にクライアント・デバイス１８０と相互作用した時間、クライアント・デバイス１８０の位置、クライアント・デバイス１８０が移動している速度などを含む。この情報は、メッセージサーバ１０１からの要求時に、または或る事前に決定されたインターバルで、通信されうる。
【００１４】
メッセージサーバ１０１は、ユーザ・データストア１１０、メッセージング・モジュール１２０、およびグラフ情報データベース１３０を備える。ユーザ・データストア１１０は、メッセージング・システム１００のユーザに関するさまざまなタイプの情報を格納する。ユーザごとに格納できる情報の例は、ユーザの１または複数の電子メール・アドレス、ユーザの電話番号、ユーザがユーザの電話機にインストールされたモバイル・メッセージング・アプリケーションを有するか否か、ユーザのアクティビティ・カレンダ、ユーザのメッセージの受信箱、ユーザの過去のメッセージング・アクティビティに関する履歴情報などを含む。或る実施形態では、メッセージサーバ１０１は、ユーザの電子メール・アカウントをホスティングすることもでき、あるいはその代わりに、ユーザが、異なるメッセージサーバによってホスティングされる電子メール・アカウントを有してもよい。
【００１５】
１実施形態では、メッセージング・システム１００はまた、ソーシャル・ネットワーキング・システムであり、「ソーシャル・グラフ」内で一緒にリンクされたノードとしてユーザ・データストア１１０のユーザを表すグラフ情報データストア１３０をさらに含む。ソーシャル・ネットワーキング・システムの、アプリケーション、イベント、ウェブ・ページ、写真、その他など、ユーザ以外の他のオブジェクトは、グラフ情報データストア１３０内でノードとして表されてもよい。したがって、グラフ情報ストア１３０は、さまざまなオブジェクト・ノードを接続するエッジとして表される、オブジェクトの間またはオブジェクトの中の関係に関する情報からなる。ソーシャル・グラフ内のエッジのさまざまな例は、２〜３例を挙げると、ユーザがソーシャル・ネットワーキング・システム内で関係を有する（友人である、通信した、他者のプロファイルを見た、何らかの形で相互作用
した）ことを表す２つのユーザ・オブジェクトの間のエッジと、ユーザがアプリケーションを使用したことを表すユーザ・オブジェクトとアプリケーション・オブジェクトとの間のエッジと、ユーザがウェブ・ページを見たことを表すユーザ・オブジェクトとウェブ・ページ・オブジェクトとの間のエッジとを含む。たとえば、或るユーザが、ソーシャル・ネットワーキング・システム内で別のユーザとの関係を確立する場合に、この２つのユーザは、それぞれ１つのノードとして表され、その間のエッジは、確立される関係を表し、２つのユーザは、その後、ソーシャル・ネットワーク・システム内で接続されると言われる。この例を続けると、このユーザの一方は、ソーシャル・ネットワーキング・システム内で他方のユーザにメッセージを送信することができる。メッセージを送信するというこの行為は、この２つのノードの間のもう１つのエッジであり、このエッジを、ソーシャル・ネットワーキング・システムによって格納し、かつ／または追跡することができる。メッセージ自体は、ノードとして扱われうる。もう１つの例では、一方のユーザが、ソーシャル・ネットワーキング・システムによって維持されるイメージ内で他方のユーザにタグを付けることができる。このタグ付けアクションは、ユーザの間のエッジならびにユーザのそれぞれとやはりノードであるイメージとの間のエッジを作成することができる。もう１つの例では、或るユーザが、イベントへの参加を確認する場合に、そのユーザおよびイベントは、ノードであり、そのユーザがそのイベントに参加するか否かの表示が、エッジである。
【００１６】
したがって、ソーシャル・グラフを使用して、メッセージング・システム１００は、多数の異なるタイプのオブジェクトおよびエッジ（これらのオブジェクトの間の相互作用および接続）を記憶し、これによって、社会的に関連する情報の極めて豊富なストアを維持することができる。ソーシャル・グラフのエッジによって表される社会的関係から、メッセージング・システム１００の２つのユーザの間の関係の強さを示す共通性（ａｆｆｉｎｉｔｙ）を判定することができる。
【００１７】
メッセージング・モジュール１２０は、メッセージング・チャネルを介するメッセージング・システムのユーザからのメッセージの受信およびユーザへのメッセージの送達の機能性を提供する。メッセージング・モジュール１２０は、複数のメッセージング・チャネルをサポートし、このメッセージング・チャネルのそれぞれは、メッセージング・システム１００のユーザとの電子通信の手段を提供する。一般的に言って、メッセージング・チャネルは、メッセージング・システムのユーザに電子メッセージを送達するのに使用できるすべての技術である。メッセージング・チャネルは、テキスト、写真、ビデオ、および／または音楽など、さまざまなタイプの情報の伝送をサポートすることができる。メッセージング・チャネルの例は、とりわけ、ウェブ・チャット（たとえば、メッセージサーバ１０１によってホスティングされるウェブ・ページのチャット・アプリケーション）、電子メール、ｅｘｔｅｎｓｉｂｌｅ  ｍｅｓｓａｇｉｎｇ  ａｎｄ  ｐｒｅｓｅｎｃｅ  ｐｒｏｔｏｃｏｌ（ＸＭＰＰ）、ショート・メッセージ・サービス（ＳＭＳ）文字通信、モバイル・チャット（たとえば、クライアント・デバイス１８０にインストールされたアプリケーションを介する）、ゲーム機によって提供されるチャット・サービス、およびサード・パーティ・アプリケーションがメッセージを送信するのに使用できるアプリケーション・プログラム・インターフェース（ＡＰＩ）を含む。
【００１８】
１実施形態では、複数のメッセージング・チャネルが、所与のユーザ（「メッセージ受信者」）へのメッセージを送達するために使用可能である。メッセージング・モジュール１２０は、メッセージを送達するためにメッセージング・チャネルのうちの１または複数を選択する。正しいメッセージング・チャネルが選択されることを保証するために、メッセージング・モジュール１２０は、その選択を、たとえばメッセージ受信者の過去のメッセージング・アクティビティまたはステータスに関する情報を提供する１または複数の信号に基づかせる。したがって、メッセージを送信するユーザは、メッセージ受信者に到達
するために最良のメッセージング・チャネルを任意に選択することを必要としない。というのは、この判断が、メッセージング・モジュール１２０によって自動的に行われるからである。或る実施形態では、メッセージング・モジュール１２０は、正しいメッセージング・チャネルを判定するためにポリシ・ルールのセットまたは予測機械学習されたモデルを適用することによって、メッセージング・チャネルを選択しうる。
【００１９】
追加の実施形態では、メッセージング・モジュール１２０は、メッセージの送信者に選択された送達チャネルの視覚的表示を提供する。この表示は、クライアント・デバイス１８０上に表示できるユーザ・インターフェースを介して提供される。この表示を、メッセージが送達される前またはメッセージが組み立てられつつある時に、送信者に提供することができ、この表示は、メッセージがメッセージ受信者にどのように送達されるのかについての予測可能性の感覚を提供し、メッセージング・システム１００の使用に対する信頼を構築する。
【００２０】
更に他の実施形態では、メッセージング・モジュール１２０は、メッセージのコピーを複数の送達チャネルに送達し、その結果、受信者が、メッセージング・チャネルのいずれかをチェックすることによってメッセージを受信するようにする。メッセージング・モジュール１２０は、送達チャネルのうちの１つを介してメッセージ受信者からメッセージに対する応答を受信する。応答の受信に応答して、メッセージング・モジュール１２０は、他の送達チャネルに送信されたメッセージのコピーを撤回し、これは、複製メッセージでメッセージ受信者を閉口させるのを回避する。
【００２１】
メッセージング・チャネルの選択
ここで図２を参照すると、示されているのは、メッセージング・モジュール１２０の１実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の概要である。図示されているように、メッセージは、複数の着信メッセージング・チャネル２０２のいずれか１つを介してメッセージング・システム１００のユーザから受信されうる。たとえばメッセージ受信者に関する情報を提供する、１または複数の情報信号２１０を使用して、メッセージング・モジュールは、メッセージを送達するための１または複数の発信メッセージング・チャネル２０４を選択する。信号２１０を、図３に関連してより詳細に説明する。
【００２２】
或る実施形態では、メッセージング・モジュール１２０は、メッセージを受信し、その後、メッセージが受信された後に、適当な発信メッセージング・チャネル２０４を選択する。他の実施形態では、メッセージの受信者は、メッセージが受信される前に既知とすることができ、したがって、メッセージング・モジュール１２０は、メッセージの受信の前に発信メッセージング・チャネル２０４を選択することができる。その後、メッセージは、選択されたメッセージング・チャネル（１または複数）に送達される。たとえば、ＳＭＳチャネルを介して受信されたメッセージは、ＳＭＳチャネルとＸＭＰＰチャネルとの両方を介してメッセージ受信者に送達されうる。
【００２３】
或る実施形態では、メッセージング・モジュール１２０は、メッセージの送信に使用するメッセージング・チャネル２０４を判定するだけではなく、選択されたチャネルをメッセージの送信に使用する形をも判定する。言い替えると、メッセージング・モジュール１２０は、メッセージをどこに送達すべきかと、メッセージを選択されたメッセージング・チャネルにどのように送達すべきかとの両方を判定する。たとえば、メッセージング・モジュール１２０は、信号２１０のうちの１または複数を考慮することによって、メッセージの送達を遅延させ、あるいはメッセージに関するユーザへの通知の機構（ｍｅｃｈａｎｉｓｍ）を判定することができる。
【００２４】
図３を参照すると、メッセージング・モジュール１２０の１実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の工程フローが示されている。ステップ３０５では、メッセージング・モジュール１２０は、メッセージング・システム１００の別のユーザ宛であるメッセージを、メッセージング・システム１００のユーザから受信する。このメッセージは、複数の異なるメッセージング・チャネルのいずれを介しても受信されうる。
【００２５】
ステップ３１０では、メッセージング・モジュール１２０は、メッセージ受信者であるユーザを判定する。メッセージ受信者は、たとえば、所与のユーザを識別するためにユーザ・データストア１１０内の情報と照合される、メッセージに関連するメタデータから、判定されうる。他の実施形態では、メッセージング・モジュール１２０は、メッセージ自体を受信する前に、クライアント１８０からメッセージ受信者に関する識別する情報を受信することによって、意図される受信者を判定する。
【００２６】
ステップ３１５では、メッセージング・モジュール１２０は、メッセージ受信者へのメッセージの送達のために１または複数の送達チャネルを選択する。１実施形態では、複数の異なるメッセージ・チャネルは、メッセージを送達するために使用可能である。所与のユーザについて、選択モジュール１３２は、さまざまな信号を考慮に入れるポリシ・ルールのセットを適用することによって、１または複数のチャネルを選択する。１実施形態では、ポリシ・ルールは、どのメッセージ・チャネルを選択すべきかの結論につながる所定の経路を有する決定木として構成される。たとえば、送信者がメッセージを送信するのにウェブ・チャット・インターフェースを使用しており、受信者が現在はウェブ・チャット・インターフェースを使用しておらず、受信者の電話機にインストールされたモバイル・アプリケーションを受信者が有する場合に、決定木を通る１つの経路は、メッセージが携帯電話機アプリケーションに送信されるものとされることができる。
【００２７】
メッセージング・モジュール１２０は、メッセージング・チャネルの選択を案内する異なる信号を、たとえば、（１）受信者の以前のメッセージング・アクティビティ、（２）受信者の現在のステータス、（３）メッセージ自体の属性、および（４）他の信号を表す信号を、考慮することができる。受信者の以前のメッセージング・アクティビティと、それらがメッセージング・チャネルの選択にどのように影響するのかとの例は、次を含む。
【００２８】
・最後の応答チャネル
最後の応答チャネルは、送信者に応答するのに受信者によって最後に使用されたメッセージ・チャネルを指す。最後の応答チャネルは、通信のために受信者によって現在選ばれているメッセージ・チャネルを示す。１実施形態では、メッセージング・モジュール１２０は、正しいメッセージング・チャネルとして最後の応答チャネルを選択する可能性がより高い。
【００２９】
・履歴メッセージング使用
履歴メッセージング使用は、或る時間期間に亘るさまざまなメッセージング・チャネルの受信者の使用パターンを指す。たとえば、受信者が、彼のメッセージの６５％をウェブ・チャットを介して、２０％を電子メールを介して、１５％をモバイル・チャット・アプリケーションを介して過去に送信した場合に、これらの統計をメッセージング・モジュール１２０によって使用して、メッセージがその受信者にウェブ・チャットを介して送信される尤度を高めることができる。もう１つの例として、ユーザが、そのユーザの電子メールをチェックするためにメッセージング・システムに頻繁にログインする場合に、これは、メッセージが電子メールを介してその受信者に送信される尤度を高めることができる。
【００３０】
受信者の現在のステータスおよびそれがメッセージング・チャネルの選択にどのように
影響するのかのインジケータの例は、次を含む。
・クライアント・デバイスとの最近の相互作用
クライアント・デバイスとの最近の相互作用は、受信者がクライアント・デバイスと最後に相互作用した時と、ユーザによって使用されるクライアント・デバイスのタイプとを指す。たとえば、受信者が、最近に受信者のコンピュータ上でマウスを移動した場合に、メッセージがウェブ・チャットを介して受信者に送達される尤度が、高められる。もう１つの例では、受信者が、最近にユーザのセル電話機と相互作用した場合に、メッセージがＳＭＳまたはモバイル・チャットを介して受信者に送達される尤度が、高められる。
【００３１】
・現在時刻
現在時刻は、受信者の位置での現在時刻を指す。たとえば、受信者の位置で午前２時と午前６時との間である場合に、メッセージング・モジュール１２０は、メッセージを送達するためにモバイル・チャット・チャネルではなく電子メール送達チャネルを選択することができる。
【００３２】
・送信者と受信者との間の近接（Ｐｒｏｘｉｍｉｔｙ）
送信者と受信者との間の近接は、メッセージの送信者とメッセージの受信者との間の物理的距離を指す。たとえば、送信者および受信者が、物理的に極めて近接しており、送信者が、モバイル・チャット・チャネルを介して電話機を用いてメッセージを送信する場合に、メッセージング・モジュール１２０も、モバイル・チャット・チャネルを介して受信者にメッセージを送信することができる。
【００３３】
・速度
移動の速度は、受信者が移動している速度を指す。たとえば、メッセージング・モジュール１２０は、受信者が高速で移動している場合に、受信者の携帯電話機に到達するためにメッセージがモバイル・チャット・チャネルに送信される尤度を高めることができる。
【００３４】
・カレンダ・エントリ
カレンダ・エントリは、受信者のオンライン・カレンダ内のエントリまたはクライアント・デバイスにローカルに格納されるカレンダ内のエントリを指す。カレンダ・エントリは、ユーザが忙しい可能性があり、邪魔されてはならないことを示す。受信者のカレンダが、ユーザが忙しいことを示す時には、メッセージング・モジュール１２０は、メッセージがモバイル・チャット・チャネルではなく電子メール・チャネルを介して送信される尤度を高めることができる。
【００３５】
メッセージ属性およびそれらがメッセージング・チャネルの選択にどのように影響するのかの例は、次を含む。
・メッセージ長
メッセージ長は、メッセージの長さを指す。たとえば、メッセージが、かなりの量のテキストを含む場合に、メッセージング・モジュール１２０は、チャット・チャネルではなく電子メール・チャネルを介してそのメッセージを送信すると判断することができる。
【００３６】
・メッセージ添付ファイル
メッセージ添付ファイルは、メッセージに添付ファイルがあるかどうか、または添付ファイルのサイズを指す。たとえばメッセージング・モジュール１２０は、ＳＭＳチャネルが添付ファイルを扱うことができない場合があるので、添付ファイルを有するメッセージを、ＳＭＳチャネルではなく電子メール・チャネルを介してのみ送信することができる。
【００３７】
他の信号およびそれらがメッセージング・チャネルの選択にどのように影響するのかの例は、次を含む。
・チャネル可用性（ｃｈａｎｎｅｌ  ａｖａｉｌａｂｉｌｉｔｙ）
チャネル可用性は、或るチャネルが受信者との通信に使用可能であるかどうかを指す。たとえば、ユーザが、現在はオンラインであり、ウェブ・チャット・アプリケーションを介してメッセージサーバ１０１に接続されている場合に、メッセージがウェブ・チャットを介して送達される尤度が高められる。もう１つの例として、ユーザが、モバイル・チャット・アプリケーションをユーザの電話機にインストールしている場合には、メッセージがモバイル・チャット・チャネルを介して送達される尤度が高められる。
【００３８】
・起点チャネル（Ｏｒｉｇｉｎａｔｉｎｇ  ｃｈａｎｎｅｌ）
起点チャネルは、メッセージをメッセージ・システムに提供するためにメッセージの送信者によって使用されるチャネルを指す。たとえば、送信者が電子メール・チャネルを使用している場合には、そのことが、メッセージも電子メール・チャネルを介して受信者に送達される尤度を高める。
【００３９】
・送信者と受信者との間の共通性（Ａｆｆｉｎｉｔｙ）
送信者と受信者との間の共通性は、ソーシャル・ネットワーク内での送信者と受信者との間の相互作用などを含むことができる、ソーシャル・グラフ内の情報から判定される送信者と受信者との間の社会的関係を指す。たとえば、ＳＭＳなどのいくつかのメッセージング・チャネルは、よりパーソナルであると考えられ、お互いとの強い共通性（すなわち、社会的関係）を有するユーザの間でのみ使用可能である場合がある。したがって、メッセージング・モジュール１２０は、メッセージの送信者と受信者との間に強い共通性がある場合に、ＳＭＳチャネルを選択する尤度を高めることができる。
【００４０】
或る実施形態では、信号は、ユーザ・データストア１１０から取り出されうる。他の実施形態では、信号は、クライアント・デバイス１８０自体から取り出されうる。他の実施形態では、メッセージング・モジュール１２０は、ポリシ・ルールではなく、さまざまな入力信号の関数としてメッセージング・チャネルごとのチャネル・スコアを判定する機械学習されたモデルを適用する。その後、メッセージング・モジュール１２０は、少なくとも部分的にチャネル・スコアに基づき、適当なメッセージング・チャネルを選択する。機械学習されたモデルを、図７に関連してより詳細に説明する。
【００４１】
ステップ３２０では、メッセージング・モジュール１２０は、選択されたチャネルにメッセージを送達する形を判定する。言い替えると、メッセージング・モジュール１２０は、メッセージをどこに送信すべきか（すなわち、選択されたメッセージング・チャネル）と、選択されたメッセージング・チャネルを介してメッセージをどのように送信すべきか（すなわち、メッセージが送達される形）との両方を判定する。メッセージを送達すべき形の判定を、前述の信号のうちの１または複数に基づくものとすることができる。
【００４２】
１実施形態では、メッセージをどのようにして送達すべきかの判定は、新しいメッセージについて受信者にどのようにして通知すべきかの判定からなる。この判定は、ユーザの現在のステータスに基づき行われうる。たとえば、モバイル・チャット・アプリケーションを有するユーザに、ユーザの電話機を振動させること、ユーザの電話機から可聴アラート（ａｕｄｉｂｌｅ  ａｌｅｒｔ）を発すること、またはユーザの電話機上の点滅するＬＥＤのアクティブ化によってユーザに静かに通知することのいずれかによって、新しいメッセージについて通知することができる。メッセージング・モジュール１２０は、ユーザの位置で現在は夜間であり、ユーザが２時間にわたってユーザの電話機と相互作用していない場合に、通知を静かな通知にしなければならないと判定することができる。もう１つの例として、メッセージサーバによって提供されるウェブ・ページを使用する受信者に、ウェブ・ページ内に表示される視覚的インジケータ（たとえば、メッセージング・アイコン）を明るくすることまたは新しい電子メールについてユーザに通知するポップアップ・
ウィンドウを表示することのいずれかによって、新しい電子メール・メッセージについて通知することができる。メッセージング・モジュール１２０は、マウス・イベントが最後の５分に検出されなかった場合や、ユーザが忙しいことをユーザのカレンダ・エントリが示す場合に、通知がインジケータを明るくすることでなければならないと判定することができる。
【００４３】
１実施形態では、メッセージをどのように送達すべきか判定することは、メッセージをいつ送達すべきか判定することからなる。いくつかのメッセージング・チャネルについて、メッセージング・モジュール１２０は、複数のメッセージを一緒にバッチ化し、それらのメッセージを周期的なインターバルでメッセージの単一のダイジェストとしてメッセージング・チャネルを介して送達することができる。１実施形態では、ユーザの過去のメッセージング・アクティビティが、彼らがメッセージング・システムの頻繁なユーザであることを示す場合に、ダイジェストを、より高い頻度で送達することができる。ユーザの過去のメッセージング・アクティビティが、そのユーザが頻繁なユーザではないことを示す場合には、ダイジェストをより低い頻度で送達することができる。たとえば、ユーザが、メッセージサーバによって提供されるウェブ・ページに１時間に１回ログ・オンする場合に、ダイジェストを、３０分おきに送達することができる。ユーザが、毎週１回ログ・オンする場合には、ダイジェストを２日おきに送達することができる。
【００４４】
更に他の実施形態では、メッセージは、ユーザの現在のステータスに基づいてユーザに送達されうる。たとえば、ユーザのカレンダ・エントリが、ユーザが忙しいことを示す場合には、メッセージング・モジュールは、ユーザにメッセージを全く送信しないと判断することができる。ユーザがもはや忙しくなくなった後に、メッセージは、メッセージの単一のバッチまたはメッセージのストリームとして１または複数のメッセージング・チャネルを介してユーザに送達される。
【００４５】
この形でのメッセージのバッチ化および送達は、個々のメッセージの定常ストリーム（ｓｔｅａｄｙ  ｓｔｒｅａｍ）でいくつかのメッセージング・チャネルを過負荷にすることを回避する。たとえば、メッセージング・モジュール１２０が、所与の受信者との通信のチャネルとしてウェブ・チャット・チャネルおよび電子メール・チャネルを選択すると仮定する。メッセージは、ウェブ・チャット・チャネルを介して受信者に瞬時に送達されうる。しかし、電子メール・チャネルについて、メッセージは、一緒にバッチ化され、電子メール・チャネルを介してメッセージのダイジェストとして周期的に送達される。
【００４６】
或る実施形態では、メッセージング・モジュール１２０は、メッセージが受信者によって肯定応答される時に、能動的にメッセージを挿入し、ダイジェストからメッセージを除去する。たとえば、メッセージがバッチ化されている時間中に、受信者が、ウェブ・チャット・チャネルを介してメッセージの一部を読み取るか応答する場合がある。他のメッセージング・チャネルを介して既に読み取られたか応答されたメッセージについて、メッセージング・モジュール１２０は、これらのメッセージをダイジェストから除去することができる。したがって、ダイジェストは、複製メッセージで受信者を閉口させることを回避するために、受信者によって肯定応答されていないメッセージだけを含む。
【００４７】
更に他の実施形態では、選択されたメッセージング・チャネルには優先順位が付けられ、その優先順位の順番でチャネルに送達されうる。メッセージは、まず、より高い優先順位のチャネルに送達され、その後、事前に決定された長さの時間以内にユーザから応答が受信されない場合に、より低い優先順位のチャネルに送達される。たとえば、選択されたメッセージング・チャネルを、ウェブ・チャット・チャネルおよびモバイル・チャット・チャネルとし、ウェブ・チャット・チャネルをより高い優先順位のチャネルとすることができる。受信者にアドレッシングされたメッセージは、まず、ウェブ・チャット・チャネ
ルを介して送達される。２０秒以内に受信者から応答が受信されない場合には、メッセージング・モジュール１２０は、モバイル・チャット・チャネルを介してメッセージを送達する。
【００４８】
或る実施形態では、メッセージング・モジュール１２０は、ユーザ入力を全く用いずに、より低い優先順位のチャネルを自動的に試みる判断を行う。他の実施形態では、送信者が、より低い優先順位のチャネルを介するメッセージの送達を取り消すか進行させるオプションを与えられ、メッセージング・モジュール１２０は、このユーザ入力に従って、より低い優先順位のチャネルにメッセージを送達する。或る実施形態では、チャネルの優先順位は前もって設定されてもよく、その結果、いくつかのチャネルは、必ず他のチャネルよりも高い優先順位を有するようになる。あるいは、チャネル・スコアがチャネルごとに計算される場合に、より高いスコアを有するチャネルに、より高い優先順位を与えることができ、より低いスコアを有するチャネルに、より低い優先順位を与えることができる。
【００４９】
ステップ３２５では、メッセージング・モジュール１２０は、判定された形で選択されたチャネル（１または複数）を介して、受信者にメッセージを送達する。或る実施形態では、メッセージを送達することは、クライアント・デバイス１８０にメッセージを送信することを含むことができる。他の実施形態では、たとえば、選択されたチャネルが電子メール・チャネルであり、ユーザの電子メール受信箱がメッセージサーバ１０１によってホスティングされる場合に、メッセージを送達することは、ユーザの受信箱にメッセージを格納することを含む。選択されたチャネルが、電子メール・チャネルであり、受信者電子メールが、メッセージサーバ１０１によってホスティングされない場合には、メッセージング・モジュール１２０は、ｓｉｍｐｌｅ  ｍａｉｌ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）などのメール・プロトコルを介してリモート・メッセージサーバにメッセージを送信することができる。その後、格納された電子メールは、後でメッセージ受信者によって取り出されうる。
【００５０】
選択されたメッセージング・チャネルへのメッセージの選択的送達は、メッセージがタイムリーな形で意図される受信者（ｉｎｔｅｎｄｅｄ  ｒｅｃｅｉｐｉｅｎｔ）に達することを保証するのに有益である。さらに、複数のチャネルが選択される場合には、メッセージのコピーが、選択されたメッセージング・チャネルのそれぞれを介して送達され、これはさらに、メッセージが受信者に到達する尤度を高め、かつ／または受信者がメッセージを受信するまでの予期される時間を減らす。各メッセージング・チャネルが、メッセージの内容に関する要件の異なるセットを有することができるので、各チャネルに送信されるメッセージのコピーは、正確な複製であるのではなく、メッセージング・チャネルの要件に従うように再フォーマットされ得る。
【００５１】
ユーザ・インターフェース
ここで図４を参照すると、メッセージング・モジュール１２０の更に他の実施形態による、メッセージング・モジュール１２０によってクライアント・デバイス１８０に提供されるユーザ・インターフェース４００が示されている。１実施形態では、メッセージング・モジュール１２０は、メッセージが受信者にどのように送達されるのかの表示を含むユーザ・インターフェース４００をクライアント・デバイス１８０に提供する。ユーザ・インターフェース４００は、たとえば、電子メールを組み立てるか他のユーザとチャットするためにメッセージサーバ１０１によって提供されるウェブ・ページとすることができる。視覚的表示は、メッセージがどのように送達されるのかの予測性の感覚を送信者に与え、メッセージング・システム１００の使用に対する信頼を構築する。
【００５２】
図示されているように、ユーザ・インターフェース４００は、ユーザがメッセージの意図される受信者（ｉｎｔｅｎｄｅｄ  ｒｅｃｅｉｐｉｅｎｔ  ｏｆ  ｔｈｅ  ｍｅｓｓａ
ｇｅ）の名前を入力することを可能にする相互作用領域４０５を含む。ユーザ・インターフェース４００の別の領域内の複数の視覚的インジケータ４１０は、どのメッセージング・チャネルが、意図される受信者にメッセージを送達するのに使用されるのかを示す。ここでメッセージの受信者は、ジム（Ｊｉｍ）という名前によるユーザであり、視覚的インジケータ４１０は、メッセージが、ジムの携帯電話機にインストールされたモバイル・チャット・アプリケーションおよびジムのコンピュータ・ブラウザ内のチャット・ウィンドウに送信されることを示す。
【００５３】
ユーザ・インターフェース４００の視覚的インジケータ４１０は、経時的に変化することができる。メッセージング・モジュール１２０は、受信者にメッセージを送達するのに使用されているメッセージ・チャネルに対応するように、視覚的インジケータ４１０を継続的に更新する。たとえば、当初に、選択されたメッセージ・チャネルは、モバイル・チャットおよびウェブ・チャットとされうる。受信者にメッセージを送信した後に、受信者は、ウェブ・チャット・チャネルを介してそのメッセージに応答することができる。この応答の受信に応答して、メッセージング・モジュール１２０は、ウェブ・チャット・チャネルが、今や、受信者にメッセージを送達するための適切なチャネルであると判断し、モバイル・チャット・チャネルを選択解除する。その後、視覚的インジケータ４１０は、メッセージング・チャネルが、今やモバイル・チャットではなくウェブ・チャットであることを示すように更新される。或る実施形態では、視覚的インジケータは、対話型とすることができ、単に正しいメッセージング・チャネルの提案である。したがって、ユーザは、メッセージング・モジュール１２０によって選択されたメッセージング・チャネルをオーバーライドする（ｏｖｅｒｒｉｄｅ）ために、推奨されるチャネルのいずれをも選択し、または選択解除することができる。
【００５４】
ユーザ・インターフェース４００は、メッセージの本体を入力するための、ユーザ・インターフェース４００のもう１つの領域内のテキスト・ボックス４１５をも含む。ユーザ・インターフェース４００はさらに、着信メッセージ（ユーザであるジムから受信された）および発信メッセージ（ユーザであるジムに送信される）を含むメッセージのスレッドを表示するもう１つのテキスト・ボックス４２０を含む。言い替えると、テキスト・ボックス４２０などは、チャット・ウィンドウのように働き、２つのユーザの間の会話のメッセージを記憶する。メッセージは、メッセージの送達または受信に使用されるメッセージング・チャネルにかかわりなく、テキスト・ボックス４２０内で単一のスレッドとして維持される。メッセージング・チャネルは、視覚的インジケータ４１０によって示されるように経時的に変化する場合があるが、送信者と受信者との間の会話は、ユーザ・インターフェース４００を介して中断されないままであるように見える。
【００５５】
さらに、ユーザ・インターフェース４００は、図４に示されたものとは異なる外見を有することができる。或る実施形態では、インターフェース４００は、受信者の現在の物理的位置の視覚的表示を含むことができる。位置は、たとえば、受信者の電話機内のＧＰＳ情報、受信者のコンピュータのＩＰアドレス、またはユーザの位置を示すメッセージング・システムから使用可能な任意の他の情報（たとえば、ユーザが現在食事をしているレストランに関する情報、ユーザが現在参加しているコンサートに関する情報など）から判定することができる。或る実施形態では、インターフェース４００は、選択されたチャネルに関する受信者のプレゼンス（ｐｒｅｓｅｎｃｅ）の表示を含むことができる。プレゼンスは、一般に、受信者が所与のチャネルを介してメッセージに応答するために求めに応じられるかどうかを指す。たとえば、ウェブ・チャット・チャネルが選択されているが、ユーザが、チャット・ウィンドウを開くことができないか、ユーザが、過去３０分間にマウス移動を全く行わなかった場合がある。したがって、インターフェース４００は、メッセージがウェブ・チャット・チャネルを介して送信されるが、ユーザがこのチャネルを介して応答するために求めに応じられない可能性があることの表示を含むことができる。
【００５６】
ここで図５を参照すると、メッセージング・モジュール１２０の１実施形態による、ユーザ・インターフェース内で選択されたチャネルの表示を提供する工程フローが示されている。ステップ５０５では、メッセージング・モジュール１２０は、クライアント・デバイス１８０のユーザへの表示のために、クライアント・デバイス１８０にユーザ・インターフェースを提供する。たとえば、ユーザ・インターフェースは、図４のユーザ・インターフェースに類似するものとされてもよい。ステップ５１０では、メッセージング・モジュール１２０は、メッセージの意図される受信者を識別する情報を受け取る。たとえば、クライアント・デバイス１８０のユーザは、彼または彼女が連絡を望むユーザの名前を入力するか、ユーザのリストからユーザを選択することができる。その後、この情報は、メッセージサーバ１０１に送信され、メッセージング・モジュール１２０によって受信される。
【００５７】
ステップ５１５では、メッセージング・モジュール１２０は、意図される受信者にメッセージを送達するために、１または複数のチャネルを選択する。複数のメッセージング・チャネルが、メッセージの送達に使用可能である場合があるので、メッセージング・モジュールは、既に図２および図３に関連して説明したように、さまざまな情報信号を使用する異なるメッセージング・チャネルの中から選択する。メッセージング・モジュール１２０は、メッセージング・チャネルを自動的に選択し、その結果、適当なメッセージング・チャネルが、メッセージの意図される受信者に連絡するために選択されるようになる。
【００５８】
ステップ５２０では、メッセージング・モジュール１２０は、ユーザ・インターフェース内に選択されたメッセージ・チャネル（１または複数）の視覚的表示を提供する。この表示は、選択されたメッセージ・チャネル（１または複数）に関する情報を伝える任意の視覚的表示、たとえば、選択されたメッセージ・チャネルを説明するテキストまたはメッセージ・チャネルを示すグラフィックとされてもよい。複数のチャネルが選択される場合には、チャネルごとに提供される別々の視覚的インジケータがあってもよい。したがって、これらの表示を提供することによって、送信者は、メッセージがどこに送信されるのかを正確に知る。
【００５９】
その後、送信者は、メッセージを入力し、これをメッセージング・モジュールに提供する。メッセージング・モジュール１２０は、送信者からメッセージを受け取り（図示せず）、そのメッセージを選択されたチャネル（１または複数）を介して受信者に送達する。受信者が応答し、２つのユーザの間の会話が進行する時に、メッセージング・モジュール１２０は、選択されたメッセージング・チャネルに変化がある（すなわち、新しいチャネルが選択されるか古いチャネルが選択解除される）場合に、選択されたメッセージング・チャネルに対応するように視覚的インジケータを継続的に更新する。たとえば、メッセージに応答するのに受信者によって最後に使用されたチャネルは、メッセージング・モジュール１２０によって、適切な送達チャネルにするために選択されうる。
【００６０】
新しいメッセージが送信され、受信される時に、それらは、メッセージを送達するメッセージング・チャネルが変化する時であっても、スレッドに追加され、単一のスレッドとしてテキスト・ボックス４２０内に表示される。たとえば、受信者は、或るメッセージング・チャネル（たとえば、ＳＭＳ）を介して応答メッセージを送信し、その後、異なるメッセージング・チャネル（たとえば、ウェブ・チャット）を介して別の応答メッセージを送信することができる。両方のメッセージが、テキスト・ボックス４２０内の同一のスレッドまたは会話の一部としての表示のために提供される。したがって、送信者には、会話の流れを中断することなく、異なるメッセージング・チャネルの間で自動的にシームレスに遷移する単一のインターフェースが与えられる。
【００６１】
複製メッセージの撤回
１実施形態では、メッセージング・モジュール１２０は、受信者がメッセージを受信する可能性を高め、および／または受信者がそれを受信するまでの期待される時間を減らすために、メッセージを受け取り、複数のメッセージング・チャネルを介してメッセージをその受信者に送達する。メッセージング・モジュール１２０が、メッセージング・チャネルのうちの１つを介して受信者から応答を受信すると、メッセージング・モジュール１２０は、複製メッセージでユーザを閉口させることを回避するために、他のメッセージング・チャネルに送信されたメッセージを撤回する。将来に、メッセージング・モジュール１２０は、受信者に将来のメッセージを送達するための正しいチャネルとして、応答チャネルを使用することができる。
【００６２】
ここで図６を参照すると、メッセージング・モジュール１２０の１実施形態による、メッセージを撤回する工程フローが示されている。ステップ６０３では、メッセージング・モジュール１２０は、メッセージング・システムの別のユーザ宛であるメッセージをメッセージング・システムのユーザから受け取る。たとえば、メッセージは、クライアント・デバイスのユーザから受け取られうる。ステップ６０５では、メッセージング・モジュール１２０は、メッセージの受信者によってチェックすることができる複数のメッセージング・チャネルを介して、受信者にメッセージを送達する。たとえば、メッセージング・モジュール６１０は、図３に関連して説明した工程を介して、選択された複数のメッセージング・チャネルによってメッセージを送達することができる。
【００６３】
ステップ６１０では、メッセージング・モジュールは、メッセージに対する応答をメッセージの受信者からメッセージング・チャネルを介して受信する。たとえば、オリジナル・メッセージが、ウェブ・チャット・チャネルおよびＸＭＰＰチャネルを介して受信者に送信された場合がある。その後、受信者は、ウェブ・チャット・チャネルではなくＸＭＰＰチャネルを介して戻りメッセージを送信することによって、応答しうる。
【００６４】
ステップ６１５では、撤回モジュール１３８は、他のチャネルすなわちユーザがそこから応答しなかったチャネルに送信されたメッセージのコピーを撤回する。たとえば、ユーザが、ウェブ・チャット・ウィンドウ内とＸＭＰＰを介してとの両方でメッセージのコピーを受信すると仮定する。ユーザがＸＭＰＰを介して応答する場合には、撤回モジュール１３８は、ウェブ・チャットを介して送信されたメッセージのコピーを撤回する。或る実施形態では、撤回することは、他のメッセージング・チャネルを介して送達されたメッセージのコピーを削除することを含むことができる。あるいは、撤回することは、メッセージ自体を除去することなく、メッセージのコピーを読み取られたものとしてマーキングすることを含むことができる。
【００６５】
いくつかのメッセージング・チャネルは、撤回可能チャネル（ｒｅｓｃｉｎｄａｂｌｅ
ｃｈａｎｎｅｌｓ）であってもよく、この撤回可能チャネルは、メッセージサーバ１０１がそこからメッセージを撤回できるチャネルである。撤回可能チャネルの例は、ウェブ・チャットおよびメッセージサーバ１０１によってホスティングされる電子メールを含む。複数の送達チャネルのうちの幾つかは、非撤回可能チャネル（ｎｏｎ−ｒｅｓｃｉｎｄａｂｌｅ  ｃｈａｎｎｅｌｓ）であってもよく、この非撤回可能チャネルは、メッセージサーバ１０１がそこからメッセージを撤回できないチャネルである。非撤回可能チャネルの例は、ＸＭＰＰ、ＳＭＳ、プッシュ通知に頼るモバイル・チャット、および他のメッセージサーバ１０１によってホスティングされる電子メールを含む。メッセージング・モジュール１３８は、撤回可能メッセージ・チャネルからメッセージを撤回しうるが、非撤回可能メッセージ・チャネルからはメッセージを撤回しない。
【００６６】
メッセージング・モジュール１２０は、他の理由からメッセージを撤回することもでき
る。１実施形態では、メッセージング・モジュール１２０は、特定のチャネルを介して送達されたメッセージのコピーがユーザによって読み取られたことの通知を受信する。たとえば、ユーザは、メッセージをクリックすることによってウェブ・ページを介してユーザの電子メール・メッセージにアクセスすることができ、メッセージのクリックのおかげで、メッセージング・モジュール１２０は、メッセージがユーザによってアクセスされ、読み取られたことの表示を与えられる。この表示の受信に応答して、メッセージング・モジュール１２０は、他のメッセージング・チャネルに送達されたメッセージのコピーを撤回する。更に他の実施形態では、メッセージング・モジュール１２０は、或る長さの時間が経過した後に、或るチャネルを介して送信されたメッセージを受信者が読み取らない場合に、そのチャネルからメッセージを撤回することができる。
【００６７】
メッセージング・モジュールのトレーニング
１実施形態では、メッセージング・モジュール１２０は、メッセージング・チャネルを選択するための予測モデルを展開するトレーニング工程を受ける。その後、予測モデルが、たとえば図３の工程で使用されることで、受信者にメッセージを送達するための１または複数のメッセージング・チャネルを選択することができる。１実施形態では、予測モデルは、メッセージング・システムの多数のユーザに適用できるグローバル・モデルである。
【００６８】
一般的に言って、メッセージング・モジュール１２０は、トレーニング・データを収集することによってモデルを構築する。トレーニング・データは、ユーザのグループに関する好まれるメッセージング・チャネル（ｐｒｅｆｅｒｒｅｄ  ｍｅｓｓａｇｉｎｇ  ｃｈａｎｎｅｌｓ）および好まれるメッセージング・チャネルに関連する信号に関する情報を含む。たとえば、メッセージング・モジュール１２０は、複数のメッセージング・チャネルを介してユーザにメッセージを送達することができる。ユーザは、メッセージング・チャネルのうちの１つを介してメッセージに応答したり、またはメッセージを見たりする。このメッセージング・チャネルは、メッセージング・モジュール１２０に、ユーザによって好まれるメッセージング・チャネルの表示を与える。１または複数の信号のステータスが、識別され（たとえば、受信者が、メッセージに応答するかメッセージを受信する時に、高速で移動している）、好まれるメッセージング・チャネルに関連付けられる。
【００６９】
トレーニング・データにアクセスすることと、信号と好まれるメッセージング・チャネルとの間の関係を分析することとによって、メッセージング・モジュール１２０は、メッセージ受信者によって好まれるメッセージング・チャネルを予測するのに使用できるモデルを生成する。このモデルは、入力として或る信号を受け入れ、その信号を使用して、メッセージング・チャネルごとのチャネル・スコアを生成する。チャネル・スコアは、受信者の好まれるメッセージング・チャネル（１または複数）を示す。予測モデルが、より多くのトレーニング・データが収集される時に更新されることで、より多くの信号もしくはメッセージング・チャネルが使用される時に、ならびに／または新しいメッセージング・チャネルおよび通知機構（ｎｏｔｉｆｉｃａｔｉｏｎ  ｍｅｃｈａｎｉｓｍｓ）もしくは他のメッセージング特徴（ｍｅｓｓａｇｉｎｇ  ｆｅａｔｕｒｅｓ）を追加することなどによって、システムが更新される時に、予測モデルの反復改良（ｉｔｅｒａｔｉｖｅ  ｒｅｆｉｎｅｍｅｎｔ）を可能にすることができる。
【００７０】
１実施形態では、予測モデルは、所与の受信者に関するメッセージング・チャネルごとのスコアを計算する関数である。たとえば、関数を、さまざまな情報信号の荷重和とすることができ、関数は、次の式によって表される。
【００７１】
【数１】
2013545199.tif 000003
【００７２】
ここで、ＳｃｏｒｅＮＭは、特定のチャネルＮおよびメッセージ受信者Ｍについて計算されるチャネル・スコアを表す。Ｘ、Ｙ、およびＺは、特定の受信者Ｍに関する異なる情報信号の数値表現である。Ａ、Ｂ、およびＣは、信号のそれぞれの数値重みである。重みＡ、Ｂ、およびＣは、トレーニング・データのセット内の、信号と、ユーザによって好まれるチャネルとの間の関係を分析する学習工程を介して計算される。この関数がさまざまなメッセージング・チャネルに適用される時に、より高いスコアは、チャネルが受信者によって好まれることを示し、より低いスコアは、チャネルが受信者によって好まれないことを示す。
【００７３】
ここで図７を参照すると、１実施形態による、予測モデルをトレーニングする工程フローが示されている。ステップ７１０では、メッセージング・モジュール１２０は、複数のメッセージング・チャネルを介して受信者にメッセージを送達する。また、ステップ７１０では、メッセージング・モジュール１２０は、メッセージが送達される時に１または複数の情報信号のステータスを記録する。１または複数の情報信号は、ユーザおよび／またはメッセージに関連する。たとえば、特定の受信者にメッセージを送信する時に、メッセージング・モジュール１２０は、受信者が高速で移動していることを示す情報を記録することもできる。多数の異なるタイプの信号が記録されることができ、この記録は、この情報から生成されるモデルの正確さを改善することに役立つ。
【００７４】
ステップ７１５では、メッセージング・モジュール１２０は、メッセージの受信者によって好まれるメッセージング・チャネルを判定する。１実施形態では、受信者は、メッセージング・チャネルのうちの１つを介してメッセージに応答することができ、この応答は、応答チャネルが受信者の好まれるチャネルであることの表示として扱われる。更に他の実施形態では、受信者は、メッセージング・チャネルのうちの１または複数を使用してメッセージのコピーを読み取ることができ、メッセージを読み取るのに使用される最初のチャネルは、好まれるメッセージング・チャネルの表示として扱われる。更に他の実施形態では、メッセージング・モジュール１２０は、どのメッセージング・チャネルが好まれるメッセージング・チャネルであるのかに関してユーザにプロンプトを出す（ｐｒｏｍｐｔ）ことができる。たとえば、ユーザに、質問「どのチャネルからメッセージを受信することをお好みですか」を提示することができる。その後、プロンプトに対するユーザの応答は、好まれるメッセージング・チャネルの明示的識別として扱われる。
【００７５】
ステップ７２０では、メッセージング・モジュール１２０は、好まれるメッセージング・チャネルを、記録された情報信号のステータスに関連付ける。１実施形態では、メッセージング・チャネルと信号との間の関係は、共起テーブル（ｃｏ−ｏｃｃｕｒｒｅｎｃｅ
ｔａｂｌｅ）に格納される。共起テーブル内の各エントリは、好まれるチャネルに関連してどれほどしばしば特定の信号が発生するのかを指定する。以下は、共起テーブルの基本的な例である。
【００７６】
【表１】
2013545199.tif 000004
【００７７】
このテーブルでは、受信者の移動速度が８ｋｍ／ｈ（５ｍｐｈ）を超える時に、モバイル・チャット・チャネルは、８５０回の好まれるメッセージング・チャネルであり、電子メール・チャネルは、１００回の好まれるメッセージング・チャネルである。カレンダ・エントリが、受信者が忙しいことを示す時に、モバイル・チャット・チャネルは、１２０回の好まれるメッセージング・チャネルであり、電子メール・チャネルは、８２０回の好まれるメッセージング・チャネルである。したがって、共起テーブル内のデータは、電子メール・チャネルと比較した場合に、モバイル・チャット・チャネルが、受信者が高速で移動している（たとえば、受信者が自動車内にいる）時に頻繁に使用されることを示す。このデータは、ユーザのカレンダ・エントリが、ユーザが忙しいことを示す（たとえば、ユーザが会議中である）時に、電子メール・チャネルが頻繁に使用されることをも示す。
【００７８】
ステップ７２５では、メッセージング・モジュール１２０は、信号とメッセージング・チャネルとの間の関係に関するさらなる情報を収集するために、この工程を繰り返す。統計的に有意な量の情報が収集されるまで、この工程は、何回でも繰り返される。トレーニング・データの収集が完了した後に、この工程はステップ７３０に進む。
【００７９】
ステップ７３０では、メッセージング・モジュール１２０は、メッセージの受信者によって好まれる１または複数のメッセージング・チャネルを予測するのに使用できるモデルをトレーニングする。モデルは、多数のユーザから収集されたデータから生成されるので、メッセージング・システムの１または複数の異なるユーザに適用できるグローバル・モデルである。他の実施形態では、特定のユーザからのみデータを収集することと、その情報からモデルを生成することとによって、モデルは、その特定のユーザに合わせて調整されうる。
【００８０】
１実施形態では、その共起（ｃｏ−ｏｃｃｕｒｒｅｎｃｅｓ）によって示されるように、信号とメッセージング・チャネルとの間の関係の強さは、メッセージング・チャネルごとの信号ごとに重みを生成するのに使用される。再び式１を参照すると、重みは、Ａ、Ｂ、およびＣなどの変数である。重みは、ある上限と下限（たとえば、０から１００まで）の間でスケーリングされうる。たとえば、モバイル・チャット・チャネルについて、高い速度が、「８５」の重みに関連付けられ、カレンダ・エントリが、「１２」の重みに関連付けられる。電子メール・チャネルについて、高い速度が、「１２」の重みに関連付けられ、カレンダ・エントリが、「８２」の重みに関連付けられる。或る実施形態では、重みは、或る信号の重要性を強調するために、異なる信号にまたがってだけでなく、異なるチャネルの間でもスケーリングされる。他の実施形態では、モデルは、式１で表されるものより複雑なまたはこれとは異なる関数によって表されてもよい。
【００８１】
ステップ７３５では、メッセージング・モジュール１２０は、固定記憶媒体またはメモリなどのストレージ・デバイスに、予測モデルを格納する。モデルは、その後、メッセージング・システムのユーザにメッセージを送達するための１または複数のメッセージング・チャネルを自動的に選択するのに、使用される。たとえば、所与のメッセージの入力信号およびメッセージの受信者のセットを与えられて、メッセージング・モジュール１２０は、予測モデルを使用して、異なるメッセージング・チャネルのチャネル・スコアを判定
する。１実施形態では、或るしきい値を越えるスコアを有するチャネルが、正しいメッセージング・チャネルとして選択される。しきい値は、相対的（たとえば、第５０パーセンタイル超）または絶対値とすることができる。他の実施形態では、メッセージング・モジュール１２０は、正しいメッセージング・チャネルを選択する際に、他の要因（たとえば、金銭的コストまたは送信遅延）と組み合わせてスコアを考慮する。有益なことに、この形でのトレーニングおよびその後のモデルの生成は、ユーザによって好まれるメッセージング・チャネルの正確な予測を可能にし、これは、メッセージを適当なメッセージング・チャネルを介してユーザに送達することを可能にする。
【００８２】
追加の考慮事項
本発明の実施形態の前述の説明は、例示のために提示されたものであり、網羅的であることまたは本発明を開示された正確な形態に限定することは意図されていない。当業者は、上の開示に鑑みて、多数の修正形態および変形形態が可能であることを了解するであろう。
【００８３】
この説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して本発明の実施形態を説明する。これらのアルゴリズム的説明および表現は、データ処理技術の当業者によって、彼らの作業の実質を他の当業者に伝えるのに一般的に使用されるものである。これらの動作は、機能的、計算的、または論理的に説明されるが、コンピュータ・プログラムもしくは同等の電気回路、マイクロコードなどによって実施されると理解される。さらに、時々、一般性を失わずに、動作のこれらの配置をモジュールと称することが便利であることも分かっている。説明された動作およびそれに関連するモジュールを、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実施することができる。
【００８４】
本明細書で説明されるステップ、動作、または工程のいずれをも、１または複数のハードウェア・モジュールまたはソフトウェア・モジュールを単独でまたは他のデバイスと組み合わせて用いて実行しまたは実施することができる。１実施形態では、ソフトウェア・モジュールが、説明されるステップ、動作、または工程のいずれかまたはすべてを実行するためにコンピュータ・プロセッサによって実行され得るコンピュータ・プログラム・コードを含む固定コンピュータ可読媒体からなるコンピュータ・プログラム製品を用いて実施される。
【００８５】
本発明の実施形態は、本明細書の動作を実行する装置に関係することもできる。この装置を、必要な目的のために特に構成することができ、かつ／またはこの装置は、コンピュータ内に格納されたコンピュータ・プログラムによって選択的にアクティブ化されまたは再構成される汎用コンピューティング・デバイスからなることができる。そのようなコンピュータ・プログラムを、電子命令を記憶するのに適する、コンピュータ・システム・バスに結合された固定コンピュータ可読記憶媒体または任意のタイプの媒体に格納することができる。さらに、本明細書で言及されたすべてのコンピューティング・システムは、単一のプロセッサを含むことができ、あるいは、高められた計算能力のために設計された複数のプロセッサを使用するアーキテクチャとすることができる。
【００８６】
最後に、本明細書で使用される言葉は、原理的に可読性および教育的目的のために選択され、発明的主題を詳細に描写しまたはその範囲を定めるために選択されたものではない可能性がある。したがって、本発明の範囲が、この詳細な説明ではなく、本明細書に基づく出願時に生じる特許請求の範囲によって限定されることが意図されている。したがって、本発明の実施形態の開示は、添付の特許請求の範囲に示された本発明の範囲の、限定ではなく例示であることが意図されている。
【図１】
2013545199.tif 000005
【図２】
2013545199.tif 000006
【図３】
2013545199.tif 000007
【図４】
2013545199.tif 000008
【図５】
2013545199.tif 000009
【図６】
2013545199.tif 000010
【図７】
2013545199.tif 000011
【国際調査報告】
2013545199.tif 000012