特許第6850877号(P6850877)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ グーグル インコーポレイテッドの特許一覧

特許6850877オンデバイスモデルを使用するスマートリプライ
<>
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000002
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000003
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000004
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000005
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000006
  • 特許6850877-オンデバイスモデルを使用するスマートリプライ 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6850877
(24)【登録日】2021年3月10日
(45)【発行日】2021年3月31日
(54)【発明の名称】オンデバイスモデルを使用するスマートリプライ
(51)【国際特許分類】
   G06N 20/00 20190101AFI20210322BHJP
【FI】
   G06N20/00
【請求項の数】14
【全頁数】43
(21)【出願番号】特願2019-515964(P2019-515964)
(86)(22)【出願日】2017年9月22日
(65)【公表番号】特表2019-535073(P2019-535073A)
(43)【公表日】2019年12月5日
(86)【国際出願番号】US2017052958
(87)【国際公開番号】WO2018057890
(87)【国際公開日】20180329
【審査請求日】2019年6月6日
(31)【優先権主張番号】62/399,002
(32)【優先日】2016年9月23日
(33)【優先権主張国】US
(31)【優先権主張番号】15/686,954
(32)【優先日】2017年8月25日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ラビ,スジット
(72)【発明者】
【氏名】ラディック,トーマス・マシュー
(72)【発明者】
【氏名】ビーチ,ネイサン・ディカーソン
(72)【発明者】
【氏名】マックレガー,ジョン・パトリック,ジュニア
(72)【発明者】
【氏名】ラニエリ,ミルコ
【審査官】 金田 孝之
(56)【参考文献】
【文献】 米国特許出願公開第2015/0302301(US,A1)
【文献】 特開2013−254420(JP,A)
【文献】 特表2008−512789(JP,A)
【文献】 特開2014−134903(JP,A)
【文献】 特開2001−056792(JP,A)
【文献】 特開2000−339314(JP,A)
【文献】 鈴山 晃司、外3名,コールセンターDB構築・検索と質問回答作成支援システム,情報処理学会研究報告,日本,社団法人情報処理学会,2007年 3月28日,第2007巻,第35号,p.29−34
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00−99/00
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスの少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、
前記少なくとも1つのプロセッサが、オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する1つ以上の候補レスポンスを決定するステップと、
前記少なくとも1つのプロセッサが、前記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、
前記少なくとも1つのプロセッサが、前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するステップとを含み、
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられ、
前記通信に対する1つ以上の候補レスポンスを決定するステップはさらに、
前記少なくとも1つのプロセッサが、ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影するステップと、
前記少なくとも1つのプロセッサが、前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定するステップと、
前記少なくとも1つのプロセッサが、前記予測レスポンスのランク付けリストから、前記通信に対する1つ以上の候補レスポンスを決定するステップとを含む、方法。
【請求項2】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項に記載の方法。
【請求項3】
前記少なくとも1つのプロセッサが、前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するステップをさらに含み、前記ユーザは、前記通信の宛先としての受信者であり、
前記少なくとも1つのプロセッサが、前記1つ以上のパーソナライズされた候補レスポンスを前記1つ以上の候補レスポンスに含めるステップをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記1つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、
前記少なくとも1つのプロセッサが、前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、前記1つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記少なくとも1つのプロセッサが、前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるステップを含む、請求項に記載の方法。
【請求項5】
コンピューティングデバイスの少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、
前記少なくとも1つのプロセッサが、オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する1つ以上の候補レスポンスを決定するステップと、
前記少なくとも1つのプロセッサが、前記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、
前記少なくとも1つのプロセッサが、前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するステップと、
前記少なくとも1つのプロセッサが、前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するステップとを含み、前記ユーザは、前記通信の宛先としての受信者であり、
前記少なくとも1つのプロセッサが、前記1つ以上のパーソナライズされた候補レスポンスを前記1つ以上の候補レスポンスに含めるステップをさらに含み、
前記1つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、
前記少なくとも1つのプロセッサが、前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、前記1つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記少なくとも1つのプロセッサが、前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるステップを含む、方法。
【請求項6】
前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの1つに前記過去のレスポンスが一致すると判断したことに応じて、実行される、請求項4または5に記載の方法。
【請求項7】
コンピューティングデバイスであって、
オンデバイス機械訓練モデルを格納するように構成されたコンピュータ読取可能記憶媒体と、
前記コンピュータ読取可能記憶媒体に作動的に結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
外部コンピューティングデバイスから送信された通信を受信し、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する1つ以上の候補レスポンスを決定し、
前記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、
前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信するように、構成され
前記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、前記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられ、
前記少なくとも1つのプロセッサはさらに、
ランダム射影関数を用いて、前記受信した通信をハッシュシグネチャに射影し、
前記複数の射影ノードから、前記ハッシュシグネチャに対応付けられた射影ノードを決定し、
前記予測レスポンスのランク付けリストから、前記通信に対する1つ以上の候補レスポンスを決定するように、構成されている、コンピューティングデバイス。
【請求項8】
前記オンデバイス機械訓練モデルは、前記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される、請求項に記載のコンピューティングデバイス。
【請求項9】
前記少なくとも1つのプロセッサはさらに、
前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、前記ユーザは、前記通信の宛先としての受信者であり、前記少なくとも1つのプロセッサはさらに、
前記1つ以上のパーソナライズされた候補レスポンスを前記1つ以上の候補レスポンスに含めるように構成されている、請求項7または8に記載のコンピューティングデバイス。
【請求項10】
前記少なくとも1つのプロセッサはさらに、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、前記1つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、前記少なくとも1つのプロセッサはさらに、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項に記載のコンピューティングデバイス。
【請求項11】
コンピューティングデバイスであって、
オンデバイス機械訓練モデルを格納するように構成されたコンピュータ読取可能記憶媒体と、
前記コンピュータ読取可能記憶媒体に作動的に結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
外部コンピューティングデバイスから送信された通信を受信し、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する1つ以上の候補レスポンスを決定し、
前記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、
前記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、前記候補レスポンスを前記外部コンピューティングデバイスに送信し、
前記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、前記ユーザは、前記通信の宛先としての受信者であり、
前記少なくとも1つのプロセッサはさらに、
前記1つ以上のパーソナライズされた候補レスポンスを前記1つ以上の候補レスポンスに含めるように構成され、
前記少なくとも1つのプロセッサはさらに、
前記オンデバイス機械訓練モデルを用い、前記通信に少なくとも一部基づいて、前記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、前記1つ以上の候補レスポンスは、前記レスポンスのランク付けリストから選択され、前記少なくとも1つのプロセッサはさらに、
前記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する前記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、コンピューティングデバイス。
【請求項12】
前記少なくとも1つのプロセッサはさらに、
前記セマンティッククラスタに属する前記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの1つに前記過去のレスポンスが一致すると判断したことにさらに応じて、前記ユーザから送信された過去のレスポンスを前記1つ以上のパーソナライズされた候補レスポンスに含めるように構成されている、請求項10または11に記載のコンピューティングデバイス。
【請求項13】
命令で符号化されたコンピュータ読取可能記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの少なくとも1つのプロセッサに、請求項1〜のいずれか1項に記載の方法を実行させる、コンピュータ読取可能記憶媒体。
【請求項14】
コンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータに、請求項1〜のいずれか1項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2016年9月23日に出願された米国仮特許出願第62/399,002号に基づく利益を主張し、その内容全体を本明細書に引用により援用する。
【背景技術】
【0002】
背景
あるコンピューティングデバイスは、このデバイスのユーザが、他のコンピューティングデバイスのユーザから送信された受信通信(たとえば受信メッセージ)に対して応答できるようにすることが可能である。このようなコンピューティングデバイスは、保存している1つ以上のストックレスポンスを提供し、ユーザが受信した通信に対するレスポンスを作成するときに選択できるようにすることが可能である。コンピューティングデバイスは、あるストックレスポンスを選択するユーザ入力の指示を受けたことに応じて、選択されたストックレスポンスを、このコンピューティングデバイスから、もう1つの、通信の送信元である他のユーザのコンピューティングデバイスに送信することが可能である。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
本開示の局面は、オンデバイス機械訓練モデルに基づいて、受信した通信に返信するための候補レスポンスを提供することに関する。すなわち、本開示の技術に従うと、コンピューティングデバイスは、外部または遠隔コンピューティングデバイスから通信を受信することができる。コンピューティングデバイスは、受信した通信の、オンデバイス機械訓練モデルへの入力に基づいて、受信した通信に関連する1つ以上の候補レスポンスを決定し、この1つ以上の候補レスポンスを出力することができる。この1つ以上の候補レスポンスのうちの1つの候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、コンピューティングデバイスは、受信した通信に対して応答するために、選択された候補レスポンスを上記遠隔コンピューティングデバイスに送信することができる。
【0004】
ある局面において、本開示はある方法に関する。この方法は、コンピューティングデバイスの少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップを含む。この方法はさらに、上記少なくとも1つのプロセッサが、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、この通信に対する1つ以上の候補レスポンスを決定するステップを含む。この方法はさらに、上記少なくとも1つのプロセッサが、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップを含む。この方法はさらに、上記少なくとも1つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを上記外部コンピューティングデバイスに送信するステップを含む。
【0005】
別の局面において、本開示はコンピューティングデバイスに関する。このコンピューティングデバイスは、オンデバイス機械訓練モデルを格納するように構成されたメモリを備える。このコンピューティングデバイスはさらに、上記メモリに作動的に結合された少なくとも1つのプロセッサを備える。この少なくとも1つのプロセッサは、外部コンピューティングデバイスから送信された通信を受信し、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、この通信に対する1つ以上の候補レスポンスを決定し、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するように、構成されている。
【0006】
もう1つの局面において、本開示は命令で符号化されたコンピュータ読取可能記憶媒体に関する。この命令は、実行されると、コンピューティングデバイスの少なくとも1つのプロセッサに、外部コンピューティングデバイスから送信された通信を受信することと、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する1つ以上の候補レスポンスを決定することと、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることと、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを上記外部コンピューティングデバイスに送信することとを、実行させる。
【0007】
1つ以上の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、以下の説明および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【0008】
図1】本開示の1つ以上の技術に従う、受信した通信に対する候補レスポンスを提供するように構成することが可能なコンピューティングデバイスおよびグラフィカルユーザインターフェイス(GUI)の一例を示すブロック図である。
図2】本開示の1つ以上の技術に従う、受信した通信に対する候補レスポンスを提供するように構成することが可能なコンピューティングデバイスの一例の詳細を示すブロック図である。
図3】本開示の1つ以上の技術に従う、遠隔デバイスで表示するためのグラフィックコンテンツを出力するように構成することが可能なコンピューティングデバイスの一例を示すブロック図である。
図4】本開示の1つ以上の技術に従う、受信した通信に対する候補レスポンスを生成するためにコンピューティングデバイスの一例が利用し得る機械訓練技術の一例を示すブロック図である。
図5】本開示の1つ以上の技術に従う、受信した通信に対する候補レスポンスをオンデバイス機械訓練モデルを用いて生成する技術の一例を示すブロック図である。
図6】本開示の1つ以上の技術に従う、受信した通信に応じて候補レスポンスを生成するためにオンデバイス機械訓練モデルを利用するコンピューティングデバイスの動作の一例を示すフロー図である。
【発明を実施するための形態】
【0009】
詳細な説明
概して、本開示の局面は、オンデバイス機械訓練モデルに基づいて、受信した通信に返信するための候補レスポンスを提供すること、および、スマートフォンまたはウェアラブルデバイス(たとえばスマートウォッチ)等のモバイルコンピューティングデバイス上での使用に対して最適化すべく、このような機械訓練モデルを生成することに関する。コンピューティングデバイス上のメッセージングアプリケーションは、通信を受信することができ、コンピューティングデバイス上の機械訓練モデルを用いて、受信した通信に関連する候補レスポンスを予測することができる。メッセージングアプリケーションは、このモデルによって予測された候補レスポンスを提示することができ、受信した通信の送信元に送信するために、提示された候補レスポンスの中から1つのレスポンスをユーザが選択できるようにすることが可能である。
【0010】
受信した通信に返信するための候補レスポンスを提供することは、受信した通信に応答するためにテキスト入力することが厄介であるかまたは社会的に認められないような状況において、受信した通信に対してユーザが素早くかつ目立たないように返信できるようにすることで、有用となるであろう。一例において、スマートウォッチが、テキスト入力オプションとして音声入力しか提供しない場合、このようなテキスト入力方法は、騒々しい環境では確実ではない、または役に立たないことがある。別の例として、受信した通信に対するレスポンスをユーザが発話によって音声入力することまたは書き込むことが社会的に認められない場合がある(たとえばユーザが会議中のとき)。その場合、コンピューティングデバイスは、受信した通信に返信するための候補レスポンスを提供することにより、コンピューティングデバイスのユーザが、素早く確実にかつ都合の良いやり方で、受信した通信に返信できるようにすることが可能である。
【0011】
コンピューティングデバイスは、機械訓練モデルを利用して、受信通信に対する関連性が高い候補レスポンスを生成することにより、受信通信に応答するために候補レスポンスのうちの1つをユーザが選択する可能性を高くすることができる。機械訓練モデルを利用すると、場合によっては、受信通信に応答するためのメッセージを送信するためにユーザがコンピューティングデバイスとやり取りするのに要する時間の量を短縮できる。なぜなら、ユーザは、レスポンスメッセージをタイプする、話す、または手で入力しなくてもよいからである。ユーザがコンピューティングデバイスとやり取りするのに必要な時間の量を短縮することにより、コンピューティングデバイスは、その電力を十分に節約して電池寿命を長くすることができる。このような電力の節約は、特にコンピューティングデバイスがスマートウォッチ等のウェアラブルコンピューティングデバイスである場合に重要になる。そうでなければ、このようなウェアラブルデバイスの電池寿命は非常に限られたものになるであろう。
【0012】
一般的に、機械訓練モデルは、所定の入力に対する出力を推測するために、機械学習技術を用いて、大きなデータセットに対して訓練することができる。より具体的には、本開示の局面に従うと、機械訓練モデルは、受信通信に対する関連のある候補レスポンスを推測するために、機械学習技術に基づき大きなデータセットに対して訓練することで生成された、コンピューティングデバイス上で実行されるアプリケーションまたはモジュールであってもよい。たとえば、モデルを機械訓練するときに使用するデータセットは、通信とこのような通信に対する返信とのペアを含み得る。そうすると、コンピューティングシステムは、このような通信と返信とのペアに対して機械訓練を実行することにより、受信通信に応答する際に、適切な返信を推測することができる。機械学習を通して訓練されたモデルは、潜在的に、候補レスポンスを決定する他の方法と比較して、文脈上の関連性がより高い、受信通信に対する候補レスポンスを提案することができる。文脈上の関連性がより高い候補レスポンスを提案することで、ユーザが、受信メッセージに返信するために、提案された候補レスポンスのうちの1つ選択する可能性は、高くなるであろう。
【0013】
コンピューティングデバイスが使用するモデルは、受信通信に関連する候補レスポンスを生成するために完全にコンピューティングデバイス上で動作してもよい。すなわち、受信通信に対する1つ以上の候補レスポンスを決定する際、コンピューティングデバイスは、オフデバイスモデル(たとえばクラウド内で動作する機械訓練モデル)による処理のために受信通信の何らかの指示をオフデバイスで(たとえばクラウドに)送信する訳ではない。同様に、コンピューティングデバイスは、別のコンピューティングデバイスから、受信通信に関連する1つ以上の候補レスポンスの指示を受ける訳でもない。その代わりに、コンピューティングデバイスは、完全にコンピューティングデバイス上でオンデバイス機械訓練モデルを実行することにより、受信通信に関連する1つ以上の候補レスポンスを決定する。このようにして、本開示の技術を実現するコンピューティングデバイスは、オンデバイス機械訓練モデルを利用することにより、ネットワーク(たとえばインターネット)を通して外部の機械訓練モデル(たとえばクラウドベースのサービスの一部としてのモデル)にアクセスしなくても、受信通信に関連する候補レスポンスを提供することができる。
【0014】
受信通信の指示をオフデバイスで送信することなく候補レスポンスを生成できるオンデバイスモデルの潜在的な1つの利点は、ホストコンピューティングデバイスが、たとえば、低品質のセルラーまたは短距離無線(たとえばWi−Fi(登録商標))信号を有するときや、たとえばコンピューティングデバイスが航空機モードに設定されていてネットワーク接続が全く使えないときなど、断続的なインターネット接続しか利用できないときでも、有用となり得る、という点である。また、オンデバイスモデルにより、ホストコンピューティングデバイスは、消費するネットワークデータおよび帯域幅を少なくすることができる。なぜなら、コンピューティングデバイスは受信通信をオフデバイスモデルに送信しないからである。
【0015】
オンデバイスモデルの別の潜在的な利点は、オンデバイスモデルが、メッセージングアプリケーションに対し、エンドツーエンドの暗号化をサポートし得る点である。エンドツーエンド暗号化メッセージングアプリケーションにおいて、送信者と受信者との間のメッセージは、送信者または受信者のコンピューティングデバイスにおいてのみ、解読されるが、そうでなければ暗号化された形態である。このため、エンドツーエンドの暗号化では、暗号化されていないメッセージを、たとえば、メッセージに対する候補レスポンスを生成するためにオフデバイスモデル(たとえばクラウド内のモデル)によって処理されるよう外部システムに送信することはできない。これは、このような通信を第三者による監視または改ざんから守るために送信者と受信者との間の通信のセキュリティを改善するのに役立ち得る。
【0016】
しかしながら、コンピューティングデバイス、とりわけ、スマートフォンまたはスマートウォッチ等のモバイルコンピューティングデバイスは、デスクトップコンピューティングデバイス、サーバコンピューティングデバイス、またはクラウドコンピューティングデバイスと比較すると、コンピューティングリソースが比較的限られている場合がある。なぜなら、モバイルコンピューティングデバイスの動作は、たとえば、パフォーマンスと、電池寿命、熱の放出、およびサイズの制約との兼ね合いに基づいている場合があるからである。このため、デスクトップまたはサーバコンピューティングデバイスのために設計された機械訓練モデルは、モバイルコンピューティングデバイス上で実行された場合に、許容できる性能を提供できない場合がある。たとえば、このようなモデルは、メモリ空間を過剰に占有する場合がある、または、このようなモデルを使用するデバイスは受信通信に対する候補レスポンスを生成するのに過剰な時間を要する場合がある。加えて、このようなモデルは、その動作中に、モバイルコンピューティングデバイスの電力(たとえばバッテリ)を過剰に消費する場合もある。
【0017】
オンデバイス機械訓練モデルを用いて1つ以上の候補レスポンスを決定するとき、コンピューティングデバイスは、ユーザが過去に送信したテキストメッセージ、電子メール等といったユーザのメッセージング履歴に基づいて、1つ以上の候補レスポンスをパーソナライズすることができる。ユーザのメッセージング履歴にアクセスするためのアクセス権がユーザから明示的に与えられると、コンピューティングデバイスは、ユーザのメッセージング履歴にアクセスし、このユーザのメッセージング履歴に少なくとも一部基づいて、1つ以上の候補レスポンスを決定することができる。たとえば、コンピューティングデバイスは、過去にユーザが送信した1つ以上のメッセージを、1つ以上の候補レスポンスに含めることができる。
【0018】
このように、本開示の局面に従うと、オンデバイス機械訓練モデルを、モバイルコンピューティングデバイスによる使用に合わせて特別に設計して、モバイルコンピューティングデバイスのリソースの制約(たとえば、メモリ、処理、および/または消費電力の制約)を満たすようにすることができる。遠隔コンピューティングデバイス(本明細書では外部コンピューティングデバイスと呼ぶこともある)が、機械学習を実行することによって機械訓練モデルを生成してもよく、このデバイスは、(たとえばオンデバイス機械訓練モデルとして)このモデルをモバイルコンピューティングデバイスにロードしてもよい。モバイルコンピューティングデバイスは、オンデバイス機械訓練モデルをローカルで使用することにより、受信した通信の指示をモバイルコンピューティングデバイスの外部に送信する(たとえば、受信通信をネットワークを介してクラウドに送信する)ことなく、受信通信に対する候補レスポンスを生成することができる。
【0019】
図1は、本開示の1つ以上の技術に従う、受信した通信に対して返信する候補レスポンスを提供するための、一例としてのコンピューティングデバイス2ならびにグラフィカルユーザインターフェイス(GUI)20および26を示すブロック図である。コンピューティングデバイス2の例は、ポータブル、モバイル、またはその他のデバイス、たとえば、携帯電話(スマートフォンを含む)、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、スマートテレビプラットフォーム、携帯情報端末(PDA)、サーバコンピュータ、メインフレームその他を含むが、これらに限定されない。たとえば、図1の例において、コンピューティングデバイス2はスマートウォッチ等のウェアラブルコンピューティングデバイスであってもよい。
【0020】
図1の例に示されるコンピューティングデバイス2はユーザインターフェイス(UI)デバイス4を含む。コンピューティングデバイス2のUIデバイス4は、コンピューティングデバイス2の入力デバイスおよび/または出力デバイスとして機能するように構成することができる。UIデバイス4は、各種技術を用いて実現可能である。たとえば、UIデバイス4は、ユーザからの入力を、触覚、音声、および/またはビデオフィードバックを通して受けるように構成することができる。入力デバイスの例は、存在感知ディスプレイ、存在感知もしくはタッチ感知入力デバイス、マウス、キーボード、音声応答システム、ビデオカメラ、マイク、または、ユーザからのコマンドを検出するためのその他の種類のデバイスを含む。いくつかの例において、存在感知ディスプレイは、タッチ感知もしくは存在感知入力画面、たとえば、抵抗性タッチスクリーン、表面音響波タッチスクリーン、容量性タッチスクリーン、投影型静電容量タッチスクリーン、圧力感知画面、音響パルス認識タッチスクリーン、または別の存在感知技術を含む。すなわち、コンピューティングデバイス2のUIデバイス4は、コンピューティングデバイス2のユーザから触覚入力を受けることが可能な存在感知デバイスを含み得る。UIデバイス4は、(たとえば、ユーザが指またはスタイラスペンでUIデバイス4の1つ以上の場所に触れるまたは1つ以上の場所を指示するときの)ユーザの1つ以上のジェスチャーを検出することで、触覚入力の指示を受けることができる。
【0021】
加えてまたは代わりに、UIデバイス4は、触覚刺激、聴覚刺激、または映像刺激を利用して出力をユーザに提供することによって出力デバイスとして機能するように構成することができる。出力デバイスの例は、サウンドカード、ビデオグラフィックスアダプタカード、または1つ以上のディスプレイデバイスのうちのいずれか、たとえば、液晶ディスプレイ(LCD)、ドットマトリクスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インク、もしくは、コンピューティングデバイス2のユーザに対して可視情報を出力できる同様のモノクロもしくはカラーディスプレイを含む。出力デバイスのその他の例は、スピーカー、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、または、ユーザが理解できる出力を生成することが可能なその他のデバイスを含む。たとえば、UIデバイス4は、コンピューティングデバイス2が提供する機能に対応付けることが可能なグラフィカルユーザインターフェイスとして、コンピューティングデバイス2のユーザに対し、出力を提示することができる。このようにして、UIデバイス4は、コンピューティングデバイス2で実行されるまたはコンピューティングデバイス2がアクセス可能なアプリケーションの各種ユーザインターフェイス(たとえば、電子メッセージアプリケーション、インターネットブラウザアプリケーションなど)を提示することができる。コンピューティングデバイス2のユーザは、アプリケーションの各ユーザインターフェイスとやり取りすることによって、コンピューティングデバイス2に、ある機能に関連する動作を実行させることが可能である。
【0022】
いくつかの例において、コンピューティングデバイス2のUIデバイス4は、2次元および/または3次元のジェスチャーを、コンピューティングデバイス2のユーザからの入力として検出することができる。たとえば、UIデバイス4のセンサは、このUIデバイス4のセンサのしきい値距離以内のユーザの動き(たとえば手、腕、ペン、またはスタイラスを動かすこと)を検出することができる。UIデバイス4は、この動きの2次元または3次元ベクトル表現を求め、このベクトル表現を、複数の次元を有するジェスチャー入力(たとえば、手を振ること、つまむこと、たたくこと、ペンストローク)に対応付けることができる。言い換えると、いくつかの例において、UIデバイス4は、UIデバイス4が表示する情報を出力する画面または面においてまたはその近くでユーザがジェスチャーを行わなくても、多次元のジェスチャーを検出することができる。その代わりに、UIデバイス4は、UIデバイス4が表示する情報を出力する画面または面の近くに位置するまたは位置しないセンサのところでまたはその近くで行われる多次元のジェスチャーを検知してもよい。
【0023】
図1の例において、コンピューティングデバイス2は、ユーザインターフェイス(UI)モジュール6と、アプリケーションモジュール10A〜10N(まとめて「アプリケーションモジュール10」)と、通信レスポンスモジュール12とを含む。モジュール6、10、および/または12は、コンピューティングデバイス2の内部にあるおよび/またはコンピューティングデバイス2で実行される、ハードウェア、ソフトウェア、ファームウェア、またはその組み合わせを用いて、本明細書に記載の1つ以上の動作を実行することができる。コンピューティングデバイス2は、1つのプロセッサまたは複数のプロセッサを用いてモジュール6、10、および/または12を実行することができる。いくつかの例において、コンピューティングデバイス2は、モジュール6、10、および/または12を、基礎をなすハードウェア上で実行される仮想マシンとして実行してもよい。モジュール6、10、および/または12は、オペレーティングシステムもしくはコンピューティングプラットフォームの1つ以上のサービスとして実行されてもよく、または、コンピューティングプラットフォームのアプリケーションレイヤにおいて1つ以上の実行可能プログラムとして実行されてもよい。
【0024】
図1の例に示されるように、UIモジュール6は、コンピューティングデバイス2によって操作されて、1つ以上の機能を実行する、たとえば、入力を受け、このような入力の指示を、モジュール10および/または12等の、コンピューティングデバイス2に対応付けられた他のコンポーネントに送ることができる。UIモジュール6は、モジュール10および/または12等の、コンピューティングデバイス2に対応付けられたコンポーネントから、データを受けることもできる。UIモジュール6は、受けたデータを用いて、UIデバイス4等の、コンピューティングデバイス2に対応付けられた他のコンポーネントに、受けたデータに基づく出力を提供させることができる。たとえば、UIモジュール6は、アプリケーションモジュール10のうちの1つからデータを受けてGUIに表示することができる。
【0025】
図1の例に示されるように、アプリケーションモジュール10は、コンピューティングデバイス2上で各種動作を実行するための機能を含み得る。たとえば、アプリケーションモジュール10は、ワードプロセッサ、電子メールアプリケーション、チャットアプリケーション、メッセージングアプリケーション、ソーシャルメディアアプリケーション、ウェブブラウザ、マルチメディアプレーヤー、カレンダーアプリケーション、オペレーティングシステム、分散コンピューティングアプリケーション、グラフィックデザインアプリケーション、ビデオ編集アプリケーション、ウェブ開発アプリケーション、またはその他いずれかのアプリケーションを含み得る。いくつかの例において、アプリケーションモジュール10のうちの1つ以上は、電子メールメッセージ、カレンダーアラートもしくは会議出席依頼、またはその他の通信等の通信を、その他のデバイスから受信するように動作可能であってもよい。たとえば、アプリケーションモジュール10のうちの1つ(たとえばアプリケーションモジュール10A)は、テキストメッセージングアプリケーション(たとえばSMS/MMS)、インターネットメッセージングアプリケーション、またはメッセージング機能を含むその他適切なアプリケーションであってもよい。アプリケーションモジュール10Aは、通信を作成して送信する機能、通信を受信する機能、受信した通信に応答する機能、およびその他の機能を含み得る。
【0026】
図1の例において、通信レスポンスモジュール12は、本明細書に記載の技術に従い、受信した通信に対する、関連性のある候補レスポンスを決定するように動作可能であってもよい。すなわち、通信レスポンスモジュール12は、関連性のある1つ以上の返信メッセージを提供する機能を含み得る。ユーザは、受信した通信に対するレスポンスとしてこの返信メッセージを選択しコンピューティングデバイス2に送信させることができる。(たとえば動作のまたはレスポンスメッセージの)関連性とは、一般的に、関係性および/または類似性(たとえば、意味上の類似性、文脈上の類似性、またはその他何らかの種類の類似性)を示すものであってもよい。いくつかの例において、関連性は、2つのオブジェクト間の関係性のレベルを示す確率値またはスコアによって表してもよく、または、2つのオブジェクトグループ間の関係性のレベル(たとえば、両グループ内に存在するオブジェクトの数、他方のグループに存在する一方のグループのオブジェクトの数、両グループに存在するオブジェクトの割合、またはその他の値)によって表してもよい。受信した通信の場合、受信した通信に対する関連性のある返信メッセージは、受信した通信に対する返信メッセージとしてユーザが選択する見込みまたは確率が高い返信メッセージであってもよい。
【0027】
図1の例において、コンピューティングデバイス2は通信を受信することができる。受信した通信は、情報(たとえば別のデバイスのユーザが提供した入力に基づいて生成されたもの)を含み得る。受信した通信に含まれ得る情報の例は、テキスト(たとえば、文字、単語、数、句読点)、絵文字、画像もしくはアイコン、ビデオ、音声、デジタル支払、またはその他の情報を含む。受信した通信は、1つ以上のプロトコルに従って構成またはフォーマットされている場合がある。たとえば、受信した通信はインターネットメッセージであってもよい。インターネットメッセージは、「子犬にはとてもいい名前ですね」といったテキスト情報を含んでいてもよい。いくつかの例において、受信通信は、アプリケーションモジュール10Aが受信し得る、テキストメッセージ、ショートメッセージサービス(SMS)メッセージ、インスタントメッセージ、などを含み得る。このアプリケーションモジュール10Aは、SMSサービス、インスタントメッセージアプリケーション、チャットアプリケーション、メッセンジャーアプリケーション、またはその他好適なサービスもしくはアプリケーションであってもよい。
【0028】
図1の例において、コンピューティングデバイス2は、通信を受信すると、受信した通信を表すものを、表示のために出力することができる。一般的に、受信した通信を表すものは、グラフィカルユーザインターフェイス(GUI)の一部として表示される通知またはその他の視覚オブジェクト出力等の、通信を視覚的に表現したものであってもよい。コンピューティングデバイス2は、アプリケーションモジュール10A等の、インターネットメッセージを扱うものとして指定されたアプリケーションモジュール10のうちの1つ以上にメッセージを与えることができる。アプリケーションモジュール10Aは、インターネットメッセージを受信し、このメッセージを表すものを(たとえばコンピューティングデバイス2のユーザに対して表示するために)、コンピューティングデバイス2の1つ以上のその他のコンポーネントに出力させることができる。すなわち、アプリケーションモジュール10Aは、インターネットメッセージを受信すると、データをUIモジュール6に送信してUIデバイス4にGUI20を表示させることができる。図1の例に示されるように、GUI20は、インターネットメッセージに含まれる情報の表示(たとえば「子犬にはとてもいい名前ですね」というテキスト22)を含む。いくつかの例において、アプリケーションモジュールは、メッセージを受信した時間等の追加またはその他の情報を表示のために出力させることができる。
【0029】
図1の例において、コンピューティングデバイス2は、ユーザが受信した通信に対するレスポンスを作成および/または選択できるようにするためにコンピューティングデバイス2に指示する入力の指示を受けることができる。たとえば、コンピューティングデバイス2のユーザは、UIデバイス4において入力25を実行することができる。UIデバイス4は、入力25を検出し、この入力の指示をUIモジュール6に送ることができる。UIモジュール6は、受けた指示に基づいてデータをアプリケーションモジュール10Aに与えることができ、アプリケーションモジュール10Aは、入力25がエレメント24の選択に対応すると判断することができる。
【0030】
図1の例において、コンピューティングデバイス2は、受信した通信に少なくとも一部基づいて、受信した通信に対する1つ以上の候補レスポンスを決定することができる。アプリケーションモジュール10Aは、インターネットメッセージに対して応答するためのユーザの選択を示すデータ(たとえば入力25の指示)を受けると、通信レスポンスモジュール12と通信することにより、少なくとも1つの候補レスポンスを取得することができる。候補レスポンスは、受信した通信に対するレスポンスとしてユーザが選択できるメッセージであってもよい。たとえば、図1の例において、通信レスポンスモジュール12が決定する各候補レスポンスは、コンピューティングデバイス2がインターネットメッセージ「子犬にはとてもいい名前ですね」に応答するためにユーザの選択に基づいて送信し得るメッセージであってもよい。候補レスポンスの例は、テキスト(たとえば、文字、単語、数、句読点)、絵文字、画像もしくはアイコン、ミーム(meme)、ビデオ、音声、またはその他のコンテンツのうちの1つ以上を含み得る。
【0031】
アプリケーションモジュール10Aは、候補レスポンスを得るために、通信レスポンスモジュール12に対して候補レスポンスを要求することができる。いくつかの例において、受信した通信に対する候補レスポンスを求める要求は、受信した通信に含まれる情報の少なくとも一部を含み得る。いくつかの例において、要求は、追加のまたはその他の情報、たとえば、通信メタデータ、位置情報、ユーザ情報、その他の通信(たとえば、コンピューティングデバイス2のユーザと受信通信の送信元との間の通信のスレッドもしくはチェーンにおけるその他のメッセージ)、または、受信通信に関する、コンピューティングデバイスに関する、もしくはコンピューティングデバイスのユーザに関するその他の情報を、含み得る。いくつかの例において、アプリケーションモジュール10は、要求を生成するだけである、および/または、コンピューティングデバイス2のユーザがアプリケーションモジュール10がそうすることについて明確な許可を与える場合は個人データ(たとえば受信通信に含まれる情報またはその他の情報)を取得するだけである。
【0032】
先に述べたことに加えて、本明細書に記載のシステム、プログラムまたは特徴がユーザ情報(たとえば、ユーザの社会的ネットワーク、社会的行動もしくは活動、職業、ユーザの嗜好、またはユーザの現在位置に関する情報)の収集を可能にしてもよいか否かおよびいつそうするかについて、ならびに、サーバからユーザにコンテンツまたは通信を送信するか否かについて、ユーザが選択を行えるようにするコントロールを、ユーザに与えることができる。加えて、特定のデータは、格納または使用される前に、個人を特定できる情報が削除されるよう、1つ以上の方法で処理されてもよい。たとえば、ユーザの個人情報が、ユーザの個人特定情報を判別できないように処理されてもよく、または、位置情報(都市、郵便番号、またはステートレベル等)が取得される場合はユーザの地理的位置を一般化してユーザの特定の位置を判断できないようにしてもよい。このように、ユーザは、ユーザに関するどのような情報が収集されるか、この情報がどのように使用されるか、およびどのような情報をユーザに提供するかについて、コントロールを有することができる。
【0033】
本発明の局面に従うと、通信レスポンスモジュール12は、受信した通信に応答するための候補レスポンスを生成することを求める要求をアプリケーション10Aから受けることができ、また、受信した通信に関連性がある1つ以上の候補レスポンスを生成するために機械訓練モデルを利用することによって候補レスポンスを決定することができる。機械訓練モデルは、機械学習技術を用いてオフデバイスで生成および訓練することができ、候補レスポンスの生成に使用するためにコンピューティングデバイス2にロードすることができる。候補レスポンスを生成するとき、機械訓練モデルは、受信した通信の何らかの指示をオフデバイスでは送信しない。すなわち、機械訓練モデルは、コンピューティングデバイス2で実行されるとき、候補レスポンスを生成するために、遠隔サーバシステムもしくはクラウドコンピューティングリソースといった遠隔コンピューティングデバイスで実行されるモデルまたはその他のアプリケーションもしくはサービスを利用するのではない。機械訓練モデルが如何にして生成されるかについてのさらに他の詳細を、図4との関連で説明し、コンピューティングデバイス2が候補レスポンスを生成するために機械訓練モデルを如何にして利用するかについてのさらに他の詳細を、図5との関連で説明する。
【0034】
図1の非限定的な例において、通信レスポンスモジュール12は、「子犬にはとてもいい名前ですね」というインターネットメッセージに対する1つ以上の候補レスポンスを決定し、1つ以上の候補レスポンスの少なくとも指示を、アプリケーションモジュール10Aに送ることができる。アプリケーションモジュール10Aは、決定された候補レスポンスの指示を受け、候補レスポンスのうちの少なくとも1つをUIデバイス4に表示させるためのデータをUIモジュール6に送ることができる。たとえば、アプリケーションモジュール10Aは、UIデバイス4にGUI26を出力させるためのデータを送ることができる。
【0035】
図1の例に示すように、GUI26は、レスポンスオプション28A〜28C(まとめて「レスポンスオプション28」)を含む。レスポンスオプション28は各々、通信レスポンスモジュール12から受信した候補レスポンスを表すことができる。すなわち、「子犬にはとてもいい名前ですね」というSMSメッセージに対する候補レスポンスを求める要求を受けたことに応じて、通信レスポンスモジュール12は、受けた通信に対して応答するための一組の候補レスポンスを決定することができる。通信レスポンスモール12は、GUI26において提示するために、一組の候補レスポンスのうちのいくつかまたはすべてを選択することができる。図1の例において、通信レスポンスモジュール12は、レスポンスオプション28A、28B、および28Cにそれぞれ対応する、GUI26において提示する3つの候補レスポンス「ありがとう!」、「私も気に入っています」、および「そう言ってくれてありがとう」を、選択することができる。
【0036】
図1の例において、レスポンスオプション28は各々、通信レスポンスモジュール12から受けた候補レスポンスを表しているが、その他の例において、レスポンスオプション28のうちの1つ以上が、アプリケーションモジュール10Aから与えられたレスポンス等のその他のレスポンスオプションを表すまたは含むことが可能である。いくつかの例において、アプリケーションモジュールは、さまざまな種類の情報に基づいて、受信した1つ以上の候補レスポンスを修正してもよく、レスポンスオプション28のうちの1つ以上が、修正された候補レスポンスを表していてもよい。いずれにしても、GUI26のレスポンスオプション28は、受信したインターネットメッセージに応じてコンピューティングデバイス2に送信させる候補レスポンスをコンピューティングデバイス2のユーザが選択できるようにする。いくつかの例において、GUI26はマニュアル入力オプションを含んでいてもよい。マニュアル入力オプションは、コンピューティングデバイス2のユーザが、カスタムレスポンスを(たとえば音声入力、タッチ入力、またはその他の入力を利用して)入力できるようにすることが可能である。カスタムレスポンスは、たとえば、レスポンスオプション28のうちの1つが示すレスポンスが不適当または不正確であるときに使用することができる。
【0037】
図1の例において、コンピューティングデバイス2は、1つ以上の候補レスポンスから1つの候補レスポンスを選択するユーザ入力の指示を受けることができる。一般的に、ユーザ入力の指示は、タッチもしくは触覚入力、声の入力もしくはその他の音声入力、またはその他いずれかの形態の入力といった、1つ以上の入力デバイスにおいてユーザが提供する入力を表すデータであってもよい。たとえば、コンピューティングデバイス2のユーザは、UIデバイス4の位置におけるまたはその近くにおけるタップジェスチャーを含み得る入力29を、UIデバイス4において与えることができる。UIデバイス4は、入力29を検出しこの入力の指示をUIモジュール6に与えることができる。UIモジュール6は、受信した指示に基づいて、アプリケーションモジュール10Aにデータを与えることができ、アプリケーションモジュール10Aは、入力29がレスポンスオプション28Aの選択に対応すると判断することができる。
【0038】
図1の例において、コンピューティングデバイス2は、候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、この候補レスポンスを送信することができる。すなわち、レスポンスオプション28のうちの1つを選択するかまたはカスタムレスポンスを入力することにより、アプリケーションモジュール10Aが、メッセージの受信者のコンピューティングデバイスを含み得る、その他1つ以上のコンピューティングデバイスに、選択されたレスポンスを送信するようにすることができる。たとえば、アプリケーションモジュール10Aは、レスポンスオプション28Aを選択する入力29の指示を受けると、レスポンスオプション28A(たとえば「ありがとう!」)に対応する候補レスポンスを送信することができる。いくつかの例において、選択されたレスポンスは、インターネットメッセージの送信元であるコンピューティングデバイスに直接送信してもよい。いくつかの例において、選択されたレスポンスは、コンピューティングデバイス2が接続されるネットワーク(たとえばセルラーまたはワイヤレスネットワーク)をともに表す1つ以上のデバイスといった、追加のまたはその他のコンピューティングデバイスに、送信することができる。すなわち、コンピューティングデバイス2は、インターネットメッセージの送信元であるコンピューティングデバイスに、これら2つのコンピューティングデバイス間のルートに沿って位置するネットワークデバイスまたはその他のデバイスに選択されたレスポンスを送信することにより、選択されたレスポンスを送信することができる。いくつかの例において、選択されたレスポンスは、さらにまたは代わりに、後に改善された候補レスポンスを与えるときに使用するために、サーバシステムまたはクラウドコンピューティング環境等のその他のデバイスに送信してもよい。
【0039】
本開示の技術は、受信した通信に関連する候補レスポンスを提供することにより、コンピューティングデバイス2のユーザが受信した通信に対するレスポンスを入力するのに要する時間の量を短縮できる。たとえば、腕時計またはその他のデバイス等のウェアラブルコンピューティングデバイスが、受信した通信に基づく候補レスポンスをユーザに対して表示することにより、ユーザは、レスポンスを入力するために音声認識またはその他の手段を使用しなくてもよく、候補レスポンスのうちの1つを素早くタップするかそうでなければ選択すればよい。さらに、機械訓練モデルを通して候補レスポンスを生成することにより、コンピューティングデバイスは、受信した通信に対するレスポンスとして提供するために、ユーザが選択する可能性がより高い候補レスポンスを生成することができ、それによって、ユーザがレスポンスを入力するために音声認識またはその他の手段を使用する必要性を減じることができる。加えて、コンピューティングデバイス2は、オフデバイス機械訓練モデルとの間でインターネットを介して情報を送受信しなければならない場合と比較して、オンデバイス機械訓練モデルを通して候補レスポンスを生成するときの待ち時間を短縮することができる。
【0040】
図2は、本開示の1つ以上の技術に従う、受信した通信に対するレスポンスの送信に応じて文脈上関連がある動作を実行するためのコンピューティングデバイス2の一例の詳細を示すブロック図である。以下では図2図1の文脈の中で説明する。図2は、コンピューティングデバイス2の例を1つだけ示しており、より多くの、より少ない、または異なるコンポーネントを有するその他多くのデバイスの例を、本開示の技術に従って動作を実行するように構成可能であってもよい。
【0041】
図2の例では1つのデバイスの一部として示されているが、いくつかの例において、コンピューティングデバイス2のコンポーネントは、異なるデバイスの中に位置していてもよく、および/またはその一部であってもよい。たとえば、いくつかの例において、通信レスポンスモジュール12の機能のうちの一部またはすべてが、サーバシステムまたはその他のコンピューティングデバイス(たとえばネットワークを介してコンピューティングデバイス2からアクセス可能なもの)に位置していてもよい。すなわち、いくつかの例において、本開示の技術は、1つのコンピューティングデバイスが実施および利用することができるが、その他の例において、この技術を、分散または「クラウド」コンピューティングシステム等の遠隔または外部コンピューティングシステムで実施および/または利用してもよい。コンピューティングデバイス2は、候補レスポンスのうちの1つの選択を受けると、選択された候補レスポンスの少なくとも指示を遠隔デバイスに送信し、動作を実施するために実行可能な命令を含むレスポンスを受信することにより、当該候補レスポンスに文脈上関連がある動作を決定することができる。
【0042】
いくつかの例において、コンピューティングデバイス2はウェアラブルコンピューティングデバイスを表していてもよい。ウェアラブルコンピューティングデバイスは、スマートウォッチ、ヘッドマウントコンピューティングデバイス(たとえば眼鏡、帽子、イヤフォン、コンタクトレンズ、またはその他同様のアイテムに組み込まれたコンピューティングデバイス)、インプラント可能なデバイス、または、ユーザが自分自身に装着できるその他いずれかのデバイスといった、ユーザが着用できるまたはユーザに装着できる何らかのコンピューティングデバイスであってもよい。スマートウォッチ等のウェアラブルコンピューティングデバイスの一部は、ユーザからの各種入力を受けるための1つ以上の入力デバイス、ユーザに対して音声、視覚、触覚、またはその他の出力を与えるための1つ以上の出力デバイス、その他のコンピューティングデバイスと通信するための1つ以上のネットワークインターフェイス、情報を得るための1つ以上のセンサ、および/またはその他のコンポーネントを含み得る。
【0043】
いくつかの例において、ウェアラブルデバイスは、何らかの動作を実行するためにモバイルデバイス(たとえばスマートフォン)またはその他のデバイスと通信することができる。たとえば、いくつかの例において、本開示の技術の一部はスマートウォッチによって実施されてもよく、一部はその他1つ以上のコンピューティングデバイス(たとえば、スマートウォッチに無線接続されたスマートフォン、スマートフォンが通信できるサーバデバイス、またはその他のデバイス)によって実施されてもよい。言い換えると、本明細書ではコンピューティングデバイス2の1つ以上のコンポーネントによって実施されると説明しているが、本明細書に記載の技術に従い、候補レスポンスおよび/または文脈上関連がある動作を決定するように構成可能なコンポーネントのうちのいくつかを、複数のコンピューティングデバイスに分散させてもよい。
【0044】
図2の例に示すように、コンピューティングデバイス2は、ユーザインターフェイス(UI)デバイス4と、1つ以上のプロセッサ40と、1つ以上の入力コンポーネント42と、1つ以上の出力コンポーネント44と、1つ以上の通信部46と、1つ以上のセンサ48と、1つ以上の記憶装置50とを含む。記憶装置50はさらに、ユーザインターフェイス(UI)6と、通信レスポンスモジュール12と、アプリケーションモジュール10と、通信レスポンスモジュール14とを含む。図2の例において、通信レスポンスモジュール14はレスポンス提案モジュール54を含む。
【0045】
コンポーネント4、40、42、44、46、48、および50は各々、コンポーネント間通信のために(物理的に、通信可能に、および/または作動的に)相互接続されていてもよい。図2の例において、コンポーネント4、40、42、44、46、48、および50は、1つ以上の通信チャネル52によって結合されていてもよい。いくつかの例において、通信チャネル52は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータ通信のためのその他何らかのチャネルを含み得る。モジュール6、10、12、および54も、相互に、および、コンピューティングデバイス2内のその他のコンポーネントと、情報をやり取りしてもよい。
【0046】
図2の例において、1つ以上の入力コンポーネント42は、入力を受けるように動作可能であってもよい。入力の例は、触覚、音声、およびビデオ入力である。一例において、入力コンポーネント42は、存在感知もしくはタッチ感知ディスプレイ、マウス、キーボード、音声応答システム、ビデオカメラ、マイクもしくはその他の音声センサ、または、人間もしくは機械からの入力を検出するためのその他何らかのタイプのデバイスを含む。
【0047】
図2の例において、1つ以上の出力コンポーネント44は、出力を生成するように動作可能であってもよい。出力の例は、触覚、音声、およびビデオ出力である。いくつかの例において、コンピューティングデバイス2の出力コンポーネント44は、存在感知ディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、スピーカー、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、または人間もしくは機械に対する出力を生成するためのその他何らかのタイプのデバイスを含む。
【0048】
いくつかの例において、UIデバイス4は、入力コンポーネント42および/または出力コンポーネント44の機能を含み得る。たとえば、図2の例において、UIデバイス4は、存在感知入力デバイスであってもよい、または、存在感知入力デバイスを含んでいてもよい。いくつかの例において、存在感知入力デバイスは、この存在感知入力デバイスにおけるおよび/またはその近くにおける物体を検出することができる。範囲の一例として、存在感知入力デバイスは、この存在感知入力デバイスから2インチ以内にある指またはスタイラス等の物体を検出することができる。別の範囲の例として、存在感知入力デバイスは、この存在感知入力デバイスから6インチ以内にある物体を検出することができ、その他の範囲も可能である。存在感知入力デバイスは、物体が検出された存在感知入力デバイスの位置(たとえば(x,y)座標)を求めることができる。存在感知入力デバイスは、容量性、誘導性、および/または光学認識技術を用いて入力デバイスが選択した位置を求めることができる。いくつかの例において、存在感知入力デバイスは、出力コンポーネント44に関して説明したように、触覚刺激、音声刺激、または映像刺激を利用して出力をユーザに提供し、存在感知ディスプレイと呼ぶことがある。
【0049】
UIデバイス4は、コンピューティングデバイス2の内部コンポーネントとして示されているが、入力および出力を送信および/または受信するためにコンピューティングデバイス2とデータ径路を共有する外部コンポーネントを表していてもよい。すなわち、いくつかの例において、UIデバイス4は、コンピューティングデバイス2の外装の内部に位置しこの外装に物理的に接続された、コンピューティングデバイス2の内蔵コンポーネント(たとえば携帯電話またはウェアラブルコンピューティングデバイス上の画面)を表していてもよい。いくつかの例において、UIデバイス4は、コンピューティングデバイス2の外装の外部に位置しこの外装から物理的に分離されている、コンピューティングデバイス2の外部コンポーネント(たとえば、コンピューティングデバイス2と有線および/または無線データ径路を共有するモニタ、プロジェクタ、またはその他のディスプレイデバイス)を表していてもよい。
【0050】
図2の例において、1つ以上の通信部46は、1つ以上のネットワーク上でネットワーク信号を送信および/または受信することにより、上記1つ以上のネットワークを介して外部デバイスと通信するように動作可能であってもよい。たとえば、コンピューティングデバイス2は、通信部46を用いて、セルラー無線ネットワーク等の無線ネットワーク上で無線信号を送信および/または受信することができる。同様に、通信部46は、グローバルポジショニングシステム(GPS)ネットワーク等の衛星ネットワーク上で衛星信号を送信および/または受信することができる。通信部46の例は、ネットワークインターフェイスカード(イーサネット(登録商標)カード等)、光トランシーバ、無線周波数トランシーバ、または情報を送信および/または受信できるその他何らかの種類のデバイスを含む。通信部46のその他の例は、近距離無線通信(NFC)部、Bluetooth(登録商標)無線機、短波無線機、セルラーデータ無線機、無線ネットワーク(たとえばWi−Fi(登録商標))無線機、およびユニバーサルシリアルバス(USB)コントローラを含み得る。
【0051】
図2の例において、1つ以上のセンサ48は、コンピューティングデバイス2のコンポーネントが使用するデータを生成するように動作することができる。センサ48は、コンピューティングデバイス2に関するデータ、コンピューティングデバイス2が存在する環境に関するデータ、コンピューティングデバイス2のユーザに関するデータ、またはその他のデータを取得することが可能な何らかのデバイスまたはコンポーネントを含み得る。すなわち、センサ48のうちのいずれかは、情報を取得するための、ハードウェア、ファームウェア、ソフトウェア、またはその組み合わせであってもよい。センサ48の例は、GPSセンサもしくはGPS無線機、位置センサ、加速度計、ジャイロスコープ、またはその他のモーションセンサ、カメラ、コンパス、磁力計、光センサ、赤外センサ、マイクもしくはその他音声センサ、放射線センサ、温度センサ、気圧計、高度計、またはその他のデータ収集コンポーネントを含み得る。
【0052】
図2の例において、1つ以上の記憶装置50は、コンピューティングデバイス2の動作中に処理する情報を格納するように動作可能であってもよい。いくつかの例において、記憶装置50は一時記憶装置を表していてもよい。これは、記憶装置50の主要な目的が長期記憶ではないことを意味する。たとえば、コンピューティングデバイス2の記憶装置50は、情報の短期記憶用に構成された揮発性メモリであってもよく、そのため、電源がオフのになると格納されたコンテンツを保持しない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当該技術で周知のその他の形態の揮発性メモリを含む。
【0053】
いくつかの例において、記憶装置50はまた、1つ以上のコンピュータ読取可能記憶媒体を表す。すなわち、記憶装置50は、一時記憶装置よりも多くの量の情報を格納するように構成されてもよい。たとえば、記憶装置50は、電源オン/オフサイクルを通じて情報を保持する不揮発性メモリを含み得る。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュメモリ、または電気的プログラム可能なメモリ(electrically programmable memory)(EPROM)または電気的消去およびプログラム可能なメモリ(electrically erasable and programmable memory)(EEPROM)の形態を含む。いずれにしても、図2の例において、記憶装置50は、モジュール6、10、12、および54に対応付けられたプログラム命令および/またはデータを格納することができる。
【0054】
図2の例において、1つ以上のプロセッサ40は、コンピューティングデバイス2の中で機能を実現するおよび/または命令を実行するように構成されてもよい。たとえば、プロセッサ40は、UIモジュール6、アプリケーションモジュール10、通信レスポンスモジュール12、およびレスポンス提案モジュール54の機能を実現する記憶装置50に格納された命令を受けて実行するように動作可能であってもよい。これらの命令は、プロセッサ40によって実行されると、プログラム実行中においてコンピューティングデバイス2が情報を記憶装置50(たとえば一時記憶装置)に格納するようにすることができる。プロセッサ40は、モジュール6、10、12、および54の命令を実行することにより、コンピューティングデバイス2が通信を受信したことに応じてUIデバイス4が候補レスポンスを出力するようにすることができる。すなわち、モジュール6、10、12、および54は、プロセッサ40によって操作されて、受信した通信に対する候補レスポンスの予測を含む、各種アクションを実行することができる。
【0055】
図2の例において、コンピューティングデバイス2は、通信を受信することができる。この通信は、メッセージまたは一連のメッセージであってもよい。たとえば、通信は、ユーザが遠隔コンピューティングデバイスからコンピューティングデバイス2のユーザに送信する一連のメッセージ(たとえばテキストメッセージ)であってもよい。いくつかの例において、通信部46のうちの1つは、ネットワーク(たとえば無線ネットワーク、セルラーネットワーク、インターネット、イントラネット等)から、SMSプロトコルに準拠しテキストメッセージを表すデータ、または、特定のインターネットメッセージングフォーマットに準拠するネットワークからのデータを受信することができる。通信部46は、受信したデータを、受信したデータを処理するものとして指定された(たとえば過去にユーザによって指定された)、アプリケーションモジュール10A等のアプリケーションモジュール10のうちの1つ以上に与えることができる。
【0056】
アプリケーションモジュール10Aは、テキストメッセージを受け、コンピューティングデバイス2がこのテキストメッセージの少なくとも指示を出力するようにすることができる。たとえば、アプリケーションモジュール10Aは、テキストメッセージに含まれるテキスト(たとえば「子犬にはとてもいい名前ですね」)の視覚表現、および、テキストメッセージに含まれる画像、ビデオ、絵文字、ステッカー等を、UIデバイス4または出力コンポーネント44のうちのいずれかが表示するようにする情報を、UIモジュール6に送ることができる。コンピューティングデバイス2のユーザは、この出力を見て、テキストメッセージに応答することをコンピューティングデバイス2に指示する入力を与えることができる。すなわち、UIモジュール6は、受信したテキストメッセージに応答するためのオプションを選択する、UIデバイス4または入力コンポーネント42のうちのいずれかで実行される入力の指示を受けることができる。UIモジュール6は、この入力の指示をアプリケーションモジュール10Aに与えることができる。
【0057】
アプリケーションモジュール10Aは、テキストメッセージに応答することをコンピューティングデバイス2に指示する入力を受けたことに応じて、通信レスポンスモジュール12に候補レスポンスを要求することができる。候補レスポンスを要求する際、アプリケーションモジュール10Aは、テキストメッセージ(たとえば「子犬にはとてもいい名前ですね」というテキスト)に含まれていた情報、および/または他の情報(たとえば、テキストメッセージ等に含まれている、テキストメッセージの送信者の表示、送信者と受信者との間でやり取りされた過去のテキストメッセージの表示、画像の表示、ビデオ等)を提供することができる。すなわち、各種例において、候補レスポンスを求める要求は、受信した電子メール、受信したテキストメッセージ、受信したアプリケーション通知、受信したカレンダ−招待、リマインダー、またはその他の通信に含まれていた情報を含み得る。いくつかの例において、候補レスポンスを求める要求は、受信した通知に含まれる情報すべてを含み得る。すなわち、要求は、電子メール、テキストメッセージ等の全体を含み得る。その他の例において、要求は情報の一部を含み得る。たとえば、要求は、受信した通信に示される日付および時間、示されている位置、会議の参加者の名前、絵文字、写真、またはその他の情報を含み得る。通信レスポンスモジュール12は、候補レスポンスを求める要求を受け、この要求をレスポンス提案モジュール54に与えることができる。
【0058】
レスポンス提案モジュール54は、受信した通信に応答するための候補レスポンスを求める要求を受けるように動作可能であってもよい。レスポンス提案モジュール54は、この要求を受けたことに応じて、受信した通信に対する1つ以上の候補レスポンスを決定することができる。レスポンス提案モジュール54は、各種機械学習技術を用いて、受信した通信に対する1つ以上の候補レスポンスを決定してもよい。
【0059】
レスポンス提案モジュール54は、レスポンス提案モデル56を含む、またはレスポンス提案モデル56に作動的に結合することができる。レスポンス提案モジュール54は、オンデバイス機械訓練モデル56(以下レスポンス提案モデル56と呼ぶ)を用いて、受信した通信に対する1つ以上の候補レスポンスを決定することができる。レスポンス提案モデル56は、受信した通信に対する適切なレスポンスを学習するためにオフデバイスで(すなわちコンピューティングデバイス2以外のデバイス上で)訓練された機械訓練モデルであってもよい。
【0060】
レスポンス提案モデル56は、予測レスポンスのランク付けリストに各ビットベクトルが対応付けられるよう、予測レスポンスのランク付けリストに対応付けられた一組のビットベクトルを含み得る。レスポンス提案モジュール54は、受信した通信を、たとえば8ビットベクトル等の固定長ビットベクトルに変換することができる。たとえば、レスポンス提案モジュール54は、局所性鋭敏型ハッシュ(LSH)ハッシングの修正形を実施することにより、受信した通信をハッシュシグネチャ(たとえばビットベクトル)に射影することができる。レスポンス提案モデル56は、各ビットベクトルを予測レスポンスのランク付けリストに対応付けるように機械訓練されたものなので、レスポンス提案モジュール54は、ビットベクトルに対応付けられた予測レスポンスのランク付けリストに少なくとも一部基づいて、受信した通信に対する1つ以上の候補レスポンスを決定することができる。
【0061】
予測レスポンスのランク付けリストから候補レスポンスを決定するために、レスポンス提案モジュール54は、たとえば、候補レスポンスとして、上位N個の予測レスポンスを取り出してもよい。Nは、UIデバイス4による表示のためにUIモジュール6から出力されることになる候補レスポンスの数であってもよく、または、3、4等といったその他の適切な整数であってもよい。その他の例において、Nは、これもUIモジュール6から出力されることになるその他の方法によって決定されたその他1つ以上の候補レスポンス(たとえばその他の1つ以上のデフォルト候補レスポンス)に加えてUIモジュール6から出力されることになる候補レスポンスの数であってもよい。
【0062】
レスポンス提案モジュール54は、意味的に類似する受信通信を、同様のビットベクトルにハッシュすることができる。ビットベクトルは、同一ビットの実質的な重複を含むのであれば同様とみなすことができる。たとえば、レスポンス提案モジュール54は、「こんにちは、すべて順調?」という受信通信を、ビットベクトル「11100110」にハッシュすることができ、「やあ、調子はどう?」という受信通信を、ビットベクトル「11100011」にハッシュすることができる。さらに、これらの受信通信および得られたハッシュされたビットベクトルは類似しているので、得られたハッシュされたビットベクトルを、同様のまたは同一の、予測レスポンスのランク付けリストに、マッピングすることができる。たとえば、この例において、上記2つのビットベクトルは、「まあまあです、あなたは?」および「調子はいいよ、あなたはどう?」という予測レスポンスの、同一のランク付けリストに、マッピングすることができる。
【0063】
レスポンス提案モジュール54は、自身が生成した候補レスポンスを、パーソナライズされた1つ以上の候補レスポンスを決定しこのパーソナライズされた1つ以上の候補レスポンスを候補レスポンスに含めることにより、パーソナライズすることもできる。そのために、レスポンス提案モジュール54は、パーソナライズモデル58を利用して、コンピューティングデバイス2のユーザに対する過去に受信したメッセージに応答するためにこのユーザが送信した過去のレスポンスに基づいて、パーソナライズされた1つ以上の候補レスポンスを生成することができる。ユーザが送信した過去のレスポンスは、このユーザの、語調、文語調、大文字使用、文法等の、文章作成スタイルを、より上手く取り入れている可能性があるので、このような過去のレスポンスを候補レスポンスに含めることにより、受信した通信に応答するために生成される候補レスポンスをより上手くパーソナライズすることができる。
【0064】
メッセージを送信および受信しメッセージに対するレスポンスを送信することができる1つ以上のメッセージングアプリケーション等のアプリケーションモジュール10は、過去に送受信されたメッセージのメッセージ履歴を通信履歴32に保存することができる。通信履歴32は、ユーザに対する、コンピューティングデバイス2が受信した過去のメッセージに対応付けられた情報、および、ユーザが送信した、これら過去のメッセージに対するレスポンスを、含み得る。このような過去に受信したメッセージおよび過去のレスポンスは、検索可能および/またはそうでなければカテゴライズすることができる、構造化されたおよび/または構造化されていないデータとして保存されてもよい。いくつかの例において、通信履歴32の中のデータは、ユーザのプライバシーを守るために暗号化されてもよい。
【0065】
通信レスポンスモジュール12は、パーソナライズモデル58を含み得る。パーソナライズモデル58は、ユーザが送信したいずれかの過去のレスポンスが、受信した通信に対する予測された1つ以上のレスポンスに、意味的に類似する(たとえば趣旨が同様)か否かを判断し、これら過去のレスポンスを含めることができる。そうであれば、レスポンス提案モジュール54は、予測レスポンスに意味的に類似する過去のレスポンスを、パーソナライズされた候補レスポンスとして含めることができる。レスポンス提案モジュール54は、一組の候補レスポンスにおいて、予測レスポンスをパーソナライズされたレスポンスに置き換えてもよく、または、候補レスポンスに、予測レスポンスに加えてパーソナライズされた候補レスポンスを含めてもよい。
【0066】
レスポンス提案モジュール54は、候補レスポンスを決定した後に、これらの候補レスポンスをアプリケーションモジュール10Aに与えることができる。図2の例において、アプリケーションモジュール10Aは、候補レスポンスを受け、候補レスポンスを表現したものをUIデバイス4または出力コンポーネント44のうちの1つ以上に表示させるためのデータをUIモジュール6に送ることができる。コンピューティングデバイス2のユーザは、表示されたレスポンスを見て、候補レスポンスのうちの1つを選択する入力を与える、または、カスタムレスポンスを入力することができる。すなわち、UIモジュール6は、UIデバイス4または入力コンポーネント42のうちのいずれかで実行される、候補レスポンスを表すレスポンスオプションを選択する入力、または、カスタムレスポンスを入力するという入力の指示を受けることができる。UIモジュール6は、この入力の指示をアプリケーションモジュール10Aに与えることができる。アプリケーションモジュール10Aは、レスポンスを選択する入力の指示を受け、その指示を受けたことに応じて、選択されたレスポンスを送信することができる。たとえば、図2の例において、アプリケーション10Aは、候補レスポンス「ありがとう!」を選択する入力の指示を受けることができ、選択された候補レスポンスを(たとえば受信した通信の送信者に)送信することができる。
【0067】
いくつかの例において、パーソナライズモデル58および/または通信履歴32は、記憶装置50に格納される代わりに外部コンピューティングデバイスに格納されて、パーソナライズモデル58を外部コンピューティングデバイス上で実行できるようにしてもよい。たとえば、コンピューティングデバイス2がスマートウォッチ等のウェアラブルデバイスである場合、コンピューティングデバイス2を、スマートフォン等の外部コンピューティングデバイスとペアリングしてもよい。この場合、コンピューティングデバイス2は、外部コンピューティングデバイスを介して通信(たとえばテキストメッセージ)を送受信し、外部コンピューティングデバイスが、受信した通信をコンピューティングデバイス2に転送することができかつコンピューティングデバイス2から送信されたメッセージをこのメッセージが意図する受信者に転送できるようにしてもよい。
【0068】
図3は、本開示の1つ以上の技術に従う、遠隔デバイスにおいて表示するグラフィカルコンテンツを出力するコンピューティングデバイスの一例を示すブロック図である。一般的に、グラフィカルコンテンツは、テキスト、画像、一群の動画等のような、表示用に出力できる何らかの視覚情報を含み得る。図3に示す例は、コンピューティングデバイス60と、存在感知ディスプレイ64と、通信部70と、プロジェクタ80と、プロジェクタスクリーン82と、モバイルデバイス86と、視覚ディスプレイデバイス90とを含む。図1および図2では一例としてスタンドアロンのコンピューティングデバイス2として示されているが、一般的に、コンピューティングデバイス60のようなコンピューティングデバイスは、ソフトウェア命令を実行するためのプロセッサまたはその他好適な計算環境を含む何らかのコンポーネントまたはシステムであればよく、たとえば、存在感知ディスプレイを含む必要はない。
【0069】
図3の例に示すように、コンピューティングデバイス60は、図2のプロセッサ40について説明した機能を含むプロセッサであってもよい。このような例において、コンピューティングデバイス60は、システムバスまたはその他適切な接続であればよい通信チャネル62Aによって存在感知ディスプレイ64に作動的に結合することができる。コンピューティングデバイス60は、これもシステムバスまたはその他適切な接続であればよい通信チャネル62Bによって、以下でさらに説明する通信部70にも作動的に結合することができる。図3では一例として別々に示されているが、コンピューティングデバイス60は、1つ以上の通信チャネルのうちの任意の数の通信チャネルによって、存在感知ディスプレイ64と通信部70とに作動的に結合することができる。
【0070】
その他の例において、図1図2のコンピューティングデバイス2によって先に示したように、コンピューティングデバイスは、携帯電話(スマートフォンを含む)、ラップトップコンピュータ等といったポータブルまたはモバイルデバイスを指していてもよい。いくつかの例において、コンピューティングデバイスは、デスクトップコンピュータ、タブレットコンピュータ、スマートテレビプラットフォーム、カメラ、携帯情報端末(PDA)、サーバ、メインフレーム等であってもよい。
【0071】
図2に示す入力コンポーネント42および/または出力コンポーネント44のうちの1つとしての存在感知ディスプレイ64は、ディスプレイコンポーネント66と、存在感知入力コンポーネント68とを含み得る。ディスプレイコンポーネント66は、たとえば、コンピューティングデバイス60からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知入力コンポーネント68は、容量性、誘導性、および/または光認識技術を用いて存在感知ディスプレイ64における1つ以上のユーザ入力(たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等)を判別し、このようなユーザ入力の指示を通信チャネル62Aを用いてコンピューティングデバイス60に送ることができる。いくつかの例において、存在感知入力コンポーネント68を物理的にディスプレイコンポーネント66の上に配置することで、ディスプレイコンポーネント66が表示するグラフィカル要素の上にユーザが入力装置を置いたときに、存在感知入力コンポーネント68が入力装置を感知する位置が、上記グラフィカル要素が表示されているディスプレイコンポーネント66の位置に対応するようにしてもよい。他の例において、存在感知入力コンポーネント68を物理的にディスプレイコンポーネント66から離れた場所に配置し存在感知入力コンポーネント68の位置がディスプレイコンポーネント66の位置に対応するようにすることで、存在感知入力コンポーネント68で入力を行うとディスプレイコンポーネント66の対応する位置に表示されるグラフィカルエレメントとのやり取りが行われるようにしてもよい。
【0072】
図3に示すように、コンピューティングデバイス60は、通信部70を含んでいてもよく、および/または通信部70に作動的に結合されてもよい。通信部70は、図2に記載の通信部46の機能を含み得る。通信部70の例は、ネットワークインターフェイスカード、イーサネットカード、光トランシーバ、無線周波数トランシーバ、または情報を送受信できるその他何らかの種類のデバイスを含み得る。このような通信部のその他の例は、Bluetooth、3GおよびWi−Fi無線機、ユニバーサルシリアルバス(USB)インターフェイス等を含み得る。コンピューティングデバイス60はまた、図示の都合と煩雑になるのを避けるために図3には示していないその他1つ以上のデバイス、たとえば入力デバイス、出力デバイス、メモリ、記憶装置等を含んでいてもよく、および/またはこのような装置に作動的に結合されてもよい。
【0073】
図3はまた、プロジェクタ80およびプロジェクタスクリーン82を示す。投影装置のその他のこのような例は、電子ホワイトボード、ホログラムディスプレイデバイス、およびグラフィカルコンテンツを表示するのに適したその他何らかのデバイスを含み得る。プロジェクタ80およびプロジェクタスクリーン82は、各デバイスがコンピューティングデバイス60と通信できるようにする1つ以上の通信部を含み得る。いくつかの例において、1つ以上の通信部によってプロジェクタ80とプロジェクタスクリーン82との間で通信を行えるようにしてもよい。プロジェクタ80は、グラフィカルコンテンツを含むデータをコンピューティングデバイス60から受信することができる。プロジェクタ80は、このデータを受信したことに応じて、このグラフィカルコンテンツをプロジェクタスクリーン82上に投影することができる。いくつかの例において、プロジェクタ80は、光認識技術またはその他適切な技術を用いてプロジェクタスクリーンにおける1つ以上のユーザ入力(たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等)を判別し、このようなユーザ入力の指示を1つ以上の通信部を用いてコンピューティングデバイス60に送信することができる。このような例において、プロジェクタスクリーン82は不要の場合があり、プロジェクタ80は、何らかの適切な媒体にグラフィカルコンテンツを投影し、光認識またはその他のこのような適切な技術を用いて1つ以上のユーザ入力を検出してもよい。
【0074】
いくつかの例において、プロジェクタスクリーン82は存在感知ディスプレイ84を含み得る。存在感知ディスプレイ84は、本開示に記載のUIデバイス4、入力コンポーネント42および/または出力コンポーネント44の機能のサブセットまたは機能すべてを含み得る。いくつかの例において、存在感知ディスプレイ84はその他の機能を含み得る。プロジェクタスクリーン82(たとえば電子ホワイトボード)は、コンピューティングデバイス60からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ84は、容量性、誘導性、および/または光認識技術を用いてプロジェクタスクリーン82における1つ以上のユーザ入力(たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等)を判別し、このようなユーザ入力の指示を1つ以上の通信部を用いてコンピューティングデバイス60に送ることができる。
【0075】
図3はまた、モバイルデバイス86および視覚ディスプレイデバイス90を示す。モバイルデバイス86および視覚ディスクプレイデバイス90は各々、計算機能および接続性機能を含み得る。モバイルデバイス86の例は、電子リーダーデバイス、互換ノートブックデバイス、ハイブリッドスレート型デバイス等を含み得る。視覚ディスプレイデバイス90の例は、テレビ、コンピュータモニタ等のようなその他の半静止デバイスを含み得る。図3に示すように、モバイルデバイス86は存在感知ディスプレイ88を含み得る。視覚ディスプレイデバイス90は存在感知ディスプレイ92を含み得る。存在感知ディスプレイ88、92は、本開示に記載の入力コンポーネント42および/または出力コンポーネント44の機能のサブセットまたは機能すべてを含み得る。いくつかの例において、存在感知ディスプレイ88、92はその他の機能を含み得る。いずれにしても、存在感知ディスプレイ92は、たとえば、コンピューティングデバイス60からデータを受け、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ92は、容量性、誘導性、および/または光認識技術を用いてプロジェクタスクリーンにおける1つ以上のユーザ入力(たとえば連続ジェスチャー、マルチタッチジェスチャー、シングルタッチジェスチャー等)を判別し、このようなユーザ入力の指示を1つ以上の通信部を用いてコンピューティングデバイス60に送ることができる。
【0076】
先に述べたように、いくつかの例において、コンピューティングデバイス60は、システムバスまたはその他適切な通信チャネルによってコンピューティングデバイス60に結合された存在感知ディスプレイ64において表示するグラフィカルコンテンツを出力することができる。コンピューティングデバイス60は、プロジェクタ80、プロジェクタスクリーン82、モバイルデバイス86、および視覚ディスプレイデバイス90等の1つ以上の遠隔デバイスにおいて表示するグラフィカルコンテンツを出力することもできる。たとえば、コンピューティングデバイス60は、本開示の技術に従い、グラフィカルコンテンツを生成するおよび/またはグラフィカルコンテンツを修正することを求める1つ以上の命令を実行してもよい。コンピューティングデバイス60は、グラフィカルコンテンツを含むデータを、通信部70等のコンピューティングデバイス60の通信部に出力することができる。通信部70は、プロジェクタ80、プロジェクタスクリーン82、モバイルデバイス86、および/または視覚ディスプレイデバイス90等の遠隔デバイスのうちの1つ以上にデータを送信することができる。このようにして、コンピューティングデバイス60は、遠隔デバイスのうちの1つ以上において表示するグラフィカルコンテンツを出力することができる。いくつかの例において、遠隔デバイスのうちの1つ以上は、各遠隔デバイスに含まれるおよび/または作動的に結合される存在感知ディスプレイにおいて、グラフィカルコンテンツを出力してもよい。
【0077】
いくつかの例において、コンピューティングデバイス60は、コンピューティングデバイス60に作動的に結合された存在感知ディスプレイ64においてグラフィカルコンテンツを出力しない場合がある。その他の例において、コンピューティングデバイス60は、通信チャネル62Aによってコンピューティングデバイス60に結合された存在感知ディスプレイ64と、1つ以上の遠隔デバイスとの両方において表示するグラフィカルコンテンツを出力することができる。このような例において、グラフィカルコンテンツは、それぞれのデバイスにおいてほぼ同時に表示することができる。たとえば、グラフィカルコンテンツを含むデータを遠隔デバイスに送信する際に何らかの遅延が通信レイテンシによって導入される場合がある。いくつかの例において、コンピューティングデバイス60によって生成され存在感知ディスプレイ64において表示するために出力されるグラフィカルコンテンツは、1つ以上の遠隔デバイスにおいて表示するグラフィカルコンテンツ表示出力と異なる場合がある。
【0078】
コンピューティングデバイス60は、適切な何らかの通信技術を用いてデータを送受信することができる。たとえば、コンピューティングデバイス60は、ネットワークリンク72Aを用いて外部ネットワーク74に作動的に結合されてもよい。図3に示す遠隔デバイスは各々、それぞれのネットワークリンク72B、72C、および72Dのうちの1つにより、外部ネットワーク74に作動的に結合することができる。外部ネットワーク74は、ネットワークハブ、ネットワークスイッチ、ネットワークルータ等を含み得る。これらは、作動的に相互接続されることで、コンピューティングデバイス60と図3に示す遠隔装置との間における情報交換を行えるようにする。いくつかの例において、ネットワーク72A〜72Dは、イーサネット、ATMまたはその他のネットワーク接続であってもよい。このような接続は、無線および/または有線接続であってもよい。
【0079】
いくつかの例において、コンピューティングデバイス60は、直接デバイス通信78を用いて図3に含まれる遠隔デバイスのうちの1つ以上に作動的に結合することができる。直接デバイス通信78は、有線または無線通信を用いてコンピューティングデバイス60が遠隔装置との間でデータを直接送受信するときに用いる通信を含み得る。すなわち、直接デバイス通信78のいくつかの例において、コンピューティングデバイス60が送信するデータは、遠隔デバイスが受信する前にその他1つ以上のデバイスによって転送されないようにしてもよく、その逆であってもよい。直接デバイス通信78の例は、Bluetooth、近距離無線通信、ユニバーサルシリアルバス、Wi−Fi、赤外線等を含み得る。図3に示す遠隔デバイスのうちの1つ以上は、通信リンク76A〜76Dによってコンピューティングデバイス60と作動的に結合されてもよい。いくつかの例において、通信リンク76A〜76Dは、Bluetooth、近距離無線通信、ユニバーサルシリアルバス、赤外線等を用いる接続であってもよい。このような接続は、無線および/または有線接続であってもよい。
【0080】
本開示の技術に従い、コンピューティングデバイス60は、外部ネットワーク74を用いて視覚ディスプレイデバイス90に作動的に結合されてもよい。コンピューティングデバイス60は、存在感知ディスプレイ92において表示するグラフィカルコンテンツを出力することができる。たとえば、コンピューティングデバイス60は、通信部70に、アプリケーションモジュール10のうちの1つ以上のためのGUIを含むデータを送信することができる。通信部70は、外部ネットワーク74を用いて、視覚ディスプレイデバイス90に、GUIを含むデータを送信することができる。視覚ディスプレイデバイス90は、外部ネットワーク74を用いてデータを受信したことに応じて、存在感知ディスプレイ92に、GUIを出力させる。存在感知ディスプレイ92における(たとえば存在感知ディスプレイ92のある領域における)ジェスチャー等の1つ以上のユーザ入力を受けたことに応じて、視覚ディスプレイデバイス90および他の入力コンポーネント42は、外部ネットワーク74を用いてコンピューティングデバイス60に対し入力の指示を送ることができる。通信部70は、入力の指示を受け、この指示をコンピューティングデバイス60に送ることができる。
【0081】
図3の例において、コンピューティングデバイス60は、通信を受信することができる。コンピューティングデバイス60は、受信した通信を表すものを(たとえば表示するために)出力することができる。たとえば、コンピューティングデバイス60は、受信した通信の視覚的表現のためのデータを通信部70に送信することができる。通信部70は、このデータを外部ネットワーク74を介して視覚ディスプレイデバイス90に送信することができる。視覚ディスプレイデバイス90は、表示のために、受信した通信の視覚的表現を存在感知ディスプレイ92が出力するようにすることができる。
【0082】
受信した通信に応答するためのユーザ入力の指示(たとえば入力コンポーネント42のうちの1つで実行される入力)を受けると、コンピューティングデバイス60(たとえば通信レスポンスモジュール12)は1つ以上の候補レスポンスを決定することができる。コンピューティングデバイス60は、1つ以上の候補レスポンスのうちの少なくとも1つの視覚的表現のためのデータを、表示のために通信部70に送ることができる。
【0083】
コンピューティングデバイス60は、1つ以上の候補レスポンスからある候補レスポンスを選択する入力を受けることができ、この候補レスポンスを(たとえば受信通信に応答して)送信することができる。通信部70は、このデータを外部ネットワーク74を介して視覚ディスプレイデバイス90に送信することができる。視覚ディスプレイデバイス90は、存在感知ディスプレイ92が視覚インターフェイスを(たとえばユーザに対して)出力するようにすることができる。
【0084】
図4は、本開示の1つ以上の技術に従う、受信した通信に対する候補レスポンスを生成するためにコンピューティングデバイス2が利用できるモデルを訓練する機械の技術の例を示すブロック図である。図4に示すように、システム10は、受信した通信に対して関連する1つ以上の候補レスポンスを推測することができる解析モデルを構築するために機械学習を実行する、1つ以上のデスクトップまたはサーバコンピューティングデバイス、コンピューティングデバイスのクラスタ等の、1つ以上のコンピューティングデバイスを含み得る。いくつかの例において、システム100はコンピューティングデバイス2の外部にあってもよい。具体的には、システム100は、メッセージに応答するためにはどの候補レスポンスが関連し得るかを学習するために、訓練データ104を解析することによって機械学習を実行し、レスポンス提案モデル56を生成することができる。コンピューティングデバイス2のレスポンス提案モジュール54は、上記レスポンス提案モデル56を使用することにより、受信した通信に関連する1つ以上の候補レスポンスを推測することができる。
【0085】
訓練データ104は、チャットコーパス106とコンテキスト108とを含み得る。チャットコーパス106はチャットおよびメッセージングデータを含み得る。これは、インターネットメッセージのログおよびトランスクリプト、SMSメッセージ、インターネットチャット、インスタントメッセージ、ソーシャルメディアプラットフォーム上のダイレクトメッセージ、チャットルームメッセージ、オンライン会話、受信通信と返信メッセージとのペア等である。よって、チャットコーパス106は、レスポンス提案モジュール54を訓練するためにシステム100が使用し得る各種メッセージおよびこれらのメッセージに対する返信を含む。
【0086】
コンテキスト108は、メッセージに対する適切なレスポンス候補を決定するのに役立ち得る、チャットコーパス106に含まれるチャットおよびメッセージングデータに対応付けられた、コンテキスト情報を含み得る。たとえば、コンテキスト108は、チャットコーパス106内のメッセージの送信者および受信者のユーザ名、送信者と受信者との関係、送信者および受信者の位置、送信者および受信者がメッセージを送信および受信した時刻、メッセージのタイプ(たとえばインターネットチャット、テキストメッセージ、インスタントメッセージ、またはその他のタイプ)、送信者および受信者の職業、送信者および受信者が従事する活動等のうちの1つ以上を含み得る。
【0087】
先に述べたように、レスポンス提案モデル56は、処理性能が比較的低くメモリが比較的小さいコンピューティングデバイス2等のモバイルコンピューティングデバイスに含まれることが意図されている。したがって、システム100は、処理要求およびメモリ要求が比較的低いレスポンス提案モデル56を生成するために各種技術を実施することができる。そのために、システム100は、ランダム化予測モデル(randomized prediction model)(RPM)アーキテクチャに基づいて、訓練データ104に対し学習モジュール110を用いた機械学習を実行することにより、レスポンス提案モジュール54が用いるレスポンス提案モデル56を生成することができる。よって、学習モジュール110が実行する機械学習も、レスポンス提案モデル56のための推測も、RPMアーキテクチャに基づく。
【0088】
いくつかの例において、訓練データ104は特徴ベクトルによって表すことができる。特徴ベクトルは、何らかのオブジェクトを表す数値特徴のn次元ベクトルであってもよい。図4の例において、チャットコーパス106内の各メッセージは特徴ベクトルによって表すことができる。この特徴ベクトルは、特定のメッセージのコンテンツ(たとえば単語、フレーズ、推測される話題等)と、コンテキスト108に含まれるメッセージに対応付けられたコンテキスト信号とから得られた、1つ以上のコンテキスト信号を含む。
【0089】
特定のメッセージの特徴ベクトルは、(ID,重み)ペアのセットで表すことができる。IDは、メッセージに対応付けられた特定の信号(たとえば「お元気ですか」のような固有のフレーズ)の固有識別子を表していてもよい。重みは、特定の信号に対応付けられた頻度またはその他何らかの適切な重みを表していてもよい。
【0090】
システム100は、訓練データ104のインスタンスを入力として異なる空間Ωに射影するために、1つ以上の変換関数F(x)102を規定することにより、空間Ω内で学習モジュール110を用いて機械学習を実行することができる。RPMアーキテクチャは、1つ以上の変換関数F(x)102を規定するために、局所性鋭敏型ハッシュ(LSH)の修正バージョンを用いて効率的なランダム化射影法を強化することができる。具体的には、システム100は、1つ以上の変換関数F(x)102を適用して、空間Ωへの訓練データ104のランダム射影を実行することができる。いくつかの例において、システム100は、機械学習を実行することにより、1つ以上の変換関数F(x)102の最適なセットを求めて、その訓練データ104の射影を最適化することができる。
【0091】
ランダム射影法は一般的に、次元数が高いデータポイント間の類似性を効率的に計算するために、文書またはその他のタイプのデータをクラスタ化するために使用できる。本明細書に開示する技術に関して、メッセージを表す特徴ベクトルは、比較的高い次元性を示す場合がある。なぜなら、自然言語テキストまたは口語体のチャット言語において通常使用される単語数が多いからである。本明細書に開示する技術は、1つ以上の変換関数F(x)102を用いて複数のランダム射影を実行する。システム100は、1つ以上の変換関数F(x)102を用いてランダム射影を実行することにより、入力データ「x」(たとえば受信チャットメッセージに対応する高次元の特徴ベクトル)を、効率的に低次元表現に変換することができる。システム100はさらに、射影された表現を、観察されたレスポンス(図4においてシード例112として示される、訓練データ104からのシード例)とペアにされる元のメッセージ「x」とともに増大し、この増大された空間に対して共同学習を実行することによって機械訓練モデル(たとえばレスポンス提案モデル56)を訓練することができる。
【0092】
先に述べたように、RPMアーキテクチャは、1つ以上の変換関数F(x)102を規定するために、局所性鋭敏型ハッシュ(LSH)の修正バージョンを用いて高効率のランダム化射影法を強化することができる。RPMアーキテクチャは、(たとえばシステム100による、またはクラウド上の他の場所における)訓練中および推測時間中に(たとえばデバイス2上でレスポンス提案モデル56を使用しているとき)、オンザフライで効率的に計算できるLSHに基づくランダム射影法を利用することができる。この関数をオンザフライで計算することは、オンデバイスの推測(たとえばコンピューティングデバイス2上でレスポンス提案モデル56を実行すること)にとって重要な場合がある。なぜなら、電話またはスマートウォッチ(たとえばコンピューティングデバイス2)は、メモリに制約がある場合があるからである。デバイスのメモリに制約があるために、システム100は、1つ以上の変換関数F(x)102の射影を実行するのに必要となり得るランダムベクトル(高次元データのために非常に大きい可能性がある)を予め計算し予め計算したランダムベクトルをコンピューティングデバイス2上のメモリに(たとえば記憶装置50に)格納することが、不可能な場合がある。
【0093】
システム100は、1つ以上の変換関数F(x)102を実行することにより、訓練データ104内の各メッセージ(たとえば特徴ベクトル)を、設定されたビット数を有するバイナリ(すなわち1と0という値を有する)ビットベクトルとして表されるハッシュシグネチャに、変換することができる。このようにして、システム100は、比較的高次元の入力を、固定ビット数を有するビットベクトルの低次元表現に変換する。たとえば、システム100は、各メッセージを、同一ビット数(たとえば8ビット)を有するビットベクトルにハッシュして、「お元気ですか?」というメッセージを、射影後にハッシュシグネチャ01001010を用いて表すことができるようにしてもよい。実際、システム100は、1つのメッセージ特徴ベクトルに対して複数の射影を適用し、各メッセージ特徴ベクトル「x」を複数のハッシュシグネチャで表すことができる。これらはすべて、学習モジュール110における訓練中にメッセージ特徴ベクトル「x」に追加してリンクさせることができる。
【0094】
したがって、本明細書に開示する技術により、ランダム射影法の計算をオンザフライで効率的に実施することができ、それによって、モバイルコンピューティングデバイスがランダムベクトルを計算できるようにして、モバイルコンピューティングデバイスが予め計算されたランダムベクトルを格納しなくてもよいようにすることができる。このように、本明細書に開示する技術によって、モバイルコンピューティングデバイスは、オフデバイスモデルを使用しなくても、オンデバイス機械訓練モデルを実行することにより、受信した通信に対する候補レスポンスを推測することができる。
【0095】
システム100は、学習モデル110を実行することにより、空間Ωにおいて1つ以上の変換関数F(x)102によって変換されて特徴の次元性が低減された訓練データ104に対し、訓練を実行することで、メッセージ(たとえば受信した通信)に対するレスポンスにスコアを付け、特定の数の最高スコアのレスポンスを見出すことができる。
【0096】
一例において、システム100は、グラフベースのモデリングフレームワークを利用し、かつ、モデル重みθを訓練するためにグラフのノードに対してラベル伝播を実行することで、半教師あり機械学習を訓練データ104に対して実行することにより、レスポンス提案モデル56を生成することができる。訓練データ104に対して機械学習を実行する際、システム100はグラフ114を構成してもよい。このグラフにおいて、データはノードおよびノードに与えられたラベルによって表され、関連するノードはエッジによってリンクされる。エッジには、リンクされたノードに対する類似度関数によって定められたエッジ重みが対応付けられていてもよい。エッジ重みは、連結されたノードのラベルがどれ程度強く一致しているかを示す。システム100は、ラベルが付された各シードノードに対応付けられたクラスラベル情報を用い、これらのラベルを繰り返しグラフ上で伝播させることにより、グラフ114のノード上でラベル伝播を実行することができる。このような機械学習のための技術は、エキスパンダー(Expander)グラフベースの機械学習フレームワークと呼ばれることがある。
【0097】
グラフ114において、受信メッセージ「x」に対応付けられたメッセージノードは、エッジを介して、メッセージに対するレスポンスに対応付けられたレスポンスノードに連結することができる。さらに、グラフ114はまた、メッセージの射影ハッシュシグネチャF(x)を表す射影ノードを含み得る。グラフ114は、これらの射影ノードを、エッジを介して、対応するメッセージ「x」に対応付けられたメッセージノードにリンクさせることができる。システム100は、レスポンスから抽出した語彙特徴に少なくとも一部基づいて、レスポンスノードに対応付けられたレスポンスの意味上の趣旨を導き出し、レスポンスに、対応する意味上の趣旨でラベル付けし、グラフ114を通して、メッセージノードに、実際のレスポンスに加えて関連する意味上の趣旨を繰り返し伝播させ、レスポンスノードをハッシュすることにより、射影された対応するハッシュシグネチャを表す各射影ノードの対応する重み(たとえば信頼度スコア)および予測されるレスポンスのランク付けリストを、学習することができる。このようにして、学習モジュール110は、メッセージをレスポンスと対応する重みとに対応付けることができ、この重みは、特定のメッセージに対する、対応付けられたレスポンスの類似度を表す。
【0098】
さらに、システム100は、レスポンスノードに対応付けられたレスポンスの意味上の趣旨を導き出すことにより、意味上の趣旨が同一のクラスタレスポンスを求めてセマンティッククラスタにすることができる。たとえば、同一のセマンティッククラスタに属する各レスポンスは、このセマンティッククラスタのメンバーシップを示す同一ラベルでラベル付けすることができる。
【0099】
グラフ114は、メッセージノードを、メッセージのハッシュシグネチャに対応付けられた射影ノードに連結するので、グラフ114内の射影ノードは各々、対応するメッセージノードと同一の、予測されるレスポンスのランク付けられたリストおよび重みで、ラベル付けすることができる。これにより、システム100は、レスポンスおよび対応する重みで、ならびに、各レスポンスが属する1つ以上のセマンティッククラスタを示すセマンティッククラスタラベルで、ラベル付けされた、一組の射影ノードを含み得る、比較的軽量のレスポンス提案モデル56を生成することができる。これは、携帯電話およびスマートフォン等のモバイルコンピューティングデバイスには好適であろう。
【0100】
加えて、システム100は、射影ノードについて学習されたレスポンスに対し、追加の正規化技術を適用することにより、頻繁に起こるレスポンス(たとえば「ありがとう」)を軽量化することができる。射影ハッシュシグネチャ(たとえば低次表現におけるビットベクトル)は、レスポンスラベルおよび重みとともに、レスポンス提案モデル56を構成する。コンピューティングデバイス2はこのモデル56を用いることにより、受信した通信に対する候補レスポンスを推測することができる。
【0101】
図5は、本開示の1つ以上の技術に従う、オンデバイス機械訓練モデルを用いて受信通信に対する候補レスポンスを生成する技術の一例を示すブロック図である。図5に示すように、コンピューティングデバイス2上で実行されるレスポンス提案モジュール54は、図4に関して説明した技術に従い機械訓練されたレスポンス提案モデル56を含み得る。
【0102】
コンピューティングデバイス2は、1つ以上の変換関数F(x)102とレスポンス提案モデル56とを受けてインストールすることができる。上記変換関数とレスポンス提案モデルとが、レスポンス提案モジュール54を構成する。コンピューティングデバイス2にインストールされたレスポンス提案モデル56は、一組のハッシュシグネチャ(たとえばビットベクトル)、ハッシュシグネチャに対応付けられた一組の射影ノード、射影ノード各々に対応付けられた予測レスポンスのランク付けリストを示す一組のレスポンスラベル、射影ノードに対する予測レスポンスの関連性を示す予測レスポンス各々に対応付けられた重み、および、各予測レスポンスが属する1つ以上のセマンティッククラスタを示す一組の予測レスポンスに対応付けられたセマンティッククラスタラル、であってもよい。ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示は、データベーステーブル、カンマで区切られた値、拡張可能マークアップ言語(XML)ファイル、ルックアップテーブル等のような、構造化されたまたは構造化されていないデータとして、格納されてもよい。
【0103】
コンピューティングデバイス2は、通信を受信すると、レスポンス提案モジュール54を用いて、受信した通信に対する1つ以上の候補レスポンスを生成することができる。コンピューティングデバイス2がレスポンスを生成し得る通信を受信したことに応じて、レスポンス提案モジュール54は、受信した通信を、レスポンス提案モデル56の訓練時間中に使用される同一の1つ以上の変換関数F(x)102(たとえば1つ以上のランダム射影関数)を用いて、ハッシュシグネチャ(たとえば低次元表現のビットベクトル)に、オンザフライで射影することができる。受信した通信をハッシュシグネチャに射影することにより、コンピューティングデバイス2は、受信した通信の特徴の次元を低減することで、計算の集約度が比較的低くなるようにしてハッシュシグネチャを解析することにより、受信した通信に対する1つ以上の候補レスポンスを決定することができる。
【0104】
コンピューティングデバイス2は、ハッシュシグネチャに対応付けられた一組の射影ノードをルックアップし、一組の射影ノードの各々に対応するレスポンスと、レスポンスの重みとを決定する。ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示等は、コンピューティングデバイス2において構造化されたまたは構造化されていないデータとして格納されるので、コンピューティングデバイス2は、ルックアップ動作を実行することにより、受信した通信に対する1つ以上の候補レスポンスを決定することができる。これらのルックアップ動作は、比較的高速で実行できるが消費電力は比較的少ないので、コンピューティングデバイス2の計算のおよび/または消費電力の制約条件を満たすことができる。さらに、ハッシュシグネチャ、レスポンスラベル、重み、およびセマンティッククラスタラベルの表示等を、コンピューティングデバイス2において構造化されたまたは構造化されていないデータとして格納することにより、コンピューティングデバイス2は、受信した通信の指示をコンピューティングデバイス2の外部に送信する(たとえば受信した通信をネットワークを介してクラウドに送信する)ことなく、受信した通信に対する1つ以上の候補レスポンスを決定することができる。受信した通信の指示をコンピューティングデバイス2の外部に送信しないことで、コンピューティングデバイス2は、ネットワーク送信によって生じるレイテンシを伴うことなく1つ以上の候補レスポンスを生成し、また、そのWiFiまたはセルラー無線を介してデータを送受信しなくてもよいことから、電池電力を節約する。
【0105】
コンピューティングデバイス2は、ハッシュシグネチャに対応付けられた射影ノードに対応するレスポンスおよびレスポンスの重みを集約しソートすることにより、予測レスポンスの対応付けられた重みに対応する、受信した通信に対する予測レスポンスのランク付けリストを生成することができる。たとえば、コンピューティングデバイス2は、最も重みが大きい予測レスポンス(たとえば対応する最も大きい重みを有する上位3つのレスポンス)を、コンピューティングデバイス2がユーザによる選択のために提供し得る、受信した通信に対する候補レスポンスとして、指定することができる。
【0106】
いくつかの例において、レスポンス提案モデル56はまた、候補レスポンスの意味論上の意味に少なくとも一部基づいて候補レスポンスを追加してもよい。たとえば、予レスポンスのランク付けリストの一例に「よし、それでいい!」が含まれている場合、レスポンス提案モデル56は、予測レスポンスについて推測される意味上の趣旨に基づいて、同一または同様の意味論上の意味を共有する(たとえば予測レスポンスと同一のセマンティッククラスタに属する)「よさそうですね」のような、その他の関連しているが別種のレスポンスを決定し提案してもよい。レスポンス提案モデル56は、レスポンスに対応付けられたセマンティッククラスタラベルに少なくとも一部基づいて、このような意味上の趣旨を推測する。そうすると、レスポンス提案モデル56は、レスポンスが各々同一のセマンティッククラスタラベルを有する場合にこれらのレスポンスは意味上関連性があると判断することができる。
【0107】
いくつかの例において、コンピューティングデバイス2は、同一のセマンティッククラスタに属するレスポンスの重複を避けるために、相違に基づくランク付けを利用してもよい。たとえば、「ありがとう!」および「ありがとうございます」という予測レスポンスはいずれも同一の感謝(thanks)というセマンティッククラスタに属する可能性がある。この場合、「ありがとう!」および「ありがとうございます」の両方が、レスポンスに対応付けられた重みに少なくとも一部基づいて決定し得る、一組の最高ランクの予測レスポンスに含まれている場合、コンピューティングデバイス2は、これら2つのレスポンスのうちの一方のスコアにペナルティーを付けることにより、2つの予測レスポンスのうちの一方のみが、ユーザによる選択用にコンピューティングデバイス2が提供する一組の候補レスポンスに含まれるように、することができる。
【0108】
より形式的には、受信した会話に対し、コンピューティングデバイス2は、上記レスポンス提案モジュール54に従ってレスポンス候補予測Rpredicted(すなわち予測レスポンス)を生成し、予測スコアθに基づいてレスポンス提案r∈Rpredictedを降順でランク付けし、レスポンス提案をフィルタリングすることができる。θはモデルしきい値θthreshold未満である。レスポンス提案モジュール54を用いて予測した残りの候補レスポンスについて、コンピューティングデバイス2は、上記相違に基づくランク付けを適用し、ランク付けされたレスポンスのセマンティッククラスタリングCluster(ri)に基づいて、候補レスポンスをフィルタリングし、特定のセマンティッククラスタからの1つの予測レスポンスのみが、ユーザに提示される一組の候補レスポンスに含まれるようにすることができる。
【0109】
このように、レスポンス提案モジュール54は、1つ以上の変換関数F(x)102を用いて、受信した通信をオンザフライでランダムにハッシュシグネチャに射影することができる。レスポンス提案モジュール54は、ハッシュシグネチャに対応付けられた射影ノードを決定し、射影ノードに対応付けられた一組の予測レスポンスを決定することができる。射影ノードに対応付けられた一組の予測レスポンスについて、レスポンス提案モジュール54は、しきい値未満の重みが対応付けられているレスポンスをフィルタリングによって取り除くことができる。残りのレスポンスについて、レスポンス提案モジュール54は、相違に基づくランク付けを適用することができる。たとえば、レスポンス提案モジュール54は、残りの予測レスポンスに対応付けられているセマンティッククラスタラベルに基づいて、予測レスポンスのうちの2つ以上が同一のセマンティッククラスタラベルを有し、したがって同一のセマンティッククラスタ内にあるか否かを判断することができる。同一のセマンティッククラスタ内にある場合、レスポンス提案モジュール54は、これら予測レスポンスをそれぞれに対応付けられた重みに基づいてランク付けし、ランクが低い方の予測レスポンスにペナルティーを付けて、ユーザに提示される一組の候補レスポンスにおいては、セマンティッククランスタ内の予測レスポンスが1つだけになるようにすることができる。
【0110】
いくつかの例において、コンピューティングデバイス2は、選択のためにユーザに提供される一組の候補レスポンスの中に、デフォルト候補レスポンス提案を含めてもよい。コンピューティングデバイス2は、チャットデータ内の頻度に基づいて、人気のあるセマンティッククラスタからレスポンスを選択することにより、一組のデフォルト候補レスポンスRdefaultを作成することができる。コンピューティングデバイス2は、一組のデフォルト候補レスポンスRdefault内の各候補レスポンスの予測スコアを、スコア=λbackoff*(Rankmax−Rankcurrent)として計算することができる。λbackoffは、デフォルト値(たとえば1e−6)であってもよく、Rankmaxは、コンピューティングデバイス2がユーザに提示する候補レスポンスの数に応じた値(たとえば3)に設定してもよく、Rankcurrentは、一組のデフォルト候補レスポンスのうちの特定の候補レスポンスのランク付けであってもよい。一組のデフォルト候補レスポンスRdefaultに含まれる候補レスポンスのスコアを、レスポンス候補予測Rpredictedのスコアと比較し、一組の候補レスポンスのスコアとの比較におけるそれらのスコアに少なくとも一部基づいて、ユーザに提示する一組の候補レスポンスの中に、1つ以上のデフォルト候補レスポンスを含めてもよい。
【0111】
いくつかの例において、コンピューティングデバイス2は、関連するクラスタモデルを利用して、最上位レスポンス候補のセマンティッククラスタに関連するセマンティッククラスタからの候補レスポンスが、レスポンス提案モジュール54に従って生成された一組のレスポンス候補予測Rpredictedに含まれるようにしてもよい。2つのセマンティッククラスタは、予測レスポンスがこれら2つのセマンティッククラスタ双方に属する場合、関連している可能性がある。
【0112】
たとえば、コンピューティングデバイス2は、最上位候補レスポンスr∈Rpredictedを選択してもよく、レスポンスrのセマンティッククラスタCのルックアップを実行してもよい。レスポンス提案モジュール54を生成するときに、システム100がこのようなセマンティッククラスタの割当を学習し生成してもよい。コンピューティングデバイス2は、階層的対応付けC⇔Cから、関連するクラスタC∈Related Cluster(C)をサンプリングすることができる。コンピューティングデバイス2は、レスポンスr∈Cをサンプリングし、これらレスポンス各々のスコアをscore(r)∝wcj⇔ci)として生成し、レスポンスrを、一組のレスポンス候補予測r∈Rpredictedを用いてランク付けすることができる。
【0113】
いくつかの例において、コンピューティングデバイス2は、レスポンス提案モジュール54から生成された候補レスポンスをさらに処理および/またはフィルタリングしてもよい。たとえば、コンピューティングデバイス2は、末尾の句読点の不備または不正形式の句読点があるレスポンス等の不良レスポンス提案をフィルタリングによって候補レスポンスから取り除いてもよい。
【0114】
いくつかの例において、コンピューティングデバイス2には処理およびメモリに制約があるので、コンピューティングデバイス2は、レスポンス提案モデル56の一部のみ(たとえばすべてよりも少ない部分)をロードすることにより、受信した通信に対する候補レスポンスを生成してもよい。たとえば、コンピューティングデバイス2は、高アクセス頻度パターンに基づいて、または、レスポンス提案モデル56が1つ以上の候補レスポンスを推測し得る対象である受信通信に少なくとも一部基づいて、レスポンス提案モデル56の限られた部分(たとえば全体よりも少ない部分)をメモリにロードまたはページングしてもよい。このように、コンピューティングデバイス2は、レスポンス提案モデル56全体をロードするのではなく、レスポンス提案モデル56のうちの比較的小さなチャック(たとえば4キロバイトチャック)をメモリにロードしてもよい。各種例において、レスポンス提案モデル56は読み取り専用モデルなので、このモデルは簡単にメモリからページアウトすることができる。したがって、読み取り専用モデルであるレスポンス提案モデル56は、メモリの量が限られているデバイス(たとえばコンピューティングデバイス2)で使用できるという、潜在的な技術的利点を提供できる。
【0115】
いくつかの例において、本明細書に記載の技術をさらに拡張することにより、モデルの機械学習および訓練のためのこのような技術を、モバイルデバイス(たとえばコンピューティングデバイス2)上において、各種用途のために、たとえば、レスポンスの語調、スタイル、文語調等に関するユーザの嗜好に基づいて候補レスポンスおよび提案候補レスポンスをパーソナライズするといった用途のために、実施できるようにしてもよい。本開示のいくつかの局面に従うと、レスポンス提案モジュール54は、パーソナライズされた候補レスポンスを生成しこのようなパーソナライズされた候補レスポンスをユーザに提示する候補レスポンスに含めることにより、ユーザに提示する候補レスポンスをパーソナライズすることができる。
【0116】
レスポンス提案モジュール54は、受信した通信の宛先であるコンピューティングデバイス2のユーザのために、候補レスポンスをパーソナライズしてもよい。候補レスポンスをパーソナライズするために、レスポンス提案モジュール54は、ユーザの文章スタイル、語調、文語調、単語およびフレーズの使用法、句読点のスタイル等により調和する、パーソナライズされた候補レスポンスを生成することができる。レスポンス提案モジュール54は、このようなパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【0117】
レスポンス提案モジュール54は、受信した通信の宛先であるコンピューティングデバイス2のユーザの通信履歴32に少なくとも一部基づいて、パーソナライズされた候補レスポンスを生成してもよい。ユーザの通信履歴32は、ユーザが受信したメッセージおよびユーザが送信した過去のレスポンスを含み得る。このような受信メッセージおよび送信レスポンスは、ユーザが過去に送信および/または受信した、テキストメッセージ、SMSメッセージ、電子メール、ソーシャルメディアポスト等を含み得る。レスポンス提案モジュール54は、このようなパーソナライズされた候補レスポンスを、ユーザの通信履歴32にアクセスすることをユーザがコンピューティングデバイス2に許可して初めて、コンピューティングデバイス2のユーザの通信履歴32に少なくとも一部基づいて生成することができ、ユーザはいつでも通信履歴32へのアクセス権を無効にすることが可能であってもよい。
【0118】
通信履歴32は、コンピューティングデバイス2に格納されてもよく、または、外部コンピューティングデバイスに格納されてもよい。たとえば、コンピューティングデバイス2が、スマートフォンとペアリングされたスマートウォッチ等のウェアラブルデバイスの場合、通信履歴32はスマートフォンに格納されてもよい。これらの例において、コンピューティングデバイス2は、ユーザが送信した直近100のレスポンスの指示、ユーザが過去に選択した候補レスポンスの指示等の、通信履歴32のサブセットを格納してもよい。よって、いくつかの例において、コンピューティングデバイス2は、パーソナライズされた候補レスポンスを生成するために、外部コンピューティングデバイスと通信しそこに格納されている通信履歴32にアクセスしてもよい。
【0119】
いくつかの例において、レスポンス提案モジュール54は、候補レスポンスを生成するための本明細書に開示の技術を併用して、パーソナライズされた候補レスポンスを生成することが可能であってもよい。言い換えると、レスポンス提案モジュール54は、変換関数F(x)102を用いて受信通信をオンザフライでハッシュシグネチャに射影してもよい。レスポンス提案モジュール54は、レスポンス提案モデル56においてハッシュシグネチャに対応付けられた射影ノード、および、射影ノードに対応付けられた予測レスポンスのランク付けセットを決定することができる。レスポンス提案モジュール54は、射影ノードに対応付けられた予測レスポンスのランク付けセットに少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを生成することができ、1つ以上のパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【0120】
他の例において、レスポンス提案モジュール54は、候補レスポンスを生成するための本明細書に開示の技術を実施することなく、パーソナライズされた候補レスポンスを生成することが可能であってもよい。この例において、レスポンス提案モジュール54は、レスポンス提案モデル56を使用してまたは使用せずに、何らかの適切な技術を用いて、受信通信に応答するための一組の予測レスポンスを決定してもよい。たとえば、レスポンス提案モジュール54は、一組の予測レスポンスを決定するために、受信通信をコンピューティングデバイス2の外部に送信しないモデルを使用してもよい。レスポンス提案モジュール54は、受信通信に応答するための一組の予測レスポンスに少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを生成することができ、1つ以上のパーソナライズされた候補レスポンスを、ユーザに提示する一組の候補レスポンスに含めることができる。
【0121】
レスポンス提案モジュール54は、パーソナライズモデル58を使用し、通信履歴32に基づいて、1つ以上のパーソナライズされたレスポンスメッセージを生成してもよい。パーソナライズモデル58は、通信履歴32に格納されている、ユーザが過去に送信した各レスポンスが属するセマンティッククラスタを決定することができ、このような過去に送信したレスポンスとセマンティッククラスタとの対応付けの指示を格納してもよい。したがって、パーソナライズモデル58は、セマンティッククラスタに対する過去に送信されたレスポンスのマップであってもよい。このため、パーソナライズモデル58は、セマンティッククラスタの指示を受け、それに応じて、表示されたセマンティッククラスタに属するユーザが過去に送信した1つ以上のレスポンスの指示を出力することができる。いくつかの例において、パーソナライズモデル58は、通信履歴32に格納されている、直近に送信された1000のレスポンス等のユーザが送信したレスポンスのサブセット(すべてよりも少ない)が属するセマンティッククラスタを決定することができる。
【0122】
パーソナライズモデル58は、何らかの適切なやり方で、過去に送信したレスポンスが属するセマンティッククラスタを決定すればよい。一例において、レスポンス提案モデル56は、各々がセマンティックモデルに属する複数のレスポンスを含むので、過去に送信されたレスポンスが、レスポンス提案モデル56に含まれるレスポンスに一致する場合は、過去に送信されたレスポンスを、レスポンス提案モデル56に含まれるレスポンスが属するセマンティッククラスタと同一のセマンティッククラスタに対応付ければよい。
【0123】
これに代えて、パーソナライズモデル58は、通信履歴32に格納されているユーザが過去に送信したレスポンスの意味上の趣旨を導き出すことにより、過去に送信したレスポンスが属するセマンティッククラスタを決定してもよい。パーソナライズモデル58は、このようなセマンティッククラスタを、過去に送信されたレスポンスから語彙的な特徴を抽出することにより、または何らかの適切な技術により、決定することができる。
【0124】
別の例において、パーソナライズモデル58は、ハッシュシグネチャからセマンティッククラスタを予測する機械訓練モデルを通して、過去に送信されたレスポンスの、セマンティッククラスタに対するマッピングを決定してもよい。
【0125】
別の例において、パーソナライズモデル58は、ハッシュシグネチャに基づいて類似度を計算することにより、過去に送信されたレスポンスの、セマンティッククラスタに対するマッピングを決定してもよい。
【0126】
1つ以上のパーソナライズされたレスポンスメッセージを生成するために、レスポンス提案モジュール54は、1つ以上のパーソナライズされたレスポンスメッセージとして、ユーザが過去に送信した、通信履歴32に格納されている1つ以上のレスポンスを選択してもよい。レスポンス提案モジュール54は、受信した通信を予測するための一組の予測レスポンスが属するセマンティッククラスタ、および、過去に送信された1つ以上のレスポンスが属するセマンティッククラスタに、少なくとも一部基づいて、通信履歴32に格納されている1つ以上の過去のレスポンスを選択してもよい。
【0127】
一組の予測レスポンスが属する1つ以上のセマンティッククラスタのうちの各セマンティッククラスタについて、レスポンス提案モジュール54は、そのセマンティッククラスタの指示をパーソナライズモデル58に送ってもよく、それに応じた、セマンティッククラスタに属するユーザが送信した1つ以上の過去のレスポンスの指示をパーソナライズモデル58から受けてもよい。レスポンス提案モジュール54は、ユーザが送信した1つ以上の過去のレスポンスを、1つ以上のパーソナライズされた候補レスポンスに含めることができる。
【0128】
いくつかの例において、レスポンス提案モジュール54は、ユーザが送信したある過去のレスポンスが、セマンティッククラスタに属するレスポンス提案モデル56のレスポンス空間内のレスポンスのうちの1つに一致する場合のみにおいて、ユーザが送信したこの過去のレスポンスを、パーソナライズされた候補レスポンスとして含めてもよい。レスポンス提案モデル56のレスポンス空間は、射影ノードのうちの1つ以上に対応付けられた、レスポンス提案モデル56におけるすべての予測レスポンスを含み得る。たとえば、別れ(partings)というセマンティッククラスタに属するレスポンス提案モデル56のレスポンス空間内のレスポンスは、「さようなら」、「また後でね」および「アディオス」というレスポンスを含み得る。これらは各々、レスポンス提案モデル56における1つ以上の射影ノードに対応付けられた予測レスポンスのランク付けリストのうちの1つ以上における予測レスポンスであるからである。
【0129】
たとえば、レスポンス提案モデル56のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスを含む別れセマンティッククラスタに属する「さようなら」という予測レスポンスについて、レスポンス提案モジュール54は、パーソナライズモデル58を用いて、ユーザが送信した過去のレスポンスが、別れセマンティッククラスタに属するレスポンス提案モデル56のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスのうちの1つに一致するか否かを判断すればよい。
【0130】
あるレスポンスが別のレスポンスに一致する場合として、これらのレスポンスが同一の単語および/またはフレーズを含む場合、これらのレスポンスが同一の絵文字セットを含む場合、これらのレスポンスが同一画像を含む場合等がある。レスポンス提案モジュール54は、パーソナライズモデル58を用いて、ユーザが送信した過去のレスポンスが、同じ別れセマンティッククラスタに属し、かつ、この別れセマンティッククラスタに属するレスポンス提案モデル56のレスポンス空間内のレスポンスのうちの1つに一致すると判断した場合、上記過去に送信したレスポンスを、パーソナライズされた候補レスポンスとして、セマンティッククラスタに含めることができる。たとえば、ユーザが過去に「また後でね」というレスポンスメッセージを送信した場合、レスポンス提案モジュール54は、この「また後でね」というメッセージをパーソナライズされた候補レスポンスとして含めることができる。
【0131】
いくつかの例において、レスポンス提案モジュール54は、ユーザが送信した過去のレスポンスが、射影ノードに対応付けられた予測レスポンスのランク付けリストにおける予測レスポンスと同一のセマンティッククラスタに属する場合、この過去のレスポンスをパーソナライズされた候補レスポンスとして含めることができる。このような過去のレスポンスは、セマンティッククラスタに属するレスポンス提案モデル56のレスポンス空間内のレスポンスのうちの1つに一致するか否かに関わらず、パーソナライズされた候補レスポンスとして含めてもよい。
【0132】
たとえば、レスポンス提案モデル56のレスポンス空間内の「さようなら」、「また後でね」および「アディオス」というレスポンスを含む別れセマンティッククラスタに属する予測レスポンス「さようなら」の場合、レスポンス提案モジュール54は、パーソナライズモデル58を用いて、ユーザが送信した過去のレスポンスがこの別れセマンティッククラスタに属するか否かを判断してもよい。レスポンス提案モジュール54が、パーソナライズモデル58を用いて、過去のレスポンス「またね」が別れセマンティッククラスタに属すると判断した場合、レスポンス提案モジュール54は、メッセージ「またね」を、「さようなら」、「また後でね」および「アディオス」のうちのいずれにも一致していないものの、パーソナライズされた候補レスポンスとして含めてもよい。
【0133】
いくつかの例において、ユーザが送信した2つ以上の過去のレスポンスが同一のセマンティッククラスタにマッピングされる場合がある。この場合、パーソナライズモデル58は、このセマンティッククラスタにマッピングされる1つの過去のレスポンスのみを返してもよい。たとえば、パーソナライズモデル58は、同一のセマンティッククラスタにマッピングされる過去のレスポンスのうち、最も頻繁に送信される過去のレスポンスを返してもよい。これに代えて、パーソナライズモデル58は、同一のセマンティッククラスタにマッピングされる過去のレスポンスのうち、最後に送信された過去のレスポンスを返してもよい。また、パーソナライズモデル58は、その他何らかの適切な代替技術または基準を用いて、同一のセマンティッククラスタにマッピングされた複数の過去レスポンスから1つの過去レスポンスを選択してもよい。
【0134】
過去に送信されたレスポンスをパーソナライズされた候補レスポンスとして含めることは、この過去に送信されたレスポンスを、受信した通信に対する予測レスポンスのランク付けリストに追加することを含み得る。たとえば、ユーザが過去にレスポンスメッセージ「また後でね」を送信していた場合、レスポンス提案モジュール54は、このメッセージ「また後でね」を、予測レスポンスのランク付けリストに含めてもよい。いくつかの例において、この過去に送信されたレスポンスを、このレスポンスと同一のセマンティッククラスタに属する予測レスポンスのランク付けリストにおけるその他の予測レスポンスと置き換えてもよい。よって、「また後でね」というレスポンスメッセージを、レスポンス提案モジュール54が、予測レスポンスのランク付けリストにはセマンティッククラスタの1つのレスポンスのみを含めると決定した場合には、予測レスポンスのランク付けリストに以前に含まれたレスポンスメッセージ「さようなら」と置き換えてもよい。
【0135】
レスポンス提案モジュール54は、比較的高い重みまたはランクを、過去に送信されたレスポンスに割り当てることにより、この過去に送信されたレスポンスが、ユーザに提示される1つ以上の候補レスポンスの1つとして含まれる確率を高めてもよい。いくつかの例において、レスポンス提案モジュール54は常に、予測レスポンスのランク付けリストに追加された過去の送信レスポンスが、ユーザに提示される1つ以上の候補レスポンスに含まれることを、保証してもよい。このようにして、レスポンス提案モジュール54は、1つ以上のパーソナライズされた候補レスポンスを、ユーザに提示される1つ以上の候補レスポンスに含めることができる。
【0136】
図6は、本開示の1つ以上の技術に従う、オンデバイス機械訓練モデルを用いて受信通信に対する候補レスポンスを生成するためのコンピューティングデバイスの動作の例を示すフロー図である。以下では、図6の動作の例を図1図5の文脈の中で説明するが、これは説明のために過ぎない。
【0137】
図6の例において、コンピューティングデバイス2の少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信する(200)。この少なくとも1つのプロセッサは、コンピューティングデバイス2上で実行されるオンデバイス機械訓練モデル56を用いることにより、上記受信した通信に少なくとも一部基づいて、この通信に対する1つ以上の候補レスポンスを決定する(202)。この少なくとも1つのプロセッサは、上記1つ以上の候補レスポンスから1つの候補レスポンスを選択するユーザ入力の指示を受ける(204)。上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記少なくとも1つのプロセッサは、この候補レスポンスを、通信の送信元である外部コンピューティングデバイスに送信する(206)。
【0138】
いくつかの例において、オンデバイス機械訓練モデル56は、複数の射影ノードの指示を含む。複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。いくつかの例において、上記オンデバイス機械訓練モデル56を用い通信に少なくとも一部基づいて通信に対する1つ以上の候補レスポンスを決定することは、上記少なくとも1つのプロセッサが、ランダム射影関数102を用いて、受信した通信をオンザフライでハッシュシグネチャに射影することと、この少なくとも1つのプロセッサが、上記複数の射影ノードから、ハッシュシグネチャに対応付けられた射影ノードを決定することと、この少なくとも1つのプロセッサが、予測レスポンスのランク付けリストから、通信に対する1つ以上の候補レスポンスを決定することとをさらに含む。いくつかの例において、オンデバイス機械訓練モデル56は、複数の射影ノードを対応する予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステム100における半教師あり機械学習によって訓練される。
【0139】
いくつかの例において、上記少なくとも1つのプロセッサは、コンピューティングデバイスの、通信の宛先としての受信者であるユーザの、通信履歴32に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定してもよく、また、この1つ以上のパーソナライズされた候補レスポンスを、1つ以上の候補レスポンスに含めてもよい。いくつかの例において、上記1つ以上のパーソナライズされた候補レスポンスを決定することはさらに、上記少なくとも1つのプロセッサが、オンデバイス機械訓練モデル56を用い通信に少なくとも一部基づいて、通信に対する予測レスポンスのランク付けリストを決定することを含み得る、上記1つ以上の候補レスポンスは、レスポンスのランク付けリストから選択される。また、ユーザの通信履歴32が、予測レスポンスと同一のセマンティッククラスタに属する、ユーザが送信した過去のレスポンスを含むと判断したことに応じて、上記少なくとも1つのプロセッサは、ユーザが送信した過去のレスポンスを、1つ以上のパーソナライズされた候補レスポンスに含めてもよい。いくつかの例において、ユーザが送信した過去のレスポンスを1つ以上のパーソナライズされた候補レスポンスに含めることはさらに、少なくとも1つのプロセッサが、セマンティッククラスタに属するオンデバイス機械訓練モデル56のレスポンス空間内の複数の予測レスポンスのうちの1つに過去のレスポンスが一致すると判断したことに応じて、実行される。
【0140】
番号を付した以下の例は、本開示の1つ以上の局面を示し得る。
例1.コンピューティングデバイスの少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、上記少なくとも1つのプロセッサが、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する1つ以上の候補レスポンスを決定するステップと、上記少なくとも1つのプロセッサが、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、上記少なくとも1つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するステップとを含む、方法。
【0141】
例2.例1に記載の方法であって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【0142】
例3.例2に記載の方法であって、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する1つ以上の候補レスポンスを決定するステップはさらに、上記少なくとも1つのプロセッサが、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影するステップと、上記少なくとも1つのプロセッサが、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定するステップと、上記少なくとも1つのプロセッサが、上記予測レスポンスのランク付けリストから、上記通信に対する1つ以上の候補レスポンスを決定するステップとを含む。
【0143】
例4.例1〜3のいずれかに記載の方法であって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【0144】
例5.例1〜4のいずれかに記載の方法であって、上記少なくとも1つのプロセッサが、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するステップをさらに含み、上記ユーザは、上記通信の宛先としての受信者であり、上記少なくとも1つのプロセッサが、上記1つ以上のパーソナライズされた候補レスポンスを上記1つ以上の候補レスポンスに含めるステップをさらに含む。
【0145】
例6.例5に記載の方法であって、上記1つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、上記少なくとも1つのプロセッサが、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定するステップを含み、上記1つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記少なくとも1つのプロセッサが、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるステップを含む。
【0146】
例7.例6に記載の方法であって、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、上記セマンティッククラスタに属する上記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの1つに上記過去のレスポンスが一致すると判断したことに応じて、実行される。
【0147】
例8.コンピューティングデバイスであって、オンデバイス機械訓練モデルを格納するように構成されたメモリと、上記メモリに作動的に結合された少なくとも1つのプロセッサとを備え、上記少なくとも1つのプロセッサは、外部コンピューティングデバイスから送信された通信を受信し、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する1つ以上の候補レスポンスを決定し、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受け、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するように、構成されている。
【0148】
例9.例8に記載のコンピューティングデバイスであって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【0149】
例10.例9に記載のコンピューティングデバイスであって、上記少なくとも1つのプロセッサはさらに、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影し、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定し、上記予測レスポンスのランク付けリストから、上記通信に対する1つ以上の候補レスポンスを決定するように、構成されている。
【0150】
例11.例8〜10のいずれかに記載のコンピューティングデバイスであって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【0151】
例12.例8〜11のいずれかに記載のコンピューティングデバイスであって、上記少なくとも1つのプロセッサはさらに、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定するように構成されており、上記ユーザは、上記通信の宛先としての受信者であり、上記少なくとも1つのプロセッサはさらに、上記1つ以上のパーソナライズされた候補レスポンスを上記1つ以上の候補レスポンスに含めるように構成されている。
【0152】
例13.例12に記載のコンピューティングデバイスであって、上記少なくとも1つのプロセッサはさらに、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定するように構成されており、上記1つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記少なくとも1つのプロセッサはさらに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるように構成されている。
【0153】
例14.例13に記載のコンピューティングデバイスであって、上記少なくとも1つのプロセッサはさらに、上記セマンティッククラスタに属する上記オンデバイス機械訓練モデルのレスポンス空間内の複数の予測レスポンスのうちの1つに上記過去のレスポンスが一致すると判断したことにさらに応じて、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるように構成されている。
【0154】
例15.命令で符号化されたコンピュータ読取可能記憶媒体であって、上記命令は、実行されると、コンピューティングデバイスの少なくとも1つのプロセッサに、外部コンピューティングデバイスから送信された通信を受信することと、オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する1つ以上の候補レスポンスを決定することと、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けることと、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信することとを実行させる。
【0155】
例16.例15に記載のコンピュータ読取可能記憶媒体であって、上記オンデバイス機械訓練モデルは、複数の射影ノードの指示を含み、上記複数の射影ノードは各々、予測レスポンスのランク付けリストに対応付けられている。
【0156】
例17.例16に記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも1つのプロセッサに、ランダム射影関数を用いて、上記受信した通信をハッシュシグネチャにオンザフライで射影することと、上記複数の射影ノードから、上記ハッシュシグネチャに対応付けられた射影ノードを決定することと、上記予測レスポンスのランク付けリストから、上記通信に対する1つ以上の候補レスポンスを決定することとを実行させる。
【0157】
例18.例15〜17のいずれかに記載のコンピュータ読取可能記憶媒体であって、上記オンデバイス機械訓練モデルは、上記複数の射影ノードをそれぞれ予測レスポンスのランク付けリストに対応付けるために、外部コンピューティングシステムにおける半教師あり機械学習によって訓練される。
【0158】
例19.例15〜18のいずれかに記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも1つのプロセッサに、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、1つ以上のパーソナライズされた候補レスポンスを決定することを実行させ、上記ユーザは、上記通信の宛先としての受信者であり、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも1つのプロセッサに、上記1つ以上のパーソナライズされた候補レスポンスを上記1つ以上の候補レスポンスに含めることを実行させる。
【0159】
例20.例19に記載のコンピュータ読取可能記憶媒体であって、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも1つのプロセッサに、上記オンデバイス機械訓練モデルを用い、上記通信に少なくとも一部基づいて、上記通信に対する予測レスポンスのランク付けリストを決定することを実行させ、上記1つ以上の候補レスポンスは、上記レスポンスのランク付けリストから選択され、上記命令は、実行されるとさらに、上記コンピューティングデバイスの少なくとも1つのプロセッサに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めることを実行させる。
【0160】
例21.例1〜7のいずれかに記載の方法を実行するための手段を含むコンピューティングシステム。
【0161】
例22.少なくとも1つのプロセッサによって実行されるとこの少なくとも1つのプロセッサに例1〜7のいずれかに記載の方法を実行させる命令を格納するコンピュータ読取可能記憶媒体。
【0162】
例23.ある方法は、コンピューティングデバイスの少なくとも1つのプロセッサが、外部コンピューティングデバイスから送信された通信を受信するステップと、上記少なくとも1つのプロセッサが、上記通信に少なくとも一部基づいて、上記通信に対する、1つ以上のパーソナライズされた候補レスポンスを含む1つ以上の候補レスポンスを決定するステップとを含み、これは、上記コンピューティングデバイスのユーザの通信履歴に少なくとも一部基づいて、上記1つ以上のパーソナライズされた候補レスポンスを決定するステップを含む。上記ユーザは、上記通信の宛先としての受信者である。この方法はまた、上記少なくとも1つのプロセッサが、上記1つ以上の候補レスポンスからある候補レスポンスを選択するユーザ入力の指示を受けるステップと、上記少なくとも1つのプロセッサが、上記候補レスポンスを選択するユーザ入力の指示を受けたことに応じて、上記候補レスポンスを上記外部コンピューティングデバイスに送信するステップとを含む。
【0163】
例24.例23に記載の方法であって、上記1つ以上のパーソナライズされた候補レスポンスを決定するステップはさらに、上記少なくとも1つのプロセッサが、上記通信に少なくとも一部基づいて、この通信に対する予測レスポンスのランク付けリストを決定するステップを含み、上記1つ以上の候補レスポンスは、このレスポンスのランク付けリストから選択され、さらに、上記ユーザの通信履歴が、予測レスポンスと同一のセマンティッククラスタに属する上記ユーザから送信された過去のレスポンスを含むと判断したことに応じて、上記少なくとも1つのプロセッサが、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるステップを含む。
【0164】
例25.例24に記載の方法であって、上記ユーザから送信された過去のレスポンスを上記1つ以上のパーソナライズされた候補レスポンスに含めるステップはさらに、上記セマンティッククラスタに属するレスポンス空間内の複数の予測レスポンスのうちの1つに上記過去のレスポンスが一致すると判断したことに応じて、実行される。
【0165】
例26.例23〜25のいずれかに記載の方法を実行するための手段を含むコンピューティングシステム。
【0166】
例22.少なくとも1つのプロセッサによって実行されるとこの少なくとも1つのプロセッサに例23〜25のいずれかに記載の方法を実行させる命令を格納するコンピュータ読取可能記憶媒体。
【0167】
1つ以上の例において、記載された機能は、ハードウェア、ソフトウェア、ファームウェアまたはその任意の組み合わせにおいて実現され得る。ソフトウェアにおいて実現される場合、当該機能は、1つ以上の命令またはコードとして、コンピュータ読取可能媒体上に格納またはコンピュータ読取可能媒体を介して送信され得、ハードウェアに基づいた処理ユニットによって実行され得る。コンピュータ読取可能媒体は、データ記憶媒体、または、たとえば通信プロトコルに従ってある位置から別の位置までコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体といった有形の媒体に対応するコンピュータ読取可能記憶媒体を含み得る。この態様において、コンピュータ読取可能媒体は一般に、(1)一時的でない有形のコンピュータ読取可能記憶媒体、または、(2)信号もしくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、この開示において記載される技術の実現のために命令、コードおよび/またはデータ構造を抽出するよう、1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセス可能である任意の利用可能な媒体であり得る。コンピュータプログラムプロダクトはコンピュータ読取可能媒体を含み得る。
【0168】
限定ではなく例示として、そのようなコンピュータ読取可能記憶媒体は、所望のプログラムコードを命令またはデータ構造の形態で格納するために使用され得るとともにコンピュータによってアクセスされ得るRAM、ROM、EEPROM、CD−ROMもしくは他の光学ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または任意の他の記憶媒体を含み得る。さらに、任意の接続は、適切にコンピュータ読取可能媒体と称される。たとえば、同軸ケーブル、光ファイバケーブル、撚り対線、デジタル加入者線(DSL)、または、赤外線、無線通信およびマイクロ波のような無線技術を使用して、命令がウェブサイト、サーバまたは他のリモートソースから送信される場合、当該同軸ケーブル、光ファイバケーブル、撚り対線、DSL、または、赤外線、無線通信およびマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的な媒体を含んでいないが、その代りに、一時的でない有形の記憶媒体に関するということが理解されるべきである。本願明細書において使用されるようなディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含んでおり、ディスク(disk)は通常磁気的にデータを再生するものである一方、ディスク(disc)はレーザによりデータを光学的に再生するものである。上記のものの組み合わせも、コンピュータ読取可能媒体の範囲内に含まれるべきである。
【0169】
命令は、1つ以上のプロセッサによって実行され得、たとえば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルロジックアレイ(FPGA:field programmable logic array)、または、他の同等な集積論理回路または離散論理回路によって実行され得る。したがって、本願明細書において使用される「プロセッサ」という用語は、前述の構造、または、本願明細書において記載される技術の実現に好適な任意の他の構造のいずれかを指す。さらに、いくつかの局面において、本願明細書において記載される機能は、専用のハードウェアおよび/またはソフトウェアモジュール内に提供され得る。さらに、1つ以上の回路または論理素子において当該技術が完全に実現され得る。
【0170】
この開示の技術は、無線ハンドセット、集積回路(IC)またはICのセット(たとえばチップセット)を含むさまざまなデバイスまたは装置において実現され得る。さまざまなコンポーネント、モジュールまたはユニットは、開示された技術を実行するように構成されるデバイスの機能的な局面を強調するようにこの開示において記載されているが、必ずしも異なるハードウェアユニットによる実現を要求していない。むしろ、上述したように、さまざまなユニットがハードウェアユニットにおいて組み合わされ得るか、または、好適なソフトウェアおよび/またはファームウェアに関連して上述したような1つ以上のプロセッサを含む共同で動作するハードウェアユニットの集合によって提供され得る。
【0171】
各種例について説明した。上記およびその他の例は以下の請求項の範囲に含まれる。
図1
図2
図3
図4
図5
図6