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

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

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

特許7044788電子通信に含める提案としての、意味的に多様な提供用の応答の判定
<>
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図1
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図2
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図3
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図4
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図5A
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図5B
  • 特許-電子通信に含める提案としての、意味的に多様な提供用の応答の判定 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-22
(45)【発行日】2022-03-30
(54)【発明の名称】電子通信に含める提案としての、意味的に多様な提供用の応答の判定
(51)【国際特許分類】
   G06F 40/56 20200101AFI20220323BHJP
   H04L 51/00 20220101ALI20220323BHJP
【FI】
G06F40/56
H04L51/00
【請求項の数】 17
(21)【出願番号】P 2019535787
(86)(22)【出願日】2017-09-27
(65)【公表番号】
(43)【公表日】2020-02-13
(86)【国際出願番号】 US2017053658
(87)【国際公開番号】W WO2018125340
(87)【国際公開日】2018-07-05
【審査請求日】2019-08-23
(31)【優先権主張番号】15/394,869
(32)【優先日】2016-12-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】カウフマン、トビアス
(72)【発明者】
【氏名】カナン、アンジュリ
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2014-134903(JP,A)
【文献】米国特許出願公開第2016/0306800(US,A1)
【文献】米国特許出願公開第2016/0308794(US,A1)
【文献】ANJULI KANNAN 外10名,Smart Reply: Automated Response Suggestion for Email,KDD'16 Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,米国,ACM,2016年08月13日,pp.955-964,DOI:10.1145/2939672.2939801
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
G06F 16/00-958
H04L 51/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサが実行する方法であって、前記方法は、
ユーザに向けて送信された電子通信に対する返信に含めるのに考慮する複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、1つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記複数の応答のうちから第1応答を選択する第1応答選択工程と、
前記第1応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第1埋め込みを生成する第1埋め込み生成工程であって、前記第1埋め込みは、前記第1応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記候補セットにおける前記複数の応答のうちの第2応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第2埋め込みを生成する第2埋め込み生成工程であって、前記第2埋め込みは、前記第2応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記第1埋め込みと前記第2埋め込みとの比較に基づき、前記第2応答が前記第1応答に対して相違基準を満足すると判定する相違基準満足判定工程と、
前記相違基準満足判定工程に基づき、前記選択されたセットに含めるべく前記第2応答を選択する第2応答選択工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する応答提供工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の1つを選択することを可能にする工程と、を備える方法。
【請求項2】
前記プロセッサのうちの1つまたは複数は、前記クライアント装置から離れており、
前記応答提供工程は、コンテンツを前記クライアント装置に送信することで、前記クライアント装置に、前記選択されたセットにおける前記複数の応答を前記インタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を備える請求項1に記載の方法。
【請求項3】
前記選択されたセットにおける前記複数の応答のうちの所与の応答の選択を受信する受信工程であって、前記選択は、前記クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づく工程と、
前記受信工程に応じて前記応答を前記返信の通信に組み入れる工程と、をさらに備える請求項1または2に記載の方法。
【請求項4】
前記ニューラルネットワークレスポンスエンコーダモデルは、LSTM(long short-term memory)セルを含む請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記第1埋め込み生成工程は、前記ニューラルネットワークレスポンスエンコーダモデルの前記LSTMセルのうちの1つまたは複数のセルの状態を前記埋め込みとして使用する工程を備え、前記状態は、前記第1応答を前記ニューラルネットワークレスポンスエンコーダモデルに適用後の状態である請求項4に記載の方法。
【請求項6】
前記第1埋め込み生成工程は、前記第1応答を適用することに先立ち、前記電子通信の少なくとも一部を前記ニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づき、
前記第2埋め込み生成工程は、前記第2応答を前記ニューラルネットワークレスポンスエンコーダモデルに適用することに先立ち、前記電子通信の少なくとも一部を前記ニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づく請求項4または5に記載の方法。
【請求項7】
前記相違基準満足判定工程は、
前記第1埋め込みと前記第2埋め込みとの間の測定値を算出する工程であって、前記測定値はコサイン類似度測定値、ドット積、またはユークリッド距離である工程と、
前記測定値が閾値を満足すると判定する工程と、を備える請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
複数の応答からなる前記候補セットがランク付けされ、前記第1応答選択工程は、前記第1応答が最上位にランク付けされたことに基づき、前記第1応答を選択する工程を含む請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記候補セットにおける前記複数の応答のうち、前記第1応答に続く次に最上位にランク付けされた応答である追加的応答を識別する工程と、
前記追加的応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程であって、前記追加的埋め込みは、前記追加的応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記第1埋め込みと前記追加的埋め込みとの比較に基づき、前記追加的応答が前記第1応答に対して前記相違基準を満足しないと判定する工程と、
前記追加的応答が前記相違基準を満足しないことに基づき、前記追加的応答を前記選択されたセットから除外する工程と、をさらに備える請求項8に記載の方法。
【請求項10】
前記第2応答選択工程後に、
前記候補セットにおける前記複数の応答のうちから追加的応答を識別する工程と、
前記追加的応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程であって、前記追加的埋め込みは、前記追加的応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記追加的応答が前記第1応答および前記第2応答のうちの1つ以上に対して前記相違基準を満足すると判定する工程であって、前記判定は、前記追加的埋め込みと前記第1埋め込みとの比較、および前記追加的埋め込みと前記第2埋め込みとの比較に基づく工程と、
前記追加的応答が前記第1応答および前記第2応答のうちの1つまたは両方に対して前記相違基準を満足することに基づき、前記選択されたセットに含めるべく前記追加的応答を選択する工程と、をさらに備える請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記応答提供工程は、前記返信電子通信を生成する際に前記クライアント装置を介して提供されるいかなる入力とも無関係に実行される請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
1つまたは複数のプロセッサが実行する方法であって、前記方法は、
ユーザに送信された電子通信に対する返信に含めるのに考慮するランク付けされた複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、1つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記複数の応答のうちから第1応答を選択する工程であって、前記第1応答の前記選択は、前記第1応答が前記候補セットにおける前記複数の応答のうちで最上位にランク付けされたことに基づく工程と、
前記候補セットにおける前記複数の応答のうちの複数の残りの応答の各々に対して、閾値量の応答が、前記選択されたセットに含めるべく選択されたことを含む1つ以上の条件が満足されるまで、
前記残りの応答の埋め込みベクトルを、前記選択されたセットに含めるべく選択された前記第1応答の第1埋め込みベクトルおよび全ての追加的応答の全ての埋め込みベクトルと比較する工程であって、前記残りの応答の埋め込みベクトルは、前記残りの応答のセマンティクスのうちの少なくともいくつかを符号化し、前記第1応答の第1埋め込みベクトルは、前記第1応答のセマンティクスのうちの少なくともいくつかを符号化し、前記全ての追加的応答の全ての埋め込みベクトルは、前記全ての追加的応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記比較に基づき、前記残りの応答が前記第1応答および前記全ての追加的応答に対して相違基準を満足すると判定する相違基準満足判定工程と、
前記相違基準満足判定工程に基づき、前記選択されたセットに含めるべく追加的応答として前記残りの応答を選択する工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する応答提供工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の1つを選択することを可能にする工程と、を備える方法。
【請求項13】
前記プロセッサのうちの1つまたは複数は、前記クライアント装置から離れており、
前記応答提供工程は、コンテンツを前記クライアント装置に送信することで、前記クライアント装置に、前記選択されたセットにおける前記複数の応答を前記インタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を備える請求項12に記載の方法。
【請求項14】
前記選択されたセットにおける前記複数の応答のうちの所与の応答の選択を受信する受信工程であって、前記選択は、前記クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づく工程と、
前記受信工程に応じて前記応答を前記返信の通信に組み入れる工程と、をさらに備える請求項12または13に記載の方法。
【請求項15】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続されたメモリと、を備えるシステムであって、
前記1つまたは複数のプロセッサは、前記メモリに記憶された命令を実行することで、
ユーザに向けて送信された電子通信に対する返信に含めるのに考慮する複数の応答からなる候補セットを識別する工程であって、前記候補セットにおける前記複数の応答の各々は、1つまたは複数のトークンを含み、前記電子通信のコンテンツに基づき判定される工程と、
選択されたセットに含めるべく、前記候補セットにおける前記応答のうちから第1応答を選択する工程と、
前記第1応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第1埋め込みを生成する工程であって、前記第1埋め込みは、前記第1応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記候補セットにおける前記複数の応答のうちの第2応答を入力として前記ニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、前記ニューラルネットワークレスポンスエンコーダモデルを通じて、第2埋め込みを生成する生成工程であって、前記第2埋め込みは、前記第2応答のセマンティクスのうちの少なくともいくつかを符号化する、工程と、
前記第1埋め込みと前記第2埋め込みとの比較に基づき、前記第2応答が前記第1応答に対して相違基準を満足すると判定する相違基準満足判定工程と、
前記相違基準満足判定工程に基づき、前記選択されたセットに含めるべく前記第2応答を選択する工程と、
前記ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、前記選択されたセットにおける前記複数の応答を提供する工程であって、前記インタフェースは、前記電子通信に対する前記ユーザによる返信である返信電子通信に含めるために、前記選択されたセットにおける前記複数の応答のうちの任意の1つを選択することを可能にする工程と、を行うように動作可能である、システム。
【請求項16】
請求項1乃至14のいずれか一項に記載の方法を実行するよう構成された装置。
【請求項17】
コンピューティング装置によって実行されると前記コンピューティング装置に請求項1乃至14のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、電子通信に含める提案としての、意味的に多様な提供用の応答の判定に関する。
【背景技術】
【0002】
ユーザには、電子メール、SMS(ショートメッセージサービス)通信、チャット通信、ソーシャルネットワーキング通信等のネットワーク多数の電子通信がしばしば殺到する。ユーザに送信される多くの電子通信は、明示的に返信を求めるか、またはユーザが返信したいと思い得る情報を含む。例えば、「ちょっとランチでも食べない?」という文言を含む電子メールは、明示的に返信を求め得る。「婚約しました!」という文言を含む電子メールは、明示的には返信を求めていない場合もあるが、この電子メールを受信するユーザは、電子メールに対するお祝いの返信を送信したいと望む場合がある。ユーザは、電子通信に対する返信を考え、考えた返信を、キーボード(例えば、スマートフォンまたはタブレットの仮想キーボード)、マイクロフォン、および/またはクライアント装置の他のユーザインタフェース入力装置を利用してクライアント装置に入力する。
【0003】
いくつかの状況では、ユーザに送信された電子通信に対する返信である返信電子通信に含める用に、ユーザに対して1つまたは複数の応答を提案することが望ましい場合がある。例えば、「ちょっとランチでも食べない?」というチャットメッセージが、ユーザのクライアント装置に対して送信された場合、受信されたチャットメッセージに応答する返信チャットメッセージに含める用に、ユーザが選択可能な応答を、クライアント装置を介して(例えば、シングルタップまたは他のシングル選択入力で)ユーザに対して提供することが望ましい場合がある。例えば、「もちろん、何時に?」、「ありがとう、でも忙しいんだ」、および「折り返し連絡するよ」等の応答が、「ちょっとランチでも食べない?」という受信されたチャットメッセージに対するコンテクスト上の関連性に基づき、提案として提供されてよい。提供された応答のうちの1つをユーザが選択することにより、返信を作成するためにユーザが行わなければならないユーザ入力の数が減少する。これは、クライアント装置の様々な計算資源の使用を減少させ得て、および/または、あまり器用ではないユーザ(またはそれ以外に、クライアント装置に対してユーザ入力を行うことが困難な者)にとっては特段の利益になり得る。
【0004】
しかしながら、提案される応答を生成するいくつかの技術は、提案として潜在的に提供され得る多量の候補応答を生成する場合がある。ユーザインタフェースの制約および/または他の理由により、そのような初回提示用の候補応答の全てを、提案としてユーザに対して提供することは望ましくないおよび/または不可能な場合がある。したがって、それらの候補応答のうちのサブセットが、提案として初回提示用にユーザに対して選択されてよい。本明細書に開示される実装は、サブセットの応答中の意味的な多様性を促進するように、そのようなサブセットの選択を目指すものである。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願は、電子通信に含める提案としての、意味的に多様な提供用の応答の判定に関する。
【課題を解決するための手段】
【0006】
これらおよび他の考察に鑑み、本明細書のいくつかの実装は、電子通信に対する返信に含める用の提案として初回提示をユーザに対して提供するための、意味的に多様な候補応答のサブセットを判定することに関する、方法および装置に一般的に係る。これらの実装のいくつかは、複数の候補応答のうちの1つにそれぞれ基づく埋め込みをレスポンスエンコーダモデルを通じて生成することに基づき、意味的に多様な候補応答のサブセットを判定する。所与の候補応答に基づく埋め込みは、サブセットに対してすでに選択された候補応答の埋め込みと比較されてよい。所与の候補応答は、その比較が相違基準を満足することを示す場合にのみ、サブセットに対して追加される。例えば、相違基準は、所与の候補応答とすでに選択された候補応答との間の、意味的な相違の十分な度合いを示す閾値を満たすことであってよい。本明細書において使用されるように、「レスポンスエンコーダモデル」とは、トークン(例えば、応答に含まれる)のシーケンスを処理することにより、そのシーケンスの埋め込みを生成するように使用可能なモデルである。候補応答のトークンは、候補応答に含まれるテキストのトークン(例えば、単語、句)、または候補応答に含まれるグラフィカルトークン(例えば、親指を立てる絵文字もしくはスマイリー絵文字等のシールまたは絵文字)であってよい。例えば、「早く元気になって」の候補応答は、「早く」、「元気」、「に」、および「なって」のテキストのトークンを含む。また、例えば、「待ちきれない(スマイリーフェイス)」の候補応答は、「待ち」および「きれない」のテキストのトークンを含み、かつ、「スマイリーフェイス」のグラフィカルトークンを含む。候補応答のトークンのシーケンスの埋め込みは、トークンのシーケンスの密度表現(すなわち実数値ベクトル)である。様々な実装において、レスポンスエンコーダモデルは、ニューラルネットワークモデルである。
意味的に多様な応答のサブセットを、ユーザに対する初回提示用に提案として判定および提供することで、提供される応答のうちの1つが、ユーザの意図する応答の要点を伝えるのに十分である可能性を増加させ得る。結果的に、返信において含める用に提供された応答のうちの1つをユーザが選択する可能性は、増加し得る。上記のように、提供された応答のうちの1つを選択することにより、返信を作成するためにユーザが行わなければならないユーザ入力の数が減少する。これは、クライアント装置の様々な計算資源の使用を減少させ得て、および/または、あまり器用ではないユーザ(またはそれ以外の、クライアント装置に対してユーザ入力を行うことが困難な者)にとっては特段の利益になり得る。
【0007】
いくつかの実装においては、1つまたは複数のプロセッサが実行する方法が提供され、その方法は、ユーザに向けて送信された電子通信に対する返信に含める用に考慮する複数の応答からなる候補セットを識別する工程を含む。候補セットにおける複数の応答の各々は、1つまたは複数のトークンを含み、および電子通信のコンテンツに基づき判定される。方法は、選択されたセットに含める用に、候補セットにおける複数の応答のうちから第1応答を選択する第1応答選択工程と、第1応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、第1埋め込みを生成する第1埋め込み生成工程と、候補セットにおける複数の応答のうちの第2応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、第2埋め込みを生成する第2埋め込み生成工程と、をさらに含む。方法は、第1埋め込みと第2埋め込みとの比較に基づき、第2応答が第1応答に対して相違基準を満足すると判定する相違基準満足判定工程を含む。方法は、相違基準満足判定工程に基づき、選択されたセットに含める用に第2応答を選択する第2応答選択工程と、ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、選択されたセットにおける複数の応答を提供する応答提供工程とを含む。インタフェースは、電子通信に対するユーザによる返信である返信電子通信に含める用に、選択されたセットにおける複数の応答のうちの任意の1つを選択することを可能にする。
【0008】
本方法および本明細書に記載される技術の他の実装は、以下の特徴のうちの1つまたは複数をそれぞれ任意で含んでよい。
いくつかの実装においては、プロセッサのうちの1つまたは複数は、クライアント装置から離れており、応答提供工程は、コンテンツをクライアント装置に送信することで、クライアント装置に対して、選択されたセットの応答をインタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を含む。
【0009】
いくつかの実装においては、方法は、選択されたセットの応答のうちの所与の応答の選択を受信する受信工程と、受信工程に応じて応答を返信通信に組み入れる工程と、をさらに含む。選択は、クライアント装置のユーザインタフェース入力装置によって生成されたユーザインタフェース入力に基づいてよい。
【0010】
いくつかの実装においては、ニューラルネットワークレスポンスエンコーダモデルは、LSTM(long short-term memory)セルを含む。それらのうちのいくつかの実装においては、第1埋め込み生成工程は、ニューラルネットワークレスポンスエンコーダモデルのLSTMセルのうちの1つまたは複数のセルの状態を埋め込みとして使用する工程を含み、状態は、第1応答をニューラルネットワークレスポンスエンコーダモデルに適用後の状態である。それらのうちのいくつかの実装においては、第1埋め込み生成工程は、第1応答を適用することに先立ち、電子通信の少なくとも一部をニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づき、第2埋め込み生成工程は、第2応答をニューラルネットワークレスポンスエンコーダモデルに適用することに先立ち、電子通信の少なくとも一部をニューラルネットワークレスポンスエンコーダモデルに適用することにさらに基づく。
【0011】
いくつかの実装においては、相違基準満足判定工程は、第1埋め込みと第2埋め込みとの間の測定値を算出する工程と、測定値が閾値を満足すると判定する工程とを含む。それらのうちのいくつかの実装においては、測定値はコサイン類似度測定値、ドット積、またはユークリッド距離である。
【0012】
いくつかの実装においては、応答の候補セットがランク付けされ、第1応答選択工程は、第1応答が最上位にランク付けされたことに基づく。それらのうちのいくつかの実装においては、方法は、候補セットの応答の、第1応答に続く次に最上位にランク付けされた応答である追加的応答を識別する工程と、追加的応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、第1埋め込みと追加的埋め込みとの比較に基づき、追加的応答が第1応答に対して相違基準を満足しないと判定する工程と、第2応答が相違基準を満足しないことに基づき、追加的応答を選択されたセットから除外する工程と、をさらに含む。
【0013】
いくつかの実装においては、方法は、第2応答選択工程後に、候補セットの応答の追加的応答を識別する工程と、追加的応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、追加的埋め込みを生成する工程と、追加的応答が第1応答および第2応答のうちの1つ以上に対して相違基準を満足すると判定する工程と、第2応答が第1応答および第2応答のうちの1つまたは両方に対して相違基準を満足することに基づき、選択されたセットに含める用に追加的応答を選択する工程と、をさらに含む。追加的応答が第1応答および第2応答のうちの1つ以上に対して相違基準を満足するとの判定は、追加的埋め込みと第1埋め込みとの比較、および追加的埋め込みと第2埋め込みとの比較に基づいてよい。追加的応答が第1応答および第2応答のうちの1つ以上に対して相違基準を満足するとの判定は、追加的応答が第1応答および第2応答の両方に対して相違基準を満足するとの判定を含んでよい。
【0014】
いくつかの実装においては、応答提供工程は、返信電子通信を生成する際にクライアント装置を介して提供されるいかなる入力とも無関係に実行される。
いくつかの実装においては、1つまたは複数のプロセッサが実行する方法が提供され、その方法は、ユーザに送信された電子通信に対する返信に含める用に考慮するランク付けされた応答の候補セットを識別する工程を含む。候補セットの応答は、それぞれ1つまたは複数のトークンを含み、および電子通信のコンテンツに基づき判定される。方法は、選択されたセットに含める用に、候補セットの応答の第1応答を選択する工程であって、第1応答が候補セットの応答の最上位にランク付けされたことに基づく工程を含む。方法は、候補セットの応答の複数の残りの応答の各々に対して、1つ以上の条件が満足されるまで、残りの応答の埋め込みベクトルを選択されたセットに含める用に選択された第1応答の第1埋め込みベクトルおよび全ての追加的応答の全ての埋め込みベクトルと比較する工程と、残りの応答を選択されたセットに含むかどうかを比較に基づき判定する工程と、をさらに含む。方法は、ユーザのクライアント装置によってレンダリングされたインタフェースにおいて表示するために、選択されたセットの応答を提供する応答提供工程をさらに含む。インタフェースは、電子通信に対するユーザによる返信である返信電子通信に含める用に、選択されたセットの応答のうちの任意の1つを選択することを可能にする。
【0015】
本方法および本明細書に記載される技術の他の実装は、以下の特徴のうちの1つまたは複数をそれぞれ任意で含んでよい。
いくつかの実装においては、1つ以上の条件は、閾値量の応答が、選択されたセットに含める用に選択されたことを含む。
【0016】
いくつかの実装においては、プロセッサのうちの1つまたは複数は、クライアント装置から離れており、応答提供工程は、コンテンツをクライアント装置に送信することで、クライアント装置に対して、選択されたセットの応答をインタフェースにおいて選択可能になるように視覚的にレンダリングさせる工程を含む。
【0017】
いくつかの実装においては、方法は選択されたセットの応答のうちの所与の応答の選択を受信する受信工程と、受信工程に応じて応答を返信通信に組み入れる工程と、をさらに備える。
【0018】
他の実装は、上記の方法のうちの1つまたは複数等の方法を実行するプロセッサによって実行可能な命令を記憶する、1つまたは複数の非一時的なコンピュータ可読記憶媒体を含んでよい。さらに別の実装は、メモリに記憶された命令を実行するよう動作することで、上記の方法のうちの1つまたは複数等の方法を実行するメモリおよび1つまたは複数のプロセッサを含むシステムを含んでよい。
【0019】
本明細書に詳細に記載される前述の概念および追加的な概念の全ての組み合わせは、本明細書に開示される発明の一部であると考察されることが理解されるべきである。例えば、本開示の終わりに記載される請求項に係る発明の全ての組み合わせは、本明細書に開示される発明の一部であると考察される。
【図面の簡単な説明】
【0020】
図1】意味的に多様な応答のセットが、返信電子通信に含める用の提案として判定および提供され得る例示的な環境を説明する図。
図2】受信された電子通信に基づき、どのように候補応答が判定され得るか、また、その受信された電子通信に対する返信に含める用の提案として提供するために選択される、意味的に多様な候補応答のサブセットの例を説明する図。
図3】本明細書に開示される実装による、例示的な方法を説明するフローチャート。
図4】本明細書に開示される実装による、例示的な応答、およびそれらの応答に対して判定され得る最小の類似性スコアを説明する図。
図5A】受信された電子通信に対する返信に含まれる用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェースを説明する図。
図5B図5Bは、受信された電子通信に対する返信に含める用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェースを説明する図。
図6】コンピューティング装置の例示的なアーキテクチャを説明する図。
【発明を実施するための形態】
【0021】
図1は、意味的に多様な応答のセットが、返信電子通信に含める用の提案として判定および提供され得る例示的な環境を説明する図。例示的な環境は、その環境における様々な構成要素間の通信を可能にする通信ネットワーク101を含む。いくつかの実装においては、通信ネットワーク101は、インターネット等のWAN(広域ネットワーク)、1つまたは複数のイントラネット、および/または1つまたは複数のバスサブシステムを含んでよい。通信ネットワーク101は、任意で1つまたは複数の標準的な通信技術、プロトコル、および/またはプロセス間通信技術を利用してよい。
【0022】
図1の例示的な環境はまた、クライアント装置106、電子通信システム110、応答システム120、1つ以上の電子通信データベース152、応答予測モデル154、およびレスポンスエンコーダモデル156を含む。
【0023】
電子通信システム110および応答システム120は、例えばネットワーク(ネットワーク101および/または他のネットワーク等)を通じて通信する1つまたは複数のコンピューティング装置によってそれぞれ実装されてよい。電子通信システム110および応答システム120は、本明細書に記載されるシステム、構成要素、および技術が実装され得る、および/または本明細書に記載されるシステム、構成要素、および技術が相互作用し得る例示的なシステムである。電子通信システム110および応答システム120は、データおよびソフトウェアアプリケーションの記憶用の1つまたは複数のメモリ、データアクセスおよびアプリケーション実行用の1つまたは複数のプロセッサ、およびネットワークを通じて通信を可能にする他の構成要素をそれぞれ含む。いくつかの実装においては、電子通信システム110および応答システム120は、図6の例示的なコンピューティング装置の1つまたは複数の構成要素を含んでよい。電子通信システム110および応答システム120によって実行される演算は、複数のコンピュータシステム間に分散されてよい。いくつかの実装においては、電子通信システム110および応答システム120の1つまたは複数の態様は、単一のシステムに組み合わされてよく、および/または1つまたは複数の態様はクライアント装置106上に実装されてよい。
【0024】
電子通信データベース152は、複数のユーザの電子通信の全てまたは一部を含む、1つまたは複数の記憶媒体を含む。いくつかの実装においては、電子通信データベース152は、電子通信システム110によって維持される。例えば、電子通信システム110は、1つまたは複数の電子メールシステムを含んでよい。電子通信データベース152は、電子メールシステムを介して送信および/または受信された複数の電子メールを含んでよい。別の例としては、電子通信システム110は、1つまたは複数のソーシャルネットワーキングシステムを含んでよい。また電子通信データベース152は、ソーシャルネットワーキングシステムを介して送信および/または受信された複数のメッセージ、投稿、または他の通信を含んでよい。
【0025】
本明細書において使用されるように、「電子通信」または「通信」は、電子メール、テキストメッセージ(例えばSMSやMMS)、インスタントメッセージ、録音されたボイスメール、または第1ユーザから1人または複数人の追加的なユーザの限定的なグループに対して送信された任意の他の電子通信を言及し得る。様々な実装において、電子通信は、様々なメタデータを含んでよく、該メタデータは、本明細書に記載される1つまたは複数の技術において任意で利用されてよい。例えば、電子メール等の電子通信は、1つまたは複数の送信者識別子(例えば送信者電子メールアドレス)、1つまたは複数の受信者識別子(例えばccおよびbccに記載の受信者を含む受信者電子メールアドレス)等の電子通信アドレス、送信日、1つまたは複数の添付、件名、その電子通信を送信および/または受信した装置の種類等を含んでよい。
【0026】
本明細書において使用されるように、「電子通信」および「通信」は、コンテクストによって、単一の「初回」メッセージのみを含む電子通信、および初回メッセージおよびその初回メッセージに続く1つまたは複数の追加的なメッセージを含む電子通信の両方を指すよう使用される。例えば、電子通信は、第1ユーザからの「初回」メッセージ、および第2ユーザからの返信メッセージである追加的なメッセージを含んでよい。また例えば、電子通信は、第1ユーザからの「初回」メッセージ、および第1ユーザからの追加的なメッセージを含んでよい。したがって、本明細書に記載される候補応答は、単一の初回メッセージのみを含む受信された通信、または初回メッセージおよび1つまたは複数の追加的なメッセージを含む受信された通信に基づき生成されてよい。電子通信は、初回メッセージおよび1つまたは複数の追加的なメッセージの両方を含み、また元のメッセージおよび追加的なメッセージを区別するよう任意で処理され得る電子メール等の単一の文書であってよい。初回メッセージおよび追加的なメッセージを区別するために電子通信を処理することは、メッセージや初回メッセージに関して提供された引用等に含まれるメタデータ、メッセージ区切り、ヘッダ情報の存在に基づきメッセージを「分割」することを含んでよい。電子通信はまた、お互いにマッピングされた複数の文書であってよく、マッピングは、複数の文書のうちの1つ以上が複数の文書のうちの他の文書に対応することに基づく。例えば、電子通信は、ユーザによって受信された元のメッセージである第1電子メールおよびその元のメッセージに対する返信としてユーザによって送信された第2電子メール、または元のおよび返信のSMSメッセージを含んでよい。複数の文書の互いへのマッピングは、例えば電子通信システム110によって実行されてよい。例えば、第1電子メールを閲覧し、その後に返信ユーザインタフェース要素を選択することに応じて第2電子メールを作成する場合、電子通信システム110は、ユーザが「返信」ユーザインタフェース要素を選択することに基づき、第1電子メールを第2電子メールにマッピングしてよい。
【0027】
一般に、応答システム120は、クライアント装置106によって提供される電子通信および/またはユーザがまだ返信していない電子通信データベース152の電子通信等の、電子通信に対する返信において含む、提案される応答を判定し提供する。本明細書において記載されるように、応答システム120は、電子通信の1つまたは複数のメッセージのフィーチャに基づき応答の候補セットを判定してよく、返信において含む提案として実際に提供するための、候補セットの応答のサブセットを選択してよい。いくつかの実装においては、応答システム120は、通信に対する返信を生成する際にユーザによって提供されたいかなるテキスト入力からも独立して、および/または通信に対する返信を生成する際にユーザによって提供されたいかなる他のコンテンツ(例えば、音声入力、グラフィカル要素)からも独立して、応答のサブセットを提案として提供してよい。
【0028】
様々な実装において、応答システム120は、候補応答エンジン122、応答選択エンジン124、および提示エンジン128を含んでよい。応答選択エンジン124は、応答埋め込みモジュール125および埋め込み比較モジュール126を含んでよい。いくつかの実装においては、エンジン122、124、128、および/またはモジュール125、126のうちの1つまたは複数の態様は、クライアント装置106および/または電子通信システム110等の応答システム120とは別個の構成要素において、省略、組合せ、および/または実装されてよい。
【0029】
クライアント装置106によって提供される電子通信および/またはユーザがまだ返信していない電子通信データベース152の電子通信等の、ユーザの電子通信に関して、応答システム120の構成要素が以下に記載される。明確性のため、例においては単一の電子通信が参照されるが、応答システム120は、ユーザおよび/または追加的なユーザの追加的な電子通信に対して、提案される応答を判定してよいことが理解される。例えば、応答システム120は、複数のクライアント装置のうちの各々に対する提案される応答の判定を、異なるセッションを介して管理してよく、また、複数のセッションを平行して管理してよい。例えば、応答システム120は、いくつかの実装においては、複数のユーザからの大量のリクエストを扱う適切なソフトウェアを実行する、例えばサーバファームまたは高性能なコンピュータのクラスタを利用するクラウドインフラストラクチャを用いる、クラウドベースのサービスとして実装されてよい。しかしながら、便宜的に、本明細書には、単一のクライアント装置106および単一の電子通信に関して、複数の例が記載される。
【0030】
候補応答エンジン122は、1人以上のユーザ(すなわち、コンテンツがユーザに送信された際の電子通信のコンテンツに少なくとも一部基づき)に向けて送信された電子通信に基づき、応答の候補セットを生成する。いくつかの実装においては、候補応答エンジン122は、1つまたは複数の応答予測モデル154に対して通信のフィーチャを適用することに基づき、応答の候補セットを生成する。
【0031】
これらの実装のうちのいくつかでは、フィーチャはトークン(例えば、通信からのテキストのトークン、および/またはグラフィカルトークン)を含み、候補応答エンジン122はこのトークンを、応答予測モデル154のLSTM(長短期記憶)ニューラルネットワークモデルに対して適用することで、候補応答を示す出力を生成する。通信から適用されるトークンは、トークンの全て、またはトークンの1つまたは複数のサブセット(例えば、最初の文および/または最後の文、通信の本文のみ、本文の件名、ストップワードが除外された通信の全て)を含んでよい。候補応答エンジン122は、その後、出力を使用して、候補応答を判定する。例えば、候補応答エンジン122は、トークンを入力として、連続したトークン毎にLSTMニューラルネットワークモデルに対して適用することで、各々が単語に対する確率分布を示す1つまたは複数の出力をモデルに関して生成してよい。
【0032】
候補応答エンジン122は、LSTMニューラルネットワークモデルの出力を利用することで、候補応答のセットを判定し、また候補応答に対してスコアを付与する(そうでない場合はランク付けをする)。いくつかの実装においては、候補応答は、一般的な応答がキュレーションされたリスト等の候補応答のホワイトリストから識別される。いくつかの実装においては、1つまたは複数の候補応答は、追加的にまたは代替的に、制限なくトークン毎に(すなわち、一般的な応答のホワイトリストから識別されずに)生成されてよい。利用される技術に関わらず、候補応答エンジン122は、複数(例えば、10、20、30またはそれ以上)の候補応答を識別してよく、また、例えばLSTMニューラルネットワークモデルに関して生成された出力に基づき候補応答に付与されたスコアに基づき、識別された候補応答を任意でランク付けしてよい。候補応答エンジン122は、その候補応答およびランキングを応答選択エンジン124に対して通信してよい。候補応答のランキングは、候補応答のスコア、つまり、候補応答(例えば、第1候補応答が最上位にランク付けされ、第2候補応答が次に最上位にランク付けされるリスト)等の順序として送られる。いくつかの実装においては、候補応答エンジン122は、X個までの候補応答を識別し、および/または閾値化を使用することで、LSTMニューラルネットワークモデルに関して生成された出力に対する適合性の少なくとも閾値度を有する候補応答のみを識別するだけでよい。
【0033】
いくつかの実装においては、LSTMニューラルネットワークモデルおよび/または1つまたは複数の応答予測モデル154のうちの他のモデルは、元のメッセージおよび返信メッセージを含む通信の大量のコーパスに基づき訓練されてよい。例えば、ニューラルネットワークモデルは、それぞれの元のメッセージのフィーチャが与えられる観察された返信メッセージフィーチャの確率を最大化するよう訓練されてよい。
【0034】
いくつかの実装においては、候補応答エンジン122は、候補応答のセットを生成するために追加的なおよび/または代替的な技術を利用してよい。例えば、候補応答エンジン122は、LSTMニューラルネットワークモデルではない応答予測モデルを利用してよく、電子通信のテキストに加えて、受信された電子通信のフィーチャ等を利用してよい。例えば、候補応答エンジン122は、電子通信のテキストに適用される1つまたは複数の自然言語処理タグまたは他のラベルに基づくフィーチャ(例えば、話の一部、固有表現、エンティティの種類、口調)、特に電子通信の件名、最初の文、最後の文、または他の部分において出現するテキストに基づくフィーチャ、電子通信が送信された時刻等の電子通信のメタデータに基づくフィーチャ、電子通信が送信された曜日、受信者の数、電子通信を送信した装置の種類等を利用してよい。
【0035】
利用される技術に関わらず、候補応答エンジン122は、応答選択エンジン124に対して候補応答のセットを提供する。いくつかの実装においては、提供される候補応答のセットがランク付けされる。例えば、候補応答は、ランキングに基づき順序付けられ、および/または各々がスコアもしくはそのランキングを示す他の値を含んでよい。これらの実装のうちのいくつかでは、応答選択エンジン124は、提案される応答として提示するための提示エンジン128に提供する選択されたセットに含める用に最上位にランク付けされる候補応答を選択する。
【0036】
応答埋め込みモジュール125は、1つまたは複数のレスポンスエンコーダモデル156を利用して、最上位にランク付けされる候補応答に基づき埋め込みを生成し、また、提供される候補応答のセットの複数の追加的に考慮される候補応答の各々に対する追加的な埋め込みを生成する。いくつかの実装においては、応答埋め込みモジュール125は、埋め込みを「ライブ」で(例えば、候補応答エンジン122から候補応答を受信することに応じて)生成する。いくつかの実装においては、応答埋め込みモジュール125は、追加的にまたは代替的に、埋め込みのうちの1つまたは複数を予め生成してよい(例えば、複数の一般的な候補応答のうちの各々に対予め生成して埋め込みを予め生成する)。
【0037】
応答に基づく埋め込みは、応答のトークンに基づき判定され、かつ応答のセマンティクスのうちの少なくともいくつかを符号化する値のベクトルである。いくつかの実装においては、埋め込みは、応答に関するものであってよく、また、応答のセマンティクスを表す値のベクトルへ応答が変換されたものであってよい。いくつかの実装においては、埋め込みは応答に基づいてよく、また、応答が候補になる元の通信のコンテクストを考慮してよい。
【0038】
いくつかの実装においては、応答埋め込みモジュール125は、レスポンスエンコーダモデル156の訓練されたニューラルネットワークモデルを利用することで、応答に基づき埋め込みを生成する。例えば、応答埋め込みモジュール125は、応答を入力としてニューラルネットワークモデルに適用して、入力に基づき、そのモデルを通じて埋め込みを生成してよい。例えば、埋め込みはモデルの最終出力であってよく、あるいは、モデルの隠れた状態から導出されてよい。
【0039】
一例として、応答埋め込みモジュール125は、LSTMニューラルネットワークモデルに基づき、応答の埋め込みを生成してよい。これらの実装のうちのいくつかでは、LSTMニューラルネットワークモデルは、候補応答エンジン122によって任意で利用される上記のものと任意で同一であってよい。例えば、応答埋め込みモジュール125は、応答を入力として、トークン毎に連続的にLSTMニューラルネットワークモデルに対して適用することで、応答のベクトル表示をLSTMニューラルネットワークモデルの隠れ層に生成し、またその応答のベクトル表示を応答の埋め込みとして利用してよい。別の例として、応答埋め込みモジュール125は、GloVE埋め込みモデルおよび/またはWord2Vec埋め込みモデルのように、トークンの埋め込みを(隠れ層に、または最終出力として)生成する他のニューラルネットワークモデルを追加的にまたは代替的に利用してよい。
【0040】
上記のように、いくつかの実装では、応答埋め込みモジュール125は任意で、応答に基づき埋め込みを生成してよく、また、応答が候補である通信のコンテクストを考慮してよい。例えば、応答埋め込みモジュール125は、初めに通信からトークン(例えば、すべてのトークンまたはサブセット)を入力としてLSTMニューラルネットワークモデルに対して適用し、その後、応答を適用し、結果のベクトル表示を応答の埋め込みとして隠れ層において利用してよい。これは、埋め込みにおいて通信の態様を効果的に符号化し、応答のセマンティクスを含む埋め込みを通信に考慮してもたらし得る。例えば、「はい!」という埋め込みは、元の通信のコンテクストによって、「受信した」または「理解した」を意味し得る。「了解!」という応答と併せて所与の通信のフィーチャを適用することによって、元のメッセージのコンテクストにおける応答のセマンティクスをより正確に伝える埋め込みが生成され得る。例えば、「私のメッセージを受け取った?」という元の通信テキストを最初に適用した場合の「はい!」という埋め込みは、「いいえ、ミーティンはグ明日です」という元の通信テキストを最初に適用した場合の「はい!」という埋め込みとは非常に異なり得る。
【0041】
埋め込み比較モジュール126は、各考慮された候補応答の埋め込みを、すでにサブセット用に選択された候補応答の埋め込みと比較し、相違基準が満足されることを比較が示す場合にのみ、候補応答を該サブセットに対して追加する。例えば、最上位にランク付けされた候補応答のみが、サブセットに含める用にこれまでに選択されていると仮定する。埋め込み比較モジュール126は、下位にランク付けされる候補応答の埋め込みを、最上位にランク付けされた候補応答の埋め込みと比較して、その比較が、2つの埋め込み間の意味的な相違の少なくとも閾値度を示す場合のみ、下位にランク付けされた候補応答をサブセットに含める用に選択してよい。例えば、埋め込み比較モジュール126は、2つの埋め込み間のコサイン類似度を算出し、2つの埋め込み間のユークリッド距離を算出し、および/または2つの埋め込みのドット積を算出し、かつコサイン類似度、ユークリッド距離、および/またはドット積を相違基準閾値と比較してよい。相違基準閾値が満足される場合、埋め込み比較モジュール126は、下位にランク付けされる候補応答をサブセットに追加する。そうでない場合は、埋め込み比較モジュール126は、下位にランク付けされる候補応答をサブセットに追加しない。
【0042】
埋め込み比較モジュール126は、サブセットに対して候補応答が閾値量まで選択されるまで、考慮する候補応答が残らなくなるまで、および/または他の条件が満足されるまで、この処理を繰り返してよい。応答選択エンジン122はその後、候補応答の選択されたサブセットを、提示エンジン128に対して提供する。応答選択エンジン124のいくつかの実装の追加的な説明は、図3の方法を参照に以下に述べられる。
【0043】
提示エンジン128は、電子通信に対するユーザによる返信である返信電子通信に含める用の候補応答の選択されたサブセットを提供する。例えば、提示エンジン128は、選択されたサブセットの応答についての1つまたは複数のユーザインタフェース表示(例えば、画像、音響)を提示してよい。返信を作成するユーザが表示のうちの1つを選択した場合、対応する応答が自動的に返信に組み入れられてよい。返信はその後、自動的に送信および/またはさらなるユーザのユーザインタフェース入力に応じて(ユーザが追加的コンテンツを返信に追加した後に任意で)送信されてよい。選択された応答を返信メッセージにこのように自動的に組み入れることで、ユーザが選択された応答を手動で入力することが省かれ、また、応答を含む返信メッセージを作成するために必要な複数のユーザ対話ステップおよび対応する入力が省かれる。
【0044】
いくつかの実装においては、提示エンジン128は、いかなる入力および/または電子通信に対する返信を生成する際にユーザのコンピューティング装置を介して提供される他のコンテンツとも無関係に、応答を提供する。これらの実装のうちのいくつかでは、応答のサブセットは、ユーザが通信を閲覧または他の方法で消費する前に、応答選択エンジン124によって選択されてよい。例えば、候補応答エンジン122および応答選択エンジン124は、ユーザによる閲覧の前に通信を処理してよい。そして提示エンジン128は、選択された応答を、ユーザによって閲覧される前に電子通信に対して付加または他の方法で関連付けする。したがって、ユーザが電子通信を閲覧または他の方法で消費する場合、電子通信に対して提案される応答は、遅延なく速やかに提供され得る。
【0045】
クライアント装置106によって応答システム120に対して電子通信が提供されるいくつかの実装においては、提示エンジン128は、応答の選択されたサブセットを、返信に含める用のオプションとしユーザに提示するためのクライアント装置106に対して提供してよい。電子通信データベース152を介して電子通信システム110によって応答システム120に対して電子通信が提供されるいくつかの実装においては、提示エンジン128は、応答の選択されたサブセットと電子通信との関連性を電子通信データベース152および/または他のデータベースに記憶してよい。いくつかの実装においては、提示エンジン128の1つまたは複数の(例えば全て)態様は、クライアント装置106および/または電子通信システム110によって実装されてよい。
【0046】
提示エンジン128はまた、それらの応答が共に提示されるべきプロミネンス(例えば位置、大きさ、色)を示す表示プロミネンス情報を、応答の選択されたサブセットと共に提供してよい。一般に、特定の応答のランキングが上位になるにつれて、その応答のプロミネンスは大きくなる。一例として、応答埋め込みモジュール125によって判定されるオプショナルなランキングが利用されることで、選択されたサブセットの応答のランキングを判定してよい。
【0047】
いくつかの実装においては、提示エンジン128は、応答の選択されたサブセット(または関連付けられた識別子)のみ、および潜在的にプロミネンス情報を提供してよい。クライアント装置106および/または電子通信システム110は、提供されたデータに基づいて、選択された文書の表示を生成してよい。いくつかの実装においては、提示エンジン128は、表示を生成するために必要なデータのうちのいくつかまたは全てを追加的に提供してよい。これらの実装のうちのいくつかでは、任意の提供されたプロミネンス情報が、表示がどのように提示されるべきかを示すデータに組み入れられてよい。
【0048】
図2は、受信された電子通信に基づき、どのように候補応答が判定され得るか、また、その受信された電子通信に対する返信に含める用の提案として提供するために選択される、意味的に多様な候補応答のサブセットの例を説明する。
【0049】
図2において、候補応答エンジン122は、1つまたは複数の応答予測モデル154を利用して、候補応答153のセットを判定する。電子通信152Aは、例えば、図1のクライアント装置106または電子通信システム110によって提供され得る。
【0050】
候補応答エンジン122は、候補応答153のセットを応答選択エンジン124に対して提供する。応答選択エンジン124は、1つまたは複数のレスポンスエンコーダモデル156を利用して、電子通信152Aに対する応答において提案として提示するための候補応答153のサブセットを選択する。本明細書において記載されるように、応答選択エンジン124は、レスポンスエンコーダモデル156を利用することで、候補応答153のセットの候補応答の埋め込みを生成してく、また、その埋め込みを使用することで、候補応答153のセットの意味的に多様なサブセットを選択してよい。応答選択エンジン124は、選択された応答155を提示エンジン128に対して提供する。
【0051】
提示エンジン128は、電子通信152Aに対する返信である返信電子通信に含める用の選択された応答155を提供する。
図3は、本明細書に開示される実装による、例示的な方法を説明するフローチャート。便宜上、フローチャートの演算は、演算を実行するシステムを参照して記載される。本システムは、様々なコンピュータシステムの様々な構成要素を含んでよい。例えば、いくつかの演算は、応答選択エンジン124によって実行されてよい。さらに、図3の方法の演算は特定の順番で示されるが、限定的であることを意味しない。1つまたは複数の演算が並び替えされ、除外され、または追加されてよい。
【0052】
ブロック300において、システムは、電子通信に対する返信において考慮する複数の候補応答を受信する。例えば、システムは、候補応答が電子通信にコンテクスト的に関連するように、電子通信のフィーチャに基づき候補応答を生成する候補応答エンジンから候補応答を受信してよい。
【0053】
ブロック302において、システムは、選択されたセットに含める用に複数の候補応答のうちの1つを選択する。例えば、ブロック300で受信された複数の候補応答はランク付けされてよく、システムは、最上位にランク付けされた候補応答を選択されたセットにおいて含める用に選択してよい。
【0054】
ブロック304において、システムは、ブロック302で選択された応答に基づき埋め込みを生成する。例えば、システムは、選択された応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ニューラルネットワークレスポンスエンコーダモデルを通じて、埋め込みを生成してよい。LSTMニューラルネットワークモデル等、様々なレスポンスエンコーダモデルが利用されてよい。さらに、埋め込みは、モデルの「最終」出力として生成されてよく、またはモデルの隠れた状態の一部に基づき(例えば、応答の適用後のLSTMの状態に基づき)生成されてよい。いくつかの実装においては、ブロック304において、システムは、ブロック302で選択された応答に基づき、および候補応答が生成される電子通信の1つまたは複数のフィーチャに基づき、埋め込みを生成する。これは、埋め込みにおいて電子通信の態様を効果的に符号化し、選択された応答のセマンティクスを含む埋め込みを電子通信に考慮してもたらし得る。
【0055】
ブロック306において、システムは、ブロック300で受信された複数の候補応答のうちから追加的な候補応答を識別する。例えば、ブロック300で受信された複数の候補応答がランク付けされてよく、システムは、次に最上位にランク付けされた候補応答を識別してよい。
【0056】
ブロック308において、システムは、ブロック306で識別された追加的な応答に基づき、埋め込みを生成する。例えば、システムは、識別された追加的な応答を入力としてニューラルネットワークレスポンスエンコーダモデルに適用することに基づき、ブロック304において使用されたニューラルネットワークレスポンスエンコーダモデルを通じて、埋め込みを生成してよい。いくつかの実装においては、ブロック308において、システムは、ブロック306で識別された追加的な応答に基づき、および候補応答が生成される電子通信の1つまたは複数のフィーチャに基づき、埋め込みを生成する。これは、埋め込みにおいて電子通信の態様を効果的に符号化し、識別された追加的な応答のセマンティクスを含む埋め込みを電子通信に考慮してもたらし得る。
【0057】
ブロック310において、システムは、ブロック306で識別された追加的な応答が、選択されたセットにおいて含まれる1つ以上の応答に対して1つまたは複数の相違基準を満足するかどうかを判定する。ブロック310の1回または複数回の最初の実行においては、識別された追加的な応答が、ブロック302で選択された候補応答に対して相違基準を満足するかどうかの判定を含む。ブロック314(下記)において、追加的な候補応答が選択されたセットに含まれた後、ブロック310は、識別された追加的な応答が、ブロック302で選択された候補応答と、ブロック314の1回または複数回の実行における選択されたセット314に含まれる追加的な候補応答とに対して相違基準を満足するかどうかの判定を含んでよい。
【0058】
ブロック310は、システムがブロック306で識別された追加的な応答の埋め込みと、選択されたセットにおける1つ以上の応答の埋め込みとを比較するブロック311を含んでよい。ブロック311の1回または複数回の最初の実行においては、識別された追加的な応答の埋め込みを、ブロック302で選択された候補応答の埋め込みと比較することを含む。ブロック314(下記)において、追加的な候補応答が選択されたセットに含まれた後、ブロック311は、識別された追加的な応答の埋め込みを、ブロック302で選択された候補応答の埋め込みと、ブロック314の1回または複数回の実行における選択されたセット314に含まれる1つ以上の候補応答の追加的な埋め込みと比較することを含んでよい。いくつかの実装においては、2つの埋め込みを比較する際に、システムは、2つの埋め込み間のコサイン類似度を算出し、2つの埋め込み間のユークリッド距離を算出し、および/または2つの埋め込みのドット積を算出する。
【0059】
ブロック310がブロック311を含む場合、相違基準が満足されるかの判定は、ブロック311での比較に基づいてよい。例えば、識別された追加的な候補応答の埋め込みと、選択されたセットにおける1つ以上の応答との間のコサイン類似度測定値は、相違基準閾値とそれぞれ比較されてよい。コサイン類似度測定値がそれぞれ相違基準閾値を満足する場合、識別された追加的な候補応答は相違基準を満足すると判定されてよい。そうでない場合、識別された追加的な候補応答は、相違基準を満足しない(すなわち、いずれかのコサイン類似度測定値が相違基準閾値を満足しない場合)と判定されてよい。
【0060】
ブロック312において、システムは、ブロック310の直近の実行において相違基準が満足されたかどうかを判定する。満足されない場合は、システムは、ブロック306に戻り、さらに別の追加的な候補応答を識別し、識別された追加的な候補応答に基づきブロック308および310を実行する。
【0061】
ブロック312において、相違基準が満足されたとシステムが判定する場合、システムはブロック314に進む。ブロック314において、識別された追加的な候補応答は、選択されたセットに含める用に選択される。システムはその後、ブロック316に進む。
【0062】
ブロック316で、システムは、選択されたセットに含める用に閾値数の応答が選択されたかどうかを判定する。様々な閾値数が利用されてよく、応答が提案として提供されるクライアント装置の特徴に任意で基づいてよい。例えば、モバイル電話クライアント装置に対する閾値数は3でよいが、デスクトップクライアント装置に対する閾値数は5でよい。
【0063】
ブロック316において、閾値数の応答が選択されたとシステムが判定する場合は、システムはブロック318に進み、提示するため(例えば、可聴的におよび/またはグラフィカルインタフェースにおける表示のため)の選択された応答を、ブロック300の候補応答が生成された電子通信に対する返信である返信電子通信において含める用に提案として提供する。ブロック318は、クライアント装置上での提示のために、選択された応答を即時的に提供することを含んでよく、または後で提供するために電子通信に関連して応答を記憶すること(例えば、ユーザが電子通信を最初に閲覧するまたは他の方法で最初に消費することに応じて提供すること)を含んでよい。いくつかの実装においては、システムは、他の条件が満足されることに応じてブロック318に進んでよく、それら他の条件はブロック316の条件に追加または代替されてよい。例えば、システムは、処理する候補応答が残っていないとの判定に応じて、閾値数の候補応答が処理されたとの判定に応じて、および/またはタイムアウト条件に応じて、ブロック318に進んでよい。
【0064】
ブロック316において、閾値数の応答が選択されていないとシステムが判定した場合は、システムはブロック306に戻り、さらに別の追加的な候補応答を識別し、その識別された追加的な候補応答に基づき、ブロック308および310を実行する。
【0065】
図3の方法の1つの非限定的な例が図4を参照して提供される。図4の左のコラムに表示された候補応答の部分的なリストは、ブロック300で受信されたものであってよく、「具合が悪くて行けない」という電子通信に対する候補応答として生成されてよい。さらに、図4のリストは、図4において現れる順位で示されるランキングと共に受信されてよい(すなわち、「早く元気になって!」が最上位にランク付けされ、次に「早く元気になって。」等が続く)。
【0066】
ブロック302において、システムは、「早く元気になって!」が最上位にランク付けされたことに基づき、「早く元気になって!」を選択してよい。選択は、図4において「早く元気になって!」が太字になっていることで示される。ブロック304において、システムは、「早く元気になって!」に基づき埋め込みを生成する。ブロック306の最初の実行において、システムは、「早く元気になって。」が次に最上位にランク付けされたことに基づき、「早く元気になって。」を選択する。ブロック308の最初の実行において、システムは、「早く元気になって。」に基づき埋め込みを生成する。ブロック310のブロック311において、システムは、2つの埋め込みの比較に基づき、「0.00」のコサイン類似度測定値を生成する。「0.00」のコサイン類似度測定値は、2つの埋め込みが意味的に同一であること(例えば、句読点「。」および「?」は、埋め込みを生成する際には無視してよい)を示す。ブロック310において、システムは、「0.00」の測定値を相違基準閾値(例えば3.50)とさらに比較し、相違基準閾値が満足されないと判定してよい。
【0067】
相違基準が満足されないことに基づき、システムはブロック312からブロック306に戻る。ブロック306の次の実行において、システムは、「早く元気になりますように。」が次に最上位にランク付けされたことに基づき、「早く元気になりますように。」を選択する。ブロック308の次の実行において、システムは、「早く元気になりますように。」に基づき埋め込みを生成する。ブロック310のブロック311において、システムは、2つの埋め込みの比較に基づき、「1.24」のコサイン類似度測定値を生成する。「1.24」のコサイン類似度測定値は、2つの埋め込み間の意味的な類似性の度数を示す。ブロック310において、システムは、「1.24」の測定値を相違基準閾値(例えば3.50)とさらに比較し、相違基準閾値が満足されないと判定してよい。相違基準が満足されないことに基づき、システムはブロック312からブロック306に戻る。
【0068】
システムは、「私に教えてくれてありがと。」という候補応答が考慮されるまで、ブロック306、308、310、および312の実行を継続する。図4におけるその候補応答に記載された「5.65」の類似性スコア(および図4におけるその候補応答の太字処理)に示されるように、閾値が満足される。したがって、その候補応答が考慮されるブロック312の実行の際、システムはブロック314に進み、「私に教えてくれてありがと。」を選択されたセットに追加する。システムはその後、ブロック316に進む。ブロック316において、閾値数は3であってよく、したがって、システムは、ブロック306の別の実行に進み、「うわー!お大事に!」が次に最上位にランク付けされたことに基づき、「うわー!お大事に!」を選択してよい。ブロック308の実行において、システムは「うわー!お大事に!」に基づき埋め込みを生成する。ブロック310のブロック311において、システムは、「3.16」のコサイン類似度測定値を生成する。図4に記載される生成された「3.16」のコサイン類似度測定値は、生成された2つの別個のコサイン類似度測定値のうちで最小値である。特に、第1のコサイン類似度測定値は、「うわー!お大事に!」に対する埋め込みを「早く元気になって!」に対する埋め込みと比較することに基づき生成されてよい。第2のコサイン類似度測定値は、「うわー!お大事に!」に対する埋め込みを「私に教えてくれてありがと。」に対する埋め込みと比較することに基づき生成されてよい(選択されたセットの一部を形成するため)。ブロック310において、システムは、「3.16」の測定値を相違基準閾値(例えば3.50)とさらに比較し、相違基準閾値が満足されないと判定してよい。相違基準が満足されないことに基づき、システムはブロック312からブロック306に戻る。
【0069】
システムは、「どうしたの?」という候補応答が考慮されるまで、ブロック306、308、310、および312の実行をさらに継続する。図4におけるその候補応答に記載された「7.60」の類似性スコア(および図4におけるその候補応答の太字処理)に示されるように、閾値が満足される。したがって、ブロック314の対応する実行において、セットに含める用に選択されてよい。さらに、ブロック316の閾値数が3の場合、図3の方法は、ブロック316の対応する実行の際、ブロック318に進んでよい(「私たちに教えてくれてありがとう。」以降の候補応答および図4の省略で示される他の以降の候補応答を処理しない)。
【0070】
いくつかの実装では、1つまたは複数の埋め込み(例えばブロック304および/またはブロック308の1回または複数回の実行において)の生成は、埋め込みの算出を「ライブ」で実行する代わりに、「前もって算出され」、それらの前もって算出された埋め込みが、それらの実行において利用されてよいことに留意されたい。
【0071】
図5Aおよび図5Bは、受信された電子通信に対する返信に含める用の提案として、意味的に多様な候補応答のサブセットを提供する例示的なグラフィカルユーザインタフェース500Aおよび500Bをそれぞれ説明する。グラフィカルユーザインタフェース500Aおよび500Bは、クライアント装置106(例えばクライアント装置106において実行されるブラウザ中および/またはクライアント装置106において実行される専用の電子通信アプリケーション中)において提示されてよい。
【0072】
図5Aにおいて、ユーザに対して送信された元の電子メール580Aは、元の電子メール580Aに対して返信したいとの望みを示すユーザインタフェース入力をユーザが提供する前に、ユーザによって閲覧される。選択された応答591A、592A、および593Aは、グラフィカルユーザインタフェース500Aにおいて提示され、また電子メールに対する返信に含める用に提示される。例えば、応答591Aのユーザ選択によって、返信電子メールに自動的に組み入れられた「ぜひ!」というテキストを含む編集可能な返信電子メールをユーザに対して自動的に提示してよい。またはそのような返信電子メールを自動的に生成して送信(編集可能なバージョンをユーザに最初に提示することなく)してよい。応答のユーザ選択は、例えばシングル「タップ」、シングル「マウスクリック」等の単一のユーザインタフェース入力であってよい。図5Aにおいては、提示された応答は全てお互いに意味的に多様であり、また本明細書に記載された技術によって選択されてよいことに留意されたい。
【0073】
図5Bにおいて、ユーザに対して送信された元のチャットメッセージ580Bは、ユーザが元のチャットメッセージ580Bに対する返信に含める用のコンテンツを提供する前に(例えば、おそらくユーザが「返信」インタフェース要素を選択する後、ただしユーザが返信について何か「タイプする」前に)、ユーザによって閲覧される。選択された応答591B、592B、および593Bは、グラフィカルユーザインタフェース500Bにおいて提示され、また元のチャットメッセージ580Bに対する返信に含める用に提示される。例えば、応答593Bのユーザ選択によって、返信に自動的に組み入れられた「どうしたの?」というテキストを含む編集可能な返信チャットメッセージをユーザに対して自動的に提示してよい。またはそのような返信チャットメッセージを自動的に生成して送信(編集可能なバージョンをユーザに最初に提示することなく)してよい。図5Bにおいては、提示された応答は全てお互いに意味的に多様であり、また本明細書に記載された技術によって選択されてよいことに留意されたい。
【0074】
グラフィカルインタフェースの例が図5Aおよび5Bに提示されたが、応答は、クライアント装置を介して可聴的にユーザに対して提示するために追加的にまたは代替的に提供されてよいことが理解される。例えば、クライアント装置106は、受信された電子通信を可聴的に「読み上げ」て、その後、「ぜひと応答するにはAと言ってください、何時と応答するにはBと言ってください、ごめん行けないと応答するにはCと言ってください」ということを可聴的に提供してよい。可聴的提供の間または後の、口頭でのA、B、またはCのユーザインタフェース入力に応じて、クライアント装置106は対応する返信を生成および送信してよい。
【0075】
本明細書に記載されるシステムがユーザについての個人情報を収集する、または個人情報を利用し得る状況では、プログラムまたはフィーチャがユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の地理的な位置についての情報)を収集するかどうかを管理する機会、またはユーザにより関連し得るコンテンツサーバからコンテンツを受信するかどうかおよび/もしくはどのように受信するかを管理する機会がユーザに対して提供されてよい。さらに、あるデータは、個人識別が可能な情報が削除されるように、記憶または使用される前に1つまたは複数の方法で処理されてよい。例えば、ユーザのアイデンティティは、個人識別が可能な情報がユーザに判定されないように処理される。つまり、ユーザの地理的な位置は、地理的な位置情報が取得されるよう(例えば都市、郵便番号、または州レベルで)一般化されるため、ユーザの特定の地理的な位置が判定されない。したがって、ユーザは、ユーザに関して情報がどのように収集されるかおよび/または使用されるかの管理をしてよい。
【0076】
図6は例示的なコンピューティング装置610のブロック図である。コンピューティング装置610は、バスサブシステム612を介して複数の周辺装置と通信をする1つ以上のプロセッサ614を一般的に含む。これらの周辺装置は、例えば、メモリサブシステム625およびファイル記憶サブシステム626を含む記憶サブシステム624、ユーザインタフェース出力装置620、ユーザインタフェース入力装置622、およびネットワークインタフェースサブシステム616を含んでよい。入力および出力装置は、コンピューティング装置610とのユーザ対話を可能にする。ネットワークインタフェースサブシステム616は、外部ネットワークに対してインタフェースを提供し、また他のコンピューティング装置中の対応するインタフェース装置に接続されている。
【0077】
ユーザインタフェース入力装置622は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックスタブレット等のポインティング装置、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム等のオーディオ入力装置、マイクロフォン、および/または他の種類の入力装置を含んでよい。一般に、「入力装置」という用語の使用は、全ての可能な種類の装置および、コンピューティング装置610に対してまたは通信ネットワーク上に情報を入力する方法を含むよう意図されている。
【0078】
ユーザインタフェース出力装置620は、ディスプレイサブシステム、プリンタ、fax装置、またはオーディオ出力装置等の非視覚的ディスプレイを含んでよい。ディスプレイサブシステムは、CRT(陰極線管)、LCD(液晶ディスプレイ)等のフラットパネル装置、プロジェクション装置、または可視画像を作成する何か他の機械を含んでよい。ディスプレイサブシステムは、例えばオーディオ出力装置を介して、非視覚的ディスプレイを提供してよい。一般に、「出力装置」という用語の使用は、全ての可能な種類の装置および、コンピューティング装置610からユーザまたは別の機械もしくはコンピューティング装置に対して情報を出力する方法を含むよう意図されている。
【0079】
記憶サブシステム624は、本明細書に記載されたモジュールのうちのいくつかのまたは全ての機能を提供するプログラムおよびデータ構造を記憶する。例えば、記憶サブシステム624は、図3の方法の選択された態様を実行するロジックを含んでよい。
【0080】
これらのソフトウェアモジュールは、一般的にプロセッサ617単独でまたは他のプロセッサと組み合わせで実行される。記憶サブシステムにおいて使用されるメモリ625は、プログラム実行中の命令およびデータ記憶用のメインのRAM(ランダムアクセスメモリ)630と、固定的な命令が記憶されるROM(リードオンリーメモリ)632含む複数のメモリを含んでよい。ファイル記憶サブシステム626は、プログラムおよびデータファイル用の固定記憶を提供してよく、ハードディスクドライブ、関連するリムーバブルなメディアと併用するフロッピー(登録商標)ディスクドライブ、CD-ROMドライブ、光学式ドライブ、またはリムーバブルメディアカートリッジを含んでよい。ある実装の機能を実装するモジュールは、ファイル記憶サブシステム626によって、記憶サブシステム627にまたはプロセッサ617がアクセス可能な他の機械に記憶されてよい。
【0081】
バスサブシステム612は、コンピューティング装置610の様々な構成要素およびサブシステムが意図されたように互いに通信可能な機構を提供する。バスサブシステム612は単一のバスとして模式的に示されているが、バスサブシステムの代替的実装は複数のバスを使用してよい。
【0082】
コンピューティング装置610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティング装置を含む異なる種類であってよい。コンピュータおよびネットワークの変わり続ける性質のため、図6に示されるコンピューティング装置610の記載は、いくつかの実装を説明するために特定の例であることのみが意図される。図6に示されるコンピューティング装置よりも多くまたは少なく構成要素を有する、コンピューティング装置610の複数の他の構成が可能である。
【0083】
複数の実装が本明細書に記載されかつ示されたが、機能を実行するためのおよび/または結果および/または1つまたは複数の本明細書に記載された効果を取得するための様々な他の手段および/または構成が利用されてよく、そのような各変形例および/または変更は、本明細書に記載された実装の範囲内であると見なされる。より一般的には、本明細書に記載された全てのパラメータ、寸法、材料、構成は、例示的であるよう意図されており、実際のパラメータ、寸法、材料および/または構成は、特定の適用または開示が使用される適用に依存する。当事者は、通常の実験を利用するだけで、本明細書に記載された特定の実装についての多くの同等物を認識または確認することが可能であろう。したがって、上記の実装は、単に例として提示されていることが理解され、また、本明細書に添付された特許請求および同等物の範囲内で、具体的に記載および請求されたものとは別の方法で実装が実施されてよいことが理解される。本開示の実装は、本明細書に記載された各個別の特徴、システム、物品、キット、材料、および/または方法に係る。加えて、そのような特徴、システム、物品、材料、キット、および/または方法の2つ以上の任意の組み合わせは、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合には、本開示の範囲内に含まれる。
図1
図2
図3
図4
図5A
図5B
図6