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

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

▶ オキュラス ブイアール,エルエルシーの特許一覧

特許7324772補助システムとのユーザ対話のための個人化されたジェスチャー認識
<>
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図1
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図2
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図3
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図4
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図5
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図6
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図7
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図8
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図9
  • 特許-補助システムとのユーザ対話のための個人化されたジェスチャー認識 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-02
(45)【発行日】2023-08-10
(54)【発明の名称】補助システムとのユーザ対話のための個人化されたジェスチャー認識
(51)【国際特許分類】
   G06F 3/01 20060101AFI20230803BHJP
   G06F 3/16 20060101ALI20230803BHJP
   G06N 20/00 20190101ALI20230803BHJP
   G10L 15/10 20060101ALI20230803BHJP
   G10L 15/22 20060101ALI20230803BHJP
【FI】
G06F3/01 570
G06F3/01 510
G06F3/16 610
G06F3/16 650
G06N20/00
G10L15/10 500T
G10L15/22 300Z
【請求項の数】 45
(21)【出願番号】P 2020556899
(86)(22)【出願日】2019-04-18
(65)【公表番号】
(43)【公表日】2021-08-30
(86)【国際出願番号】 US2019028187
(87)【国際公開番号】W WO2019204651
(87)【国際公開日】2019-10-24
【審査請求日】2022-01-25
(31)【優先権主張番号】62/660,876
(32)【優先日】2018-04-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/388,130
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】リウ, シャオフー
(72)【発明者】
【氏名】クルック, ポール アンソニー
(72)【発明者】
【氏名】ペノフ, フランシスラフ ピー.
(72)【発明者】
【氏名】スバ, ラジェン
【審査官】石川 亮
(56)【参考文献】
【文献】国際公開第2018/235191(WO,A1)
【文献】国際公開第2017/129149(WO,A1)
【文献】特開2015-095232(JP,A)
【文献】特開平11-073297(JP,A)
【文献】米国特許出願公開第2015/0073907(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/16
G06N 3/04
G06N 20/00
G10L 15/10
G10L 15/22
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピューティングシステムによって、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を含む、方法。
【請求項2】
前記データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、前記個人化されたジェスチャー分類モデルをトレーニングすることが、前記一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記一般的なジェスチャー分類モデルが、前記一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされる、請求項2に記載の方法。
【請求項4】
1つまたは複数の自動音声認識(ASR)モジュールによって、前記複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
をさらに含む、請求項1に記載の方法。
【請求項5】
前記複数の音声入力に対応する前記複数の意図をそれぞれ決定することが、各々の音声入力の前記複数のテキスト入力に基づく、請求項4に記載の方法。
【請求項6】
前記1つまたは複数の機械学習モデルが、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づく、請求項1に記載の方法。
【請求項7】
前記個人化されたジェスチャー分類モデルが、畳み込みニューラルネットワークに基づく、請求項1に記載の方法。
【請求項8】
各ジェスチャー入力について各特徴表現を生成することが、
前記ジェスチャー入力を1つまたは複数の構成要素に分割することと、
前記ジェスチャー入力について前記1つまたは複数の構成要素を前記特徴表現にモデル化することと
を含む、請求項1に記載の方法。
【請求項9】
各ジェスチャー入力について各特徴表現を生成することが、
前記ジェスチャー入力に関連付けられた時間的情報を決定することと、
前記ジェスチャー入力について前記時間的情報を前記特徴表現にモデル化することと
を含む、請求項1に記載の方法。
【請求項10】
前記第1のユーザに関連付けられたクライアントシステムから、前記第1のユーザからの新しいジェスチャー入力を受信することと、
前記新しいジェスチャー入力について、前記個人化されたジェスチャー分類モデルに基づいて、前記新しいジェスチャー入力に対応する意図を決定することと
をさらに含む、請求項1に記載の方法。
【請求項11】
決定された意図に基づいて1つまたは複数のタスクを実行すること
をさらに含む、請求項10に記載の方法。
【請求項12】
前記個人化されたジェスチャー分類モデルをトレーニングすることが、前記第1のユーザからのユーザフィードバックデータにさらに基づく、請求項1に記載の方法。
【請求項13】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項14】
前記ソフトウェアは、実行されたとき、
前記データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、前記個人化されたジェスチャー分類モデルをトレーニングすることが、前記一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
を行うようにさらに動作可能である、請求項13に記載の媒体。
【請求項15】
前記一般的なジェスチャー分類モデルが、前記一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされる、請求項14に記載の媒体。
【請求項16】
前記ソフトウェアが、実行されたとき、
1つまたは複数の自動音声認識(ASR)モジュールによって、前記複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
を行うようにさらに動作可能である、請求項13に記載の媒体。
【請求項17】
前記複数の音声入力に対応する前記複数の意図を決定することが、各々の音声入力の前記複数のテキスト入力にそれぞれ基づく、請求項16に記載の媒体。
【請求項18】
前記1つまたは複数の機械学習モデルが、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づく、請求項13に記載の媒体。
【請求項19】
前記個人化されたジェスチャー分類モデルが、畳み込みニューラルネットワークに基づく、請求項13に記載の媒体。
【請求項20】
1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を備える、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサは、前記命令を実行したとき、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である、システム。
【請求項21】
助システムにおいて使用するための方法であって、前記補助システムは、ユーザが、補助を得るための会話におけるユーザ入力で前記補助システムと対話することを可能にすることによって、前記ユーザが情報またはサービスを取得するのを補助するためのものであり、前記ユーザ入力が、ボイス、テキスト、画像、ビデオ、動きまたは向き、あるいはそれらの任意の組合せを含み、前記補助システムが、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及との組合せによって可能にされ、前記方法は、1つまたは複数のコンピューティングシステムによって、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を含む、方法。
【請求項22】
前記データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、前記個人化されたジェスチャー分類モデルをトレーニングすることが、前記一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
をさらに含む、請求項21に記載の方法。
【請求項23】
前記一般的なジェスチャー分類モデルが、前記一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされる、請求項22に記載の方法。
【請求項24】
1つまたは複数の自動音声認識(ASR)モジュールによって、前記複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
をさらに含む、請求項21から23のいずれか一項に記載の方法。
【請求項25】
前記複数の音声入力に対応する前記複数の意図を決定することが、各々の音声入力の前記複数のテキスト入力にそれぞれ基づく、請求項24に記載の方法。
【請求項26】
前記1つまたは複数の機械学習モデルが、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づく、請求項21から25のいずれか一項に記載の方法。
【請求項27】
前記個人化されたジェスチャー分類モデルが、畳み込みニューラルネットワークに基づく、請求項21から26のいずれか一項に記載の方法。
【請求項28】
各ジェスチャー入力について各特徴表現を生成することが、
前記ジェスチャー入力を1つまたは複数の構成要素に分割することと、
前記ジェスチャー入力について前記1つまたは複数の構成要素を前記特徴表現にモデル化することと
を含み、および/または
各ジェスチャー入力について各特徴表現を生成することが、
前記ジェスチャー入力に関連付けられた時間的情報を決定することと、
前記ジェスチャー入力について前記時間的情報を前記特徴表現にモデル化することと
を含む、請求項21から27のいずれか一項に記載の方法。
【請求項29】
前記第1のユーザに関連付けられたクライアントシステムから、前記第1のユーザからの新しいジェスチャー入力を受信することと、
前記新しいジェスチャー入力について、前記個人化されたジェスチャー分類モデルに基づいて、前記新しいジェスチャー入力に対応する意図を決定することと
をさらに含、請求項21から28のいずれか一項に記載の方法。
【請求項30】
決定された意図に基づいて1つまたは複数のタスクを実行すること
をさらに含む、請求項29に記載の方法。
【請求項31】
入力タプルまたはジェスチャー入力および/または音声入力が、前記補助システムに関連付けられたクライアントシステムによってキャプチャされ、
記クライアントシステムが、仮想現実(VR)ヘッドセットおよび/または拡張現実(AR)スマートグラスであり、ならびに/あるいは
記クライアントシステムが、1つまたは複数のセンサーを備えるI/Oデバイスからユーザ入力を受信し、
記I/Oデバイスが、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含む、
請求項21から30のいずれか一項に記載の方法。
【請求項32】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、請求項21から31のいずれか一項に記載の方法を実施するように、または
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、前記複数の音声入力に対応する複数の意図を、それぞれ決定することと、
前記複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項33】
前記ソフトウェアは、実行されたとき、
前記データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、前記個人化されたジェスチャー分類モデルをトレーニングすることが、前記一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
を行うようにさらに動作可能である、請求項32に記載の媒体。
【請求項34】
前記一般的なジェスチャー分類モデルが、前記一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされる、請求項33に記載の媒体。
【請求項35】
前記ソフトウェアが、実行されたとき、
1つまたは複数の自動音声認識(ASR)モジュールによって、前記複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
を行うようにさらに動作可能である、請求項32から34のいずれか一項に記載の媒体。
【請求項36】
前記複数の音声入力に対応する前記複数の意図を決定することが、各々の音声入力の前記複数のテキスト入力にそれぞれ基づく、請求項35に記載の媒体。
【請求項37】
前記1つまたは複数の機械学習モデルが、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づく、請求項32から36のいずれか一項に記載の媒体。
【請求項38】
前記個人化されたジェスチャー分類モデルが、畳み込みニューラルネットワークに基づく、請求項32から37のいずれか一項に記載の媒体。
【請求項39】
各ジェスチャー入力について各特徴表現を生成することが、
前記ジェスチャー入力を1つまたは複数の構成要素に分割することと、
前記ジェスチャー入力について前記1つまたは複数の構成要素を前記特徴表現にモデル化することと
を含む、請求項32から38のいずれか一項に記載の媒体。
【請求項40】
1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を備える、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサは、前記命令を実行したとき、請求項21から31のいずれか一項に記載の方法を実施するように、または
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、前記複数の音声入力に対応する複数の意図を、それぞれ決定することと、
前記複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
前記複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
前記複数の意図を前記複数のジェスチャー識別子にそれぞれ関連付けることと、
前記第1のユーザについて、それらの各々のジェスチャー入力の前記複数の特徴表現と、前記複数の意図とそれらの各々のジェスチャー識別子との間の前記関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である、システム。
【請求項41】
補助システムであって、ユーザが、補助を得るための会話におけるユーザ入力で前記補助システムと対話することを可能にすることによって、前記ユーザが情報またはサービスを取得するのを補助するためのものであり、前記ユーザ入力が、ボイス、テキスト、画像、ビデオ、動きまたは向き、あるいはそれらの任意の組合せを含み、前記補助システムが、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及との組合せによって可能にされ、前記補助システムが、1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を備える、前記プロセッサに結合された非一時的メモリとを備え、前記プロセッサが、前記命令を実行したとき、請求項21から31のいずれか一項に記載の方法を実施するように動作可能である、補助システム。
【請求項42】
以下の特徴またはステップ、すなわち、
- 前記ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶すること
- 意図理解モジュールを使用して前記ユーザ入力を分析することであって、前記意図理解モジュールが、自然言語理解モジュールとジェスチャー分類モデルとを含み得る、前記ユーザ入力を分析すること
- 自然言語理解を使用して前記ユーザ入力を分析することであって、前記分析が、より個人化されたおよびコンテキストアウェア理解のために前記ユーザプロファイルに基づき得る、前記ユーザ入力を分析すること
- 前記分析に基づいて、前記ユーザ入力に関連付けられたエンティティを解析すること
- 前記解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話すること
- 自然言語生成を使用することによって、前記情報またはサービスに関して前記ユーザのための応答を生成すること
- 前記ユーザとの前記対話を通して、ダイアログ管理技法を使用して、前記ユーザとの前記会話のフローを管理およびフォワーディングすること
- 前記情報を要約することによって、前記ユーザが、取得された情報を効果的におよび効率的に消化するのを補助すること
記ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、前記ユーザが前記オンラインソーシャルネットワークにより関与するのを補助すること
- 前記ユーザが、イベントを追跡することなど、異なるタスクを管理するのを補助すること
- ユーザ入力なしに、前記ユーザについて関連する時間において、前記ユーザプロファイルに基づいて、ユーザ興味および選好に関連する、事前許可されたタスクをプロアクティブに実行すること
- ユーザプロファイルにアクセスすることと、異なるタスクを実行することとが、前記ユーザのプライバシー設定を条件とすることを保証することが必要であるときはいつでも、プライバシー設定を検査すること
のうちの少なくとも1つまたは複数を実行することによって前記ユーザを補助するための、請求項41に記載の補助システム。
【請求項43】
以下の構成要素、すなわち、
- メッセージングプラットフォームであって、前記ユーザに関連付けられたクライアントシステムから、テキストモダリティに基づくユーザ入力を受信すること、および/あるいは、画像またはビデオモダリティに基づくユーザ入力を受信すること、および、前記ユーザ入力をテキストにコンバートするために前記メッセージングプラットフォーム内の光学文字認識技法を使用して前記ユーザ入力を処理することを行うためのメッセージングプラットフォーム、
- 前記ユーザに関連付けられた前記クライアントシステムから、オーディオモダリティに基づくユーザ入力を受信することと、前記オーディオモダリティに基づく前記ユーザ入力をテキストにコンバートすることとを行うためのオーディオ音声認識(ASR)モジュール、
- 前記メッセージングプラットフォームまたは前記ASRモジュールの出力を受信するための補助xbot
のうちの少なくとも1つまたは複数を備える、請求項41または42に記載の補助システム。
【請求項44】
ットワークによって、互いに接続される、
電子デバイスである少なくとも1つのクライアントシステムと
少なくとも1つの、請求項41から43のいずれか一項に記載の補助システムと
を備えるシステムであって、
前記クライアントシステムは、前記クライアントシステムにおけるユーザが、前記補助システムと対話することを可能にするための補助アプリケーションを含み、
前記補助アプリケーションが、ユーザ入力を前記補助システムに通信し、前記ユーザ入力に基づいて、前記補助システムが、応答を生成し、生成された応答を前記補助アプリケーションに送り、前記補助アプリケーションが、前記クライアントシステムにおける前記ユーザに前記応答を提示し、
記ユーザ入力が、オーディオまたは口頭であり、前記応答が、テキストのもの、あるいはオーディオまたは口頭でもあり得る、
システム。
【請求項45】
ソーシャルネットワーキングシステムをさらに備え、
前記クライアントシステムが、前記ソーシャルネットワーキングシステムにアクセスするためのソーシャルネットワーキングアプリケーションを含む、
請求項44に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ネットワーク環境内の機械学習技法に基づくダイアログ管理に関し、詳細には、スマート補助システム(assistant system)のためのハードウェアおよびソフトウェアに関する。
【背景技術】
【0002】
補助システムは、ユーザ入力と、ロケーションアウェアネスと、(気象条件、交通渋滞、ニュース、株価、ユーザスケジュール、小売価格などの)様々なオンラインソースからの情報にアクセスする能力との組合せに基づいて、ユーザのために情報またはサービスを提供することができる。ユーザ入力は、特にインスタントメッセージングアプリケーションまたは他のアプリケーションにおけるテキスト(たとえば、オンラインチャット)、ボイス、画像、動き、向き、またはそれらの組合せを含み得る。補助システムは、コンシェルジュタイプのサービス(たとえば、ディナーを予約すること、イベントチケットを購入すること、旅行の手配をすること)を実施するか、またはユーザ入力に基づいて情報を提供し得る。補助システムはまた、ユーザ始動または対話なしに、オンライン情報およびイベントに基づいて、管理またはデータハンドリングタスクを実施し得る。補助システムによって実施され得るタスクの例は、スケジュール管理(たとえば、ディナーデートについて交通状況によりユーザが遅れているというアラートを送る、双方のためのスケジュールを更新する、およびレストラン予約時間を変更する)を含み得る。補助システムは、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及(proliferation)との組合せによって可能にされ得る。
【0003】
ソーシャルネットワーキングウェブサイトを含み得る、ソーシャルネットワーキングシステムは、そのユーザ(個人または法人など)が、ソーシャルネットワーキングシステムと対話し、ソーシャルネットワーキングシステムを通して互いと対話することを可能にし得る。ソーシャルネットワーキングシステムは、ユーザからの入力を用いて、ユーザに関連付けられたユーザプロファイルを作成し、ソーシャルネットワーキングシステムに記憶し得る。ユーザプロファイルは、人口統計学的情報、通信チャネル情報、およびユーザの個人的な興味に関する情報を含み得る。ソーシャルネットワーキングシステムはまた、ユーザからの入力を用いて、ソーシャルネットワーキングシステムの他のユーザとのユーザの関係のレコードを作成し、記憶し、ならびに、サービス(たとえば、プロファイル/ニュースフィード投稿、写真共有、イベント編成、メッセージング、ゲーム、または広告)を提供して、ユーザ間のソーシャルな対話を円滑にし得る。
【0004】
ソーシャルネットワーキングシステムは、1つまたは複数のネットワークを介して、そのサービスに関係するコンテンツまたはメッセージを、ユーザのモバイルまたは他のコンピューティングデバイスに送り得る。ユーザはまた、ユーザのモバイルまたは他のコンピューティングデバイス上に、ユーザのユーザプロファイルおよびソーシャルネットワーキングシステム内の他のデータにアクセスするためのソフトウェアアプリケーションをインストールし得る。ソーシャルネットワーキングシステムは、ユーザにつながっている他のユーザの集約されたストーリーのニュースフィードなど、ユーザに表示するためのコンテンツオブジェクトの個人化されたセットを生成し得る。
【発明の概要】
【0005】
特定の実施形態では、補助システムは、ユーザが情報またはサービスを取得するのを補助し得る。補助システムは、ユーザが、補助を得るためのステートフルおよびマルチターン(multi-turn)会話における(ボイス、テキスト、画像、ビデオ、動き、向きなどの)マルチモーダルユーザ入力で補助システムと対話することを可能にし得る。補助システムは、ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶し得る。特定の実施形態では、補助システムは、自然言語理解(natural-language understanding)を使用してユーザ入力を分析し得る。分析は、より個人化されたおよびコンテキストアウェア理解のために、ユーザプロファイルに基づき得る。補助システムは、分析に基づいて、ユーザ入力に関連付けられたエンティティを解析し得る。特定の実施形態では、補助システムは、解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話し得る。補助システムは、自然言語生成を使用することによって、情報またはサービスに関してユーザのための応答を生成し得る。ユーザとの対話を通して、補助システムは、ダイアログ管理技法を使用して、ユーザとの会話のフローを管理およびフォワーディングし得る。特定の実施形態では、補助システムは、情報を要約することによって、ユーザが、取得された情報を効果的におよび効率的に消化するのをさらに補助し得る。補助システムはまた、(たとえば、投稿、コメント、メッセージを作成して)ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、ユーザがオンラインソーシャルネットワークにより関与するのを補助し得る。補助システムは、ユーザが、イベントを追跡することなど、異なるタスクを管理するのをさらに補助し得る。特定の実施形態では、補助システムは、ユーザ入力なしに、ユーザプロファイルに基づいて、ユーザ興味および選好に関連するタスクをプロアクティブに実行し得る。特定の実施形態では、補助システムは、ユーザのプロファイルまたは他のユーザ情報にアクセスすることと、異なるタスクを実行することとが、ユーザのプライバシー設定を条件として許諾されることを確実にするために、プライバシー設定を検査し得る。
【0006】
特定の実施形態では、補助システムは、個人化されたジェスチャー分類モデル(gesture-classification model)をトレーニングし得る。トレーニングは、複数の入力タプルを受信することであって、各々がジェスチャー入力(gesture-input)と音声入力(speech-input)とを含む、複数の入力タプルを受信することと、自然言語理解(NLU)モジュールによって、音声入力に基づいて複数の意図(intent)を決定することと、一般的なジェスチャー分類モデルにアクセスすることと、意図をそれらの各々のジェスチャー入力に関連付けることと、意図とジェスチャー入力との間の関連付けに、および一般的なジェスチャー分類モデルにも基づいて、個人化されたジェスチャー分類モデルをトレーニングすることとを含み得る。特定の実施形態では、一般的なジェスチャー分類モデルは、多数の標準ジェスチャーに関してクラウドソーシングによって生成され得る。しかしながら、一般的なジェスチャー分類モデルは、特に、ユーザが非標準ジェスチャーまたは一般に異なる意図のために使用されるジェスチャーを使用している場合、特定のユーザのジェスチャーの正しい意図を決定することができないことがある。したがって、個人化されたジェスチャー分類モデルのトレーニングは、一般的なジェスチャー分類モデルに加えて、音声とジェスチャーの両方を含むユーザ自身の入力からの有益な手がかりをさらに活用し得る。個人化されたジェスチャー分類モデルのトレーニングを補助するために、音声入力を別個に使用することのほかに、補助システムは、代替的に、音声入力とジェスチャー入力とを一緒に利用することによって、個人化されたジェスチャー分類モデルをトレーニングし得る。個人化されたジェスチャー分類モデルがトレーニングされると、補助システムは、それを使用して、将来においてユーザ自身のジェスチャーに対応するユーザの意図を決定し得る。本開示は、特定の様式で特定のシステムを介して特定のジェスチャー分類モデルをトレーニングすることについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なジェスチャー分類モデルをトレーニングすることを企図する。
【0007】
特定の実施形態では、補助システムは、データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスし得る。各入力タプルは、ジェスチャー入力と、対応する音声入力とを含み得る。特定の実施形態では、補助システムは、次いで、自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定し得る。補助システムは、次いで、複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成し得る。特定の実施形態では、補助システムは、次いで、複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定し得る。補助システムは、次いで、複数の意図を複数のジェスチャー識別子に、それぞれ関連付け得る。特定の実施形態では、補助システムは、第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをさらにトレーニングし得る。
【0008】
個人化されたジェスチャー分類モデルをトレーニングするという目標を達成するために、いくつかの技術課題が存在し得る。1つの技術課題は、個人化されたジェスチャー分類モデルがユーザの個人ジェスチャーからユーザの意図を識別することを可能にすることを含み得る。上記の課題に対処するために本明細書で開示される実施形態によって提示されるソリューションは、ユーザの意図が音声入力から学習され得、そのような意図とジェスチャー入力との間の関連付けが、個人化されたジェスチャー分類モデルのトレーニング中にさらなる利用のために生成され得るので、ユーザの音声入力とジェスチャー入力の両方に基づいて、個人化されたジェスチャー分類モデルをトレーニングすることである。別の技術課題は、ジェスチャー入力についての信頼できる特徴表現を生成することを含み得る。この課題に対処するために本明細書で開示される実施形態によって提示されるソリューションは、ジェスチャー入力を構成要素に分割することが、ジェスチャーを別のものと区別するのを助け得、時間的情報が、ジェスチャー分類のために有用であるユーザの意図を指示するコンテキスト情報を伝達し得るので、ジェスチャー入力の構成要素とジェスチャー入力に関連付けられた時間的情報とを特徴表現にモデル化することである。
【0009】
本明細書で開示されるいくつかの実施形態は、1つまたは複数の技術的利点を提供し得る。実施形態の技術的利点は、ユーザが、テキストおよびボイスなどの旧来の入力のほかにジェスチャーで補助システムと対話することを可能にすることによって、補助システムとのユーザエクスペリエンスを豊かにすることを含み得、補助システムは、正確に、ユーザのジェスチャーを認識し、認識されたジェスチャーに対応するタスクを実行し得る。本明細書で開示されるいくつかの実施形態は、上記の技術的利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。1つまたは複数の他の技術的利点が、本開示の図、説明、および特許請求の範囲に鑑みて、当業者に容易に明らかになり得る。
【0010】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システム、補助システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれかは、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【0011】
一実施形態では、特に、補助システムにおいて使用するための方法であって、補助システムは、ユーザが、補助を得るための会話におけるユーザ入力で補助システムと対話することを可能にすることによって、ユーザが情報またはサービスを取得するのを補助するためのものであり、ユーザ入力が、ボイス、テキスト、画像、ビデオ、動きまたは向き、あるいはそれらの任意の組合せを含み、補助システムが、特に、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及との組合せによって可能にされる、方法は、1つまたは複数のコンピューティングシステムによって、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
複数の意図を複数のジェスチャー識別子にそれぞれ関連付けることと、
第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を含み得る。
【0012】
一実施形態では、方法は、
データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、個人化されたジェスチャー分類モデルをトレーニングすることが、一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
を含み得る。
【0013】
一般的なジェスチャー分類モデルは、一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされ得る。
【0014】
一実施形態では、方法は、
1つまたは複数の自動音声認識(ASR)モジュールによって、複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
を含み得る。
【0015】
複数の音声入力に対応する複数の意図を決定することは、各々の音声入力の複数のテキスト入力に、それぞれ基づき得る。
【0016】
1つまたは複数の機械学習モデルは、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づき得る。
【0017】
個人化されたジェスチャー分類モデルは、畳み込みニューラルネットワークに基づき得る。
【0018】
各ジェスチャー入力について各特徴表現を生成することは、
ジェスチャー入力を1つまたは複数の構成要素に分割することと、
ジェスチャー入力について1つまたは複数の構成要素を特徴表現にモデル化することと
を含み得る。
【0019】
各ジェスチャー入力について各特徴表現を生成することは、
ジェスチャー入力に関連付けられた時間的情報を決定することと、
ジェスチャー入力について時間的情報を特徴表現にモデル化することと
を含み得る。
【0020】
一実施形態では、方法は、
第1のユーザに関連付けられたクライアントシステムから、第1のユーザからの新しいジェスチャー入力を受信することと、
新しいジェスチャー入力について、個人化されたジェスチャー分類モデルに基づいて、新しいジェスチャー入力に対応する意図を決定することと
を含み得る。
【0021】
一実施形態では、方法は、
決定された意図に基づいて1つまたは複数のタスクを実行すること
を含み得る。
【0022】
入力タプルまたはジェスチャー入力および/または音声入力は、補助システムに関連付けられたクライアントシステムによってキャプチャされ得る。
【0023】
クライアントシステムは、仮想現実(VR)ヘッドセットおよび/または拡張現実(AR)スマートグラスであり得る。
【0024】
クライアントシステムは、1つまたは複数のセンサーを備えるI/Oデバイスからユーザ入力を受信し得る。
【0025】
I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。
【0026】
一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体がソフトウェアを具現し得、ソフトウェアは、実行されたとき、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
複数の意図を複数のジェスチャー識別子にそれぞれ関連付けることと、
第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である。
【0027】
ソフトウェアは、実行されたとき、
データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスすることであって、個人化されたジェスチャー分類モデルをトレーニングすることが、一般的なジェスチャー分類モデルにさらに基づく、一般的なジェスチャー分類モデルにアクセスすること
を行うように動作可能であり得る。
【0028】
一般的なジェスチャー分類モデルは、一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされ得る。
【0029】
ソフトウェアは、実行されたとき、
1つまたは複数の自動音声認識(ASR)モジュールによって、複数の音声入力についての複数のテキスト入力を、それぞれ生成すること
を行うように動作可能であり得る。
【0030】
複数の音声入力に対応する複数の意図を決定することは、各々の音声入力の複数のテキスト入力にそれぞれ基づき得る。
【0031】
1つまたは複数の機械学習モデルは、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づき得る。
【0032】
個人化されたジェスチャー分類モデルは、畳み込みニューラルネットワークに基づき得る。
【0033】
各ジェスチャー入力について各特徴表現を生成することは、
ジェスチャー入力を1つまたは複数の構成要素に分割することと、
ジェスチャー入力について1つまたは複数の構成要素を特徴表現にモデル化することと
を含み得る。
【0034】
一実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を備える、プロセッサに結合された非一時的メモリとを備え得、プロセッサは、命令を実行したとき、
データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスすることであって、各入力タプルが、ジェスチャー入力と、対応する音声入力とを含む、複数の入力タプルにアクセスすることと、
自然言語理解(NLU)モジュールによって、複数の音声入力に対応する複数の意図を、それぞれ決定することと、
複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成することと、
複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定することと、
複数の意図を複数のジェスチャー識別子にそれぞれ関連付けることと、
第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングすることと
を行うように動作可能である。
【0035】
一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、実行されたとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能であるソフトウェアを具現し得る。
【0036】
一実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによって実行可能な命令を備える少なくとも1つのメモリとを備え得、プロセッサは、命令を実行したとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
【0037】
一実施形態では、好ましくはコンピュータ可読非一時的記憶媒体を備えるコンピュータプログラム製品は、データ処理システム上で実行されたとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能であり得る。
【0038】
一実施形態では、補助システムであって、ユーザが、補助を得るための会話におけるユーザ入力で補助システムと対話することを可能にすることによって、ユーザが情報またはサービスを取得するのを補助するためのものであり、ユーザ入力は、ボイス、テキスト、画像、ビデオ、動きまたは向き、あるいはそれらの任意の組合せを含み、補助システムは、特に、コンピューティングデバイスと、アプリケーションプログラミングインターフェース(API)と、ユーザデバイス上のアプリケーションの普及との組合せによって可能にされ、システムは、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を備える、プロセッサに結合された非一時的メモリとを備え得、プロセッサは、命令を実行したとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
【0039】
一実施形態では、補助システムは、以下の特徴またはステップ、すなわち、
- ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶すること
- 意図理解(intent-understanding)モジュールを使用してユーザ入力を分析することであって、意図理解モジュールが、自然言語理解モジュールとジェスチャー分類モデルとを含み得る、ユーザ入力を分析すること
- 自然言語理解を使用してユーザ入力を分析することであって、分析が、より個人化されたおよびコンテキストアウェア理解のためにユーザプロファイルに基づき得る、ユーザ入力を分析すること
- 分析に基づいて、ユーザ入力に関連付けられたエンティティを解析すること
- 解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話すること
- 自然言語生成を使用することによって、情報またはサービスに関してユーザのための応答を生成すること
- ユーザとの対話を通して、ダイアログ管理技法を使用して、ユーザとの会話のフローを管理およびフォワーディングすること
- 情報を要約することによって、ユーザが、取得された情報を効果的におよび効率的に消化するのを補助すること
- (たとえば、投稿、コメント、メッセージを作成して)ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、ユーザがオンラインソーシャルネットワークにより関与するのを補助すること
- ユーザが、イベントを追跡することなど、異なるタスクを管理するのを補助すること
- ユーザ入力なしに、ユーザについて関連する時間において、ユーザプロファイルに基づいて、ユーザ興味および選好に関連する、事前許可された(pre-authorized)タスクをプロアクティブに実行すること
- ユーザプロファイルにアクセスすることと、異なるタスクを実行することとが、ユーザのプライバシー設定を条件とすることを保証することが必要であるときはいつでも、プライバシー設定を検査すること
のうちの少なくとも1つまたは複数を実行することによってユーザを補助し得る。
【0040】
一実施形態では、補助システムは、以下の構成要素、すなわち、
- メッセージングプラットフォームであって、ユーザに関連付けられたクライアントシステムから、テキストモダリティに基づくユーザ入力を受信すること、および/あるいは、画像またはビデオモダリティに基づくユーザ入力を受信すること、および、ユーザ入力をテキストにコンバートするためにメッセージングプラットフォーム内の光学文字認識技法を使用してユーザ入力を処理することを行うためのメッセージングプラットフォーム、
- ユーザに関連付けられたクライアントシステムから、オーディオモダリティに基づくユーザ入力(たとえば、ユーザが、話しかけるか、または音声を含むビデオを送り得る)を受信することと、オーディオモダリティに基づくユーザ入力をテキストにコンバートすることとを行うためのオーディオ音声認識(ASR)モジュール、
- メッセージングプラットフォームまたはASRモジュールの出力を受信するための補助xbot
のうちの少なくとも1つまたは複数を備え得る。
【0041】
一実施形態では、システムは、
特にネットワークによって、互いに接続される、
少なくとも1つのクライアントシステム、特に電子デバイスと、
本発明または本明細書の実施形態のいずれかによる少なくとも1つの補助システムと
を備え得、
クライアントシステムは、クライアントシステムにおけるユーザが、補助システムと対話することを可能にするための補助アプリケーションを含み、
補助アプリケーションは、ユーザ入力を補助システムに通信し、ユーザ入力に基づいて、補助システムは、応答を生成し、生成された応答を補助アプリケーションに送り、補助アプリケーションは、クライアントシステムにおけるユーザに応答を提示し、
特に、ユーザ入力は、オーディオまたは口頭であり、応答は、テキストのもの、あるいはオーディオまたは口頭でもあり得る。
【0042】
一実施形態では、システムは、ソーシャルネットワーキングシステムを備え得、
クライアントシステムは、特に、ソーシャルネットワーキングシステムにアクセスするためのソーシャルネットワーキングアプリケーションを含む。
【図面の簡単な説明】
【0043】
図1】補助システムに関連付けられた例示的なネットワーク環境を示す図である。
図2】補助システムの例示的なアーキテクチャを示す図である。
図3】補助システムによってユーザ要求に応答する例示的な図のフローを示す図である。
図4】例示的なジェスチャーを示す図である。
図5】ジェスチャー入力を含むユーザ入力を処理する例示的なワークフローを示す図である。
図6】個人化されたジェスチャー分類モデルをトレーニングするための例示的な方法を示す図である。
図7】例示的なソーシャルグラフを示す図である。
図8】埋込み空間の例示的なビューを示す図である。
図9】例示的な人工ニューラルネットワークを示す図である。
図10】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0044】
システムの全体像
図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とを含み得る。
【0045】
本開示は、任意の好適なネットワーク110を企図する。限定としてではなく一例として、ネットワーク110の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク110は、1つまたは複数のネットワーク110を含み得る。
【0046】
リンク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つまたは複数の点で異なり得る。
【0047】
特定の実施形態では、クライアントシステム130は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム130によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム130は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、スマートスピーカー、仮想現実(VR)ヘッドセット、拡張現実(AR)スマートグラス、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。特定の実施形態では、クライアントシステム130は、スマート補助デバイスであり得る。スマート補助デバイスに関するより多くの情報が、その各々が参照により組み込まれる、2018年4月9日に出願された米国特許出願第15/949011号、2018年4月10日に出願された米国特許出願第62/655751号、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における他のユーザと通信することを可能にし得る。
【0048】
特定の実施形態では、クライアントシステム130は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROMEまたはMOZILLA FIREFOXなど、ウェブブラウザ132を含み得、1つまたは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなど、他の拡張を有し得る。クライアントシステム130におけるユーザは、ウェブブラウザ132を(サーバ162、またはサードパーティシステム170に関連付けられたサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザ132は、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム130に通信し得る。クライアントシステム130は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブインターフェース(たとえば、ウェブページ)をレンダリングし得る。本開示は、任意の好適なソースファイルを企図する。限定としてではなく一例として、ウェブインターフェースは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングされ得る。そのようなインターフェースは、たとえば、限定はしないが、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブインターフェースへの言及は、適切な場合、(ブラウザがウェブインターフェースをレンダリングするために使用し得る)1つまたは複数の対応するソースファイルを包含し、その逆も同様である。
【0049】
特定の実施形態では、クライアントシステム130は、クライアントシステム130上にインストールされたソーシャルネットワーキングアプリケーション134を含み得る。クライアントシステム130におけるユーザは、オンラインソーシャルネットワーク上でアクセスするために、ソーシャルネットワーキングアプリケーション134を使用し得る。クライアントシステム130におけるユーザは、ユーザのソーシャルつながり(たとえば、友達、フォロワー、フォローされるアカウント、連絡先など)と通信するために、ソーシャルネットワーキングアプリケーション134を使用し得る。クライアントシステム130におけるユーザはまた、オンラインソーシャルネットワーク上の複数のコンテンツオブジェクト(たとえば、投稿、ニュース記事、エフェメラルコンテンツなど)と対話するために、ソーシャルネットワーキングアプリケーション134を使用し得る。限定としてではなく一例として、ユーザは、ソーシャルネットワーキングアプリケーション134を使用して、トレンディングトピックおよびニュース速報(breaking news)をブラウズし得る。
【0050】
特定の実施形態では、クライアントシステム130は、補助アプリケーション136を含み得る。クライアントシステム130におけるユーザは、補助システム140と対話するために、補助アプリケーション136を使用し得る。特定の実施形態では、補助アプリケーション136は、スタンドアロンアプリケーションを含み得る。特定の実施形態では、補助アプリケーション136は、ソーシャルネットワーキングアプリケーション134または別の好適なアプリケーション(たとえば、メッセージングアプリケーション)に組み込まれ得る。特定の実施形態では、補助アプリケーション136は、クライアントシステム130、補助ハードウェアデバイス、または任意の他の好適なハードウェアデバイスにも組み込まれ得る。特定の実施形態では、補助アプリケーション136は、ウェブブラウザ132を介してアクセスされ得る。特定の実施形態では、ユーザは、異なるモダリティを介して入力を提供し得る。限定としてではなく一例として、モダリティは、オーディオ、テキスト、画像、ビデオ、動き、向きなどを含み得る。補助アプリケーション136は、ユーザ入力を補助システム140に通信し得る。ユーザ入力に基づいて、補助システム140は、応答を生成し得る。補助システム140は、生成された応答を補助アプリケーション136に送り得る。補助アプリケーション136は、次いで、クライアントシステム130におけるユーザに応答を提示し得る。提示された応答は、オーディオ、テキスト、画像、およびビデオなど、異なるモダリティに基づき得る。限定としてではなく一例として、ユーザは、交通情報について補助アプリケーション136に口頭で(すなわち、オーディオモダリティを介して)質問し得る。補助アプリケーション136は、次いで、要求を補助システム140に通信し得る。したがって、補助システム140は、結果を生成し、結果を補助アプリケーション136に返送し得る。補助アプリケーション136は、テキストでユーザに結果をさらに提示し得る。
【0051】
特定の実施形態では、補助システム140は、ユーザが、異なるソースから情報を取り出すのを補助し得る。補助システム140はまた、ユーザが、異なるサービスプロバイダにサービスを要求するのを補助し得る。特定の実施形態では、補助システム140は、クライアントシステム130中の補助アプリケーション136を介して情報またはサービスについてのユーザ要求を受信し得る。補助システム140は、ユーザのプロファイルおよび他の関連情報に基づいて、ユーザ要求を分析するために、自然言語理解を使用し得る。分析の結果は、オンラインソーシャルネットワークに関連付けられた異なるエンティティを含み得る。補助システム140は、次いで、これらのエンティティに関連付けられた情報を取り出すか、またはサービスを要求し得る。特定の実施形態では、補助システム140は、ユーザのために情報を取り出すかまたはサービスを要求するとき、ソーシャルネットワーキングシステム160および/またはサードパーティシステム170と対話し得る。特定の実施形態では、補助システム140は、自然言語生成技法を使用して、ユーザのための個人化された通信コンテンツを生成し得る。個人化された通信コンテンツは、たとえば、取り出された情報または要求されたサービスのステータスを含み得る。特定の実施形態では、補助システム140は、ダイアログ管理技法を使用することによって、ユーザが、ステートフルおよびマルチターン会話において情報またはサービスに関して補助システム140と対話することを可能にし得る。補助システム140の機能性は、以下の図2の説明でより詳細に説明される。
【0052】
特定の実施形態では、ソーシャルネットワーキングシステム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に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
【0053】
特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア164に記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードを接続する複数のエッジとを含み得る。ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム160を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム160の何人かの他のユーザへのつながり(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム160を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム160の任意の他のユーザを指し得る。
【0054】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム160のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが興味があり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム160において、またはソーシャルネットワーキングシステム160とは別個であり、ネットワーク110を介してソーシャルネットワーキングシステム160に結合された、サードパーティシステム170の外部システムによって、表されることが可能であるものと対話し得る。
【0055】
特定の実施形態では、ソーシャルネットワーキングシステム160は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム160は、ユーザが、互いと対話し、ならびにサードパーティシステム170または他のエンティティからコンテンツを受信することを可能にするか、あるいは、ユーザが、アプリケーションプログラミングインターフェース(API)または他の通信チャネルを通して、これらのエンティティと対話することを可能にし得る。
【0056】
特定の実施形態では、サードパーティシステム170は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム170は、ソーシャルネットワーキングシステム160を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム160とサードパーティシステム170とは、互いと連携して動作して、ソーシャルネットワーキングシステム160またはサードパーティシステム170のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム160は、サードパーティシステム170などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
【0057】
特定の実施形態では、サードパーティシステム170は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム130に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
【0058】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルネットワーキングシステム160とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム160に追加するか、アップロードするか、送るか、または「投稿」することができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム130からソーシャルネットワーキングシステム160に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム160に追加され得る。
【0059】
特定の実施形態では、ソーシャルネットワーキングシステム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から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
【0060】
補助システム
図2は、補助システム140の例示的なアーキテクチャを示す。特定の実施形態では、補助システム140は、ユーザが情報またはサービスを取得するのを補助し得る。補助システム140は、ユーザが、補助を得るためのステートフルおよびマルチターン会話における(ボイス、テキスト、画像、ビデオ、動き、向きなどの)マルチモーダルユーザ入力で補助システム140と対話することを可能にし得る。補助システム140は、ユーザに関連付けられた個人情報とコンテキスト情報の両方を含むユーザプロファイルを作成および記憶し得る。特定の実施形態では、補助システム140は、自然言語理解を使用してユーザ入力を分析し得る。分析は、より個人化されたおよびコンテキストアウェア理解のために、ユーザプロファイルに基づき得る。補助システム140は、分析に基づいて、ユーザ入力に関連付けられたエンティティを解析し得る。特定の実施形態では、補助システム140は、解析されるエンティティに関連付けられた情報またはサービスを取得するために、異なるエージェントと対話し得る。補助システム140は、自然言語生成を使用することによって、情報またはサービスに関してユーザのための応答を生成し得る。ユーザとの対話を通して、補助システム140は、ダイアログ管理技法を使用して、ユーザとの会話のフローを管理およびフォワーディングし得る。特定の実施形態では、補助システム140は、情報を要約することによって、ユーザが、取得された情報を効果的におよび効率的に消化するのをさらに補助し得る。補助システム140はまた、(たとえば、投稿、コメント、メッセージを作成して)ユーザがオンラインソーシャルネットワークと対話するのを助けるツールを提供することによって、ユーザがオンラインソーシャルネットワークにより関与するのを補助し得る。補助システム140は、ユーザが、イベントを追跡することなど、異なるタスクを管理するのをさらに補助し得る。特定の実施形態では、補助システム140は、ユーザ入力なしに、ユーザについて関連する時間において、ユーザプロファイルに基づいて、ユーザ興味および選好に関連する、事前許可されたタスクをプロアクティブに実行し得る。特定の実施形態では、補助システム140は、ユーザのプロファイルまたは他のユーザ情報にアクセスすることと、異なるタスクを実行することとが、ユーザのプライバシー設定を条件として許諾されることを確実にするために、プライバシー設定を検査し得る。プライバシー設定を条件とするユーザを補助することに関するより多くの情報が、参照により組み込まれる、2018年5月22日に出願された米国特許出願第62/675090号において見つけられ得る。
【0061】
特定の実施形態では、補助システム140は、ユーザに関連付けられたクライアントシステム130中の補助アプリケーション136からユーザ入力を受信し得る。特定の実施形態では、ユーザ入力は、シングルターン(single turn)で補助システム140に送られるユーザ生成された入力であり得る。ユーザ入力がテキストモダリティに基づく場合、補助システム140は、メッセージングプラットフォーム205においてユーザ入力を受信し得る。ユーザ入力がオーディオモダリティに基づく(たとえば、ユーザが、補助アプリケーション136に話しかけるか、または音声を含むビデオを補助アプリケーション136に送り得る)場合、補助システム140は、ユーザ入力をテキストにコンバートするために、自動音声認識(ASR)モジュール210を使用してユーザ入力を処理し得る。ユーザ入力が画像またはビデオモダリティに基づく場合、補助システム140は、ユーザ入力をテキストにコンバートするために、メッセージングプラットフォーム205内の光学文字認識技法を使用してユーザ入力を処理し得る。メッセージングプラットフォーム205またはASRモジュール210の出力が、補助xbot215において受信され得る。異なるモダリティに基づいてユーザ入力をハンドリングすることに関するより多くの情報が、参照により組み込まれる、2018年8月2日に出願された米国特許出願第16/053600号において見つけられ得る。
【0062】
特定の実施形態では、補助xbot215は、チャットボットのタイプであり得る。補助xbot215は、ユーザに対する個人的な補助として機能する、ソフトウェアコード、論理、またはルーチンであり得る、プログラマブルサービスチャネルを含み得る。補助xbot215は、補助システム140へのユーザのポータルとして働き得る。したがって、補助xbot215は、会話型エージェントのタイプと見なされ得る。特定の実施形態では、補助xbot215は、ユーザ入力を解釈するために、テキストユーザ入力を自然言語理解(NLU)モジュール220に送り得る。特定の実施形態では、NLUモジュール220は、ユーザ入力を正確に理解するために、ユーザコンテキストエンジン225および意味論的情報アグリゲータ(SIA:semantic information aggregator)230から情報を得ることがある。ユーザコンテキストエンジン225は、ユーザのユーザプロファイルを記憶し得る。ユーザのユーザプロファイルは、ユーザに関連付けられた人口統計学的情報とソーシャル情報とコンテキスト情報とを含む、ユーザプロファイルデータを含み得る。ユーザプロファイルデータはまた、ニュースフィード、検索ログ、メッセージングプラットフォーム205などにおける会話を通して集約された、複数のトピックに関するユーザ興味および選好を含み得る。ユーザプロファイルの使用は、ユーザの情報が、自分の利益のためにのみ使用され、他の誰とも共有され得ないことを確実にするために、プライバシー検査モジュール245の背後で保護され得る。ユーザプロファイルに関するより多くの情報が、参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967239号において見つけられ得る。意味論的情報アグリゲータ230は、複数の事前定義されたドメインと意図とスロットとに関連付けられたオントロジデータを、NLUモジュール220に提供し得る。特定の実施形態では、ドメインは、対話のソーシャルコンテキスト、たとえば、教育を示し得る。意図は、補助システム140と対話するユーザの目的を指示し得る、意味論的意図の事前定義された分類法(taxonomy)における要素であり得る。特定の実施形態では、意図は、ユーザ入力がテキスト/音声入力を含む場合、NLUモジュール220の出力であり得る。NLUモジュール220は、テキスト/音声入力を、事前定義された分類法のメンバーに分類し得、たとえば、入力「ベートーベンの第5番をプレイしてください」の場合、NLUモジュール220は、その入力を、意図[IN:play_music]を有するものとして分類し得る。特定の実施形態では、ドメインは、概念的に、意図のセットのための名前空間、たとえば、音楽であり得る。スロットは、基本的な意味論的エンティティを表す、ユーザ入力を伴う名前付きサブストリングであり得る。たとえば、「ピザ」のためのスロットは[SL:dish]であり得る。特定の実施形態では、有効なまたは予想される名前付きスロットのセットは、分類された意図を条件とし得る。限定としてではなく一例として、[IN:play_music]の場合、スロットは[SL:song_name]であり得る。意味論的情報アグリゲータ230は、ソーシャルグラフ、知識グラフ、および概念グラフから情報をさらに抽出し、ユーザコンテキストエンジン225からユーザのプロファイルを取り出し得る。意味論的情報アグリゲータ230は、さらに、どの情報を集約すべきかを決定すること、ユーザ入力のnグラムにアノテーションを付けること、集約された情報に基づいて信頼性スコアでnグラムをランク付けすること、ランク付けされたnグラムを、ユーザ入力を理解するためにNLUモジュール220によって使用され得る特徴に構築することによって、これらの異なるソースからの情報を処理し得る。意味論的情報を集約することに関するより多くの情報が、参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967342号において見つけられ得る。ユーザコンテキストエンジン225および意味論的情報アグリゲータ230の出力に基づいて、NLUモジュール220は、個人化されたおよびコンテキストアウェア様式で、ユーザ入力からのドメイン、意図、および1つまたは複数のスロットを識別し得る。限定としてではなく一例として、ユーザ入力は「スターバックスへの行き方を教えてください」を含み得る。NLUモジュール220は、ユーザの個人情報および関連付けられたコンテキスト情報に基づいて、ユーザが行くことを希望する特定のスターバックスを識別し得る。特定の実施形態では、NLUモジュール220は、言語の辞典と、センテンスを内部表現に区分するためのパーサおよび文法ルールとを含み得る。NLUモジュール220は、ユーザ入力を理解するための語用論(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号において見つけられ得る。
【0063】
特定の実施形態では、NLUモジュール220からの識別されたドメイン、意図、および1つまたは複数のスロットは、ダイアログエンジン235に送られ得る。特定の実施形態では、ダイアログエンジン235は、ユーザと補助xbot215との間の会話のダイアログ状態およびフローを管理し得る。ダイアログエンジン235は、さらに、ユーザと補助xbot215との間の前の会話を記憶し得る。特定の実施形態では、ダイアログエンジン235は、1つまたは複数のスロットに関連付けられたエンティティを解析するためのエンティティ解析モジュール240と通信し得、エンティティ解析モジュール240は、ユーザと補助xbot215との間の会話のフローをフォワーディングするためにダイアログエンジン235をサポートする。特定の実施形態では、エンティティ解析モジュール240は、エンティティを解析するとき、ソーシャルグラフ、知識グラフ、および概念グラフにアクセスし得る。エンティティは、たとえば、一意のユーザまたは概念を含み得、それらの各々は、一意の識別子(ID)を有し得る。限定としてではなく一例として、知識グラフは、複数のエンティティを含み得る。各エンティティは、1つまたは複数の属性値に関連付けられた単一のレコードを含み得る。特定のレコードは、一意のエンティティ識別子に関連付けられ得る。各レコードは、エンティティの属性について多様な値を有し得る。各属性値は、信頼性確率に関連付けられ得る。属性値についての信頼性確率は、所与の属性について値が正確である確率を表す。各属性値は、意味論的重みにも関連付けられ得る。属性値についての意味論的重みは、すべての利用可能な情報を考慮して、所与の属性について値が意味論的にどのくらい適切であるかを表し得る。たとえば、知識グラフは、映画「オデッセイ(The Martian)」(2015)のエンティティを含み得、このエンティティは、知識グラフのための単一の一意のレコードを生成するために、複数のコンテンツソース(たとえば、Facebook、Wikipedia、映画のレビューソース、メディアデータベース、およびエンターテインメントコンテンツソース)から抽出され、次いで、重複排除され、解析され、融合された情報を含む。そのエンティティは、映画「オデッセイ」(2015)のジャンルを指示する空間属性値に関連付けられ得る。知識グラフに関するより多くの情報が、その各々が参照により組み込まれる、2018年7月27日に出願された米国特許出願第16/048049号、および2018年7月27日に出願された米国特許出願第16/048101号において見つけられ得る。エンティティ解析モジュール240は、さらに、ユーザ入力に関連付けられたユーザのユーザプロファイルをユーザコンテキストエンジン225に要求し得る。特定の実施形態では、エンティティ解析モジュール240は、エンティティを解析することがプライバシーポリシーに違反しないことを保証するために、プライバシー検査モジュール245と通信し得る。特定の実施形態では、プライバシー検査モジュール245は、プライバシーポリシーを施行するために、許可/プライバシーサーバを使用し得る。限定としてではなく一例として、解析されるべきエンティティは、自分の識別情報がオンラインソーシャルネットワーク上で検索可能であるべきでないことを、自分のプライバシー設定において指定する別のユーザであり得、したがって、エンティティ解析モジュール240は、要求に応答する、そのユーザの識別子を返さないことがある。ソーシャルグラフ、知識グラフ、概念グラフ、およびユーザプロファイルから取得された情報に基づいて、および適用可能なプライバシーポリシーを条件として、エンティティ解析モジュール240は、したがって、個人化されたおよびコンテキストアウェア様式で、ユーザ入力に関連付けられたエンティティを正確に解析し得る。特定の実施形態では、解析されたエンティティの各々は、ソーシャルネットワーキングシステム160によってホストされる1つまたは複数の識別子に関連付けられ得る。限定としてではなく一例として、識別子は、一意のユーザ識別子(ID)を含み得る。特定の実施形態では、解析されたエンティティの各々は、信頼性スコアにも関連付けられ得る。エンティティを解析することに関するより多くの情報が、その各々が参照により組み込まれる、2018年7月27日に出願された米国特許出願第16/048049号、および2018年7月27日に出願された米国特許出願第16/048072号において見つけられ得る。
【0064】
特定の実施形態では、ダイアログエンジン235は、識別された意図およびドメイン、ならびに解析されたエンティティに基づいて、異なるエージェントと通信し得る。特定の実施形態では、エージェントは、1つのドメインのための複数のコンテンツプロバイダにわたるブローカーとして働く実装形態であり得る。コンテンツプロバイダは、意図に関連付けられたアクションを行うこと、または意図に関連付けられたタスクを完了することを担当するエンティティであり得る。限定としてではなく一例として、複数のデバイス固有の実装形態(たとえば、クライアントシステム130またはクライアントシステム130上のメッセージングアプリケーションのためのリアルタイム呼)が、単一のエージェントによって内部でハンドリングされ得る。代替的に、これらのデバイス固有の実装形態は、複数のドメインに関連付けられた複数のエージェントによってハンドリングされ得る。特定の実施形態では、エージェントは、ファーストパーティエージェント250とサードパーティエージェント255とを含み得る。特定の実施形態では、ファーストパーティエージェント250は、補助システム140によってアクセス可能および制御可能である内部エージェント(たとえば、オンラインソーシャルネットワーク(Messenger、Instagram)によって提供されるサービスに関連付けられたエージェント)を含み得る。特定の実施形態では、サードパーティエージェント255は、補助システム140が制御を有しない外部エージェント(たとえば、音楽ストリームエージェント(Spotify)、チケットセールスエージェント(Ticketmaster))を含み得る。ファーストパーティエージェント250は、ソーシャルネットワーキングシステム160によってホストされるコンテンツオブジェクトおよび/またはサービスを提供するファーストパーティプロバイダ260に関連付けられ得る。サードパーティエージェント255は、サードパーティシステム170によってホストされるコンテンツオブジェクトおよび/またはサービスを提供するサードパーティプロバイダ265に関連付けられ得る。
【0065】
特定の実施形態では、ダイアログエンジン235からファーストパーティエージェント250への通信は、ファーストパーティプロバイダ260によって提供される特定のコンテンツオブジェクトおよび/またはサービスを要求することを含み得る。その結果、ファーストパーティエージェント250は、要求されたコンテンツオブジェクトをファーストパーティプロバイダ260から取り出し、および/または要求されたサービスを実施するようにファーストパーティプロバイダ260に指令するタスクを実行し得る。特定の実施形態では、ダイアログエンジン235からサードパーティエージェント255への通信は、サードパーティプロバイダ265によって提供される特定のコンテンツオブジェクトおよび/またはサービスを要求することを含み得る。その結果、サードパーティエージェント255は、要求されたコンテンツオブジェクトをサードパーティプロバイダ265から取り出し、および/または要求されたサービスを実施するようにサードパーティプロバイダ265に指令するタスクを実行し得る。サードパーティエージェント255は、サードパーティプロバイダ265と対話する前に、プライバシー違反がないことを保証するために、プライバシー検査モジュール245にアクセスし得る。限定としてではなく一例として、ユーザ入力に関連付けられたユーザは、自分のプロファイル情報が、いかなるサードパーティコンテンツプロバイダにも見えないことを、自分のプライバシー設定において指定し得る。したがって、ユーザ入力に関連付けられたコンテンツオブジェクトをサードパーティプロバイダ265から取り出すとき、サードパーティエージェント255は、どのユーザがコンテンツオブジェクトを要求しているかをサードパーティプロバイダ265に明らかにすることなしに、取出しを完了し得る。
【0066】
特定の実施形態では、ファーストパーティエージェント250またはサードパーティエージェント255の各々は、特定のドメインのために指定され得る。限定としてではなく一例として、ドメインは、気象、輸送、音楽などを含み得る。特定の実施形態では、補助システム140は、ユーザ入力に応答するために複数のエージェントを共同的に使用し得る。限定としてではなく一例として、ユーザ入力は「次の会議に私を案内してください」を含み得る。補助システム140は、次の会議のロケーションを取り出すためにカレンダーエージェントを使用し得る。補助システム140は、次いで、ユーザを次の会議に案内するためにナビゲーションエージェントを使用し得る。
【0067】
特定の実施形態では、ファーストパーティエージェント250またはサードパーティエージェント255の各々は、個人化されたおよびコンテキストアウェア様式でタスクを実行するために、ユーザコンテキストエンジン225からユーザプロファイルを取り出し得る。限定としてではなく一例として、ユーザ入力は「空港までの乗り物を予約してください」を含み得る。輸送エージェントは、乗り物を予約するタスクを実行し得る。輸送エージェントは、乗り物を予約する前に、ユーザコンテキストエンジン225からユーザのユーザプロファイルを取り出し得る。たとえば、ユーザプロファイルは、ユーザがタクシーを選好することを指示し得、したがって、輸送エージェントは、ユーザのためにタクシーを予約し得る。別の例として、ユーザプロファイルに関連付けられたコンテキスト情報は、ユーザが急いでいることを指示し得、したがって、輸送エージェントは、タクシー会社よりもライドシェアリングサービス(たとえば、Uber、Lyft)から車を得るほうが速いことがあるので、ライドシェアリングサービスからの乗り物をユーザのために予約し得る。特定の実施形態では、ファーストパーティエージェント250またはサードパーティエージェント255の各々は、タスクを実行するとき、他のファクタを考慮に入れ得る。限定としてではなく一例として、他のファクタは、価格、レーティング、効率、オンラインソーシャルネットワークとのパートナーシップなどを含み得る。
【0068】
特定の実施形態では、ダイアログエンジン235は、会話理解コンポーザ(CUコンポーザ:conversational understanding composer)270と通信し得る。ダイアログエンジン235は、要求されたコンテンツオブジェクトおよび/または要求されたサービスのステータスをCUコンポーザ270に送り得る。特定の実施形態では、ダイアログエンジン235は、要求されたコンテンツオブジェクトおよび/または要求されたサービスのステータスを、<k,c,u,d>タプルとして送り得、ここで、kは知識ソースを指示し、cは通信目標を指示し、uはユーザモデルを指示し、dは談話モデルを指示する。特定の実施形態では、CUコンポーザ270は、自然言語生成器(NLG)271と、ユーザインターフェース(UI)ペイロード生成器272とを含み得る。自然言語生成器271は、ダイアログエンジン235の出力に基づいて、通信コンテンツを生成し得る。特定の実施形態では、NLG271は、コンテンツ決定構成要素と、センテンスプランナと、表層実現(surface realization)構成要素とを含み得る。コンテンツ決定構成要素は、知識ソース、通信目標、およびユーザの予想に基づいて、通信コンテンツを決定し得る。限定としてではなく一例として、決定することは、記述論理に基づき得る。記述論理は、たとえば、(ドメインにおけるオブジェクトを表す)個体、(個体のセットを記述する)概念、および(個体または概念間の2項関係を表す)役割である、3つの基本観念を含み得る。記述論理は、自然言語生成器271が原子的なものから複雑な概念/役割を組み立てることを可能にする、コンストラクタのセットによって特徴づけられ得る。特定の実施形態では、コンテンツ決定構成要素は、通信コンテンツを決定するために、以下のタスクを実施し得る。第1のタスクは、自然言語生成器271への入力が概念にトランスレートされ得る、トランスレーションタスクを含み得る。第2のタスクは、関連する概念が、ユーザモデルに基づいて、トランスレーションタスクから生じたものの中から選択され得る、選択タスクを含み得る。第3のタスクは、選択された概念の一貫性(coherence)が検証され得る、検証タスクを含み得る。第4のタスクは、検証された概念が、自然言語生成器271によって処理され得る実行ファイルとしてインスタンス化され得る、インスタンス化タスクを含み得る。センテンスプランナは、通信コンテンツを人間が理解できるものにするために、通信コンテンツの編成を決定し得る。表層実現構成要素は、使用すべき固有ワード、センテンスのシーケンス、および通信コンテンツのスタイルを決定し得る。UIペイロード生成器272は、ユーザに提示されるべき通信コンテンツの選好されるモダリティを決定し得る。特定の実施形態では、CUコンポーザ270は、通信コンテンツの生成がプライバシーポリシーに従うことを確認するために、プライバシー検査モジュール245と通信し得る。特定の実施形態では、CUコンポーザ270は、通信コンテンツを生成することと、通信コンテンツのモダリティを決定することとを行うとき、ユーザコンテキストエンジン225からユーザプロファイルを取り出し得る。その結果、通信コンテンツは、ユーザにとって、より自然で、個人化され、コンテキストアウェアになり得る。限定としてではなく一例として、ユーザプロファイルは、ユーザが会話において短いセンテンスを好むことを指示し得、したがって、生成された通信コンテンツは、短いセンテンスに基づき得る。限定としてではなく別の例として、ユーザプロファイルに関連付けられたコンテキスト情報は、ユーザが、オーディオ信号のみを出力するデバイスを使用していることを指示し得、したがって、UIペイロード生成器272は、通信コンテンツのモダリティをオーディオとして決定し得る。自然言語生成に関するより多くの情報が、その各々が参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967279号、および2018年4月30日に出願された米国特許出願第15/966455号において見つけられ得る。
【0069】
特定の実施形態では、CUコンポーザ270は、生成された通信コンテンツを補助xbot215に送り得る。特定の実施形態では、補助xbot215は、通信コンテンツをメッセージングプラットフォーム205に送り得る。メッセージングプラットフォーム205は、さらに、通信コンテンツを、補助アプリケーション136を介してクライアントシステム130に送り得る。代替実施形態では、補助xbot215は、通信コンテンツをテキスト音声(TTS:text-to-speech)モジュール275に送り得る。TTSモジュール275は、通信コンテンツをオーディオクリップにコンバートし得る。TTSモジュール275は、さらに、オーディオクリップを、補助アプリケーション136を介してクライアントシステム130に送り得る。
【0070】
特定の実施形態では、補助xbot215は、ユーザ入力を受信することなしに、プロアクティブ推論層280と対話し得る。プロアクティブ推論層280は、ユーザコンテキストエンジン225から取り出されたユーザプロファイルに基づいて、ユーザ興味および選好を推論し得る。特定の実施形態では、プロアクティブ推論層280は、さらに、推論に関してプロアクティブエージェント285と通信し得る。プロアクティブエージェント285は、推論に基づいてプロアクティブタスクを実行し得る。限定としてではなく一例として、プロアクティブタスクは、ユーザに、コンテンツオブジェクトを送ること、またはサービスを提供することを含み得る。特定の実施形態では、各プロアクティブタスクは、アジェンダアイテムに関連付けられ得る。アジェンダアイテムは、毎日のダイジェストなど、繰返しアイテムを含み得る。アジェンダアイテムは、ワンタイムアイテムをも含み得る。特定の実施形態では、プロアクティブエージェント285は、プロアクティブタスクを実行するとき、ユーザコンテキストエンジン225からユーザプロファイルを取り出し得る。したがって、プロアクティブエージェント285は、個人化されたおよびコンテキストアウェア様式で、プロアクティブタスクを実行し得る。限定としてではなく一例として、プロアクティブ推論層は、ユーザがバンドMaroon 5を好むと推論し得、プロアクティブエージェント285は、ユーザに対するMaroon 5の新しい歌/アルバムの推奨を生成し得る。
【0071】
特定の実施形態では、プロアクティブエージェント285は、ユーザプロファイルに基づいて、プロアクティブタスクに関連付けられた候補エンティティを生成し得る。生成は、構造化されたデータストアから候補エンティティを取り出すための決定性フィルタを使用する、簡単なバックエンドクエリに基づき得る。生成は、代替的に、ユーザプロファイル、エンティティ属性、およびユーザとエンティティとの間の関連性に基づいてトレーニングされた機械学習モデルに基づき得る。限定としてではなく一例として、機械学習モデルは、サポートベクターマシン(SVM)に基づき得る。限定としてではなく別の例として、機械学習モデルは、回帰モデルに基づき得る。限定としてではなく別の例として、機械学習モデルは、深層畳み込みニューラルネットワーク(DCNN)に基づき得る。特定の実施形態では、プロアクティブエージェント285はまた、生成された候補エンティティを、ユーザプロファイルおよびその候補エンティティに関連付けられたコンテンツに基づいて、ランク付けし得る。ランキングは、ユーザの興味と候補エンティティとの間の類似度に基づき得る。限定としてではなく一例として、補助システム140は、ユーザの興味を表す特徴ベクトルおよび候補エンティティを表す特徴ベクトルを生成し得る。補助システム140は、次いで、ユーザの興味を表す特徴ベクトルと候補エンティティを表す特徴ベクトルとの間の(たとえば、コサイン類似度に基づく)類似度スコアを計算し得る。ランキングは、代替的に、ユーザフィードバックデータに基づいてトレーニングされたランキングモデルに基づき得る。
【0072】
特定の実施形態では、プロアクティブタスクは、候補エンティティをユーザに推奨することを含み得る。プロアクティブエージェント285は、推奨をスケジュールし、それにより、推奨時間を、推奨される候補エンティティに関連付け得る。推奨される候補エンティティは、優先度および満了時間にも関連付けられ得る。特定の実施形態では、推奨される候補エンティティは、プロアクティブスケジューラに送られ得る。プロアクティブスケジューラは、タスクに関連付けられた優先度および他の関連するファクタ(たとえば、推奨される候補エンティティのクリックおよびインプレッション(impression))に基づいて、推奨される候補エンティティをユーザに送るための実際の時間を決定し得る。特定の実施形態では、プロアクティブスケジューラは、次いで、決定された実際の時間で、推奨される候補エンティティを非同期ティア(tier)に送り得る。非同期ティアは、推奨される候補エンティティをジョブとして一時的に記憶し得る。特定の実施形態では、非同期ティアは、実行のための決定された実際の時間においてダイアログエンジン235にジョブを送り得る。代替実施形態では、非同期ティアは、他の表層(たとえば、ソーシャルネットワーキングシステム160に関連付けられた他の通知サービス)にジョブを送ることによってジョブを実行し得る。特定の実施形態では、ダイアログエンジン235は、ユーザに関連付けられたダイアログ意図、状態、および履歴を識別し得る。ダイアログ意図に基づいて、ダイアログエンジン235は、クライアントシステム130に送るために、推奨される候補エンティティの中からいくつかの候補エンティティを選択し得る。特定の実施形態では、ダイアログ状態および履歴は、ユーザが補助xbot215との進行中の会話に関与しているかどうかを指示し得る。ユーザが進行中の会話に関与しており、推奨のタスクの優先度が低い場合、ダイアログエンジン235は、選択された候補エンティティをクライアントシステム130に送るための時間を再スケジュールするために、プロアクティブスケジューラと通信し得る。ユーザが進行中の会話に関与しており、推奨のタスクの優先度が高い場合、ダイアログエンジン235は、選択された候補エンティティが提示され得る、ユーザとの新しいダイアログセッションを始動し得る。その結果、進行中の会話の妨害が防がれ得る。選択された候補エンティティを送ることがユーザにとって妨害的でないと決定されたとき、ダイアログエンジン235は、ユーザのプライバシー設定を条件として、選択された候補エンティティを含む個人化されたおよびコンテキストアウェア通信コンテンツを生成するために、選択された候補エンティティをCUコンポーザ270に送り得る。特定の実施形態では、CUコンポーザ270は、通信コンテンツを補助xbot215に送り得、補助xbot215は、次いで、通信コンテンツを、メッセージングプラットフォーム205またはTTSモジュール275を介してクライアントシステム130に送り得る。ユーザをプロアクティブに補助することに関するより多くの情報が、その各々が参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967193号、および2018年7月16日に出願された米国特許出願第16/036827号において見つけられ得る。
【0073】
特定の実施形態では、補助xbot215は、ユーザ入力に応答してプロアクティブエージェント285と通信し得る。限定としてではなく一例として、ユーザは、リマインダをセットアップするように補助xbot215に依頼し得る。補助xbot215は、そのようなリマインダをセットアップするようにプロアクティブエージェント285に要求し得、プロアクティブエージェント285は、後でユーザにリマインドするタスクをプロアクティブに実行し得る。
【0074】
特定の実施形態では、補助システム140は、サマライザ(summarizer)290を備え得る。サマライザ290は、カスタマイズされたニュースフィード要約をユーザに提供し得る。特定の実施形態では、サマライザ290は、複数のメタエージェントを含み得る。複数のメタエージェントは、ニュースフィード要約を生成するために、ファーストパーティエージェント250、サードパーティエージェント255、またはプロアクティブエージェント285を使用し得る。特定の実施形態では、サマライザ290は、プロアクティブ推論層280から、ユーザ興味および選好を取り出し得る。サマライザ290は、次いで、エンティティ解析モジュール240から、ユーザ興味および選好に関連付けられたエンティティを取り出し得る。サマライザ290は、さらに、ユーザコンテキストエンジン225からユーザプロファイルを取り出し得る。プロアクティブ推論層280、エンティティ解析モジュール240、およびユーザコンテキストエンジン225からの情報に基づいて、サマライザ290は、ユーザのために、個人化されたおよびコンテキストアウェア要約を生成し得る。特定の実施形態では、サマライザ290は、要約をCUコンポーザ270に送り得る。CUコンポーザ270は、要約を処理し、処理結果を補助xbot215に送り得る。補助xbot215は、次いで、処理された要約を、メッセージングプラットフォーム205またはTTSモジュール275を介してクライアントシステム130に送り得る。要約に関するより多くの情報が、参照により組み込まれる、2018年4月30日に出願された米国特許出願第15/967290号において見つけられ得る。
【0075】
図3は、補助システム140によってユーザ要求に応答する例示的な図のフローを示す。特定の実施形態では、補助xbot215は、ユーザ要求を受信すると、要求マネージャ305にアクセスし得る。要求マネージャ305は、コンテキスト抽出器306と会話理解オブジェクト生成器(CUオブジェクト生成器)307とを含み得る。コンテキスト抽出器306は、ユーザ要求に関連付けられたコンテキスト情報を抽出し得る。コンテキスト抽出器306はまた、クライアントシステム130上で実行している補助アプリケーション136に基づいて、コンテキスト情報を更新し得る。限定としてではなく一例として、コンテキスト情報の更新は、コンテンツアイテムがクライアントシステム130上に表示されることを含み得る。限定としてではなく別の例として、コンテキスト情報の更新は、アラームがクライアントシステム130上でセットされたかどうかを含み得る。限定としてではなく別の例として、コンテキスト情報の更新は、歌がクライアントシステム130上でプレイしているかどうかを含み得る。CUオブジェクト生成器307は、ユーザ要求に関連する特定のコンテンツオブジェクトを生成し得る。コンテンツオブジェクトは、補助システム140のすべてのモジュールと共有され得る、ユーザ要求に関連付けられたダイアログセッションデータおよび特徴を含み得る。特定の実施形態では、要求マネージャ305は、コンテキスト情報および生成されたコンテンツオブジェクトを、補助システム140において実装される特定のデータストアであるデータストア310に記憶し得る。
【0076】
特定の実施形態では、要求マネージャ305は、生成されたコンテンツオブジェクトをNLUモジュール220に送り得る。NLUモジュール220は、コンテンツオブジェクトを処理するために複数のステップを実施し得る。ステップ221において、NLUモジュール220は、コンテンツオブジェクトについてのホワイトリストを生成し得る。特定の実施形態では、ホワイトリストは、ユーザ要求に一致する解釈データを含み得る。ステップ222において、NLUモジュール220は、ホワイトリストに基づいて特徴化(featurization)を実施し得る。
ステップ223において、NLUモジュール220は、ユーザ要求を、事前定義されたドメインに分類するために、特徴化から生じた特徴に基づいて、ユーザ要求に関するドメイン分類/選択を実施し得る。ドメイン分類/選択の結果は、2つの関係するプロシージャに基づいて、さらに処理され得る。ステップ224aにおいて、NLUモジュール220は、意図分類器を使用して、ドメイン分類/選択の結果を処理し得る。意図分類器は、ユーザ要求に関連付けられたユーザの意図を決定し得る。特定の実施形態では、所与のドメインにおいて最も可能性がある意図を決定するために、各ドメインについて1つの意図分類器があり得る。限定としてではなく一例として、意図分類器は、ドメイン分類/選択の結果を入力としてとり、その入力が特定の事前定義された意図に関連付けられる確率を計算し得る、機械学習モデルに基づき得る。ステップ224bにおいて、NLUモジュールは、メタ意図分類器を使用して、ドメイン分類/選択の結果を処理し得る。メタ意図分類器は、ユーザの意図について説明するカテゴリーを決定し得る。特定の実施形態では、複数のドメインに共通である意図は、メタ意図分類器によって処理され得る。限定としてではなく一例として、メタ意図分類器は、ドメイン分類/選択の結果を入力としてとり、その入力が特定の事前定義されたメタ意図に関連付けられる確率を計算し得る、機械学習モデルに基づき得る。ステップ225aにおいて、NLUモジュール220は、ユーザ要求に関連付けられた1つまたは複数のスロットにアノテーションを付けるために、スロットタガー(tagger)を使用し得る。特定の実施形態では、スロットタガーは、ユーザ要求のnグラムについての1つまたは複数のスロットにアノテーションを付け得る。ステップ225bにおいて、NLUモジュール220は、メタ意図分類器からの分類結果についての1つまたは複数のスロットにアノテーションを付けるために、メタスロットタガーを使用し得る。特定の実施形態では、メタスロットタガーは、アイテム(たとえば、第1の)、スロットのタイプ、スロットの値などへの参照など、一般スロットをタグ付けし得る。限定としてではなく一例として、ユーザ要求は「私の口座の500ドルを日本円に両替してください」を含み得る。意図分類器は、ユーザ要求を入力としてとり、その入力をベクトルに構築し得る。意図分類器は、次いで、ユーザ要求を表すベクトルと、異なる事前定義された意図を表すベクトルとの間のベクトル比較に基づいて、ユーザ要求が、異なる事前定義された意図に関連付けられる、確率を計算し得る。同様にして、スロットタガーは、ユーザ要求を入力としてとり、各ワードをベクトルに構築し得る。意図分類器は、次いで、ワードを表すベクトルと、異なる事前定義されたスロットを表すベクトルとの間のベクトル比較に基づいて、各ワードが、異なる事前定義されたスロットに関連付けられる、確率を計算し得る。ユーザの意図は「両替する」として分類され得る。ユーザ要求のスロットは、「500」と「ドル」と「口座」と「日本円」とを含み得る。ユーザのメタ意図は「金融サービス」として分類され得る。メタスロットは「金融」を含み得る。
【0077】
特定の実施形態では、NLUモジュール220は、意味論的情報アグリゲータ230から意味論的情報を抽出することによって、コンテンツオブジェクトのドメイン分類/選択を改善し得る。特定の実施形態では、意味論的情報アグリゲータ230は、以下のようにして意味論的情報を集約し得る。意味論的情報アグリゲータ230は、最初に、ユーザコンテキストエンジン225から情報を取り出し得る。特定の実施形態では、ユーザコンテキストエンジン225は、オフラインアグリゲータ226とオンライン推論サービス227とを含み得る。オフラインアグリゲータ226は、前の時間ウィンドウから収集された、ユーザに関連付けられた複数のデータを処理し得る。限定としてではなく一例として、データは、前の90日のウィンドウから収集された、ニュースフィード投稿/コメント、ニュースフィード投稿/コメントとの対話、Instagram投稿/コメント、検索履歴などを含み得る。処理結果は、ユーザプロファイルの一部として、ユーザコンテキストエンジン225に記憶され得る。オンライン推論サービス227は、現在時間において補助システム140によって受信された、ユーザに関連付けられた会話データを分析し得る。分析結果は、同じくユーザプロファイルの一部として、ユーザコンテキストエンジン225に記憶され得る。特定の実施形態では、オフラインアグリゲータ226とオンライン推論サービス227の両方は、複数のデータから個人化特徴を抽出し得る。抽出された個人化特徴は、ユーザ入力をより良く理解するために、補助システム140の他のモジュールによって使用され得る。特定の実施形態では、意味論的情報アグリゲータ230は、次いで、以下のステップにおいて、ユーザコンテキストエンジン225からの取り出された情報、すなわち、ユーザプロファイルを処理し得る。ステップ231において、意味論的情報アグリゲータ230は、自然言語処理(NLP)に基づいて、ユーザコンテキストエンジン225からの取り出された情報を処理し得る。特定の実施形態では、意味論的情報アグリゲータ230は、テキスト正規化によってテキストをトークン化し、テキストからシンタックス特徴を抽出し、NLPに基づいてテキストから意味論的特徴を抽出し得る。意味論的情報アグリゲータ230は、ユーザと補助システム140との間のダイアログ履歴からアクセスされるコンテキスト情報から、特徴をさらに抽出し得る。意味論的情報アグリゲータ230は、コンテキスト情報に基づいて、グローバルワード埋込み、ドメイン固有埋込み、および/または動的埋込みをさらに行い得る。ステップ232において、処理結果は、エンティティタガーによってエンティティでアノテーションを付けられ得る。アノテーションに基づいて、意味論的情報アグリゲータ230は、ステップ233において、取り出された情報についての辞書を生成し得る。特定の実施形態では、辞書は、オフラインで動的に更新され得るグローバル辞書特徴を含み得る。ステップ234において、意味論的情報アグリゲータ230は、エンティティタガーによってタグ付けされたエンティティをランク付けし得る。特定の実施形態では、意味論的情報アグリゲータ230は、ユーザコンテキストエンジン225からの取り出された情報に関連するオントロジデータを抽出するために、ソーシャルグラフ、知識グラフ、および概念グラフを含む、異なるグラフ330と通信し得る。特定の実施形態では、意味論的情報アグリゲータ230は、ユーザプロファイルと、ランク付けされたエンティティと、グラフ330からの情報とを集約し得る。意味論的情報アグリゲータ230は、次いで、ドメイン分類/選択を可能にするために、集約された情報をNLUモジュール220に送り得る。
【0078】
特定の実施形態では、NLUモジュール220の出力は、ユーザ要求に関連付けられたコンテンツオブジェクトの参照を解釈するために、共参照(co-reference)モジュール315に送られ得る。特定の実施形態では、共参照モジュール315は、ユーザ要求が指すアイテムを識別するために使用され得る。共参照モジュール315は、参照作成316と参照解析317とを含み得る。特定の実施形態では、参照作成316は、NLUモジュール220によって決定されたエンティティについての参照を作成し得る。参照解析317は、これらの参照を正確に解析し得る。限定としてではなく一例として、ユーザ要求は「最寄のWalmartを見つけて、私をそこに案内してください」を含み得る。共参照モジュール315は、「そこ」を「最寄のWalmart」として解釈し得る。特定の実施形態では、共参照モジュール315は、改善された正確さで参照を解釈するのに必要なとき、ユーザコンテキストエンジン225およびダイアログエンジン235にアクセスし得る。
【0079】
特定の実施形態では、識別されたドメイン、意図、メタ意図、スロット、およびメタスロットは、解析された参照とともに、関連するエンティティを解析するためにエンティティ解析モジュール240に送られ得る。エンティティ解析モジュール240は、一般およびドメイン固有エンティティ解析を実行し得る。特定の実施形態では、エンティティ解析モジュール240は、ドメインエンティティ解析241と一般エンティティ解析242とを含み得る。ドメインエンティティ解析241は、スロットおよびメタスロットを、異なるドメインにカテゴリー分類することによって、エンティティを解析し得る。特定の実施形態では、エンティティは、グラフ330から抽出されたオントロジデータに基づいて解析され得る。オントロジデータは、異なるスロット/メタスロットおよびドメイン間の構造関係を含み得る。オントロジは、スロット/メタスロットがどのように、グループ化され、より高いレベルがドメインを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をも含み得る。一般エンティティ解析242は、スロットおよびメタスロットを、異なる一般トピックにカテゴリー分類することによって、エンティティを解析し得る。特定の実施形態では、解析することは、グラフ330から抽出されたオントロジデータにも基づき得る。オントロジデータは、異なるスロット/メタスロットおよび一般トピック間の構造関係を含み得る。オントロジは、スロット/メタスロットがどのように、グループ化され、より高いレベルがトピックを含む階層内で関係付けられ、類似度および差異に従って再分割され得るかという情報をも含み得る。限定としてではなく一例として、Tesla車の利点の照会の入力に応答して、一般エンティティ解析242は、Tesla車を車両として解析し得、ドメインエンティティ解析241は、Tesla車を電気自動車として解析し得る。
【0080】
特定の実施形態では、エンティティ解析モジュール240の出力は、ユーザとの会話のフローをフォワーディングするために、ダイアログエンジン235に送られ得る。ダイアログエンジン235は、ダイアログ意図解析236と、ダイアログ状態更新/ランカー(ranker)237とを含み得る。特定の実施形態では、ダイアログ意図解析236は、ユーザと補助システム140との間のダイアログ履歴に基づいて、現在のダイアログセッションに関連付けられたユーザ意図を解析し得る。ダイアログ意図解析236は、NLUモジュール220によって決定された意図を、異なるダイアログ意図にマッピングし得る。ダイアログ意図解析236は、さらに、NLUモジュール220、エンティティ解析モジュール240からの信号と、ユーザと補助システム140との間のダイアログ履歴とに基づいて、ダイアログ意図をランク付けし得る。特定の実施形態では、ダイアログ状態更新/ランカー237は、現在のダイアログセッションのダイアログ状態を更新/ランク付けし得る。限定としてではなく一例として、ダイアログ状態更新/ランカー237は、ダイアログセッションが終了した場合、ダイアログ状態を「完了した」として更新し得る。限定としてではなく別の例として、ダイアログ状態更新/ランカー237は、ダイアログ状態に関連付けられた優先度に基づいて、ダイアログ状態をランク付けし得る。
【0081】
特定の実施形態では、ダイアログエンジン235は、ダイアログ意図および関連付けられたコンテンツオブジェクトについて、タスク完了モジュール335と通信し得る。特定の実施形態では、タスク完了モジュール335は、異なるダイアログ意図について、異なるダイアログ仮定をランク付けし得る。タスク完了モジュール335は、アクション選択構成要素336を含み得る。特定の実施形態では、ダイアログエンジン235は、さらに、ダイアログ状態に関してダイアログポリシー320に対して検査し得る。特定の実施形態では、ダイアログポリシー320は、エージェント340によるアクションの実行プランについて説明するデータ構造を含み得る。エージェント340は、アクションを完了するために、登録済みコンテンツプロバイダの中から選択し得る。データ構造は、意図および意図に関連付けられた1つまたは複数のスロットに基づいて、ダイアログエンジン235によってコンストラクトされ得る。ダイアログポリシー320は、論理演算子を通して互いに関係する複数の目標をさらに含み得る。特定の実施形態では、目標は、ダイアログポリシーの一部分の成果であり得、それは、ダイアログエンジン235によってコンストラクトされ得る。目標は、目標をパラメータ化する、1つまたは複数の名前付き引数をもつ識別子(たとえば、ストリング)によって表され得る。限定としてではなく一例として、その関連付けられた目標引数をもつ目標は、{confirm_artist,args:{artist:“Madonna”}}として表され得る。特定の実施形態では、ダイアログポリシーは、目標がツリーのリーフにマッピングされる、ツリー構造化された表現に基づき得る。特定の実施形態では、ダイアログエンジン235は、行うべき次のアクションを決定するために、ダイアログポリシー320を実行し得る。ダイアログポリシー320は、一般ポリシー321とドメイン固有ポリシー322とを含み得、それらの両方は、ダイアログ状態に基づいて、次のシステムアクションをどのように選択すべきかをガイドし得る。特定の実施形態では、タスク完了モジュール335は、次のシステムアクションのガイダンスを取得するために、ダイアログポリシー320と通信し得る。特定の実施形態では、アクション選択構成要素336は、したがって、ダイアログ意図、関連付けられたコンテンツオブジェクト、およびダイアログポリシー320からのガイダンスに基づいて、アクションを選択し得る。
【0082】
特定の実施形態では、タスク完了モジュール335の出力は、CUコンポーザ270に送られ得る。代替実施形態では、選択されたアクションは、1つまたは複数のエージェント340が関与することを必要とし得る。その結果、タスク完了モジュール335は、エージェント340に選択されたアクションを通知し得る。一方、ダイアログエンジン235は、ダイアログ状態を更新するようにとの命令を受信し得る。限定としてではなく一例として、更新は、エージェントの応答を待つことを含み得る。特定の実施形態では、CUコンポーザ270は、タスク完了モジュール335の出力に基づいて、NLG271を使用してユーザのための通信コンテンツを生成し得る。特定の実施形態では、NLG271は、自然言語出力を生成するために、異なる言語モデルおよび/または言語テンプレートを使用し得る。自然言語出力の生成は、アプリケーション固有であり得る。自然言語出力の生成はまた、各ユーザについて個人化され得る。CUコンポーザ270はまた、UIペイロード生成器272を使用して、生成された通信コンテンツのモダリティを決定し得る。生成された通信コンテンツは、ユーザ要求への応答と見なされ得るので、CUコンポーザ270は、さらに、応答ランカー273を使用して、生成された通信コンテンツをランク付けし得る。限定としてではなく一例として、ランキングは、応答の優先度を指示し得る。
【0083】
特定の実施形態では、CUコンポーザ270の出力は、応答マネージャ325に送られ得る。応答マネージャ325は、データストア310から取り出されたダイアログ状態326を記憶/更新することと、応答327を生成することとを含む、異なるタスクを実施し得る。特定の実施形態では、CUコンポーザ270の出力は、パラメータをもつ自然言語ストリング、音声、またはアクションのうちの1つまたは複数を含み得る。その結果、応答マネージャ325は、CUコンポーザ270の出力に基づいて、どのタスクを実施すべきかを決定し得る。特定の実施形態では、生成された応答および通信コンテンツは、補助xbot215に送られ得る。代替実施形態では、CUコンポーザ270の出力は、通信コンテンツの決定されたモダリティがオーディオである場合、TTSモジュール275にさらに送られ得る。TTSモジュール275によって生成された音声、および応答マネージャ325によって生成された応答は、次いで、補助xbot215に送られ得る。
【0084】
補助システムとのユーザ対話のための個人化されたジェスチャー認識
特定の実施形態では、補助システム140は、個人化されたジェスチャー分類モデルをトレーニングし得る。トレーニングは、複数の入力タプルを受信することであって、各々がジェスチャー入力と音声入力とを含む、複数の入力タプルを受信することと、自然言語理解(NLU)モジュール220によって、音声入力に基づいて複数の意図を決定することと、一般的なジェスチャー分類モデルにアクセスすることと、意図をそれらの各々のジェスチャー入力に関連付けることと、意図とジェスチャー入力との間の関連付けに、および一般的なジェスチャー分類モデルにも基づいて、個人化されたジェスチャー分類モデルをトレーニングすることとを含み得る。特定の実施形態では、一般的なジェスチャー分類モデルは、多数の標準ジェスチャーに関してクラウドソーシングによって生成され得る。しかしながら、一般的なジェスチャー分類モデルは、特に、ユーザが非標準ジェスチャーまたは一般に異なる意図のために使用されるジェスチャーを使用している場合、特定のユーザのジェスチャーの正しい意図を決定することができないことがある。したがって、個人化されたジェスチャー分類モデルのトレーニングは、一般的なジェスチャー分類モデルに加えて、音声とジェスチャーの両方を含むユーザ自身の入力からの有益な手がかりをさらに活用し得る。個人化されたジェスチャー分類モデルのトレーニングを補助するために、音声入力を別個に使用することのほかに、補助システム140は、代替的に、音声入力とジェスチャー入力とを一緒に利用することによって、個人化されたジェスチャー分類モデルをトレーニングし得る。個人化されたジェスチャー分類モデルがトレーニングされると、補助システム140は、それを使用して、将来においてユーザ自身のジェスチャーに対応するユーザの意図を決定し得る。本開示は、特定の様式で特定のシステムを介して特定のジェスチャー分類モデルをトレーニングすることについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なジェスチャー分類モデルをトレーニングすることについて説明することを企図する。
【0085】
図4は、例示的なジェスチャーを示す。特定の実施形態では、補助システム140は、データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスし得る。各入力タプルは、ジェスチャー入力と、対応する音声入力とを含み得る。ジェスチャー入力および音声入力は、たとえば、(図4に示されていない)補助システム140に関連付けられた補助デバイス、仮想現実(VR)ヘッドセットまたは拡張現実(AR)スマートグラスによって、キャプチャされ得る。限定としてではなく一例として、入力は、図4のAに示されているような「ノー」ジェスチャー(すなわち、ユーザは、自分の手を実質的に垂直位置に保持し、手のひらを向こう側に向け、指をすべて伸ばし、実質的にくっつけている)と、「ストップ」の音声入力とを含み得る。限定としてではなく別の例として、入力は、図4のBに示されているような「スワイプ」ジェスチャー(すなわち、ユーザの人さし指および中指が伸ばされ、手が左から右に弧を描いて動いている)と、「次」の音声入力とを含み得る。限定としてではなくまた別の例として、入力は、図4のCに示されているような「ピンチ」ジェスチャー(すなわち、ユーザの親指と人さし指とが、互いに対して伸ばした位置から互いのほうへ動いている)と、「ピックアップ」の音声入力とを含み得る。ジェスチャー入力および対応する音声入力のこれらの入力タプルは、クラウドソーシング(すなわち、一般的な母集団が、ジェスチャー入力および対応する音声入力を提供するように依頼された)または補助システム140との履歴ユーザ対話のうちの1つまたは複数に基づいて生成され得る。本開示は、特定の様式で特定のジェスチャーおよび音声入力にアクセスすることについて説明するが、本開示は、任意の好適な様式で任意の好適なジェスチャーおよび音声入力にアクセスすることを企図する。
【0086】
特定の実施形態では、補助システム140は、次いで、自然言語理解(NLU)モジュール220によって、複数の音声入力に対応する複数の意図を、それぞれ決定し得る。限定としてではなく一例として、NLUモジュール220は、上述の「ストップ」の音声入力の意図を、補助システム140によって実行されているタスクをストップすること、たとえば、音楽をプレイすることをストップすることとして、決定し得る。限定としてではなく別の例として、NLUモジュール220は、上述の「次」の音声入力の意図を、補助システム140によって提案される次のコンテンツオブジェクト、たとえば、次の画像を選定することとして、決定し得る。限定としてではなく別の例として、NLUモジュール220は、上述の「ピックアップ」の音声入力の意図を、VRゲームまたは部屋のARビューにおいてオブジェクトをピックアップすることとして、決定し得る。補助システム140は、次いで、複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成し得る。特徴表現は、あるアプリケーションに関係する計算タスク、たとえば、ジェスチャー認識を解決することに関連する情報であり得る。限定としてではなく一例として、ジェスチャーについての特徴表現は、畳み込みニューラルネットワーク、ジェスチャーに関連付けられた2D画像およびビデオからの形状およびテクスチャ特徴、またはジェスチャーに関連付けられた深度画像に基づいて、生成され得る。特定の実施形態では、補助システム140は、次いで、複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定し得る。補助システム140は、次いで、複数の意図を複数のジェスチャー識別子にそれぞれ関連付け得る。特定の実施形態では、補助システム140は、第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをさらにトレーニングし得る。
【0087】
図5は、ジェスチャー入力を含むユーザ入力を処理する例示的なワークフローを示す。ジェスチャー入力は、アイデアまたは意味を明示するための、身体の一部、特に手または頭の動きに基づく入力であり得る。ジェスチャー入力は、画像情報、ビデオ情報、動き情報、またはそれらの任意の組合せの形態であり得る。特定の実施形態では、補助システム140は、クライアントシステム130からユーザによるユーザ入力505を受信し得る。補助システム140は、ユーザ入力505を意図理解モジュール510に送り得る。意図理解モジュール510は、自然言語理解(NLU)モジュール220とジェスチャー分類モデル515とを含み得る。ジェスチャー分類モデル515は、ユーザによって実施されるジェスチャーの異なるカテゴリーを認識するようにオフラインでトレーニングされる機械学習モデルであり得る。限定としてではなく一例として、ジェスチャー分類モデル515は、畳み込みニューラルネットワーク、テンソルフロー、または隠れマルコフモデルのうちの1つまたは複数に基づき得る。ユーザ入力505に基づいて、意図理解モジュール510は、ユーザ入力505に関連付けられた意図520を決定するために、異なる構成要素を使用し得る。ユーザ入力505がテキスト入力または音声入力を含む場合、意図理解モジュール510は、意図520を決定するために、NLUモジュール220を使用し得る。ユーザ入力505がジェスチャー入力を含む場合、意図理解モジュール510は、意図520を決定するために、ジェスチャー分類モデル515を使用し得る。決定された意図520は、補助システム140がユーザの意図520を決定することにおいてどのくらい確信しているかを指示する信頼性スコアに関連付けられ得る。特定の実施形態では、信頼性スコアは、ユーザのテキスト入力または音声入力が、所与の意図520についての知られている入力にどのくらい厳密に一致するかに基づいて、決定され得る。限定としてではなく一例として、厳密さは、テキスト入力と、知られている入力(テキスト)との間のストリング類似度に基づき得る。補助システム140は、次いで、意図520を、その信頼性スコアとともに、ダイアログエンジン235に送り得る。信頼性スコアがしきい値スコアを上回る場合、ダイアログエンジン235は、意図520に対応する1つまたは複数のタスク525を決定し、それらを、タスク525を実行するためにファーストパーティエージェント250またはサードパーティエージェント255のいずれかに送り得る。実行結果530は、CUコンポーザ270に送られ得る。信頼性スコアがしきい値スコアを下回る場合、ダイアログエンジン235は、補助システム140が、より高い信頼性スコアをもつユーザの意図を決定するのを助け得る、ユーザのための1つまたは複数の提案される入力535を決定し得る。ダイアログエンジン235は、提案される入力535をCUコンポーザ270に送り得る。実行結果530または提案される入力535に基づいて、CUコンポーザ270は、応答540を生成し得る。応答540は、ジェスチャーのテキスト、画像、ビデオ、またはアニメーションのうちの1つまたは複数を含む、異なるモダリティにおけるものであり得る。CUコンポーザ270は、さらに、応答540をクライアントシステム130に送り得る。本開示は、特定の様式で特定のシステムを介してユーザ入力を処理することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なユーザ入力を処理することについて説明することを企図する。
【0088】
特定の実施形態では、個人化されたジェスチャー分類モデルのトレーニングは、一般的なジェスチャー分類モデルに基づき得る。補助システム140は、データストアから、一般的なユーザ母集団に対応する一般的なジェスチャー分類モデルにアクセスし得る。したがって、個人化されたジェスチャー分類モデルをトレーニングすることは、さらに、一般的なジェスチャー分類モデルに基づき得る。特定の実施形態では、一般的なユーザ母集団は、複数の第2のユーザに対応し得る。限定としてではなく一例として、第2のユーザは、一般的なユーザ母集団(たとえば、世界中の人々)または定義されたユーザ母集団(たとえば、米国の人々)からのものであり得る。特定の実施形態では、一般的なジェスチャー分類モデルは、一般的なユーザ母集団からの複数のジェスチャー入力に基づいてトレーニングされ得る。限定としてではなく一例として、複数のジェスチャー入力は、一般的な母集団のユーザによって実施される標準ジェスチャーを含み得る。その結果、ユーザがこれらの標準ジェスチャーのうちの1つを実施する場合、一般的なジェスチャー分類モデルは、それを認識し、その対応する意図520を決定することが可能であり得る。一般的なジェスチャー分類モデルは、個人化されたジェスチャー分類モデルのための基礎であり得、それは、ユーザのジェスチャーが、その対応する標準ジェスチャーに従って実施される場合、ユーザのジェスチャーを認識する潜在能力を有し得る。本開示は、特定の様式で特定の一般的なモデルについて説明するが、本開示は、任意の好適な様式で任意の好適な一般的なモデルについて説明することを企図する。
【0089】
特定の実施形態では、補助システム140は、最初に、受信されたジェスチャー入力およびその対応する意図520のカテゴリーを決定するために、一般的なジェスチャー分類モデルをデフォルトモデルとして使用し得る。補助システム140が意図520を首尾よく決定した場合、補助システム140は、対応するタスク525を実行し得る。補助システム140がユーザの意図520を決定することができない場合、補助システム140は、ユーザに、自分の意図520に関して、ジェスチャーを再び実施し、同時に補助システム140に話しかけるように、依頼し得る。その後、補助システム140は、ユーザの音声およびジェスチャーからトレーニングデータを同時に収集しながら、個人化されたジェスチャー分類モデルのトレーニングプロセスを開始し得る。本開示は、特定の様式で特定のシステムを介して特定のジェスチャー分類モデルを使用することについて説明するが、本開示は、任意の好適な様式で任意の好適なシステムを介して任意の好適なジェスチャー分類モデルを使用することについて説明することを企図する。
【0090】
特定の実施形態では、補助システム140は、以下のようにして、個人化されたジェスチャー分類モデルをトレーニングし得る。補助システムは、最初に、1つまたは複数の自動音声認識(ASR)モジュール210によって、複数の音声入力についての複数のテキスト入力を、それぞれ生成し得る。したがって、複数の音声入力に対応する複数の意図520をそれぞれ決定することは、各々の音声入力の複数のテキスト入力に基づき得る。特定の実施形態では、補助システムは、テキスト入力を分類して、対応する意図520を取得するために、自然言語理解(NLU)モジュール220を使用し得る。補助システム140は、次いで、1つまたは複数の機械学習モデルに基づいて、ジェスチャー入力について特徴表現を生成し得る。限定としてではなく一例として、ジェスチャー入力は、ジェスチャーを含んでいる画像、ビデオ、動きデータ、骨格データ、熱データなどを含み得る。特定の実施形態では、1つまたは複数の機械学習モデルは、ニューラルネットワークモデルまたは長短期記憶(LSTM)モデルのうちの1つまたは複数に基づき得る。補助システム140は、さらに、異なるジェスチャー識別子を、ジェスチャー入力に対応する特徴表現に割り当て得る。特定の実施形態では、補助システム140は、次いで、意図520をジェスチャー識別子に関連付け得る。複数の意図520とそれらの各々のジェスチャー識別子との間の関連付けは、個人化されたジェスチャー分類モデルをトレーニングするために使用され得る。ユーザの音声入力とジェスチャー入力の両方に基づいて、個人化されたジェスチャー分類モデルをトレーニングすることは、ユーザの意図520が音声入力から学習され得、そのような意図520とジェスチャー入力との間の関連付けが、個人化されたジェスチャー分類モデルのトレーニング中にさらなる利用のために生成され得るので、個人化されたジェスチャー分類モデルがユーザの個人ジェスチャーからユーザの意図520を識別することを可能にするという技術課題に対処するのに効果的なソリューションであり得る。特定の実施形態では、個人化されたジェスチャー分類モデルは、畳み込みニューラルネットワークまたはリカレントニューラルネットワークに基づき得る。同時発生(coincidence)の音声意図とジェスチャーとを繰返し観察することは、第1のユーザによって意図的に生成されたのか無意識に生成されたのかにかかわらず、ますます多くのトレーニングデータを生じ得る。一方、個人化されたジェスチャー分類モデルは、ますます多くのトレーニングデータが使用されるにつれて、徐々に最適化され得る。その結果、個人化されたジェスチャー分類モデルは、ユーザからの新しいジェスチャーを発見し、それらを意味(すなわち、意図520)に関連付け得る。音声入力とジェスチャー入力の両方に基づいて、個人化されたジェスチャー分類モデルをトレーニングすることは、特定のユーザについてのジェスチャー分類において、より効果的であり得る。限定としてではなく一例として、ユーザは、図4のAに示されているような「ノー」ジェスチャーを実施し得るが、意図520は、実際は「次」であり得、「次」は、通常、図4のBに示されているような「スワイプ」ジェスチャーに関連付けられる。標準ジェスチャー分類モデルを使用することは、それに応じて、間違った意図を決定し得る。対照的に、個人化されたジェスチャー分類モデルは、そのようなジェスチャーを実施するユーザの個人的なやり方に基づくデータを使用するので、個人化されたジェスチャー分類モデルは、ユーザが図4のAに示されているような「ノー」ジェスチャーを実施するとき、「次」という意図520を効果的に決定し得る。限定としてではなく別の例として、ユーザは、図4のBに示されているような「スワイプ」ジェスチャーを実施し得るが、意図520は「次」ではなく、実際は「ビデオを巻き戻す」であり得る。同様に、標準ジェスチャー分類モデルを使用することは、間違った意図を決定し得るが、個人化されたジェスチャー分類モデルは、ユーザが図4のBに示されているような「スワイプ」ジェスチャーを実施するとき、「ビデオを巻き戻す」という意図520を効果的に決定し得る。限定としてではなく別の例として、ユーザは、図4のCに示されているような「ピンチ」ジェスチャーを実施し得るが、意図520は「ピックアップ」ではなく、実際は「ズームアウト」であり得る。この場合も、標準ジェスチャー分類モデルを使用することは、間違った意図を決定し得るが、個人化されたジェスチャー分類モデルは、ユーザが図4のCに示されているような「ピンチ」ジェスチャーを実施するとき、「ズームアウト」という意図520を効果的に決定し得る。本開示は、特定の様式で特定のジェスチャー分類モデルをトレーニングすることについて説明するが、本開示は、任意の好適な様式で任意の好適なジェスチャー分類モデルをトレーニングすることについて説明することを企図する。
【0091】
特定の実施形態では、補助システムは、様々な情報を考慮することによって、ジェスチャー入力について特徴表現を生成し得る。特定の実施形態では、各ジェスチャー入力について各特徴表現を生成することは、ジェスチャー入力を1つまたは複数の構成要素に分割することと、ジェスチャー入力について1つまたは複数の構成要素を特徴表現にモデル化することとを含み得る。構成要素は、部分的なジェスチャーと見なされ得る。特定の実施形態では、各ジェスチャー入力について各特徴表現を生成することは、ジェスチャー入力に関連付けられた時間的情報を決定することと、ジェスチャー入力について時間的情報を特徴表現にモデル化することとを含み得る。限定としてではなく一例として、ユーザは、図4のAに示されているような「ノー」のジェスチャーを行う前に、自分の眼をぐるりと動かし(roll his/her eyes)得る。したがって、補助システム140は、拒否の意図520を決定するのを助けるために、特徴表現を生成するとき、「ノー」ジェスチャーの前に起こった眼をぐるりと動かすこと(eye rolling)の時間的情報を考慮に入れ得る。ジェスチャー入力の構成要素とジェスチャー入力に関連付けられた時間的情報とを特徴表現にモデル化することは、ジェスチャー入力を構成要素に分割することが、ジェスチャーを別のものと区別するのを助け得、時間的情報が、ジェスチャー分類のために有用であり得るユーザの意図520を指示するコンテキスト情報を伝達し得るので、ジェスチャー入力について信頼できる特徴表現を生成するという技術課題に対処するのに効果的なソリューションであり得る。本開示は、特定の様式で特定の特徴表現を生成することについて説明するが、本開示は、任意の好適な様式で任意の好適な特徴表現を生成することについて説明することを企図する。
【0092】
特定の実施形態では、補助システム140は、音声入力とジェスチャー入力とを一緒に活用することによって、個人化されたジェスチャー分類モデルをトレーニングし得る。補助システム140は、ASRモジュール210によって、音声入力からテキスト入力を抽出し得る。補助システム140は、次いで、テキスト入力とジェスチャー入力の両方について特徴表現を生成し得る。特徴表現が生成された後に、補助システム140は、テキスト入力のための重みと、ジェスチャー入力のための重みとを、それぞれ決定し得る。特定の実施形態では、これらの入力およびそれらの各々の重みは、さらに、個人化されたジェスチャー分類モデルをトレーニングするために、深層ニューラルネットワークフレームワークに供給され得る。特定の実施形態では、補助システム140は、さらに、個人化されたジェスチャー分類モデルをトレーニングするとき、ユーザフィードバックを利用し得る。ダイアログエンジン235は、提案される入力535としてユーザフィードバックを求め得、それを通して、追加のトレーニングデータも取得され得る。より具体的に言えば、ダイアログエンジン235は、低い信頼性をもつジェスチャーの承認またはあいまいさ除去(disambiguation)を求め得る。ダイアログエンジン235は、提案される入力535中に含まれ得るジェスチャーの承認またはあいまいさ除去をユーザに依頼するために、テキストまたは音声を使用し得る。その結果、ユーザからの承認または選択は、個人化されたジェスチャー分類モデルをトレーニングするための追加の信号として、使用され得る。本開示は、特定の様式で特定のジェスチャー分類モデルをトレーニングすることについて説明するが、本開示は、任意の好適な様式で任意の好適なジェスチャー分類モデルをトレーニングすることについて説明することを企図する。
【0093】
特定の実施形態では、個人化されたジェスチャー分類モデルは、ランタイムにおいてジェスチャー入力を意図520に自動的に関連付け得る。特定の実施形態では、補助システム140は、第1のユーザに関連付けられたクライアントシステム130から、第1のユーザからの新しいジェスチャー入力を受信し得る。補助システム140は、次いで、新しいジェスチャー入力について、個人化されたジェスチャー分類モデルに基づいて、新しいジェスチャー入力に対応する意図520を決定し得る。特定の実施形態では、補助システム140は、さらに、決定された意図520に基づいて、1つまたは複数のタスク525を実行し得る。その結果、補助システム140は、ユーザが、テキストおよびボイスなどの旧来の入力のほかにジェスチャーで補助システム140と対話することを可能にすることによって、補助システム140とのユーザエクスペリエンスを豊かにするという技術的利点を有し得、補助システム140は、正確に、ユーザのジェスチャーを認識し、認識されたジェスチャーに対応するタスク525を実行し得る。本開示は、特定の様式で特定のジェスチャー分類モデルを使用することについて説明するが、本開示は、任意の好適な様式で任意の好適なジェスチャー分類モデルを使用することについて説明することを企図する。
【0094】
図6は、個人化されたジェスチャー分類モデルをトレーニングするための例示的な方法600を示す。方法は、ステップ610において始まり得、補助システム140は、データストアから、第1のユーザに関連付けられた複数の入力タプルにアクセスし得、各入力タプルは、ジェスチャー入力と、対応する音声入力とを含む。ステップ620において、補助システム140は、自然言語理解(NLU)モジュール220によって、複数の音声入力に対応する複数の意図520を、それぞれ決定し得る。ステップ630において、補助システム140は、複数のジェスチャー入力について、1つまたは複数の機械学習モデルに基づいて複数の特徴表現を生成し得る。ステップ640において、補助システム140は、複数のジェスチャー入力についての複数のジェスチャー識別子を、それらの各々の特徴表現に基づいて、それぞれ決定し得る。ステップ650において、補助システム140は、複数の意図520を複数のジェスチャー識別子にそれぞれ関連付け得る。ステップ660において、補助システム140は、第1のユーザについて、それらの各々のジェスチャー入力の複数の特徴表現と、複数の意図520とそれらの各々のジェスチャー識別子との間の関連付けとに基づいて、個人化されたジェスチャー分類モデルをトレーニングし得る。特定の実施形態は、適切な場合、図6の方法の1つまたは複数のステップを繰り返し得る。本開示は、図6の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図6の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図6の方法の特定のステップを含む、個人化されたジェスチャー分類モデルをトレーニングするための例示的な方法を説明し、示すが、本開示は、適切な場合、図6の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、個人化されたジェスチャー分類モデルをトレーニングするための任意の好適な方法を企図する。さらに、本開示は、図6の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図6の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0095】
ソーシャルグラフ
図7は、例示的なソーシャルグラフ700を示す。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のソーシャルグラフ700を1つまたは複数のデータストアに記憶し得る。特定の実施形態では、ソーシャルグラフ700は、複数のユーザノード702または複数の概念ノード704を含み得る、複数のノードと、それらのノードを接続する複数のエッジ706とを含み得る。各ノードは、一意の数字またはユーザ名など、一意の識別子(ID)をその各々が有し得る、一意のエンティティ(すなわち、ユーザまたは概念)に関連付けられ得る。説明のために、2次元ビジュアルマップ表現において、図7に示されている例示的なソーシャルグラフ700が示される。特定の実施形態では、ソーシャルネットワーキングシステム160、クライアントシステム130、補助システム140、またはサードパーティシステム170は、好適な適用例のためにソーシャルグラフ700および関係するソーシャルグラフ情報にアクセスし得る。ソーシャルグラフ700のノードおよびエッジは、たとえば(ソーシャルグラフデータベースなどの)データストアに、データオブジェクトとして記憶され得る。そのようなデータストアは、ソーシャルグラフ700のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
【0096】
特定の実施形態では、ユーザノード702は、ソーシャルネットワーキングシステム160または補助システム140のユーザに対応し得る。限定としてではなく一例として、ユーザは、ソーシャルネットワーキングシステム160または補助システム140と、あるいはソーシャルネットワーキングシステム160または補助システム140上で、対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、ビジネス、またはサードパーティアプリケーション)、または(たとえば、個人またはエンティティの)グループであり得る。特定の実施形態では、ソーシャルネットワーキングシステム160にユーザがアカウントを登録すると、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード702を作成し、1つまたは複数のデータストアにユーザノード702を記憶し得る。本明細書で説明されるユーザおよびユーザノード702は、適切な場合、登録済みユーザおよび登録済みユーザに関連付けられたユーザノード702を指し得る。さらに、または代替として、本明細書で説明されるユーザおよびユーザノード702は、適切な場合、ソーシャルネットワーキングシステム160に登録されていないユーザを指し得る。特定の実施形態では、ユーザノード702は、ユーザによって提供された情報、またはソーシャルネットワーキングシステム160を含む様々なシステムによって集められた情報に関連付けられ得る。限定としてではなく一例として、ユーザは、自分の名前、プロファイルピクチャ、連絡先情報、生年月日、性、配偶者の有無、家族状況、勤務先、学歴、選好、興味、または他の人口統計学的情報を提供し得る。特定の実施形態では、ユーザノード702は、ユーザに関連付けられた情報に対応する1つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、ユーザノード702は、1つまたは複数のウェブインターフェースに対応し得る。
【0097】
特定の実施形態では、概念ノード704は、概念に対応し得る。限定としてではなく一例として、概念は、(たとえば、映画館、レストラン、ランドマーク、または都市などの)場所、(たとえば、ソーシャルネットワーキングシステム160に関連付けられたウェブサイト、またはウェブアプリケーションサーバに関連付けられたサードパーティウェブサイトなどの)ウェブサイト、(たとえば、人、ビジネス、グループ、スポーツチーム、または有名人などの)エンティティ、ソーシャルネットワーキングシステム160内に、またはウェブアプリケーションサーバなどの外部サーバ上に置かれ得る(たとえば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなどの)リソース、(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または書かれた作品などの)物的財産または知的財産、ゲーム、アクティビティ、アイデアまたは理論、別の好適な概念、あるいは2つまたはそれ以上のそのような概念に対応し得る。概念ノード704は、ユーザによって提供された概念の情報、またはソーシャルネットワーキングシステム160と補助システム140とを含む様々なシステムによって集められた情報に関連付けられ得る。限定としてではなく一例として、概念の情報は、名前またはタイトル、1つまたは複数の画像(たとえば、本のカバーページの画像)、ロケーション(たとえば、住所または地理的ロケーション)、(URLに関連付けられ得る)ウェブサイト、連絡先情報(たとえば、電話番号または電子メールアドレス)、他の好適な概念情報、あるいはそのような情報の任意の好適な組合せを含み得る。特定の実施形態では、概念ノード704は、概念ノード704に関連付けられた情報に対応する1つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、概念ノード704は、1つまたは複数のウェブインターフェースに対応し得る。
【0098】
特定の実施形態では、ソーシャルグラフ700内のノードは、(「プロファイルインターフェース」と呼ばれることがある)ウェブインターフェースを表すか、またはウェブインターフェースによって表され得る。プロファイルインターフェースは、ソーシャルネットワーキングシステム160または補助システム140によってホストされるか、あるいはソーシャルネットワーキングシステム160または補助システム140にとってアクセス可能であり得る。プロファイルインターフェースはまた、サードパーティシステム170に関連付けられたサードパーティウェブサイト上でホストされ得る。限定としてではなく一例として、特定の外部ウェブインターフェースに対応するプロファイルインターフェースは、特定の外部ウェブインターフェースであり得、プロファイルインターフェースは、特定の概念ノード704に対応し得る。プロファイルインターフェースは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であり得る。限定としてではなく一例として、ユーザノード702は、対応するユーザが、コンテンツを追加するか、発表するか、または場合によっては自分自身を明示し得る、対応するユーザプロファイルインターフェースを有し得る。限定としてではなく別の例として、概念ノード704は、特に、概念ノード704に対応する概念に関連して、1人または複数のユーザがコンテンツを追加するか、発表するか、または自分自身を明示し得る、対応する概念プロファイルインターフェースを有し得る。
【0099】
特定の実施形態では、概念ノード704は、サードパーティシステム170によってホストされるサードパーティウェブインターフェースまたはリソースを表し得る。サードパーティウェブインターフェースまたはリソースは、他の要素の中でも、コンテンツ、選択可能なまたは他のアイコン、あるいは、アクションまたはアクティビティを表す(たとえば、JavaScript、AJAX、またはPHPコードにおいて実装され得る)他の対話可能オブジェクトを含み得る。限定としてではなく一例として、サードパーティウェブインターフェースは、「いいね!」、「チェックイン」、「食べる」、「推奨」、あるいは別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含み得る。サードパーティウェブインターフェースを閲覧しているユーザは、アイコンのうちの1つ(たとえば「チェックイン」)を選択することによってアクションを実施し、クライアントシステム130が、ユーザのアクションを指示するメッセージをソーシャルネットワーキングシステム160に送ることを引き起こし得る。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード702と、サードパーティウェブインターフェースまたはリソースに対応する概念ノード704との間のエッジ(たとえば、チェックインタイプのエッジ)を作成し、1つまたは複数のデータストアにエッジ706を記憶し得る。
【0100】
特定の実施形態では、ソーシャルグラフ700内のノードのペアが、1つまたは複数のエッジ706によって互いに接続され得る。ノードのペアを接続するエッジ706は、ノードのペア間の関係を表し得る。特定の実施形態では、エッジ706は、ノードのペア間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含むか、または表し得る。限定としてではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを指示し得る。この指示に応答して、ソーシャルネットワーキングシステム160は、「友達要求」を第2のユーザに送り得る。第2のユーザが「友達要求」を承認した場合、ソーシャルネットワーキングシステム160は、ソーシャルグラフ700内で、第1のユーザのユーザノード702を第2のユーザのユーザノード702に接続するエッジ706を作成し、データストア164の1つまたは複数にソーシャルグラフ情報としてエッジ706を記憶し得る。図7の例では、ソーシャルグラフ700は、ユーザ「A」のユーザノード702とユーザ「B」のユーザノード702との間の友達関係を指示するエッジ706と、ユーザ「C」のユーザノード702とユーザ「B」のユーザノード702との間の友達関係を指示するエッジとを含む。本開示は、特定の属性をもつ特定のエッジ706が、特定のユーザノード702を接続することを説明するかまたは示すが、本開示は、任意の好適な属性をもつ任意の好適なエッジ706が、ユーザノード702を接続することを企図する。限定としてではなく一例として、エッジ706は、友人関係、家族関係、ビジネスまたは雇用関係、(たとえば、いいね!を表明することなどを含む)ファン関係、フォロワー関係、(たとえば、アクセスすること、閲覧すること、チェックインすること、共有することなどを含む)ビジター関係、加入者関係、上下関係、互恵関係、非互恵関係、別の好適なタイプの関係、あるいは2つまたはそれ以上のそのような関係を表し得る。その上、本開示は一般に、ノードを、接続されているものとして説明しているが、本開示は、ユーザまたは概念も、接続されているものとして説明する。本明細書では、接続されているユーザまたは概念への言及は、適切な場合、1つまたは複数のエッジ706によってソーシャルグラフ700内で接続されているそれらのユーザまたは概念に対応するノードを指し得る。
【0101】
特定の実施形態では、ユーザノード702と概念ノード704との間のエッジ706は、概念ノード704に関連付けられた概念に向かってユーザノード702に関連付けられたユーザによって実施された特定のアクションまたはアクティビティを表し得る。限定としてではなく一例として、図7に示されているように、ユーザは、概念に対して「いいね!」を表明する、「通っていた」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「観た」ことがあり、これらの各々が、エッジのタイプまたはサブタイプに対応し得る。概念ノード704に対応する概念プロファイルインターフェースは、たとえば、(たとえば、クリック可能な「チェックイン」アイコンなどの)選択可能な「チェックイン」アイコン、または選択可能な「お気に入りに追加」アイコンを含み得る。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステム160は、各々のアクションに対応するユーザのアクションに応答して、「お気に入り」エッジ、または「チェックイン」エッジを作成し得る。限定としてではなく別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンラインミュージックアプリケーションであるSPOTIFY)を使用して、特定の歌(「イマジン」)を聴き得る。この場合、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード702と、歌およびアプリケーションに対応する概念ノード704との間に(図7に示されているような)「聴いた」エッジ706および「使用した」エッジを作成し、ユーザが歌を聴き、アプリケーションを使用したことを指示し得る。その上、ソーシャルネットワーキングシステム160は、歌に対応する概念ノード704と、アプリケーションに対応する概念ノード704との間に(図7に示されているような)「プレイした」エッジ706を作成し、特定の歌が特定のアプリケーションによってプレイされたことを指示し得る。この場合、「プレイした」エッジ706は、外部オーディオファイル(歌「イマジン」)に対して外部アプリケーション(SPOTIFY)によって実施されたアクションに対応する。本開示は、特定の属性をもつ特定のエッジ706が、ユーザノード702と概念ノード704とを接続することを説明するが、本開示は、任意の好適な属性をもつ任意の好適なエッジ706が、ユーザノード702と概念ノード704とを接続することを企図する。その上、本開示は、ユーザノード702と概念ノード704との間のエッジが、単一の関係を表すことを説明するが、本開示は、ユーザノード702と概念ノード704との間のエッジが、1つまたは複数の関係を表すことを企図する。限定としてではなく一例として、エッジ706は、ユーザが、特定の概念に対して、いいね!を表明することと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ706は、(図7において、ユーザ「E」のためのユーザノード702と「SPOTIFY」のための概念ノード704との間に示されているような)ユーザノード702と概念ノード704との間の関係(または単一の関係の倍数)の各タイプを表し得る。
【0102】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルグラフ700内にユーザノード702と概念ノード704との間にエッジ706を作成し得る。限定としてではなく一例として、(たとえば、ウェブブラウザ、またはユーザのクライアントシステム130によってホストされる専用アプリケーションを使用することなどによって)概念プロファイルインターフェースを閲覧するユーザは、「いいね!」アイコンをクリックまたは選択することによって、概念ノード704によって表される概念に対して自分が、いいね!を表明したことを指示し得、これにより、ユーザのクライアントシステム130に、概念プロファイルインターフェースに関連付けられた概念に対してユーザが、いいね!を表明したことを指示するメッセージをソーシャルネットワーキングシステム160に送らせ得る。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザと概念ノード704との間の「いいね!」エッジ706によって示されているように、ユーザに関連付けられたユーザノード702と、概念ノード704との間にエッジ706を作成し得る。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストアにエッジ706を記憶し得る。特定の実施形態では、エッジ706は、特定のユーザアクションに応答して、ソーシャルネットワーキングシステム160によって自動的に形成され得る。限定としてではなく一例として、第1のユーザがピクチャをアップロードするか、映画を観るか、または歌を聴く場合、エッジ706は、第1のユーザに対応するユーザノード702とそれらの概念に対応する概念ノード704との間に形成され得る。本開示は、特定の様式で特定のエッジ706を形成することについて説明するが、本開示は、任意の好適な様式で任意の好適なエッジ706を形成することを企図する。
【0103】
ベクトル空間および埋込み
図8は、ベクトル空間800の例示的なビューを示す。特定の実施形態では、オブジェクトまたはnグラムは、d次元ベクトル空間において表され得、ここで、dは、任意の好適な数の次元を示す。ベクトル空間800は3次元空間として示されているが、ベクトル空間800は任意の好適な次元のものであり得るので、これは説明のためのものにすぎない。特定の実施形態では、nグラムは、用語埋込みと呼ばれるベクトルとして、ベクトル空間800において表され得る。各ベクトルは、ベクトル空間800における特定の点(すなわち、ベクトルの終点)に対応する座標を含み得る。限定としてではなく一例として、ベクトル810、820、および830は、図8に示されているように、ベクトル空間800における点として表され得る。nグラムは、各々のベクトル表現にマッピングされ得る。限定としてではなく一例として、nグラムtおよびtが、辞書によって定義された関数
を適用することによって、ベクトル空間800におけるベクトル
および
に、それぞれマッピングされ得、したがって、
および
である。限定としてではなく別の例として、テキストをベクトル表現にマッピングするようにトレーニングされた辞書が利用され得るか、または、そのような辞書は、それ自体、トレーニングを介して生成され得る。限定としてではなく別の例として、nグラムを、ベクトル空間800におけるベクトル表現にマッピングするために、Word2vecなどのモデルが使用され得る。特定の実施形態では、nグラムは、機械学習モデル(たとえば、ニューラルネットワーク)を使用することによって、ベクトル空間800におけるベクトル表現にマッピングされ得る。機械学習モデルは、トレーニングデータのシーケンス(たとえば、各々がnグラムを含むオブジェクトのコーパス)を使用してトレーニングされていることがある。
【0104】
特定の実施形態では、オブジェクトは、特徴ベクトルまたはオブジェクト埋込みと呼ばれるベクトルとして、ベクトル空間800において表され得る。限定としてではなく一例として、オブジェクトeおよびeが、関数
を適用することによって、ベクトル空間800におけるベクトル
および
に、それぞれマッピングされ得、したがって、
および
である。特定の実施形態では、オブジェクトは、オブジェクトの1つまたは複数の特性、属性、または特徴、他のオブジェクトとのオブジェクトの関係、あるいはオブジェクトに関連付けられた任意の他の好適な情報に基づいて、ベクトルにマッピングされ得る。限定としてではなく一例として、関数pが、特徴抽出によってオブジェクトをベクトルにマッピングし得、特徴抽出は、測定されたデータの初期セットから開始し、導出される値(たとえば、特徴)を組み立て得る。限定としてではなく一例として、ビデオまたは画像を含むオブジェクトが、オブジェクトの様々な所望の部分または形状を検出または分離するためのアルゴリズムを使用することによって、ベクトルにマッピングされ得る。ベクトルを計算するために使用される特徴が、エッジ検出、コーナー検出、ブロブ検出、リッジ検出、スケール不変特徴変換、エッジ方向、変化する強度、自己相関、動き検出、オプティカルフロー、しきい値処理、ブロブ抽出、テンプレートマッチング、ハフ変換(たとえば、線、円、楕円、任意の形状)から取得された情報、または任意の他の好適な情報に基づき得る。限定としてではなく別の例として、オーディオデータを含むオブジェクトが、スペクトル傾斜、調性係数、オーディオスペクトル重心、オーディオスペクトルエンベロープ、メル周波数ケプストラムなどの特徴、または任意の他の好適な情報に基づいて、ベクトルにマッピングされ得る。特定の実施形態では、オブジェクトが、効率的に処理されるには大きすぎるか、または冗長データを含むかのいずれかであるデータを有するとき、関数
が、変換された低減された特徴のセット(たとえば、特徴選択)を使用して、オブジェクトをベクトルにマッピングし得る。特定の実施形態では、関数
が、オブジェクトeに関連付けられた1つまたは複数のnグラムに基づいて、オブジェクトeをベクトル
にマッピングし得る。本開示は、特定の様式でベクトル空間においてnグラムまたはオブジェクトを表すことについて説明するが、本開示は、任意の好適な様式でベクトル空間においてnグラムまたはオブジェクトを表すことを企図する。
【0105】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ベクトル空間800におけるベクトルの類似度メトリックを計算し得る。類似度メトリックは、コサイン類似度、ミンコフスキー距離、マハラノビス距離、ジャカード類似度係数、または任意の好適な類似度メトリックであり得る。限定としてではなく一例として、

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

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