IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フェイスブック,インク.の特許一覧

特表2023-531346補助システムにおけるマルチパーソンコーリングのための単一の要求の使用
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-24
(54)【発明の名称】補助システムにおけるマルチパーソンコーリングのための単一の要求の使用
(51)【国際特許分類】
   G06F 16/90 20190101AFI20230714BHJP
   H04L 51/02 20220101ALI20230714BHJP
【FI】
G06F16/90 100
H04L51/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022549283
(86)(22)【出願日】2021-06-24
(85)【翻訳文提出日】2022-10-13
(86)【国際出願番号】 US2021038861
(87)【国際公開番号】W WO2022005865
(87)【国際公開日】2022-01-06
(31)【優先権主張番号】16/914,966
(32)【優先日】2020-06-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.QRコード
(71)【出願人】
【識別番号】508178054
【氏名又は名称】メタ プラットフォームズ, インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ベアル, ノーム ヤコブ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
一実施形態では、方法は、補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、複数の第2のユーザに同時にコールするためのユーザ要求を受信することであって、ユーザ要求が、複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、複数の第2のユーザにそれぞれ関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することと、補助xbotによって、複数のエンティティ識別子に基づいて、グループコールを複数の第2のユーザに対して同時に始動することとを含む。
【選択図】図8C
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピューティングシステムによって、
補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、複数の第2のユーザに同時にコールするためのユーザ要求を受信することであって、前記ユーザ要求が、前記複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、
前記複数の第2のユーザにそれぞれ関連付けられた複数のエンティティ識別子への前記1つまたは複数の参照を解析することによって前記複数の第2のユーザを識別することと、
前記補助xbotによって、前記複数のエンティティ識別子に基づいて、グループコールを前記複数の第2のユーザに対して同時に始動することと
を含む、方法。
【請求項2】
前記1つまたは複数の参照が、少なくともあいまいな言及を備え、前記あいまいな言及が、前記複数の第2のユーザのうちの特定の第2のユーザに対応する、請求項1に記載の方法。
【請求項3】
前記特定の第2のユーザを識別するために前記あいまいな言及のあいまいさを除去することをさらに含み、前記あいまいさ除去は、
個人化された機械学習モデルに基づいて複数の候補ユーザを決定することであって、各候補ユーザが信頼性スコアに関連付けられる、複数の候補ユーザを決定することと、
前記複数の候補ユーザのそれぞれの信頼性スコアに基づいて前記複数の候補ユーザをランク付けすることと、
前記複数の候補ユーザのそれぞれのランク付けに基づいて前記複数の候補ユーザから前記特定の第2のユーザを識別することと
を含む、請求項2に記載の方法。
【請求項4】
前記補助xbotを介して前記クライアントシステムに、前記第1のユーザに前記特定の第2のユーザの確認についてプロンプトするための命令を送ること
をさらに含む、請求項3に記載の方法。
【請求項5】
前記1つまたは複数の参照が、少なくともあいまいな言及を備え、前記あいまいな言及が、前記複数の第2のユーザの中の第2のユーザのグループに対応する、請求項1に記載の方法。
【請求項6】
第2のユーザの前記グループを識別するために前記あいまいな言及のあいまいさを除去することをさらに含み、前記あいまいさ除去が、前記あいまいな言及を複数の所定のグループにそれぞれ対応するグループ識別子のリストと比較することを含み、各所定のグループが複数のユーザを備える、請求項5に記載の方法。
【請求項7】
前記あいまいな言及に対応するグループ識別子が存在しないと決定することと、
前記補助xbotを介して前記クライアントシステムに、前記第1のユーザに前記グループを作成するようにプロンプトするための命令を送ることと、
前記補助xbotを介して前記クライアントシステムから、前記グループ中の前記第2のユーザの各々に関連付けられた情報を備える1つまたは複数のユーザ入力を受信することと、
前記1つまたは複数のユーザ入力に基づいて前記第2のユーザの前記グループを作成することと、
前記作成されたグループをデータストアに記憶することであって、前記グループがグループ識別子に関連付けられる、前記作成されたグループをデータストアに記憶することと
をさらに含む、請求項5に記載の方法。
【請求項8】
自然言語理解モジュールに基づいて、前記ユーザ要求に関連付けられた1つまたは複数のセパレータを識別すること
をさらに含み、
随意に、前記複数の第2のユーザを識別することが、前記1つまたは複数のセパレータに基づく、
請求項1に記載の方法。
【請求項9】
前記ユーザ要求がボイス入力に基づく、請求項1に記載の方法。
【請求項10】
前記ユーザ要求に基づいて、前記グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択すること
をさらに含む、請求項1に記載の方法。
【請求項11】
前記第1のユーザに関連付けられたデフォルト設定、前記第1のユーザに関連付けられたユーザ選好、前記第1のユーザと前記コンピューティングシステムとの間の履歴対話、または所定のルールのうちの1つまたは複数に基づいて、前記グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択すること
をさらに含む、請求項1に記載の方法。
【請求項12】
前記グループコールがボイスコールまたはビデオコールである、請求項1に記載の方法。
【請求項13】
前記複数の第2のユーザにそれぞれ関連付けられた前記複数のエンティティ識別子への前記1つまたは複数の参照を解析することによって前記複数の第2のユーザを識別することは、
前記第1のユーザに関連付けられた1つまたは複数の連絡先リストにアクセスすることであって、各連絡先リストが、複数のエンティティ識別子に関連付けられた複数の名前を備える、1つまたは複数の連絡先リストにアクセスすることと、
前記複数の第2のユーザについての前記複数のエンティティ識別子を決定するために前記1つまたは複数の参照を前記複数の名前と比較することと
を含む、請求項1に記載の方法。
【請求項14】
前記1つまたは複数の連絡先リストが、
前記クライアントシステム、
前記コンピューティングシステムのうちの1つまたは複数、または
1つまたは複数のサードパーティコンピューティングシステム
のうちの1つまたは複数に記憶される、請求項13に記載の方法。
【請求項15】
前記ユーザ要求が単一の要求のみを備え、前記グループコールを前記複数の第2のユーザに対して同時に始動することが、前記単一の要求に応答する、請求項1に記載の方法。
【請求項16】
前記グループコールを前記複数の第2のユーザに対して同時に始動することは、前記グループコールを始動するために追加のユーザ入力が必要でないと決定することを含む、請求項1に記載の方法。
【請求項17】
前記グループコールを前記複数の第2のユーザに対して同時に始動することが、
前記第1のユーザから前記複数の第2のユーザのそれぞれへの複数の通信要求を同時に生成することと、
ネットワークを介して前記複数の第2のユーザに関連付けられた複数のクライアントシステムに前記複数の通信要求を同時に送ることと
を含む、請求項1に記載の方法。
【請求項18】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、請求項1から17のいずれか一項に記載の方法を行うように、または
補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、複数の第2のユーザに同時にコールするためのユーザ要求を受信することであって、前記ユーザ要求が、前記複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、
前記複数の第2のユーザにそれぞれ関連付けられた複数のエンティティ識別子への前記1つまたは複数の参照を解析することによって前記複数の第2のユーザを識別することと、
前記補助xbotによって、前記複数のエンティティ識別子に基づいて、グループコールを前記複数の第2のユーザに対して同時に始動することと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項19】
1つまたは複数のプロセッサと、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記非一時的メモリが前記プロセッサによって実行可能な命令を備え、前記プロセッサは、前記命令を実行したとき、請求項1から17のいずれか一項に記載の方法を行うように、または
補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、複数の第2のユーザに同時にコールするためのユーザ要求を受信することであって、前記ユーザ要求が、前記複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、
前記複数の第2のユーザにそれぞれ関連付けられた複数のエンティティ識別子への前記1つまたは複数の参照を解析することによって前記複数の第2のユーザを識別することと、
前記補助xbotによって、前記複数のエンティティ識別子に基づいて、グループコールを前記複数の第2のユーザに対して同時に始動することと
を行うように動作可能である、システム。
【請求項20】
ソフトウェアを具現するコンピュータプログラム製品であって、前記ソフトウェアは、実行されたとき、請求項1から17のいずれか一項に記載の方法を行うように、または
補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、複数の第2のユーザに同時にコールするためのユーザ要求を受信することであって、前記ユーザ要求が、前記複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、
前記複数の第2のユーザにそれぞれ関連付けられた複数のエンティティ識別子への前記1つまたは複数の参照を解析することによって前記複数の第2のユーザを識別することと、
前記補助xbotによって、前記複数のエンティティ識別子に基づいて、グループコールを前記複数の第2のユーザに対して同時に始動することと
を行うように動作可能である、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ネットワーク環境内のデータベースおよびファイル管理に関し、詳細には、スマート補助システム(assistant system)のためのハードウェアおよびソフトウェアに関する。
【背景技術】
【0002】
補助システムは、ユーザ入力と、ロケーションアウェアネスと、(気象条件、交通渋滞、ニュース、株価、ユーザスケジュール、小売価格などの)様々なオンラインソースからの情報にアクセスする能力との組合せに基づいて、ユーザのために情報またはサービスを提供することができる。ユーザ入力は、特にインスタントメッセージングアプリケーションまたは他のアプリケーションにおけるテキスト(たとえば、オンラインチャット)、ボイス、画像、動き、またはそれらの組合せを含み得る。補助システムは、コンシェルジュタイプのサービス(たとえば、ディナーを予約すること、イベントチケットを購入すること、旅行の手配をすること)を実施するか、またはユーザ入力に基づいて情報を提供し得る。補助システムはまた、ユーザ始動または対話なしに、オンライン情報およびイベントに基づいて、管理またはデータハンドリングタスクを実施し得る。補助システムによって実施され得るタスクの例は、スケジュール管理(たとえば、ディナーデートについて交通状況によりユーザが遅れているというアラートを送る、双方のためのスケジュールを更新する、およびレストラン予約時間を変更する)を含み得る。補助システムは、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及(proliferation)との組合せによって可能にされ得る。
【0003】
ソーシャルネットワーキングウェブサイトを含み得る、ソーシャルネットワーキングシステムは、そのユーザ(個人または法人など)が、ソーシャルネットワーキングシステムと対話し、ソーシャルネットワーキングシステムを通して互いと対話することを可能にし得る。ソーシャルネットワーキングシステムは、ユーザからの入力を用いて、ユーザに関連付けられたユーザプロファイルを作成し、ソーシャルネットワーキングシステムに記憶し得る。ユーザプロファイルは、人口統計学的情報、通信チャネル情報、およびユーザの個人的な興味に関する情報を含み得る。ソーシャルネットワーキングシステムはまた、ユーザからの入力を用いて、ソーシャルネットワーキングシステムの他のユーザとのユーザの関係のレコードを作成し、記憶し、ならびに、サービス(たとえば、プロファイル/ニュースフィード投稿、写真共有、イベント編成、メッセージング、ゲーム、または広告)を提供して、ユーザ間のソーシャルな対話を円滑にし得る。
【0004】
ソーシャルネットワーキングシステムは、1つまたは複数のネットワークを介して、そのサービスに関係するコンテンツまたはメッセージを、ユーザのモバイルまたは他のコンピューティングデバイスに送り得る。ユーザはまた、ユーザのモバイルまたは他のコンピューティングデバイス上に、ユーザのユーザプロファイルおよびソーシャルネットワーキングシステム内の他のデータにアクセスするためのソフトウェアアプリケーションをインストールし得る。ソーシャルネットワーキングシステムは、ユーザにつながっている他のユーザの集約されたストーリーのニュースフィードなど、ユーザに表示するためのコンテンツオブジェクトの個人化された(personalized)セットを生成し得る。
【発明の概要】
【0005】
本発明は、請求項1に記載の方法、請求項18に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体、請求項19に記載のシステム、および請求項20に記載のコンピュータプログラム製品に言及する。有利な実施形態は、従属請求項の特徴を含み得る。
【0006】
したがって、本発明による方法が、1つまたは複数のコンピューティングシステムによって、補助xbot(assistant xbot)を介して第1のユーザに関連付けられたクライアントシステムから、同時に複数の第2のユーザにコールするためのユーザ要求を受信することであって、ユーザ要求が、複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することと、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動することとを含む。
【0007】
一実施形態では、1つまたは複数の参照は、少なくともあいまいな言及を備え得、あいまいな言及は、複数の第2のユーザからの特定の第2のユーザに対応する。随意に、本方法は、特定の第2のユーザを識別するためにあいまいな言及のあいまいさを除去する(disambiguate)ことをさらに含み得、あいまいさ除去(disambiguation)は、個人化された機械学習モデルに基づいて複数の候補ユーザを決定することであって、各候補ユーザが信頼性スコアに関連付けられる、複数の候補ユーザを決定することと、複数の候補ユーザのそれぞれの信頼性スコアに基づいて複数の候補ユーザをランク付けする(rank)ことと、複数の候補ユーザのそれぞれのランク付け(ranking)に基づいて複数の候補ユーザから特定の第2のユーザを識別することとを含む。さらに随意に、本方法は、補助xbotを介してクライアントシステムに、第1のユーザに特定の第2のユーザの確認についてプロンプトする(prompt)ための命令を送ることを含み得る。
【0008】
さらなる実施形態では、1つまたは複数の参照は、少なくともあいまいな言及を備え得、あいまいな言及は、複数の第2のユーザの中からの第2のユーザのグループに対応する。随意に、本方法は、第2のユーザのグループを識別するためにあいまいな言及のあいまいさを除去することをさらに含み得、あいまいさ除去は、それぞれ、あいまいな言及を複数の所定のグループに対応するグループ識別子のリストと比較することを含み、各所定のグループが複数のユーザを備える。さらに随意に、本方法は、あいまいな言及に対応するグループ識別子が存在しないと決定することと、補助xbotを介してクライアントシステムに、第1のユーザにグループを作成するようにプロンプトするための命令を送ることと、補助xbotを介してクライアントシステムから、グループ中の第2のユーザの各々に関連付けられた情報を備える1つまたは複数のユーザ入力を受信することと、1つまたは複数のユーザ入力に基づいて第2のユーザのグループを作成することと、作成されたグループをデータストアに記憶することであって、グループがグループ識別子に関連付けられる、作成されたグループをデータストアに記憶することとをさらに含み得る。
【0009】
一実施形態では、本発明による方法は、自然言語理解(natural-language understanding)モジュールに基づいて、ユーザ要求に関連付けられた1つまたは複数のセパレータ(separator)を識別することをさらに含み得る。随意に、複数の第2のユーザを識別することは、1つまたは複数のセパレータに基づき得る。
【0010】
さらなる実施形態では、ユーザ要求は、ボイス入力に基づき得る。
【0011】
一実施形態では、本方法は、ユーザ要求に基づいて、グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択することをさらに含み得る。
【0012】
さらなる実施形態では、本方法は、第1のユーザに関連付けられたデフォルト設定、第1のユーザに関連付けられたユーザ選好、第1のユーザとコンピューティングシステムとの間の履歴対話、または所定のルールのうちの1つまたは複数に基づいて、グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択することをさらに含み得る。
【0013】
一実施形態では、グループコールはボイスコールまたはビデオコールであり得る。
【0014】
さらなる実施形態では、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することは、第1のユーザに関連付けられた1つまたは複数の連絡先リストにアクセスすることであって、各連絡先リストが、複数のエンティティ識別子に関連付けられた複数の名前を備える、1つまたは複数の連絡先リストにアクセスすることと、複数の第2のユーザについての複数のエンティティ識別子を決定するために1つまたは複数の参照を複数の名前と比較することとを含み得る。随意に、1つまたは複数の連絡先リストは、クライアントシステム、コンピューティングシステムのうちの1つまたは複数、または1つまたは複数のサードパーティコンピューティングシステムのうちの1つまたは複数に記憶され得る。
【0015】
一実施形態では、ユーザ要求は単一の要求のみを備え得、同時に複数の第2のユーザへのグループコールを始動することは、単一の要求に応答する。
【0016】
さらなる実施形態では、同時に複数の第2のユーザへのグループコールを始動することは、グループコールを始動するために追加のユーザ入力が必要でないと決定することを含み得る。
【0017】
一実施形態では、同時に複数の第2のユーザへのグループコールを始動することは、それぞれ、第1のユーザから複数の第2のユーザへの複数の通信要求を同時に生成することと、ネットワークを介して複数の第2のユーザに関連付けられた複数のクライアントシステムに、同時に複数の通信要求を送ることとを含み得る。
【0018】
さらなる態様によれば、本発明は、ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、ソフトウェアは、実行されたとき、上記で説明された方法のうちのいずれか1つを行うように、または補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、同時に複数の第2のユーザにコールするためのユーザ要求を受信することであって、ユーザ要求が、複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することと、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体に言及する。
【0019】
別の態様によれば、本発明は、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を備える、プロセッサに結合された非一時的メモリとを備えるシステムであって、プロセッサは、命令を実行したとき、上記で説明された方法のうちのいずれか1つを行うように、または補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、同時に複数の第2のユーザにコールするためのユーザ要求を受信することであって、ユーザ要求が、複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することと、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動することとを行うように動作可能である、システムに言及する。
【0020】
また別の態様によれば、本発明は、ソフトウェアを具現するコンピュータプログラム製品であって、ソフトウェアは、実行されたとき、上記で説明された方法のうちのいずれか1つを行うように、または補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、同時に複数の第2のユーザにコールするためのユーザ要求を受信することであって、ユーザ要求が、複数の第2のユーザを参照する1つまたは複数の参照を備える、ユーザ要求を受信することと、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することと、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動することとを行うように動作可能である、コンピュータプログラム製品に言及する。
【0021】
特定の実施形態では、補助システムは、ユーザが情報またはサービスを取得するのを補助し得る。補助システムは、ユーザが、補助を得るためのステートフルおよびマルチターン(multi-turn)会話における(ボイス、テキスト、画像、ビデオ、動きなどの)マルチモーダルユーザ入力で補助システムと対話することを可能にし得る。限定としてではなく一例として、補助システムは、ビジョン、ロケーション、ジェスチャー、動き、またはハイブリッド/マルチモーダル入力など、オーディオ(口頭)入力と非口頭入力の両方をサポートし得る。補助システムは、ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶し得る。特定の実施形態では、補助システムは、自然言語理解を使用してユーザ入力を分析し得る。分析は、より個人化されたおよびコンテキストアウェア理解のために、ユーザのユーザプロファイルに基づき得る。補助システムは、分析に基づいて、ユーザ入力に関連付けられたエンティティを解析し得る。特定の実施形態では、補助システムは、解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話し得る。補助システムは、自然言語生成を使用することによって、情報またはサービスに関してユーザのための応答を生成し得る。ユーザとの対話を通して、補助システムは、ダイアログ管理技法を使用して、ユーザとの会話のフローを管理および進め得る。特定の実施形態では、補助システムは、情報を要約することによって、ユーザが、取得された情報を効果的におよび効率的に消化するのをさらに補助し得る。補助システムはまた、(たとえば、投稿、コメント、メッセージを作成して)ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、ユーザがオンラインソーシャルネットワークにより関与するのを補助し得る。補助システムは、ユーザが、イベントを追跡することなど、異なるタスクを管理するのをさらに補助し得る。特定の実施形態では、補助システムは、ユーザ入力なしに、ユーザについて関連する時間において、ユーザプロファイルに基づいて、ユーザ興味および選好に関連するタスクをプロアクティブに実行し得る。特定の実施形態では、補助システムは、ユーザのプロファイルまたは他のユーザ情報にアクセスすることと、異なるタスクを実行することとが、ユーザのプライバシー設定を条件として許諾されることを確実にするために、プライバシー設定を検査し得る。
【0022】
特定の実施形態では、補助システムは、クライアント側プロセスとサーバ側プロセスの両方に組み立てられたハイブリッドアーキテクチャを介してユーザを補助し得る。クライアント側プロセスとサーバ側プロセスとは、ユーザ入力を処理するための、およびユーザへの補助を提供するための2つの並行ワークフローであり得る。特定の実施形態では、クライアント側プロセスは、ユーザに関連付けられたクライアントシステム上でローカルに実施され得る。対照的に、サーバ側プロセスは、1つまたは複数のコンピューティングシステム上でリモートに実施され得る。特定の実施形態では、クライアントシステム上のアービトレータが、ユーザ入力(たとえば、オーディオ信号)の受信を協調させ、ユーザ入力に応答するためにクライアント側プロセスを使用すべきなのか、サーバ側プロセスを使用すべきなのか、両方を使用すべきなのかを決定し、各プロセスからの処理結果を分析し得る。アービトレータは、上述の分析に基づいて、ユーザ入力に関連付けられたタスクを実行するように、クライアント側またはサーバ側のエージェントに命令し得る。実行結果は、クライアントシステムへの出力としてさらにレンダリングされ得る。クライアント側プロセスとサーバ側プロセスの両方を活用することによって、補助システムは、ユーザの、コンピューティングリソースの最適使用を効果的に補助しながら、同時に、ユーザプライバシーを保護すること、およびセキュリティを向上させることができる。
【0023】
特定の実施形態では、補助システムは、ユーザが、単一の要求を用いて、補助システムを介して同時に複数の人々にコールすることを可能にし得る。既存の従来のシステムは、ユーザが、人々を1人ずつグループコールに追加すること、または人々がダイヤル接続するための会議コールをセットアップすることを必要とする。対照的に、補助システムは、ユーザが、単一の要求において、これらの人々の2つまたはそれ以上のエンティティ名、ニックネーム、またはエンティティ名とニックネームとの組合せを指定することによってコールを始動することを可能にし得る。限定としてではなく一例として、要求は、「JohnとLeeにコールしてください」、「私の兄弟とLeeにコールしてください」、または「私の兄弟と私の義兄弟にコールしてください」であり得る。補助システムは、次いで、必要とされるさらなるユーザ入力なしにグループコールを始動し得る。さらに、ニックネームは、単一の人または人々のグループを参照し得る。限定としてではなく一例として、要求は、「私の親友たちにコールしてください」であり得る。ユーザは、グループとともに個人を指定することによってコールを要求することさえある。限定としてではなく一例として、要求は、「Dannaと、Mr.Seriousと、私の親友たちにコールしてください」であり得る。複数の人々にコールするための要求を受信すると、補助システムは、最初に要求のあいまいさを除去して、ユーザがコールすることを希望する、ターゲットにされた人々を識別し得る。補助システムは、さらに、ユーザにあいまいさ除去に関して確認し、補助システムがユーザの確認を受信した後に、これらのターゲットにされた人々へのグループコールを開始し得る。ユーザは、たとえば、メッセージングアプリケーション、ビデオ会議アプリケーションなど、補助システムによってサポートされる異なるアプリケーションを使用して、単一の要求を用いて同時に複数の人々にコールし得、コールは、ボイスコールまたはビデオコールのいずれかであり得る。本開示は、特定の様式で特定のシステムを介して特定のマルチパーソン(multi-person)コーリングを可能にすることについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なマルチパーソンコーリングを提供することを企図する。
【0024】
特定の実施形態では、補助システムは、補助xbotを介して第1のユーザに関連付けられたクライアントシステムから、同時に複数の第2のユーザにコールするためのユーザ要求を受信し得る。ユーザ要求は、複数の第2のユーザを参照する1つまたは複数の参照を備え得る。特定の実施形態では、補助システムは、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別し得る。補助システムは、さらに、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動し得る。
【0025】
マルチパーソンコールを可能にするために、いくつかの技術課題が存在する。1つの技術課題は、ユーザ要求のあいまいな言及のあいまいさを除去することを含み得る。この課題に対処するために本明細書で開示される実施形態によって提示される解決策は、個人化された機械学習モデルが、候補ユーザを決定するためにユーザプロファイル情報、補助システムとの履歴対話、およびコンテキスト情報を使用し得、ユーザからの確認がさらなる明確化を提供し得るので、各候補ユーザが信頼性スコアに関連付けられた、個人化された機械学習モデルに基づいて候補ユーザを決定し、信頼性スコアがしきい値スコアよりも低いとき、ユーザに確認することであり得る。
【0026】
本明細書で開示されるいくつかの実施形態は、1つまたは複数の技術的利点を提供し得る。実施形態の技術的利点は、ユーザが単に任意のモダリティで単一の要求をサブミットすることができ、補助システムは、ユーザがコールしようとする人々を効果的に識別し、それに応じてそのようなコールを始動し得るので、ユーザが、追加の入力なしに同時に複数の人々にコールすることを可能にすることによって、補助システムとのユーザエクスペリエンスを改善することを含み得る。本明細書で開示されるいくつかの実施形態は、上記の技術的利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。1つまたは複数の他の技術的利点が、本開示の図、説明、および特許請求の範囲に鑑みて、当業者に容易に明らかになり得る。
【0027】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式上の理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【図面の簡単な説明】
【0028】
図1】補助システムに関連付けられた例示的なネットワーク環境を示す図である。
図2】補助システムの例示的なアーキテクチャを示す図である。
図3】補助システムのサーバ側プロセスの例示的な図のフローを示す図である。
図4】補助システムによってユーザ入力を処理する例示的な図のフローを示す図である。
図5A】2人の人々にコールするための例示的な対話を示す図である。
図5B】2人の人々にコールするための別の例示的な対話を示す図である。
図6A】ニックネームを用いて2人の人々にコールするための例示的な対話を示す図である。
図6B】ニックネームのあいまいさ除去を用いて2人の人々にコールするための例示的な対話を示す図である。
図7A】ニックネームを用いて人々のグループにコールするための例示的な対話を示す図である。
図7B】ニックネームを用いて人々のグループにコールするための別の例示的な対話を示す図である。
図7C】グループを作成することによって人々のグループにコールするための例示的な対話を示す図である。
図8A】名および姓(first and last names)のあいまいさ除去を用いて複数の人々にコールするための例示的な対話を示す図である。
図8B】名および姓のあいまいさ除去を用いて複数の人々にコールするための別の例示的な対話を示す図である。
図8C】名および姓のあいまいさ除去を用いて複数の人々にコールするための別の例示的な対話を示す図である。
図9】1人についてのニックネームとグループについてのニックネームとの混合を用いて複数の人々にコールするための例示的な対話を示す図である。
図10】マルチパーソンコールを可能にするための例示的な方法を示す図である。
図11】例示的なソーシャルグラフを示す図である。
図12】埋込み空間の例示的なビューを示す図である。
図13】例示的な人工ニューラルネットワークを示す図である。
図14】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0029】
システムの全体像
図1は、補助システムに関連付けられた例示的なネットワーク環境100を示す。ネットワーク環境100は、ネットワーク110によって互いに接続された、クライアントシステム130と、補助システム140と、ソーシャルネットワーキングシステム160と、サードパーティシステム170とを含む。図1は、クライアントシステム130、補助システム140、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110の特定の構成を示すが、本開示は、クライアントシステム130、補助システム140、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110の任意の好適な構成を企図する。限定としてではなく一例として、クライアントシステム130、ソーシャルネットワーキングシステム160、補助システム140、およびサードパーティシステム170のうちの2つまたはそれ以上が、ネットワーク110をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム130、補助システム140、ソーシャルネットワーキングシステム160、およびサードパーティシステム170のうちの2つまたはそれ以上が、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図1は、特定の数のクライアントシステム130、補助システム140、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110を示すが、本開示は、任意の好適な数のクライアントシステム130、補助システム140、ソーシャルネットワーキングシステム160、サードパーティシステム170、およびネットワーク110を企図する。限定としてではなく一例として、ネットワーク環境100は、複数のクライアントシステム130と、補助システム140と、ソーシャルネットワーキングシステム160と、サードパーティシステム170と、ネットワーク110とを含み得る。
【0030】
本開示は、任意の好適なネットワーク110を企図する。限定としてではなく一例として、ネットワーク110の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク110は、1つまたは複数のネットワーク110を含み得る。
【0031】
リンク150は、クライアントシステム130と、補助システム140と、ソーシャルネットワーキングシステム160と、サードパーティシステム170とを、通信ネットワーク110にまたは互いに接続し得る。本開示は、任意の好適なリンク150を企図する。特定の実施形態では、1つまたは複数のリンク150は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)ワイヤラインリンク、(たとえば、Wi-Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)ワイヤレスリンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク150は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク150、または2つまたはそれ以上のそのようなリンク150の組合せを含む。リンク150は、ネットワーク環境100の全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の第2のリンク150とは1つまたは複数の点で異なり得る。
【0032】
特定の実施形態では、クライアントシステム130は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム130によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム130は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、スマートスピーカー、仮想現実(VR)ヘッドセット、拡張現実(AR)スマートグラス、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。特定の実施形態では、クライアントシステム130は、スマート補助デバイスであり得る。スマート補助デバイスに関するより多くの情報が、その各々が参照により組み込まれる、2018年4月9日に出願された米国特許出願第15/949011号、2018年10月5日に出願された米国特許出願第16/153574号、2018年1月3日に出願された米国意匠特許出願第29/631910号、2018年1月2日に出願された米国意匠特許出願第29/631747号、2018年1月3日に出願された米国意匠特許出願第29/631913号、および2018年1月3日に出願された米国意匠特許出願第29/631914号において見つけられ得る。本開示は、任意の好適なクライアントシステム130を企図する。クライアントシステム130は、クライアントシステム130におけるネットワークユーザが、ネットワーク110にアクセスすることを可能にし得る。クライアントシステム130は、クライアントシステム130のユーザが、他のクライアントシステム130における他のユーザと通信することを可能にし得る。
【0033】
特定の実施形態では、クライアントシステム130は、ウェブブラウザ132を含み得、1つまたは複数のアドオン、プラグイン、または他の拡張を有し得る。クライアントシステム130におけるユーザは、ウェブブラウザ132を(サーバ162、またはサードパーティシステム170に関連付けられたサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザ132は、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム130に通信し得る。クライアントシステム130は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブインターフェース(たとえば、ウェブページ)をレンダリングし得る。本開示は、任意の好適なソースファイルを企図する。限定としてではなく一例として、ウェブインターフェースは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングされ得る。そのようなインターフェースは、スクリプト、マークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブインターフェースへの言及は、適切な場合、(ブラウザがウェブインターフェースをレンダリングするために使用し得る)1つまたは複数の対応するソースファイルを包含し、その逆も同様である。
【0034】
特定の実施形態では、クライアントシステム130は、クライアントシステム130上にインストールされたソーシャルネットワーキングアプリケーション134を含み得る。クライアントシステム130におけるユーザは、オンラインソーシャルネットワーク上でアクセスするために、ソーシャルネットワーキングアプリケーション134を使用し得る。クライアントシステム130におけるユーザは、ユーザのソーシャルつながり(たとえば、友達、フォロワー、フォローされるアカウント、連絡先など)と通信するために、ソーシャルネットワーキングアプリケーション134を使用し得る。クライアントシステム130におけるユーザはまた、オンラインソーシャルネットワーク上の複数のコンテンツオブジェクト(たとえば、投稿、ニュース記事、エフェメラルコンテンツなど)と対話するために、ソーシャルネットワーキングアプリケーション134を使用し得る。限定としてではなく一例として、ユーザは、ソーシャルネットワーキングアプリケーション134を使用して、トレンディングトピックおよびニュース速報(breaking news)をブラウズし得る。
【0035】
特定の実施形態では、クライアントシステム130は、補助アプリケーション136を含み得る。クライアントシステム130におけるユーザは、補助システム140と対話するために、補助アプリケーション136を使用し得る。特定の実施形態では、補助アプリケーション136は、スタンドアロンアプリケーションを含み得る。特定の実施形態では、補助アプリケーション136は、ソーシャルネットワーキングアプリケーション134または別の好適なアプリケーション(たとえば、メッセージングアプリケーション)に組み込まれ得る。特定の実施形態では、補助アプリケーション136は、クライアントシステム130、補助ハードウェアデバイス、または任意の他の好適なハードウェアデバイスにも組み込まれ得る。特定の実施形態では、補助アプリケーション136は、ウェブブラウザ132を介してアクセスされ得る。特定の実施形態では、ユーザは、異なるモダリティを介して入力を提供し得る。限定としてではなく一例として、モダリティは、オーディオ、テキスト、画像、ビデオ、動き、向きなどを含み得る。補助アプリケーション136は、ユーザ入力を補助システム140に通信し得る。ユーザ入力に基づいて、補助システム140は、応答を生成し得る。補助システム140は、生成された応答を補助アプリケーション136に送り得る。補助アプリケーション136は、次いで、クライアントシステム130におけるユーザに応答を提示し得る。提示された応答は、オーディオ、テキスト、画像、およびビデオなど、異なるモダリティに基づき得る。限定としてではなく一例として、ユーザは、クライアントシステム130のマイクロフォンに話しかけることによって、交通情報について補助アプリケーション136に口頭で(すなわち、オーディオモダリティを介して)質問し得る。補助アプリケーション136は、次いで、要求を補助システム140に通信し得る。したがって、補助システム140は、応答を生成し、応答を補助アプリケーション136に返送し得る。補助アプリケーション136は、さらに、クライアントシステム130のディスプレイ上にテキストおよび/または画像においてユーザに応答を提示し得る。
【0036】
特定の実施形態では、補助システム140は、ユーザが、異なるソースから情報を取り出すのを補助し得る。補助システム140はまた、ユーザが、異なるサービスプロバイダにサービスを要求するのを補助し得る。特定の実施形態では、補助システム140は、クライアントシステム130中の補助アプリケーション136を介して情報またはサービスについてのユーザ要求を受信し得る。補助システム140は、ユーザのプロファイルおよび他の関連情報に基づいて、ユーザ要求を分析するために、自然言語理解を使用し得る。分析の結果は、オンラインソーシャルネットワークに関連付けられた異なるエンティティを含み得る。補助システム140は、次いで、これらのエンティティに関連付けられた情報を取り出すか、またはサービスを要求し得る。特定の実施形態では、補助システム140は、ユーザのために情報を取り出すかまたはサービスを要求するとき、ソーシャルネットワーキングシステム160および/またはサードパーティシステム170と対話し得る。特定の実施形態では、補助システム140は、自然言語生成技法を使用して、ユーザのための個人化された通信コンテンツを生成し得る。個人化された通信コンテンツは、たとえば、取り出された情報または要求されたサービスのステータスを含み得る。特定の実施形態では、補助システム140は、ダイアログ管理技法を使用することによって、ユーザが、ステートフルおよびマルチターン会話において情報またはサービスに関して補助システム140と対話することを可能にし得る。補助システム140の機能性は、以下の図2の説明でより詳細に説明される。
【0037】
特定の実施形態では、ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム160は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム160は、直接的にまたはネットワーク110を介してのいずれかで、ネットワーク環境100の他の構成要素によってアクセスされ得る。限定としてではなく一例として、クライアントシステム130は、直接的にまたはネットワーク110を介してのいずれかで、ウェブブラウザ132、またはソーシャルネットワーキングシステム160に関連付けられたネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の好適なアプリケーション、またはそれらの任意の組合せ)を使用して、ソーシャルネットワーキングシステム160にアクセスし得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のサーバ162を含み得る。各サーバ162は、単一サーバ、あるいは複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであり得る。サーバ162は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能またはプロセスを実施するのに好適な別のサーバ、あるいはそれらの任意の組合せなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ162は、サーバ162によって実装またはサポートされる適切な機能性を行うための、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストア164を含み得る。データストア164は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データストア164に記憶された情報は、固有のデータ構造に従って編成され得る。特定の実施形態では、各データストア164は、リレーショナルデータベース、列指向データベース、相関データベース、または他の好適なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム130、ソーシャルネットワーキングシステム160、補助システム140、またはサードパーティシステム170が、データストア164に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
【0038】
特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア164に記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードをつなげる複数のエッジとを含み得る。ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム160を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム160の何人かの他のユーザへのつながり(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム160を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム160の任意の他のユーザを指し得る。
【0039】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム160のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが興味があり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム160において、またはソーシャルネットワーキングシステム160とは別個であり、ネットワーク110を介してソーシャルネットワーキングシステム160に結合された、サードパーティシステム170の外部システムによって、表されることが可能であるものと対話し得る。
【0040】
特定の実施形態では、ソーシャルネットワーキングシステム160は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム160は、ユーザが、互いと対話し、ならびにサードパーティシステム170または他のエンティティからコンテンツを受信することを可能にするか、あるいは、ユーザが、アプリケーションプログラミングインターフェース(API)または他の通信チャネルを通して、これらのエンティティと対話することを可能にし得る。
【0041】
特定の実施形態では、サードパーティシステム170は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム170は、ソーシャルネットワーキングシステム160を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム160とサードパーティシステム170とは、互いと連携して動作して、ソーシャルネットワーキングシステム160またはサードパーティシステム170のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム160は、サードパーティシステム170などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
【0042】
特定の実施形態では、サードパーティシステム170は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム130に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。特定の実施形態では、サードパーティコンテンツプロバイダは、コンテンツオブジェクトおよび/またはサービスを提供するために1つまたは複数のサードパーティエージェントを使用し得る。サードパーティエージェントは、サードパーティシステム170上でホストされ、実行している実装形態であり得る。
【0043】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム160に追加するか、アップロードするか、送るか、または「投稿」することができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム130からソーシャルネットワーキングシステム160に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム160に追加され得る。
【0044】
特定の実施形態では、ソーシャルネットワーキングシステム160は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランク付けエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推論モジュール、許可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム160は、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク運用コンソール、他の好適な構成要素、またはそれらの任意の好適な組合せなど、好適な構成要素をも含み得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、ユーザプロファイルを記憶するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは選好、興味、親和性、またはロケーションなど、他のタイプの記述的情報を含み得る。興味情報は、1つまたは複数のカテゴリーに関係する興味を含み得る。カテゴリーは一般的であるかまたは固有のものであり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね!」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク110を介して、ソーシャルネットワーキングシステム160を、1つまたは複数のクライアントシステム130または1つまたは複数のサードパーティシステム170にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム160と1つまたは複数のクライアントシステム130との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能性を含み得る。API要求サーバは、たとえば、補助システム140またはサードパーティシステム170が、1つまたは複数のAPIをコールすることによってソーシャルネットワーキングシステム160からの情報にアクセスすることを可能にし得る。アクションロガーは、ソーシャルネットワーキングシステム160上の、またはソーシャルネットワーキングシステム160から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム130にコンテンツオブジェクトに関する情報を提供し得る。情報は、通知としてクライアントシステム130にプッシュされ得るか、または、情報は、クライアントシステム130から受信された要求に応答してクライアントシステム130からプルされ得る。許可サーバは、ソーシャルネットワーキングシステム160のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、そのユーザのアクションがソーシャルネットワーキングシステム160によってロギングされるか、または他のシステム(たとえば、サードパーティシステム170)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。サードパーティコンテンツオブジェクトストアは、サードパーティシステム170など、サードパーティから受信されたコンテンツオブジェクトを記憶するために使用され得る。ロケーションストアは、ユーザに関連付けられたクライアントシステム130から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
【0045】
補助システム
図2は、補助システム140の例示的なアーキテクチャを示す。特定の実施形態では、補助システム140は、ユーザが情報またはサービスを取得するのを補助し得る。補助システム140は、ユーザが、補助を得るためのステートフルおよびマルチターン会話における(ボイス、テキスト、画像、ビデオ、動きなどの)マルチモーダルユーザ入力で補助システム140と対話することを可能にし得る。限定としてではなく一例として、補助システム140は、ビジョン、ロケーション、ジェスチャー、動き、またはハイブリッド/マルチモーダル入力など、オーディオ入力(口頭)と非口頭入力の両方をサポートし得る。補助システム140は、ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶し得る。特定の実施形態では、補助システム140は、自然言語理解を使用してユーザ入力を分析し得る。分析は、より個人化されたおよびコンテキストアウェア理解のために、ユーザのユーザプロファイルに基づき得る。補助システム140は、分析に基づいて、ユーザ入力に関連付けられたエンティティを解析し得る。特定の実施形態では、補助システム140は、解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話し得る。補助システム140は、自然言語生成を使用することによって、情報またはサービスに関してユーザのための応答を生成し得る。ユーザとの対話を通して、補助システム140は、ダイアログ管理技法を使用して、ユーザとの会話のフローを管理およびフォワーディングし得る。特定の実施形態では、補助システム140は、情報を要約することによって、ユーザが、取得された情報を効果的におよび効率的に消化するのをさらに補助し得る。補助システム140はまた、(たとえば、投稿、コメント、メッセージを作成して)ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、ユーザがオンラインソーシャルネットワークにより関与するのを補助し得る。補助システム140は、ユーザが、イベントを追跡することなど、異なるタスクを管理するのをさらに補助し得る。特定の実施形態では、補助システム140は、ユーザ入力なしに、ユーザについて関連する時間において、ユーザプロファイルに基づいて、ユーザ興味および選好に関連する事前許可されたタスクをプロアクティブに実行し得る。特定の実施形態では、補助システム140は、ユーザのプロファイルまたは他のユーザ情報にアクセスすることと、異なるタスクを実行することとが、ユーザのプライバシー設定を条件として許諾されることを確実にするために、プライバシー設定を検査し得る。プライバシー設定を条件とするユーザを補助することに関するより多くの情報が、参照により組み込まれる、2018年11月6日に出願された米国特許出願第16/182542号において見つけられ得る。
【0046】
特定の実施形態では、補助システム140は、クライアント側プロセスとサーバ側プロセスの両方に組み立てられたハイブリッドアーキテクチャを介してユーザを補助し得る。クライアント側プロセスとサーバ側プロセスとは、ユーザ入力を処理するための、およびユーザへの補助を提供するための2つの並行ワークフローであり得る。特定の実施形態では、クライアント側プロセスは、ユーザに関連付けられたクライアントシステム130上でローカルに実施され得る。対照的に、サーバ側プロセスは、1つまたは複数のコンピューティングシステム上でリモートに実施され得る。特定の実施形態では、クライアントシステム130上の補助オーケストレータが、ユーザ入力(たとえば、オーディオ信号)の受信を協調させ、ユーザ入力に応答するためにクライアント側プロセスを使用すべきなのか、サーバ側プロセスを使用すべきなのか、両方を使用すべきなのかを決定し得る。ダイアログアービトレータが、各プロセスからの処理結果を分析し得る。ダイアログアービトレータは、上述の分析に基づいて、ユーザ入力に関連付けられたタスクを実行するように、クライアント側またはサーバ側のエージェントに命令し得る。実行結果は、クライアントシステム130への出力としてさらにレンダリングされ得る。クライアント側プロセスとサーバ側プロセスの両方を活用することによって、補助システム140は、ユーザの、コンピューティングリソースの最適使用を効果的に補助しながら、同時に、ユーザプライバシーを保護すること、およびセキュリティを向上させることができる。
【0047】
特定の実施形態では、補助システム140は、ユーザに関連付けられたクライアントシステム130からユーザ入力を受信し得る。特定の実施形態では、ユーザ入力は、シングルターン(single turn)で補助システム140に送られるユーザ生成された入力であり得る。ユーザ入力は、口頭、非口頭、またはそれらの組合せであり得る。限定としてではなく一例として、非口頭ユーザ入力は、ユーザのボイス、ビジョン、ロケーション、アクティビティ、ジェスチャー、動き、またはそれらの組合せに基づき得る。ユーザ入力がユーザのボイスに基づく(たとえば、ユーザがクライアントシステム130に話しかけ得る)場合、そのようなユーザ入力は、システムオーディオAPI202(アプリケーションプログラミングインターフェース)によって最初に処理され得る。システムオーディオAPI202は、補助システム140によって容易に処理可能であるオーディオデータを生成するために、エコーキャンセル、雑音除去、ビームフォーミング、およびセルフユーザボイスアクティブ化、話者識別、ボイスアクティビティ検出(VAD)、および任意の他の音響技法を行い得る。特定の実施形態では、システムオーディオAPI202は、ユーザ入力からの起動ワード検出204を実施し得る。限定としてではなく一例として、起動ワードは、「ヘイ、アシスタント」であり得る。そのような起動ワードが検出された場合、補助システム140は、それに応じてアクティブ化され得る。代替実施形態では、ユーザは、起動ワードなしに、ビジュアル信号を介して補助システム140をアクティブ化し得る。ビジュアル信号は、様々なビジュアル信号を検出することができる低電力センサー(たとえば、カメラ)において受信され得る。限定としてではなく一例として、ビジュアル信号は、クライアントシステム130によって検出されたバーコード、QRコードまたは万国製品コード(UPC)であり得る。限定としてではなく別の例として、ビジュアル信号は、オブジェクトへのユーザの視線であり得る。限定としてではなくまた別の例として、ビジュアル信号は、ユーザジェスチャー、たとえば、ユーザがオブジェクトをポイントすることであり得る。
【0048】
特定の実施形態では、システムオーディオAPI202からのオーディオデータは、補助オーケストレータ206に送られ得る。補助オーケストレータ206は、クライアントシステム130上で実行していることがある。特定の実施形態では、補助オーケストレータ206は、クライアント側プロセスを使用することによってユーザ入力に応答すべきなのか、サーバ側プロセスを使用することによってユーザ入力に応答すべきなのか、または両方を使用することによってユーザ入力に応答すべきなのかを決定し得る。図2に指示されているように、クライアント側プロセスは破線207の下方に示されているが、サーバ側プロセスは破線207の上方に示されている。補助オーケストレータ206はまた、クライアント側プロセスとサーバ側プロセスの両方を同時に使用することによってユーザ入力に応答することを決定し得る。図2は、補助オーケストレータ206をクライアント側プロセスであるものとして示すが、補助オーケストレータ206は、サーバ側プロセスであり得るか、またはクライアント側プロセスとサーバ側プロセスとの間でスプリットされたハイブリッドプロセスであり得る。
【0049】
特定の実施形態では、サーバ側プロセスは、オーディオデータがシステムオーディオAPI202から生成された後、以下のようなものであり得る。補助オーケストレータ206は、ユーザ入力に応答するために、補助システム140の異なるモジュールをホストするリモートコンピューティングシステムにオーディオデータを送り得る。特定の実施形態では、オーディオデータは、リモート自動音声認識(ASR)モジュール208において受信され得る。ASRモジュール208は、ユーザが、口述し、音声を、書かれたテキストとして文字に起こさせること、オーディオストリームとしてドキュメントを合成させること、またはシステムによってそのようなものとして認識されたコマンドを発行することを可能にし得る。ASRモジュール208は、統計モデルを使用して、補助システム140によってオーディオ入力として受信された音声の所与の部分に対応するワードの最も可能性が高いシーケンスを決定し得る。モデルは、隠れマルコフモデル、ニューラルネットワーク、深層学習モデル、またはそれらの任意の組合せのうちの1つまたは複数を含み得る。受信されたオーディオ入力は、特定のサンプリングレート(たとえば、16、44.1、または96kHz)で、および各サンプルを表す特定の数のビット(たとえば、24ビットのうちの8、16ビット)で、デジタルデータに符号化され得る。
【0050】
特定の実施形態では、ASRモジュール208は、異なる構成要素を備え得る。ASRモジュール208は、書記素-音素(G2P:grapheme-to-phoneme)モデル、発音学習モデル、個人化された音響モデル、個人化された言語モデル(PLM:personalized language model)、またはエンドポインティングモデル(end-pointing model)のうちの1つまたは複数を備え得る。特定の実施形態では、G2Pモデルは、ユーザの書記素-音素スタイル、たとえば、特定のユーザが特定のワードを話すときに聞こえ得るようなものを決定するために使用され得る。個人化された音響モデルは、オーディオ信号と言語における音声単位の音との間の関係のモデルであり得る。したがって、そのような個人化された音響モデルは、ユーザのボイスがどのように聞こえるかを識別し得る。個人化された音響モデルは、オーディオ入力、および音声に対応する、対応する音声単位として受信されたトレーニング音声など、トレーニングデータを使用して生成され得る。個人化された音響モデルは、特定のユーザの音声を認識するために、特定のユーザのボイスを使用してトレーニングまたは改良され得る。特定の実施形態では、個人化された言語モデルは、次いで、特定のオーディオ入力に対する識別された音声単位に対応する最も可能性が高いフレーズを決定し得る。個人化された言語モデルは、様々なワードシーケンスが言語において発生し得る確率のモデルであり得る。オーディオ入力中の音声単位の音は、個人化された言語モデルを使用してワードシーケンスとマッチングされ得、より大きな重みが、その言語におけるフレーズである可能性がより高いワードシーケンスに割り当てられ得る。最高の重みを有するワードシーケンスが、次いで、オーディオ入力に対応するテキストとして選択され得る。特定の実施形態では、個人化された言語モデルはまた、コンテキストを考慮に入れて、どのワードをユーザが言う可能性が最も高いかを予測するために使用され得る。特定の実施形態では、エンドポインティングモデルは、いつ発話の終わりに達したかを検出し得る。
【0051】
特定の実施形態では、ASRモジュール208の出力は、リモート自然言語理解(NLU)モジュール210に送られ得る。NLUモジュール210は、固有表現解決(NER:named entity resolution)を実施し得る。NLUモジュール210は、ユーザ入力を分析するとき、コンテキスト情報をさらに考慮し得る。特定の実施形態では、意図および/またはスロットが、NLUモジュール210の出力であり得る。意図は、補助システム140と対話するユーザの目的を指示し得る、意味論的意図の事前定義された分類法(taxonomy)における要素であり得る。NLUモジュール210は、ユーザ入力を、事前定義された分類法のメンバーに分類し得、たとえば、入力「ベートーベンの第5番をプレイしてください」の場合、NLUモジュール210は、その入力を、意図[IN:play_music]を有するものとして分類し得る。特定の実施形態では、ドメインが、対話のソーシャルコンテキスト、たとえば、教育、または意図のセットのための名前空間、たとえば、音楽を示し得る。スロットは、基本的な意味論的エンティティを表す、ユーザ入力内の文字ストリングに対応する名前付きサブストリングであり得る。たとえば、「ピザ」のためのスロットは[SL:dish]であり得る。特定の実施形態では、有効なまたは予想される名前付きスロットのセットは、分類された意図を条件とし得る。限定としてではなく一例として、意図[IN:play_music]の場合、有効なスロットは[SL:song_name]であり得る。特定の実施形態では、NLUモジュール210は、ソーシャルグラフ、知識グラフ、または概念グラフのうちの1つまたは複数から情報をさらに抽出し、1つまたは複数のリモートデータストア212からユーザのプロファイルを取り出し得る。NLUモジュール210は、さらに、どの情報を集約すべきかを決定すること、ユーザ入力のnグラムにアノテーションを付けること、集約された情報に基づいて信頼性スコアでnグラムをランク付けすること、およびランク付けされたnグラムを、ユーザ入力を理解するためにNLUモジュール210によって使用され得る特徴に構築することによって、これらの異なるソースからの情報を処理し得る。
【0052】
特定の実施形態では、NLUモジュール210は、個人化されたおよびコンテキストアウェア様式で、ユーザ入力からのドメイン、意図、またはスロットのうちの1つまたは複数を識別し得る。限定としてではなく一例として、ユーザ入力は「コーヒーショップへの行き方を教えてください」を含み得る。NLUモジュール210は、ユーザの個人情報および関連付けられたコンテキスト情報に基づいて、ユーザが行くことを希望する特定のコーヒーショップを識別し得る。特定の実施形態では、NLUモジュール210は、特定の言語の辞典と、センテンスを内部表現に区分するためのパーサおよび文法ルールとを含み得る。NLUモジュール210は、ユーザ入力を理解するための語用論(pragmatics)の使用に対して単純な意味論(naive semantics)または確率的意味論的分析を実施する、1つまたは複数のプログラムをも含み得る。特定の実施形態では、パーサは、複数の長短期記憶(LSTM)ネットワークを含む、深層学習アーキテクチャに基づき得る。限定としてではなく一例として、パーサは、リカレント(recurrent)および再帰的(recursive)LSTMアルゴリズムのタイプである、リカレントニューラルネットワーク文法(RNNG:recurrent neural network grammar)モデルに基づき得る。自然言語理解に関するより多くの情報が、その各々が参照により組み込まれる、2018年6月18日に出願された米国特許出願第16/011062号、2018年7月2日に出願された米国特許出願第16/025317号、および2018年7月17日に出願された米国特許出願第16/038120号において見つけられ得る。
【0053】
特定の実施形態では、NLUモジュール210の出力は、リモート推理モジュール214に送られ得る。推理モジュール214は、ダイアログマネージャとエンティティ解析構成要素とを備え得る。特定の実施形態では、ダイアログマネージャは、複雑なダイアログ論理および製品関係ビジネス論理を有し得る。ダイアログマネージャは、ユーザと補助システム140との間の会話のダイアログ状態およびフローを管理し得る。ダイアログマネージャは、さらに、ユーザと補助システム140との間の前の会話を記憶し得る。特定の実施形態では、ダイアログマネージャは、1つまたは複数のスロットに関連付けられたエンティティを解析するためのエンティティ解析構成要素と通信し得、エンティティ解析構成要素は、ユーザと補助システム140との間の会話のフローを進めるためにダイアログマネージャをサポートする。特定の実施形態では、エンティティ解析構成要素は、エンティティを解析するとき、ソーシャルグラフ、知識グラフ、または概念グラフのうちの1つまたは複数にアクセスし得る。エンティティは、たとえば、一意のユーザまたは概念を含み得、それらの各々は、一意の識別子(ID)を有し得る。限定としてではなく一例として、知識グラフは、複数のエンティティを含み得る。各エンティティは、1つまたは複数の属性値に関連付けられた単一のレコードを含み得る。特定のレコードは、一意のエンティティ識別子に関連付けられ得る。各レコードは、エンティティの属性について多様な値を有し得る。各属性値は、信頼性確率に関連付けられ得る。属性値についての信頼性確率は、所与の属性について値が正確である確率を表す。各属性値は、意味論的重みにも関連付けられ得る。属性値についての意味論的重みは、すべての利用可能な情報を考慮して、所与の属性について値が意味論的にどのくらい適切であるかを表し得る。たとえば、知識グラフは、本「Alice’s Adventures」のエンティティを含み得、このエンティティは、知識グラフのための単一の一意のレコードを生成するために、複数のコンテンツソース(たとえば、オンラインソーシャルネットワーク、オンライン百科事典、本のレビューソース、メディアデータベース、およびエンターテインメントコンテンツソース)から抽出され、次いで、重複排除され、解析され、融合された情報を含む。そのエンティティは、本「Alice’s Adventures」のジャンルを指示する「ファンタジー」属性値に関連付けられ得る。知識グラフに関するより多くの情報が、その各々が参照により組み込まれる、2018年7月27日に出願された米国特許出願第16/048049号、および2018年7月27日に出願された米国特許出願第16/048101号において見つけられ得る。
【0054】
特定の実施形態では、エンティティ解析構成要素は、エンティティを解析することがプライバシーポリシーに違反しないことを保証するために、プライバシー制約を検査し得る。限定としてではなく一例として、解析されるべきエンティティは、自分の識別情報がオンラインソーシャルネットワーク上で検索可能であるべきでないことを、自分のプライバシー設定において指定する別のユーザであり得、したがって、エンティティ解析構成要素は、要求に応答する、そのユーザの識別子を返さないことがある。ソーシャルグラフ、知識グラフ、概念グラフ、およびユーザプロファイルから取得された情報に基づいて、ならびに適用可能なプライバシーポリシーを条件として、エンティティ解析構成要素は、したがって、個人化された、コンテキストアウェア、およびプライバシーアウェア様式で、ユーザ入力に関連付けられたエンティティを解析し得る。特定の実施形態では、解析されたエンティティの各々は、ソーシャルネットワーキングシステム160によってホストされる1つまたは複数の識別子に関連付けられ得る。限定としてではなく一例として、識別子は、特定のユーザに対応する一意のユーザ識別子(ID)(たとえば、一意のユーザ名またはユーザID番号)を含み得る。特定の実施形態では、解析されたエンティティの各々は、信頼性スコアにも関連付けられ得る。エンティティを解析することに関するより多くの情報が、その各々が参照により組み込まれる、2018年7月27日に出願された米国特許出願第16/048049号、および2018年7月27日に出願された米国特許出願第16/048072号において見つけられ得る。
【0055】
特定の実施形態では、ダイアログマネージャは、ダイアログ最適化および補助状態追跡を行い得る。ダイアログ最適化は、データを使用して、ダイアログにおける最も可能性の高い分岐が何であるべきであるかを理解するという問題である。限定としてではなく一例として、ダイアログ最適化を用いて、補助システム140は、ダイアログ最適化に基づいて推論された人が、ユーザがコールすることを希望する可能性が極めて高い人であることになるという高い信頼性を補助システム140が有するので、ユーザが誰にコールすることを希望するかを確認する必要がないことがある。特定の実施形態では、ダイアログマネージャは、ダイアログ最適化のために強化学習を使用し得る。補助状態追跡は、ユーザが世界と対話し、補助システム140がユーザと対話するにつれて、経時的に変化する状態を追跡することを目指す。限定としてではなく一例として、補助状態追跡は、適用可能なプライバシーポリシーを条件として、ユーザが何について話しているか、ユーザが誰とともにいるか、ユーザがどこにいるか、どのタスクが現在進行中であるか、およびユーザの視線がどこにあるかなどを追跡し得る。特定の実施形態では、ダイアログマネージャは、ダイアログ状態を追跡するためにオペレータ(operator)のセットを使用し得る。オペレータは、ダイアログ状態を更新するための必要なデータおよび論理を含み得る。各オペレータは、着信要求を処理した後にダイアログ状態のデルタとして働き得る。特定の実施形態では、ダイアログマネージャは、ダイアログ状態トラッカーとアクションセレクタとをさらに含み得る。代替実施形態では、ダイアログ状態トラッカーは、エンティティ解析構成要素に取って代わり、参照/言及を解析し、状態を追跡し得る。
【0056】
特定の実施形態では、推理モジュール214は、さらに、偽トリガ軽減を行い得る。偽トリガ軽減の目標は、補助要求の偽トリガ(たとえば、起動ワード)を検出すること、およびユーザが実際に補助システム140を呼び出そうとしないときに偽レコードを生成することを回避することである。限定としてではなく一例として、推理モジュール214は、ナンセンス検出器に基づいて偽トリガ軽減を達成し得る。ナンセンス検出器が、ユーザとの対話におけるこの時点で起動ワードが意味をなさないと決定した場合、推理モジュール214は、ユーザが補助システム140を呼び出そうとしていたと推論することが不正確であり得ると決定し得る。特定の実施形態では、推理モジュール214の出力は、リモートダイアログアービトレータ216に送られ得る。
【0057】
特定の実施形態では、ASRモジュール208、NLUモジュール210、および推理モジュール214の各々は、どのようにユーザをより効果的に補助すべきかを決定するために、ユーザエピソード記憶を備えるリモートデータストア212にアクセスし得る。エピソード記憶に関するより多くの情報が、参照により組み込まれる、2019年8月27日に出願された米国特許出願第16/552559号において見つけられ得る。データストア212は、さらに、ユーザのユーザプロファイルを記憶し得る。ユーザのユーザプロファイルは、ユーザに関連付けられた人口統計学的情報とソーシャル情報とコンテキスト情報とを含む、ユーザプロファイルデータを含み得る。ユーザプロファイルデータはまた、ニュースフィードについての会話、検索ログ、メッセージングプラットフォームなどを通して集約された複数のトピックについてのユーザ興味および選好を含み得る。ユーザプロファイルの使用は、ユーザの情報がユーザの利益のためにのみ使用され、他人と共有され得ないことを保証するために、プライバシー制約を条件とし得る。ユーザプロファイルに関するより多くの情報が、参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967239号において見つけられ得る。
【0058】
特定の実施形態では、ASRモジュール208、NLUモジュール210、および推理モジュール214を伴う上述のサーバ側プロセスと同様に、クライアント側プロセスは以下のようなものであり得る。特定の実施形態では、補助オーケストレータ206の出力は、クライアントシステム130上のローカルASRモジュール216に送られ得る。ASRモジュール216は、個人化された言語モデル(PLM)と、G2Pモデルと、エンドポインティングモデルとを備え得る。クライアントシステム130の限られた算出能力のために、補助システム140は、クライアント側プロセス中のランタイムにおいて、個人化された言語モデルを最適化し得る。限定としてではなく一例として、補助システム140は、ユーザが話し得る複数の考えられる主題について複数の個人化された言語モデルを事前算出し得る。ユーザが補助を要求するとき、補助システム140は、次いで、個人化された言語モデルが、ユーザアクティビティに基づいてランタイムにおいて補助システム140によってローカルに最適化され得るように、これらの事前算出された言語モデルを迅速にスワップし得る。その結果、補助システム140は、ユーザが何について話していることがあるかを効率的に決定しながら、算出リソースを節約することの技術的利点を有し得る。特定の実施形態では、補助システム140はまた、ランタイムにおいてユーザ発音を迅速に再学習し得る。
【0059】
特定の実施形態では、ASRモジュール216の出力は、ローカルNLUモジュール218に送られ得る。特定の実施形態では、ここでのNLUモジュール218は、サーバ側でサポートされるリモートNLUモジュール210と比較して、よりコンパクトであり得る。ASRモジュール216およびNLUモジュール218がユーザ入力を処理するとき、それらのモジュールはローカル補助メモリ220にアクセスし得る。ローカル補助メモリ220は、ユーザプライバシーを保護する目的で、データストア212に記憶されたユーザ記憶とは異なり得る。特定の実施形態では、ローカル補助メモリ220は、ネットワーク110を介してデータストア212に記憶されたユーザ記憶と同期していることがある。限定としてではなく一例として、ローカル補助メモリ220は、ユーザのクライアントシステム130上のカレンダーを、ユーザに関連付けられたサーバ側カレンダーと同期し得る。特定の実施形態では、ローカル補助メモリ220中の任意のセキュアなデータが、クライアントシステム130上でローカルに実行している補助システム140のモジュールにとってのみアクセス可能であり得る。
【0060】
特定の実施形態では、NLUモジュール218の出力は、ローカル推理モジュール222に送られ得る。推理モジュール222は、ダイアログマネージャとエンティティ解析構成要素とを備え得る。限られた算出能力により、推理モジュール222は、クライアントシステム130のために特に調整された学習アルゴリズムに基づくオンデバイス学習を行い得る。限定としてではなく一例として、連合学習が、推理モジュール222によって使用され得る。連合学習は、モバイルフォンなどのエンドデバイス上に存在する非集中的データを使用して機械学習モデルをトレーニングする分散機械学習手法の特定のカテゴリーである。特定の実施形態では、推理モジュール222は、特定の連合学習モデル、すなわち、連合ユーザ表現学習を使用して、既存のニューラルネットワーク個人化技法を連合学習に拡張し得る。連合ユーザ表現学習は、タスク固有のユーザ表現(すなわち、埋込み)を学習することによって、またはモデル重みを個人化することによって、連合学習におけるモデルを個人化することができる。連合ユーザ表現学習は単純であり、スケーラブルであり、プライバシーを保護し、リソース効率的である。連合ユーザ表現学習は、モデルパラメータを連合パラメータとプライベートパラメータとに分割し得る。たとえばプライベートユーザ埋込みなどのプライベートパラメータは、リモートサーバに転送される代わりにまたはリモートサーバ上で平均化される代わりに、クライアントシステム130上でローカルにトレーニングされ得る。連合パラメータは、対照的に、サーバ上でリモートにトレーニングされ得る。特定の実施形態では、推理モジュール222は、別の特定の連合学習モデル、すなわち、アクティブな連合学習を使用して、リモートサーバ上でトレーニングされたグローバルモデルをクライアントシステム130に伝送し、これらのクライアントシステム130上でローカルに勾配を計算し得る。アクティブな連合学習は、推理モジュールが、モデルをダウンロードすることおよび勾配をアップロードすることに関連付けられた伝送コストを最小化することを可能にし得る。アクティブな連合学習について、各ラウンドにおいて、クライアントシステムは、一様にランダムにではなく、効率を最大化するためにクライアントシステム上の現在のモデルおよびデータを条件とする確率を用いて、選択される。特定の実施形態では、推理モジュール222は、別の特定の連合学習モデル、すなわち、連合Adam(federated Adam)を使用し得る。従来の連合学習モデルは、確率的勾配降下法(SGD)オプティマイザを使用し得る。対照的に、連合Adamモデルは、モーメントベースのオプティマイザを使用し得る。従来の作業が行うもののように、平均化されたモデルを直接使用する代わりに、連合Adamモデルは、平均化されたモデルを使用して、近似勾配を算出し得る。これらの勾配は、次いで、連合Adamモデルに供給され得、連合Adamモデルは、確率的勾配を雑音除去し、パラメータごとの適応学習レートを使用し得る。連合学習によってもたらされた勾配は、(データが独立同分布でないことがあるので)確率的勾配降下法よりもさらに雑音が多くなり得、したがって、連合Adamモデルは、なお一層雑音を扱うのを助け得る。連合Adamモデルは、目的関数を最小化することに向けてよりスマートなステップを行うために勾配を使用し得る。実験は、ベンチマークに対する従来の連合学習が、ROC(受信者動作特性)曲線において1.6%の低下を有するが、連合Adamモデルが、0.4%の低下しか有しないことを示す。さらに、連合Adamモデルは、通信またはオンデバイス算出における増加を有しない。特定の実施形態では、推理モジュール222はまた、偽トリガ軽減を実施し得る。この偽トリガ軽減は、ユーザの音声入力がプライバシー制約を条件とするデータを含むとき、クライアントシステム130上で偽アクティブ化要求、たとえば、起動ワードを検出するのを助け得る。限定としてではなく一例として、ユーザがボイスコール中であるとき、ユーザの会話はプライベートであり、そのような会話に基づく偽トリガ検出は、ユーザのクライアントシステム130上でローカルに発生するにすぎない。
【0061】
特定の実施形態では、補助システム140は、ローカルコンテキストエンジン224を備え得る。コンテキストエンジン224は、より有益な手がかりを推理モジュール222に提供するために、すべての他の利用可能な信号を処理し得る。限定としてではなく一例として、コンテキストエンジン224は、人々に関係する情報、コンピュータビジョン技術によってさらに分析されるクライアントシステム130センサー(たとえば、マイクロフォン、カメラ)からの知覚データ、ジオメトリコンストラクション、アクティビティデータ、(たとえば、VRヘッドセットによって収集された)慣性データ、ロケーションなどを有し得る。特定の実施形態では、コンピュータビジョン技術は、人間骨格リコンストラクション、顔検出、顔認識、手追跡、視標追跡などを含み得る。特定の実施形態では、ジオメトリコンストラクションは、クライアントシステム130によって収集されたデータを使用して、ユーザの周囲のオブジェクトをコンストラクトすることを含み得る。限定としてではなく一例として、ユーザはARグラスを装着していることがあり、ジオメトリコンストラクションは、床がどこにあるか、壁がどこにあるか、ユーザの手がどこにあるかなどを決定することを目指し得る。特定の実施形態では、慣性データは、線運動および角運動に関連付けられたデータであり得る。限定としてではなく一例として、慣性データは、ユーザの身体部位がどのように動くかを測定するARグラスによってキャプチャされ得る。
【0062】
特定の実施形態では、ローカル推理モジュール222の出力は、ダイアログアービトレータ216に送られ得る。ダイアログアービトレータ216は、3つのシナリオにおいて別様に機能し得る。第1のシナリオでは、補助オーケストレータ206は、サーバ側プロセスを使用することを決定し、サーバ側プロセスのために、ダイアログアービトレータ216は、推理モジュール214の出力をリモートアクション実行モジュール226に伝送し得る。第2のシナリオでは、補助オーケストレータ206は、サーバ側プロセスとクライアント側プロセスの両方を使用することを決定し、これらのプロセスのために、ダイアログアービトレータ216は、両方のプロセスの両方の推理モジュール(すなわち、リモート推理モジュール214およびローカル推理モジュール222)からの出力を集約し、それらを分析し得る。限定としてではなく一例として、ダイアログアービトレータ216は、ランク付けを実施し、ユーザ入力に応答するための最良の推理結果を選択し得る。特定の実施形態では、ダイアログアービトレータ216は、さらに、分析に基づいて関連するタスクを実行するために、サーバ側のエージェントを使用すべきなのか、クライアント側のエージェントを使用すべきなのかを決定し得る。第3のシナリオでは、補助オーケストレータ206は、クライアント側プロセスを使用することを決定し、ダイアログアービトレータ216は、ローカル推理モジュール222の出力を評価して、クライアント側プロセスが、ユーザ入力をハンドリングするタスクを完了することができるかどうかを決定する必要がある。代替実施形態では、推理モジュール222の出力は、補助オーケストレータ206が、クライアント側プロセスを使用することと、クライアント側プロセスがユーザ入力を処理することが完全に可能であることとを決定した場合、ダイアログアービトレータ216に送られないことがある。
【0063】
特定の実施形態では、上述の第1および第2のシナリオのために、ダイアログアービトレータ216は、ユーザ入力に応答してタスクを実行するためにサーバ側のエージェントが必要であると決定し得る。したがって、ダイアログアービトレータ216は、ユーザ入力に関する必要な情報をアクション実行モジュール226に送り得る。アクション実行モジュール226は、タスクを実行するために1つまたは複数のエージェントをコールし得る。代替実施形態では、ダイアログマネージャのアクションセレクタは、実行すべきアクションを決定し、それに応じてアクション実行モジュール226に命令し得る。特定の実施形態では、エージェントは、1つのドメインのための複数のコンテンツプロバイダにわたるブローカーとして働く実装形態であり得る。コンテンツプロバイダは、意図に関連付けられたアクションを行うこと、または意図に関連付けられたタスクを完了することを担当するエンティティであり得る。特定の実施形態では、エージェントは、ファーストパーティエージェントとサードパーティエージェントとを含み得る。特定の実施形態では、ファーストパーティエージェントは、補助システム140によってアクセス可能および制御可能である内部エージェント(たとえば、メッセージングサービスまたは写真共有サービスなど、オンラインソーシャルネットワークによって提供されるサービスに関連付けられたエージェント)を含み得る。特定の実施形態では、サードパーティエージェントは、補助システム140が制御を有しない外部エージェント(たとえば、サードパーティオンラインミュージックアプリケーションエージェント、チケットセールスエージェント)を含み得る。ファーストパーティエージェントは、ソーシャルネットワーキングシステム160によってホストされるコンテンツオブジェクトおよび/またはサービスを提供するファーストパーティプロバイダに関連付けられ得る。サードパーティエージェントは、サードパーティシステム170によってホストされるコンテンツオブジェクトおよび/またはサービスを提供するサードパーティプロバイダに関連付けられ得る。特定の実施形態では、ファーストパーティエージェントまたはサードパーティエージェントの各々は、特定のドメインのために指定され得る。限定としてではなく一例として、ドメインは、気象、輸送、音楽などを含み得る。特定の実施形態では、補助システム140は、ユーザ入力に応答するために複数のエージェントを共同的に使用し得る。限定としてではなく一例として、ユーザ入力は「次のミーティングに私を案内してください」を含み得る。補助システム140は、次のミーティングのロケーションを取り出すためにカレンダーエージェントを使用し得る。補助システム140は、次いで、ユーザを次のミーティングに案内するためにナビゲーションエージェントを使用し得る。
【0064】
特定の実施形態では、上述の第2および第3のシナリオのために、ダイアログアービトレータ216は、クライアント側のエージェントが、ユーザ入力に応答してタスクを実行することが可能であるが、追加情報が必要とされる(たとえば、応答テンプレート)、またはタスクがサーバ側のエージェントのみによってハンドリングされ得ると決定し得る。ダイアログアービトレータ216が、タスクがサーバ側のエージェントのみによってハンドリングされ得ると決定した場合、ダイアログアービトレータ216は、ユーザ入力に関する必要な情報をアクション実行モジュール226に送り得る。ダイアログアービトレータ216が、クライアント側のエージェントがタスクを実行することが可能であるが、応答テンプレートが必要とされると決定した場合、ダイアログアービトレータ216は、ユーザ入力に関する必要な情報をリモート応答テンプレート生成モジュール228に送り得る。応答テンプレート生成モジュール228の出力は、さらに、クライアントシステム130上で実行するローカルアクション実行モジュール230に送られ得る。特定の実施形態では、補助オーケストレータ206が、クライアント側プロセスを使用することと、クライアント側プロセスがユーザ入力を処理することが完全に可能であることとを決定した場合、推理モジュール222の出力は、アクション実行モジュール230に直接送られ得る。
【0065】
特定の実施形態では、アクション実行モジュール230は、タスクを実行するためにローカルエージェントをコールし得る。クライアントシステム130上のローカルエージェントは、サーバ側のエージェントと比較して、より単純なタスクを実行することが可能であり得る。限定としてではなく一例として、複数のデバイス固有の実装形態(たとえば、クライアントシステム130またはクライアントシステム130上のメッセージングアプリケーションのためのリアルタイムコール)が、単一のエージェントによって内部でハンドリングされ得る。代替的に、これらのデバイス固有の実装形態は、複数のドメインに関連付けられた複数のエージェントによってハンドリングされ得る。特定の実施形態では、アクション実行モジュール230は、一般的な実行可能ダイアログアクションのセットをさらに実施し得る。実行可能ダイアログアクションのセットは、エージェント、ユーザおよび補助システム140自体と対話し得る。これらのダイアログアクションは、スロット要求、確認、あいまいさ除去、エージェント実行などのためのダイアログアクションを含み得る。ダイアログアクションは、アクションセレクタまたはダイアログポリシーの基礎をなす実装形態とは無関係であり得る。ツリーベースポリシーとモデルベースポリシーの両方が、同じ基本的なダイアログアクションを生成し得、コールバック関数が、任意のアクションセレクタ固有の実装形態の詳細を隠す。
【0066】
特定の実施形態では、サーバ側のリモートアクション実行モジュール226からの出力は、リモート応答実行モジュール232に送られ得る。特定の実施形態では、アクション実行モジュール226は、より多くの情報を求めてダイアログアービトレータ216に通信し得る。応答実行モジュール232は、リモート会話理解(CU)コンポーザに基づき得る。特定の実施形態では、アクション実行モジュール226からの出力は、<k,c,u,d>タプルとして構築され得、ここで、kは知識ソースを指示し、cは通信目標を指示し、uはユーザモデルを指示し、dは談話モデルを指示する。特定の実施形態では、CUコンポーザは、自然言語生成(NLG)モジュールと、ユーザインターフェース(UI)ペイロード生成器とを備え得る。自然言語生成器は、異なる言語モデルおよび/または言語テンプレートを使用して、アクション実行モジュール226の出力に基づいて、通信コンテンツを生成し得る。特定の実施形態では、通信コンテンツの生成は、アプリケーション固有であり、また各ユーザについて個人化され得る。CUコンポーザはまた、UIペイロード生成器を使用して、生成された通信コンテンツのモダリティを決定し得る。特定の実施形態では、NLGモジュールは、コンテンツ決定構成要素と、センテンスプランナと、表層実現(surface realization)構成要素とを備え得る。コンテンツ決定構成要素は、知識ソース、通信目標、およびユーザの予想(expectation)に基づいて、通信コンテンツを決定し得る。限定としてではなく一例として、決定することは、記述論理に基づき得る。記述論理は、たとえば、(ドメインにおけるオブジェクトを表す)個体、(個体のセットを記述する)概念、および(個体または概念間の2項関係を表す)役割である、3つの基本観念を含み得る。記述論理は、自然言語生成器が原子的なものから複雑な概念/役割を組み立てることを可能にする、コンストラクタのセットによって特徴づけられ得る。特定の実施形態では、コンテンツ決定構成要素は、通信コンテンツを決定するために、以下のタスクを実施し得る。第1のタスクは、自然言語生成器への入力が概念にトランスレートされ得る、トランスレーションタスクを含み得る。第2のタスクは、関連する概念が、ユーザモデルに基づいて、トランスレーションタスクから生じたものの中から選択され得る、選択タスクを含み得る。第3のタスクは、選択された概念の一貫性(coherence)が検証され得る、検証タスクを含み得る。第4のタスクは、検証された概念が、自然言語生成器によって処理され得る実行ファイルとしてインスタンス化され得る、インスタンス化タスクを含み得る。センテンスプランナは、通信コンテンツを人間が理解できるものにするために、通信コンテンツの編成を決定し得る。表層実現構成要素は、使用すべき固有ワード、センテンスのシーケンス、および通信コンテンツのスタイルを決定し得る。UIペイロード生成器は、ユーザに提示されるべき通信コンテンツの選好されるモダリティを決定し得る。特定の実施形態では、CUコンポーザは、通信コンテンツの生成がプライバシーポリシーに従うことを確かめるために、ユーザに関連付けられたプライバシー制約を検査し得る。自然言語生成に関するより多くの情報が、その各々が参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967279号、および2018年4月30日に出願された米国特許出願第15/966455号において見つけられ得る。
【0067】
特定の実施形態では、クライアントシステム130上のローカルアクション実行モジュール230からの出力は、ローカル応答実行モジュール234に送られ得る。応答実行モジュール234は、ローカル会話理解(CU)コンポーザに基づき得る。CUコンポーザは、自然言語生成(NLG)モジュールを備え得る。クライアントシステム130の算出能力が制限され得るので、NLGモジュールは、算出効率の考慮のために単純であり得る。NLGモジュールが単純であり得るので、応答実行モジュール234の出力は、ローカル応答拡大モジュール236に送られ得る。応答拡大モジュール236は、応答をより自然にし、よりリッチな意味論的情報を含んでいるように、応答実行モジュール234の結果をさらに拡大し得る。
【0068】
特定の実施形態では、ユーザ入力がオーディオ信号に基づく場合、サーバ側の応答実行モジュール232の出力は、リモートテキスト音声(TTS:text-to-speech)モジュール238に送られ得る。同様に、クライアント側の応答拡大モジュール236の出力は、ローカルTTSモジュール240に送られ得る。両方のTTSモジュールは、応答をオーディオ信号にコンバートし得る。特定の実施形態では、応答実行モジュール232、応答拡大モジュール236、または両側のTTSモジュールからの出力は、最終的に、ローカルレンダリング出力モジュール242に送られ得る。レンダリング出力モジュール242は、クライアントシステム130に好適である応答を生成し得る。限定としてではなく一例として、応答実行モジュール232または応答拡大モジュール236の出力は、VRヘッドセットまたはARスマートグラス中に表示され得る、自然言語ストリング、音声、パラメータを伴うアクション、またはレンダリングされた画像もしくはビデオのうちの1つまたは複数を含み得る。その結果、レンダリング出力モジュール242は、VRヘッドセットまたはARスマートグラス上に表示するために応答を適切にレンダリングするために、CUコンポーザの出力に基づいて、どのタスクを実施すべきかを決定し得る。たとえば、応答は、VRヘッドセットまたはARスマートグラスを介して表示され得るビジュアルベースモダリティ(たとえば、画像またはビデオクリップ)であり得る。別の例として、応答は、VRヘッドセットまたはARスマートグラスを介してユーザによってプレイされ得るオーディオ信号であり得る。また別の例として、応答は、ユーザエクスペリエンスを向上させるために、レンダリングされたVRヘッドセットまたはARスマートグラスであり得る拡張現実データあり得る。
【0069】
特定の実施形態では、補助システム140は、オーディオ認知、ビジュアル認知、信号インテリジェンス、推理、およびメモリを含む様々な能力を有し得る。特定の実施形態では、オーディオ認知の能力は、補助システム140が、異なる言語における様々なドメインに関連付けられたユーザの入力を理解することと、会話を理解し、その会話を要約することを可能にすることと、複雑なコマンドのためのオンデバイスオーディオ認知を実施することと、ボイスによってユーザを識別することと、会話からトピックを抽出し、会話のセクションを自動タグ付けする(auto-tag)ことと、起動ワードなしにオーディオ対話を可能にすることと、環境雑音および会話からユーザボイスをフィルタ処理および増幅することと、ユーザがどのクライアントシステム130(複数のクライアントシステム130が近接している場合)に話しているかを理解することとを可能にし得る。
【0070】
特定の実施形態では、ビジュアル認知の能力は、補助システム140が、顔検出および追跡を実施することと、ユーザを認識することと、様々な角度において、主要メトロポリタンエリアにおける興味のあるたいていの人々を認識することと、既存の機械学習モデルとワンショット学習との組合せを通して世界中の興味深いオブジェクトの大部分を認識することと、興味深い瞬間を認識し、その瞬間を自動キャプチャすることと、時間の異なるエピソードにわたる複数のビジュアルフレームに対する意味論的理解を達成することと、人々、場所、オブジェクト認識における追加の能力のプラットフォームサポートを提供することと、個人化されたロケーションを含む設定およびマイクロロケーションの完全なセットを認識することと、複雑なアクティビティを認識することと、クライアントシステム130を制御するための複雑なジェスチャーを認識することと、(たとえば、動き、キャプチャ角度、解像度などにより)エゴセントリックカメラからの画像/ビデオをハンドリングすることと、より低い解像度をもつ画像に関して同様のレベルの精度および速度を達成することと、人々、場所、およびオブジェクトのワンショット登録および認識を行うことと、クライアントシステム130上でビジュアル認識を実施することとを可能にし得る。
【0071】
特定の実施形態では、補助システム140は、ビジュアル認知を達成するためにコンピュータビジョン技法を活用し得る。コンピュータビジョン技法のほかに、補助システム140は、オブジェクトの認識をスケールアップするために、これらの技法を補足することができるオプションを探求し得る。特定の実施形態では、補助システム140は、オブジェクトのラベルの光学文字認識(OCR)などの補足信号、場所認識のためのGPS信号、ユーザを識別するためのユーザのクライアントシステム130からの信号を使用し得る。特定の実施形態では、補助システム140は、最も可能性が高いオブジェクトまたは人々を識別するために、ユーザのためのコンテキストを設定し、コンピュータビジョン検索空間を低減するために一般的なシーン認識(自宅、仕事、公共空間など)を実施し得る。特定の実施形態では、補助システム140は、補助システム140をトレーニングするようにユーザをガイドし得る。たとえば、クラウドソーシングが、ユーザにタグ付けさせ、補助システム140が経時的により多くのオブジェクトを認識するのを助けるために使用され得る。別の例として、ユーザは、補助システム140を使用するとき、初期セットアップの一部としてユーザの個人オブジェクトを登録することができる。補助システム140は、さらに、ユーザが、ユーザのための個人化されたモデルをトレーニングし、改善するために、ユーザが対話するオブジェクトに正/負の信号を提供することを可能にし得る。
【0072】
特定の実施形態では、信号インテリジェンスの能力は、補助システム140が、ユーザロケーションを決定することと、日付/時間を理解することと、家族のロケーションを決定することと、ユーザのカレンダーおよび将来の所望のロケーションを理解することと、音のみを通して設定/コンテキストを識別するために、よりリッチな音理解を組み込むことと、ユーザの個々のルーチンに個人化され得る信号インテリジェンスモデルをランタイムにおいて組み立てることとを可能にし得る。
【0073】
特定の実施形態では、推理の能力は、補助システム140が、将来における任意のポイントにおいて任意の前の会話スレッドをピックアップする能力を有することと、マイクロコンテキストおよび個人化されたコンテキストを理解するためにすべての信号を合成することと、ユーザの履歴行動から対話パターンおよび選好を学習し、ユーザが尊重し得る対話を正確に示唆することと、マイクロコンテキスト理解に基づいて高度な予測プロアクティブ示唆を生成することと、ユーザが1日のどの時間においてどのコンテンツを見ることを希望し得るかを理解することと、シーンの変化、およびその変化がユーザの所望のコンテンツにどのように影響を及ぼし得るかを理解することとを可能にし得る。
【0074】
特定の実施形態では、メモリの能力は、補助システム140が、ユーザが、前にどのソーシャルつながりにコールしたか、またはどのソーシャルつながりと対話したかを覚えていることと、自由にメモリに書き込み、メモリに問い合わせることと(すなわち、オープンディクテーションおよび自動タグ)、前の対話および長期学習に基づいて、よりリッチな選好を抽出することと、ユーザの生活履歴を覚えていることと、データのエゴセントリックストリームおよび自動カタログからリッチな情報を抽出することと、リッチな短期記憶、エピソード記憶および長期記憶を形成するために、構造化された形式でメモリに書き込むこととを可能にし得る。
【0075】
図3は、補助システム140のサーバ側プロセスの例示的な図のフローを示す。特定の実施形態では、サーバ補助サービスモジュール301は、ユーザ要求を受信すると、要求マネージャ302にアクセスし得る。代替実施形態では、ユーザ要求は、ユーザ要求がオーディオ信号に基づく場合、リモートASRモジュール208によって最初に処理され得る。特定の実施形態では、要求マネージャ302は、コンテキスト抽出器303と会話理解オブジェクト生成器(CUオブジェクト生成器)304とを備え得る。コンテキスト抽出器303は、ユーザ要求に関連付けられたコンテキスト情報を抽出し得る。コンテキスト抽出器303はまた、クライアントシステム130上で実行している補助アプリケーション136に基づいて、コンテキスト情報を更新し得る。限定としてではなく一例として、コンテキスト情報の更新は、コンテンツアイテムがクライアントシステム130上に表示されることを含み得る。限定としてではなく別の例として、コンテキスト情報の更新は、アラームがクライアントシステム130上で設定されたかどうかを含み得る。限定としてではなく別の例として、コンテキスト情報の更新は、歌がクライアントシステム130上でプレイしているかどうかを含み得る。CUオブジェクト生成器304は、ユーザ要求に関連する特定のコンテンツオブジェクトを生成し得る。コンテンツオブジェクトは、補助システム140のすべてのモジュールと共有され得る、ユーザ要求に関連付けられたダイアログセッションデータおよび特徴を含み得る。特定の実施形態では、要求マネージャ302は、コンテキスト情報および生成されたコンテンツオブジェクトを、補助システム140において実装される特定のデータストアであるデータストア212に記憶し得る。
【0076】
特定の実施形態では、要求マネージャ302は、生成されたコンテンツオブジェクトをリモートNLUモジュール210に送り得る。NLUモジュール210は、コンテンツオブジェクトを処理するために複数のステップを実施し得る。ステップ305において、NLUモジュール210は、コンテンツオブジェクトについてのホワイトリストを生成し得る。特定の実施形態では、ホワイトリストは、ユーザ要求にマッチする解釈データを含み得る。ステップ306において、NLUモジュール210は、ホワイトリストに基づいて特徴化(featurization)を実施し得る。ステップ307において、NLUモジュール210は、ユーザ要求を、事前定義されたドメインに分類するために、特徴化から生じた特徴に基づいて、ユーザ要求に関するドメイン分類/選択を実施し得る。ドメイン分類/選択の結果は、2つの関係するプロシージャに基づいて、さらに処理され得る。ステップ308aにおいて、NLUモジュール210は、意図分類器を使用して、ドメイン分類/選択の結果を処理し得る。意図分類器は、ユーザ要求に関連付けられたユーザの意図を決定し得る。特定の実施形態では、所与のドメインにおいて最も可能性がある意図を決定するために、各ドメインについて1つの意図分類器があり得る。限定としてではなく一例として、意図分類器は、ドメイン分類/選択の結果を入力としてとり、その入力が特定の事前定義された意図に関連付けられる確率を計算し得る、機械学習モデルに基づき得る。ステップ308bにおいて、NLUモジュール210は、メタ意図分類器を使用して、ドメイン分類/選択の結果を処理し得る。メタ意図分類器は、ユーザの意図について説明するカテゴリーを決定し得る。特定の実施形態では、複数のドメインに共通である意図は、メタ意図分類器によって処理され得る。限定としてではなく一例として、メタ意図分類器は、ドメイン分類/選択の結果を入力としてとり、その入力が特定の事前定義されたメタ意図に関連付けられる確率を計算し得る、機械学習モデルに基づき得る。ステップ309aにおいて、NLUモジュール210は、ユーザ要求に関連付けられた1つまたは複数のスロットにアノテーションを付けるために、スロットタガー(tagger)を使用し得る。特定の実施形態では、スロットタガーは、ユーザ要求のnグラムについての1つまたは複数のスロットにアノテーションを付け得る。ステップ309bにおいて、NLUモジュール210は、メタ意図分類器からの分類結果についての1つまたは複数のスロットにアノテーションを付けるために、メタスロットタガーを使用し得る。特定の実施形態では、メタスロットタガーは、アイテム(たとえば、第1の)、スロットのタイプ、スロットの値などへの参照など、一般スロットをタグ付けし得る。限定としてではなく一例として、ユーザ要求は「私の口座の500ドルを日本円に両替してください」を含み得る。意図分類器は、ユーザ要求を入力としてとり、その入力をベクトルに構築し得る。意図分類器は、次いで、ユーザ要求を表すベクトルと、異なる事前定義された意図を表すベクトルとの間のベクトル比較に基づいて、ユーザ要求が、異なる事前定義された意図に関連付けられる、確率を計算し得る。同様にして、スロットタガーは、ユーザ要求を入力としてとり、各ワードをベクトルに構築し得る。意図分類器は、次いで、ワードを表すベクトルと、異なる事前定義されたスロットを表すベクトルとの間のベクトル比較に基づいて、各ワードが、異なる事前定義されたスロットに関連付けられる、確率を計算し得る。ユーザの意図は「両替する」として分類され得る。ユーザ要求のスロットは、「500」と「ドル」と「口座」と「日本円」とを含み得る。ユーザのメタ意図は「金融サービス」として分類され得る。メタスロットは「金融」を含み得る。
【0077】
特定の実施形態では、NLUモジュール210は、意味論的情報アグリゲータ310を備え得る。意味論的情報アグリゲータ310は、NLUモジュール210が、意味論的情報を提供することによってコンテンツオブジェクトのドメイン分類/選択を改善するのを助け得る。特定の実施形態では、意味論的情報アグリゲータ310は、以下のようにして意味論的情報を集約し得る。意味論的情報アグリゲータ310は、最初に、ユーザコンテキストエンジン315から情報を取り出し得る。特定の実施形態では、ユーザコンテキストエンジン315は、オフラインアグリゲータとオンライン推論サービスとを備え得る。オフラインアグリゲータは、前の時間ウィンドウから収集された、ユーザに関連付けられた複数のデータを処理し得る。限定としてではなく一例として、データは、所定の時間フレーム中に(たとえば、前の90日のウィンドウから)収集された、ニュースフィード投稿/コメント、ニュースフィード投稿/コメントとの対話、検索履歴などを含み得る。処理結果は、ユーザプロファイルの一部として、ユーザコンテキストエンジン315に記憶され得る。オンライン推論サービスは、現在時間において補助システム140によって受信された、ユーザに関連付けられた会話データを分析し得る。分析結果は、同じくユーザプロファイルの一部として、ユーザコンテキストエンジン315に記憶され得る。特定の実施形態では、オフラインアグリゲータとオンライン推論サービスの両方は、複数のデータから個人化特徴を抽出し得る。抽出された個人化特徴は、ユーザ入力をより良く理解するために、補助システム140の他のモジュールによって使用され得る。特定の実施形態では、意味論的情報アグリゲータ310は、次いで、以下のステップにおいて、ユーザコンテキストエンジン315からの取り出された情報、すなわち、ユーザプロファイルを処理し得る。ステップ311において、意味論的情報アグリゲータ310は、自然言語処理(NLP)に基づいて、ユーザコンテキストエンジン315からの取り出された情報を処理し得る。特定の実施形態では、意味論的情報アグリゲータ310は、テキスト正規化によってテキストをトークン化し、テキストからシンタックス特徴を抽出し、NLPに基づいてテキストから意味論的特徴を抽出し得る。意味論的情報アグリゲータ310は、ユーザと補助システム140との間のダイアログ履歴からアクセスされるコンテキスト情報から、特徴をさらに抽出し得る。意味論的情報アグリゲータ310は、コンテキスト情報に基づいて、グローバルワード埋込み、ドメイン固有埋込み、および/または動的埋込みをさらに行い得る。ステップ312において、処理結果は、エンティティタガーによってエンティティでアノテーションを付けられ得る。アノテーションに基づいて、意味論的情報アグリゲータ310は、ステップ313において、取り出された情報についての辞書を生成し得る。特定の実施形態では、辞書は、オフラインで動的に更新され得るグローバル辞書特徴を含み得る。ステップ314において、意味論的情報アグリゲータ310は、エンティティタガーによってタグ付けされたエンティティをランク付けし得る。特定の実施形態では、意味論的情報アグリゲータ310は、ユーザコンテキストエンジン315からの取り出された情報に関連するオントロジデータを抽出するために、ソーシャルグラフ、知識グラフ、または概念グラフのうちの1つまたは複数を含む、異なるグラフ320と通信し得る。特定の実施形態では、意味論的情報アグリゲータ310は、ユーザプロファイルと、ランク付けされたエンティティと、グラフ320からの情報とを集約し得る。意味論的情報アグリゲータ310は、次いで、ドメイン分類/選択を可能にするために、集約された情報をNLUモジュール210に提供し得る。
【0078】
特定の実施形態では、NLUモジュール210の出力は、リモート推理モジュール214に送られ得る。推理モジュール214は、共参照(co-reference)構成要素325と、エンティティ解析構成要素330と、ダイアログマネージャ335とを備え得る。NLUモジュール210の出力は、ユーザ要求に関連付けられたコンテンツオブジェクトの参照を解釈するために、共参照構成要素325において最初に受信され得る。特定の実施形態では、共参照構成要素325は、ユーザ要求が指すアイテムを識別するために使用され得る。共参照構成要素325は、参照作成326と参照解析327とを備え得る。特定の実施形態では、参照作成326は、NLUモジュール210によって決定されたエンティティについての参照を作成し得る。参照解析327は、これらの参照を正確に解析し得る。限定としてではなく一例として、ユーザ要求は「最寄の食品雑貨店を見つけて、私をそこに案内してください」を含み得る。共参照構成要素325は、「そこ」を「最寄の食品雑貨店」として解釈し得る。特定の実施形態では、共参照構成要素325は、改善された正確さで参照を解釈するのに必要なとき、ユーザコンテキストエンジン315およびダイアログマネージャ335にアクセスし得る。
【0079】
特定の実施形態では、識別されたドメイン、意図、メタ意図、スロット、およびメタスロットは、解析された参照とともに、関連するエンティティを解析するためにエンティティ解析構成要素330に送られ得る。エンティティ解析構成要素330は、一般およびドメイン固有エンティティ解析を実行し得る。特定の実施形態では、エンティティ解析構成要素330は、ドメインエンティティ解析331と一般エンティティ解析332とを備え得る。ドメインエンティティ解析331は、スロットおよびメタスロットを、異なるドメインにカテゴリー分類することによって、エンティティを解析し得る。特定の実施形態では、エンティティは、グラフ320から抽出されたオントロジデータに基づいて解析され得る。オントロジデータは、異なるスロット/メタスロットおよびドメイン間の構造関係を含み得る。オントロジは、スロット/メタスロットがどのように、グループ化され、より高いレベルがドメインを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をも含み得る。一般エンティティ解析332は、スロットおよびメタスロットを、異なる一般トピックにカテゴリー分類することによって、エンティティを解析し得る。特定の実施形態では、解析することは、グラフ320から抽出されたオントロジデータにも基づき得る。オントロジデータは、異なるスロット/メタスロットおよび一般トピック間の構造関係を含み得る。オントロジは、スロット/メタスロットがどのように、グループ化され、より高いレベルがトピックを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をも含み得る。限定としてではなく一例として、特定のブランドの電気自動車の利点の照会の入力に応答して、一般エンティティ解析332は、参照されたブランドの電気自動車を車両として解析し得、ドメインエンティティ解析331は、参照されたブランドの電気自動車を電気自動車として解析し得る。
【0080】
特定の実施形態では、エンティティ解析構成要素330の出力は、ユーザとの会話のフローを進めるために、ダイアログマネージャ335に送られ得る。ダイアログマネージャ335は、状態を繰り返し更新し、新しい状態に基づいてアクションを選択する、非同期状態機械であり得る。ダイアログマネージャ335は、ダイアログ意図解析336と、ダイアログ状態トラッカー337とを備え得る。特定の実施形態では、ダイアログマネージャ335は、選択されたアクションを実行し、次いで、選択されたアクションがユーザ応答を必要とするまで、またはそれ以上実行すべきアクションがなくなるまで、再びダイアログ状態トラッカー337をコールし得る。選択された各アクションは、前のアクションからの実行結果に依存し得る。特定の実施形態では、ダイアログ意図解析336は、ユーザと補助システム140との間のダイアログ履歴に基づいて、現在のダイアログセッションに関連付けられたユーザ意図を解析し得る。ダイアログ意図解析336は、NLUモジュール210によって決定された意図を、異なるダイアログ意図にマッピングし得る。ダイアログ意図解析336は、さらに、NLUモジュール210、エンティティ解析構成要素330からの信号と、ユーザと補助システム140との間のダイアログ履歴とに基づいて、ダイアログ意図をランク付けし得る。特定の実施形態では、ダイアログ状態を直接変える代わりに、ダイアログ状態トラッカー337は、副次的作用のない構成要素であり、ダイアログ状態の更新を提案するダイアログ状態更新オペレータのnベスト候補を生成し得る。ダイアログ状態トラッカー337は、ダイアログ状態に基づいて異なるタイプのNLU意図をハンドリングし、オペレータを生成するための論理を含んでいている意図解析器を備え得る。特定の実施形態では、論理は、補助システム140があいまいさ除去を求めるときに意図をハンドリングするためのあいまいさ除去意図ハンドラ、確認をハンドリングするための論理を備える確認意図ハンドラなと、意図ハンドラによって編成され得る。意図解析器は、ユーザとの会話のためのコンテキスト更新を生成するために、ダイアログ状態とともにターン意図を組み合わせ得る。スロット解析構成要素は、次いで、知識グラフとドメインエージェントとを含む解析プロバイダを用いて更新オペレータ中のスロットを再帰的に解析し得る。特定の実施形態では、ダイアログ状態トラッカー337は、現在のダイアログセッションのダイアログ状態を更新/ランク付けし得る。限定としてではなく一例として、ダイアログ状態トラッカー337は、ダイアログセッションが終了した場合、ダイアログ状態を「完了した」として更新し得る。限定としてではなく別の例として、ダイアログ状態トラッカー337は、ダイアログ状態に関連付けられた優先度に基づいて、ダイアログ状態をランク付けし得る。
【0081】
特定の実施形態では、推理モジュール214は、それぞれ、リモートアクション実行モジュール226およびダイアログアービトレータ216と通信し得る。特定の実施形態では、推理モジュール214のダイアログマネージャ335は、ダイアログ意図および関連付けられたコンテンツオブジェクトについて、アクション実行モジュール226のタスク完了構成要素340と通信し得る。特定の実施形態では、タスク完了モジュール340は、異なるダイアログ意図について、異なるダイアログ仮定をランク付けし得る。タスク完了モジュール340は、アクションセレクタ341を備え得る。代替実施形態では、アクションセレクタ341は、ダイアログマネージャ335中に備えられ得る。特定の実施形態では、ダイアログマネージャ335は、さらに、ダイアログ状態に関して、ダイアログアービトレータ216中に備えられるダイアログポリシー345に対して検査し得る。特定の実施形態では、ダイアログポリシー345は、エージェント350によるアクションの実行プランについて説明するデータ構造を含み得る。ダイアログポリシー345は、一般ポリシー346とタスクポリシー347とを含み得る。特定の実施形態では、一般ポリシー346は、個々のタスクに固有でないアクションのために使用され得る。一般ポリシー346は、低い信頼性の意図、内部エラー、再試行を伴う許容できないユーザ応答、ASRまたはNLU信頼性スコアに基づく確認をスキップまたは挿入することなどをハンドリングすることを含み得る。一般ポリシー346はまた、ダイアログ状態トラッカー337出力からのダイアログ状態更新候補をランク付けする論理を含み、更新すべき候補を選出し得る(トップにランク付けされたタスク意図を選出するなど)。特定の実施形態では、補助システム140は、散乱したクロスドメインポリシー/ビジネスルール、特にダイアログ状態トラッカー337において見つけられるものを、アクションセレクタ341の機能に統合することを可能にする、一般ポリシー346のための特定のインターフェースを有し得る。一般ポリシー346のためのインターフェースはまた、固有の状況またはクライアントにひも付けられ得る自己完結型サブポリシーユニットのオーサリング、たとえば、クライアント、状況などに基づいて容易にオンまたはオフに切り替えられ得るポリシー機能を可能にし得る。一般ポリシー346のためのインターフェースはまた、バックオフを用いたポリシーの階層化、すなわち複数のポリシーユニットを提供することを可能にし得、固有の状況に対処する高度に特殊化されたポリシーユニットが、より広い事態において適用されるより多くの一般ポリシー346によってバックアップされる。このコンテキストでは、一般ポリシー346は、代替として、意図またはタスク固有のポリシーを含み得る。特定の実施形態では、タスクポリシー347は、タスクおよび現在の状態に基づく、アクションセレクタ341のための論理を含み得る。特定の実施形態では、以下の4つのタイプのタスクポリシー347、すなわち、1)手動でクラフティングされたツリーベースダイアログプラン、2)アクションを生成するためのインターフェースを直接実装するコード化ポリシー、3)設定器指定のスロット充填タスク、および4)データから学習された機械学習モデルベースポリシーがあり得る。特定の実施形態では、補助システム140は、ルールベース論理を用いて新しいドメインをブートストラップし、後で、機械学習モデルを用いてタスクポリシー347を改良し得る。特定の実施形態では、ダイアログポリシー345は、事前にコンストラクトされたダイアログプランであるツリーベースポリシーであり得る。現在のダイアログ状態に基づいて、ダイアログポリシー345は、対応するアクションを実行および生成するためのノードを選定し得る。限定としてではなく一例として、ツリーベースポリシーは、トピックグループ化ノードとダイアログアクション(リーフ)ノードとを備え得る。
【0082】
特定の実施形態では、アクションセレクタ341は、ダイアログ状態の候補オペレータをとり、どのアクションが実行されるべきであるかを判断するためにダイアログポリシー345を調べ得る。補助システム140は、クロスドメインビジネス論理をハンドリングする一般ポリシー346を伴う階層ダイアログポリシーを使用し得、タスクポリシー347は、タスク/ドメイン固有の論理をハンドリングする。特定の実施形態では、一般ポリシー346は、ダイアログ状態を更新するために候補オペレータから1つのオペレータを選出し、その後に、タスクポリシー347によるユーザ向けアクションの選択が続き得る。タスクがダイアログ状態においてアクティブであると、対応するタスクポリシー347は、正しいアクションを選択するために調べられ得る。特定の実施形態では、ダイアログ状態トラッカー337とアクションセレクタ341の両方は、選択されたアクションが実行されるまで、ダイアログ状態を変更しないことがある。これは、補助システム140が、推論的ASR結果を処理するためにダイアログ状態トラッカー337およびアクションセレクタ341を実行することと、予行演習によるnベストランク付けを行うこととを可能にし得る。特定の実施形態では、アクションセレクタ341は、ダイアログアクションを選択するために入力の一部としてダイアログ状態更新オペレータをとり得る。ダイアログアクションの実行は、将来のターンをハンドリングするようにダイアログ状態トラッカー337に命令するために予想のセットを生成し得る。特定の実施形態では、予想は、次のターンからのユーザ入力をハンドリングするとき、ダイアログ状態トラッカー337にコンテキストを提供するために使用され得る。限定としてではなく一例として、スロット要求ダイアログアクションが、要求されたスロットのための値を証明する予想を有し得る。
【0083】
特定の実施形態では、ダイアログマネージャ335は、スロット言及のマルチターン組成解析をサポートし得る。NLU210からの組成パースについて、解析器は、ネストされたスロットを再帰的に解析し得る。ダイアログマネージャ335は、さらに、ネストされたスロットのためのあいまいさ除去をサポートし得る。限定としてではなく一例として、ユーザ要求は、「Alexにコールすることを私にリマインドしてください」であり得る。解析器は、アクション可能なリマインダto-doエンティティを作成する前に、どのAlexにコールすべきかを知る必要があり得る。解析器は、さらなるユーザ明確化が特定のスロットのために必要であるとき、解析を停止し、解析状態を設定し得る。一般ポリシー346は、解析状態を調査し、ユーザ明確化のための対応するダイアログアクションを作成し得る。ダイアログ状態トラッカー337において、ユーザ要求および最新のダイアログアクションに基づいて、ダイアログマネージャは、ネストされたスロットを更新し得る。この能力は、補助システム140が、欠落したスロット値を収集するだけでなく、より複雑な/あいまいな発話のあいまいさを低減して、タスクを完了するために、ユーザと対話することを可能にし得る。特定の実施形態では、ダイアログマネージャは、ユーザが要求するネストされた意図およびマルチ意図における欠落したスロットを要求することをさらにサポートし得る(たとえば、「この写真を撮って、写真を父さんに送ってください」)。特定の実施形態では、ダイアログマネージャ335は、よりロバストなダイアログエクスペリエンスのための機械学習モデルをサポートし得る。限定としてではなく一例として、ダイアログ状態トラッカー337は、ニューラルネットワークベースモデル(または任意の他の好適な機械学習モデル)を使用して、タスク仮定に対する信念をモデル化し得る。限定としてではなく別の例として、アクションセレクタ341について、最高優先度のポリシーユニットは、意図的に発生しなければならないことがあるホワイトリスト/ブラックリストオーバーライドを備え得、中優先度のポリシーユニットは、アクション選択のために設計された機械学習モデルを備え得、より低い優先度のユニットは、機械学習モデルが状況をハンドリングしないことを選んだときの、ルールベースフォールバックを備え得る。特定の実施形態では、機械学習モデルベース一般ポリシーユニットは、補助システム140が、冗長あいまいさ除去または確認ステップを低減し、それにより、ユーザ要求を実行するためのターンの数を低減するのを助け得る。
【0084】
特定の実施形態では、アクション実行モジュール226は、タスク実行のために異なるエージェント350をコールし得る。エージェント350は、アクションを完了するために、登録済みコンテンツプロバイダの中から選択し得る。データ構造は、意図および意図に関連付けられた1つまたは複数のスロットに基づいて、ダイアログマネージャ335によってコンストラクトされ得る。ダイアログポリシー345は、論理演算子を通して互いに関係する複数の目標をさらに含み得る。特定の実施形態では、目標は、ダイアログポリシーの一部分の成果であり得、それは、ダイアログマネージャ335によってコンストラクトされ得る。目標は、目標をパラメータ化する、1つまたは複数の名前付き引数をもつ識別子(たとえば、ストリング)によって表され得る。限定としてではなく一例として、その関連付けられた目標引数をもつ目標は、{confirm_artist,args:{artist:“Madonna”}}として表され得る。特定の実施形態では、ダイアログポリシーは、目標がツリーのリーフにマッピングされる、ツリー構造化された表現に基づき得る。特定の実施形態では、ダイアログマネージャ335は、行うべき次のアクションを決定するために、ダイアログポリシー345を実行し得る。ダイアログポリシー345は、一般ポリシー346とドメイン固有ポリシー347とを含み得、それらの両方は、ダイアログ状態に基づいて、次のシステムアクションをどのように選択すべきかをガイドし得る。特定の実施形態では、アクション実行モジュール226のタスク完了構成要素340は、次のシステムアクションのガイダンスを取得するために、ダイアログアービトレータ216中に備えられるダイアログポリシー345と通信し得る。特定の実施形態では、アクション選択構成要素341は、したがって、ダイアログ意図、関連付けられたコンテンツオブジェクト、およびダイアログポリシー345からのガイダンスに基づいて、アクションを選択し得る。
【0085】
特定の実施形態では、アクション実行モジュール226の出力は、リモート応答実行モジュール232に送られ得る。詳細には、アクション実行モジュール226のタスク完了構成要素340の出力は、応答実行モジュール226のCUコンポーザ355に送られ得る。代替実施形態では、選択されたアクションは、1つまたは複数のエージェント350が関与することを必要とし得る。その結果、タスク完了モジュール340は、エージェント350に、選択されたアクションを知らせ得る。一方、ダイアログマネージャ335は、ダイアログ状態を更新するようにとの命令を受信し得る。限定としてではなく一例として、更新は、エージェント350の応答を待つことを含み得る。特定の実施形態では、CUコンポーザ355は、タスク完了モジュール340の出力に基づいて、自然言語生成(NLG)モジュール356を使用してユーザのための通信コンテンツを生成し得る。特定の実施形態では、NLGモジュール356は、自然言語出力を生成するために、異なる言語モデルおよび/または言語テンプレートを使用し得る。自然言語出力の生成は、アプリケーション固有であり得る。自然言語出力の生成はまた、各ユーザについて個人化され得る。CUコンポーザ355はまた、UIペイロード生成器357を使用して、生成された通信コンテンツのモダリティを決定し得る。生成された通信コンテンツは、ユーザ要求への応答と見なされ得るので、CUコンポーザ355は、さらに、応答ランカー358を使用して、生成された通信コンテンツをランク付けし得る。限定としてではなく一例として、ランク付けは、応答の優先度を指示し得る。
【0086】
特定の実施形態では、応答実行モジュール232は、CUコンポーザ355の出力に基づいて、異なるタスクを実施し得る。これらのタスクは、データストア212から取り出されたダイアログ状態を書き込むこと(すなわち、記憶すること/更新すること)361と応答を生成すること362とを含み得る。特定の実施形態では、CUコンポーザ355の出力は、VRヘッドセットまたはARスマートグラス中に表示され得る、自然言語ストリング、音声、パラメータを伴うアクション、またはレンダリングされた画像もしくはビデオのうちの1つまたは複数を含み得る。その結果、応答実行モジュール232は、CUコンポーザ355の出力に基づいて、どのタスクを実施すべきかを決定し得る。特定の実施形態では、生成された応答および通信コンテンツは、応答実行モジュール232によってローカルレンダリング出力モジュール242に送られ得る。代替実施形態では、CUコンポーザ355の出力は、通信コンテンツの決定されたモダリティがオーディオである場合、リモートTTSモジュール238にさらに送られ得る。TTSモジュール238によって生成された音声、および応答実行モジュール232によって生成された応答は、次いで、レンダリング出力モジュール242に送られ得る。
【0087】
図4は、補助システム140によってユーザ入力を処理する例示的な図のフローを示す。限定としてではなく一例として、ユーザ入力は、オーディオ信号に基づき得る。特定の実施形態では、クライアントシステム130のmicアレイ402が、オーディオ信号(たとえば、音声)を受信し得る。オーディオ信号は、オーディオフレームのフォーマットにおいてプロセスループ404に伝送され得る。特定の実施形態では、プロセスループ404は、ボイスアクティビティ検出(VAD)406およびウェイクオンボイス(WoV:wake-on-voice)検出408のためにオーディオフレームを送り得る。検出結果は、プロセスループ404に返され得る。WoV検出408が、ユーザが補助システム140を呼び出すことを希望することを指示する場合、オーディオフレームは、VAD406結果とともに、符号化されたオーディオデータを生成するために符号化ユニット410に送られ得る。符号化の後に、符号化されたオーディオデータは、プライバシーおよびセキュリティ目的のために暗号化ユニット412に送られ、その後に、リンクユニット414および解読ユニット416が続き得る。解読の後に、オーディオデータは、micドライバ418に送られ得、micドライバ418は、さらに、オーディオデータをオーディオサービスモジュール420に伝送し得る。代替実施形態では、ユーザ入力は、クライアントシステム130とペアリングされたワイヤレスデバイス(たとえば、Bluetoothデバイス)において受信され得る。対応して、オーディオデータは、ワイヤレスデバイスドライバ422(たとえば、Bluetoothドライバ)からオーディオサービスモジュール420に送られ得る。特定の実施形態では、オーディオサービスモジュール420は、ユーザ入力が、クライアントシステム130上で実行するアプリケーションによって履行され得ると決定し得る。したがって、オーディオサービスモジュール420は、ユーザ入力をリアルタイム通信(RTC)モジュール424に送り得る。RTCモジュール424は、オーディオパケットをビデオまたはオーディオ通信システム(たとえば、VOIPまたはビデオコール)に配信し得る。RTCモジュール424は、ユーザ入力に関係するタスクを実行するために、関連するアプリケーション(アプリ)426をコールし得る。
【0088】
特定の実施形態では、オーディオサービスモジュール420は、ユーザが、補助システム140に応答してもらう必要がある補助を要求していると決定し得る。したがって、オーディオサービスモジュール420は、クライアント補助サービスモジュール426に知らせ得る。特定の実施形態では、クライアント補助サービスモジュール426は、補助オーケストレータ206と通信し得る。補助オーケストレータ206は、ユーザ入力に応答するために、クライアント側プロセスを使用すべきなのか、サーバ側プロセスを使用すべきなのかを決定し得る。特定の実施形態では、補助オーケストレータ206は、クライアント側プロセスを使用することを決定し、クライアント補助サービスモジュール426にそのような判断を知らせ得る。その結果、クライアント補助サービスモジュール426は、ユーザ入力に応答するために、関連するモジュールをコールし得る。
【0089】
特定の実施形態では、クライアント補助サービスモジュール426は、ローカルASRモジュール216を使用して、ユーザ入力を分析し得る。ASRモジュール216は、書記素-音素(G2P)モデルと、発音学習モデルと、個人化された言語モデル(PLM)と、エンドポインティングモデルと、個人化された音響モデルとを備え得る。特定の実施形態では、クライアント補助サービスモジュール426は、さらに、ローカルNLUモジュール218を使用して、ユーザ入力を理解し得る。NLUモジュール218は、固有表現解決(NER)構成要素とコンテキストセッションベースNLU構成要素とを備え得る。特定の実施形態では、クライアント補助サービスモジュール426は、意図ブローカー428を使用して、ユーザの意図を分析し得る。ユーザの意図について正確であるように、意図ブローカー428は、ユーザおよび世界に関連付けられたエンティティを備えるエンティティストア430にアクセスし得る。代替実施形態では、ユーザ入力は、クライアントシステム130上で実行するアプリケーション432を介してサブミットされ得る。この場合、入力マネージャ434が、ユーザ入力を受信し、アプリケーション環境(アプリEnv)モジュール436によってユーザ入力を分析し得る。分析結果は、アプリケーション432に送られ得、アプリケーション432は、さらに、分析結果をASRモジュール216およびNLUモジュール218に送り得る。代替実施形態では、ユーザ入力は、クライアントシステム130上で実行する補助アプリケーション438を介してクライアント補助サービスモジュール426に直接サブミットされ得る。次いで、クライアント補助サービスモジュール426は、上述のようなモジュール、すなわち、ASRモジュール216、NLUモジュール218、および意図ブローカー428に基づいて、同様のプロシージャを実施し得る。
【0090】
特定の実施形態では、補助オーケストレータ206は、サーバ側プロセスを使用することを決定し得る。したがって、補助オーケストレータ206は、補助システム140の異なるモジュールをホストする1つまたは複数のコンピューティングシステムにユーザ入力を送り得る。特定の実施形態では、サーバ補助サービスモジュール301は、補助オーケストレータ206からユーザ入力を受信し得る。サーバ補助サービスモジュール301は、ユーザ入力のオーディオデータを分析するようにリモートASRモジュール208に命令し得る。ASRモジュール208は、書記素-音素(G2P)モデルと、発音学習モデルと、個人化された言語モデル(PLM)と、エンドポインティングモデルと、個人化された音響モデルとを備え得る。特定の実施形態では、サーバ補助サービスモジュール301は、さらに、ユーザ入力を理解するようにリモートNLUモジュール210に命令し得る。特定の実施形態では、サーバ補助サービスモジュール301は、ASRモジュール208およびNLUモジュール210からの出力を処理するためにリモート推理モデル214をコールし得る。特定の実施形態では、推理モデル214は、エンティティ解析およびダイアログ最適化を実施し得る。特定の実施形態では、推理モデル314の出力は、1つまたは複数の関連するタスクを実行するためのエージェント350に送られ得る。
【0091】
特定の実施形態では、エージェント350は、エージェント350が、関連するタスクを正確に実行することができるように、エンティティ解析およびダイアログ最適化からの結果を正確に理解するためにオントロジモジュール440にアクセスし得る。オントロジモジュール440は、複数の事前定義されたドメインと意図とスロットとに関連付けられたオントロジデータを提供し得る。オントロジデータは、異なるスロットおよびドメイン間の構造関係をも含み得る。オントロジデータは、スロットがどのように、グループ化され、より高いレベルがドメインを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をさらに含み得る。オントロジデータは、スロットがどのように、グループ化され、より高いレベルがトピックを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をも含み得る。タスクが実行されると、エージェント350は、タスク完了指示とともに実行結果を推理モジュール214に返し得る。
【0092】
本明細書で開示される実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調節された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【0093】
補助システムにおけるマルチパーソンコーリングのために単一の要求を使用すること
特定の実施形態では、補助システム140は、ユーザが、単一の要求を用いて、補助システム140を介して同時に複数の人々にコールすることを可能にし得る。既存の従来のシステムは、ユーザが、人々を1人ずつグループコールに追加すること、または人々がダイヤル接続するための会議コールをセットアップすることを必要とする。対照的に、補助システム140は、ユーザが、単一の要求において、これらの人々の2つまたはそれ以上のエンティティ名、ニックネーム、またはエンティティ名とニックネームとの組合せを指定することによってコールを始動することを可能にし得る。限定としてではなく一例として、要求は、「JohnとLeeにコールしてください」、「私の兄弟とLeeにコールしてください」、または「私の兄弟と私の義兄弟にコールしてください」であり得る。補助システム140は、次いで、必要とされるさらなるユーザ入力なしにグループコールを始動し得る。さらに、ニックネームは、単一の人または人々のグループを参照し得る。限定としてではなく一例として、要求は、「私の親友たちにコールしてください」であり得る。ユーザは、グループとともに個人を指定することによってコールを要求することさえある。限定としてではなく一例として、要求は、「Dannaと、Mr.Seriousと、私の親友たちにコールしてください」であり得る。複数の人々にコールするための要求を受信すると、補助システム140は、最初に要求のあいまいさを除去して、ユーザがコールすることを希望する、ターゲットにされた人々を識別し得る。補助システム140は、さらに、ユーザにあいまいさ除去に関して確認し、補助システムがユーザの確認を受信した後に、これらのターゲットにされた人々へのグループコールを開始し得る。ユーザは、たとえば、メッセージングアプリケーション、ビデオ会議アプリケーションなど、補助システム140によってサポートされる異なるアプリケーションを使用して、単一の要求を用いて同時に複数の人々にコールし得、コールは、ボイスコールまたはビデオコールのいずれかであり得る。本開示は、特定の様式で特定のシステムを介して特定のマルチパーソンコーリングを可能にすることについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なマルチパーソンコーリングを提供することを企図する。
【0094】
特定の実施形態では、補助システム140は、補助xbotを介して第1のユーザに関連付けられたクライアントシステム130から、同時に複数の第2のユーザにコールするためのユーザ要求を受信し得る。ユーザ要求は、複数の第2のユーザを参照する1つまたは複数の参照を備え得る。特定の実施形態では、補助システム140は、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別し得る。補助システム140は、さらに、補助xbotによって、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動し得る。
【0095】
特定の実施形態では、補助xbotは、チャットボットのタイプであり得る。補助xbotは、ユーザに対する個人的な補助として機能する、ソフトウェアコード、論理、またはルーチンであり得る、プログラマブルサービスチャネルを含み得る。補助xbotは、補助システム140へのユーザのポータルとして働き得る。したがって、補助xbotは、会話型エージェントのタイプと見なされ得る。本開示は、特定の様式で特定のxbotについて説明するが、本開示は、任意の好適な様式で任意の好適なxbotを企図する。本開示は、特定の様式で特定のシステムにおける特定のxbotについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムにおける任意の好適なxbotを企図する。
【0096】
特定の実施形態では、ユーザ要求は、単一の要求のみを含み得る。同時に複数の第2のユーザへのグループコールを始動することは、単一の要求に応答し得る。特定の実施形態では、同時に複数の第2のユーザへのグループコールを始動することは、グループコールを始動するために追加のユーザ入力が必要でないと決定することを含み得る。特定の実施形態では、同時に複数の第2のユーザへのグループコールを始動することは、以下のステップを含み得る。補助システム140は、それぞれ、第1のユーザから複数の第2のユーザへの複数の通信要求を同時に生成し得る。補助システム140は、さらに、ネットワークを介して複数の第2のユーザに関連付けられた複数のクライアントシステム130に、同時に複数の通信要求を送り得る。補助システム140は、ユーザが単に任意のモダリティで単一の要求をサブミットすることができ、補助システム140は、ユーザがコールしようとする人々を効果的に識別し、それに応じてそのようなコールを始動し得るので、ユーザが、追加の入力なしに同時に複数の人々にコールすることを可能にすることによって、補助システム140とのユーザエクスペリエンスを改善するという技術的利点を有し得る。本開示は、特定の様式で特定のシステムを介して特定のコールを始動することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なコールを始動することを企図する。
【0097】
特定の実施形態では、マルチパーソンコーリング機能は、補助システム140のサーバ側プロセスとクライアント側プロセスの両方のために実装され得る。特定の実施形態では、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別することは、以下のステップを含み得る。補助システム140は、最初に、第1のユーザに関連付けられた1つまたは複数の連絡先リストにアクセスし得る。各連絡先リストは、複数のエンティティ識別子に関連付けられた複数の名前を含み得る。特定の実施形態では、補助システム140は、複数の第2のユーザについての複数のエンティティ識別子を決定するために1つまたは複数の参照を複数の名前と比較し得る。限定としてではなく一例として、エンティティ識別子は、電話番号、ソーシャルネットワーキング識別子、メッセージングアプリケーションのための識別子、または任意の好適な識別子のうちの1つまたは複数を含み得る。特定の実施形態では、1つまたは複数の連絡先リストは、クライアントシステム130、コンピューティングシステムのうちの1つまたは複数、または1つまたは複数のサードパーティコンピューティングシステム170のうちの1つまたは複数に記憶され得る。詳細には、いくつかのアプリケーションはクライアント側のみでユーザの連絡先リストを保持し得、いくつかのアプリケーションはサーバ側のみでユーザの連絡先リストを保持し得、他のアプリケーションはクライアント側とサーバ側の両方でユーザの連絡先リストを保持し得る。したがって、ユーザ要求が、どのアプリケーションをマルチパーソンコールのために使用すべきかを指定する場合、補助オーケストレータ206は、アプリケーションがどこで連絡先リストを保持するかに従って、クライアント側またはサーバ側のいずれかに要求をルーティングし得る。特定のアプリケーションがユーザ要求において指示されない場合、補助システム140は、最初に、サーバ側でマルチパーソンコールを実行することを試み、次いで、連絡先情報がサーバ側に存在しない場合、クライアント側にフォールバックし得る。代替的に、補助オーケストレータ206は、ユーザ要求をクライアント側とサーバ側の両方に送り、それら両方にマルチパーソンコールを実行することを試みさせ得る。その後、クライアント側モジュールとサーバ側モジュールの両方からの出力は、ダイアログアービトレータ206に送られ得、ダイアログアービトレータ206は、マルチパーソンコールの実行をどのように完了すべきかを判断し得る。本開示は、特定の様式で特定のコールを実装することについて説明するが、本開示は、任意の好適な様式で任意の好適なコールを実装することを企図する。
【0098】
特定の実施形態では、マルチパーソンコーリングのためのワークフローは、以下のようなものであり得る。特定の実施形態では、ユーザ要求は、ボイス入力に基づき得る。そのようなユーザ要求を受信すると、サーバ側ASRモジュール208またはクライアント側ASRモジュール216は、ボイス入力をとり、ユーザ要求のテキスト転写を生成し得る。テキスト転写は、次いで、サーバ側NLUモジュール210またはクライアント側NLUモジュール218に送られ得る。特定の実施形態では、NLUモジュール210またはNLUモジュール218は、異なるやり方でその転写を処理し得る。特定の実施形態では、補助システム140は、NLUモジュール210またはNLUモジュール218に基づいて、ユーザ要求に関連付けられた1つまたは複数のセパレータを識別し得る。限定としてではなく一例として、セパレータは、異なるエンティティ間にある「and」であり得る。したがって、複数の第2のユーザを識別することは、1つまたは複数のセパレータに基づき得る。特定の実施形態では、NLUモジュール210またはNLUモジュール218は、個人または人々のグループの複数のスロットを受け付けるためにコールするかまたはコールを開始するという意図を可能にし得る。すなわち、[IN:call/start_call(user)]という意図の代わりに、意図は、[IN:call/start_call(user_1,user_2,...,user_n)]、[IN:call/start_call(user_group_1)]、[IN:call/start_call(user_group_1,user_group_2,...,user_group_n)]、さらには[IN:call/start_call(user_1,...,user_n,user_group_1,...,user_group_n)]であり得る。特定の実施形態では、NLUモジュール210またはNLUモジュール218の出力は、次いで、サーバ側推理モジュール214またはクライアント側推理モジュール222において受信され得る。本開示は、特定の様式で特定のシステムにおける特定の意図およびスロットを決定することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムにおける任意の好適な意図およびスロットを決定することを企図する。
【0099】
特定の実施形態では、推理モジュール214または推理モジュール222は、複数のエンティティ名を識別するために、NLUモジュール210またはNLUモジュール218の出力をどのように処理すべきかを決定し得る。特定の実施形態では、ユーザ要求の1つまたは複数の参照は、少なくともあいまいな言及を備え得る。あいまいな言及は、複数の第2のユーザからの特定の第2のユーザに対応し得る。限定としてではなく一例として、あいまいな言及は、「私の親友たち」であり得る。特定の実施形態では、推理モジュール214または推理モジュール222は、特定の第2のユーザを識別するために、そのようなあいまいな言及のあいまいさを除去する必要があり得る。あいまいさ除去は、以下のステップを含み得る。特定の実施形態では、推理モジュール214または推理モジュール222は、個人化された機械学習モデルに基づいて複数の候補ユーザを決定し得る。個人化された機械学習モデルは、ユーザプロファイル情報と、補助システム140との履歴対話と、コンテキスト情報とに基づき得る。各候補ユーザは、信頼性スコアに関連付けられる。あいまいさ除去中に、名と姓とを区別することの特定の問題があり得る。限定としてではなく一例として、ユーザが、「Ben ThomasとDanにコールしてください」と言う場合、ユーザは、2人のユーザ(すなわち、ユーザ1=Ben Thomas、ユーザ2=Dan)にコールすること、または3人のユーザ(すなわち、ユーザ1=Ben、ユーザ2=Thomas、ユーザ3=Dan)にコールすることを意味し得る。特定の実施形態では、推理モジュール214または推理モジュール222は、候補ユーザを生成するために、名および姓のすべての可能な組合せを識別するためにユーザ要求をパースし得る。特定の実施形態では、推理モジュール214または推理モジュール222は、次いで、複数の候補ユーザのそれぞれの信頼性スコアに基づいて複数の候補ユーザをランク付けし得る。推理モジュール214または推理モジュール222は、さらに、複数の候補ユーザのそれぞれのランク付けに基づいて複数の候補ユーザから特定の第2のユーザを識別し得る。前の例を続けると、推理モジュール214または推理モジュール222は、あいまいな言及「私の親友たち」について、各々がそれぞれの信頼性スコアに関連付けられた、「John」、「Lisa」、および「Alex」など、数人の候補ユーザを決定し得る。推理モジュール214または推理モジュール222は、次いで、「Alex」、「Lisa」、および「John」としてそれらの候補ユーザをランク付けし得る。これらの候補ユーザが低い信頼性スコアを有する場合、補助システム140は、さらに、あいまいさ除去のためにユーザに質問し得る。特定の実施形態では、補助システム140は、補助xbotを介してクライアントシステム130に、第1のユーザに特定の第2のユーザの確認についてプロンプトするための命令を送り得る。代替実施形態では、補助システム140は、クライアント側プロセスを使用して、補助xbotを介してクライアントシステム130において、確認についてのプロンプトを直接提示し得る。特定の実施形態では、推理モジュール214または推理モジュール222は、あいまいさ除去の複数の反復を通して、ユーザがコールすることを希望する候補ユーザを見つけ、次いで、これらの候補エンティティから特定のユーザを識別し得る。各候補ユーザが信頼性スコアに関連付けられた、個人化された機械学習モデルに基づいて候補ユーザを決定し、信頼性スコアがしきい値スコアよりも低いとき、ユーザに確認することは、個人化された機械学習モデルが、候補ユーザを決定するためにユーザプロファイル情報と、補助システム140との履歴対話と、コンテキスト情報とを使用し得、ユーザからの確認がさらなる明確化を提供し得るので、ユーザ要求のあいまいな言及のあいまいさを除去することの技術課題に対処するための効果的な解決策であり得る。本開示は、特定の様式で特定のシステムを介して特定のユーザ入力のあいまいさを除去することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なユーザ入力のあいまいさを除去することを企図する。
【0100】
特定の実施形態では、1つまたは複数の参照は、少なくともあいまいな言及を備え得る。あいまいな言及は、複数の第2のユーザの中からの第2のユーザのグループに対応し得る。特定の実施形態では、推理モジュール214または推理モジュール222は、第2のユーザのグループを識別するためにあいまいな言及のあいまいさを除去し得る。あいまいさ除去は、あいまいな言及を、それぞれ、複数の所定のグループに対応するグループ識別子のリストと比較することを含み得る。特定の実施形態では、各所定のグループが複数のユーザを備え得る。限定としてではなく一例として、ユーザ要求は、「私のチーム」というあいまいな言及を有する「私のチームにコールしてください」であり得る。したがって、推理モジュール214または推理モジュール222は、チームメンバーを識別するために、「私のチーム」をグループ識別子のリストと比較することによって「私のチーム」のあいまいさを除去し得る。限定としてではなく別の例として、ユーザは、「グループコールを開始してください」と言うことがある。補助xbotは、「第1の人は誰ですか?」と質問し得る。ユーザは、名前を提供し得、補助システム140は、必要な場合、その名前のあいまいさを除去し得る。補助xbotは、「第2の人は誰ですか?」と質問し続け得る。そのようなプロセスは、ユーザがコールしようとしたすべての人々がグループに追加されたことをユーザが指示するまで続き得る。特定の実施形態では、推理モジュール214または推理モジュール222は、あいまいな言及に対応するグループ識別子が存在しない、すなわち、ユーザがグループを事前定義しなかったと決定し得る。推理モジュール214または推理モジュール222は、次いで、補助xbotを介してクライアントシステム130に、第1のユーザにグループを作成するようにプロンプトするための命令を送り得る。代替実施形態では、補助システム140は、クライアント側プロセスを使用して、補助xbotを介してクライアントシステム130において、グループを作成するためのプロンプトを直接提示し得る。特定の実施形態では、推理モジュール214または推理モジュール222は、補助xbotを介してクライアントシステム130から、グループ中の第2のユーザの各々に関連付けられた情報を備える1つまたは複数のユーザ入力を受信し得る。推理モジュール214または推理モジュール222は、次いで、1つまたは複数のユーザ入力に基づいて第2のユーザのグループを作成し得る。特定の実施形態では、推理モジュール214または推理モジュール222は、さらに、作成されたグループをデータストア212に記憶し得る。そのグループは、グループ識別子に関連付けられ得る。前の例を続けると、推理モジュール214または推理モジュール222は、「私のチーム」のグループが存在しないと決定し得る。したがって、補助システム140は、グループメンバーの名前および連絡先情報を提供することによって、このグループを作成するようにユーザに依頼し得る。本開示は、特定の様式で特定のシステムを介して特定のユーザ入力のあいまいさを除去することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なユーザ入力のあいまいさを除去することを企図する。
【0101】
特定の実施形態では、補助システム140は、確認ダイアログを使用して、第1のユーザに、あいまいさを除去された第2のユーザを含む第2のユーザにコールすることの最終確認をさせ得る。ダイアログからの確認は、明示的または暗黙的であり得る。暗黙的確認の場合、補助システム140は、ワンショットコーリングを使用し得る。限定としてではなく一例として、補助システム140は、「今、Ben ThomasとDanにコールしています」と言うことがある。ワンショットコーリングは、コールをキャンセルするためのいくらかの時間(たとえば、5秒)をユーザに与え得る。特定の実施形態では、ダイアログアービトレータ216は、確認をとり、サーバ側アクション実行モジュール226またはクライアント側アクション実行モジュール230にマルチパーソンコールを完了するように命令し得る。本開示は、特定の様式で特定のシステムを介した特定の確認について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な確認を企図する。
【0102】
特定の実施形態では、マルチパーソンコーリング機能は、異なるエージェントに対応する異なるアプリケーション(たとえば、メッセージングアプリケーション、ビデオ会議アプリケーションなど)上で可能にされ得る。アクション実行モジュール226またはアクション実行モジュール230は、どのアプリケーションを使用すべきかをさらに決定する必要があり得る。限定としてではなく一例として、グループコールは、ボイスベースアプリケーションを使用するボイスコールまたはビデオベースアプリケーションを使用するビデオコールであり得る。特定の実施形態では、ユーザ要求は、第1のユーザがマルチパーソンコールのためにどのアプリケーションを使用しようとしたかを指定し得る。したがって、アクション実行モジュール226またはアクション実行モジュール230は、ユーザ要求に基づいて、グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択し得る。限定としてではなく一例として、ユーザ要求は、「メッセージングアプリ上で私の親友たちにコールしてください」であり得る。したがって、「メッセージングアプリ」に対応するエージェントが選択され得る。第1のユーザがどのアプリケーションを使用すべきかを指定しない場合、アクション実行モジュール226またはアクション実行モジュール230は、第1のユーザに関連付けられたデフォルト設定、第1のユーザに関連付けられたユーザ選好、第1のユーザとコンピューティングシステムとの間の履歴対話、または所定のルールのうちの1つまたは複数に基づいて、グループコールに対応するタスクを実行するために複数のエージェントからエージェントを選択し得る。限定としてではなく一例として、デフォルト設定は、特定のボイスコーリングアプリケーションを介してコールが完了されるべきであることを指示し得、そのようなボイスアプリケーションに対応するエージェントが選択され得る。限定としてではなく別の例として、履歴対話は、ユーザが他者にコールするために常に特定の会議アプリケーションを使用したことを指示し得る。したがって、その会議アプリケーションに対応するエージェントが選択され得る。本開示は、特定の様式で特定のシステムによって特定のアプリケーションを使用することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムによって任意の好適なアプリケーションを使用することを企図する。
【0103】
図5A図5Bは、2人の人々にコールするための例示的な対話を示す。図5Aは、2人の人々にコールするための例示的な対話を示す。ユーザ502が、クライアントシステム130を介して補助システム140に単一の要求504を話し得る。クライアントシステム130は、スマートフォンであり得る。単一の要求504は、「ヘイ、アシスタント、MattとKevinにコールしてください」であり得る。補助システム140は、「Matt」および「Kevin」によって参照されるターゲットを識別し、同時にそれらのターゲットにコールするタスクを実行し得る。補助システム140は、さらに、「今、MattとKevinにコールしています」である応答506を生成し得る。図5Bは、2人の人々にコールするための別の例示的な対話を示す。ユーザ502は、クライアントシステム130を介して補助システム140に単一の要求504を話し得る。単一の要求504は、「ヘイ、アシスタント、MattとKevinにコールしてください」であり得る。補助システム140は、「Matt」および「Kevin」によって参照されるターゲットを識別し、同時にそれらのターゲットにコールするタスクを実行し得る。補助システム140は、さらに、「今、MattとKevinにコールしています」である応答506を生成し得る。応答506は、最終確認を行うための機会をユーザ502に暗黙的に与え得る。限定としてではなく一例として、ユーザ504は、「待ってください!彼らは今おそらくミーティング中です」508と言うことによってコールをキャンセルすることを選定し得る。本開示は、特定の様式で特定のシステムを介した特定の対話について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な対話を企図する。
【0104】
図6A図6Bは、ニックネームを用いて2人の人々にコールするための例示的な対話を示す。図6Aは、ニックネームを用いて2人の人々にコールするための例示的な対話を示す。ユーザ602が、クライアントシステム130を介して補助システム140に単一の要求604を話し得る。クライアントシステム130は、スマートドックであり得る。単一の要求604は「ヘイ、アシスタント、NancyとDollfaceにコールしてください」であり得、ここで、「Dollface」はニックネームである。補助システム140は、そのようなニックネームのあいまいさを除去し、そのニックネームを解析して「Jessica」にし得る。補助システム140は、「Dollface」が「Jessica」を指すという高い信頼性を有し得る。したがって、補助システム140は、同時にNancyおよびJessicaにコールするタスクを実行し得る。補助システム140は、さらに、「今、NancyとJessicaにコールしています」であり得る応答606を生成し得る。図6Bは、ニックネームのあいまいさ除去を用いて2人の人々にコールするための例示的な対話を示す。ユーザ602は、クライアントシステム130を介して補助システム140に単一の要求604を話し得る。単一の要求604は「ヘイ、アシスタント、NancyとDollfaceにコールしてください」であり得、ここで、「Dollface」はニックネームである。補助システム140は、低い信頼性でそのようなニックネームのあいまいさを除去し得る。したがって、補助システム140は、ユーザが「Dollface」によって「Jessica」を意味するかどうかをユーザに確認するための応答608を生成し得る。応答608は、「『Dollface』と言ったのはJessicaのことですか?」であり得る。ユーザ602は、「はい」610で確認し得る。ユーザ602の確認を受信すると、補助システム140は、同時にNancyおよびJessicaにコールするタスクを実行し得る。補助システム140は、さらに、「今、NancyとJessicaにコールしています」であり得る応答612を生成し得る。本開示は、特定の様式で特定のシステムを介した特定の対話について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な対話を企図する。
【0105】
図7A図7Bは、ニックネームを用いて人々のグループにコールするための例示的な対話を示す。図7Aは、ニックネームを用いて人々のグループにコールするための例示的な対話を示す。ユーザ702が、クライアントシステム130を介して補助システム140に単一の要求704を話し得る。クライアントシステム130は、タブレットであり得る。単一の要求704は「ヘイ、アシスタント、私の親友たちにコールしてください」であり得、ここで、「親友たち」は人々のグループについてのニックネームである。補助システム140は、そのようなニックネームのあいまいさを除去し、そのニックネームを解析して人々のグループにし得る。補助システム140は、「親友たち」がどのグループを指すか、高い信頼性を有し得る。したがって、補助システム140は、同時にユーザ702の親友たちにコールするタスクを実行し得る。補助システム140は、さらに、「今、あなたの親友たちにコールしています」であり得る応答706を生成し得る。図7Bは、ニックネームを用いて人々のグループにコールするための別の例示的な対話を示す。ユーザ702は、クライアントシステム130を介して補助システム140に単一の要求704を話し得る。単一の要求704は「ヘイ、アシスタント、私の親友たちにコールしてください」であり得、ここで、「親友たち」は人々のグループについてのニックネームである。補助システム140は、そのようなニックネームのあいまいさを除去し、そのニックネームを解析して人々のグループにし得る。補助システム140は、「親友たち」がどのグループを指すか、高い信頼性を有し得る。したがって、補助システム140は、同時にユーザ702の親友たちにコールするタスクを実行し得る。補助システム140は、さらに、「親友たち」が誰を指すかの明確な識別を伴う応答708を生成し得る。応答708は「今、Dannyと、Annaと、Andrewにコールしています」であり得、ここで、Danny、Anna、およびAndrewはユーザ702の親友たちである。図7Cは、グループを作成することによって人々のグループにコールするための例示的な対話を示す。ユーザ702は、クライアントシステム130を介して補助システム140に単一の要求704を話し得る。単一の要求704は「ヘイ、アシスタント、私の親友たちにコールしてください」であり得、ここで、「親友たち」は人々のグループについてのニックネームである。補助システム140は、そのようなグループが存在しないと決定し得る。したがって、補助システム140は、ユーザ702の親友たちについてのグループを作成するようにユーザ702に依頼するための応答710を生成し得る。応答710は、「あなたの親友たちが誰であるかわかりません。親友たちの名前を教えてもらえますか?」であり得る。ユーザ702は、次いで、「Dannyと、Annaと、Andrewです」712と返答し得る。補助システム140は、Danny、AnnaおよびAndrewを含む親友たちのグループを作成し得る。補助システム140は、次いで、同時にこれらの3人の人々にコールするタスクを実行し得る。さらに、補助システム140は、それらの人々の情報が保存され、補助システム140がそれらの人々にコールしようとしていることをユーザ702に通知する応答714を生成し得る。応答714は、「ありがとうございます。それらの人々の情報をあなたの親友たちとして保存しました。今、それらの人々にコールしています」であり得る。本開示は、特定の様式で特定のシステムを介した特定の対話について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な対話を企図する。
【0106】
図8A図8Bは、名および姓のあいまいさ除去を用いて複数の人々にコールするための例示的な対話を示す。図8Aは、名および姓のあいまいさ除去を用いて複数の人々にコールするための例示的な対話を示す。ユーザ802が、クライアントシステム130を介して補助システム140に単一の要求804を話し得る。クライアントシステム130は、AR/VRグラスのペアであり得る。単一の要求804は、「ヘイ、アシスタント、Ben ThomasとJackにコールしてください」であり得る。補助システム140は、「Ben Thomas」が、名として「Ben」および姓として「Thomas」をもつ1人の人であると決定し得る。補助システム140は、そのような決定に対して高い信頼性を有し得る。したがって、補助システム140は、同時にBenおよびJackにコールするタスクを実行し得る。補助システム140は、さらに、「今、BenとJackにコールしています」であり得る応答806を生成し得、ここで、補助システム140は、名に言及するにすぎない。図8Bは、名および姓のあいまいさ除去を用いて複数の人々にコールするための別の例示的な対話を示す。ユーザ802は、クライアントシステム130を介して補助システム140に単一の要求804を話し得る。単一の要求804は、「ヘイ、アシスタント、Ben ThomasとJackにコールしてください」であり得る。補助システム140は、「Ben Thomas」が、名として「Ben」および姓として「Thomas」をもつ1人の人であると決定し得る。補助システム140は、そのような決定に対して高い信頼性を有し得る。したがって、補助システム140は、同時にBenおよびJackにコールするタスクを実行し得る。補助システム140は、さらに、「今、Ben ThomasとJack Hernandezにコールしています」であり得る応答808を生成し得、ここで、補助システム140は、2人の人々の両方について姓名に言及する。結果として、補助システム140が誰にコールしているかがユーザ802にとってより明確であり得る。図8Cは、名および姓のあいまいさ除去を用いて複数の人々にコールするための別の例示的な対話を示す。ユーザ802は、クライアントシステム130を介して補助システム140に単一の要求804を話し得る。単一の要求804は、「ヘイ、アシスタント、Ben ThomasとJackにコールしてください」であり得る。補助システム140は、「Ben Thomas」が1人の人を指すのか2人の人々を指すのかを決定する低い信頼性を有し得る。したがって、補助システム140は、確認のためにユーザ802に質問し得る。確認質問810は、「Ben LuとThomas Smithのことですか、あるいはBen Thomasだけですか?」であり得るユーザ802は、「Ben Thomasだけです」812で確認し得る。ユーザ802の確認を受信すると、補助システム140は、同時にBen ThomasおよびJackにコールするタスクを実行し得る。補助システム140は、さらに、「オーケー。今Ben ThomasとJack Hernandezにコールしています」であり得る応答814を生成し得る。本開示は、特定の様式で特定のシステムを介した特定の対話について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な対話を企図する。
【0107】
図9は、1人についてのニックネームとグループについてのニックネームとの混合を用いて複数の人々にコールするための例示的な対話を示す。ユーザ902が、クライアントシステム130を介して補助システム140に単一の要求904を話し得る。クライアントシステム130は、スマートスピーカーであり得る。単一の要求904は、「ヘイ、アシスタント、Aliceと、Dollfaceと、私の親友たちにコールしてください」であり得る。補助システム140は、ニックネーム「Dollface」のあいまいさを除去し、「Dollface」を解析して「Jessica」にしながら、ニックネーム「親友たち」のあいまいさを除去し、「親友たち」を解析して人々のグループにし得る。補助システム140は、あいまいさ除去に関する高い信頼性を有し得る。したがって、補助システム140は、同時にAlice、Jessica、およびユーザ902の親友たちにコールするタスクを実行し得る。補助システム140は、さらに、「今、Aliceと、Jessicaと、あなたの親友たちにコールしています」であり得る応答906を生成し得る。本開示は、特定の様式で特定のシステムを介した特定の対話について説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介した任意の好適な対話を企図する。
【0108】
図10は、マルチパーソンコールを可能にするための例示的な方法1000を示す。方法は、ステップ1010において始まり得、補助システム140が、補助xbotを介して第1のユーザに関連付けられたクライアントシステム130から、同時に複数の第2のユーザにコールするための、ボイス入力に基づくユーザ要求を受信し得、ユーザ要求は、複数の第2のユーザを参照する1つまたは複数の参照を備え、1つまたは複数の参照は、少なくともあいまいな言及を備え、ユーザ要求は単一の要求のみを備える。ステップ1020において、補助システム140は、特定の第2のユーザを識別するために、特定の第2のユーザに対応するあいまいな言及のあいまいさを除去し得、あいまいさ除去は、個人化された機械学習モデルに基づいて複数の候補ユーザを決定することであって、各候補ユーザが信頼性スコアに関連付けられる、複数の候補ユーザを決定することと、複数の候補ユーザのそれぞれの信頼性スコアに基づいて複数の候補ユーザをランク付けすることと、複数の候補ユーザのそれぞれのランク付けに基づいて複数の候補ユーザから特定の第2のユーザを識別することとを含む。ステップ1030において、補助システム140は、補助xbotを介してクライアントシステム130に、第1のユーザに特定の第2のユーザの確認についてプロンプトするための命令を送り得る。ステップ1020と1030とに並行して、ステップ1040において、補助システム140は、第2のユーザのグループを識別するために、第2のユーザのグループに対応するあいまいな言及のあいまいさを除去し得、あいまいさ除去は、それぞれ、あいまいな言及を複数の所定のグループに対応するグループ識別子のリストと比較することを含み、各所定のグループが複数のユーザを備える。ステップ1050において、補助システム140は、あいまいな言及に対応するグループ識別子が存在しないと決定することと、補助xbotを介してクライアントシステム130に、第1のユーザにグループを作成するようにプロンプトするための命令を送ることと、補助xbotを介してクライアントシステム130から、グループ中の第2のユーザの各々に関連付けられた情報を備える1つまたは複数のユーザ入力を受信することと、1つまたは複数のユーザ入力に基づいて第2のユーザのグループを作成することと、作成されたグループをデータストア212に記憶することであって、グループがグループ識別子に関連付けられる、作成されたグループをデータストア212に記憶することとを行い得る。ステップ1060において、補助システム140は、自然言語理解モジュールに基づいて、ユーザ要求に関連付けられた1つまたは複数のセパレータを識別し得る。ステップ1070において、補助システム140は、1つまたは複数のセパレータに基づいて、それぞれ、複数の第2のユーザに関連付けられた複数のエンティティ識別子への1つまたは複数の参照を解析することによって複数の第2のユーザを識別し得、識別は、第1のユーザに関連付けられた1つまたは複数の連絡先リストにアクセスすることであって、各連絡先リストが、複数のエンティティ識別子に関連付けられた複数の名前を備える、1つまたは複数の連絡先リストにアクセスすることと、1つまたは複数の参照を複数の名前と比較することとを含み得る。ステップ1080において、補助システム140は、補助xbotによって、単一の要求に応答して、複数のエンティティ識別子に基づいて、同時に複数の第2のユーザへのグループコールを始動し得、始動は、グループコールを始動するために追加のユーザ入力が必要でないと決定することと、それぞれ、第1のユーザから複数の第2のユーザへの複数の通信要求を同時に生成することと、ネットワークを介して複数の第2のユーザに関連付けられた複数のクライアントシステム130に、同時に複数の通信要求を送ることとを含み、グループコールは、ボイスコールまたはビデオコールである。特定の実施形態は、適切な場合、図10の方法の1つまたは複数のステップを繰り返し得る。本開示は、図10の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図10の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図10の方法の特定のステップを含む、マルチパーソンコールを可能にするための例示的な方法を説明し、示すが、本開示は、適切な場合、図10の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、マルチパーソンコールを可能にするための任意の好適な方法を企図する。さらに、本開示は、図10の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図10の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0109】
ソーシャルグラフ
図11は、例示的なソーシャルグラフ1100を示す。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のソーシャルグラフ1100を1つまたは複数のデータストアに記憶し得る。特定の実施形態では、ソーシャルグラフ1100は、複数のユーザノード1102または複数の概念ノード1104を含み得る、複数のノードと、それらのノードをつなげる複数のエッジ1106とを含み得る。各ノードは、一意の数字またはユーザ名など、一意の識別子(ID)をその各々が有し得る、一意のエンティティ(すなわち、ユーザまたは概念)に関連付けられ得る。説明のために、2次元ビジュアルマップ表現において、図11に示されている例示的なソーシャルグラフ1100が示される。特定の実施形態では、ソーシャルネットワーキングシステム160、クライアントシステム130、補助システム140、またはサードパーティシステム170は、好適な適用例のためにソーシャルグラフ1100および関係するソーシャルグラフ情報にアクセスし得る。ソーシャルグラフ1100のノードおよびエッジは、たとえば(ソーシャルグラフデータベースなどの)データストアに、データオブジェクトとして記憶され得る。そのようなデータストアは、ソーシャルグラフ1100のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
【0110】
特定の実施形態では、ユーザノード1102は、ソーシャルネットワーキングシステム160または補助システム140のユーザに対応し得る。限定としてではなく一例として、ユーザは、ソーシャルネットワーキングシステム160または補助システム140と、あるいはソーシャルネットワーキングシステム160または補助システム140上で、対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、ビジネス、またはサードパーティアプリケーション)、または(たとえば、個人またはエンティティの)グループであり得る。特定の実施形態では、ソーシャルネットワーキングシステム160にユーザがアカウントを登録すると、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード1102を作成し、1つまたは複数のデータストアにユーザノード1102を記憶し得る。本明細書で説明されるユーザおよびユーザノード1102は、適切な場合、登録済みユーザおよび登録済みユーザに関連付けられたユーザノード1102を指し得る。さらに、または代替として、本明細書で説明されるユーザおよびユーザノード1102は、適切な場合、ソーシャルネットワーキングシステム160に登録されていないユーザを指し得る。特定の実施形態では、ユーザノード1102は、ユーザによって提供された情報、またはソーシャルネットワーキングシステム160を含む様々なシステムによって集められた情報に関連付けられ得る。限定としてではなく一例として、ユーザは、自分の名前、プロファイルピクチャ、連絡先情報、生年月日、性、配偶者の有無、家族状況、勤務先、学歴、選好、興味、または他の人口統計学的情報を提供し得る。特定の実施形態では、ユーザノード1102は、ユーザに関連付けられた情報に対応する1つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、ユーザノード1102は、1つまたは複数のウェブインターフェースに対応し得る。
【0111】
特定の実施形態では、概念ノード1104は、概念に対応し得る。限定としてではなく一例として、概念は、(たとえば、映画館、レストラン、ランドマーク、または都市などの)場所、(たとえば、ソーシャルネットワーキングシステム160に関連付けられたウェブサイト、またはウェブアプリケーションサーバに関連付けられたサードパーティウェブサイトなどの)ウェブサイト、(たとえば、人、ビジネス、グループ、スポーツチーム、または有名人などの)エンティティ、ソーシャルネットワーキングシステム160内に、またはウェブアプリケーションサーバなどの外部サーバ上に置かれ得る(たとえば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなどの)リソース、(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または書かれた作品などの)物的財産または知的財産、ゲーム、アクティビティ、アイデアまたは理論、別の好適な概念、あるいは2つまたはそれ以上のそのような概念に対応し得る。概念ノード1104は、ユーザによって提供された概念の情報、またはソーシャルネットワーキングシステム160と補助システム140とを含む様々なシステムによって集められた情報に関連付けられ得る。限定としてではなく一例として、概念の情報は、名前またはタイトル、1つまたは複数の画像(たとえば、本のカバーページの画像)、ロケーション(たとえば、住所または地理的ロケーション)、(URLに関連付けられ得る)ウェブサイト、連絡先情報(たとえば、電話番号または電子メールアドレス)、他の好適な概念情報、あるいはそのような情報の任意の好適な組合せを含み得る。特定の実施形態では、概念ノード1104は、概念ノード1104に関連付けられた情報に対応する1つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、概念ノード1104は、1つまたは複数のウェブインターフェースに対応し得る。
【0112】
特定の実施形態では、ソーシャルグラフ1100内のノードは、(「プロファイルインターフェース」と呼ばれることがある)ウェブインターフェースを表すか、またはウェブインターフェースによって表され得る。プロファイルインターフェースは、ソーシャルネットワーキングシステム160または補助システム140によってホストされるか、あるいはソーシャルネットワーキングシステム160または補助システム140にとってアクセス可能であり得る。プロファイルインターフェースはまた、サードパーティシステム170に関連付けられたサードパーティウェブサイト上でホストされ得る。限定としてではなく一例として、特定の外部ウェブインターフェースに対応するプロファイルインターフェースは、特定の外部ウェブインターフェースであり得、プロファイルインターフェースは、特定の概念ノード1104に対応し得る。プロファイルインターフェースは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であり得る。限定としてではなく一例として、ユーザノード1102は、対応するユーザが、コンテンツを追加するか、発表するか、または場合によっては自分自身を明示し得る、対応するユーザプロファイルインターフェースを有し得る。限定としてではなく別の例として、概念ノード1104は、特に、概念ノード1104に対応する概念に関連して、1人または複数のユーザがコンテンツを追加するか、発表するか、または自分自身を明示し得る、対応する概念プロファイルインターフェースを有し得る。
【0113】
特定の実施形態では、概念ノード1104は、サードパーティシステム170によってホストされるサードパーティウェブインターフェースまたはリソースを表し得る。サードパーティウェブインターフェースまたはリソースは、他の要素の中でも、コンテンツ、選択可能なまたは他のアイコン、あるいは、アクションまたはアクティビティを表す他の対話可能オブジェクトを含み得る。限定としてではなく一例として、サードパーティウェブインターフェースは、「いいね!」、「チェックイン」、「食べる」、「推奨」、あるいは別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含み得る。サードパーティウェブインターフェースを閲覧しているユーザは、アイコンのうちの1つ(たとえば「チェックイン」)を選択することによってアクションを実施し、クライアントシステム130が、ユーザのアクションを指示するメッセージをソーシャルネットワーキングシステム160に送ることを引き起こし得る。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード1102と、サードパーティウェブインターフェースまたはリソースに対応する概念ノード1104との間のエッジ(たとえば、チェックインタイプのエッジ)を作成し、1つまたは複数のデータストアにエッジ1106を記憶し得る。
【0114】
特定の実施形態では、ソーシャルグラフ1100内のノードのペアが、1つまたは複数のエッジ1106によって互いにつなげられ得る。ノードのペアをつなげるエッジ1106は、ノードのペア間の関係を表し得る。特定の実施形態では、エッジ1106は、ノードのペア間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含むか、または表し得る。限定としてではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを指示し得る。この指示に応答して、ソーシャルネットワーキングシステム160は、「友達要求」を第2のユーザに送り得る。第2のユーザが「友達要求」を承認した場合、ソーシャルネットワーキングシステム160は、ソーシャルグラフ1100内で、第1のユーザのユーザノード1102を第2のユーザのユーザノード1102につなげるエッジ1106を作成し、データストア164のうちの1つまたは複数にソーシャルグラフ情報としてエッジ1106を記憶し得る。図11の例では、ソーシャルグラフ1100は、ユーザ「A」のユーザノード1102とユーザ「B」のユーザノード1102との間の友達関係を指示するエッジ1106と、ユーザ「C」のユーザノード1102とユーザ「B」のユーザノード1102との間の友達関係を指示するエッジとを含む。本開示は、特定の属性をもつ特定のエッジ1106が、特定のユーザノード1102をつなげることを説明するかまたは示すが、本開示は、任意の好適な属性をもつ任意の好適なエッジ1106が、ユーザノード1102をつなげることを企図する。限定としてではなく一例として、エッジ1106は、友人関係、家族関係、ビジネスまたは雇用関係、(たとえば、いいね!を表明することなどを含む)ファン関係、フォロワー関係、(たとえば、アクセスすること、閲覧すること、チェックインすること、共有することなどを含む)ビジター関係、加入者関係、上下関係、互恵関係、非互恵関係、別の好適なタイプの関係、あるいは2つまたはそれ以上のそのような関係を表し得る。その上、本開示は一般に、ノードを、つなげられているものとして説明しているが、本開示は、ユーザまたは概念も、つなげられているものとして説明する。本明細書では、つなげられているユーザまたは概念への言及は、適切な場合、1つまたは複数のエッジ1106によってソーシャルグラフ1100内でつなげられているそれらのユーザまたは概念に対応するノードを指し得る。それぞれ2つのノードによって表される2つのオブジェクト間の分離の程度は、ソーシャルグラフ1100内の2つのノードをつなげる最短経路におけるエッジのカウントである。限定としてではなく一例として、ソーシャルグラフ1100内では、ユーザ「C」のユーザノード1102は、たとえば、ユーザ「B」のユーザノード1102を直接通過する第1の経路と、会社「A1me」の概念ノード1104およびユーザ「D」のユーザノード1102を通過する第2の経路と、学校「Stateford」、ユーザ「G」、会社「A1me」、およびユーザ「D」を表すユーザノード1102および概念ノード1104を通過する第3の経路とを含む、複数の経路を介してユーザ「A」のユーザノード1102につなげられる。ユーザ「C」およびユーザ「A」は、それらの対応するノードをつなげる最短経路(すなわち、第1の経路)が2つのエッジ1106を含むので、2の分離の程度を有する。
【0115】
特定の実施形態では、ユーザノード1102と概念ノード1104との間のエッジ1106は、概念ノード1104に関連付けられた概念に向かってユーザノード1102に関連付けられたユーザによって実施された特定のアクションまたはアクティビティを表し得る。限定としてではなく一例として、図11に示されているように、ユーザは、概念に対して「いいね!」を表明する、「通っていた」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「読んだ」ことがあり、これらの各々が、エッジのタイプまたはサブタイプに対応し得る。概念ノード1104に対応する概念プロファイルインターフェースは、たとえば、(たとえば、クリック可能な「チェックイン」アイコンなどの)選択可能な「チェックイン」アイコン、または選択可能な「お気に入りに追加」アイコンを含み得る。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステム160は、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジ、または「チェックイン」エッジを作成し得る。限定としてではなく別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(サードパーティオンラインミュージックアプリケーション)を使用して、特定の歌(「Imagine」)を聴き得る。この場合、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード1102と、歌およびアプリケーションに対応する概念ノード1104との間に(図11に示されているような)「聴いた」エッジ1106および「使用した」エッジを作成し、ユーザが歌を聴き、アプリケーションを使用したことを指示し得る。その上、ソーシャルネットワーキングシステム160は、歌に対応する概念ノード1104と、アプリケーションに対応する概念ノード1104との間に(図11に示されているような)「プレイした」エッジ1106を作成し、特定の歌が特定のアプリケーションによってプレイされたことを指示し得る。この場合、「プレイした」エッジ1106は、外部オーディオファイル(歌「Imagine」)に対して外部アプリケーション(たとえば、サードパーティオンラインミュージックアプリケーション)によって実施されたアクションに対応する。本開示は、特定の属性をもつ特定のエッジ1106が、ユーザノード1102と概念ノード1104とをつなげることを説明するが、本開示は、任意の好適な属性をもつ任意の好適なエッジ1106が、ユーザノード1102と概念ノード1104とをつなげることを企図する。その上、本開示は、ユーザノード1102と概念ノード1104との間のエッジが、単一の関係を表すことを説明するが、本開示は、ユーザノード1102と概念ノード1104との間のエッジが、1つまたは複数の関係を表すことを企図する。限定としてではなく一例として、エッジ1106は、ユーザが、特定の概念に対して、いいね!を表明することと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ1106は、(図11において、ユーザ「E」のためのユーザノード1102と「オンラインミュージックアプリケーション」のための概念ノード1104との間に示されているような)ユーザノード1102と概念ノード1104との間の関係(または単一の関係の倍数)の各タイプを表し得る。
【0116】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルグラフ1100内にユーザノード1102と概念ノード1104との間にエッジ1106を作成し得る。限定としてではなく一例として、(たとえば、ウェブブラウザ、またはユーザのクライアントシステム130によってホストされる専用アプリケーションを使用することなどによって)概念プロファイルインターフェースを閲覧するユーザは、「いいね!」アイコンをクリックまたは選択することによって、概念ノード1104によって表される概念に対して自分が、いいね!を表明したことを指示し得、これにより、ユーザのクライアントシステム130に、概念プロファイルインターフェースに関連付けられた概念に対してユーザが、いいね!を表明したことを指示するメッセージをソーシャルネットワーキングシステム160に送らせ得る。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザと概念ノード1104との間の「いいね!」エッジ1106によって示されているように、ユーザに関連付けられたユーザノード1102と、概念ノード1104との間にエッジ1106を作成し得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストアにエッジ1106を記憶し得る。特定の実施形態では、エッジ1106は、特定のユーザアクションに応答して、ソーシャルネットワーキングシステム160によって自動的に形成され得る。限定としてではなく一例として、第1のユーザがピクチャをアップロードするか、本を読むか、映画を観るか、または歌を聴く場合、エッジ1106は、第1のユーザに対応するユーザノード1102とそれらの概念に対応する概念ノード1104との間に形成され得る。本開示は、特定の様式で特定のエッジ1106を形成することについて説明するが、本開示は、任意の好適な様式で任意の好適なエッジ1106を形成することを企図する。
【0117】
ベクトル空間および埋込み
図12は、ベクトル空間1200の例示的なビューを示す。特定の実施形態では、オブジェクトまたはnグラムは、d次元ベクトル空間において表され得、ここで、dは、任意の好適な数の次元を示す。ベクトル空間1200は3次元空間として示されているが、ベクトル空間1200は任意の好適な次元のものであり得るので、これは説明のためのものにすぎない。特定の実施形態では、nグラムは、用語埋込みと呼ばれるベクトルとして、ベクトル空間1200において表され得る。各ベクトルは、ベクトル空間1200における特定の点(すなわち、ベクトルの終点)に対応する座標を含み得る。限定としてではなく一例として、ベクトル1210、1220、および1230は、図12に示されているように、ベクトル空間1200における点として表され得る。nグラムは、それぞれのベクトル表現にマッピングされ得る。限定としてではなく一例として、nグラムtおよびtが、辞書によって定義された関数
を適用することによって、それぞれ、ベクトル空間1200におけるベクトル
および
にマッピングされ得、したがって、
および
である。限定としてではなく別の例として、テキストをベクトル表現にマッピングするようにトレーニングされた辞書が利用され得るか、または、そのような辞書は、それ自体、トレーニングを介して生成され得る。限定としてではなく別の例として、nグラムを、ベクトル空間1200におけるベクトル表現にマッピングするために、ワード埋込みモデルが使用され得る。特定の実施形態では、nグラムは、機械学習モデル(たとえば、ニューラルネットワーク)を使用することによって、ベクトル空間1200におけるベクトル表現にマッピングされ得る。機械学習モデルは、トレーニングデータのシーケンス(たとえば、各々がnグラムを含むオブジェクトのコーパス)を使用してトレーニングされていることがある。
【0118】
特定の実施形態では、オブジェクトは、特徴ベクトルまたはオブジェクト埋込みと呼ばれるベクトルとして、ベクトル空間1200において表され得る。限定としてではなく一例として、オブジェクトeおよびeが、関数
を適用することによって、それぞれ、ベクトル空間1200におけるベクトル
および
にマッピングされ得、したがって、
および
である。特定の実施形態では、オブジェクトは、オブジェクトの1つまたは複数の特性、属性、または特徴、他のオブジェクトとのオブジェクトの関係、あるいはオブジェクトに関連付けられた任意の他の好適な情報に基づいて、ベクトルにマッピングされ得る。限定としてではなく一例として、関数
が、特徴抽出によってオブジェクトをベクトルにマッピングし得、特徴抽出は、測定されたデータの初期セットから開始し、導出される値(たとえば、特徴)を組み立て得る。限定としてではなく一例として、ビデオまたは画像を含むオブジェクトが、オブジェクトの様々な所望の部分または形状を検出または分離するためのアルゴリズムを使用することによって、ベクトルにマッピングされ得る。ベクトルを計算するために使用される特徴が、エッジ検出、コーナー検出、ブロブ検出、リッジ検出、スケール不変特徴変換、エッジ方向、変化する強度、自己相関、動き検出、オプティカルフロー、しきい値処理、ブロブ抽出、テンプレートマッチング、ハフ変換(たとえば、線、円、楕円、任意の形状)から取得された情報、または任意の他の好適な情報に基づき得る。限定としてではなく別の例として、オーディオデータを含むオブジェクトが、スペクトル傾斜、調性係数、オーディオスペクトル重心、オーディオスペクトルエンベロープ、メル周波数ケプストラムなどの特徴、または任意の他の好適な情報に基づいて、ベクトルにマッピングされ得る。特定の実施形態では、オブジェクトが、効率的に処理されるには大きすぎるか、または冗長データを含むかのいずれかであるデータを有するとき、関数
が、変換された低減された特徴のセット(たとえば、特徴選択)を使用して、オブジェクトをベクトルにマッピングし得る。特定の実施形態では、関数
が、オブジェクトeに関連付けられた1つまたは複数のnグラムに基づいて、オブジェクトeをベクトル
にマッピングし得る。本開示は、特定の様式でベクトル空間においてnグラムまたはオブジェクトを表すことについて説明するが、本開示は、任意の好適な様式でベクトル空間においてnグラムまたはオブジェクトを表すことを企図する。
【0119】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ベクトル空間1200におけるベクトルの類似度メトリックを計算し得る。類似度メトリックは、コサイン類似度、ミンコフスキー距離、マハラノビス距離、ジャカード類似度係数、または任意の好適な類似度メトリックであり得る。限定としてではなく一例として、

との類似度メトリックは、コサイン類似度
であり得る。限定としてではなく別の例として、

との類似度メトリックは、ユークリッド距離
であり得る。2つのベクトルの類似度メトリックは、ベクトル空間1200における2つのベクトル間の距離によって測定されるように、それぞれ、2つのベクトルに対応する2つのオブジェクトまたはnグラムが、互いにどのくらい類似しているかを表し得る。限定としてではなく一例として、それぞれのベクトル間の距離に基づいて、ベクトル1210およびベクトル1220は、ベクトル1210およびベクトル1230に対応するオブジェクトよりも互いに類似しているオブジェクトに対応し得る。本開示は、特定の様式でベクトル間の類似度メトリックを計算することについて説明するが、本開示は、任意の好適な様式でベクトル間の類似度メトリックを計算することを企図する。
【0120】
ベクトル空間、埋込み、特徴ベクトル、および類似度メトリックに関するより多くの情報が、その各々が参照により組み込まれる、2015年11月23日に出願された米国特許出願第14/949436号、2016年10月5日に出願された米国特許出願第15/286315号、および2016年11月30日に出願された米国特許出願第15/365789号において見つけられ得る。
【0121】
人工ニューラルネットワーク
図13は、例示的な人工ニューラルネットワーク(「ANN」)1300を示す。特定の実施形態では、ANNは、1つまたは複数のノードを含む算出モデルを指し得る。例示的なANN1300は、入力層1310と、隠れ層1320、1330、1340と、出力層1350とを含み得る。ANN1300の各層は、ノード1305またはノード1315など、1つまたは複数のノードを含み得る。特定の実施形態では、ANNの各ノードは、ANNの別のノードに接続され得る。限定としてではなく一例として、入力層1310の各ノードは、隠れ層1320のより多くのノードのうちの1つに接続され得る。特定の実施形態では、1つまたは複数のノードは、バイアスノード(たとえば、前の層中のいかなるノードにも接続されず、前の層中のいかなるノードからも入力を受信しない、層中のノード)であり得る。特定の実施形態では、各層中の各ノードは、前のまたは後続の層の1つまたは複数のノードに接続され得る。図13は、特定の数の層、特定の数のノード、およびノード間の特定の接続をもつ特定のANNを示すが、本開示は、任意の好適な数の層、任意の好適な数のノード、およびノード間の任意の好適な接続をもつ任意の好適なANNを企図する。限定としてではなく一例として、図13は、入力層1310の各ノードと隠れ層1320の各ノードとの間の接続を示すが、入力層1310の1つまたは複数のノードが、隠れ層1320の1つまたは複数のノードに接続されないことがある。
【0122】
特定の実施形態では、ANNは、フィードフォワードANN(たとえば、入力層から始まり、連続する層に進む一方向において、ノード間の通信が流れる、サイクルまたはループのないANN)であり得る。限定としてではなく一例として、隠れ層1320の各ノードへの入力は、入力層1310の1つまたは複数のノードの出力を含み得る。限定としてではなく別の例として、出力層1350の各ノードへの入力は、隠れ層1340の1つまたは複数のノードの出力を含み得る。特定の実施形態では、ANNは、深層ニューラルネットワーク(たとえば、少なくとも2つの隠れ層を含むニューラルネットワーク)であり得る。特定の実施形態では、ANNは、深層残差ネットワークであり得る。深層残差ネットワークは、残差ブロックに編成された隠れ層を含むフィードフォワードANNであり得る。第1の残差ブロックの後の各残差ブロックへの入力は、前の残差ブロックの出力と前の残差ブロックの入力との関数であり得る。限定としてではなく一例として、残差ブロックNへの入力は、F(x)+xであり得、ここで、F(x)は、残差ブロックN-1の出力であり得、xは、残差ブロックN-1への入力であり得る。本開示は、特定のANNについて説明するが、本開示は、任意の好適なANNを企図する。
【0123】
特定の実施形態では、活性化関数が、ANNの各ノードに対応し得る。ノードの活性化関数は、所与の入力に対するノードの出力を定義し得る。特定の実施形態では、ノードへの入力は、入力のセットを含み得る。限定としてではなく一例として、活性化関数は、恒等関数、バイナリステップ関数、ロジスティック関数、または任意の他の好適な関数であり得る。限定としてではなく別の例として、ノードkについての活性化関数は、シグモイド関数
双曲線正接関数
整流器(rectifier)F(s)=max(0,s)、または任意の他の好適な関数F(s)であり得、ここで、sは、ノードkへの有効な入力であり得る。特定の実施形態では、ノードに対応する活性化関数の入力は、重み付けされ得る。各ノードは、重み付けされた入力に基づいて、対応する活性化関数を使用して、出力を生成し得る。特定の実施形態では、ノード間の各接続は、重みに関連付けられ得る。限定としてではなく一例として、ノード1305とノード1315との間の接続1325は、0.4の重み付け係数を有し得、これは、0.4にノード1305の出力を乗算したものが、ノード1315への入力として使用されることを指示し得る。限定としてではなく別の例として、ノードkの出力yは、y=F(s)であり得、ここで、Fは、ノードkに対応する活性化関数であり得、s=Σ(wjk)は、ノードkへの有効な入力であり得、xは、ノードkに接続されたノードjの出力であり得、wjkは、ノードjとノードkとの間の重み付け係数であり得る。特定の実施形態では、入力層のノードへの入力は、オブジェクトを表すベクトルに基づき得る。本開示は、ノードへの特定の入力およびノードの特定の出力について説明するが、本開示は、ノードへの任意の好適な入力およびノードの任意の好適な出力を企図する。その上、本開示は、ノード間の特定の接続および重みについて説明し得るが、本開示は、ノード間の任意の好適な接続および重みを企図する。
【0124】
特定の実施形態では、ANNは、トレーニングデータを使用してトレーニングされ得る。限定としてではなく一例として、トレーニングデータは、ANN1300への入力と予想される出力とを含み得る。限定としてではなく別の例として、トレーニングデータは、各々がトレーニングオブジェクトを表すベクトルと、各トレーニングオブジェクトについての予想されるラベルとを含み得る。特定の実施形態では、ANNをトレーニングすることは、目的関数を最適化することによって、ANNのノード間の接続に関連付けられた重みを修正することを含み得る。限定としてではなく一例として、(たとえば、2乗和誤差を最小化するコスト関数を使用して)トレーニングオブジェクトを表す各ベクトル間の距離として測定された2乗和誤差をバックプロパゲートするためのトレーニング方法(たとえば、共役勾配法、勾配降下法、確率的勾配降下法)が使用され得る。特定の実施形態では、ANNは、ドロップアウト技法を使用してトレーニングされ得る。限定としてではなく一例として、1つまたは複数のノードは、トレーニングしている間、一時的に省略され得る(たとえば、入力を受信せず、出力を生成しない)。各トレーニングオブジェクトについて、ANNの1つまたは複数のノードは、ある程度の省略される確率を有し得る。特定のトレーニングオブジェクトについて省略されるノードは、他のトレーニングオブジェクトについて省略されるノードとは異なり得る(たとえば、ノードは、オブジェクトごとに一時的に省略され得る)。本開示は、特定の様式でANNをトレーニングすることについて説明するが、本開示は、任意の好適な様式でANNをトレーニングすることを企図する。
【0125】
プライバシー
特定の実施形態では、コンピューティングシステムの1つまたは複数のオブジェクト(たとえば、コンテンツまたは他のタイプのオブジェクト)は、1つまたは複数のプライバシー設定に関連付けられ得る。1つまたは複数のオブジェクトは、たとえば、ソーシャルネットワーキングシステム160、クライアントシステム130、補助システム140、サードパーティシステム170、ソーシャルネットワーキングアプリケーション、補助アプリケーション、メッセージングアプリケーション、写真共有アプリケーション、あるいは任意の他の好適なコンピューティングシステムまたはアプリケーションなど、任意の好適なコンピューティングシステムまたはアプリケーションに記憶されるか、または場合によっては関連付けられ得る。本明細書で説明される例はオンラインソーシャルネットワークのコンテキストにおけるものであるが、これらのプライバシー設定は、任意の他の好適なコンピューティングシステムに適用され得る。オブジェクトについてのプライバシー設定(または「アクセス設定」)は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス中で、別の好適な様式で、またはそれらの任意の好適な組合せなど、任意の好適な様式で記憶され得る。オブジェクトについてのプライバシー設定は、オブジェクト(またはオブジェクトに関連付けられた特定の情報)がオンラインソーシャルネットワーク内でどのようにアクセスされ、記憶され、または場合によっては使用され(たとえば、閲覧、共有、修正、コピー、実行、表面化、または識別され)得るかを指定し得る。オブジェクトについてのプライバシー設定が、特定のユーザまたは他のエンティティがそのオブジェクトにアクセスすることを可能にするとき、オブジェクトは、そのユーザまたは他のエンティティに関して「可視」であるものとして説明され得る。限定としてではなく一例として、オンラインソーシャルネットワークのユーザは、ユーザプロファイルページに関する職歴情報にアクセスし得るユーザのセットを識別するユーザプロファイルページについてのプライバシー設定を指定し、したがって、他のユーザがその情報にアクセスすることを除外し得る。
【0126】
特定の実施形態では、オブジェクトについてのプライバシー設定は、オブジェクトに関連付けられたある情報にアクセスすることを可能にされるべきでないユーザまたは他のエンティティの「ブロックリスト(blocked list)」を指定し得る。特定の実施形態では、ブロックリストは、サードパーティエンティティを含み得る。ブロックリストは、オブジェクトが可視でない1つまたは複数のユーザまたはエンティティを指定し得る。限定としてではなく一例として、ユーザは、ユーザに関連付けられた写真アルバムにアクセスしてはいけないユーザのセットを指定し、したがって、それらのユーザが写真アルバムにアクセスすることを除外し得る(また、場合によってはユーザの指定されたセット内にない何人かのユーザが写真アルバムにアクセスすることを可能にする)。特定の実施形態では、プライバシー設定は、特定のソーシャルグラフ要素に関連付けられ得る。ノードまたはエッジなど、ソーシャルグラフ要素のプライバシー設定は、ソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられた情報、またはソーシャルグラフ要素に関連付けられたオブジェクトが、どのようにオンラインソーシャルネットワークを使用してアクセスされ得るかを指定し得る。限定としてではなく一例として、特定の写真に対応する特定の概念ノード1104は、写真が、写真においてタグ付けされたユーザと写真においてタグ付けされたユーザの友達とによってのみアクセスされ得ることを指定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、そのユーザのコンテンツ、情報、またはアクションがソーシャルネットワーキングシステム160または補助システム140によって記憶/ロギングされるか、または他のシステム(たとえば、サードパーティシステム170)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。本開示は、特定の様式で特定のプライバシー設定を使用することについて説明するが、本開示は、任意の好適な様式で任意の好適なプライバシー設定を使用することを企図する。
【0127】
特定の実施形態では、プライバシー設定は、ソーシャルグラフ1100の1つまたは複数のノードまたはエッジに基づき得る。プライバシー設定は、ソーシャルグラフ1100の1つまたは複数のエッジ1106またはエッジタイプについて、あるいはソーシャルグラフ1100の1つまたは複数のノード1102、1104またはノードタイプに関して指定され得る。2つのノードをつなげる特定のエッジ1106に適用されるプライバシー設定は、ノードに対応する2つのエンティティ間の関係がオンラインソーシャルネットワークの他のユーザに可視であるかどうかを制御し得る。同様に、特定のノードに適用されるプライバシー設定は、ノードに対応するユーザまたは概念がオンラインソーシャルネットワークの他のユーザに可視であるかどうかを制御し得る。限定としてではなく一例として、第1のユーザは、ソーシャルネットワーキングシステム160に対してオブジェクトを共有し得る。オブジェクトは、エッジ1106によって第1のユーザのユーザノード1102に接続された概念ノード1104に関連付けられ得る。第1のユーザは、オブジェクトの概念ノード1104につなげる特定のエッジ1106に適用されるプライバシー設定を指定し得るか、または概念ノード1104につなげるすべてのエッジ1106に適用されるプライバシー設定を指定し得る。限定としてではなく別の例として、第1のユーザは、特定のオブジェクトタイプのオブジェクトのセット(たとえば、画像のセット)を共有し得る。第1のユーザは、特定のプライバシー設定を有するものとして、その特定のオブジェクトタイプの第1のユーザに関連付けられたすべてのオブジェクトに関してプライバシー設定を指定し得る(たとえば、第1のユーザによって投稿されたすべての画像が、第1のユーザの友達、および/または画像においてタグ付けされたユーザのみに可視であることを指定する)。
【0128】
特定の実施形態では、ソーシャルネットワーキングシステム160は、第1のユーザが1つまたは複数のプライバシー設定を指定するのを補助するために、第1のユーザに(たとえば、ウェブページ、モジュール、1つまたは複数のダイアログボックス、または任意の他の好適なインターフェース内に)「プライバシーウィザード」を提示し得る。プライバシーウィザードは、命令、好適なプライバシー関係情報、現在のプライバシー設定、プライバシー設定の変更または確認を指定する、第1のユーザからの1つまたは複数の入力を受け付けるための1つまたは複数の入力フィールド、あるいはそれらの任意の好適な組合せを表示し得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、第1のユーザの現在のプライバシー設定を第1のユーザに表示し得る「ダッシュボード」機能性を第1のユーザに与え得る。ダッシュボード機能性は、任意の適切な時間において(たとえば、ダッシュボード機能性を召喚する第1のユーザからの入力に続いて、特定のイベントまたはトリガアクションの発生に続いて)第1のユーザに表示され得る。ダッシュボード機能性は、第1のユーザが、任意の時間において、任意の好適な様式(たとえば、第1のユーザをプライバシーウィザードにリダイレクトすること)で第1のユーザの現在のプライバシー設定のうちの1つまたは複数を修正することを可能にし得る。
【0129】
オブジェクトに関連付けられたプライバシー設定は、許諾されるアクセスまたはアクセスの拒否の任意の好適なグラニュラリティを指定し得る。限定としてではなく一例として、アクセスまたはアクセスの拒否は、特定のユーザ(たとえば、私のみ、私のルームメート、私の上司)、特定の分離の程度内のユーザ(たとえば、友達、友達の友達)、ユーザグループ(たとえば、ゲームクラブ、私の家族)、ユーザネットワーク(たとえば、特定の雇用主の従業員、特定の大学の学生または卒業生)、すべてのユーザ(「公開」)、ユーザなし(「プライベート」)、サードパーティシステム170のユーザ、特定のアプリケーション(たとえば、サードパーティアプリケーション、外部ウェブサイト)、他の好適なエンティティ、あるいはそれらの任意の好適な組合せについて指定され得る。本開示は、許諾されるアクセスまたはアクセスの拒否の特定のグラニュラリティについて説明するが、本開示は、許諾されるアクセスまたはアクセスの拒否の任意の好適なグラニュラリティを企図する。
【0130】
特定の実施形態では、1つまたは複数のサーバ162が、プライバシー設定を施行するための許可/プライバシーサーバであり得る。データストア164に記憶された特定のオブジェクトについてのユーザ(または他のエンティティ)からの要求に応答して、ソーシャルネットワーキングシステム160は、オブジェクトについての要求をデータストア164に送り得る。要求は、要求に関連付けられたユーザを識別し得、オブジェクトは、オブジェクトに関連付けられたプライバシー設定に基づいてユーザがオブジェクトにアクセスすることを許可されると許可サーバが決定した場合、ユーザ(またはユーザのクライアントシステム130)にのみ送られ得る。要求元ユーザがオブジェクトにアクセスすることを許可されない場合、許可サーバは、要求されたオブジェクトがデータストア164から取り出されることを防ぎ得るか、または要求されたオブジェクトがユーザに送られることを防ぎ得る。検索クエリコンテキストでは、問い合わせているユーザがオブジェクトにアクセスすることを許可された場合のみ、たとえば、オブジェクトについてのプライバシー設定が、オブジェクトが、問い合わせているユーザに対して表面化されること、そのユーザによって発見されること、または場合によってはそのユーザに可視であることを可能にする場合のみ、オブジェクトが検索結果として提供され得る。特定の実施形態では、オブジェクトは、ユーザのニュースフィードを通してユーザに可視であるコンテンツを表し得る。限定としてではなく一例として、1つまたは複数のオブジェクトは、ユーザの「トレンディング」ページに可視であり得る。特定の実施形態では、オブジェクトは、特定のユーザに対応し得る。オブジェクトは、特定のユーザに関連付けられたコンテンツであり得るか、あるいはソーシャルネットワーキングシステム160、または他のコンピューティングシステムに記憶された特定のユーザのアカウントまたは情報であり得る。限定としてではなく一例として、第1のユーザは、オンラインソーシャルネットワークの「知り合いかも(People You May Know)」機能を通して、または第1のユーザの友達のリストを閲覧することによって、オンラインソーシャルネットワークの1人または複数の第2のユーザを閲覧し得る。限定としてではなく一例として、第1のユーザは、第1のユーザが、第1のユーザのニュースフィードまたは友達リスト中の特定の第2のユーザに関連付けられたオブジェクトを参照することを望まないことを指定し得る。オブジェクトについてのプライバシー設定が、オブジェクトが、ユーザに対して表面化されること、ユーザによって発見されること、またはユーザに可視であることを可能にしない場合、オブジェクトは、検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を施行することについて説明するが、本開示は、任意の好適な様式でプライバシー設定を施行することを企図する。
【0131】
特定の実施形態では、ユーザに関連付けられた同じタイプの異なるオブジェクトは、異なるプライバシー設定を有し得る。ユーザに関連付けられた異なるタイプのオブジェクトは、異なるタイプのプライバシー設定を有し得る。限定としてではなく一例として、第1のユーザは、第1のユーザのステータス更新が公開であるが、第1のユーザによって共有される画像がオンラインソーシャルネットワーク上の第1のユーザの友達にのみ可視であることを指定し得る。限定としてではなく別の例として、ユーザは、個人ユーザ、友達の友達、フォロワー、ユーザグループ、または企業エンティティなど、異なるタイプのエンティティについて異なるプライバシー設定を指定し得る。限定としてではなく別の例として、第1のユーザは、第1のユーザによって投稿されたビデオが第1のユーザの雇用主に可視でないようにしながら、それらのビデオを閲覧し得るユーザのグループを指定し得る。特定の実施形態では、異なるユーザグループまたはユーザ層について異なるプライバシー設定が提供され得る。限定としてではなく一例として、第1のユーザは、第1のユーザと同じ大学に通う他のユーザが、第1のユーザのピクチャを閲覧し得ることを指定するが、第1のユーザの家族である他のユーザが、それらの同じピクチャを閲覧し得ないことを指定し得る。
【0132】
特定の実施形態では、ソーシャルネットワーキングシステム160は、特定のオブジェクトタイプの各オブジェクトについての1つまたは複数のデフォルトプライバシー設定を提供し得る。デフォルト値に設定されたオブジェクトについてのプライバシー設定は、そのオブジェクトに関連付けられたユーザによって変更され得る。限定としてではなく一例として、第1のユーザによって投稿されるすべての画像は、第1のユーザの友達にのみ可視であるというデフォルトプライバシー設定を有し得、特定の画像について、第1のユーザは、画像が友達および友達の友達に可視であるようにプライバシー設定を変更し得る。
【0133】
特定の実施形態では、プライバシー設定は、ソーシャルネットワーキングシステム160または補助システム140が任意の目的のために第1のユーザに関連付けられた特定のオブジェクトまたは情報を受信すること、収集すること、ロギングすること、または記憶することを行い得るかどうかを、第1のユーザが(たとえば、オプトアウトすることによって、オプトインしないことによって)指定することを可能にし得る。特定の実施形態では、プライバシー設定は、特定のアプリケーションまたはプロセスが第1のユーザに関連付けられた特定のオブジェクトまたは情報にアクセスすること、それを記憶すること、または使用することを行い得るかどうかを、第1のユーザが指定することを可能にし得る。プライバシー設定は、固有のアプリケーションまたはプロセスによって、オブジェクトまたは情報がアクセスされること、記憶されること、または使用されることを、第1のユーザがオプトインすることまたはオプトアウトすることを可能にし得る。ソーシャルネットワーキングシステム160または補助システム140は第1のユーザに特定の機能またはサービスを提供するためにそのような情報にアクセスし、ソーシャルネットワーキングシステム160または補助システム140は任意の他の目的のためにその情報へのアクセスを有しないことがある。そのようなオブジェクトまたは情報にアクセスするか、それを記憶するか、または使用する前に、ソーシャルネットワーキングシステム160または補助システム140は、任意のそのようなアクションを可能にする前に、もしあれば、どのアプリケーションまたはプロセスがオブジェクトまたは情報にアクセスするか、それを記憶するか、または使用し得るかを指定するプライバシー設定を提供するようにユーザにプロンプトし得る。限定としてではなく一例として、第1のユーザは、オンラインソーシャルネットワークに関係するアプリケーション(たとえば、メッセージングアプリ)を介して第2のユーザにメッセージを伝送し得、そのようなメッセージがソーシャルネットワーキングシステム160または補助システム140によって記憶されるべきでないというプライバシー設定を指定し得る。
【0134】
特定の実施形態では、ユーザは、第1のユーザに関連付けられたオブジェクトまたは情報の特定のタイプが、ソーシャルネットワーキングシステム160または補助システム140によってアクセス、記憶、または使用され得るかどうかを指定し得る。限定としてではなく一例として、第1のユーザは、ソーシャルネットワーキングシステム160または補助システム140を通して第1のユーザによって送られた画像が、ソーシャルネットワーキングシステム160または補助システム140によって記憶され得ないことを指定し得る。限定としてではなく別の例として、第1のユーザは、第1のユーザから特定の第2のユーザに送られたメッセージが、ソーシャルネットワーキングシステム160または補助システム140によって記憶され得ないことを指定し得る。限定としてではなくまた別の例として、第1のユーザは、特定のアプリケーションを介して送られたすべてのオブジェクトが、ソーシャルネットワーキングシステム160または補助システム140によって保存され得ることを指定し得る。
【0135】
特定の実施形態では、プライバシー設定は、第1のユーザに関連付けられた特定のオブジェクトまたは情報が特定のクライアントシステム130またはサードパーティシステム170からアクセスされ得るかどうかを、第1のユーザが指定することを可能にし得る。プライバシー設定は、特定のデバイス(たとえば、ユーザのスマートフォン上の電話帳)から、特定のアプリケーション(たとえば、メッセージングアプリ)から、または特定のシステム(たとえば、電子メールサーバ)からオブジェクトまたは情報がアクセスされることを、第1のユーザがオプトインするかまたはオプトアウトすることを可能にし得る。ソーシャルネットワーキングシステム160または補助システム140は、各デバイス、システム、またはアプリケーションに関してデフォルトプライバシー設定を提供し得、および/または、第1のユーザは、各コンテキストについての特定のプライバシー設定を指定するようにプロンプトされ得る。限定としてではなく一例として、第1のユーザは、ユーザに近接しているレストランまたは他の場所についての推奨を提供するために、ソーシャルネットワーキングシステム160または補助システム140のロケーションサービス特徴を利用し得る。第1のユーザのデフォルトプライバシー設定は、ソーシャルネットワーキングシステム160または補助システム140が、ロケーションベースサービスを提供するために、第1のユーザのクライアントシステム130から提供されたロケーション情報を使用し得ることを指定するが、ソーシャルネットワーキングシステム160または補助システム140が、第1のユーザのロケーション情報を記憶すること、またはそれを任意のサードパーティシステム170に提供することを行い得ないことを指定し得る。第1のユーザは、次いで、写真にジオタグを付けるために、ロケーション情報がサードパーティ画像共有アプリケーションによって使用されることを可能にするように、プライバシー設定を更新し得る。
【0136】
特定の実施形態では、プライバシー設定は、オブジェクトがアクセスされ得る1つまたは複数の地理的ロケーションを、ユーザが指定することを可能にし得る。オブジェクトに対するアクセスまたはアクセスの拒否は、オブジェクトにアクセスすることを試みているユーザの地理的ロケーションに依存し得る。限定としてではなく一例として、ユーザは、オブジェクトを共有し、同じ都市におけるユーザのみがオブジェクトにアクセスすること、またはオブジェクトを閲覧することを行い得ることを指定し得る。限定としてではなく別の例として、第1のユーザは、オブジェクトを共有し、第1のユーザが特定のロケーションにいる間のみ、オブジェクトが第2のユーザに可視であることを指定し得る。第1のユーザが特定のロケーションを離れた場合、オブジェクトは第2のユーザにもはや可視でないことがある。限定としてではなく別の例として、第1のユーザは、第1のユーザからしきい値距離内の第2のユーザにのみ、オブジェクトが可視であることを指定し得る。その後、第1のユーザがロケーションを変更した場合、オブジェクトへのアクセスをもつ元の第2のユーザはアクセスを失うことがあるが、第2のユーザの新しいグループが、第1のユーザのしきい値距離内に自身が入るので、アクセスを獲得し得る。
【0137】
特定の実施形態では、ソーシャルネットワーキングシステム160または補助システム140は、ユーザ認証またはエクスペリエンス個人化目的のために、ユーザの個人情報または生体情報を入力として使用し得る機能性を有し得る。ユーザは、オンラインソーシャルネットワーク上のユーザのエクスペリエンスを向上させるためにこれらの機能性を利用することを選び得る。限定としてではなく一例として、ユーザは、ソーシャルネットワーキングシステム160または補助システム140に個人情報または生体情報を提供し得る。ユーザのプライバシー設定は、そのような情報が認証などの特定のプロセスのためにのみ使用され得ることを指定し、そのような情報が、任意のサードパーティシステム170と共有されないか、またはソーシャルネットワーキングシステム160または補助システム140に関連付けられた他のプロセスまたはアプリケーションのために使用され得ないことをさらに指定し得る。限定としてではなく別の例として、ソーシャルネットワーキングシステム160は、ユーザがオンラインソーシャルネットワークにボイスプリント記録を提供するための機能性を提供し得る。限定としてではなく一例として、ユーザが、オンラインソーシャルネットワークのこの機能を利用することを望む場合、ユーザは、オンラインソーシャルネットワーク上でステータス更新を行うために自分自身のボイスのボイス記録を提供し得る。ボイス入力の記録は、どんなワードがユーザによって話されたかを決定するために、ユーザのボイスプリントと比較され得る。ユーザのプライバシー設定は、そのようなボイス記録がボイス入力目的のために(たとえば、ユーザを認証するために、ボイスメッセージを送るために、オンラインソーシャルネットワークのボイス動作式特徴を使用するためにボイス認識を改善するために)のみ使用され得ることを指定し、そのようなボイス記録が、任意のサードパーティシステム170と共有されないか、またはソーシャルネットワーキングシステム160に関連付けられた他のプロセスまたはアプリケーションによって使用され得ないことをさらに指定し得る。限定としてではなく別の例として、ソーシャルネットワーキングシステム160は、ユーザがオンラインソーシャルネットワークに参照画像(たとえば、顔プロファイル、網膜スキャン)を提供するための機能性を提供し得る。オンラインソーシャルネットワークは、(たとえば、ユーザを認証するために、写真においてユーザをタグ付けするために)参照画像を、後で受信された画像入力と比較し得る。ユーザのプライバシー設定は、そのような画像が限られた目的(たとえば、認証、写真においてユーザをタグ付けすること)のためにのみ使用され得ることを指定し、そのような画像が、任意のサードパーティシステム170と共有されないか、またはソーシャルネットワーキングシステム160に関連付けられた他のプロセスまたはアプリケーションによって使用され得ないことをさらに指定し得る。
【0138】
システムおよび方法
図14は、例示的なコンピュータシステム1400を示す。特定の実施形態では、1つまたは複数のコンピュータシステム1400は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム1400は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム1400上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム1400の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0139】
本開示は、任意の好適な数のコンピュータシステム1400を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム1400を企図する。限定としてではなく例として、コンピュータシステム1400は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム1400は、1つまたは複数のコンピュータシステム1400を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム1400は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム1400は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム1400は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0140】
特定の実施形態では、コンピュータシステム1400は、プロセッサ1402と、メモリ1404と、ストレージ1406と、入出力(I/O)インターフェース1408と、通信インターフェース1410と、バス1412とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0141】
特定の実施形態では、プロセッサ1402は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ1402は、内部レジスタ、内部キャッシュ、メモリ1404、またはストレージ1406から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ1404、またはストレージ1406に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ1402は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ1402を企図する。限定としてではなく一例として、プロセッサ1402は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ1404またはストレージ1406中の命令のコピーであり得、命令キャッシュは、プロセッサ1402によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ1402において実行する命令が動作する対象のメモリ1404またはストレージ1406中のデータのコピー、プロセッサ1402において実行する後続の命令によるアクセスのための、またはメモリ1404もしくはストレージ1406に書き込むための、プロセッサ1402において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ1402による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ1402のための仮想アドレストランスレーションを高速化し得る。特定の実施形態では、プロセッサ1402は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ1402を企図する。適切な場合、プロセッサ1402は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ1402を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0142】
特定の実施形態では、メモリ1404は、プロセッサ1402が実行するための命令、またはプロセッサ1402が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム1400は、ストレージ1406または(たとえば、別のコンピュータシステム1400などの)別のソースからメモリ1404に命令をロードし得る。プロセッサ1402は、次いで、メモリ1404から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ1402は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ1402は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ1402は、次いで、メモリ1404にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ1402は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ1406または他の場所とは対照的な)メモリ1404中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ1406または他の場所とは対照的な)メモリ1404中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ1402をメモリ1404に結合し得る。バス1412は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ1402とメモリ1404との間に常駐し、プロセッサ1402によって要求されるメモリ1404へのアクセスを可能にする。特定の実施形態では、メモリ1404は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ1404は、適切な場合、1つまたは複数のメモリ1404を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0143】
特定の実施形態では、ストレージ1406は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ1406は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ1406は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ1406は、適切な場合、コンピュータシステム1400の内部または外部にあり得る。特定の実施形態では、ストレージ1406は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ1406は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ1406を企図する。ストレージ1406は、適切な場合、プロセッサ1402とストレージ1406との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ1406は、1つまたは複数のストレージ1406を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0144】
特定の実施形態では、I/Oインターフェース1408は、コンピュータシステム1400と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム1400は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム1400との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース1408とを企図する。適切な場合、I/Oインターフェース1408は、プロセッサ1402がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース1408は、適切な場合、1つまたは複数のI/Oインターフェース1408を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0145】
特定の実施形態では、通信インターフェース1410は、コンピュータシステム1400と、1つまたは複数の他のコンピュータシステム1400または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース1410は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース1410とを企図する。限定としてではなく一例として、コンピュータシステム1400は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム1400は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム1400は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース1410を含み得る。通信インターフェース1410は、適切な場合、1つまたは複数の通信インターフェース1410を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0146】
特定の実施形態では、バス1412は、コンピュータシステム1400の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス1412は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス1412は、適切な場合、1つまたは複数のバス1412を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0147】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0148】
その他
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
【0149】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、構成されるか、実施することが可能であるか、実施するように設定されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、構成されるか、可能であるか、設定されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7A
図7B
図7C
図8A
図8B
図8C
図9
図10
図11
図12
図13
図14
【国際調査報告】