(57)【要約】  電子通信に対する返信に含める用の提案として初回提示をユーザに対して提供するための、意味的に多様な候補応答のサブセットを判定することに関する、方法および装置。提供された応答のうちの１つをユーザが選択することにより、返信を作成するためにユーザが行わなければならないユーザ入力の数が減少する。これは、クライアント装置の様々な計算資源の使用を減少させ得て、および／または、あまり器用ではないユーザ（またはそれ以外に、クライアント装置に対してユーザ入力を行うことが困難な者）にとっては特段の利益になり得る。実装のいくつかは、複数の候補応答のうちの１つにそれぞれ基づく埋め込みを、ニューラルネットワークレスポンスエンコーダモデルを通じて生成することに基づき、意味的に多様な候補応答のサブセットを判定する。所与の候補応答に基づく埋め込みは、サブセットに対してすでに選択された候補応答の埋め込みと比較されてよい。所与の候補応答は、その比較が相違基準を満足することを示す場合にのみ、サブセットに対して追加される。
2020504880.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサが実行する方法であって、前記方法は、
ユーザに向けて送信された電子通信に対する返信に含めるのに考慮する複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、１つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記複数の応答のうちから第１応答を選択する第１応答選択工程と、
前記第１応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第１埋め込みを生成する第１埋め込み生成工程と、
前記候補セットにおける前記複数の応答のうちの第２応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第２埋め込みを生成する第２埋め込み生成工程と、
前記第１埋め込みと前記第２埋め込みとの比較に基づき、前記第２応答が前記第１応答に対して相違基準を満足すると判定する相違基準満足判定工程と、
前記相違基準満足判定工程に基づき、前記選択されたセットに含めるべく前記第２応答を選択する第２応答選択工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する応答提供工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の１つを選択することを可能にする工程と、を備える方法。
【請求項２】
前記プロセッサのうちの１つまたは複数は、前記クライアント装置から離れており、
前記応答提供工程は、コンテンツを前記クライアント装置に送信することで、前記クライアント装置に、前記選択されたセットにおける前記複数の応答を前記インタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を備える請求項１に記載の方法。
【請求項３】
前記選択されたセットにおける前記複数の応答のうちの所与の応答の選択を受信する受信工程であって、前記選択は、前記クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づく工程と、
前記受信工程に応じて前記応答を前記返信の通信に組み入れる工程と、をさらに備える請求項１または２に記載の方法。
【請求項４】
前記ニューラルネットワークレスポンスエンコーダモデルは、ＬＳＴＭ（ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）セルを含む請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記第１埋め込み生成工程は、前記ニューラルネットワークレスポンスエンコーダモデルの前記ＬＳＴＭセルのうちの１つまたは複数のセルの状態を前記埋め込みとして使用する工程を備え、前記状態は、前記第１応答を前記ニューラルネットワークレスポンスエンコーダモデルに適用後の状態である請求項４に記載の方法。
【請求項６】
前記第１埋め込み生成工程は、前記第１応答を適用することに先立ち、前記電子通信の少なくとも一部を前記ニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づき、
前記第２埋め込み生成工程は、前記第２応答を前記ニューラルネットワークレスポンスエンコーダモデルに適用することに先立ち、前記電子通信の少なくとも一部を前記ニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づく請求項４または５に記載の方法。
【請求項７】
前記相違基準満足判定工程は、
前記第１埋め込みと前記第２埋め込みとの間の測定値を算出する工程であって、前記測定値はコサイン類似度測定値、ドット積、またはユークリッド距離である工程と、
前記測定値が閾値を満足すると判定する工程と、を備える請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
複数の応答からなる前記候補セットがランク付けされ、前記第１応答選択工程は、前記第１応答が最上位にランク付けされたことに基づき、前記第１応答を選択する工程を含む請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記候補セットにおける前記複数の応答のうち、前記第１応答に続く次に最上位にランク付けされた応答である追加的応答を識別する工程と、
前記追加的応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、
前記第１埋め込みと前記追加的埋め込みとの比較に基づき、前記追加的応答が前記第１応答に対して前記相違基準を満足しないと判定する工程と、
前記第２応答が前記相違基準を満足しないことに基づき、前記追加的応答を前記選択されたセットから除外する工程と、をさらに備える請求項８に記載の方法。
【請求項１０】
前記第２応答選択工程後に、
前記候補セットにおける前記複数の応答のうちから追加的応答を識別する工程と、
前記追加的応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、
前記追加的応答が前記第１応答および前記第２応答のうちの１つ以上に対して前記相違基準を満足すると判定する工程であって、前記判定は、前記追加的埋め込みと前記第１埋め込みとの比較、および前記追加的埋め込みと前記第２埋め込みとの比較に基づく工程と、
前記第２応答が前記第１応答および前記第２応答のうちの１つまたは両方に対して前記相違基準を満足することに基づき、前記選択されたセットに含めるべく前記追加的応答を選択する工程と、をさらに備える請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
前記応答提供工程は、前記返信電子通信を生成する際に前記クライアント装置を介して提供されるいかなる入力とも無関係に実行される請求項１乃至１０のいずれか一項に記載の方法。
【請求項１２】
１つまたは複数のプロセッサが実行する方法であって、前記方法は、
ユーザに送信された電子通信に対する返信に含めるのに考慮するランク付けされた複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、１つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記複数の応答のうちから第１応答を選択する工程であって、前記第１応答の前記選択は、前記第１応答が前記候補セットにおける前記複数の応答のうちで最上位にランク付けされたことに基づく工程と、
前記候補セットにおける前記複数の応答のうちの複数の残りの応答の各々に対して、１つ以上の条件が満足されるまで、
前記残りの応答の埋め込みベクトルを、前記選択されたセットに含めるべく選択された前記第１応答の第１埋め込みベクトルおよび全ての追加的応答の全ての埋め込みベクトルと比較する工程と、
前記残りの応答を前記選択されたセットに含めるかどうかを前記比較に基づき判定する工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する応答提供工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の１つを選択することを可能にする工程と、を備える方法。
【請求項１３】
前記１つ以上の条件は、閾値量の応答が、前記選択されたセットに含めるべく選択されたことを含む請求項１２に記載の方法。
【請求項１４】
前記プロセッサのうちの１つまたは複数は、前記クライアント装置から離れており、
前記応答提供工程は、コンテンツを前記クライアント装置に送信することで、前記クライアント装置に、前記選択されたセットにおける前記複数の応答を前記インタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を備える請求項１２または１３に記載の方法。
【請求項１５】
前記選択されたセットにおける前記複数の応答のうちの所与の応答の選択を受信する受信工程であって、前記選択は、前記クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づく工程と、
前記受信工程に応じて前記応答を前記返信の通信に組み入れる工程と、をさらに備える請求項１２乃至１４のいずれか一項に記載の方法。
【請求項１６】
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されたメモリと、を備えるシステムであって、
前記１つまたは複数のプロセッサは、前記メモリに記憶された命令を実行することで、
ユーザに向けて送信された電子通信に対する返信に含めるのに考慮する複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、１つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記応答のうちから第１応答を選択する工程と、
前記第１応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第１埋め込みを生成する工程と、
前記候補セットにおける前記複数の応答のうちの第２応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第２埋め込みを生成する生成工程と、
前記第１埋め込みと前記第２埋め込みとの比較に基づき、前記第２応答が前記第１応答に対して相違基準を満足すると判定する相違基準満足判定工程と、
前記相違基準満足判定工程に基づき、前記選択されたセットに含めるべく前記第２応答を選択する工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の１つを選択することを可能にする工程と、を行うように動作可能である、システム。
【請求項１７】
請求項１乃至１５のいずれか一項に記載の方法を実行するよう構成された装置。
【請求項１８】
コンピューティング装置によって実行されると前記コンピューティング装置に請求項１乃至１５のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、電子通信に含める提案としての、意味的に多様な提供用の応答の判定に関する。
【背景技術】
【０００２】
ユーザには、電子メール、ＳＭＳ（ショートメッセージサービス）通信、チャット通信、ソーシャルネットワーキング通信等のネットワーク多数の電子通信がしばしば殺到する。ユーザに送信される多くの電子通信は、明示的に返信を求めるか、またはユーザが返信したいと思い得る情報を含む。例えば、「ちょっとランチでも食べない？」という文言を含む電子メールは、明示的に返信を求め得る。「婚約しました！」という文言を含む電子メールは、明示的には返信を求めていない場合もあるが、この電子メールを受信するユーザは、電子メールに対するお祝いの返信を送信したいと望む場合がある。ユーザは、電子通信に対する返信を考え、考えた返信を、キーボード（例えば、スマートフォンまたはタブレットの仮想キーボード）、マイクロフォン、および／またはクライアント装置の他のユーザインタフェース入力装置を利用してクライアント装置に入力する。
【０００３】
いくつかの状況では、ユーザに送信された電子通信に対する返信である返信電子通信に含める用に、ユーザに対して１つまたは複数の応答を提案することが望ましい場合がある。例えば、「ちょっとランチでも食べない？」というチャットメッセージが、ユーザのクライアント装置に対して送信された場合、受信されたチャットメッセージに応答する返信チャットメッセージに含める用に、ユーザが選択可能な応答を、クライアント装置を介して（例えば、シングルタップまたは他のシングル選択入力で）ユーザに対して提供することが望ましい場合がある。例えば、「もちろん、何時に？」、「ありがとう、でも忙しいんだ」、および「折り返し連絡するよ」等の応答が、「ちょっとランチでも食べない？」という受信されたチャットメッセージに対するコンテクスト上の関連性に基づき、提案として提供されてよい。提供された応答のうちの１つをユーザが選択することにより、返信を作成するためにユーザが行わなければならないユーザ入力の数が減少する。これは、クライアント装置の様々な計算資源の使用を減少させ得て、および／または、あまり器用ではないユーザ（またはそれ以外に、クライアント装置に対してユーザ入力を行うことが困難な者）にとっては特段の利益になり得る。
【０００４】
しかしながら、提案される応答を生成するいくつかの技術は、提案として潜在的に提供され得る多量の候補応答を生成する場合がある。ユーザインタフェースの制約および／または他の理由により、そのような初回提示用の候補応答の全てを、提案としてユーザに対して提供することは望ましくないおよび／または不可能な場合がある。したがって、それらの候補応答のうちのサブセットが、提案として初回提示用にユーザに対して選択されてよい。本明細書に開示される実装は、サブセットの応答中の意味的な多様性を促進するように、そのようなサブセットの選択を目指すものである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願は、電子通信に含める提案としての、意味的に多様な提供用の応答の判定に関する。
【課題を解決するための手段】
【０００６】
これらおよび他の考察に鑑み、本明細書のいくつかの実装は、電子通信に対する返信に含める用の提案として初回提示をユーザに対して提供するための、意味的に多様な候補応答のサブセットを判定することに関する、方法および装置に一般的に係る。これらの実装のいくつかは、複数の候補応答のうちの１つにそれぞれ基づく埋め込みをレスポンスエンコーダモデルを通じて生成することに基づき、意味的に多様な候補応答のサブセットを判定する。所与の候補応答に基づく埋め込みは、サブセットに対してすでに選択された候補応答の埋め込みと比較されてよい。所与の候補応答は、その比較が相違基準を満足することを示す場合にのみ、サブセットに対して追加される。例えば、相違基準は、所与の候補応答とすでに選択された候補応答との間の、意味的な相違の十分な度合いを示す閾値を満たすことであってよい。本明細書において使用されるように、「レスポンスエンコーダモデル」とは、トークン（例えば、応答に含まれる）のシーケンスを処理することにより、そのシーケンスの埋め込みを生成するように使用可能なモデルである。候補応答のトークンは、候補応答に含まれるテキストのトークン（例えば、単語、句）、または候補応答に含まれるグラフィカルトークン（例えば、親指を立てる絵文字もしくはスマイリー絵文字等のシールまたは絵文字）であってよい。例えば、「早く元気になって」の候補応答は、「早く」、「元気」、「に」、および「なって」のテキストのトークンを含む。また、例えば、「待ちきれない（スマイリーフェイス）」の候補応答は、「待ち」および「きれない」のテキストのトークンを含み、かつ、「スマイリーフェイス」のグラフィカルトークンを含む。候補応答のトークンのシーケンスの埋め込みは、トークンのシーケンスの密度表現（すなわち実数値ベクトル）である。様々な実装において、レスポンスエンコーダモデルは、ニューラルネットワークモデルである。
2020504880.tif 000003
意味的に多様な応答のサブセットを、ユーザに対する初回提示用に提案として判定および提供することで、提供される応答のうちの１つが、ユーザの意図する応答の要点を伝えるのに十分である可能性を増加させ得る。結果的に、返信において含める用に提供された応答のうちの１つをユーザが選択する可能性は、増加し得る。上記のように、提供された応答のうちの１つを選択することにより、返信を作成するためにユーザが行わなければならないユーザ入力の数が減少する。これは、クライアント装置の様々な計算資源の使用を減少させ得て、および／または、あまり器用ではないユーザ（またはそれ以外の、クライアント装置に対してユーザ入力を行うことが困難な者）にとっては特段の利益になり得る。
【０００７】
いくつかの実装においては、１つまたは複数のプロセッサが実行する方法が提供され、その方法は、ユーザに向けて送信された電子通信に対する返信に含める用に考慮する複数の応答からなる候補セットを識別する工程を含む。候補セットにおける複数の応答の各々は、１つまたは複数のトークンを含み、および電子通信のコンテンツに基づき判定される。方法は、選択されたセットに含める用に、候補セットにおける複数の応答のうちから第１応答を選択する第１応答選択工程と、第１応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、第１埋め込みを生成する第１埋め込み生成工程と、候補セットにおける複数の応答のうちの第２応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、第２埋め込みを生成する第２埋め込み生成工程と、をさらに含む。方法は、第１埋め込みと第２埋め込みとの比較に基づき、第２応答が第１応答に対して相違基準を満足すると判定する相違基準満足判定工程を含む。方法は、相違基準満足判定工程に基づき、選択されたセットに含める用に第２応答を選択する第２応答選択工程と、ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、選択されたセットにおける複数の応答を提供する応答提供工程とを含む。インタフェースは、電子通信に対するユーザによる返信である返信電子通信に含める用に、選択されたセットにおける複数の応答のうちの任意の１つを選択することを可能にする。
【０００８】
本方法および本明細書に記載される技術の他の実装は、以下の特徴のうちの１つまたは複数をそれぞれ任意で含んでよい。
いくつかの実装においては、プロセッサのうちの１つまたは複数は、クライアント装置から離れており、応答提供工程は、コンテンツをクライアント装置に送信することで、クライアント装置に対して、選択されたセットの応答をインタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を含む。
【０００９】
いくつかの実装においては、方法は、選択されたセットの応答のうちの所与の応答の選択を受信する受信工程と、受信工程に応じて応答を返信通信に組み入れる工程と、をさらに含む。選択は、クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づいてよい。
【００１０】
いくつかの実装においては、ニューラルネットワークレスポンスエンコーダモデルは、ＬＳＴＭ（ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）セルを含む。それらのうちのいくつかの実装においては、第１埋め込み生成工程は、ニューラルネットワークレスポンスエンコーダモデルのＬＳＴＭセルのうちの１つまたは複数のセルの状態を埋め込みとして使用する工程を含み、状態は、第１応答をニューラルネットワークレスポンスエンコーダモデルに適用後の状態である。それらのうちのいくつかの実装においては、第１埋め込み生成工程は、第１応答を適用することに先立ち、電子通信の少なくとも一部をニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づき、第２埋め込み生成工程は、第２応答をニューラルネットワークレスポンスエンコーダモデルに適用することに先立ち、電子通信の少なくとも一部をニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づく。
【００１１】
いくつかの実装においては、相違基準満足判定工程は、第１埋め込みと第２埋め込みとの間の測定値を算出する工程と、測定値が閾値を満足すると判定する工程とを含む。それらのうちのいくつかの実装においては、測定値はコサイン類似度測定値、ドット積、またはユークリッド距離である。
【００１２】
いくつかの実装においては、応答の候補セットがランク付けされ、第１応答選択工程は、第１応答が最上位にランク付けされたことに基づく。それらのうちのいくつかの実装においては、方法は、候補セットの応答の、第１応答に続く次に最上位にランク付けされた応答である追加的応答を識別する工程と、追加的応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、第１埋め込みと追加的埋め込みとの比較に基づき、追加的応答が第１応答に対して相違基準を満足しないと判定する工程と、第２応答が相違基準を満足しないことに基づき、追加的応答を選択されたセットから除外する工程と、をさらに含む。
【００１３】
いくつかの実装においては、方法は、第２応答選択工程後に、候補セットの応答の追加的応答を識別する工程と、追加的応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、追加的応答が第１応答および第２応答のうちの１つ以上に対して相違基準を満足すると判定する工程と、第２応答が第１応答および第２応答のうちの１つまたは両方に対して相違基準を満足することに基づき、選択されたセットに含める用に追加的応答を選択する工程と、をさらに含む。追加的応答が第１応答および第２応答のうちの１つ以上に対して相違基準を満足するとの判定は、追加的埋め込みと第１埋め込みとの比較、および追加的埋め込みと第２埋め込みとの比較に基づいてよい。追加的応答が第１応答および第２応答のうちの１つ以上に対して相違基準を満足するとの判定は、追加的応答が第１応答および第２応答の両方に対して相違基準を満足するとの判定を含んでよい。
【００１４】
いくつかの実装においては、応答提供工程は、返信電子通信を生成する際にクライアント装置を介して提供されるいかなる入力とも無関係に実行される。
いくつかの実装においては、１つまたは複数のプロセッサが実行する方法が提供され、その方法は、ユーザに送信された電子通信に対する返信に含める用に考慮するランク付けされた応答の候補セットを識別する工程を含む。候補セットの応答は、それぞれ１つまたは複数のトークンを含み、および電子通信のコンテンツに基づき判定される。方法は、選択されたセットに含める用に、候補セットの応答の第１応答を選択する工程であって、第１応答が候補セットの応答の最上位にランク付けされたことに基づく工程を含む。方法は、候補セットの応答の複数の残りの応答の各々に対して、１つ以上の条件が満足されるまで、残りの応答の埋め込みベクトルを選択されたセットに含める用に選択された第１応答の第１埋め込みベクトルおよび全ての追加的応答の全ての埋め込みベクトルと比較する工程と、残りの応答を選択されたセットに含むかどうかを比較に基づき判定する工程と、をさらに含む。方法は、ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、選択されたセットの応答を提供する応答提供工程をさらに含む。インタフェースは、電子通信に対するユーザによる返信である返信電子通信に含める用に、選択されたセットの応答のうちの任意の１つを選択することを可能にする。
【００１５】
本方法および本明細書に記載される技術の他の実装は、以下の特徴のうちの１つまたは複数をそれぞれ任意で含んでよい。
いくつかの実装においては、１つ以上の条件は、閾値量の応答が、選択されたセットに含める用に選択されたことを含む。
【００１６】
いくつかの実装においては、プロセッサのうちの１つまたは複数は、クライアント装置から離れており、応答提供工程は、コンテンツをクライアント装置に送信することで、クライアント装置に対して、選択されたセットの応答をインタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を含む。
【００１７】
いくつかの実装においては、方法は選択されたセットの応答のうちの所与の応答の選択を受信する受信工程と、受信工程に応じて応答を返信通信に組み入れる工程と、をさらに備える。
【００１８】
他の実装は、上記の方法のうちの１つまたは複数等の方法を実行するプロセッサによって実行可能な命令を記憶する、１つまたは複数の非一時的なコンピュータ可読記憶媒体を含んでよい。さらに別の実装は、メモリに記憶された命令を実行するよう動作することで、上記の方法のうちの１つまたは複数等の方法を実行するメモリおよび１つまたは複数のプロセッサを含むシステムを含んでよい。
【００１９】
本明細書に詳細に記載される前述の概念および追加的な概念の全ての組み合わせは、本明細書に開示される発明の一部であると考察されることが理解されるべきである。例えば、本開示の終わりに記載される請求項に係る発明の全ての組み合わせは、本明細書に開示される発明の一部であると考察される。
【図面の簡単な説明】
【００２０】
【図１】意味的に多様な応答のセットが、返信電子通信に含める用の提案として判定および提供され得る例示的な環境を説明する図。
【図２】受信された電子通信に基づき、どのように候補応答が判定され得るか、また、その受信された電子通信に対する返信に含める用の提案として提供するために選択される、意味的に多様な候補応答のサブセットの例を説明する図。
【図３】本明細書に開示される実装による、例示的な方法を説明するフローチャート。
【図４】本明細書に開示される実装による、例示的な応答、およびそれらの応答に対して判定され得る最小の類似性スコアを説明する図。
【図５Ａ】受信された電子通信に対する返信に含まれる用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェースを説明する図。
【図５Ｂ】図５Ｂは、受信された電子通信に対する返信に含める用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェースを説明する図。
【図６】コンピューティング装置の例示的なアーキテクチャを説明する図。
【発明を実施するための形態】
【００２１】
図１は、意味的に多様な応答のセットが、返信電子通信に含める用の提案として判定および提供され得る例示的な環境を説明する図。例示的な環境は、その環境における様々な構成要素間の通信を可能にする通信ネットワーク１０１を含む。いくつかの実装においては、通信ネットワーク１０１は、インターネット等のＷＡＮ（広域ネットワーク）、１つまたは複数のイントラネット、および／または１つまたは複数のバスサブシステムを含んでよい。通信ネットワーク１０１は、任意で１つまたは複数の標準的な通信技術、プロトコル、および／またはプロセス間通信技術を利用してよい。
【００２２】
図１の例示的な環境はまた、クライアント装置１０６、電子通信システム１１０、応答システム１２０、１つ以上の電子通信データベース１５２、応答予測モデル１５４、およびレスポンスエンコーダモデル１５６を含む。
【００２３】
電子通信システム１１０および応答システム１２０は、例えばネットワーク（ネットワーク１０１および／または他のネットワーク等）を通じて通信する１つまたは複数のコンピューティング装置によってそれぞれ実装されてよい。電子通信システム１１０および応答システム１２０は、本明細書に記載されるシステム、構成要素、および技術が実装され得る、および／または本明細書に記載されるシステム、構成要素、および技術が相互作用し得る例示的なシステムである。電子通信システム１１０および応答システム１２０は、データおよびソフトウェアアプリケーションの記憶用の１つまたは複数のメモリ、データアクセスおよびアプリケーション実行用の１つまたは複数のプロセッサ、およびネットワークを通じて通信を可能にする他の構成要素をそれぞれ含む。いくつかの実装においては、電子通信システム１１０および応答システム１２０は、図６の例示的なコンピューティング装置の１つまたは複数の構成要素を含んでよい。電子通信システム１１０および応答システム１２０によって実行される演算は、複数のコンピュータシステム間に分散されてよい。いくつかの実装においては、電子通信システム１１０および応答システム１２０の１つまたは複数の態様は、単一のシステムに組み合わされてよく、および／または１つまたは複数の態様はクライアント装置１０６上に実装されてよい。
【００２４】
電子通信データベース１５２は、複数のユーザの電子通信の全てまたは一部を含む、１つまたは複数の記憶媒体を含む。いくつかの実装においては、電子通信データベース１５２は、電子通信システム１１０によって維持される。例えば、電子通信システム１１０は、１つまたは複数の電子メールシステムを含んでよい。電子通信データベース１５２は、電子メールシステムを介して送信および／または受信された複数の電子メールを含んでよい。別の例としては、電子通信システム１１０は、１つまたは複数のソーシャルネットワーキングシステムを含んでよい。また電子通信データベース１５２は、ソーシャルネットワーキングシステムを介して送信および／または受信された複数のメッセージ、投稿、または他の通信を含んでよい。
【００２５】
本明細書において使用されるように、「電子通信」または「通信」は、電子メール、テキストメッセージ（例えばＳＭＳやＭＭＳ）、インスタントメッセージ、録音されたボイスメール、または第１ユーザから１人または複数人の追加的なユーザの限定的なグループに対して送信された任意の他の電子通信を言及し得る。様々な実装において、電子通信は、様々なメタデータを含んでよく、該メタデータは、本明細書に記載される１つまたは複数の技術において任意で利用されてよい。例えば、電子メール等の電子通信は、１つまたは複数の送信者識別子（例えば送信者電子メールアドレス）、１つまたは複数の受信者識別子（例えばｃｃおよびｂｃｃに記載の受信者を含む受信者電子メールアドレス）等の電子通信アドレス、送信日、１つまたは複数の添付、件名、その電子通信を送信および／または受信した装置の種類等を含んでよい。
【００２６】
本明細書において使用されるように、「電子通信」および「通信」は、コンテクストによって、単一の「初回」メッセージのみを含む電子通信、および初回メッセージおよびその初回メッセージに続く１つまたは複数の追加的なメッセージを含む電子通信の両方を指すよう使用される。例えば、電子通信は、第１ユーザからの「初回」メッセージ、および第２ユーザからの返信メッセージである追加的なメッセージを含んでよい。また例えば、電子通信は、第１ユーザからの「初回」メッセージ、および第１ユーザからの追加的なメッセージを含んでよい。したがって、本明細書に記載される候補応答は、単一の初回メッセージのみを含む受信された通信、または初回メッセージおよび１つまたは複数の追加的なメッセージを含む受信された通信に基づき生成されてよい。電子通信は、初回メッセージおよび１つまたは複数の追加的なメッセージの両方を含み、また元のメッセージおよび追加的なメッセージを区別するよう任意で処理され得る電子メール等の単一の文書であってよい。初回メッセージおよび追加的なメッセージを区別するために電子通信を処理することは、メッセージや初回メッセージに関して提供された引用等に含まれるメタデータ、メッセージ区切り、ヘッダ情報の存在に基づきメッセージを「分割」することを含んでよい。電子通信はまた、お互いにマッピングされた複数の文書であってよく、マッピングは、複数の文書のうちの１つ以上が複数の文書のうちの他の文書に対応することに基づく。例えば、電子通信は、ユーザによって受信された元のメッセージである第１電子メールおよびその元のメッセージに対する返信としてユーザによって送信された第２電子メール、または元のおよび返信のＳＭＳメッセージを含んでよい。複数の文書の互いへのマッピングは、例えば電子通信システム１１０によって実行されてよい。例えば、第１電子メールを閲覧し、その後に返信ユーザインタフェース要素を選択することに応じて第２電子メールを作成する場合、電子通信システム１１０は、ユーザが「返信」ユーザインタフェース要素を選択することに基づき、第１電子メールを第２電子メールにマッピングしてよい。
【００２７】
一般に、応答システム１２０は、クライアント装置１０６によって提供される電子通信および／またはユーザがまだ返信していない電子通信データベース１５２の電子通信等の、電子通信に対する返信において含む、提案される応答を判定し提供する。本明細書において記載されるように、応答システム１２０は、電子通信の１つまたは複数のメッセージのフィーチャに基づき応答の候補セットを判定してよく、返信において含む提案として実際に提供するための、候補セットの応答のサブセットを選択してよい。いくつかの実装においては、応答システム１２０は、通信に対する返信を生成する際にユーザによって提供されたいかなるテキスト入力からも独立して、および／または通信に対する返信を生成する際にユーザによって提供されたいかなる他のコンテンツ（例えば、音声入力、グラフィカル要素）からも独立して、応答のサブセットを提案として提供してよい。
【００２８】
様々な実装において、応答システム１２０は、候補応答エンジン１２２、応答選択エンジン１２４、および提示エンジン１２８を含んでよい。応答選択エンジン１２４は、応答埋め込みモジュール１２５および埋め込み比較モジュール１２６を含んでよい。いくつかの実装においては、エンジン１２２、１２４、１２８、および／またはモジュール１２５、１２６のうちの１つまたは複数の態様は、クライアント装置１０６および／または電子通信システム１１０等の応答システム１２０とは別個の構成要素において、省略、組合せ、および／または実装されてよい。
【００２９】
クライアント装置１０６によって提供される電子通信および／またはユーザがまだ返信していない電子通信データベース１５２の電子通信等の、ユーザの電子通信に関して、応答システム１２０の構成要素が以下に記載される。明確性のため、例においては単一の電子通信が参照されるが、応答システム１２０は、ユーザおよび／または追加的なユーザの追加的な電子通信に対して、提案される応答を判定してよいことが理解される。例えば、応答システム１２０は、複数のクライアント装置のうちの各々に対する提案される応答の判定を、異なるセッションを介して管理してよく、また、複数のセッションを平行して管理してよい。例えば、応答システム１２０は、いくつかの実装においては、複数のユーザからの大量のリクエストを扱う適切なソフトウェアを実行する、例えばサーバファームまたは高性能なコンピュータのクラスタを利用するクラウドインフラストラクチャを用いる、クラウドベースのサービスとして実装されてよい。しかしながら、便宜的に、本明細書には、単一のクライアント装置１０６および単一の電子通信に関して、複数の例が記載される。
【００３０】
候補応答エンジン１２２は、１人以上のユーザ（すなわち、コンテンツがユーザに送信された際の電子通信のコンテンツに少なくとも一部基づき）に向けて送信された電子通信に基づき、応答の候補セットを生成する。いくつかの実装においては、候補応答エンジン１２２は、１つまたは複数の応答予測モデル１５４に対して通信のフィーチャを適用することに基づき、応答の候補セットを生成する。
【００３１】
これらの実装のうちのいくつかでは、フィーチャはトークン（例えば、通信からのテキストのトークン、および／またはグラフィカルトークン）を含み、候補応答エンジン１２２はこのトークンを、応答予測モデル１５４のＬＳＴＭ（長短期記憶）ニューラルネットワークモデルに対して適用することで、候補応答を示す出力を生成する。通信から適用されるトークンは、トークンの全て、またはトークンの１つまたは複数のサブセット（例えば、最初の文および／または最後の文、通信の本文のみ、本文の件名、ストップワードが除外された通信の全て）を含んでよい。候補応答エンジン１２２は、その後、出力を使用して、候補応答を判定する。例えば、候補応答エンジン１２２は、トークンを入力として、連続したトークン毎にＬＳＴＭニューラルネットワークモデルに対して適用することで、各々が単語に対する確率分布を示す１つまたは複数の出力をモデルに関して生成してよい。
【００３２】
候補応答エンジン１２２は、ＬＳＴＭニューラルネットワークモデルの出力を利用することで、候補応答のセットを判定し、また候補応答に対してスコアを付与する（そうでない場合はランク付けをする）。いくつかの実装においては、候補応答は、一般的な応答がキュレーションされたリスト等の候補応答のホワイトリストから識別される。いくつかの実装においては、１つまたは複数の候補応答は、追加的にまたは代替的に、制限なくトークン毎に（すなわち、一般的な応答のホワイトリストから識別されずに）生成されてよい。利用される技術に関わらず、候補応答エンジン１２２は、複数（例えば、１０、２０、３０またはそれ以上）の候補応答を識別してよく、また、例えばＬＳＴＭニューラルネットワークモデルに関して生成された出力に基づき候補応答に付与されたスコアに基づき、識別された候補応答を任意でランク付けしてよい。候補応答エンジン１２２は、その候補応答およびランキングを応答選択エンジン１２４に対して通信してよい。候補応答のランキングは、候補応答のスコア、つまり、候補応答（例えば、第１候補応答が最上位にランク付けされ、第２候補応答が次に最上位にランク付けされるリスト）等の順序として送られる。いくつかの実装においては、候補応答エンジン１２２は、Ｘ個までの候補応答を識別し、および／または閾値化を使用することで、ＬＳＴＭニューラルネットワークモデルに関して生成された出力に対する適合性の少なくとも閾値度を有する候補応答のみを識別するだけでよい。
【００３３】
いくつかの実装においては、ＬＳＴＭニューラルネットワークモデルおよび／または１つまたは複数の応答予測モデル１５４のうちの他のモデルは、元のメッセージおよび返信メッセージを含む通信の大量のコーパスに基づき訓練されてよい。例えば、ニューラルネットワークモデルは、それぞれの元のメッセージのフィーチャが与えられる観察された返信メッセージフィーチャの確率を最大化するよう訓練されてよい。
【００３４】
いくつかの実装においては、候補応答エンジン１２２は、候補応答のセットを生成するために追加的なおよび／または代替的な技術を利用してよい。例えば、候補応答エンジン１２２は、ＬＳＴＭニューラルネットワークモデルではない応答予測モデルを利用してよく、電子通信のテキストに加えて、受信された電子通信のフィーチャ等を利用してよい。例えば、候補応答エンジン１２２は、電子通信のテキストに適用される１つまたは複数の自然言語処理タグまたは他のラベルに基づくフィーチャ（例えば、話の一部、固有表現、エンティティの種類、口調）、特に電子通信の件名、最初の文、最後の文、または他の部分において出現するテキストに基づくフィーチャ、電子通信が送信された時刻等の電子通信のメタデータに基づくフィーチャ、電子通信が送信された曜日、受信者の数、電子通信を送信した装置の種類等を利用してよい。
【００３５】
利用される技術に関わらず、候補応答エンジン１２２は、応答選択エンジン１２４に対して候補応答のセットを提供する。いくつかの実装においては、提供される候補応答のセットがランク付けされる。例えば、候補応答は、ランキングに基づき順序付けられ、および／または各々がスコアもしくはそのランキングを示す他の値を含んでよい。これらの実装のうちのいくつかでは、応答選択エンジン１２４は、提案される応答として提示するための提示エンジン１２８に提供する選択されたセットに含める用に最上位にランク付けされる候補応答を選択する。
【００３６】
応答埋め込みモジュール１２５は、１つまたは複数のレスポンスエンコーダモデル１５６を利用して、最上位にランク付けされる候補応答に基づき埋め込みを生成し、また、提供される候補応答のセットの複数の追加的に考慮される候補応答の各々に対する追加的な埋め込みを生成する。いくつかの実装においては、応答埋め込みモジュール１２５は、埋め込みを「ライブ」で（例えば、候補応答エンジン１２２から候補応答を受信することに応じて）生成する。いくつかの実装においては、応答埋め込みモジュール１２５は、追加的にまたは代替的に、埋め込みのうちの１つまたは複数を予め生成してよい（例えば、複数の一般的な候補応答のうちの各々に対予め生成して埋め込みを予め生成する）。
【００３７】
応答に基づく埋め込みは、応答のトークンに基づき判定され、かつ応答のセマンティクスのうちの少なくともいくつかを符号化する値のベクトルである。いくつかの実装においては、埋め込みは、応答に関するものであってよく、また、応答のセマンティクスを表す値のベクトルへ応答が変換されたものであってよい。いくつかの実装においては、埋め込みは応答に基づいてよく、また、応答が候補になる元の通信のコンテクストを考慮してよい。
【００３８】
いくつかの実装においては、応答埋め込みモジュール１２５は、レスポンスエンコーダモデル１５６の訓練されたニューラルネットワークモデルを利用することで、応答に基づき埋め込みを生成する。例えば、応答埋め込みモジュール１２５は、応答を入力としてニューラルネットワークモデルに適用して、入力に基づき、そのモデルを通じて埋め込みを生成してよい。例えば、埋め込みはモデルの最終出力であってよく、あるいは、モデルの隠れた状態から導出されてよい。
【００３９】
一例として、応答埋め込みモジュール１２５は、ＬＳＴＭニューラルネットワークモデルに基づき、応答の埋め込みを生成してよい。これらの実装のうちのいくつかでは、ＬＳＴＭニューラルネットワークモデルは、候補応答エンジン１２２によって任意で利用される上記のものと任意で同一であってよい。例えば、応答埋め込みモジュール１２５は、応答を入力として、トークン毎に連続的にＬＳＴＭニューラルネットワークモデルに対して適用することで、応答のベクトル表示をＬＳＴＭニューラルネットワークモデルの隠れ層に生成し、またその応答のベクトル表示を応答の埋め込みとして利用してよい。別の例として、応答埋め込みモジュール１２５は、ＧｌｏＶＥ埋め込みモデルおよび／またはＷｏｒｄ２Ｖｅｃ埋め込みモデルのように、トークンの埋め込みを（隠れ層に、または最終出力として）生成する他のニューラルネットワークモデルを追加的にまたは代替的に利用してよい。
【００４０】
上記のように、いくつかの実装では、応答埋め込みモジュール１２５は任意で、応答に基づき埋め込みを生成してよく、また、応答が候補である通信のコンテクストを考慮してよい。例えば、応答埋め込みモジュール１２５は、初めに通信からトークン（例えば、すべてのトークンまたはサブセット）を入力としてＬＳＴＭニューラルネットワークモデルに対して適用し、その後、応答を適用し、結果のベクトル表示を応答の埋め込みとして隠れ層において利用してよい。これは、埋め込みにおいて通信の態様を効果的に符号化し、応答のセマンティクスを含む埋め込みを通信に考慮してもたらし得る。例えば、「はい！」という埋め込みは、元の通信のコンテクストによって、「受信した」または「理解した」を意味し得る。「了解！」という応答と併せて所与の通信のフィーチャを適用することによって、元のメッセージのコンテクストにおける応答のセマンティクスをより正確に伝える埋め込みが生成され得る。例えば、「私のメッセージを受け取った？」という元の通信テキストを最初に適用した場合の「はい！」という埋め込みは、「いいえ、ミーティンはグ明日です」という元の通信テキストを最初に適用した場合の「はい！」という埋め込みとは非常に異なり得る。
【００４１】
埋め込み比較モジュール１２６は、各考慮された候補応答の埋め込みを、すでにサブセット用に選択された候補応答の埋め込みと比較し、相違基準が満足されることを比較が示す場合にのみ、候補応答を該サブセットに対して追加する。例えば、最上位にランク付けされた候補応答のみが、サブセットに含める用にこれまでに選択されていると仮定する。埋め込み比較モジュール１２６は、下位にランク付けされる候補応答の埋め込みを、最上位にランク付けされた候補応答の埋め込みと比較して、その比較が、２つの埋め込み間の意味的な相違の少なくとも閾値度を示す場合のみ、下位にランク付けされた候補応答をサブセットに含める用に選択してよい。例えば、埋め込み比較モジュール１２６は、２つの埋め込み間のコサイン類似度を算出し、２つの埋め込み間のユークリッド距離を算出し、および／または２つの埋め込みのドット積を算出し、かつコサイン類似度、ユークリッド距離、および／またはドット積を相違基準閾値と比較してよい。相違基準閾値が満足される場合、埋め込み比較モジュール１２６は、下位にランク付けされる候補応答をサブセットに追加する。そうでない場合は、埋め込み比較モジュール１２６は、下位にランク付けされる候補応答をサブセットに追加しない。
【００４２】
埋め込み比較モジュール１２６は、サブセットに対して候補応答が閾値量まで選択されるまで、考慮する候補応答が残らなくなるまで、および／または他の条件が満足されるまで、この処理を繰り返してよい。応答選択エンジン１２２はその後、候補応答の選択されたサブセットを、提示エンジン１２８に対して提供する。応答選択エンジン１２４のいくつかの実装の追加的な説明は、図３の方法を参照に以下に述べられる。
【００４３】
提示エンジン１２８は、電子通信に対するユーザによる返信である返信電子通信に含める用の候補応答の選択されたサブセットを提供する。例えば、提示エンジン１２８は、選択されたサブセットの応答についての１つまたは複数のユーザインタフェース表示（例えば、画像、音響）を提示してよい。返信を作成するユーザが表示のうちの１つを選択した場合、対応する応答が自動的に返信に組み入れられてよい。返信はその後、自動的に送信および／またはさらなるユーザのユーザインタフェース入力に応じて（ユーザが追加的コンテンツを返信に追加した後に任意で）送信されてよい。選択された応答を返信メッセージにこのように自動的に組み入れることで、ユーザが選択された応答を手動で入力することが省かれ、また、応答を含む返信メッセージを作成するために必要な複数のユーザ対話ステップおよび対応する入力が省かれる。
【００４４】
いくつかの実装においては、提示エンジン１２８は、いかなる入力および／または電子通信に対する返信を生成する際にユーザのコンピューティング装置を介して提供される他のコンテンツとも無関係に、応答を提供する。これらの実装のうちのいくつかでは、応答のサブセットは、ユーザが通信を閲覧または他の方法で消費する前に、応答選択エンジン１２４によって選択されてよい。例えば、候補応答エンジン１２２および応答選択エンジン１２４は、ユーザによる閲覧の前に通信を処理してよい。そして提示エンジン１２８は、選択された応答を、ユーザによって閲覧される前に電子通信に対して付加または他の方法で関連付けする。したがって、ユーザが電子通信を閲覧または他の方法で消費する場合、電子通信に対して提案される応答は、遅延なく速やかに提供され得る。
【００４５】
クライアント装置１０６によって応答システム１２０に対して電子通信が提供されるいくつかの実装においては、提示エンジン１２８は、応答の選択されたサブセットを、返信に含める用のオプションとしユーザに提示するためのクライアント装置１０６に対して提供してよい。電子通信データベース１５２を介して電子通信システム１１０によって応答システム１２０に対して電子通信が提供されるいくつかの実装においては、提示エンジン１２８は、応答の選択されたサブセットと電子通信との関連性を電子通信データベース１５２および／または他のデータベースに記憶してよい。いくつかの実装においては、提示エンジン１２８の１つまたは複数の（例えば全て）態様は、クライアント装置１０６および／または電子通信システム１１０によって実装されてよい。
【００４６】
提示エンジン１２８はまた、それらの応答が共に提示されるべきプロミネンス（例えば位置、大きさ、色）を示す表示プロミネンス情報を、応答の選択されたサブセットと共に提供してよい。一般に、特定の応答のランキングが上位になるにつれて、その応答のプロミネンスは大きくなる。一例として、応答埋め込みモジュール１２５によって判定されるオプショナルなランキングが利用されることで、選択されたサブセットの応答のランキングを判定してよい。
【００４７】
いくつかの実装においては、提示エンジン１２８は、応答の選択されたサブセット（または関連付けられた識別子）のみ、および潜在的にプロミネンス情報を提供してよい。クライアント装置１０６および／または電子通信システム１１０は、提供されたデータに基づいて、選択された文書の表示を生成してよい。いくつかの実装においては、提示エンジン１２８は、表示を生成するために必要なデータのうちのいくつかまたは全てを追加的に提供してよい。これらの実装のうちのいくつかでは、任意の提供されたプロミネンス情報が、表示がどのように提示されるべきかを示すデータに組み入れられてよい。
【００４８】
図２は、受信された電子通信に基づき、どのように候補応答が判定され得るか、また、その受信された電子通信に対する返信に含める用の提案として提供するために選択される、意味的に多様な候補応答のサブセットの例を説明する。
【００４９】
図２において、候補応答エンジン１２２は、１つまたは複数の応答予測モデル１５４を利用して、候補応答１５３のセットを判定する。電子通信１５２Ａは、例えば、図１のクライアント装置１０６または電子通信システム１１０によって提供され得る。
【００５０】
候補応答エンジン１２２は、候補応答１５３のセットを応答選択エンジン１２４に対して提供する。応答選択エンジン１２４は、１つまたは複数のレスポンスエンコーダモデル１５６を利用して、電子通信１５２Ａに対する応答において提案として提示するための候補応答１５３のサブセットを選択する。本明細書において記載されるように、応答選択エンジン１２４は、レスポンスエンコーダモデル１５６を利用することで、候補応答１５３のセットの候補応答の埋め込みを生成してく、また、その埋め込みを使用することで、候補応答１５３のセットの意味的に多様なサブセットを選択してよい。応答選択エンジン１２４は、選択された応答１５５を提示エンジン１２８に対して提供する。
【００５１】
提示エンジン１２８は、電子通信１５２Ａに対する返信である返信電子通信に含める用の選択された応答１５５を提供する。
図３は、本明細書に開示される実装による、例示的な方法を説明するフローチャート。便宜上、フローチャートの演算は、演算を実行するシステムを参照して記載される。本システムは、様々なコンピュータシステムの様々な構成要素を含んでよい。例えば、いくつかの演算は、応答選択エンジン１２４によって実行されてよい。さらに、図３の方法の演算は特定の順番で示されるが、限定的であることを意味しない。１つまたは複数の演算が並び替えされ、除外され、または追加されてよい。
【００５２】
ブロック３００において、システムは、電子通信に対する返信において考慮する複数の候補応答を受信する。例えば、システムは、候補応答が電子通信にコンテクスト的に関連するように、電子通信のフィーチャに基づき候補応答を生成する候補応答エンジンから候補応答を受信してよい。
【００５３】
ブロック３０２において、システムは、選択されたセットに含める用に複数の候補応答のうちの１つを選択する。例えば、ブロック３００で受信された複数の候補応答はランク付けされてよく、システムは、最上位にランク付けされた候補応答を選択されたセットにおいて含める用に選択してよい。
【００５４】
ブロック３０４において、システムは、ブロック３０２で選択された応答に基づき埋め込みを生成する。例えば、システムは、選択された応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、埋め込みを生成してよい。ＬＳＴＭニューラルネットワークモデル等、様々なレスポンスエンコーダモデルが利用されてよい。さらに、埋め込みは、モデルの「最終」出力として生成されてよく、またはモデルの隠れた状態の一部に基づき（例えば、応答の適用後のＬＳＴＭの状態に基づき）生成されてよい。いくつかの実装においては、ブロック３０４において、システムは、ブロック３０２で選択された応答に基づき、および候補応答が生成される電子通信の１つまたは複数のフィーチャに基づき、埋め込みを生成する。これは、埋め込みにおいて電子通信の態様を効果的に符号化し、選択された応答のセマンティクスを含む埋め込みを電子通信に考慮してもたらし得る。
【００５５】
ブロック３０６において、システムは、ブロック３００で受信された複数の候補応答のうちから追加的な候補応答を識別する。例えば、ブロック３００で受信された複数の候補応答がランク付けされてよく、システムは、次に最上位にランク付けされた候補応答を識別してよい。
【００５６】
ブロック３０８において、システムは、ブロック３０６で識別された追加的な応答に基づき、埋め込みを生成する。例えば、システムは、識別された追加的な応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ブロック３０４において使用されたニューラルネットワークレスポンスエンコーダモデルを通じて、埋め込みを生成してよい。いくつかの実装においては、ブロック３０８において、システムは、ブロック３０６で識別された追加的な応答に基づき、および候補応答が生成される電子通信の１つまたは複数のフィーチャに基づき、埋め込みを生成する。これは、埋め込みにおいて電子通信の態様を効果的に符号化し、識別された追加的な応答のセマンティクスを含む埋め込みを電子通信に考慮してもたらし得る。
【００５７】
ブロック３１０において、システムは、ブロック３０６で識別された追加的な応答が、選択されたセットにおいて含まれる１つ以上の応答に対して１つまたは複数の相違基準を満足するかどうかを判定する。ブロック３１０の１回または複数回の最初の実行においては、識別された追加的な応答が、ブロック３０２で選択された候補応答に対して相違基準を満足するかどうかの判定を含む。ブロック３１４（下記）において、追加的な候補応答が選択されたセットに含まれた後、ブロック３１０は、識別された追加的な応答が、ブロック３０２で選択された候補応答と、ブロック３１４の１回または複数回の実行における選択されたセット３１４に含まれる追加的な候補応答とに対して相違基準を満足するかどうかの判定を含んでよい。
【００５８】
ブロック３１０は、システムがブロック３０６で識別された追加的な応答の埋め込みと、選択されたセットにおける１つ以上の応答の埋め込みとを比較するブロック３１１を含んでよい。ブロック３１１の１回または複数回の最初の実行においては、識別された追加的な応答の埋め込みを、ブロック３０２で選択された候補応答の埋め込みと比較することを含む。ブロック３１４（下記）において、追加的な候補応答が選択されたセットに含まれた後、ブロック３１１は、識別された追加的な応答の埋め込みを、ブロック３０２で選択された候補応答の埋め込みと、ブロック３１４の１回または複数回の実行における選択されたセット３１４に含まれる１つ以上の候補応答の追加的な埋め込みと比較することを含んでよい。いくつかの実装においては、２つの埋め込みを比較する際に、システムは、２つの埋め込み間のコサイン類似度を算出し、２つの埋め込み間のユークリッド距離を算出し、および／または２つの埋め込みのドット積を算出する。
【００５９】
ブロック３１０がブロック３１１を含む場合、相違基準が満足されるかの判定は、ブロック３１１での比較に基づいてよい。例えば、識別された追加的な候補応答の埋め込みと、選択されたセットにおける１つ以上の応答との間のコサイン類似度測定値は、相違基準閾値とそれぞれ比較されてよい。コサイン類似度測定値がそれぞれ相違基準閾値を満足する場合、識別された追加的な候補応答は相違基準を満足すると判定されてよい。そうでない場合、識別された追加的な候補応答は、相違基準を満足しない（すなわち、いずれかのコサイン類似度測定値が相違基準閾値を満足しない場合）と判定されてよい。
【００６０】
ブロック３１２において、システムは、ブロック３１０の直近の実行において相違基準が満足されたかどうかを判定する。満足されない場合は、システムは、ブロック３０６に戻り、さらに別の追加的な候補応答を識別し、識別された追加的な候補応答に基づきブロック３０８および３１０を実行する。
【００６１】
ブロック３１２において、相違基準が満足されたとシステムが判定する場合、システムはブロック３１４に進む。ブロック３１４において、識別された追加的な候補応答は、選択されたセットに含める用に選択される。システムはその後、ブロック３１６に進む。
【００６２】
ブロック３１６で、システムは、選択されたセットに含める用に閾値数の応答が選択されたかどうかを判定する。様々な閾値数が利用されてよく、応答が提案として提供されるクライアント装置の特徴に任意で基づいてよい。例えば、モバイル電話クライアント装置に対する閾値数は３でよいが、デスクトップクライアント装置に対する閾値数は５でよい。
【００６３】
ブロック３１６において、閾値数の応答が選択されたとシステムが判定する場合は、システムはブロック３１８に進み、提示するため（例えば、可聴的におよび／またはグラフィカルインタフェースにおける表示のため）の選択された応答を、ブロック３００の候補応答が生成された電子通信に対する返信である返信電子通信において含める用に提案として提供する。ブロック３１８は、クライアント装置上での提示のために、選択された応答を即時的に提供することを含んでよく、または後で提供するために電子通信に関連して応答を記憶すること（例えば、ユーザが電子通信を最初に閲覧するまたは他の方法で最初に消費することに応じて提供すること）を含んでよい。いくつかの実装においては、システムは、他の条件が満足されることに応じてブロック３１８に進んでよく、それら他の条件はブロック３１６の条件に追加または代替されてよい。例えば、システムは、処理する候補応答が残っていないとの判定に応じて、閾値数の候補応答が処理されたとの判定に応じて、および／またはタイムアウト条件に応じて、ブロック３１８に進んでよい。
【００６４】
ブロック３１６において、閾値数の応答が選択されていないとシステムが判定した場合は、システムはブロック３０６に戻り、さらに別の追加的な候補応答を識別し、その識別された追加的な候補応答に基づき、ブロック３０８および３１０を実行する。
【００６５】
図３の方法の１つの非限定的な例が図４を参照して提供される。図４の左のコラムに表示された候補応答の部分的なリストは、ブロック３００で受信されたものであってよく、「具合が悪くて行けない」という電子通信に対する候補応答として生成されてよい。さらに、図４のリストは、図４において現れる順位で示されるランキングと共に受信されてよい（すなわち、「早く元気になって！」が最上位にランク付けされ、次に「早く元気になって。」等が続く）。
【００６６】
ブロック３０２において、システムは、「早く元気になって！」が最上位にランク付けされたことに基づき、「早く元気になって！」を選択してよい。選択は、図４において「早く元気になって！」が太字になっていることで示される。ブロック３０４において、システムは、「早く元気になって！」に基づき埋め込みを生成する。ブロック３０６の最初の実行において、システムは、「早く元気になって。」が次に最上位にランク付けされたことに基づき、「早く元気になって。」を選択する。ブロック３０８の最初の実行において、システムは、「早く元気になって。」に基づき埋め込みを生成する。ブロック３１０のブロック３１１において、システムは、２つの埋め込みの比較に基づき、「０．００」のコサイン類似度測定値を生成する。「０．００」のコサイン類似度測定値は、２つの埋め込みが意味的に同一であること（例えば、句読点「。」および「？」は、埋め込みを生成する際には無視してよい）を示す。ブロック３１０において、システムは、「０．００」の測定値を相違基準閾値（例えば３．５０）とさらに比較し、相違基準閾値が満足されないと判定してよい。
【００６７】
相違基準が満足されないことに基づき、システムはブロック３１２からブロック３０６に戻る。ブロック３０６の次の実行において、システムは、「早く元気になりますように。」が次に最上位にランク付けされたことに基づき、「早く元気になりますように。」を選択する。ブロック３０８の次の実行において、システムは、「早く元気になりますように。」に基づき埋め込みを生成する。ブロック３１０のブロック３１１において、システムは、２つの埋め込みの比較に基づき、「１．２４」のコサイン類似度測定値を生成する。「１．２４」のコサイン類似度測定値は、２つの埋め込み間の意味的な類似性の度数を示す。ブロック３１０において、システムは、「１．２４」の測定値を相違基準閾値（例えば３．５０）とさらに比較し、相違基準閾値が満足されないと判定してよい。相違基準が満足されないことに基づき、システムはブロック３１２からブロック３０６に戻る。
【００６８】
システムは、「私に教えてくれてありがと。」という候補応答が考慮されるまで、ブロック３０６、３０８、３１０、および３１２の実行を継続する。図４におけるその候補応答に記載された「５．６５」の類似性スコア（および図４におけるその候補応答の太字処理）に示されるように、閾値が満足される。したがって、その候補応答が考慮されるブロック３１２の実行の際、システムはブロック３１４に進み、「私に教えてくれてありがと。」を選択されたセットに追加する。システムはその後、ブロック３１６に進む。ブロック３１６において、閾値数は３であってよく、したがって、システムは、ブロック３０６の別の実行に進み、「うわー！お大事に！」が次に最上位にランク付けされたことに基づき、「うわー！お大事に！」を選択してよい。ブロック３０８の実行において、システムは「うわー！お大事に！」に基づき埋め込みを生成する。ブロック３１０のブロック３１１において、システムは、「３．１６」のコサイン類似度測定値を生成する。図４に記載される生成された「３．１６」のコサイン類似度測定値は、生成された２つの別個のコサイン類似度測定値のうちで最小値である。特に、第１のコサイン類似度測定値は、「うわー！お大事に！」に対する埋め込みを「早く元気になって！」に対する埋め込みと比較することに基づき生成されてよい。第２のコサイン類似度測定値は、「うわー！お大事に！」に対する埋め込みを「私に教えてくれてありがと。」に対する埋め込みと比較することに基づき生成されてよい（選択されたセットの一部を形成するため）。ブロック３１０において、システムは、「３．１６」の測定値を相違基準閾値（例えば３．５０）とさらに比較し、相違基準閾値が満足されないと判定してよい。相違基準が満足されないことに基づき、システムはブロック３１２からブロック３０６に戻る。
【００６９】
システムは、「どうしたの？」という候補応答が考慮されるまで、ブロック３０６、３０８、３１０、および３１２の実行をさらに継続する。図４におけるその候補応答に記載された「７．６０」の類似性スコア（および図４におけるその候補応答の太字処理）に示されるように、閾値が満足される。したがって、ブロック３１４の対応する実行において、セットに含める用に選択されてよい。さらに、ブロック３１６の閾値数が３の場合、図３の方法は、ブロック３１６の対応する実行の際、ブロック３１８に進んでよい（「私たちに教えてくれてありがとう。」以降の候補応答および図４の省略で示される他の以降の候補応答を処理しない）。
【００７０】
いくつかの実装では、１つまたは複数の埋め込み（例えばブロック３０４および／またはブロック３０８の１回または複数回の実行において）の生成は、埋め込みの算出を「ライブ」で実行する代わりに、「前もって算出され」、それらの前もって算出された埋め込みが、それらの実行において利用されてよいことに留意されたい。
【００７１】
図５Ａおよび図５Ｂは、受信された電子通信に対する返信に含める用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェース５００Ａおよび５００Ｂをそれぞれ説明する。グラフィカルユーザインタフェース５００Ａおよび５００Ｂは、クライアント装置１０６（例えばクライアント装置１０６において実行されるブラウザ中および／またはクライアント装置１０６において実行される専用の電子通信アプリケーション中）において提示されてよい。
【００７２】
図５Ａにおいて、ユーザに対して送信された元の電子メール５８０Ａは、元の電子メール５８０Ａに対して返信したいとの望みを示すユーザインタフェース入力をユーザが提供する前に、ユーザによって閲覧される。選択された応答５９１Ａ、５９２Ａ、および５９３Ａは、グラフィカルユーザインタフェース５００Ａにおいて提示され、また電子メールに対する返信に含める用に提示される。例えば、応答５９１Ａのユーザ選択によって、返信電子メールに自動的に組み入れられた「ぜひ！」というテキストを含む編集可能な返信電子メールをユーザに対して自動的に提示してよい。またはそのような返信電子メールを自動的に生成して送信（編集可能なバージョンをユーザに最初に提示することなく）してよい。応答のユーザ選択は、例えばシングル「タップ」、シングル「マウスクリック」等の単一のユーザインタフェース入力であってよい。図５Ａにおいては、提示された応答は全てお互いに意味的に多様であり、また本明細書に記載された技術によって選択されてよいことに留意されたい。
【００７３】
図５Ｂにおいて、ユーザに対して送信された元のチャットメッセージ５８０Ｂは、ユーザが元のチャットメッセージ５８０Ｂに対する返信に含める用のコンテンツを提供する前に（例えば、おそらくユーザが「返信」インタフェース要素を選択する後、ただしユーザが返信について何か「タイプする」前に）、ユーザによって閲覧される。選択された応答５９１Ｂ、５９２Ｂ、および５９３Ｂは、グラフィカルユーザインタフェース５００Ｂにおいて提示され、また元のチャットメッセージ５８０Ｂに対する返信に含める用に提示される。例えば、応答５９３Ｂのユーザ選択によって、返信に自動的に組み入れられた「どうしたの？」というテキストを含む編集可能な返信チャットメッセージをユーザに対して自動的に提示してよい。またはそのような返信チャットメッセージを自動的に生成して送信（編集可能なバージョンをユーザに最初に提示することなく）してよい。図５Ｂにおいては、提示された応答は全てお互いに意味的に多様であり、また本明細書に記載された技術によって選択されてよいことに留意されたい。
【００７４】
グラフィカルインタフェースの例が図５Ａおよび５Ｂに提示されたが、応答は、クライアント装置を介して可聴的にユーザに対して提示するために追加的にまたは代替的に提供されてよいことが理解される。例えば、クライアント装置１０６は、受信された電子通信を可聴的に「読み上げ」て、その後、「ぜひと応答するにはＡと言ってください、何時と応答するにはＢと言ってください、ごめん行けないと応答するにはＣと言ってください」ということを可聴的に提供してよい。可聴的提供の間または後の、口頭でのＡ、Ｂ、またはＣのユーザインタフェース入力に応じて、クライアント装置１０６は対応する返信を生成および送信してよい。
【００７５】
本明細書に記載されるシステムがユーザについての個人情報を収集する、または個人情報を利用し得る状況では、プログラムまたはフィーチャがユーザ情報（例えば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の地理的な位置についての情報）を収集するかどうかを管理する機会、またはユーザにより関連し得るコンテンツサーバからコンテンツを受信するかどうかおよび／もしくはどのように受信するかを管理する機会がユーザに対して提供されてよい。さらに、あるデータは、個人識別が可能な情報が削除されるように、記憶または使用される前に１つまたは複数の方法で処理されてよい。例えば、ユーザのアイデンティティは、個人識別が可能な情報がユーザに判定されないように処理される。つまり、ユーザの地理的な位置は、地理的な位置情報が取得されるよう（例えば都市、郵便番号、または州レベルで）一般化されるため、ユーザの特定の地理的な位置が判定されない。したがって、ユーザは、ユーザに関して情報がどのように収集されるかおよび／または使用されるかの管理をしてよい。
【００７６】
図６は例示的なコンピューティング装置６１０のブロック図である。コンピューティング装置６１０は、バスサブシステム６１２を介して複数の周辺装置と通信をする１つ以上のプロセッサ６１４を一般的に含む。これらの周辺装置は、例えば、メモリサブシステム６２５およびファイル記憶サブシステム６２６を含む記憶サブシステム６２４、ユーザインタフェース出力装置６２０、ユーザインタフェース入力装置６２２、およびネットワークインタフェースサブシステム６１６を含んでよい。入力および出力装置は、コンピューティング装置６１０とのユーザ対話を可能にする。ネットワークインタフェースサブシステム６１６は、外部ネットワークに対してインタフェースを提供し、また他のコンピューティング装置中の対応するインタフェース装置に接続されている。
【００７７】
ユーザインタフェース入力装置６２２は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックスタブレット等のポインティング装置、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム等のオーディオ入力装置、マイクロフォン、および／または他の種類の入力装置を含んでよい。一般に、「入力装置」という用語の使用は、全ての可能な種類の装置および、コンピューティング装置６１０に対してまたは通信ネットワーク上に情報を入力する方法を含むよう意図されている。
【００７８】
ユーザインタフェース出力装置６２０は、ディスプレイサブシステム、プリンタ、ｆａｘ装置、またはオーディオ出力装置等の非視覚的ディスプレイを含んでよい。ディスプレイサブシステムは、ＣＲＴ（陰極線管）、ＬＣＤ（液晶ディスプレイ）等のフラットパネル装置、プロジェクション装置、または可視画像を作成する何か他の機械を含んでよい。ディスプレイサブシステムは、例えばオーディオ出力装置を介して、非視覚的ディスプレイを提供してよい。一般に、「出力装置」という用語の使用は、全ての可能な種類の装置および、コンピューティング装置６１０からユーザまたは別の機械もしくはコンピューティング装置に対して情報を出力する方法を含むよう意図されている。
【００７９】
記憶サブシステム６２４は、本明細書に記載されたモジュールのうちのいくつかのまたは全ての機能を提供するプログラムおよびデータ構造を記憶する。例えば、記憶サブシステム６２４は、図３の方法の選択された態様を実行するロジックを含んでよい。
【００８０】
これらのソフトウェアモジュールは、一般的にプロセッサ６１７単独でまたは他のプロセッサと組み合わせで実行される。記憶サブシステムにおいて使用されるメモリ６２５は、プログラム実行中の命令およびデータ記憶用のメインのＲＡＭ（ランダムアクセスメモリ）６３０と、固定的な命令が記憶されるＲＯＭ（リードオンリーメモリ）６３２含む複数のメモリを含んでよい。ファイル記憶サブシステム６２６は、プログラムおよびデータファイル用の固定記憶を提供してよく、ハードディスクドライブ、関連するリムーバブルなメディアと併用するフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、光学式ドライブ、またはリムーバブルメディアカートリッジを含んでよい。ある実装の機能を実装するモジュールは、ファイル記憶サブシステム６２６によって、記憶サブシステム６２７にまたはプロセッサ６１７がアクセス可能な他の機械に記憶されてよい。
【００８１】
バスサブシステム６１２は、コンピューティング装置６１０の様々な構成要素およびサブシステムが意図されたように互いに通信可能な機構を提供する。バスサブシステム６１２は単一のバスとして模式的に示されているが、バスサブシステムの代替的実装は複数のバスを使用してよい。
【００８２】
コンピューティング装置６１０は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティング装置を含む異なる種類であってよい。コンピュータおよびネットワークの変わり続ける性質のため、図６に示されるコンピューティング装置６１０の記載は、いくつかの実装を説明するために特定の例であることのみが意図される。図６に示されるコンピューティング装置よりも多くまたは少なく構成要素を有する、コンピューティング装置６１０の複数の他の構成が可能である。
【００８３】
複数の実装が本明細書に記載されかつ示されたが、機能を実行するためのおよび／または結果および／または１つまたは複数の本明細書に記載された効果を取得するための様々な他の手段および／または構成が利用されてよく、そのような各変形例および／または変更は、本明細書に記載された実装の範囲内であると見なされる。より一般的には、本明細書に記載された全てのパラメータ、寸法、材料、構成は、例示的であるよう意図されており、実際のパラメータ、寸法、材料および／または構成は、特定の適用または開示が使用される適用に依存する。当事者は、通常の実験を利用するだけで、本明細書に記載された特定の実装についての多くの同等物を認識または確認することが可能であろう。したがって、上記の実装は、単に例として提示されていることが理解され、また、本明細書に添付された特許請求および同等物の範囲内で、具体的に記載および請求されたものとは別の方法で実装が実施されてよいことが理解される。本開示の実装は、本明細書に記載された各個別の特徴、システム、物品、キット、材料、および／または方法に係る。加えて、そのような特徴、システム、物品、材料、キット、および／または方法の２つ以上の任意の組み合わせは、そのような特徴、システム、物品、材料、キット、および／または方法が互いに矛盾しない場合には、本開示の範囲内に含まれる。
【図１】
2020504880.tif 000004
【図２】
2020504880.tif 000005
【図３】
2020504880.tif 000006
【図４】
2020504880.tif 000007
【図５Ａ】
2020504880.tif 000008
【図５Ｂ】
2020504880.tif 000009
【図６】
2020504880.tif 000010
【国際調査報告】
2020504880.tif 000011
2020504880.tif 000012