(57)【要約】  コンピューティングデバイスは、外部コンピューティングデバイスから送信された通信を受信することができる。このコンピューティングデバイスの少なくとも１つのプロセッサは、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、この通信に対する１つ以上の候補レスポンスを決定することができる。上記少なくとも１つのプロセッサは、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることができる。上記少なくとも１つのプロセッサは、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを上記外部コンピューティングデバイスに送信することができる。
2019535073.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスの少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、
前記少なくとも１つのプロセッサが、オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する１つ以上の候補レスポンスを決定するステップと、
前記少なくとも１つのプロセッサが、前記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、
前記少なくとも１つのプロセッサが、前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するステップとを含む、方法。
【請求項２】
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている、請求項１に記載の方法。
【請求項３】
前記通信に対する１つ以上の候補レスポンスを決定するステップはさらに、
前記少なくとも１つのプロセッサが、ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影するステップと、
前記少なくとも１つのプロセッサが、前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定するステップと、
前記少なくとも１つのプロセッサが、前記予測レスポンスのランク付けリストから、前記通信に対する１つ以上の候補レスポンスを決定するステップとを含む、請求項２に記載の方法。
【請求項４】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項２または３に記載の方法。
【請求項５】
前記少なくとも１つのプロセッサが、前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するステップをさらに含み、前記ユーザは、前記通信の宛先としての受信者であり、
前記少なくとも１つのプロセッサが、前記１つ以上のパーソナライズされた候補レスポンスを前記１つ以上の候補レスポンスに含めるステップをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記１つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、
前記少なくとも１つのプロセッサが、前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、前記１つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記少なくとも１つのプロセッサが、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるステップを含む、請求項５に記載の方法。
【請求項７】
前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに前記過去のレスポンスが一致すると判断したことに応じて、実行される、請求項６に記載の方法。
【請求項８】
コンピューティングデバイスであって、
オンデバイス機械訓練モデルを格納するように構成されたコンピュータ読取可能記憶媒体と、
前記コンピュータ読取可能記憶媒体に作動的に結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサは、
外部コンピューティングデバイスから送信された通信を受信し、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する１つ以上の候補レスポンスを決定し、
前記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、
前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信する
ように、構成されている、コンピューティングデバイス。
【請求項９】
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記少なくとも１つのプロセッサはさらに、
ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影し、
前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定し、
前記予測レスポンスのランク付けリストから、前記通信に対する１つ以上の候補レスポンスを決定する
ように、構成されている、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項９または１０に記載のコンピューティングデバイス。
【請求項１２】
前記少なくとも１つのプロセッサはさらに、
前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、前記ユーザは、前記通信の宛先としての受信者であり、前記少なくとも１つのプロセッサはさらに、
前記１つ以上のパーソナライズされた候補レスポンスを前記１つ以上の候補レスポンスに含めるように構成されている、請求項８〜１１のいずれか１項に記載のコンピューティングデバイス。
【請求項１３】
前記少なくとも１つのプロセッサはさらに、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、前記１つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、前記少なくとも１つのプロセッサはさらに、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記少なくとも１つのプロセッサはさらに、
前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに前記過去のレスポンスが一致すると判断したことにさらに応じて、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項１３に記載のコンピューティングデバイス。
【請求項１５】
命令で符号化されたコンピュータ読取可能記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの少なくとも１つのプロセッサに、
外部コンピューティングデバイスから送信された通信を受信することと、
オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する１つ以上の候補レスポンスを決定することと、
前記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることと、
前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信することとを実行させる、コンピュータ読取可能記憶媒体。
【請求項１６】
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている、請求項１５に記載のコンピュータ読取可能記憶媒体。
【請求項１７】
前記命令は、実行されるとさらに、前記コンピューティングデバイスの少なくとも１つのプロセッサに、
ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影することと、
前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定することと、
前記予測レスポンスのランク付けリストから、前記通信に対する１つ以上の候補レスポンスを決定することとを実行させる、請求項１６に記載のコンピュータ読取可能記憶媒体。
【請求項１８】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項１６または１７に記載のコンピュータ読取可能記憶媒体。
【請求項１９】
前記命令は、実行されるとさらに、前記コンピューティングデバイスの少なくとも１つのプロセッサに、
前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定することを実行させ、前記ユーザは、前記通信の宛先としての受信者であり、前記命令は、実行されるとさらに、前記コンピューティングデバイスの少なくとも１つのプロセッサに、
前記１つ以上のパーソナライズされた候補レスポンスを前記１つ以上の候補レスポンスに含めることを実行させる、請求項１５〜１８のいずれか１項に記載のコンピュータ読取可能記憶媒体。
【請求項２０】
前記命令は、実行されるとさらに、前記コンピューティングデバイスの少なくとも１つのプロセッサに、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定することを実行させ、前記１つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、前記命令は、実行されるとさらに、前記コンピューティングデバイスの少なくとも１つのプロセッサに、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めることを実行させる、請求項１９に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２０１６年９月２３日に出願された米国仮特許出願第６２／３９９，００２号に基づく利益を主張し、その内容全体を本明細書に引用により援用する。
【背景技術】
【０００２】
背景
あるコンピューティングデバイスは、このデバイスのユーザが、他のコンピューティングデバイスのユーザから送信された受信通信（たとえば受信メッセージ）に対して応答できるようにすることが可能である。このようなコンピューティングデバイスは、保存している１つ以上のストックレスポンスを提供し、ユーザが受信した通信に対するレスポンスを作成するときに選択できるようにすることが可能である。コンピューティングデバイスは、あるストックレスポンスを選択するユーザ入力の指示を受けたことに応じて、選択されたストックレスポンスを、このコンピューティングデバイスから、もう１つの、通信の送信元である他のユーザのコンピューティングデバイスに送信することが可能である。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
本開示の局面は、オンデバイス機械訓練モデルに基づいて、受信した通信に返信するための候補レスポンスを提供することに関する。すなわち、本開示の技術に従うと、コンピューティングデバイスは、外部または遠隔コンピューティングデバイスから通信を受信することができる。コンピューティングデバイスは、受信した通信の、オンデバイス機械訓練モデルへの入力に基づいて、受信した通信に関連する１つ以上の候補レスポンスを決定し、この１つ以上の候補レスポンスを出力することができる。この１つ以上の候補レスポンスのうちの１つの候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、コンピューティングデバイスは、受信した通信に対して応答するために、選択された候補レスポンスを上記遠隔コンピューティングデバイスに送信することができる。
【０００４】
ある局面において、本開示はある方法に関する。この方法は、コンピューティングデバイスの少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップを含む。この方法はさらに、上記少なくとも１つのプロセッサが、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、この通信に対する１つ以上の候補レスポンスを決定するステップを含む。この方法はさらに、上記少なくとも１つのプロセッサが、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップを含む。この方法はさらに、上記少なくとも１つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを上記外部コンピューティングデバイスに送信するステップを含む。
【０００５】
別の局面において、本開示はコンピューティングデバイスに関する。このコンピューティングデバイスは、オンデバイス機械訓練モデルを格納するように構成されたメモリを備える。このコンピューティングデバイスはさらに、上記メモリに作動的に結合された少なくとも１つのプロセッサを備える。この少なくとも１つのプロセッサは、外部コンピューティングデバイスから送信された通信を受信し、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、この通信に対する１つ以上の候補レスポンスを決定し、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するように、構成されている。
【０００６】
もう１つの局面において、本開示は命令で符号化されたコンピュータ読取可能記憶媒体に関する。この命令は、実行されると、コンピューティングデバイスの少なくとも１つのプロセッサに、外部コンピューティングデバイスから送信された通信を受信することと、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する１つ以上の候補レスポンスを決定することと、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることと、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを上記外部コンピューティングデバイスに送信することとを、実行させる。
【０００７】
１つ以上の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、以下の説明および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】本開示の１つ以上の技術に従う、受信した通信に対する候補レスポンスを提供するように構成することが可能なコンピューティングデバイスおよびグラフィカルユーザインターフェイス（ＧＵＩ）の一例を示すブロック図である。
【図２】本開示の１つ以上の技術に従う、受信した通信に対する候補レスポンスを提供するように構成することが可能なコンピューティングデバイスの一例の詳細を示すブロック図である。
【図３】本開示の１つ以上の技術に従う、遠隔デバイスで表示するためのグラフィックコンテンツを出力するように構成することが可能なコンピューティングデバイスの一例を示すブロック図である。
【図４】本開示の１つ以上の技術に従う、受信した通信に対する候補レスポンスを生成するためにコンピューティングデバイスの一例が利用し得る機械訓練技術の一例を示すブロック図である。
【図５】本開示の１つ以上の技術に従う、受信した通信に対する候補レスポンスをオンデバイス機械訓練モデルを用いて生成する技術の一例を示すブロック図である。
【図６】本開示の１つ以上の技術に従う、受信した通信に応じて候補レスポンスを生成するためにオンデバイス機械訓練モデルを利用するコンピューティングデバイスの動作の一例を示すフロー図である。
【発明を実施するための形態】
【０００９】
詳細な説明
概して、本開示の局面は、オンデバイス機械訓練モデルに基づいて、受信した通信に返信するための候補レスポンスを提供すること、および、スマートフォンまたはウェアラブルデバイス（たとえばスマートウォッチ）等のモバイルコンピューティングデバイス上での使用に対して最適化すべく、このような機械訓練モデルを生成することに関する。コンピューティングデバイス上のメッセージングアプリケーションは、通信を受信することができ、コンピューティングデバイス上の機械訓練モデルを用いて、受信した通信に関連する候補レスポンスを予測することができる。メッセージングアプリケーションは、このモデルによって予測された候補レスポンスを提示することができ、受信した通信の送信元に送信するために、提示された候補レスポンスの中から１つのレスポンスをユーザが選択できるようにすることが可能である。
【００１０】
受信した通信に返信するための候補レスポンスを提供することは、受信した通信に応答するためにテキスト入力することが厄介であるかまたは社会的に認められないような状況において、受信した通信に対してユーザが素早くかつ目立たないように返信できるようにすることで、有用となるであろう。一例において、スマートウォッチが、テキスト入力オプションとして音声入力しか提供しない場合、このようなテキスト入力方法は、騒々しい環境では確実ではない、または役に立たないことがある。別の例として、受信した通信に対するレスポンスをユーザが発話によって音声入力することまたは書き込むことが社会的に認められない場合がある（たとえばユーザが会議中のとき）。その場合、コンピューティングデバイスは、受信した通信に返信するための候補レスポンスを提供することにより、コンピューティングデバイスのユーザが、素早く確実にかつ都合の良いやり方で、受信した通信に返信できるようにすることが可能である。
【００１１】
コンピューティングデバイスは、機械訓練モデルを利用して、受信通信に対する関連性が高い候補レスポンスを生成することにより、受信通信に応答するために候補レスポンスのうちの１つをユーザが選択する可能性を高くすることができる。機械訓練モデルを利用すると、場合によっては、受信通信に応答するためのメッセージを送信するためにユーザがコンピューティングデバイスとやり取りするのに要する時間の量を短縮できる。なぜなら、ユーザは、レスポンスメッセージをタイプする、話す、または手で入力しなくてもよいからである。ユーザがコンピューティングデバイスとやり取りするのに必要な時間の量を短縮することにより、コンピューティングデバイスは、その電力を十分に節約して電池寿命を長くすることができる。このような電力の節約は、特にコンピューティングデバイスがスマートウォッチ等のウェアラブルコンピューティングデバイスである場合に重要になる。そうでなければ、このようなウェアラブルデバイスの電池寿命は非常に限られたものになるであろう。
【００１２】
一般的に、機械訓練モデルは、所定の入力に対する出力を推測するために、機械学習技術を用いて、大きなデータセットに対して訓練することができる。より具体的には、本開示の局面に従うと、機械訓練モデルは、受信通信に対する関連のある候補レスポンスを推測するために、機械学習技術に基づき大きなデータセットに対して訓練することで生成された、コンピューティングデバイス上で実行されるアプリケーションまたはモジュールであってもよい。たとえば、モデルを機械訓練するときに使用するデータセットは、通信とこのような通信に対する返信とのペアを含み得る。そうすると、コンピューティングシステムは、このような通信と返信とのペアに対して機械訓練を実行することにより、受信通信に応答する際に、適切な返信を推測することができる。機械学習を通して訓練されたモデルは、潜在的に、候補レスポンスを決定する他の方法と比較して、文脈上の関連性がより高い、受信通信に対する候補レスポンスを提案することができる。文脈上の関連性がより高い候補レスポンスを提案することで、ユーザが、受信メッセージに返信するために、提案された候補レスポンスのうちの１つ選択する可能性は、高くなるであろう。
【００１３】
コンピューティングデバイスが使用するモデルは、受信通信に関連する候補レスポンスを生成するために完全にコンピューティングデバイス上で動作してもよい。すなわち、受信通信に対する１つ以上の候補レスポンスを決定する際、コンピューティングデバイスは、オフデバイスモデル（たとえばクラウド内で動作する機械訓練モデル）による処理のために受信通信の何らかの指示をオフデバイスで（たとえばクラウドに）送信する訳ではない。同様に、コンピューティングデバイスは、別のコンピューティングデバイスから、受信通信に関連する１つ以上の候補レスポンスの指示を受ける訳でもない。その代わりに、コンピューティングデバイスは、完全にコンピューティングデバイス上でオンデバイス機械訓練モデルを実行することにより、受信通信に関連する１つ以上の候補レスポンスを決定する。このようにして、本開示の技術を実現するコンピューティングデバイスは、オンデバイス機械訓練モデルを利用することにより、ネットワーク（たとえばインターネット）を通して外部の機械訓練モデル（たとえばクラウドベースのサービスの一部としてのモデル）にアクセスしなくても、受信通信に関連する候補レスポンスを提供することができる。
【００１４】
受信通信の指示をオフデバイスで送信することなく候補レスポンスを生成できるオンデバイスモデルの潜在的な１つの利点は、ホストコンピューティングデバイスが、たとえば、低品質のセルラーまたは短距離無線（たとえばＷｉ−Ｆｉ（登録商標））信号を有するときや、たとえばコンピューティングデバイスが航空機モードに設定されていてネットワーク接続が全く使えないときなど、断続的なインターネット接続しか利用できないときでも、有用となり得る、という点である。また、オンデバイスモデルにより、ホストコンピューティングデバイスは、消費するネットワークデータおよび帯域幅を少なくすることができる。なぜなら、コンピューティングデバイスは受信通信をオフデバイスモデルに送信しないからである。
【００１５】
オンデバイスモデルの別の潜在的な利点は、オンデバイスモデルが、メッセージングアプリケーションに対し、エンドツーエンドの暗号化をサポートし得る点である。エンドツーエンド暗号化メッセージングアプリケーションにおいて、送信者と受信者との間のメッセージは、送信者または受信者のコンピューティングデバイスにおいてのみ、解読されるが、そうでなければ暗号化された形態である。このため、エンドツーエンドの暗号化では、暗号化されていないメッセージを、たとえば、メッセージに対する候補レスポンスを生成するためにオフデバイスモデル（たとえばクラウド内のモデル）によって処理されるよう外部システムに送信することはできない。これは、このような通信を第三者による監視または改ざんから守るために送信者と受信者との間の通信のセキュリティを改善するのに役立ち得る。
【００１６】
しかしながら、コンピューティングデバイス、とりわけ、スマートフォンまたはスマートウォッチ等のモバイルコンピューティングデバイスは、デスクトップコンピューティングデバイス、サーバコンピューティングデバイス、またはクラウドコンピューティングデバイスと比較すると、コンピューティングリソースが比較的限られている場合がある。なぜなら、モバイルコンピューティングデバイスの動作は、たとえば、パフォーマンスと、電池寿命、熱の放出、およびサイズの制約との兼ね合いに基づいている場合があるからである。このため、デスクトップまたはサーバコンピューティングデバイスのために設計された機械訓練モデルは、モバイルコンピューティングデバイス上で実行された場合に、許容できる性能を提供できない場合がある。たとえば、このようなモデルは、メモリ空間を過剰に占有する場合がある、または、このようなモデルを使用するデバイスは受信通信に対する候補レスポンスを生成するのに過剰な時間を要する場合がある。加えて、このようなモデルは、その動作中に、モバイルコンピューティングデバイスの電力（たとえばバッテリ）を過剰に消費する場合もある。
【００１７】
オンデバイス機械訓練モデルを用いて１つ以上の候補レスポンスを決定するとき、コンピューティングデバイスは、ユーザが過去に送信したテキストメッセージ、電子メール等といったユーザのメッセージング履歴に基づいて、１つ以上の候補レスポンスをパーソナライズすることができる。ユーザのメッセージング履歴にアクセスするためのアクセス権がユーザから明示的に与えられると、コンピューティングデバイスは、ユーザのメッセージング履歴にアクセスし、このユーザのメッセージング履歴に少なくとも一部基づいて、１つ以上の候補レスポンスを決定することができる。たとえば、コンピューティングデバイスは、過去にユーザが送信した１つ以上のメッセージを、１つ以上の候補レスポンスに含めることができる。
【００１８】
このように、本開示の局面に従うと、オンデバイス機械訓練モデルを、モバイルコンピューティングデバイスによる使用に合わせて特別に設計して、モバイルコンピューティングデバイスのリソースの制約（たとえば、メモリ、処理、および／または消費電力の制約）を満たすようにすることができる。遠隔コンピューティングデバイス（本明細書では外部コンピューティングデバイスと呼ぶこともある）が、機械学習を実行することによって機械訓練モデルを生成してもよく、このデバイスは、（たとえばオンデバイス機械訓練モデルとして）このモデルをモバイルコンピューティングデバイスにロードしてもよい。モバイルコンピューティングデバイスは、オンデバイス機械訓練モデルをローカルで使用することにより、受信した通信の指示をモバイルコンピューティングデバイスの外部に送信する（たとえば、受信通信をネットワークを介してクラウドに送信する）ことなく、受信通信に対する候補レスポンスを生成することができる。
【００１９】
図１は、本開示の１つ以上の技術に従う、受信した通信に対して返信する候補レスポンスを提供するための、一例としてのコンピューティングデバイス２ならびにグラフィカルユーザインターフェイス（ＧＵＩ）２０および２６を示すブロック図である。コンピューティングデバイス２の例は、ポータブル、モバイル、またはその他のデバイス、たとえば、携帯電話（スマートフォンを含む）、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、スマートテレビプラットフォーム、携帯情報端末（ＰＤＡ）、サーバコンピュータ、メインフレームその他を含むが、これらに限定されない。たとえば、図１の例において、コンピューティングデバイス２はスマートウォッチ等のウェアラブルコンピューティングデバイスであってもよい。
【００２０】
図１の例に示されるコンピューティングデバイス２はユーザインターフェイス（ＵＩ）デバイス４を含む。コンピューティングデバイス２のＵＩデバイス４は、コンピューティングデバイス２の入力デバイスおよび／または出力デバイスとして機能するように構成することができる。ＵＩデバイス４は、各種技術を用いて実現可能である。たとえば、ＵＩデバイス４は、ユーザからの入力を、触覚、音声、および／またはビデオフィードバックを通して受けるように構成することができる。入力デバイスの例は、存在感知ディスプレイ、存在感知もしくはタッチ感知入力デバイス、マウス、キーボード、音声応答システム、ビデオカメラ、マイク、または、ユーザからのコマンドを検出するためのその他の種類のデバイスを含む。いくつかの例において、存在感知ディスプレイは、タッチ感知もしくは存在感知入力画面、たとえば、抵抗性タッチスクリーン、表面音響波タッチスクリーン、容量性タッチスクリーン、投影型静電容量タッチスクリーン、圧力感知画面、音響パルス認識タッチスクリーン、または別の存在感知技術を含む。すなわち、コンピューティングデバイス２のＵＩデバイス４は、コンピューティングデバイス２のユーザから触覚入力を受けることが可能な存在感知デバイスを含み得る。ＵＩデバイス４は、（たとえば、ユーザが指またはスタイラスペンでＵＩデバイス４の１つ以上の場所に触れるまたは１つ以上の場所を指示するときの）ユーザの１つ以上のジェスチャーを検出することで、触覚入力の指示を受けることができる。
【００２１】
加えてまたは代わりに、ＵＩデバイス４は、触覚刺激、聴覚刺激、または映像刺激を利用して出力をユーザに提供することによって出力デバイスとして機能するように構成することができる。出力デバイスの例は、サウンドカード、ビデオグラフィックスアダプタカード、または１つ以上のディスプレイデバイスのうちのいずれか、たとえば、液晶ディスプレイ（ＬＣＤ）、ドットマトリクスディスプレイ、発光ダイオード（ＬＥＤ）ディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、電子インク、もしくは、コンピューティングデバイス２のユーザに対して可視情報を出力できる同様のモノクロもしくはカラーディスプレイを含む。出力デバイスのその他の例は、スピーカー、陰極線管（ＣＲＴ）モニタ、液晶ディスプレイ（ＬＣＤ）、または、ユーザが理解できる出力を生成することが可能なその他のデバイスを含む。たとえば、ＵＩデバイス４は、コンピューティングデバイス２が提供する機能に対応付けることが可能なグラフィカルユーザインターフェイスとして、コンピューティングデバイス２のユーザに対し、出力を提示することができる。このようにして、ＵＩデバイス４は、コンピューティングデバイス２で実行されるまたはコンピューティングデバイス２がアクセス可能なアプリケーションの各種ユーザインターフェイス（たとえば、電子メッセージアプリケーション、インターネットブラウザアプリケーションなど）を提示することができる。コンピューティングデバイス２のユーザは、アプリケーションの各ユーザインターフェイスとやり取りすることによって、コンピューティングデバイス２に、ある機能に関連する動作を実行させることが可能である。
【００２２】
いくつかの例において、コンピューティングデバイス２のＵＩデバイス４は、２次元および／または３次元のジェスチャーを、コンピューティングデバイス２のユーザからの入力として検出することができる。たとえば、ＵＩデバイス４のセンサは、このＵＩデバイス４のセンサのしきい値距離以内のユーザの動き（たとえば手、腕、ペン、またはスタイラスを動かすこと）を検出することができる。ＵＩデバイス４は、この動きの２次元または３次元ベクトル表現を求め、このベクトル表現を、複数の次元を有するジェスチャー入力（たとえば、手を振ること、つまむこと、たたくこと、ペンストローク）に対応付けることができる。言い換えると、いくつかの例において、ＵＩデバイス４は、ＵＩデバイス４が表示する情報を出力する画面または面においてまたはその近くでユーザがジェスチャーを行わなくても、多次元のジェスチャーを検出することができる。その代わりに、ＵＩデバイス４は、ＵＩデバイス４が表示する情報を出力する画面または面の近くに位置するまたは位置しないセンサのところでまたはその近くで行われる多次元のジェスチャーを検知してもよい。
【００２３】
図１の例において、コンピューティングデバイス２は、ユーザインターフェイス（ＵＩ）モジュール６と、アプリケーションモジュール１０Ａ〜１０Ｎ（まとめて「アプリケーションモジュール１０」）と、通信レスポンスモジュール１２とを含む。モジュール６、１０、および／または１２は、コンピューティングデバイス２の内部にあるおよび／またはコンピューティングデバイス２で実行される、ハードウェア、ソフトウェア、ファームウェア、またはその組み合わせを用いて、本明細書に記載の１つ以上の動作を実行することができる。コンピューティングデバイス２は、１つのプロセッサまたは複数のプロセッサを用いてモジュール６、１０、および／または１２を実行することができる。いくつかの例において、コンピューティングデバイス２は、モジュール６、１０、および／または１２を、基礎をなすハードウェア上で実行される仮想マシンとして実行してもよい。モジュール６、１０、および／または１２は、オペレーティングシステムもしくはコンピューティングプラットフォームの１つ以上のサービスとして実行されてもよく、または、コンピューティングプラットフォームのアプリケーションレイヤにおいて１つ以上の実行可能プログラムとして実行されてもよい。
【００２４】
図１の例に示されるように、ＵＩモジュール６は、コンピューティングデバイス２によって操作されて、１つ以上の機能を実行する、たとえば、入力を受け、このような入力の指示を、モジュール１０および／または１２等の、コンピューティングデバイス２に対応付けられた他のコンポーネントに送ることができる。ＵＩモジュール６は、モジュール１０および／または１２等の、コンピューティングデバイス２に対応付けられたコンポーネントから、データを受けることもできる。ＵＩモジュール６は、受けたデータを用いて、ＵＩデバイス４等の、コンピューティングデバイス２に対応付けられた他のコンポーネントに、受けたデータに基づく出力を提供させることができる。たとえば、ＵＩモジュール６は、アプリケーションモジュール１０のうちの１つからデータを受けてＧＵＩに表示することができる。
【００２５】
図１の例に示されるように、アプリケーションモジュール１０は、コンピューティングデバイス２上で各種動作を実行するための機能を含み得る。たとえば、アプリケーションモジュール１０は、ワードプロセッサ、電子メールアプリケーション、チャットアプリケーション、メッセージングアプリケーション、ソーシャルメディアアプリケーション、ウェブブラウザ、マルチメディアプレーヤー、カレンダーアプリケーション、オペレーティングシステム、分散コンピューティングアプリケーション、グラフィックデザインアプリケーション、ビデオ編集アプリケーション、ウェブ開発アプリケーション、またはその他いずれかのアプリケーションを含み得る。いくつかの例において、アプリケーションモジュール１０のうちの１つ以上は、電子メールメッセージ、カレンダーアラートもしくは会議出席依頼、またはその他の通信等の通信を、その他のデバイスから受信するように動作可能であってもよい。たとえば、アプリケーションモジュール１０のうちの１つ（たとえばアプリケーションモジュール１０Ａ）は、テキストメッセージングアプリケーション（たとえばＳＭＳ／ＭＭＳ）、インターネットメッセージングアプリケーション、またはメッセージング機能を含むその他適切なアプリケーションであってもよい。アプリケーションモジュール１０Ａは、通信を作成して送信する機能、通信を受信する機能、受信した通信に応答する機能、およびその他の機能を含み得る。
【００２６】
図１の例において、通信レスポンスモジュール１２は、本明細書に記載の技術に従い、受信した通信に対する、関連性のある候補レスポンスを決定するように動作可能であってもよい。すなわち、通信レスポンスモジュール１２は、関連性のある１つ以上の返信メッセージを提供する機能を含み得る。ユーザは、受信した通信に対するレスポンスとしてこの返信メッセージを選択しコンピューティングデバイス２に送信させることができる。（たとえば動作のまたはレスポンスメッセージの）関連性とは、一般的に、関係性および／または類似性（たとえば、意味上の類似性、文脈上の類似性、またはその他何らかの種類の類似性）を示すものであってもよい。いくつかの例において、関連性は、２つのオブジェクト間の関係性のレベルを示す確率値またはスコアによって表してもよく、または、２つのオブジェクトグループ間の関係性のレベル（たとえば、両グループ内に存在するオブジェクトの数、他方のグループに存在する一方のグループのオブジェクトの数、両グループに存在するオブジェクトの割合、またはその他の値）によって表してもよい。受信した通信の場合、受信した通信に対する関連性のある返信メッセージは、受信した通信に対する返信メッセージとしてユーザが選択する見込みまたは確率が高い返信メッセージであってもよい。
【００２７】
図１の例において、コンピューティングデバイス２は通信を受信することができる。受信した通信は、情報（たとえば別のデバイスのユーザが提供した入力に基づいて生成されたもの）を含み得る。受信した通信に含まれ得る情報の例は、テキスト（たとえば、文字、単語、数、句読点）、絵文字、画像もしくはアイコン、ビデオ、音声、デジタル支払、またはその他の情報を含む。受信した通信は、１つ以上のプロトコルに従って構成またはフォーマットされている場合がある。たとえば、受信した通信はインターネットメッセージであってもよい。インターネットメッセージは、「子犬にはとてもいい名前ですね」といったテキスト情報を含んでいてもよい。いくつかの例において、受信通信は、アプリケーションモジュール１０Ａが受信し得る、テキストメッセージ、ショートメッセージサービス（ＳＭＳ）メッセージ、インスタントメッセージ、などを含み得る。このアプリケーションモジュール１０Ａは、ＳＭＳサービス、インスタントメッセージアプリケーション、チャットアプリケーション、メッセンジャーアプリケーション、またはその他好適なサービスもしくはアプリケーションであってもよい。
【００２８】
図１の例において、コンピューティングデバイス２は、通信を受信すると、受信した通信を表すものを、表示のために出力することができる。一般的に、受信した通信を表すものは、グラフィカルユーザインターフェイス（ＧＵＩ）の一部として表示される通知またはその他の視覚オブジェクト出力等の、通信を視覚的に表現したものであってもよい。コンピューティングデバイス２は、アプリケーションモジュール１０Ａ等の、インターネットメッセージを扱うものとして指定されたアプリケーションモジュール１０のうちの１つ以上にメッセージを与えることができる。アプリケーションモジュール１０Ａは、インターネットメッセージを受信し、このメッセージを表すものを（たとえばコンピューティングデバイス２のユーザに対して表示するために）、コンピューティングデバイス２の１つ以上のその他のコンポーネントに出力させることができる。すなわち、アプリケーションモジュール１０Ａは、インターネットメッセージを受信すると、データをＵＩモジュール６に送信してＵＩデバイス４にＧＵＩ２０を表示させることができる。図１の例に示されるように、ＧＵＩ２０は、インターネットメッセージに含まれる情報の表示（たとえば「子犬にはとてもいい名前ですね」というテキスト２２）を含む。いくつかの例において、アプリケーションモジュールは、メッセージを受信した時間等の追加またはその他の情報を表示のために出力させることができる。
【００２９】
図１の例において、コンピューティングデバイス２は、ユーザが受信した通信に対するレスポンスを作成および/または選択できるようにするためにコンピューティングデバイス２に指示する入力の指示を受けることができる。たとえば、コンピューティングデバイス２のユーザは、ＵＩデバイス４において入力２５を実行することができる。ＵＩデバイス４は、入力２５を検出し、この入力の指示をＵＩモジュール６に送ることができる。ＵＩモジュール６は、受けた指示に基づいてデータをアプリケーションモジュール１０Ａに与えることができ、アプリケーションモジュール１０Ａは、入力２５がエレメント２４の選択に対応すると判断することができる。
【００３０】
図１の例において、コンピューティングデバイス２は、受信した通信に少なくとも一部基づいて、受信した通信に対する１つ以上の候補レスポンスを決定することができる。アプリケーションモジュール１０Ａは、インターネットメッセージに対して応答するためのユーザの選択を示すデータ（たとえば入力２５の指示）を受けると、通信レスポンスモジュール１２と通信することにより、少なくとも１つの候補レスポンスを取得することができる。候補レスポンスは、受信した通信に対するレスポンスとしてユーザが選択できるメッセージであってもよい。たとえば、図１の例において、通信レスポンスモジュール１２が決定する各候補レスポンスは、コンピューティングデバイス２がインターネットメッセージ「子犬にはとてもいい名前ですね」に応答するためにユーザの選択に基づいて送信し得るメッセージであってもよい。候補レスポンスの例は、テキスト（たとえば、文字、単語、数、句読点）、絵文字、画像もしくはアイコン、ミーム（meme）、ビデオ、音声、またはその他のコンテンツのうちの１つ以上を含み得る。
【００３１】
アプリケーションモジュール１０Ａは、候補レスポンスを得るために、通信レスポンスモジュール１２に対して候補レスポンスを要求することができる。いくつかの例において、受信した通信に対する候補レスポンスを求める要求は、受信した通信に含まれる情報の少なくとも一部を含み得る。いくつかの例において、要求は、追加のまたはその他の情報、たとえば、通信メタデータ、位置情報、ユーザ情報、その他の通信（たとえば、コンピューティングデバイス２のユーザと受信通信の送信元との間の通信のスレッドもしくはチェーンにおけるその他のメッセージ）、または、受信通信に関する、コンピューティングデバイスに関する、もしくはコンピューティングデバイスのユーザに関するその他の情報を、含み得る。いくつかの例において、アプリケーションモジュール１０は、要求を生成するだけである、および／または、コンピューティングデバイス２のユーザがアプリケーションモジュール１０がそうすることについて明確な許可を与える場合は個人データ（たとえば受信通信に含まれる情報またはその他の情報）を取得するだけである。
【００３２】
先に述べたことに加えて、本明細書に記載のシステム、プログラムまたは特徴がユーザ情報（たとえば、ユーザの社会的ネットワーク、社会的行動もしくは活動、職業、ユーザの嗜好、またはユーザの現在位置に関する情報）の収集を可能にしてもよいか否かおよびいつそうするかについて、ならびに、サーバからユーザにコンテンツまたは通信を送信するか否かについて、ユーザが選択を行えるようにするコントロールを、ユーザに与えることができる。加えて、特定のデータは、格納または使用される前に、個人を特定できる情報が削除されるよう、１つ以上の方法で処理されてもよい。たとえば、ユーザの個人情報が、ユーザの個人特定情報を判別できないように処理されてもよく、または、位置情報（都市、郵便番号、またはステートレベル等）が取得される場合はユーザの地理的位置を一般化してユーザの特定の位置を判断できないようにしてもよい。このように、ユーザは、ユーザに関するどのような情報が収集されるか、この情報がどのように使用されるか、およびどのような情報をユーザに提供するかについて、コントロールを有することができる。
【００３３】
本発明の局面に従うと、通信レスポンスモジュール１２は、受信した通信に応答するための候補レスポンスを生成することを求める要求をアプリケーション１０Ａから受けることができ、また、受信した通信に関連性がある１つ以上の候補レスポンスを生成するために機械訓練モデルを利用することによって候補レスポンスを決定することができる。機械訓練モデルは、機械学習技術を用いてオフデバイスで生成および訓練することができ、候補レスポンスの生成に使用するためにコンピューティングデバイス２にロードすることができる。候補レスポンスを生成するとき、機械訓練モデルは、受信した通信の何らかの指示をオフデバイスでは送信しない。すなわち、機械訓練モデルは、コンピューティングデバイス２で実行されるとき、候補レスポンスを生成するために、遠隔サーバシステムもしくはクラウドコンピューティングリソースといった遠隔コンピューティングデバイスで実行されるモデルまたはその他のアプリケーションもしくはサービスを利用するのではない。機械訓練モデルが如何にして生成されるかについてのさらに他の詳細を、図４との関連で説明し、コンピューティングデバイス２が候補レスポンスを生成するために機械訓練モデルを如何にして利用するかについてのさらに他の詳細を、図５との関連で説明する。
【００３４】
図１の非限定的な例において、通信レスポンスモジュール１２は、「子犬にはとてもいい名前ですね」というインターネットメッセージに対する１つ以上の候補レスポンスを決定し、１つ以上の候補レスポンスの少なくとも指示を、アプリケーションモジュール１０Ａに送ることができる。アプリケーションモジュール１０Ａは、決定された候補レスポンスの指示を受け、候補レスポンスのうちの少なくとも１つをＵＩデバイス４に表示させるためのデータをＵＩモジュール６に送ることができる。たとえば、アプリケーションモジュール１０Ａは、ＵＩデバイス４にＧＵＩ２６を出力させるためのデータを送ることができる。
【００３５】
図１の例に示すように、ＧＵＩ２６は、レスポンスオプション２８Ａ〜２８Ｃ（まとめて「レスポンスオプション２８」）を含む。レスポンスオプション２８は各々、通信レスポンスモジュール１２から受信した候補レスポンスを表すことができる。すなわち、「子犬にはとてもいい名前ですね」というＳＭＳメッセージに対する候補レスポンスを求める要求を受けたことに応じて、通信レスポンスモジュール１２は、受けた通信に対して応答するための一組の候補レスポンスを決定することができる。通信レスポンスモール１２は、ＧＵＩ２６において提示するために、一組の候補レスポンスのうちのいくつかまたはすべてを選択することができる。図１の例において、通信レスポンスモジュール１２は、レスポンスオプション２８Ａ、２８Ｂ、および２８Ｃにそれぞれ対応する、ＧＵＩ２６において提示する３つの候補レスポンス「ありがとう！」、「私も気に入っています」、および「そう言ってくれてありがとう」を、選択することができる。
【００３６】
図１の例において、レスポンスオプション２８は各々、通信レスポンスモジュール１２から受けた候補レスポンスを表しているが、その他の例において、レスポンスオプション２８のうちの１つ以上が、アプリケーションモジュール１０Ａから与えられたレスポンス等のその他のレスポンスオプションを表すまたは含むことが可能である。いくつかの例において、アプリケーションモジュールは、さまざまな種類の情報に基づいて、受信した１つ以上の候補レスポンスを修正してもよく、レスポンスオプション２８のうちの１つ以上が、修正された候補レスポンスを表していてもよい。いずれにしても、ＧＵＩ２６のレスポンスオプション２８は、受信したインターネットメッセージに応じてコンピューティングデバイス２に送信させる候補レスポンスをコンピューティングデバイス２のユーザが選択できるようにする。いくつかの例において、ＧＵＩ２６はマニュアル入力オプションを含んでいてもよい。マニュアル入力オプションは、コンピューティングデバイス２のユーザが、カスタムレスポンスを（たとえば音声入力、タッチ入力、またはその他の入力を利用して）入力できるようにすることが可能である。カスタムレスポンスは、たとえば、レスポンスオプション２８のうちの１つが示すレスポンスが不適当または不正確であるときに使用することができる。
【００３７】
図１の例において、コンピューティングデバイス２は、１つ以上の候補レスポンスから１つの候補レスポンスを選択するユーザ入力の指示を受けることができる。一般的に、ユーザ入力の指示は、タッチもしくは触覚入力、声の入力もしくはその他の音声入力、またはその他いずれかの形態の入力といった、１つ以上の入力デバイスにおいてユーザが提供する入力を表すデータであってもよい。たとえば、コンピューティングデバイス２のユーザは、ＵＩデバイス４の位置におけるまたはその近くにおけるタップジェスチャーを含み得る入力２９を、ＵＩデバイス４において与えることができる。ＵＩデバイス４は、入力２９を検出しこの入力の指示をＵＩモジュール６に与えることができる。ＵＩモジュール６は、受信した指示に基づいて、アプリケーションモジュール１０Ａにデータを与えることができ、アプリケーションモジュール１０Ａは、入力２９がレスポンスオプション２８Ａの選択に対応すると判断することができる。
【００３８】
図１の例において、コンピューティングデバイス２は、候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを送信することができる。すなわち、レスポンスオプション２８のうちの１つを選択するかまたはカスタムレスポンスを入力することにより、アプリケーションモジュール１０Ａが、メッセージの受信者のコンピューティングデバイスを含み得る、その他１つ以上のコンピューティングデバイスに、選択されたレスポンスを送信するようにすることができる。たとえば、アプリケーションモジュール１０Ａは、レスポンスオプション２８Ａを選択する入力２９の指示を受けると、レスポンスオプション２８Ａ（たとえば「ありがとう！」）に対応する候補レスポンスを送信することができる。いくつかの例において、選択されたレスポンスは、インターネットメッセージの送信元であるコンピューティングデバイスに直接送信してもよい。いくつかの例において、選択されたレスポンスは、コンピューティングデバイス２が接続されるネットワーク（たとえばセルラーまたはワイヤレスネットワーク）をともに表す１つ以上のデバイスといった、追加のまたはその他のコンピューティングデバイスに、送信することができる。すなわち、コンピューティングデバイス２は、インターネットメッセージの送信元であるコンピューティングデバイスに、これら２つのコンピューティングデバイス間のルートに沿って位置するネットワークデバイスまたはその他のデバイスに選択されたレスポンスを送信することにより、選択されたレスポンスを送信することができる。いくつかの例において、選択されたレスポンスは、さらにまたは代わりに、後に改善された候補レスポンスを与えるときに使用するために、サーバシステムまたはクラウドコンピューティング環境等のその他のデバイスに送信してもよい。
【００３９】
本開示の技術は、受信した通信に関連する候補レスポンスを提供することにより、コンピューティングデバイス２のユーザが受信した通信に対するレスポンスを入力するのに要する時間の量を短縮できる。たとえば、腕時計またはその他のデバイス等のウェアラブルコンピューティングデバイスが、受信した通信に基づく候補レスポンスをユーザに対して表示することにより、ユーザは、レスポンスを入力するために音声認識またはその他の手段を使用しなくてもよく、候補レスポンスのうちの１つを素早くタップするかそうでなければ選択すればよい。さらに、機械訓練モデルを通して候補レスポンスを生成することにより、コンピューティングデバイスは、受信した通信に対するレスポンスとして提供するために、ユーザが選択する可能性がより高い候補レスポンスを生成することができ、それによって、ユーザがレスポンスを入力するために音声認識またはその他の手段を使用する必要性を減じることができる。加えて、コンピューティングデバイス２は、オフデバイス機械訓練モデルとの間でインターネットを介して情報を送受信しなければならない場合と比較して、オンデバイス機械訓練モデルを通して候補レスポンスを生成するときの待ち時間を短縮することができる。
【００４０】
図２は、本開示の１つ以上の技術に従う、受信した通信に対するレスポンスの送信に応じて文脈上関連がある動作を実行するためのコンピューティングデバイス２の一例の詳細を示すブロック図である。以下では図２を図１の文脈の中で説明する。図２は、コンピューティングデバイス２の例を１つだけ示しており、より多くの、より少ない、または異なるコンポーネントを有するその他多くのデバイスの例を、本開示の技術に従って動作を実行するように構成可能であってもよい。
【００４１】
図２の例では１つのデバイスの一部として示されているが、いくつかの例において、コンピューティングデバイス２のコンポーネントは、異なるデバイスの中に位置していてもよく、および／またはその一部であってもよい。たとえば、いくつかの例において、通信レスポンスモジュール１２の機能のうちの一部またはすべてが、サーバシステムまたはその他のコンピューティングデバイス（たとえばネットワークを介してコンピューティングデバイス２からアクセス可能なもの）に位置していてもよい。すなわち、いくつかの例において、本開示の技術は、１つのコンピューティングデバイスが実施および利用することができるが、その他の例において、この技術を、分散または「クラウド」コンピューティングシステム等の遠隔または外部コンピューティングシステムで実施および／または利用してもよい。コンピューティングデバイス２は、候補レスポンスのうちの１つの選択を受けると、選択された候補レスポンスの少なくとも指示を遠隔デバイスに送信し、動作を実施するために実行可能な命令を含むレスポンスを受信することにより、当該候補レスポンスに文脈上関連がある動作を決定することができる。
【００４２】
いくつかの例において、コンピューティングデバイス２はウェアラブルコンピューティングデバイスを表していてもよい。ウェアラブルコンピューティングデバイスは、スマートウォッチ、ヘッドマウントコンピューティングデバイス（たとえば眼鏡、帽子、イヤフォン、コンタクトレンズ、またはその他同様のアイテムに組み込まれたコンピューティングデバイス）、インプラント可能なデバイス、または、ユーザが自分自身に装着できるその他いずれかのデバイスといった、ユーザが着用できるまたはユーザに装着できる何らかのコンピューティングデバイスであってもよい。スマートウォッチ等のウェアラブルコンピューティングデバイスの一部は、ユーザからの各種入力を受けるための１つ以上の入力デバイス、ユーザに対して音声、視覚、触覚、またはその他の出力を与えるための１つ以上の出力デバイス、その他のコンピューティングデバイスと通信するための１つ以上のネットワークインターフェイス、情報を得るための１つ以上のセンサ、および／またはその他のコンポーネントを含み得る。
【００４３】
いくつかの例において、ウェアラブルデバイスは、何らかの動作を実行するためにモバイルデバイス（たとえばスマートフォン）またはその他のデバイスと通信することができる。たとえば、いくつかの例において、本開示の技術の一部はスマートウォッチによって実施されてもよく、一部はその他１つ以上のコンピューティングデバイス（たとえば、スマートウォッチに無線接続されたスマートフォン、スマートフォンが通信できるサーバデバイス、またはその他のデバイス）によって実施されてもよい。言い換えると、本明細書ではコンピューティングデバイス２の１つ以上のコンポーネントによって実施されると説明しているが、本明細書に記載の技術に従い、候補レスポンスおよび／または文脈上関連がある動作を決定するように構成可能なコンポーネントのうちのいくつかを、複数のコンピューティングデバイスに分散させてもよい。
【００４４】
図２の例に示すように、コンピューティングデバイス２は、ユーザインターフェイス（ＵＩ）デバイス４と、１つ以上のプロセッサ４０と、１つ以上の入力コンポーネント４２と、１つ以上の出力コンポーネント４４と、１つ以上の通信部４６と、１つ以上のセンサ４８と、１つ以上の記憶装置５０とを含む。記憶装置５０はさらに、ユーザインターフェイス（ＵＩ）６と、通信レスポンスモジュール１２と、アプリケーションモジュール１０と、通信レスポンスモジュール１４とを含む。図２の例において、通信レスポンスモジュール１４はレスポンス提案モジュール５４を含む。
【００４５】
コンポーネント４、４０、４２、４４、４６、４８、および５０は各々、コンポーネント間通信のために（物理的に、通信可能に、および／または作動的に）相互接続されていてもよい。図２の例において、コンポーネント４、４０、４２、４４、４６、４８、および５０は、１つ以上の通信チャネル５２によって結合されていてもよい。いくつかの例において、通信チャネル５２は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータ通信のためのその他何らかのチャネルを含み得る。モジュール６、１０、１２、および５４も、相互に、および、コンピューティングデバイス２内のその他のコンポーネントと、情報をやり取りしてもよい。
【００４６】
図２の例において、１つ以上の入力コンポーネント４２は、入力を受けるように動作可能であってもよい。入力の例は、触覚、音声、およびビデオ入力である。一例において、入力コンポーネント４２は、存在感知もしくはタッチ感知ディスプレイ、マウス、キーボード、音声応答システム、ビデオカメラ、マイクもしくはその他の音声センサ、または、人間もしくは機械からの入力を検出するためのその他何らかのタイプのデバイスを含む。
【００４７】
図２の例において、１つ以上の出力コンポーネント４４は、出力を生成するように動作可能であってもよい。出力の例は、触覚、音声、およびビデオ出力である。いくつかの例において、コンピューティングデバイス２の出力コンポーネント４４は、存在感知ディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、スピーカー、陰極線管（ＣＲＴ）モニタ、液晶ディスプレイ（ＬＣＤ）、または人間もしくは機械に対する出力を生成するためのその他何らかのタイプのデバイスを含む。
【００４８】
いくつかの例において、ＵＩデバイス４は、入力コンポーネント４２および／または出力コンポーネント４４の機能を含み得る。たとえば、図２の例において、ＵＩデバイス４は、存在感知入力デバイスであってもよい、または、存在感知入力デバイスを含んでいてもよい。いくつかの例において、存在感知入力デバイスは、この存在感知入力デバイスにおけるおよび／またはその近くにおける物体を検出することができる。範囲の一例として、存在感知入力デバイスは、この存在感知入力デバイスから２インチ以内にある指またはスタイラス等の物体を検出することができる。別の範囲の例として、存在感知入力デバイスは、この存在感知入力デバイスから６インチ以内にある物体を検出することができ、その他の範囲も可能である。存在感知入力デバイスは、物体が検出された存在感知入力デバイスの位置（たとえば（ｘ，ｙ）座標）を求めることができる。存在感知入力デバイスは、容量性、誘導性、および／または光学認識技術を用いて入力デバイスが選択した位置を求めることができる。いくつかの例において、存在感知入力デバイスは、出力コンポーネント４４に関して説明したように、触覚刺激、音声刺激、または映像刺激を利用して出力をユーザに提供し、存在感知ディスプレイと呼ぶことがある。
【００４９】
ＵＩデバイス４は、コンピューティングデバイス２の内部コンポーネントとして示されているが、入力および出力を送信および／または受信するためにコンピューティングデバイス２とデータ径路を共有する外部コンポーネントを表していてもよい。すなわち、いくつかの例において、ＵＩデバイス４は、コンピューティングデバイス２の外装の内部に位置しこの外装に物理的に接続された、コンピューティングデバイス２の内蔵コンポーネント（たとえば携帯電話またはウェアラブルコンピューティングデバイス上の画面）を表していてもよい。いくつかの例において、ＵＩデバイス４は、コンピューティングデバイス２の外装の外部に位置しこの外装から物理的に分離されている、コンピューティングデバイス２の外部コンポーネント（たとえば、コンピューティングデバイス２と有線および／または無線データ径路を共有するモニタ、プロジェクタ、またはその他のディスプレイデバイス）を表していてもよい。
【００５０】
図２の例において、１つ以上の通信部４６は、１つ以上のネットワーク上でネットワーク信号を送信および／または受信することにより、上記１つ以上のネットワークを介して外部デバイスと通信するように動作可能であってもよい。たとえば、コンピューティングデバイス２は、通信部４６を用いて、セルラー無線ネットワーク等の無線ネットワーク上で無線信号を送信および／または受信することができる。同様に、通信部４６は、グローバルポジショニングシステム（ＧＰＳ）ネットワーク等の衛星ネットワーク上で衛星信号を送信および／または受信することができる。通信部４６の例は、ネットワークインターフェイスカード（イーサネット（登録商標）カード等）、光トランシーバ、無線周波数トランシーバ、または情報を送信および／または受信できるその他何らかの種類のデバイスを含む。通信部４６のその他の例は、近距離無線通信（ＮＦＣ）部、Bluetooth（登録商標）無線機、短波無線機、セルラーデータ無線機、無線ネットワーク（たとえばＷｉ−Ｆｉ（登録商標））無線機、およびユニバーサルシリアルバス（ＵＳＢ）コントローラを含み得る。
【００５１】
図２の例において、１つ以上のセンサ４８は、コンピューティングデバイス２のコンポーネントが使用するデータを生成するように動作することができる。センサ４８は、コンピューティングデバイス２に関するデータ、コンピューティングデバイス２が存在する環境に関するデータ、コンピューティングデバイス２のユーザに関するデータ、またはその他のデータを取得することが可能な何らかのデバイスまたはコンポーネントを含み得る。すなわち、センサ４８のうちのいずれかは、情報を取得するための、ハードウェア、ファームウェア、ソフトウェア、またはその組み合わせであってもよい。センサ４８の例は、ＧＰＳセンサもしくはＧＰＳ無線機、位置センサ、加速度計、ジャイロスコープ、またはその他のモーションセンサ、カメラ、コンパス、磁力計、光センサ、赤外センサ、マイクもしくはその他音声センサ、放射線センサ、温度センサ、気圧計、高度計、またはその他のデータ収集コンポーネントを含み得る。
【００５２】
図２の例において、１つ以上の記憶装置５０は、コンピューティングデバイス２の動作中に処理する情報を格納するように動作可能であってもよい。いくつかの例において、記憶装置５０は一時記憶装置を表していてもよい。これは、記憶装置５０の主要な目的が長期記憶ではないことを意味する。たとえば、コンピューティングデバイス２の記憶装置５０は、情報の短期記憶用に構成された揮発性メモリであってもよく、そのため、電源がオフのになると格納されたコンテンツを保持しない。揮発性メモリの例は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、および当該技術で周知のその他の形態の揮発性メモリを含む。
【００５３】
いくつかの例において、記憶装置５０はまた、１つ以上のコンピュータ読取可能記憶媒体を表す。すなわち、記憶装置５０は、一時記憶装置よりも多くの量の情報を格納するように構成されてもよい。たとえば、記憶装置５０は、電源オン／オフサイクルを通じて情報を保持する不揮発性メモリを含み得る。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、または電気的プログラム可能なメモリ（electrically programmable memory）（ＥＰＲＯＭ）または電気的消去およびプログラム可能なメモリ（electrically erasable and programmable memory）（ＥＥＰＲＯＭ）の形態を含む。いずれにしても、図２の例において、記憶装置５０は、モジュール６、１０、１２、および５４に対応付けられたプログラム命令および／またはデータを格納することができる。
【００５４】
図２の例において、１つ以上のプロセッサ４０は、コンピューティングデバイス２の中で機能を実現するおよび／または命令を実行するように構成されてもよい。たとえば、プロセッサ４０は、ＵＩモジュール６、アプリケーションモジュール１０、通信レスポンスモジュール１２、およびレスポンス提案モジュール５４の機能を実現する記憶装置５０に格納された命令を受けて実行するように動作可能であってもよい。これらの命令は、プロセッサ４０によって実行されると、プログラム実行中においてコンピューティングデバイス２が情報を記憶装置５０（たとえば一時記憶装置）に格納するようにすることができる。プロセッサ４０は、モジュール６、１０、１２、および５４の命令を実行することにより、コンピューティングデバイス２が通信を受信したことに応じてＵＩデバイス４が候補レスポンスを出力するようにすることができる。すなわち、モジュール６、１０、１２、および５４は、プロセッサ４０によって操作されて、受信した通信に対する候補レスポンスの予測を含む、各種アクションを実行することができる。
【００５５】
図２の例において、コンピューティングデバイス２は、通信を受信することができる。この通信は、メッセージまたは一連のメッセージであってもよい。たとえば、通信は、ユーザが遠隔コンピューティングデバイスからコンピューティングデバイス２のユーザに送信する一連のメッセージ（たとえばテキストメッセージ）であってもよい。いくつかの例において、通信部４６のうちの１つは、ネットワーク（たとえば無線ネットワーク、セルラーネットワーク、インターネット、イントラネット等）から、ＳＭＳプロトコルに準拠しテキストメッセージを表すデータ、または、特定のインターネットメッセージングフォーマットに準拠するネットワークからのデータを受信することができる。通信部４６は、受信したデータを、受信したデータを処理するものとして指定された（たとえば過去にユーザによって指定された）、アプリケーションモジュール１０Ａ等のアプリケーションモジュール１０のうちの１つ以上に与えることができる。
【００５６】
アプリケーションモジュール１０Ａは、テキストメッセージを受け、コンピューティングデバイス２がこのテキストメッセージの少なくとも指示を出力するようにすることができる。たとえば、アプリケーションモジュール１０Ａは、テキストメッセージに含まれるテキスト（たとえば「子犬にはとてもいい名前ですね」）の視覚表現、および、テキストメッセージに含まれる画像、ビデオ、絵文字、ステッカー等を、ＵＩデバイス４または出力コンポーネント４４のうちのいずれかが表示するようにする情報を、ＵＩモジュール６に送ることができる。コンピューティングデバイス２のユーザは、この出力を見て、テキストメッセージに応答することをコンピューティングデバイス２に指示する入力を与えることができる。すなわち、ＵＩモジュール６は、受信したテキストメッセージに応答するためのオプションを選択する、ＵＩデバイス４または入力コンポーネント４２のうちのいずれかで実行される入力の指示を受けることができる。ＵＩモジュール６は、この入力の指示をアプリケーションモジュール１０Ａに与えることができる。
【００５７】
アプリケーションモジュール１０Ａは、テキストメッセージに応答することをコンピューティングデバイス２に指示する入力を受けたことに応じて、通信レスポンスモジュール１２に候補レスポンスを要求することができる。候補レスポンスを要求する際、アプリケーションモジュール１０Ａは、テキストメッセージ（たとえば「子犬にはとてもいい名前ですね」というテキスト）に含まれていた情報、および／または他の情報（たとえば、テキストメッセージ等に含まれている、テキストメッセージの送信者の表示、送信者と受信者との間でやり取りされた過去のテキストメッセージの表示、画像の表示、ビデオ等）を提供することができる。すなわち、各種例において、候補レスポンスを求める要求は、受信した電子メール、受信したテキストメッセージ、受信したアプリケーション通知、受信したカレンダ−招待、リマインダー、またはその他の通信に含まれていた情報を含み得る。いくつかの例において、候補レスポンスを求める要求は、受信した通知に含まれる情報すべてを含み得る。すなわち、要求は、電子メール、テキストメッセージ等の全体を含み得る。その他の例において、要求は情報の一部を含み得る。たとえば、要求は、受信した通信に示される日付および時間、示されている位置、会議の参加者の名前、絵文字、写真、またはその他の情報を含み得る。通信レスポンスモジュール１２は、候補レスポンスを求める要求を受け、この要求をレスポンス提案モジュール５４に与えることができる。
【００５８】
レスポンス提案モジュール５４は、受信した通信に応答するための候補レスポンスを求める要求を受けるように動作可能であってもよい。レスポンス提案モジュール５４は、この要求を受けたことに応じて、受信した通信に対する１つ以上の候補レスポンスを決定することができる。レスポンス提案モジュール５４は、各種機械学習技術を用いて、受信した通信に対する１つ以上の候補レスポンスを決定してもよい。
【００５９】
レスポンス提案モジュール５４は、レスポンス提案モデル５６を含む、またはレスポンス提案モデル５６に作動的に結合することができる。レスポンス提案モジュール５４は、オンデバイス機械訓練モデル５６（以下レスポンス提案モデル５６と呼ぶ）を用いて、受信した通信に対する１つ以上の候補レスポンスを決定することができる。レスポンス提案モデル５６は、受信した通信に対する適切なレスポンスを学習するためにオフデバイスで（すなわちコンピューティングデバイス２以外のデバイス上で）訓練された機械訓練モデルであってもよい。
【００６０】
レスポンス提案モデル５６は、予測レスポンスのランク付けリストに各ビットベクトルが対応付けられるよう、予測レスポンスのランク付けリストに対応付けられた一組のビットベクトルを含み得る。レスポンス提案モジュール５４は、受信した通信を、たとえば８ビットベクトル等の固定長ビットベクトルに変換することができる。たとえば、レスポンス提案モジュール５４は、局所性鋭敏型ハッシュ（ＬＳＨ）ハッシングの修正形を実施することにより、受信した通信をハッシュシグネチャ（たとえばビットベクトル）に射影することができる。レスポンス提案モデル５６は、各ビットベクトルを予測レスポンスのランク付けリストに対応付けるように機械訓練されたものなので、レスポンス提案モジュール５４は、ビットベクトルに対応付けられた予測レスポンスのランク付けリストに少なくとも一部基づいて、受信した通信に対する１つ以上の候補レスポンスを決定することができる。
【００６１】
予測レスポンスのランク付けリストから候補レスポンスを決定するために、レスポンス提案モジュール５４は、たとえば、候補レスポンスとして、上位Ｎ個の予測レスポンスを取り出してもよい。Ｎは、ＵＩデバイス４による表示のためにＵＩモジュール６から出力されることになる候補レスポンスの数であってもよく、または、３、４等といったその他の適切な整数であってもよい。その他の例において、Ｎは、これもＵＩモジュール６から出力されることになるその他の方法によって決定されたその他１つ以上の候補レスポンス（たとえばその他の１つ以上のデフォルト候補レスポンス）に加えてＵＩモジュール６から出力されることになる候補レスポンスの数であってもよい。
【００６２】
レスポンス提案モジュール５４は、意味的に類似する受信通信を、同様のビットベクトルにハッシュすることができる。ビットベクトルは、同一ビットの実質的な重複を含むのであれば同様とみなすことができる。たとえば、レスポンス提案モジュール５４は、「こんにちは、すべて順調？」という受信通信を、ビットベクトル「１１１００１１０」にハッシュすることができ、「やあ、調子はどう？」という受信通信を、ビットベクトル「１１１０００１１」にハッシュすることができる。さらに、これらの受信通信および得られたハッシュされたビットベクトルは類似しているので、得られたハッシュされたビットベクトルを、同様のまたは同一の、予測レスポンスのランク付けリストに、マッピングすることができる。たとえば、この例において、上記２つのビットベクトルは、「まあまあです、あなたは？」および「調子はいいよ、あなたはどう？」という予測レスポンスの、同一のランク付けリストに、マッピングすることができる。
【００６３】
レスポンス提案モジュール５４は、自身が生成した候補レスポンスを、パーソナライズされた１つ以上の候補レスポンスを決定しこのパーソナライズされた１つ以上の候補レスポンスを候補レスポンスに含めることにより、パーソナライズすることもできる。そのために、レスポンス提案モジュール５４は、パーソナライズモデル５８を利用して、コンピューティングデバイス２のユーザに対する過去に受信したメッセージに応答するためにこのユーザが送信した過去のレスポンスに基づいて、パーソナライズされた１つ以上の候補レスポンスを生成することができる。ユーザが送信した過去のレスポンスは、このユーザの、語調、文語調、大文字使用、文法等の、文章作成スタイルを、より上手く取り入れている可能性があるので、このような過去のレスポンスを候補レスポンスに含めることにより、受信した通信に応答するために生成される候補レスポンスをより上手くパーソナライズすることができる。
【００６４】
メッセージを送信および受信しメッセージに対するレスポンスを送信することができる１つ以上のメッセージングアプリケーション等のアプリケーションモジュール１０は、過去に送受信されたメッセージのメッセージ履歴を通信履歴３２に保存することができる。通信履歴３２は、ユーザに対する、コンピューティングデバイス２が受信した過去のメッセージに対応付けられた情報、および、ユーザが送信した、これら過去のメッセージに対するレスポンスを、含み得る。このような過去に受信したメッセージおよび過去のレスポンスは、検索可能および／またはそうでなければカテゴライズすることができる、構造化されたおよび／または構造化されていないデータとして保存されてもよい。いくつかの例において、通信履歴３２の中のデータは、ユーザのプライバシーを守るために暗号化されてもよい。
【００６５】
通信レスポンスモジュール１２は、パーソナライズモデル５８を含み得る。パーソナライズモデル５８は、ユーザが送信したいずれかの過去のレスポンスが、受信した通信に対する予測された１つ以上のレスポンスに、意味的に類似する（たとえば趣旨が同様）か否かを判断し、これら過去のレスポンスを含めることができる。そうであれば、レスポンス提案モジュール５４は、予測レスポンスに意味的に類似する過去のレスポンスを、パーソナライズされた候補レスポンスとして含めることができる。レスポンス提案モジュール５４は、一組の候補レスポンスにおいて、予測レスポンスをパーソナライズされたレスポンスに置き換えてもよく、または、候補レスポンスに、予測レスポンスに加えてパーソナライズされた候補レスポンスを含めてもよい。
【００６６】
レスポンス提案モジュール５４は、候補レスポンスを決定した後に、これらの候補レスポンスをアプリケーションモジュール１０Ａに与えることができる。図２の例において、アプリケーションモジュール１０Ａは、候補レスポンスを受け、候補レスポンスを表現したものをＵＩデバイス４または出力コンポーネント４４のうちの１つ以上に表示させるためのデータをＵＩモジュール６に送ることができる。コンピューティングデバイス２のユーザは、表示されたレスポンスを見て、候補レスポンスのうちの１つを選択する入力を与える、または、カスタムレスポンスを入力することができる。すなわち、ＵＩモジュール６は、ＵＩデバイス４または入力コンポーネント４２のうちのいずれかで実行される、候補レスポンスを表すレスポンスオプションを選択する入力、または、カスタムレスポンスを入力するという入力の指示を受けることができる。ＵＩモジュール６は、この入力の指示をアプリケーションモジュール１０Ａに与えることができる。アプリケーションモジュール１０Ａは、レスポンスを選択する入力の指示を受け、その指示を受けたことに応じて、選択されたレスポンスを送信することができる。たとえば、図２の例において、アプリケーション１０Ａは、候補レスポンス「ありがとう！」を選択する入力の指示を受けることができ、選択された候補レスポンスを（たとえば受信した通信の送信者に）送信することができる。
【００６７】
いくつかの例において、パーソナライズモデル５８および／または通信履歴３２は、記憶装置５０に格納される代わりに外部コンピューティングデバイスに格納されて、パーソナライズモデル５８を外部コンピューティングデバイス上で実行できるようにしてもよい。たとえば、コンピューティングデバイス２がスマートウォッチ等のウェアラブルデバイスである場合、コンピューティングデバイス２を、スマートフォン等の外部コンピューティングデバイスとペアリングしてもよい。この場合、コンピューティングデバイス２は、外部コンピューティングデバイスを介して通信（たとえばテキストメッセージ）を送受信し、外部コンピューティングデバイスが、受信した通信をコンピューティングデバイス２に転送することができかつコンピューティングデバイス２から送信されたメッセージをこのメッセージが意図する受信者に転送できるようにしてもよい。
【００６８】
図３は、本開示の１つ以上の技術に従う、遠隔デバイスにおいて表示するグラフィカルコンテンツを出力するコンピューティングデバイスの一例を示すブロック図である。一般的に、グラフィカルコンテンツは、テキスト、画像、一群の動画等のような、表示用に出力できる何らかの視覚情報を含み得る。図３に示す例は、コンピューティングデバイス６０と、存在感知ディスプレイ６４と、通信部７０と、プロジェクタ８０と、プロジェクタスクリーン８２と、モバイルデバイス８６と、視覚ディスプレイデバイス９０とを含む。図１および図２では一例としてスタンドアロンのコンピューティングデバイス２として示されているが、一般的に、コンピューティングデバイス６０のようなコンピューティングデバイスは、ソフトウェア命令を実行するためのプロセッサまたはその他好適な計算環境を含む何らかのコンポーネントまたはシステムであればよく、たとえば、存在感知ディスプレイを含む必要はない。
【００６９】
図３の例に示すように、コンピューティングデバイス６０は、図２のプロセッサ４０について説明した機能を含むプロセッサであってもよい。このような例において、コンピューティングデバイス６０は、システムバスまたはその他適切な接続であればよい通信チャネル６２Ａによって存在感知ディスプレイ６４に作動的に結合することができる。コンピューティングデバイス６０は、これもシステムバスまたはその他適切な接続であればよい通信チャネル６２Ｂによって、以下でさらに説明する通信部７０にも作動的に結合することができる。図３では一例として別々に示されているが、コンピューティングデバイス６０は、１つ以上の通信チャネルのうちの任意の数の通信チャネルによって、存在感知ディスプレイ６４と通信部７０とに作動的に結合することができる。
【００７０】
その他の例において、図１〜図２のコンピューティングデバイス２によって先に示したように、コンピューティングデバイスは、携帯電話（スマートフォンを含む）、ラップトップコンピュータ等といったポータブルまたはモバイルデバイスを指していてもよい。いくつかの例において、コンピューティングデバイスは、デスクトップコンピュータ、タブレットコンピュータ、スマートテレビプラットフォーム、カメラ、携帯情報端末（ＰＤＡ）、サーバ、メインフレーム等であってもよい。
【００７１】
図２に示す入力コンポーネント４２および／または出力コンポーネント４４のうちの１つとしての存在感知ディスプレイ６４は、ディスプレイコンポーネント６６と、存在感知入力コンポーネント６８とを含み得る。ディスプレイコンポーネント６６は、たとえば、コンピューティングデバイス６０からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知入力コンポーネント６８は、容量性、誘導性、および／または光認識技術を用いて存在感知ディスプレイ６４における１つ以上のユーザ入力（たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等）を判別し、このようなユーザ入力の指示を通信チャネル６２Ａを用いてコンピューティングデバイス６０に送ることができる。いくつかの例において、存在感知入力コンポーネント６８を物理的にディスプレイコンポーネント６６の上に配置することで、ディスプレイコンポーネント６６が表示するグラフィカル要素の上にユーザが入力装置を置いたときに、存在感知入力コンポーネント６８が入力装置を感知する位置が、上記グラフィカル要素が表示されているディスプレイコンポーネント６６の位置に対応するようにしてもよい。他の例において、存在感知入力コンポーネント６８を物理的にディスプレイコンポーネント６６から離れた場所に配置し存在感知入力コンポーネント６８の位置がディスプレイコンポーネント６６の位置に対応するようにすることで、存在感知入力コンポーネント６８で入力を行うとディスプレイコンポーネント６６の対応する位置に表示されるグラフィカルエレメントとのやり取りが行われるようにしてもよい。
【００７２】
図３に示すように、コンピューティングデバイス６０は、通信部７０を含んでいてもよく、および／または通信部７０に作動的に結合されてもよい。通信部７０は、図２に記載の通信部４６の機能を含み得る。通信部７０の例は、ネットワークインターフェイスカード、イーサネットカード、光トランシーバ、無線周波数トランシーバ、または情報を送受信できるその他何らかの種類のデバイスを含み得る。このような通信部のその他の例は、Bluetooth、３ＧおよびＷｉ−Ｆｉ無線機、ユニバーサルシリアルバス（ＵＳＢ）インターフェイス等を含み得る。コンピューティングデバイス６０はまた、図示の都合と煩雑になるのを避けるために図３には示していないその他１つ以上のデバイス、たとえば入力デバイス、出力デバイス、メモリ、記憶装置等を含んでいてもよく、および／またはこのような装置に作動的に結合されてもよい。
【００７３】
図３はまた、プロジェクタ８０およびプロジェクタスクリーン８２を示す。投影装置のその他のこのような例は、電子ホワイトボード、ホログラムディスプレイデバイス、およびグラフィカルコンテンツを表示するのに適したその他何らかのデバイスを含み得る。プロジェクタ８０およびプロジェクタスクリーン８２は、各デバイスがコンピューティングデバイス６０と通信できるようにする１つ以上の通信部を含み得る。いくつかの例において、１つ以上の通信部によってプロジェクタ８０とプロジェクタスクリーン８２との間で通信を行えるようにしてもよい。プロジェクタ８０は、グラフィカルコンテンツを含むデータをコンピューティングデバイス６０から受信することができる。プロジェクタ８０は、このデータを受信したことに応じて、このグラフィカルコンテンツをプロジェクタスクリーン８２上に投影することができる。いくつかの例において、プロジェクタ８０は、光認識技術またはその他適切な技術を用いてプロジェクタスクリーンにおける１つ以上のユーザ入力（たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等）を判別し、このようなユーザ入力の指示を１つ以上の通信部を用いてコンピューティングデバイス６０に送信することができる。このような例において、プロジェクタスクリーン８２は不要の場合があり、プロジェクタ８０は、何らかの適切な媒体にグラフィカルコンテンツを投影し、光認識またはその他のこのような適切な技術を用いて１つ以上のユーザ入力を検出してもよい。
【００７４】
いくつかの例において、プロジェクタスクリーン８２は存在感知ディスプレイ８４を含み得る。存在感知ディスプレイ８４は、本開示に記載のＵＩデバイス４、入力コンポーネント４２および／または出力コンポーネント４４の機能のサブセットまたは機能すべてを含み得る。いくつかの例において、存在感知ディスプレイ８４はその他の機能を含み得る。プロジェクタスクリーン８２（たとえば電子ホワイトボード）は、コンピューティングデバイス６０からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ８４は、容量性、誘導性、および／または光認識技術を用いてプロジェクタスクリーン８２における１つ以上のユーザ入力（たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等）を判別し、このようなユーザ入力の指示を１つ以上の通信部を用いてコンピューティングデバイス６０に送ることができる。
【００７５】
図３はまた、モバイルデバイス８６および視覚ディスプレイデバイス９０を示す。モバイルデバイス８６および視覚ディスクプレイデバイス９０は各々、計算機能および接続性機能を含み得る。モバイルデバイス８６の例は、電子リーダーデバイス、互換ノートブックデバイス、ハイブリッドスレート型デバイス等を含み得る。視覚ディスプレイデバイス９０の例は、テレビ、コンピュータモニタ等のようなその他の半静止デバイスを含み得る。図３に示すように、モバイルデバイス８６は存在感知ディスプレイ８８を含み得る。視覚ディスプレイデバイス９０は存在感知ディスプレイ９２を含み得る。存在感知ディスプレイ８８、９２は、本開示に記載の入力コンポーネント４２および／または出力コンポーネント４４の機能のサブセットまたは機能すべてを含み得る。いくつかの例において、存在感知ディスプレイ８８、９２はその他の機能を含み得る。いずれにしても、存在感知ディスプレイ９２は、たとえば、コンピューティングデバイス６０からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ９２は、容量性、誘導性、および／または光認識技術を用いてプロジェクタスクリーンにおける１つ以上のユーザ入力（たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等）を判別し、このようなユーザ入力の指示を１つ以上の通信部を用いてコンピューティングデバイス６０に送ることができる。
【００７６】
先に述べたように、いくつかの例において、コンピューティングデバイス６０は、システムバスまたはその他適切な通信チャネルによってコンピューティングデバイス６０に結合された存在感知ディスプレイ６４において表示するグラフィカルコンテンツを出力することができる。コンピューティングデバイス６０は、プロジェクタ８０、プロジェクタスクリーン８２、モバイルデバイス８６、および視覚ディスプレイデバイス９０等の１つ以上の遠隔デバイスにおいて表示するグラフィカルコンテンツを出力することもできる。たとえば、コンピューティングデバイス６０は、本開示の技術に従い、グラフィカルコンテンツを生成するおよび／またはグラフィカルコンテンツを修正することを求める１つ以上の命令を実行してもよい。コンピューティングデバイス６０は、グラフィカルコンテンツを含むデータを、通信部７０等のコンピューティングデバイス６０の通信部に出力することができる。通信部７０は、プロジェクタ８０、プロジェクタスクリーン８２、モバイルデバイス８６、および／または視覚ディスプレイデバイス９０等の遠隔デバイスのうちの１つ以上にデータを送信することができる。このようにして、コンピューティングデバイス６０は、遠隔デバイスのうちの１つ以上において表示するグラフィカルコンテンツを出力することができる。いくつかの例において、遠隔デバイスのうちの１つ以上は、各遠隔デバイスに含まれるおよび／または作動的に結合される存在感知ディスプレイにおいて、グラフィカルコンテンツを出力してもよい。
【００７７】
いくつかの例において、コンピューティングデバイス６０は、コンピューティングデバイス６０に作動的に結合された存在感知ディスプレイ６４においてグラフィカルコンテンツを出力しない場合がある。その他の例において、コンピューティングデバイス６０は、通信チャネル６２Ａによってコンピューティングデバイス６０に結合された存在感知ディスプレイ６４と、１つ以上の遠隔デバイスとの両方において表示するグラフィカルコンテンツを出力することができる。このような例において、グラフィカルコンテンツは、それぞれのデバイスにおいてほぼ同時に表示することができる。たとえば、グラフィカルコンテンツを含むデータを遠隔デバイスに送信する際に何らかの遅延が通信レイテンシによって導入される場合がある。いくつかの例において、コンピューティングデバイス６０によって生成され存在感知ディスプレイ６４において表示するために出力されるグラフィカルコンテンツは、１つ以上の遠隔デバイスにおいて表示するグラフィカルコンテンツ表示出力と異なる場合がある。
【００７８】
コンピューティングデバイス６０は、適切な何らかの通信技術を用いてデータを送受信することができる。たとえば、コンピューティングデバイス６０は、ネットワークリンク７２Ａを用いて外部ネットワーク７４に作動的に結合されてもよい。図３に示す遠隔デバイスは各々、それぞれのネットワークリンク７２Ｂ、７２Ｃ、および７２Ｄのうちの１つにより、外部ネットワーク７４に作動的に結合することができる。外部ネットワーク７４は、ネットワークハブ、ネットワークスイッチ、ネットワークルータ等を含み得る。これらは、作動的に相互接続されることで、コンピューティングデバイス６０と図３に示す遠隔装置との間における情報交換を行えるようにする。いくつかの例において、ネットワーク７２Ａ〜７２Ｄは、イーサネット、ＡＴＭまたはその他のネットワーク接続であってもよい。このような接続は、無線および／または有線接続であってもよい。
【００７９】
いくつかの例において、コンピューティングデバイス６０は、直接デバイス通信７８を用いて図３に含まれる遠隔デバイスのうちの１つ以上に作動的に結合することができる。直接デバイス通信７８は、有線または無線通信を用いてコンピューティングデバイス６０が遠隔装置との間でデータを直接送受信するときに用いる通信を含み得る。すなわち、直接デバイス通信７８のいくつかの例において、コンピューティングデバイス６０が送信するデータは、遠隔デバイスが受信する前にその他１つ以上のデバイスによって転送されないようにしてもよく、その逆であってもよい。直接デバイス通信７８の例は、Bluetooth、近距離無線通信、ユニバーサルシリアルバス、Ｗｉ−Ｆｉ、赤外線等を含み得る。図３に示す遠隔デバイスのうちの１つ以上は、通信リンク７６Ａ〜７６Ｄによってコンピューティングデバイス６０と作動的に結合されてもよい。いくつかの例において、通信リンク７６Ａ〜７６Ｄは、Bluetooth、近距離無線通信、ユニバーサルシリアルバス、赤外線等を用いる接続であってもよい。このような接続は、無線および／または有線接続であってもよい。
【００８０】
本開示の技術に従い、コンピューティングデバイス６０は、外部ネットワーク７４を用いて視覚ディスプレイデバイス９０に作動的に結合されてもよい。コンピューティングデバイス６０は、存在感知ディスプレイ９２において表示するグラフィカルコンテンツを出力することができる。たとえば、コンピューティングデバイス６０は、通信部７０に、アプリケーションモジュール１０のうちの１つ以上のためのＧＵＩを含むデータを送信することができる。通信部７０は、外部ネットワーク７４を用いて、視覚ディスプレイデバイス９０に、ＧＵＩを含むデータを送信することができる。視覚ディスプレイデバイス９０は、外部ネットワーク７４を用いてデータを受信したことに応じて、存在感知ディスプレイ９２に、ＧＵＩを出力させる。存在感知ディスプレイ９２における（たとえば存在感知ディスプレイ９２のある領域における）ジェスチャー等の１つ以上のユーザ入力を受けたことに応じて、視覚ディスプレイデバイス９０および他の入力コンポーネント４２は、外部ネットワーク７４を用いてコンピューティングデバイス６０に対し入力の指示を送ることができる。通信部７０は、入力の指示を受け、この指示をコンピューティングデバイス６０に送ることができる。
【００８１】
図３の例において、コンピューティングデバイス６０は、通信を受信することができる。コンピューティングデバイス６０は、受信した通信を表すものを（たとえば表示するために）出力することができる。たとえば、コンピューティングデバイス６０は、受信した通信の視覚的表現のためのデータを通信部７０に送信することができる。通信部７０は、このデータを外部ネットワーク７４を介して視覚ディスプレイデバイス９０に送信することができる。視覚ディスプレイデバイス９０は、表示のために、受信した通信の視覚的表現を存在感知ディスプレイ９２が出力するようにすることができる。
【００８２】
受信した通信に応答するためのユーザ入力の指示（たとえば入力コンポーネント４２のうちの１つで実行される入力）を受けると、コンピューティングデバイス６０（たとえば通信レスポンスモジュール１２）は１つ以上の候補レスポンスを決定することができる。コンピューティングデバイス６０は、１つ以上の候補レスポンスのうちの少なくとも１つの視覚的表現のためのデータを、表示のために通信部７０に送ることができる。
【００８３】
コンピューティングデバイス６０は、１つ以上の候補レスポンスからある候補レスポンスを選択する入力を受けることができ、この候補レスポンスを（たとえば受信通信に応答して）送信することができる。通信部７０は、このデータを外部ネットワーク７４を介して視覚ディスプレイデバイス９０に送信することができる。視覚ディスプレイデバイス９０は、存在感知ディスプレイ９２が視覚インターフェイスを（たとえばユーザに対して）出力するようにすることができる。
【００８４】
図４は、本開示の１つ以上の技術に従う、受信した通信に対する候補レスポンスを生成するためにコンピューティングデバイス２が利用できるモデルを訓練する機械の技術の例を示すブロック図である。図４に示すように、システム１０は、受信した通信に対して関連する１つ以上の候補レスポンスを推測することができる解析モデルを構築するために機械学習を実行する、１つ以上のデスクトップまたはサーバコンピューティングデバイス、コンピューティングデバイスのクラスタ等の、１つ以上のコンピューティングデバイスを含み得る。いくつかの例において、システム１００はコンピューティングデバイス２の外部にあってもよい。具体的には、システム１００は、メッセージに応答するためにはどの候補レスポンスが関連し得るかを学習するために、訓練データ１０４を解析することによって機械学習を実行し、レスポンス提案モデル５６を生成することができる。コンピューティングデバイス２のレスポンス提案モジュール５４は、上記レスポンス提案モデル５６を使用することにより、受信した通信に関連する１つ以上の候補レスポンスを推測することができる。
【００８５】
訓練データ１０４は、チャットコーパス１０６とコンテキスト１０８とを含み得る。チャットコーパス１０６はチャットおよびメッセージングデータを含み得る。これは、インターネットメッセージのログおよびトランスクリプト、ＳＭＳメッセージ、インターネットチャット、インスタントメッセージ、ソーシャルメディアプラットフォーム上のダイレクトメッセージ、チャットルームメッセージ、オンライン会話、受信通信と返信メッセージとのペア等である。よって、チャットコーパス１０６は、レスポンス提案モジュール５４を訓練するためにシステム１００が使用し得る各種メッセージおよびこれらのメッセージに対する返信を含む。
【００８６】
コンテキスト１０８は、メッセージに対する適切なレスポンス候補を決定するのに役立ち得る、チャットコーパス１０６に含まれるチャットおよびメッセージングデータに対応付けられた、コンテキスト情報を含み得る。たとえば、コンテキスト１０８は、チャットコーパス１０６内のメッセージの送信者および受信者のユーザ名、送信者と受信者との関係、送信者および受信者の位置、送信者および受信者がメッセージを送信および受信した時刻、メッセージのタイプ（たとえばインターネットチャット、テキストメッセージ、インスタントメッセージ、またはその他のタイプ）、送信者および受信者の職業、送信者および受信者が従事する活動等のうちの１つ以上を含み得る。
【００８７】
先に述べたように、レスポンス提案モデル５６は、処理性能が比較的低くメモリが比較的小さいコンピューティングデバイス２等のモバイルコンピューティングデバイスに含まれることが意図されている。したがって、システム１００は、処理要求およびメモリ要求が比較的低いレスポンス提案モデル５６を生成するために各種技術を実施することができる。そのために、システム１００は、ランダム化予測モデル（randomized prediction model）（ＲＰＭ）アーキテクチャに基づいて、訓練データ１０４に対し学習モジュール１１０を用いた機械学習を実行することにより、レスポンス提案モジュール５４が用いるレスポンス提案モデル５６を生成することができる。よって、学習モジュール１１０が実行する機械学習も、レスポンス提案モデル５６のための推測も、ＲＰＭアーキテクチャに基づく。
【００８８】
いくつかの例において、訓練データ１０４は特徴ベクトルによって表すことができる。特徴ベクトルは、何らかのオブジェクトを表す数値特徴のｎ次元ベクトルであってもよい。図４の例において、チャットコーパス１０６内の各メッセージは特徴ベクトルによって表すことができる。この特徴ベクトルは、特定のメッセージのコンテンツ（たとえば単語、フレーズ、推測される話題等）と、コンテキスト１０８に含まれるメッセージに対応付けられたコンテキスト信号とから得られた、１つ以上のコンテキスト信号を含む。
【００８９】
特定のメッセージの特徴ベクトルは、（ＩＤ，重み）ペアのセットで表すことができる。ＩＤは、メッセージに対応付けられた特定の信号（たとえば「お元気ですか」のような固有のフレーズ）の固有識別子を表していてもよい。重みは、特定の信号に対応付けられた頻度またはその他何らかの適切な重みを表していてもよい。
【００９０】
システム１００は、訓練データ１０４のインスタンスを入力として異なる空間ΩＦに射影するために、１つ以上の変換関数Ｆ（ｘ）１０２を規定することにより、空間ΩＦ内で学習モジュール１１０を用いて機械学習を実行することができる。ＲＰＭアーキテクチャは、１つ以上の変換関数Ｆ（ｘ）１０２を規定するために、局所性鋭敏型ハッシュ（ＬＳＨ）の修正バージョンを用いて効率的なランダム化射影法を強化することができる。具体的には、システム１００は、１つ以上の変換関数Ｆ（ｘ）１０２を適用して、空間ΩＦへの訓練データ１０４のランダム射影を実行することができる。いくつかの例において、システム１００は、機械学習を実行することにより、１つ以上の変換関数Ｆ（ｘ）１０２の最適なセットを求めて、その訓練データ１０４の射影を最適化することができる。
【００９１】
ランダム射影法は一般的に、次元数が高いデータポイント間の類似性を効率的に計算するために、文書またはその他のタイプのデータをクラスタ化するために使用できる。本明細書に開示する技術に関して、メッセージを表す特徴ベクトルは、比較的高い次元性を示す場合がある。なぜなら、自然言語テキストまたは口語体のチャット言語において通常使用される単語数が多いからである。本明細書に開示する技術は、１つ以上の変換関数Ｆ（ｘ）１０２を用いて複数のランダム射影を実行する。システム１００は、１つ以上の変換関数Ｆ（ｘ）１０２を用いてランダム射影を実行することにより、入力データ「ｘ」（たとえば受信チャットメッセージに対応する高次元の特徴ベクトル）を、効率的に低次元表現に変換することができる。システム１００はさらに、射影された表現を、観察されたレスポンス（図４においてシード例１１２として示される、訓練データ１０４からのシード例）とペアにされる元のメッセージ「ｘ」とともに増大し、この増大された空間に対して共同学習を実行することによって機械訓練モデル（たとえばレスポンス提案モデル５６）を訓練することができる。
【００９２】
先に述べたように、ＲＰＭアーキテクチャは、１つ以上の変換関数Ｆ（ｘ）１０２を規定するために、局所性鋭敏型ハッシュ（ＬＳＨ）の修正バージョンを用いて高効率のランダム化射影法を強化することができる。ＲＰＭアーキテクチャは、（たとえばシステム１００による、またはクラウド上の他の場所における）訓練中および推測時間中に（たとえばデバイス２上でレスポンス提案モデル５６を使用しているとき）、オンザフライで効率的に計算できるＬＳＨに基づくランダム射影法を利用することができる。この関数をオンザフライで計算することは、オンデバイスの推測（たとえばコンピューティングデバイス２上でレスポンス提案モデル５６を実行すること）にとって重要な場合がある。なぜなら、電話またはスマートウォッチ（たとえばコンピューティングデバイス２）は、メモリに制約がある場合があるからである。デバイスのメモリに制約があるために、システム１００は、１つ以上の変換関数Ｆ（ｘ）１０２の射影を実行するのに必要となり得るランダムベクトル（高次元データのために非常に大きい可能性がある）を予め計算し予め計算したランダムベクトルをコンピューティングデバイス２上のメモリに（たとえば記憶装置５０に）格納することが、不可能な場合がある。
【００９３】
システム１００は、１つ以上の変換関数Ｆ（ｘ）１０２を実行することにより、訓練データ１０４内の各メッセージ（たとえば特徴ベクトル）を、設定されたビット数を有するバイナリ（すなわち１と０という値を有する）ビットベクトルとして表されるハッシュシグネチャに、変換することができる。このようにして、システム１００は、比較的高次元の入力を、固定ビット数を有するビットベクトルの低次元表現に変換する。たとえば、システム１００は、各メッセージを、同一ビット数（たとえば８ビット）を有するビットベクトルにハッシュして、「お元気ですか？」というメッセージを、射影後にハッシュシグネチャ０１００１０１０を用いて表すことができるようにしてもよい。実際、システム１００は、１つのメッセージ特徴ベクトルに対して複数の射影を適用し、各メッセージ特徴ベクトル「ｘ」を複数のハッシュシグネチャで表すことができる。これらはすべて、学習モジュール１１０における訓練中にメッセージ特徴ベクトル「ｘ」に追加してリンクさせることができる。
【００９４】
したがって、本明細書に開示する技術により、ランダム射影法の計算をオンザフライで効率的に実施することができ、それによって、モバイルコンピューティングデバイスがランダムベクトルを計算できるようにして、モバイルコンピューティングデバイスが予め計算されたランダムベクトルを格納しなくてもよいようにすることができる。このように、本明細書に開示する技術によって、モバイルコンピューティングデバイスは、オフデバイスモデルを使用しなくても、オンデバイス機械訓練モデルを実行することにより、受信した通信に対する候補レスポンスを推測することができる。
【００９５】
システム１００は、学習モデル１１０を実行することにより、空間ΩＦにおいて１つ以上の変換関数Ｆ（ｘ）１０２によって変換されて特徴の次元性が低減された訓練データ１０４に対し、訓練を実行することで、メッセージ（たとえば受信した通信）に対するレスポンスにスコアを付け、特定の数の最高スコアのレスポンスを見出すことができる。
【００９６】
一例において、システム１００は、グラフベースのモデリングフレームワークを利用し、かつ、モデル重みθＦを訓練するためにグラフのノードに対してラベル伝播を実行することで、半教師あり機械学習を訓練データ１０４に対して実行することにより、レスポンス提案モデル５６を生成することができる。訓練データ１０４に対して機械学習を実行する際、システム１００はグラフ１１４を構成してもよい。このグラフにおいて、データはノードおよびノードに与えられたラベルによって表され、関連するノードはエッジによってリンクされる。エッジには、リンクされたノードに対する類似度関数によって定められたエッジ重みが対応付けられていてもよい。エッジ重みは、連結されたノードのラベルがどれ程度強く一致しているかを示す。システム１００は、ラベルが付された各シードノードに対応付けられたクラスラベル情報を用い、これらのラベルを繰り返しグラフ上で伝播させることにより、グラフ１１４のノード上でラベル伝播を実行することができる。このような機械学習のための技術は、エキスパンダー(Expander）グラフベースの機械学習フレームワークと呼ばれることがある。
【００９７】
グラフ１１４において、受信メッセージ「ｘ」に対応付けられたメッセージノードは、エッジを介して、メッセージに対するレスポンスに対応付けられたレスポンスノードに連結することができる。さらに、グラフ１１４はまた、メッセージの射影ハッシュシグネチャＦ（ｘ）を表す射影ノードを含み得る。グラフ１１４は、これらの射影ノードを、エッジを介して、対応するメッセージ「ｘ」に対応付けられたメッセージノードにリンクさせることができる。システム１００は、レスポンスから抽出した語彙特徴に少なくとも一部基づいて、レスポンスノードに対応付けられたレスポンスの意味上の趣旨を導き出し、レスポンスに、対応する意味上の趣旨でラベル付けし、グラフ１１４を通して、メッセージノードに、実際のレスポンスに加えて関連する意味上の趣旨を繰り返し伝播させ、レスポンスノードをハッシュすることにより、射影された対応するハッシュシグネチャを表す各射影ノードの対応する重み（たとえば信頼度スコア）および予測されるレスポンスのランク付けリストを、学習することができる。このようにして、学習モジュール１１０は、メッセージをレスポンスと対応する重みとに対応付けることができ、この重みは、特定のメッセージに対する、対応付けられたレスポンスの類似度を表す。
【００９８】
さらに、システム１００は、レスポンスノードに対応付けられたレスポンスの意味上の趣旨を導き出すことにより、意味上の趣旨が同一のクラスタレスポンスを求めてセマンティッククラスタにすることができる。たとえば、同一のセマンティッククラスタに属する各レスポンスは、このセマンティッククラスタのメンバーシップを示す同一ラベルでラベル付けすることができる。
【００９９】
グラフ１１４は、メッセージノードを、メッセージのハッシュシグネチャに対応付けられた射影ノードに連結するので、グラフ１１４内の射影ノードは各々、対応するメッセージノードと同一の、予測されるレスポンスのランク付けられたリストおよび重みで、ラベル付けすることができる。これにより、システム１００は、レスポンスおよび対応する重みで、ならびに、各レスポンスが属する１つ以上のセマンティッククラスタを示すセマンティッククラスタラベルで、ラベル付けされた、一組の射影ノードを含み得る、比較的軽量のレスポンス提案モデル５６を生成することができる。これは、携帯電話およびスマートフォン等のモバイルコンピューティングデバイスには好適であろう。
【０１００】
加えて、システム１００は、射影ノードについて学習されたレスポンスに対し、追加の正規化技術を適用することにより、頻繁に起こるレスポンス（たとえば「ありがとう」）を軽量化することができる。射影ハッシュシグネチャ（たとえば低次表現におけるビットベクトル）は、レスポンスラベルおよび重みとともに、レスポンス提案モデル５６を構成する。コンピューティングデバイス２はこのモデル５６を用いることにより、受信した通信に対する候補レスポンスを推測することができる。
【０１０１】
図５は、本開示の１つ以上の技術に従う、オンデバイス機械訓練モデルを用いて受信通信に対する候補レスポンスを生成する技術の一例を示すブロック図である。図５に示すように、コンピューティングデバイス２上で実行されるレスポンス提案モジュール５４は、図４に関して説明した技術に従い機械訓練されたレスポンス提案モデル５６を含み得る。
【０１０２】
コンピューティングデバイス２は、１つ以上の変換関数Ｆ（ｘ）１０２とレスポンス提案モデル５６とを受けてインストールすることができる。上記変換関数とレスポンス提案モデルとが、レスポンス提案モジュール５４を構成する。コンピューティングデバイス２にインストールされたレスポンス提案モデル５６は、一組のハッシュシグネチャ（たとえばビットベクトル）、ハッシュシグネチャに対応付けられた一組の射影ノード、射影ノード各々に対応付けられた予測レスポンスのランク付けリストを示す一組のレスポンスラベル、射影ノードに対する予測レスポンスの関連性を示す予測レスポンス各々に対応付けられた重み、および、各予測レスポンスが属する１つ以上のセマンティッククラスタを示す一組の予測レスポンスに対応付けられたセマンティッククラスタラル、であってもよい。ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示は、データベーステーブル、カンマで区切られた値、拡張可能マークアップ言語（ＸＭＬ）ファイル、ルックアップテーブル等のような、構造化されたまたは構造化されていないデータとして、格納されてもよい。
【０１０３】
コンピューティングデバイス２は、通信を受信すると、レスポンス提案モジュール５４を用いて、受信した通信に対する１つ以上の候補レスポンスを生成することができる。コンピューティングデバイス２がレスポンスを生成し得る通信を受信したことに応じて、レスポンス提案モジュール５４は、受信した通信を、レスポンス提案モデル５６の訓練時間中に使用される同一の１つ以上の変換関数Ｆ（ｘ）１０２（たとえば１つ以上のランダム射影関数）を用いて、ハッシュシグネチャ（たとえば低次元表現のビットベクトル）に、オンザフライで射影することができる。受信した通信をハッシュシグネチャに射影することにより、コンピューティングデバイス２は、受信した通信の特徴の次元を低減することで、計算の集約度が比較的低くなるようにしてハッシュシグネチャを解析することにより、受信した通信に対する１つ以上の候補レスポンスを決定することができる。
【０１０４】
コンピューティングデバイス２は、ハッシュシグネチャに対応付けられた一組の射影ノードをルックアップし、一組の射影ノードの各々に対応するレスポンスと、レスポンスの重みとを決定する。ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示等は、コンピューティングデバイス２において構造化されたまたは構造化されていないデータとして格納されるので、コンピューティングデバイス２は、ルックアップ動作を実行することにより、受信した通信に対する１つ以上の候補レスポンスを決定することができる。これらのルックアップ動作は、比較的高速で実行できるが消費電力は比較的少ないので、コンピューティングデバイス２の計算のおよび／または消費電力の制約条件を満たすことができる。さらに、ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示等を、コンピューティングデバイス２において構造化されたまたは構造化されていないデータとして格納することにより、コンピューティングデバイス２は、受信した通信の指示をコンピューティングデバイス２の外部に送信する（たとえば受信した通信をネットワークを介してクラウドに送信する）ことなく、受信した通信に対する１つ以上の候補レスポンスを決定することができる。受信した通信の指示をコンピューティングデバイス２の外部に送信しないことで、コンピューティングデバイス２は、ネットワーク送信によって生じるレイテンシを伴うことなく１つ以上の候補レスポンスを生成し、また、そのＷｉＦｉまたはセルラー無線を介してデータを送受信しなくてもよいことから、電池電力を節約する。
【０１０５】
コンピューティングデバイス２は、ハッシュシグネチャに対応付けられた射影ノードに対応するレスポンスおよびレスポンスの重みを集約しソートすることにより、予測レスポンスの対応付けられた重みに対応する、受信した通信に対する予測レスポンスのランク付けリストを生成することができる。たとえば、コンピューティングデバイス２は、最も重みが大きい予測レスポンス（たとえば対応する最も大きい重みを有する上位３つのレスポンス）を、コンピューティングデバイス２がユーザによる選択のために提供し得る、受信した通信に対する候補レスポンスとして、指定することができる。
【０１０６】
いくつかの例において、レスポンス提案モデル５６はまた、候補レスポンスの意味論上の意味に少なくとも一部基づいて候補レスポンスを追加してもよい。たとえば、予レスポンスのランク付けリストの一例に「よし、それでいい！」が含まれている場合、レスポンス提案モデル５６は、予測レスポンスについて推測される意味上の趣旨に基づいて、同一または同様の意味論上の意味を共有する（たとえば予測レスポンスと同一のセマンティッククラスタに属する）「よさそうですね」のような、その他の関連しているが別種のレスポンスを決定し提案してもよい。レスポンス提案モデル５６は、レスポンスに対応付けられたセマンティッククラスタラベルに少なくとも一部基づいて、このような意味上の趣旨を推測する。そうすると、レスポンス提案モデル５６は、レスポンスが各々同一のセマンティッククラスタラベルを有する場合にこれらのレスポンスは意味上関連性があると判断することができる。
【０１０７】
いくつかの例において、コンピューティングデバイス２は、同一のセマンティッククラスタに属するレスポンスの重複を避けるために、相違に基づくランク付けを利用してもよい。たとえば、「ありがとう！」および「ありがとうございます」という予測レスポンスはいずれも同一の感謝（thanks）というセマンティッククラスタに属する可能性がある。この場合、「ありがとう！」および「ありがとうございます」の両方が、レスポンスに対応付けられた重みに少なくとも一部基づいて決定し得る、一組の最高ランクの予測レスポンスに含まれている場合、コンピューティングデバイス２は、これら２つのレスポンスのうちの一方のスコアにペナルティーを付けることにより、２つの予測レスポンスのうちの一方のみが、ユーザによる選択用にコンピューティングデバイス２が提供する一組の候補レスポンスに含まれるように、することができる。
【０１０８】
より形式的には、受信した会話に対し、コンピューティングデバイス２は、上記レスポンス提案モジュール５４に従ってレスポンス候補予測Ｒｐｒｅｄｉｃｔｅｄ（すなわち予測レスポンス）を生成し、予測スコアθｉに基づいてレスポンス提案ｒｉ∈Ｒｐｒｅｄｉｃｔｅｄを降順でランク付けし、レスポンス提案をフィルタリングすることができる。θｉはモデルしきい値θｔｈｒｅｓｈｏｌｄ未満である。レスポンス提案モジュール５４を用いて予測した残りの候補レスポンスについて、コンピューティングデバイス２は、上記相違に基づくランク付けを適用し、ランク付けされたレスポンスのセマンティッククラスタリングＣｌｕｓｔｅｒ（ｒｉ）に基づいて、候補レスポンスをフィルタリングし、特定のセマンティッククラスタからの１つの予測レスポンスのみが、ユーザに提示される一組の候補レスポンスに含まれるようにすることができる。
【０１０９】
このように、レスポンス提案モジュール５４は、１つ以上の変換関数Ｆ（ｘ）１０２を用いて、受信した通信をオンザフライでランダムにハッシュシグネチャに射影することができる。レスポンス提案モジュール５４は、ハッシュシグネチャに対応付けられた射影ノードを決定し、射影ノードに対応付けられた一組の予測レスポンスを決定することができる。射影ノードに対応付けられた一組の予測レスポンスについて、レスポンス提案モジュール５４は、しきい値未満の重みが対応付けられているレスポンスをフィルタリングによって取り除くことができる。残りのレスポンスについて、レスポンス提案モジュール５４は、相違に基づくランク付けを適用することができる。たとえば、レスポンス提案モジュール５４は、残りの予測レスポンスに対応付けられているセマンティッククラスタラベルに基づいて、予測レスポンスのうちの２つ以上が同一のセマンティッククラスタラベルを有し、したがって同一のセマンティッククラスタ内にあるか否かを判断することができる。同一のセマンティッククラスタ内にある場合、レスポンス提案モジュール５４は、これら予測レスポンスをそれぞれに対応付けられた重みに基づいてランク付けし、ランクが低い方の予測レスポンスにペナルティーを付けて、ユーザに提示される一組の候補レスポンスにおいては、セマンティッククランスタ内の予測レスポンスが１つだけになるようにすることができる。
【０１１０】
いくつかの例において、コンピューティングデバイス２は、選択のためにユーザに提供される一組の候補レスポンスの中に、デフォルト候補レスポンス提案を含めてもよい。コンピューティングデバイス２は、チャットデータ内の頻度に基づいて、人気のあるセマンティッククラスタからレスポンスを選択することにより、一組のデフォルト候補レスポンスＲｄｅｆａｕｌｔを作成することができる。コンピューティングデバイス２は、一組のデフォルト候補レスポンスＲｄｅｆａｕｌｔ内の各候補レスポンスの予測スコアを、スコア＝λｂａｃｋｏｆｆ＊（Ｒａｎｋｍａｘ−Ｒａｎｋｃｕｒｒｅｎｔ）として計算することができる。λｂａｃｋｏｆｆは、デフォルト値（たとえば１ｅ−６）であってもよく、Ｒａｎｋｍａｘは、コンピューティングデバイス２がユーザに提示する候補レスポンスの数に応じた値（たとえば３）に設定してもよく、Ｒａｎｋｃｕｒｒｅｎｔは、一組のデフォルト候補レスポンスのうちの特定の候補レスポンスのランク付けであってもよい。一組のデフォルト候補レスポンスＲｄｅｆａｕｌｔに含まれる候補レスポンスのスコアを、レスポンス候補予測Ｒｐｒｅｄｉｃｔｅｄのスコアと比較し、一組の候補レスポンスのスコアとの比較におけるそれらのスコアに少なくとも一部基づいて、ユーザに提示する一組の候補レスポンスの中に、１つ以上のデフォルト候補レスポンスを含めてもよい。
【０１１１】
いくつかの例において、コンピューティングデバイス２は、関連するクラスタモデルを利用して、最上位レスポンス候補のセマンティッククラスタに関連するセマンティッククラスタからの候補レスポンスが、レスポンス提案モジュール５４に従って生成された一組のレスポンス候補予測Ｒｐｒｅｄｉｃｔｅｄに含まれるようにしてもよい。２つのセマンティッククラスタは、予測レスポンスがこれら２つのセマンティッククラスタ双方に属する場合、関連している可能性がある。
【０１１２】
たとえば、コンピューティングデバイス２は、最上位候補レスポンスｒｉ∈Ｒｐｒｅｄｉｃｔｅｄを選択してもよく、レスポンスｒｉのセマンティッククラスタＣｉのルックアップを実行してもよい。レスポンス提案モジュール５４を生成するときに、システム１００がこのようなセマンティッククラスタの割当を学習し生成してもよい。コンピューティングデバイス２は、階層的対応付けＣｊ⇔Ｃｉから、関連するクラスタＣｊ∈Ｒｅｌａｔｅｄ  Ｃｌｕｓｔｅｒ（Ｃｉ）をサンプリングすることができる。コンピューティングデバイス２は、レスポンスｒｊ∈Ｃｊをサンプリングし、これらレスポンス各々のスコアをｓｃｏｒｅ（ｒｊ）∝ｗｃｊ⇔ｃｉ）として生成し、レスポンスｒｊを、一組のレスポンス候補予測ｒｉ∈Ｒｐｒｅｄｉｃｔｅｄを用いてランク付けすることができる。
【０１１３】
いくつかの例において、コンピューティングデバイス２は、レスポンス提案モジュール５４から生成された候補レスポンスをさらに処理および／またはフィルタリングしてもよい。たとえば、コンピューティングデバイス２は、末尾の句読点の不備または不正形式の句読点があるレスポンス等の不良レスポンス提案をフィルタリングによって候補レスポンスから取り除いてもよい。
【０１１４】
いくつかの例において、コンピューティングデバイス２には処理およびメモリに制約があるので、コンピューティングデバイス２は、レスポンス提案モデル５６の一部のみ（たとえばすべてよりも少ない部分）をロードすることにより、受信した通信に対する候補レスポンスを生成してもよい。たとえば、コンピューティングデバイス２は、高アクセス頻度パターンに基づいて、または、レスポンス提案モデル５６が１つ以上の候補レスポンスを推測し得る対象である受信通信に少なくとも一部基づいて、レスポンス提案モデル５６の限られた部分（たとえば全体よりも少ない部分）をメモリにロードまたはページングしてもよい。このように、コンピューティングデバイス２は、レスポンス提案モデル５６全体をロードするのではなく、レスポンス提案モデル５６のうちの比較的小さなチャック（たとえば４キロバイトチャック）をメモリにロードしてもよい。各種例において、レスポンス提案モデル５６は読み取り専用モデルなので、このモデルは簡単にメモリからページアウトすることができる。したがって、読み取り専用モデルであるレスポンス提案モデル５６は、メモリの量が限られているデバイス（たとえばコンピューティングデバイス２）で使用できるという、潜在的な技術的利点を提供できる。
【０１１５】
いくつかの例において、本明細書に記載の技術をさらに拡張することにより、モデルの機械学習および訓練のためのこのような技術を、モバイルデバイス（たとえばコンピューティングデバイス２）上において、各種用途のために、たとえば、レスポンスの語調、スタイル、文語調等に関するユーザの嗜好に基づいて候補レスポンスおよび提案候補レスポンスをパーソナライズするといった用途のために、実施できるようにしてもよい。本開示のいくつかの局面に従うと、レスポンス提案モジュール５４は、パーソナライズされた候補レスポンスを生成しこのようなパーソナライズされた候補レスポンスをユーザに提示する候補レスポンスに含めることにより、ユーザに提示する候補レスポンスをパーソナライズすることができる。
【０１１６】
レスポンス提案モジュール５４は、受信した通信の宛先であるコンピューティングデバイス２のユーザのために、候補レスポンスをパーソナライズしてもよい。候補レスポンスをパーソナライズするために、レスポンス提案モジュール５４は、ユーザの文章スタイル、語調、文語調、単語およびフレーズの使用法、句読点のスタイル等により調和する、パーソナライズされた候補レスポンスを生成することができる。レスポンス提案モジュール５４は、このようなパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【０１１７】
レスポンス提案モジュール５４は、受信した通信の宛先であるコンピューティングデバイス２のユーザの通信履歴３２に少なくとも一部基づいて、パーソナライズされた候補レスポンスを生成してもよい。ユーザの通信履歴３２は、ユーザが受信したメッセージおよびユーザが送信した過去のレスポンスを含み得る。このような受信メッセージおよび送信レスポンスは、ユーザが過去に送信および／または受信した、テキストメッセージ、ＳＭＳメッセージ、電子メール、ソーシャルメディアポスト等を含み得る。レスポンス提案モジュール５４は、このようなパーソナライズされた候補レスポンスを、ユーザの通信履歴３２にアクセスすることをユーザがコンピューティングデバイス２に許可して初めて、コンピューティングデバイス２のユーザの通信履歴３２に少なくとも一部基づいて生成することができ、ユーザはいつでも通信履歴３２へのアクセス権を無効にすることが可能であってもよい。
【０１１８】
通信履歴３２は、コンピューティングデバイス２に格納されてもよく、または、外部コンピューティングデバイスに格納されてもよい。たとえば、コンピューティングデバイス２が、スマートフォンとペアリングされたスマートウォッチ等のウェアラブルデバイスの場合、通信履歴３２はスマートフォンに格納されてもよい。これらの例において、コンピューティングデバイス２は、ユーザが送信した直近１００のレスポンスの指示、ユーザが過去に選択した候補レスポンスの指示等の、通信履歴３２のサブセットを格納してもよい。よって、いくつかの例において、コンピューティングデバイス２は、パーソナライズされた候補レスポンスを生成するために、外部コンピューティングデバイスと通信しそこに格納されている通信履歴３２にアクセスしてもよい。
【０１１９】
いくつかの例において、レスポンス提案モジュール５４は、候補レスポンスを生成するための本明細書に開示の技術を併用して、パーソナライズされた候補レスポンスを生成することが可能であってもよい。言い換えると、レスポンス提案モジュール５４は、変換関数Ｆ（ｘ）１０２を用いて受信通信をオンザフライでハッシュシグネチャに射影してもよい。レスポンス提案モジュール５４は、レスポンス提案モデル５６においてハッシュシグネチャに対応付けられた射影ノード、および、射影ノードに対応付けられた予測レスポンスのランク付けセットを決定することができる。レスポンス提案モジュール５４は、射影ノードに対応付けられた予測レスポンスのランク付けセットに少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを生成することができ、１つ以上のパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【０１２０】
他の例において、レスポンス提案モジュール５４は、候補レスポンスを生成するための本明細書に開示の技術を実施することなく、パーソナライズされた候補レスポンスを生成することが可能であってもよい。この例において、レスポンス提案モジュール５４は、レスポンス提案モデル５６を使用してまたは使用せずに、何らかの適切な技術を用いて、受信通信に応答するための一組の予測レスポンスを決定してもよい。たとえば、レスポンス提案モジュール５４は、一組の予測レスポンスを決定するために、受信通信をコンピューティングデバイス２の外部に送信しないモデルを使用してもよい。レスポンス提案モジュール５４は、受信通信に応答するための一組の予測レスポンスに少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを生成することができ、１つ以上のパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【０１２１】
レスポンス提案モジュール５４は、パーソナライズモデル５８を使用し、通信履歴３２に基づいて、１つ以上のパーソナライズされたレスポンスメッセージを生成してもよい。パーソナライズモデル５８は、通信履歴３２に格納されている、ユーザが過去に送信した各レスポンスが属するセマンティッククラスタを決定することができ、このような過去に送信したレスポンスとセマンティッククラスタとの対応付けの指示を格納してもよい。したがって、パーソナライズモデル５８は、セマンティッククラスタに対する過去に送信されたレスポンスのマップであってもよい。このため、パーソナライズモデル５８は、セマンティッククラスタの指示を受け、それに応じて、表示されたセマンティッククラスタに属するユーザが過去に送信した１つ以上のレスポンスの指示を出力することができる。いくつかの例において、パーソナライズモデル５８は、通信履歴３２に格納されている、直近に送信された１０００のレスポンス等のユーザが送信したレスポンスのサブセット（すべてよりも少ない）が属するセマンティッククラスタを決定することができる。
【０１２２】
パーソナライズモデル５８は、何らかの適切なやり方で、過去に送信したレスポンスが属するセマンティッククラスタを決定すればよい。一例において、レスポンス提案モデル５６は、各々がセマンティックモデルに属する複数のレスポンスを含むので、過去に送信されたレスポンスが、レスポンス提案モデル５６に含まれるレスポンスに一致する場合は、過去に送信されたレスポンスを、レスポンス提案モデル５６に含まれるレスポンスが属するセマンティッククラスタと同一のセマンティッククラスタに対応付ければよい。
【０１２３】
これに代えて、パーソナライズモデル５８は、通信履歴３２に格納されているユーザが過去に送信したレスポンスの意味上の趣旨を導き出すことにより、過去に送信したレスポンスが属するセマンティッククラスタを決定してもよい。パーソナライズモデル５８は、このようなセマンティッククラスタを、過去に送信されたレスポンスから語彙的な特徴を抽出することにより、または何らかの適切な技術により、決定することができる。
【０１２４】
別の例において、パーソナライズモデル５８は、ハッシュシグネチャからセマンティッククラスタを予測する機械訓練モデルを通して、過去に送信されたレスポンスの、セマンティッククラスタに対するマッピングを決定してもよい。
【０１２５】
別の例において、パーソナライズモデル５８は、ハッシュシグネチャに基づいて類似度を計算することにより、過去に送信されたレスポンスの、セマンティッククラスタに対するマッピングを決定してもよい。
【０１２６】
１つ以上のパーソナライズされたレスポンスメッセージを生成するために、レスポンス提案モジュール５４は、１つ以上のパーソナライズされたレスポンスメッセージとして、ユーザが過去に送信した、通信履歴３２に格納されている１つ以上のレスポンスを選択してもよい。レスポンス提案モジュール５４は、受信した通信を予測するための一組の予測レスポンスが属するセマンティッククラスタ、および、過去に送信された１つ以上のレスポンスが属するセマンティッククラスタに、少なくとも一部基づいて、通信履歴３２に格納されている１つ以上の過去のレスポンスを選択してもよい。
【０１２７】
一組の予測レスポンスが属する１つ以上のセマンティッククラスタのうちの各セマンティッククラスタについて、レスポンス提案モジュール５４は、そのセマンティッククラスタの指示をパーソナライズモデル５８に送ってもよく、それに応じた、セマンティッククラスタに属するユーザが送信した１つ以上の過去のレスポンスの指示をパーソナライズモデル５８から受けてもよい。レスポンス提案モジュール５４は、ユーザが送信した１つ以上の過去のレスポンスを、１つ以上のパーソナライズされた候補レスポンスに含めることができる。
【０１２８】
いくつかの例において、レスポンス提案モジュール５４は、ユーザが送信したある過去のレスポンスが、セマンティッククラスタに属するレスポンス提案モデル５６のレスポンス空間内のレスポンスのうちの１つに一致する場合のみにおいて、ユーザが送信したこの過去のレスポンスを、パーソナライズされた候補レスポンスとして含めてもよい。レスポンス提案モデル５６のレスポンス空間は、射影ノードのうちの１つ以上に対応付けられた、レスポンス提案モデル５６におけるすべての予測レスポンスを含み得る。たとえば、別れ（partings）というセマンティッククラスタに属するレスポンス提案モデル５６のレスポンス空間内のレスポンスは、「さようなら」、「また後でね」および「アディオス」というレスポンスを含み得る。これらは各々、レスポンス提案モデル５６における１つ以上の射影ノードに対応付けられた予測レスポンスのランク付けリストのうちの１つ以上における予測レスポンスであるからである。
【０１２９】
たとえば、レスポンス提案モデル５６のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスを含む別れセマンティッククラスタに属する「さようなら」という予測レスポンスについて、レスポンス提案モジュール５４は、パーソナライズモデル５８を用いて、ユーザが送信した過去のレスポンスが、別れセマンティッククラスタに属するレスポンス提案モデル５６のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスのうちの１つに一致するか否かを判断すればよい。
【０１３０】
あるレスポンスが別のレスポンスに一致する場合として、これらのレスポンスが同一の単語および／またはフレーズを含む場合、これらのレスポンスが同一の絵文字セットを含む場合、これらのレスポンスが同一画像を含む場合等がある。レスポンス提案モジュール５４は、パーソナライズモデル５８を用いて、ユーザが送信した過去のレスポンスが、同じ別れセマンティッククラスタに属し、かつ、この別れセマンティッククラスタに属するレスポンス提案モデル５６のレスポンス空間内のレスポンスのうちの１つに一致すると判断した場合、上記過去に送信したレスポンスを、パーソナライズされた候補レスポンスとして、セマンティッククラスタに含めることができる。たとえば、ユーザが過去に「また後でね」というレスポンスメッセージを送信した場合、レスポンス提案モジュール５４は、この「また後でね」というメッセージをパーソナライズされた候補レスポンスとして含めることができる。
【０１３１】
いくつかの例において、レスポンス提案モジュール５４は、ユーザが送信した過去のレスポンスが、射影ノードに対応付けられた予測レスポンスのランク付けリストにおける予測レスポンスと同一のセマンティッククラスタに属する場合、この過去のレスポンスをパーソナライズされた候補レスポンスとして含めることができる。このような過去のレスポンスは、セマンティッククラスタに属するレスポンス提案モデル５６のレスポンス空間内のレスポンスのうちの１つに一致するか否かに関わらず、パーソナライズされた候補レスポンスとして含めてもよい。
【０１３２】
たとえば、レスポンス提案モデル５６のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスを含む別れセマンティッククラスタに属する予測レスポンス「さようなら」の場合、レスポンス提案モジュール５４は、パーソナライズモデル５８を用いて、ユーザが送信した過去のレスポンスがこの別れセマンティッククラスタに属するか否かを判断してもよい。レスポンス提案モジュール５４が、パーソナライズモデル５８を用いて、過去のレスポンス「またね」が別れセマンティッククラスタに属すると判断した場合、レスポンス提案モジュール５４は、メッセージ「またね」を、「さようなら」、「また後でね」および「アディオス」のうちのいずれにも一致していないものの、パーソナライズされた候補レスポンスとして含めてもよい。
【０１３３】
いくつかの例において、ユーザが送信した２つ以上の過去のレスポンスが同一のセマンティッククラスタにマッピングされる場合がある。この場合、パーソナライズモデル５８は、このセマンティッククラスタにマッピングされる１つの過去のレスポンスのみを返してもよい。たとえば、パーソナライズモデル５８は、同一のセマンティッククラスタにマッピングされる過去のレスポンスのうち、最も頻繁に送信される過去のレスポンスを返してもよい。これに代えて、パーソナライズモデル５８は、同一のセマンティッククラスタにマッピングされる過去のレスポンスのうち、最後に送信された過去のレスポンスを返してもよい。また、パーソナライズモデル５８は、その他何らかの適切な代替技術または基準を用いて、同一のセマンティッククラスタにマッピングされた複数の過去レスポンスから１つの過去レスポンスを選択してもよい。
【０１３４】
過去に送信されたレスポンスをパーソナライズされた候補レスポンスとして含めることは、この過去に送信されたレスポンスを、受信した通信に対する予測レスポンスのランク付けリストに追加することを含み得る。たとえば、ユーザが過去にレスポンスメッセージ「また後でね」を送信していた場合、レスポンス提案モジュール５４は、このメッセージ「また後でね」を、予測レスポンスのランク付けリストに含めてもよい。いくつかの例において、この過去に送信されたレスポンスを、このレスポンスと同一のセマンティッククラスタに属する予測レスポンスのランク付けリストにおけるその他の予測レスポンスと置き換えてもよい。よって、「また後でね」というレスポンスメッセージを、レスポンス提案モジュール５４が、予測レスポンスのランク付けリストにはセマンティッククラスタの１つのレスポンスのみを含めると決定した場合には、予測レスポンスのランク付けリストに以前に含まれたレスポンスメッセージ「さようなら」と置き換えてもよい。
【０１３５】
レスポンス提案モジュール５４は、比較的高い重みまたはランクを、過去に送信されたレスポンスに割り当てることにより、この過去に送信されたレスポンスが、ユーザに提示される１つ以上の候補レスポンスの１つとして含まれる確率を高めてもよい。いくつかの例において、レスポンス提案モジュール５４は常に、予測レスポンスのランク付けリストに追加された過去の送信レスポンスが、ユーザに提示される１つ以上の候補レスポンスに含まれることを、保証してもよい。このようにして、レスポンス提案モジュール５４は、１つ以上のパーソナライズされた候補レスポンスを、ユーザに提示される１つ以上の候補レスポンスに含めることができる。
【０１３６】
図６は、本開示の１つ以上の技術に従う、オンデバイス機械訓練モデルを用いて受信通信に対する候補レスポンスを生成するためのコンピューティングデバイスの動作の例を示すフロー図である。以下では、図６の動作の例を図１〜図５の文脈の中で説明するが、これは説明のために過ぎない。
【０１３７】
図６の例において、コンピューティングデバイス２の少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信する（２００）。この少なくとも１つのプロセッサは、コンピューティングデバイス２上で実行されるオンデバイス機械訓練モデル５６を用いることにより、上記受信した通信に少なくとも一部基づいて、この通信に対する１つ以上の候補レスポンスを決定する（２０２）。この少なくとも１つのプロセッサは、上記１つ以上の候補レスポンスから１つの候補レスポンスを選択するユーザ入力の指示を受ける（２０４）。上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記少なくとも１つのプロセッサは、この候補レスポンスを、通信の送信元である外部コンピューティングデバイスに送信する（２０６）。
【０１３８】
いくつかの例において、オンデバイス機械訓練モデル５６は、複数の射影ノードの指示を含む。複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。いくつかの例において、上記オンデバイス機械訓練モデル５６を用い通信に少なくとも一部基づいて通信に対する１つ以上の候補レスポンスを決定することは、上記少なくとも１つのプロセッサが、ランダム射影関数１０２を用いて、受信した通信をオンザフライでハッシュシグネチャに射影することと、この少なくとも１つのプロセッサが、上記複数の射影ノードから、ハッシュシグネチャに対応付けられた射影ノードを決定することと、この少なくとも１つのプロセッサが、予測レスポンスのランク付けリストから、通信に対する１つ以上の候補レスポンスを決定することとをさらに含む。いくつかの例において、オンデバイス機械訓練モデル５６は、複数の射影ノードを対応する予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステム１００における半教師あり機械学習によって訓練される。
【０１３９】
いくつかの例において、上記少なくとも１つのプロセッサは、コンピューティングデバイスの、通信の宛先としての受信者であるユーザの、通信履歴３２に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定してもよく、また、この１つ以上のパーソナライズされた候補レスポンスを、１つ以上の候補レスポンスに含めてもよい。いくつかの例において、上記１つ以上のパーソナライズされた候補レスポンスを決定することはさらに、上記少なくとも１つのプロセッサが、オンデバイス機械訓練モデル５６を用い通信に少なくとも一部基づいて、通信に対する予測レスポンスのランク付けリストを決定することを含み得る、上記１つ以上の候補レスポンスは、レスポンスのランク付けリストから選択される。また、ユーザの通信履歴３２が、予測レスポンスと同一のセマンティッククラスタに属する、ユーザが送信した過去のレスポンスを含むと判断したことに応じて、上記少なくとも１つのプロセッサは、ユーザが送信した過去のレスポンスを、１つ以上のパーソナライズされた候補レスポンスに含めてもよい。いくつかの例において、ユーザが送信した過去のレスポンスを１つ以上のパーソナライズされた候補レスポンスに含めることはさらに、少なくとも１つのプロセッサが、セマンティッククラスタに属するオンデバイス機械訓練モデル５６のレスポンス空間内の複数の予測レスポンスのうちの１つに過去のレスポンスが一致すると判断したことに応じて、実行される。
【０１４０】
番号を付した以下の例は、本開示の１つ以上の局面を示し得る。
例１．コンピューティングデバイスの少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、上記少なくとも１つのプロセッサが、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する１つ以上の候補レスポンスを決定するステップと、上記少なくとも１つのプロセッサが、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、上記少なくとも１つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するステップとを含む、方法。
【０１４１】
例２．例１に記載の方法であって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【０１４２】
例３．例２に記載の方法であって、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する１つ以上の候補レスポンスを決定するステップはさらに、上記少なくとも１つのプロセッサが、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影するステップと、上記少なくとも１つのプロセッサが、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定するステップと、上記少なくとも１つのプロセッサが、上記予測レスポンスのランク付けリストから、上記通信に対する１つ以上の候補レスポンスを決定するステップとを含む。
【０１４３】
例４．例１〜３のいずれかに記載の方法であって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【０１４４】
例５．例１〜４のいずれかに記載の方法であって、上記少なくとも１つのプロセッサが、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するステップをさらに含み、上記ユーザは、上記通信の宛先としての受信者であり、上記少なくとも１つのプロセッサが、上記１つ以上のパーソナライズされた候補レスポンスを上記１つ以上の候補レスポンスに含めるステップをさらに含む。
【０１４５】
例６．例５に記載の方法であって、上記１つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、上記少なくとも１つのプロセッサが、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、上記１つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記少なくとも１つのプロセッサが、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるステップを含む。
【０１４６】
例７．例６に記載の方法であって、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、上記セマンティッククラスタに属する上記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに上記過去のレスポンスが一致すると判断したことに応じて、実行される。
【０１４７】
例８．コンピューティングデバイスであって、オンデバイス機械訓練モデルを格納するように構成されたメモリと、上記メモリに作動的に結合された少なくとも１つのプロセッサとを備え、上記少なくとも１つのプロセッサは、外部コンピューティングデバイスから送信された通信を受信し、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する１つ以上の候補レスポンスを決定し、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するように、構成されている。
【０１４８】
例９．例８に記載のコンピューティングデバイスであって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【０１４９】
例１０．例９に記載のコンピューティングデバイスであって、上記少なくとも１つのプロセッサはさらに、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影し、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定し、上記予測レスポンスのランク付けリストから、上記通信に対する１つ以上の候補レスポンスを決定するように、構成されている。
【０１５０】
例１１．例８〜１０のいずれかに記載のコンピューティングデバイスであって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【０１５１】
例１２．例８〜１１のいずれかに記載のコンピューティングデバイスであって、上記少なくとも１つのプロセッサはさらに、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、上記ユーザは、上記通信の宛先としての受信者であり、上記少なくとも１つのプロセッサはさらに、上記１つ以上のパーソナライズされた候補レスポンスを上記１つ以上の候補レスポンスに含めるように構成されている。
【０１５２】
例１３．例１２に記載のコンピューティングデバイスであって、上記少なくとも１つのプロセッサはさらに、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、上記１つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記少なくとも１つのプロセッサはさらに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている。
【０１５３】
例１４．例１３に記載のコンピューティングデバイスであって、上記少なくとも１つのプロセッサはさらに、上記セマンティッククラスタに属する上記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに上記過去のレスポンスが一致すると判断したことにさらに応じて、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている。
【０１５４】
例１５．命令で符号化されたコンピュータ読取可能記憶媒体であって、上記命令は、実行されると、コンピューティングデバイスの少なくとも１つのプロセッサに、外部コンピューティングデバイスから送信された通信を受信することと、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する１つ以上の候補レスポンスを決定することと、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることと、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信することとを実行させる。
【０１５５】
例１６．例１５に記載のコンピュータ読取可能記憶媒体であって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【０１５６】
例１７．例１６に記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも１つのプロセッサに、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影することと、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定することと、上記予測レスポンスのランク付けリストから、上記通信に対する１つ以上の候補レスポンスを決定することとを実行させる。
【０１５７】
例１８．例１５〜１７のいずれかに記載のコンピュータ読取可能記憶媒体であって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【０１５８】
例１９．例１５〜１８のいずれかに記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも１つのプロセッサに、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定することを実行させ、上記ユーザは、上記通信の宛先としての受信者であり、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも１つのプロセッサに、上記１つ以上のパーソナライズされた候補レスポンスを上記１つ以上の候補レスポンスに含めることを実行させる。
【０１５９】
例２０．例１９に記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも１つのプロセッサに、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定することを実行させ、上記１つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも１つのプロセッサに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めることを実行させる。
【０１６０】
例２１．例１〜７のいずれかに記載の方法を実行するための手段を含むコンピューティングシステム。
【０１６１】
例２２．少なくとも１つのプロセッサによって実行されるとこの少なくとも１つのプロセッサに例１〜７のいずれかに記載の方法を実行させる命令を格納するコンピュータ読取可能記憶媒体。
【０１６２】
例２３．ある方法は、コンピューティングデバイスの少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、上記少なくとも１つのプロセッサが、上記通信に少なくとも一部基づいて、上記通信に対する、１つ以上のパーソナライズされた候補レスポンスを含む１つ以上の候補レスポンスを決定するステップとを含み、これは、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、上記１つ以上のパーソナライズされた候補レスポンスを決定するステップを含む。上記ユーザは、上記通信の宛先としての受信者である。この方法はまた、上記少なくとも１つのプロセッサが、上記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、上記少なくとも１つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するステップとを含む。
【０１６３】
例２４．例２３に記載の方法であって、上記１つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、上記少なくとも１つのプロセッサが、上記通信に少なくとも一部基づいて、この通信に対する予測レスポンスのランク付けリストを決定するステップを含み、上記１つ以上の候補レスポンスは、このレスポンスのランク付けリストから選択され、さらに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記少なくとも１つのプロセッサが、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるステップを含む。
【０１６４】
例２５．例２４に記載の方法であって、上記ユーザから送信された過去のレスポンスを上記１つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、上記セマンティッククラスタに属するレスポンス空間内の複数の予測レスポンスのうちの１つに上記過去のレスポンスが一致すると判断したことに応じて、実行される。
【０１６５】
例２６．例２３〜２５のいずれかに記載の方法を実行するための手段を含むコンピューティングシステム。
【０１６６】
例２２．少なくとも１つのプロセッサによって実行されるとこの少なくとも１つのプロセッサに例２３〜２５のいずれかに記載の方法を実行させる命令を格納するコンピュータ読取可能記憶媒体。
【０１６７】
１つ以上の例において、記載された機能は、ハードウェア、ソフトウェア、ファームウェアまたはその任意の組み合わせにおいて実現され得る。ソフトウェアにおいて実現される場合、当該機能は、１つ以上の命令またはコードとして、コンピュータ読取可能媒体上に格納またはコンピュータ読取可能媒体を介して送信され得、ハードウェアに基づいた処理ユニットによって実行され得る。コンピュータ読取可能媒体は、データ記憶媒体、または、たとえば通信プロトコルに従ってある位置から別の位置までコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体といった有形の媒体に対応するコンピュータ読取可能記憶媒体を含み得る。この態様において、コンピュータ読取可能媒体は一般に、（１）一時的でない有形のコンピュータ読取可能記憶媒体、または、（２）信号もしくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、この開示において記載される技術の実現のために命令、コードおよび／またはデータ構造を抽出するよう、１つ以上のコンピュータまたは１つ以上のプロセッサによってアクセス可能である任意の利用可能な媒体であり得る。コンピュータプログラムプロダクトはコンピュータ読取可能媒体を含み得る。
【０１６８】
限定ではなく例示として、そのようなコンピュータ読取可能記憶媒体は、所望のプログラムコードを命令またはデータ構造の形態で格納するために使用され得るとともにコンピュータによってアクセスされ得るＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光学ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または任意の他の記憶媒体を含み得る。さらに、任意の接続は、適切にコンピュータ読取可能媒体と称される。たとえば、同軸ケーブル、光ファイバケーブル、撚り対線、デジタル加入者線（ＤＳＬ）、または、赤外線、無線通信およびマイクロ波のような無線技術を使用して、命令がウェブサイト、サーバまたは他のリモートソースから送信される場合、当該同軸ケーブル、光ファイバケーブル、撚り対線、ＤＳＬ、または、赤外線、無線通信およびマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的な媒体を含んでいないが、その代りに、一時的でない有形の記憶媒体に関するということが理解されるべきである。本願明細書において使用されるようなディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタルバーサタイルディスク（ＤＶＤ）、フロッピー（登録商標）ディスクおよびブルーレイディスクを含んでおり、ディスク（ｄｉｓｋ）は通常磁気的にデータを再生するものである一方、ディスク（ｄｉｓｃ）はレーザによりデータを光学的に再生するものである。上記のものの組み合わせも、コンピュータ読取可能媒体の範囲内に含まれるべきである。
【０１６９】
命令は、１つ以上のプロセッサによって実行され得、たとえば、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ：field programmable logic array）、または、他の同等な集積論理回路または離散論理回路によって実行され得る。したがって、本願明細書において使用される「プロセッサ」という用語は、前述の構造、または、本願明細書において記載される技術の実現に好適な任意の他の構造のいずれかを指す。さらに、いくつかの局面において、本願明細書において記載される機能は、専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得る。さらに、１つ以上の回路または論理素子において当該技術が完全に実現され得る。
【０１７０】
この開示の技術は、無線ハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえばチップセット）を含むさまざまなデバイスまたは装置において実現され得る。さまざまなコンポーネント、モジュールまたはユニットは、開示された技術を実行するように構成されるデバイスの機能的な局面を強調するようにこの開示において記載されているが、必ずしも異なるハードウェアユニットによる実現を要求していない。むしろ、上述したように、さまざまなユニットがハードウェアユニットにおいて組み合わされ得るか、または、好適なソフトウェアおよび／またはファームウェアに関連して上述したような１つ以上のプロセッサを含む共同で動作するハードウェアユニットの集合によって提供され得る。
【０１７１】
各種例について説明した。上記およびその他の例は以下の請求項の範囲に含まれる。
【図１】
2019535073.tif 000003
【図２】
2019535073.tif 000004
【図３】
2019535073.tif 000005
【図４】
2019535073.tif 000006
【図５】
2019535073.tif 000007
【図６】
2019535073.tif 000008
【手続補正書】
【提出日】令和1年6月6日(2019.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイスの少なくとも１つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、
前記少なくとも１つのプロセッサが、オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する１つ以上の候補レスポンスを決定するステップと、
前記少なくとも１つのプロセッサが、前記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、
前記少なくとも１つのプロセッサが、前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するステップとを含む、方法。
【請求項２】
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている、請求項１に記載の方法。
【請求項３】
前記通信に対する１つ以上の候補レスポンスを決定するステップはさらに、
前記少なくとも１つのプロセッサが、ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影するステップと、
前記少なくとも１つのプロセッサが、前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定するステップと、
前記少なくとも１つのプロセッサが、前記予測レスポンスのランク付けリストから、前記通信に対する１つ以上の候補レスポンスを決定するステップとを含む、請求項２に記載の方法。
【請求項４】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項２または３に記載の方法。
【請求項５】
前記少なくとも１つのプロセッサが、前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するステップをさらに含み、前記ユーザは、前記通信の宛先としての受信者であり、
前記少なくとも１つのプロセッサが、前記１つ以上のパーソナライズされた候補レスポンスを前記１つ以上の候補レスポンスに含めるステップをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記１つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、
前記少なくとも１つのプロセッサが、前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、前記１つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記少なくとも１つのプロセッサが、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるステップを含む、請求項５に記載の方法。
【請求項７】
前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに前記過去のレスポンスが一致すると判断したことに応じて、実行される、請求項６に記載の方法。
【請求項８】
コンピューティングデバイスであって、
オンデバイス機械訓練モデルを格納するように構成されたコンピュータ読取可能記憶媒体と、
前記コンピュータ読取可能記憶媒体に作動的に結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサは、
外部コンピューティングデバイスから送信された通信を受信し、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する１つ以上の候補レスポンスを決定し、
前記１つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、
前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するように、構成されている、コンピューティングデバイス。
【請求項９】
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記少なくとも１つのプロセッサはさらに、
ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影し、
前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定し、
前記予測レスポンスのランク付けリストから、前記通信に対する１つ以上の候補レスポンスを決定するように、構成されている、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項９または１０に記載のコンピューティングデバイス。
【請求項１２】
前記少なくとも１つのプロセッサはさらに、
前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、１つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、前記ユーザは、前記通信の宛先としての受信者であり、前記少なくとも１つのプロセッサはさらに、
前記１つ以上のパーソナライズされた候補レスポンスを前記１つ以上の候補レスポンスに含めるように構成されている、請求項８〜１１のいずれか１項に記載のコンピューティングデバイス。
【請求項１３】
前記少なくとも１つのプロセッサはさらに、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、前記１つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、前記少なくとも１つのプロセッサはさらに、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記少なくとも１つのプロセッサはさらに、
前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの１つに前記過去のレスポンスが一致すると判断したことにさらに応じて、前記ユーザから送信された過去のレスポンスを前記１つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項１３に記載のコンピューティングデバイス。
【請求項１５】
命令で符号化されたコンピュータ読取可能記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの少なくとも１つのプロセッサに、請求項１〜７のいずれか１項に記載の方法を実行させる、コンピュータ読取可能記憶媒体。
【請求項１６】
コンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータに、請求項１〜７のいずれか１項に記載の方法を実行させる、プログラム。
【国際調査報告】
2019535073.tif 000009
2019535073.tif 000010