JP2019536135A - 言語モデルを用いたメッセージ内受信画像に対する自動提案応答 - Google Patents

言語モデルを用いたメッセージ内受信画像に対する自動提案応答 Download PDF

Info

Publication number
JP2019536135A
JP2019536135A JP2019520680A JP2019520680A JP2019536135A JP 2019536135 A JP2019536135 A JP 2019536135A JP 2019520680 A JP2019520680 A JP 2019520680A JP 2019520680 A JP2019520680 A JP 2019520680A JP 2019536135 A JP2019536135 A JP 2019536135A
Authority
JP
Japan
Prior art keywords
user
word
response
image
responses
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019520680A
Other languages
English (en)
Other versions
JP6625789B2 (ja
Inventor
フックスマン、アリエル
ラマヴァジャラ、ヴィベク
イー、ニン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019536135A publication Critical patent/JP2019536135A/ja
Application granted granted Critical
Publication of JP6625789B2 publication Critical patent/JP6625789B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene

Abstract

実装は受信メッセージに含まれる画像への自動応答提案に関する。ある実装形態ではコンピュータ実装方法は、第1のユーザにより第1のメッセージ内に投稿された画像を検出すること、画像をプログラム的に分析し画像を表す特徴ベクトルを判定することを含む。方法は特徴ベクトルに基づき第1のメッセージに対する1つ又は複数の提案された応答をプログラム的に生成し、各提案された応答は第1のメッセージへの会話型の返信である。提案された応答を生成することは、前の画像に対する前の応答でトレーニングされたモデルを用いて特徴ベクトルについて単語シーケンスに関連する確率を判定すること、関連する確率に基づき単語シーケンスの1つ又は複数を選択することを含む。提案された応答は選択された単語シーケンスに基づき判定される。方法は提案された応答を第2のユーザに対する1つ又は複数の提案としてメッセージングアプリケーションでレンダリングする。

Description

デジタルモバイルデバイスの人気および利便性、ならびにインターネット通信の広範な使用は、ユーザデバイス間の通信をユビキタスなものにした。例えば、ユーザは一般にそのデバイスを用いて、テキストメッセージ、チャットメッセージ、電子メール等として他のユーザに電子メッセージを送信する。ユーザは、メッセージにおいて画像を他のユーザに送信して、視覚的コンテンツを受信ユーザに提供することができる。
本明細書で提供される背景の説明は、本開示の状況を概略的に提示することを目的としている。出願時に先行技術として認められない可能性がある記載の態様だけでなく、本背景技術の欄に記載されている限りにおいて、本発明者らの取り組みは、明示的にも暗示的にも本開示に対する先行技術として認めたものではない。
本出願の実装形態は、受信されたメッセージに含まれる画像に対する自動応答提案に関する。いくつかの実装形態では、コンピュータにより実装される方法は、第1のユーザによって第1のメッセージ内に投稿された画像を検出すること、画像をプログラム的に分析して、画像を表す特徴ベクトルを判定することを含む。方法は、特徴ベクトルに基づいて、第1のメッセージに対する1つまたは複数の提案された応答をプログラム的に生成し、1つまたは複数の提案された応答は、それぞれ第1のメッセージに対する会話型の返信である。1つまたは複数の提案された応答をプログラム的に生成することは、前の画像に対する前の応答でトレーニングされたモデルを使用して、特徴ベクトルについて単語シーケンスに関連する確率を判定すること、および単語シーケンスに関連する確率に基づいて、単語シーケンスのうちの1つまたは複数の単語シーケンスを選択することを含む。1つまたは複数の提案された応答は、1つまたは複数の選択された単語シーケンスに基づいて判定される。本方法は、1つまたは複数の提案された応答が、第2のユーザに対する1つまたは複数の提案としてメッセージングアプリケーションにおいてレンダリングされるようにする。
方法の様々な実装形態および例が説明される。例えば、いくつかの実装形態では、1つまたは複数の提案された応答を提供することは、メッセージングアプリケーションにおいて1つまたは複数の提案された応答をレンダリングするためのコマンドを送信することを含む。いくつかの実装形態では、確率は、格納されたボキャブラリにおける各単語が1つまたは複数の単語シーケンスのうちの1つにおける次の単語である確率を含み、1つまたは複数の単語シーケンスを選択することは、判定された確率のうちの1つまたは複数の最高確率に関連付けられた1つまたは複数の単語シーケンスのうちの複数を選択することを含む。いくつかの実装形態では、モデルは、調整された言語モデルであり、単語シーケンスに関連する確率を判定することは、特徴ベクトルを調整された言語モデルに入力することを含む。いくつかの例では、調整された言語モデルは、長期短期記憶(LSTM)ネットワークを使用する。いくつかの実装形態は、ビームサーチ技術を使用して1つまたは複数の単語シーケンスを選択する。いくつかの実装形態では、1つまたは複数の単語シーケンスの各々は、単語シーケンスおよび特徴ベクトルに含まれる単語を符号化する単語埋め込みとしてモデルによって使用される。
さらなる例示的実装形態では、1つまたは複数の単語シーケンスは、前の応答から判定されたボキャブラリ内の複数の単語から判定されており、確率を判定することは、ボキャブラリ内の各単語が、単語シーケンス内の次の単語になる確率を各単語シーケンスに対して反復的に判定することを含む。いくつかの例では、前の応答は、前の画像に対する応答のより大きいセットから選択されたものであり、前の応答は、応答のより大きいセットの他の前の応答よりも前の画像の特定のコンテンツに対してより特有のものである。
さらなる例示的実装形態では、モデルは、調整された言語モデルであり、1つまたは複数の単語シーケンスを選択することは、反復的に、特徴ベクトルおよび前の単語シーケンスを調整された言語モデルに供給して、特徴ベクトルおよび前の単語シーケンスに基づいて、新しい単語シーケンスのセットおよび新しい単語シーケンスに関連する確率を判定することを含み、新しい単語シーケンスのうちの1つまたは複数は、前の単語シーケンスに対して少なくとも1つの追加の単語を有し、1つまたは複数の単語シーケンスを選択することは、新しい単語シーケンスに関連する確率に基づいて新しい単語シーケンスのセットのサブセットを選択し、選択されたサブセットの1つの単語シーケンスを次の反復のための前の単語シーケンスとして選択することを含む。
さらなる例示的実装形態では、方法は、第2のユーザが提案された応答を選択すると、提案された応答をメッセージ応答として第1のメッセージに投稿することをさらに含む。いくつかの実装形態では、方法は、1つまたは複数の単語シーケンスの各々が、単語シーケンスのホワイトリストに存在するかどうかをチェックすることをさらに含み、選択された1つまたは複数の単語シーケンスは、ホワイトリストに存在するものである。いくつかの実装形態は、第2のユーザによって提供された前のメッセージ応答に対する類似性に基づいて重み付けされた少なくとも1つの単語シーケンスを選択する。いくつかの実装形態では、調整された言語モデルは、第1の言語に固有の第1の調整された言語モデルとして提供され、方法は、第2の言語に固有の第2の調整された言語モデルを提供すること、第1のメッセージが受信されるメッセージ会話のための言語が、第1の言語であることを判定すること、第1の調整された言語モデルを選択して、1つまたは複数の提案された応答をプログラム的に生成することにおいて用いられるようにすることを含む。
いくつかの実装形態では、システムは、メモリと、メモリにアクセスするように構成され、かつ動作を実行するように構成された少なくとも1つのプロセッサを含み、動作は、第1のユーザによって第1のメッセージ内に投稿された画像を検出すること、画像をプログラム的に分析して、画像を表す特徴ベクトルを判定することを含む。動作は、特徴ベクトルに基づいて第1のメッセージに対する1つまたは複数の提案された応答をプログラム的に生成することを含み、1つまたは複数の提案された応答は、それぞれ、第1のメッセージに対する会話型の返信であり、かつ単語シーケンス内に配置された1つまたは複数の単語を有する。1つまたは複数の提案された応答をプログラム的に生成することは、1つまたは複数の提案された応答のうちの各1つに対し、特徴ベクトルに基づいて、および単語シーケンス内の1つまたは複数の前の単語に基づいて、単語シーケンス内に配列された1つまたは複数の単語のうちの各単語を反復的に判定することを含む。動作は、1つまたは複数の提案された応答が、第2のユーザに対する1つまたは複数の提案としてメッセージングアプリケーションにレンダリングされるようにすることを含む。
システムの様々な実装および例が説明される。例えば、いくつかの実装形態では、1つまたは複数の提案された応答をプログラムによって生成する動作は、前の画像に対する前の応答を含むデータに基づいて1つまたは複数の単語シーケンスに関連する確率を判定することを含む。いくつかの実装形態では、1つまたは複数の提案された応答をプログラム的に生成する動作は、1つまたは複数の単語シーケンスに関連する確率に基づいて1つまたは複数の提案された応答を選択することを含む。いくつかの実装形態では、単語シーケンスの確率を判定する動作は、前の画像に対する前の応答を含むデータを使用してトレーニングされた調整された言語モデルを使用することを含み、調整された言語モデルは、入力として受信された特徴ベクトルにより調整されており、長期短期記憶(LSTM)ネットワークを使用する。
いくつかの実装形態では、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、動作を実行することによって、提案されたコンテンツをプロセッサに自動的に提供させるソフトウェア命令を格納している。動作は、画像を受信すること、および画像をプログラム的に分析して、画像を表す特徴ベクトルを判定することを含む。動作は、特徴ベクトルに基づいて画像に対する1つまたは複数の提案された応答をプログラム的に生成することを含み、1つまたは複数の提案された応答は、それぞれ、画像に対する会話型の返信であり、かつ単語シーケンス内に配列された1つまたは複数の単語を有している。1つまたは複数の提案された応答をプログラム的に生成することは、1つまたは複数の提案された応答の各々について、特徴ベクトルおよび単語シーケンス内の1つまたは複数の前の単語に基づいて、単語シーケンス内に配列された1つまたは複数の単語の各単語を反復的に判定することを含む。動作は、1つまたは複数の提案された応答を出力して、ユーザに対する1つまたは複数の提案としてアプリケーションにおいてレンダリングされるようにすることを含む。
コンピュータ可読媒体の様々な実装形態は、例えば、メッセージングアプリケーションでレンダリングされる提案された応答を含み、いくつかの実装形態では、1つまたは複数の提案された応答をプログラム的に生成する動作は、前の画像に対する前の応答を含むデータに基づいてトレーニングされ、かつ入力として受信された特徴ベクトルによって調整された、調整された言語モデルを用いて1つまたは複数の提案された応答に関連する確率を判定することを含み、調整された言語モデルは、長期短期記憶(LSTM)ネットワークを使用するものであり、1つまたは複数の提案された応答をプログラム的に生成する動作は、1つまたは複数の提案された応答に関連する確率に基づいて、1つまたは複数の提案された応答を選択することを含む。
本明細書に記載の1つまたは複数の実装形態に使用することができる例示的なシステムおよびネットワーク環境のブロック図である。 いくつかの実装形態による画像を含むメッセージに対する提案された応答を提供するための例示的な方法を示すフロー図である。 いくつかの実装形態による画像を表す特徴ベクトルに基づいて1つまたは複数の提案された応答を生成するための例示的な方法を示すフロー図である。 いくつかの実装形態による1つまたは複数の説明された提案された応答機能を実装することができる例示的なモジュールを示すブロック図である。 いくつかの実装形態による調整された言語モデルのうちの1つまたは複数の機能を実装することができるアーキテクチャの一例を示すブロック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 いくつかの実装形態による画像に対する判定された提案応答の例を示すグラフィック図である。 本明細書に記載の1つまたは複数の実装形態に使用できる例示的なデバイスのブロック図である。
本明細書に記載の1つまたは複数の実装形態は、受信されたメッセージに含まれる画像に対する自動応答提案に関する。いくつかの実装形態では、メッセージングアプリケーションにおいてコンテンツを自動的に提案することは、第1のユーザによってメッセージ内に投稿された画像を検出すること、および画像をプログラム的に分析して画像を表す特徴ベクトルを判定することを含む。特徴ベクトルは、メッセージに対する1つまたは複数の提案された応答を生成するために使用され、提案された応答は、第1のメッセージに対する会話型の返信である。例えば、いくつかの実装形態では、調整された言語モデルは、前の画像に対する前の応答を含むトレーニングデータに基づいて、特徴ベクトルについての単語シーケンスに関連する確率を判定するようにトレーニングされる。単語シーケンスのうちの1つまたは複数が確率に基づいて選択され、提案された応答は選択された単語シーケンスに基づいている。提案された応答は出力され、例えば、第2のユーザに対する1つまたは複数の提案としてメッセージングアプリケーションにおいてレンダリングされる。
さまざまな機能が説明される。例えば、提案された応答は、それぞれ単語シーケンス内に配列された1つまたは複数の単語を有することができ、各提案された応答について、単語シーケンスの各単語は、特徴ベクトルに基づいて、かつ単語シーケン内の1つまたは複数の前の単語に基づいて、反復的に判定されることが可能である。提案された応答は、単語シーケンス内の次の単語となるべき単語の確率に基づいて選択されることが可能であり、例えば、提案された応答は、ボキャブラリの単語の中のそれらの構成要素単語が順に最も高い確率を有するように判定された単語シーケンスとすることができる。例えば、1つまたは複数の単語シーケンスは、トレーニングデータに基づくボキャブラリ内の単語のセット、例えば前のメッセージ画像およびそれらの画像への前の応答を含むトレーニングメッセージデータのセットから得られた単語のセットから判定されることが可能である。いくつかの例では、トレーニングデータは、トレーニングデータ内の前の応答が、フィルタリングされている他の前の応答よりも前の画像の特定のコンテンツに対してより特有のものとなるようにフィルタリングされることが可能である。
様々な例では、調整された言語モデルは、長期短期記憶(long-short term memory:LSTM)ネットワークを使用することができる。単語シーケンスは、ビームサーチ技術を用いて選択されることが可能である。いくつかの例では、システムは、1つまたは複数の単語シーケンスの各々が単語シーケンスのホワイトリストに存在するかどうかをチェックすることができ、その結果、ホワイトリストに存在する単語シーケンスは、提案された応答として適格なものとなる。いくつかの実装形態では、提案された応答の出力後、第2のユーザが提案された応答を選択する場合、選択された提案された応答は、第1のメッセージおよび画像に対するメッセージ応答として第1のユーザに送信される。いくつかの実装形態では、1つまたは複数の単語シーケンスは、現在受信している画像と同様の前の画像の受信に応答して第2のユーザによって提供された前のメッセージ応答との類似性に基づいて、提案応答としての選択のために重み付けされる。いくつかの実装形態では、複数の調整された言語モデルが提供されることが可能であり、各言語モデルは異なる言語に関連する。特定の調整された言語モデルは、第1のメッセージが受信されるメッセージ会話の検出された言語に基づいて、画像に対する提案された応答を判定するために選択されることが可能である。いくつかの実装形態では、1つまたは複数のメッセージ応答は、例えば、取得された画像に関する情報についての、ボットへのコマンドまたは要求であると判定され得る。
本明細書に記載の1つまたは複数の特徴は、メッセージ内の受信された画像に応答して、提案応答を自動的に提供することを可能にし、提案された応答は、受信された画像のコンテンツに対するメッセージ応答として適切であり、かつ関連性を有するものである。例えば、本明細書に記載の機能は、あたかもユーザがメッセージ応答を作成しているかのように、画像内の特定のコンテンツに対する適切な反応を含むことができる提案された応答を提供することが可能である。これは、メッセージ会話におけるユーザの応答を判定する際のより柔軟なオプションをユーザに提供し、そうでなければメッセージに適切に応答することができないユーザに対してオプションを提供することができる。
例えば、メッセージ会話中の様々な時点で、ユーザは、適切な応答で受信されたメッセージに対し応答するのに十分な注意および/または集中を提供することができない可能性があり、および/またはそのような適切な応答を作成するためにユーザデバイスに詳細なユーザ入力を提供することができない可能性がある。いくつかの例では、ユーザは活動を実行しているか、または適切な応答が不可能であるか、またはユーザが提供することがより困難である環境にいる可能性がある。本明細書に記載の1つまたは複数の機能は、画像に応答してユーザに自動メッセージ提案を有利に提供する。例えば、1つまたは複数の自動メッセージ応答が、ユーザデバイス間のメッセージング会話において受信された画像に基づいて自動的に提案され、ユーザは、会話に投稿するために提案から所望の応答を単に選択することができる。メッセージ提案は受信された画像に関連し、デバイス上で応答を作成するためのユーザ入力および応答時間を低減して、ユーザが受信された画像に対し簡単かつ迅速に応答することを可能にし、したがってそうでなければ可能性のある応答の大量のセットを表示するために必要とされるデバイスリソースの消費を減少させ、および/または、応答を作成し、検索し、編集し、または提案された応答を完成させ、および/または電子デバイスを介して行われる会話に参加するためのユーザからの追加入力を可能にし、かつ処理するために必要とされるデバイスリソースの消費を減少させる。結果として、1つまたは複数の記載された実装形態の技術的効果は、結果を得るために費やされる計算時間およびリソースをより少なくしつつ、デバイスで実装される会話において応答の作成および送信が達成されることである。例えば、説明された技術および特徴の技術的効果は、説明された技術または特徴のうちの1つまたは複数を提供しないシステムと比較して、メッセージ応答を表示、作成、および送信するために利用されるシステム処理リソースの消費が低減されることである。
従来技術では、画像内の1つまたは複数のオブジェクトまたは特徴を認識することに基づいて画像に対する提案された応答を判定することが可能であり、例えば、画像がリンゴを含むことを認識することに応じて、そのような認識に対応する提案された応答が提供され得る。しかしながら、そのような技術の多くは、例えば、オブジェクトが認識されていない画像に対しては、提案を提供することができない可能性がある。さらに、これらの技術のうちのいくつかは、例えば、オブジェクト認識が誤っているか、または不完全である場合、不正確な提案を提供する可能性がある。加えて、画像内で複数のオブジェクト(例えば、りんごおよびナイフ)が認識される場合、これらの技術のうちのいくつかは、オブジェクトをリストする単純な応答、例えば「りんごおよびナイフ」、またはユーザによって選択されることがほとんどない応答を生成する可能性がある。
本明細書に記載の技術は、これらおよび他の欠点を克服する。例えば、本技術は、より多様性および/または質の高い提案応答を提供することが可能である。例えば、本明細書に記載の技術は、得られた画像のピクセルから直接判定された画像特徴ベクトルをトレーニングされたニューラルネットワークに供給して、応答を生成する。そのようなニューラルネットワークは、画像内のオブジェクトを明確に認識する必要なしに、任意の種類の画像に対する応答を提供することができる。さらに、画像ピクセルに基づいてトレーニングされたモデルの使用は、オブジェクトを認識し、それらのオブジェクトに関連する予め定義されたラベルを使用することに依存する技術よりも幅広い種類の応答を可能にし得る。例えば、いくつかの実装形態では、提案された応答における単語が選択されるボキャブラリは、複数の言語からの単語、辞書内の単語ではない可能性がある人間の表現(例えば、「aww」、「!!!」など)、他の種類の記号(絵文字、ステッカーなど)、異なる画像、または組み合わせを含み得る。加えて、本明細書に記載の技術は、ユーザによって選択される可能性がより高い応答提案を提供することができるが、これは、認識された画像の特徴に基づいて構築される応答提案よりも自然であることが可能だからである。したがって、説明された技術および特徴の別の技術的効果は、説明された技術または特徴のうちの1つまたは複数を提供しないシステム、例えば、関連性のあると思われる多数の提案された応答を表示するため、および/またはユーザが送信しようとしている応答を特定し、選択し、編集し、または作成するのに必要なユーザからの入力を受信するために、追加の計算リソースが必要とされる従来のコンテンツ認識技術を使用するシステムと比較して、メッセージ応答を作成および送信するために利用されるシステム処理リソースの消費を低減できることである。
記載された技術はさらなる利点を提供する。例えば、いくつかの実装において、応答のホワイトリストを使用することは、特定のタイプの応答が提案から削除されることを可能にし、応答提案をユーザによって選択される可能性が高いものとすることを可能にする。さらに、いくつかの実装形態では、本明細書で説明される技術は、計算リソースの使用量を減らして、画像特徴ベクトルに基づいて多数の可能な単語シーケンスを有利に評価することができるビームサーチ(beam search)を利用する。いくつかの実装形態では、説明される技術は、画像特徴ベクトルに基づいて、画像が提案を提供するのに適さないと判定し、応答を生成するための計算ステップを実行しないことによって計算リソースを節約し得る。ユーザがそのようなデータの使用を許可するいくつかの実装形態では、言語モデルは、例えば追加のトレーニングデータおよびユーザの選択に基づいて定期的に再トレーニングされることが可能であり、したがってそのような再トレーニングに基づく改善された提案を提供することができる。
本明細書で説明される特定の実装形態が、ユーザに関する個人情報(例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの所在地および所在地における時間、ユーザのバイオメトリック情報、ユーザの活動およびデモグラフィック情報)を収集または使用し得る状況において、ユーザには、情報が収集されるかどうか、個人情報が格納されるかどうか、個人情報が使用されるかどうか、およびユーザに関する情報がどのように収集、格納、および使用されるかを制御するための1つまたは複数の機会が提供される。すなわち、本明細書で論じられるシステムおよび方法は、関連するユーザからそのようにするための明示的な許可を受け取ることに明確に基づいて、ユーザの個人情報を収集し、格納し、および/または使用する。例えば、ユーザは、プログラムまたは機能がその特定のユーザまたはプログラムまたは機能に関連する他のユーザについてのユーザ情報を収集するかどうかについての制御を提供される。個人情報が収集される各ユーザには、そのユーザに関連する情報収集を制御することを許可し、情報が収集されるかどうか、および情報のどの部分が収集されるかについて許可または認証を与えるための1つまたは複数のオプションが提示される。例えば、ユーザは、通信ネットワークを介して1つまたは複数のそのような制御オプションを提供されることが可能である。さらに、特定のデータは、個人を特定できる情報が削除されるように、それが保存または使用される前に1つまたは複数の方法で処理されることが可能である。一例として、個人を識別可能な情報が判定され得ないように、ユーザの識別情報が扱われることが可能である。別の例として、ユーザの地理的位置は、ユーザの特定の位置が判定され得ないように、より大きな領域に一般化することができる。
本明細書で言及される「画像」は、1つまたは複数のピクセル値(例えば、色値、輝度値など)を備えるピクセルを有するデジタル画像である。画像は、静止画像または単一画像、または一連の画像に含まれる画像、例えばビデオフレームのビデオシーケンス内のフレーム、または異なるタイプのシーケンス内の画像または画像のアニメーションであってよい。例えば、本明細書に記載の実装形態は、単一の画像、画像のビデオシーケンス、またはアニメ画像(例えば、シネマグラフまたは他のアニメーション)と共に使用することができる。
図1は、自動支援エージェントを可能とし、いくつかの実施形態では自動支援エージェントを提供するメッセージングサービスを提供するための例示的な環境100のブロック図を示す。例示的な環境100は、メッセージングサーバ101、1つまたは複数のクライアントデバイス115a、115n、サーバ135、応答提案生成器150、およびネットワーク140を含む。ユーザ125a〜125nは、それぞれのクライアントデバイス115a、115nに関連付けられることができる。サーバ135は、例えば、メッセージングサービスを提供する当事者とは異なる当事者によって制御されるサードパーティサーバであり得る。様々な実装形態では、以下でさらに詳細に説明するように、サーバ135はボットサービスを実装することができる。いくつかの実装形態では、環境100は、図1に示されている1つまたは複数のサーバまたはデバイスを含まないことがあり、または図1に示されない他のサーバまたはデバイスを含むことがある。図1および残りの図において、参照番号の後続の文字、例えば「115a」は、その特定の参照番号を有する要素への参照を表す。後続の文字を除いた本文中の参照番号、例えば「115」は、その参照番号を有する要素の実装に対する一般的な参照を表す。
図示の実装形態では、メッセージングサーバ101、クライアントデバイス115、サーバ135、および応答生成器150は、ネットワーク140を介して通信可能に結合されている。様々な実装形態では、ネットワーク140は、有線または無線の従来型のものとすることができ、星型構成、トークンリング構成または他の構成を含む多数の異なる構成をとることができる。さらに、ネットワーク140は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えばインターネット)、および/または複数のデバイスが通信することができる他の相互接続されたデータパスを含むことができる。いくつかの実装形態では、ネットワーク140はピアツーピアネットワークであってよい。ネットワーク140は、様々な異なる通信プロトコルでデータを送信するために電気通信ネットワークの一部に結合されるかまたはその一部を含むこともできる。いくつかの実装形態では、ネットワーク140は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、電子メールなどを介することを含むデータの送受信のための、ブルートゥース(登録商標)通信ネットワーク、Wi−Fi(登録商標)、またはセルラー通信ネットワークを含む。図1は、クライアントデバイス115、メッセージングサーバ101、およびサーバ135に結合された1つのネットワーク140を示しているが、実際には、1つまたは複数のネットワーク140が、これらのエンティティに結合し得る。
メッセージングサーバ101は、プロセッサ、メモリ、およびネットワーク通信機能を含み得る。いくつかの実装形態では、メッセージングサーバ101は、ハードウェアサーバである。いくつかの実装形態では、メッセージングサーバ101は、仮想化環境に埋め込まれ得る。例えば、メッセージングサーバ101は、1つまたは複数の他の仮想マシンを含み得るハードウェアサーバ上で実行される仮想マシンであってよい。メッセージングサーバ101は、信号線102を介してネットワーク140に通信可能に結合されている。信号線102は、イーサネット(登録商標)、同軸ケーブル、光ファイバケーブルなどのような有線接続、またはWi−Fi、ブルートゥース、または他の無線技術などの無線接続とすることができる。いくつかの実装形態では、メッセージングサーバ101は、ネットワーク140を介して、クライアントデバイス115a〜115n、サーバ135、応答生成器150、およびボット113のうちの1つまたは複数との間でデータを送受信する。いくつかの実装形態では、メッセージングサーバ101は、ユーザ(例えば、ユーザ125のうちのいずれか)が他のユーザおよび/またはボットとメッセージを交換することを可能にするためのクライアント機能を提供するメッセージングアプリケーション103aを含み得る。メッセージングアプリケーション103aは、サーバアプリケーション、クライアント−サーバアプリケーションのサーバモジュール、または(例えば、1つまたは複数のクライアントデバイス115上の対応するクライアントメッセージングアプリケーション103bを有する)分散アプリケーションとすることができる。
メッセージングサーバ101は、メッセージングサーバ101を介して交換されたメッセージ、1つまたは複数のボットのデータおよび/または構成、コンテンツ分類器130によって提供された情報、ならびに1つまたは複数のユーザ125に関連するユーザデータを、それぞれのユーザからそのようなデータを格納するための明示的な許可がある場合には格納することができるデータベース199も含む。いくつかの実施形態では、メッセージングサーバ101は、1つまたは複数の支援エージェント、例えばボット107aおよび111を含むことができる。他の実施形態では、支援エージェントは、メッセージングサーバ101上ではなく、クライアントデバイス115a〜n上に実装され得る。
メッセージングアプリケーション103aは、ユーザ125と1つまたは複数のボット105、107a、107b、109a、109b、111、および113との間のメッセージの交換を可能にするためのプロセッサによって動作可能なコードおよびルーチンであり得る。いくつかの実装形態では、メッセージングアプリケーション103aは、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むハードウェアを使用して実装され得る。いくつかの実装形態では、メッセージングアプリケーション103aは、ハードウェアとソフトウェアとの組み合わせを使用して実装され得る。
様々な実装形態では、クライアントデバイス115に関連するそれぞれのユーザが、メッセージの格納について同意したときに、データベース199は、1つまたは複数のクライアントデバイス115間で交換されたメッセージを格納することができる。いくつかの実装形態では、クライアントデバイス115に関連するそれぞれのユーザがメッセージの格納について同意したときに、データベース199は、1つまたは複数のクライアントデバイス115と、例えば他のクライアントデバイス、メッセージングサーバ101、およびサーバ135などの異なるデバイス上に実装された1つまたは複数のボットとの間で交換されるメッセージを格納し得る。一または複数のユーザが同意しない実装形態では、それらのユーザによって送受信されたメッセージは格納されない。
いくつかの実装形態では、メッセージは、例えば、メッセージの送信者および受信者だけが暗号化されたメッセージを見ることができるように暗号化されてもよい。いくつかの実装形態では、メッセージが格納されている。いくつかの実装形態では、データベース199は、例えば、ボット107a、ボット111などの1つまたは複数のボットのデータおよび/または構成をさらに格納することができる。ユーザ125が、(ソーシャルネットワークデータ、連絡先情報、画像などのような)ユーザデータの格納に同意するいくつかの実装形態では、データベース199はそのような同意を提供したそれぞれのユーザ125に関連するユーザデータを格納することもできる。
いくつかの実装形態では、メッセージングアプリケーション103a/103bは、ユーザ125が新しいボットを作成することを可能にするユーザインタフェースを提供することができる。これらの実装形態では、メッセージングアプリケーション103a/103bは、メッセージングアプリケーション103a/103bのユーザ間の会話にユーザ作成ボットを含めることを可能にする機能を含み得る。
応答生成器150は、プロセッサ、メモリおよびネットワーク通信機能を含むことができる。いくつかの実装形態では、応答生成器150はハードウェアサーバである。応答生成器150は信号線152を介してネットワーク140に通信可能に結合されている。信号線152は、イーサネット(登録商標)、同軸ケーブル、光ファイバケーブルなどのような有線接続、またはWi−Fi(登録商標)、ブルートゥース(登録商標)、または他の無線技術などの無線接続とすることができる。いくつかの実装形態では、応答生成器150は、ネットワーク140を介してメッセージングサーバ101およびクライアントデバイス115a〜115nのうちの1つまたは複数との間でデータを送受信する。応答生成器150は1つのサーバとして示されているが、複数の応答生成器150が可能である。いくつかの実装形態では、応答生成器150は、環境100の1つまたは複数の他の構成要素、例えばメッセージングサーバ101、クライアントデバイス115a、サーバ135、コンテンツサーバ154などに含めることができる。
応答生成器150は、特定の画像への返信として1つまたは複数の提案された応答を判定し提供する。例えば、提案された応答は、メッセージングサーバ101、および/または、1つまたは複数のクライアントデバイス115のメッセージングアプリケーションに提供され得る。応答生成器は機械学習を使用でき、例えば、提案された応答を判定するために機械学習を利用する調整された言語モデルを使用することができる。例えば、応答生成器は、画像のトレーニングデータ(例えば、メッセージトレーニングデータ)と、メッセージングアプリケーションのコンテキストにおける画像に対する正しい、実際の、および/または所望の応答とを使用してトレーニングされることが可能であり、次に応答生成器は、それが受信する新しい画像に対する応答を判定することが可能である。例えば、調整された言語モデルは、合成データ、例えば、ユーザ情報を使用せずにコンピュータによって自動的に生成されたデータを使用してトレーニングされ得る。いくつかの実装形態では、調整された言語モデルは、サンプルデータ、例えば、トレーニングのためにユーザデータを利用する許可がメッセージデータを提供するユーザから明示的に得られているサンプルメッセージデータに基づいてトレーニングされ得る。例えば、サンプルデータは、受信されたメッセージと、受信されたメッセージに対して送信された応答とを含み得る。サンプルデータに基づいて、モデルは受信されたメッセージに対する応答を予測することができ、その後、それを提案された応答として提供することが可能である。いくつかの実装形態では、応答生成器150は、長期短期記憶(LSTM)ネットワークを用いて、応答の単語が反復的に、例えば一度に1単語で、判定される単語シーケンスとして、応答を判定することが可能である。
いくつかの実装形態は、1つまたは複数の特徴について検出された画像特徴、例えば、提案された応答のランク付けを使用することもできる。例えば、画像の特徴には、人物(人物の身元を特定することなく)、動物、オブジェクト(品物、乗り物など)、特定の記念碑、風景の特徴(葉、山、湖、空、雲、日の出または日の入り、建物、橋など)天気などを含み得る。さまざまな画像認識および検出技術(例えば、トレーニング画像に基づく機械学習、参照画像内の参照特徴との比較など)が画像の特徴を検出するために使用され得る。
応答生成器150は、メッセージングサーバ101を管理するのと同じ者によって管理されてもよく、またはサードパーティによって管理されてもよい。いくつかの実装形態では、応答生成器150はボットをホストする。ボットは、提案を提供するために特定の機能を実行するコンピュータプログラムであってよく、例えば、予約ボットは予約を行い、自動返信ボットは返信メッセージテキストを生成し、スケジューリングボットはカレンダーの予定を自動的にスケジュールする等である。応答生成器150は、メッセージングアプリケーション103への提案された応答として1つまたは複数のボットを提供または参照する。例えば、ボットのためのコードはメッセージングアプリケーション103に組み込まれてもよく、またはメッセージングアプリケーション103は応答生成器150で実装されるボットに要求を送信してもよい。いくつかの実装形態では、メッセージングアプリケーション103は、応答生成器150にボットコマンドを提供し、ボットコマンドに基づいた提案を受け取ることによって、ユーザ125と応答生成器150との間の仲介として機能する。
いくつかの実装形態では、コンテンツサーバ154は、例えばハードウェアサーバとして環境100において提供することができ、プロセッサ、メモリ、およびネットワーク通信機能を含むことができる。コンテンツサーバ154は、1つまたは複数のネットワーク接続156を介してネットワーク140に結合されることが可能である。いくつかの実装形態では、コンテンツ分類器は、メッセージングアプリケーション103に情報を提供することができる。例えば、コンテンツサーバ154は、電子百科事典、ナレッジグラフ、1つまたは複数のデータベース、ソーシャルネットワークアプリケーション(例えば、ソーシャルグラフ、友人用のソーシャルネットワーク、ビジネス用のソーシャルネットワークなど)、場所またはロケーションのウェブサイト(例えば、レストラン、自動車販売店など)、マッピングアプリケーション(例えば、案内を提供するウェブサイト)などを保持することができる。例えば、コンテンツサーバ154は、メッセージングアプリケーション103からの情報の要求を受信し、検索を実行し、および要求内の情報を提供することができる。いくつかの実装形態では、コンテンツサーバ154は、画像内の特定のタイプのコンテンツの分類子を含むことができ、特定のクラスのうちのいずれかが画像のコンテンツ(例えば、ピクセル)内で検出されたかどうかを判定することが可能である。いくつかの例では、メッセージングアプリケーション103は、コンテンツサーバ154によってアクセスされたマッピングアプリケーションからの道案内または到着予定時刻を要求することができる。
いくつかの実装形態では、ユーザがそのようなデータの使用に同意する場合、コンテンツサーバ154は、メッセージングアプリケーション103が画像内の人物を対応するソーシャルネットワークプロファイルを使用して識別するために使用できるユーザのプロファイル情報またはプロファイル画像をメッセージングアプリケーション103に提供し得る。別の例では、提供されたユーザデータについてユーザの同意が得られた場合、コンテンツサーバ154は、メッセージングアプリケーション10によって使用されるメッセージ内で識別されたエンティティに関する情報をメッセージングアプリケーション103に提供することができる。例えば、コンテンツサーバ154は、画像内で識別されたランドマークについての情報を提供する電子百科事典、メッセージ内で識別されたエンティティを購入するための情報を提供する電子ショッピングウェブサイト、ユーザの同意を条件としてメッセージ内で識別されたユーザからの旅程を提供する電子カレンダーアプリケーション、メッセージ内のエンティティが訪れることのできる近くの場所に関する情報を提供するマッピングアプリケーション、メッセージ内で言及された料理が提供されたレストランのウェブサイトなどを含み得る。いくつかの実装形態では、コンテンツサーバ154は、応答生成器150と通信して情報を取得することができる。コンテンツサーバ154は、要求された情報を応答生成器150に提供することができる。
いくつかの実装形態では、応答生成器150および/またはコンテンツサーバ154は、メッセージングアプリケーション103から情報を受信して、例えばこれらのモジュールによって使用または保持されるデータベースを更新することができる。例えば、コンテンツサーバ154がレストランについてのウェブサイトを保持する場合、メッセージングアプリケーション103は、レストランでのユーザのお気に入りの料理など、レストランについての更新された情報をコンテンツサーバ154に提供することができる。
クライアントデバイス115は、メモリおよびハードウェアプロセッサを含むコンピューティングデバイス、例えば、カメラ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、モバイル電子メールデバイス、携帯型ゲーム機、携帯型音楽プレーヤー、リーダデバイス、ヘッドマウントディスプレイ、またはネットワーク140に無線でアクセスすることができる他の電子デバイスなどであり得る。
図示の実装形態では、クライアントデバイス115aは信号線108を介してネットワーク140に結合され、クライアントデバイス115nは信号線110を介してネットワーク140に結合されている。信号線108および110は、例えばイーサネットなどの有線接続、またはWi−Fi、ブルートゥース、または他の無線技術などの無線接続とすることができる。クライアントデバイス115a、115nは、それぞれユーザ125a、125nによってアクセスされる。図1のクライアントデバイス115a、115nは例として用いられている。図1は2つのクライアントデバイス115aおよび115nを示しているが、本開示は1つまたは複数のクライアントデバイス115を有するシステムアーキテクチャに適用される。
いくつかの実装形態では、クライアントデバイス115は、ユーザ125によって着用されるウェアラブルデバイスであり得る。例えば、クライアントデバイス115は、クリップ(例えば、リストバンド)の一部、宝飾品の一部、または眼鏡の一部として含まれてもよい。別の例では、クライアントデバイス115は、スマートウォッチとすることができる。様々な実装形態では、ユーザ125は、デバイスのディスプレイ上でメッセージングアプリケーション103a/103bからのメッセージを閲覧することができ、スピーカまたはデバイスの他の出力デバイスなどを介してメッセージにアクセスすることができる。例えば、ユーザ125は、スマートウォッチやスマートリストバンドのディスプレイ上でメッセージを閲覧することができる。別の例では、ユーザ125は、クライアントデバイス115に結合された、またはその一部であるヘッドホン(図示せず)、クライアントデバイス115のスピーカ、クライアントデバイス115の触覚フィードバック要素などを介してメッセージにアクセスすることができる。
いくつかの実装形態では、メッセージングアプリケーション103bはクライアントデバイス115aに格納されている。いくつかの実装形態では、メッセージングアプリケーション103b(例えば、シンクライアントアプリケーション、クライアントモジュールなど)は、メッセージングサーバ101に格納されている対応するメッセージングアプリケーション103a(例えば、サーバアプリケーション、サーバモジュールなど)を有するクライアントデバイス115aに格納されているクライアントアプリケーションであり得る。例えば、メッセージングアプリケーション103bは、クライアントデバイス115a上のユーザ125aによって作成されたメッセージをメッセージングサーバ101に格納されているメッセージングアプリケーション103aに送信することができる。
いくつかの実装形態では、メッセージングアプリケーション103aは、メッセージングサーバ101に格納されているスタンドアロンアプリケーションとすることができる。ユーザ125aは、クライアントデバイス115a上のブラウザまたは他のソフトウェアを使用してウェブページを介してメッセージングアプリケーション103aにアクセスすることができる。いくつかの実装形態では、クライアントデバイス115a上に実装されているメッセージングアプリケーション103bは、メッセージングサーバ101上に含まれているものと同じまたは類似のモジュールを含むことができる。いくつかの実装形態では、メッセージングアプリケーション103bは、例えば、1つまたは複数のクライアントデバイス115が他のクライアントデバイス115とのメッセージ交換を可能にする機能を含むピアツーピアまたは他の構成で、スタンドアロンクライアントアプリケーションとして実装され得る。これらの実装形態では、メッセージングサーバ101は、限定されたメッセージング機能(例えば、クライアント認証、バックアップなど)を含むか、またはそのような機能を含まない可能性がある。いくつかの実装形態では、メッセージングサーバ101は、1つまたは複数のボット、例えばボット107aおよびボット111を実装することができる。
サーバ135は、プロセッサ、メモリ、およびネットワーク通信機能を含み得る。いくつかの実装形態では、サーバ135はハードウェアサーバである。サーバ135は、信号線128を介してネットワーク140に通信可能に結合されている。信号線128は、イーサネット、同軸ケーブル、光ファイバケーブルなどのような有線接続、またはWi−Fi、ブルートゥース、または他の無線技術などの無線接続とすることができる。いくつかの実装形態では、サーバ135は、ネットワーク140を介してメッセージングサーバ101およびクライアントデバイス115のうちの1つまたは複数との間でデータを送受信する。サーバ135は1つのサーバとして示されているが、様々な実装態様は1つまたは複数のサーバ135を含み得る。サーバ135は、サーバアプリケーションまたはサーバモジュールとして1つまたは複数のボット、例えばボット109aおよびボット113を実装することができる。
様々な実装形態では、サーバ135は、メッセージングサーバ101を管理するのと同じエンティティ、例えばメッセージングサービスのプロバイダの一部とすることができる。いくつかの実装形態では、サーバ135は、例えば、メッセージングアプリケーション103a/103bを提供するエンティティとは異なるエンティティによって制御されるサードパーティサーバとすることができる。
いくつかの実装形態では、サーバ135はボットを提供またはホストする。ボットは、1つまたは複数のコンピュータ上で実装され、ユーザが主にテキストを通じて、例えばメッセージングアプリケーション103a/103bを介して対話する自動化されたサービスである。ボットについては後でより詳しく説明する。
いくつかの実装形態では、メッセージングアプリケーション103a/103bは、1つまたは複数の提案、例えば提案された応答を、例えばボタンのユーザインタフェース、または他のユーザインタフェース要素を介してユーザ125に提供することもできる。提案された応答は、例えば、ユーザが応答を入力する必要性を減らすか、または無くすことによって、より迅速な対話を可能にし得る。提案された応答は、例えば、クライアントデバイスがテキスト入力機能を欠いているとき(例えば、キーボードまたはマイクロフォンを含まないスマートウォッチ)に、ユーザがメッセージに迅速かつ容易に応答することを可能にし得る。提案された応答は、例えば、ユーザが提案された応答を選択したときに(例えば、タッチスクリーン上の対応するユーザインタフェース要素を選択することによって)、ユーザがメッセージに迅速に応答することも可能にし得る。提案された応答は、応答を生成するようにトレーニングされた予測モデル、例えば機械学習モデルを使用して生成されることが可能である。
例えば、メッセージングアプリケーション103a/103bは、メッセージングアプリケーション103とのユーザの対話を向上させることが可能な、例えばディープラーニングモデルなどの機械学習を実装することができる。応答生成器150は、例えば、機械学習を利用して、メッセージングアプリケーション103a/103bに提案を提供することができる。いくつかの実装形態では、機械学習は、環境100の1つまたは複数の他の構成要素上で、例えば応答生成器150を使用せずに実装することができる。機械学習モデルは、合成データ、例えば、ユーザ情報を使用せずにコンピュータによって自動的に生成されたデータを使用してトレーニングすることができる。いくつかの実装形態では、機械学習モデルは、例えば、トレーニングのためにユーザデータを利用する許可がユーザから明示的に得られているサンプルデータに基づいてトレーニングされ得る。例えば、サンプルデータは、受信されたメッセージと、受信されたメッセージに対して送信された応答とを含み得る。サンプルデータに基づいて、機械学習モデルは受信されたメッセージに対する応答を予測することができ、次にそれを提案された応答として提供することができる。例えば、受信されたメッセージおよびユーザのコンテキストに基づいてカスタマイズされた応答の選択を提供することにより、受信されたメッセージに対する応答を作成するユーザの負担を軽減することによって、ユーザの対話は強化される。例えば、ユーザが同意するとき、提案された応答は、ユーザの以前の活動、例えば、会話における以前のメッセージ、異なる会話におけるメッセージなどに基づいてカスタマイズされ得る。例えば、そのような活動は、ユーザに対する適切な提案応答、例えば、ユーザの対話スタイルに基づく遊び心のある応答、フォーマルな応答などを判定するために用いられ得る。別の例では、ユーザが1つまたは複数の優先言語および/またはロケールを指定すると、メッセージングアプリケーション103a/103bは、ユーザの優先言語で提案された応答を生成することができる。様々な例では、提案される応答は、テキスト応答、画像、マルチメディアなどであり得る。
いくつかの実装形態では、調整された言語モデルを使用するなどの機械学習は、応答生成器150上、および/またはメッセージングサーバ101上、クライアントデバイス115上、またはメッセージングサーバ101およびクライアントデバイス115の両方の上で実装され得る。いくつかの実装形態では、単純な機械学習モデルがクライアントデバイス115上に実装され(例えば、クライアントデバイスのメモリ、ストレージ、および処理制約内でモデルの動作を可能にするため)、複雑な機械学習モデルがメッセージングサーバ101および/または応答生成器150上に実装され得る。ユーザが機械学習技術の使用について同意しない場合、そのような技術は実装されない。いくつかの実装形態では、ユーザは、機械学習がクライアントデバイス115上にのみ実装されることに選択的に同意し得る。これらの実装形態では、機械学習はクライアントデバイス115上で実装されることができ、これにより、機械学習モデルに対する更新または機械学習モデルによって使用されるユーザ情報がローカルに格納または使用されて、メッセージングサーバ101、サーバ135、他のクライアントデバイス115などの他のデバイスと共有されない。
例えば、機械学習技術に基づく提案を受け取ることに同意するユーザに対し、提案は、メッセージングアプリケーション103によって提供され得る。例えば、提案は、コンテンツ(例えば、映画、本など)、スケジュール(例えば、ユーザのカレンダー上の利用可能時間)、イベント/開催地(例えば、レストラン、コンサートなど)等の提案を含み得る。いくつかの実装形態では、会話に参加しているユーザが会話データの使用に同意する場合、提案は、会話内容に基づいた、着信メッセージへの提案された応答を含み得る。例えば、会話の内容に基づく提案に同意した2人のユーザのうちの第1のユーザが「軽い食事はどうですか?イタリア料理はどうですか?」というメッセージを送信すると、例えば、「@アシスタントランチ、イタリア料理、2人用のテーブル(@assistant lunch, Italian, table for 2)」という応答が、第2のユーザに提案され得る。この例では、提案された応答は(記号@およびボットハンドルアシスタントによって識別された)ボットを含む。第2のユーザがこの応答を選択すると、アシスタントボットが会話に追加され、メッセージがボットに送信される。次に、ボットからの応答が会話に表示され、2人のユーザのいずれかがボットにさらにメッセージを送信することができる。この例では、アシスタントボットは会話のコンテンツへのアクセスを提供されず、提案された応答はメッセージングアプリケーション103によって生成される。
特定の実装形態では、提案された応答の内容は、ボットがすでに会話中に存在しているか、または会話に組み込むことができるかに基づいてカスタマイズされ得る。例えば、旅行ボットをメッセージングアプリに組み込むことができると判定された場合、フランスへの航空券の費用についての質問に対する提案された応答は、「旅行ボットに質問しましょう!」であり得る。
異なる実装形態では、提案、例えば本明細書で説明される提案された応答は、テキスト(例えば、「素晴らしい!」)、絵文字(例えば、笑顔、眠そうな顔など)、画像(例えば、ユーザの写真ライブラリからの写真)、テンプレートのフィールドにユーザデータが挿入されたテンプレートに基づいて生成されたテキスト(例えば、「彼女の番号は<電話番号>」、ここで、ユーザがユーザデータへのアクセスを提供するならば、フィールド<電話番号>は、ユーザデータに基づいて記入されている)、リンク(例えば、ユニフォームリソースロケータ)、メッセージステッカーなどのうちの一つまたは複数を含み得る。いくつかの実装形態では、提案された応答は、例えば、色、フォント、レイアウトなどを使用してフォーマットおよび/またはスタイル設定され得る。例えば、映画の推薦を含む提案された応答は、映画についての説明文、映画からの画像、およびチケットを購入するためのリンクを含むことができる。異なる実装形態では、提案された応答は、異なるタイプのユーザインタフェース要素として、例えば、テキストボックス、情報カードなどとして提示され得る。
様々な実装形態では、ユーザは、提案された応答を受信するかどうか、どのような種類の提案された応答を受信するか、提案された応答の頻度などの制御を提供されている。例えば、ユーザは、提案された応答を完全に受信することを拒否することができ、あるいは特定の種類の提案された応答を選択することができ、または1日の特定の時間帯にのみ提案された応答を受信することができる。別の例では、ユーザは、パーソナライズされた提案された応答を受け取ることを選択し得る。この例では、機械学習を使用して、ユーザのデータの使用および機械学習技術の使用に関するユーザの嗜好に基づいて提案応答を提供することができる。
図2は、いくつかの実装形態による、画像を含むメッセージに対する提案された応答を提供するための例示的な方法200を示すフロー図である。いくつかの実装形態では、方法200は、例えば図1に示されるようなメッセージングサーバ101などのサーバシステム102上で実装され得る。いくつかの実装形態では、方法200のいくつかまたはすべては、図1に示されるような1つまたは複数のクライアントデバイス115などのシステム、および/またはサーバシステムと1つまたは複数のクライアントシステムとの両方で実装され得る。記載の例では、実施するシステムは、1つまたは複数のプロセッサまたは処理回路と、データベースまたは他のアクセス可能な記憶装置などの1つまたは複数の記憶装置とを含む。いくつかの実装形態では、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素は、方法200の異なるブロックまたは他の部分を実行することができる。
ブロック202において、方法200の実施において(後述の図3の方法300におけるユーザデータの使用を含む)ユーザデータを使用するためのユーザの同意(例えば、ユーザ許可)が得られているかどうかがチェックされる。例えば、ユーザデータは、例えば、メッセージングアプリケーション103を使用して、ユーザによって送信または受信されたメッセージ、ユーザの嗜好、ユーザバイオメトリック情報、ユーザ特性(識別情報、名前、年齢、性別、職業など)、ユーザのソーシャルネットワークと連絡先についての情報、ソーシャルおよびその他の種類の行動や活動、ユーザにより作成または送信されたコンテンツ、評価、および意見、ユーザの現在位置、ユーザの履歴データ、ユーザにより生成、受信、および/またはアクセスされた画像等を含み得る。本明細書に記載の方法の1つまたは複数のブロックは、いくつかの実装形態ではそのようなユーザデータを使用することができる。
方法200においてユーザデータが使用され得る関連ユーザからユーザ同意が得られた場合、ブロック204において、本明細書の方法のブロックは、それらのブロックについて説明されるように、ユーザデータの可能な利用により実装され得ると判断され、方法はブロック210に続く。ユーザの同意が得られていない場合、ブロック206において、ブロックはユーザデータを使用せずに実施されるべきであると判定され、方法はブロック210に続く。いくつかの実装形態では、ユーザの同意が得られていない場合、ブロックは、ユーザデータを使用せずに、合成データおよび/または一般的もしくは公衆によりアクセス可能で公衆に使用可能なデータを用いて実装される。
本明細書に記載の実装形態は、画像に基づいてメッセージ提案を提供することができる。メッセージの提案はさまざまな状況で提供され得る。例えば、メッセージ提案は、例えばメッセージングアプリケーション103によって、任意のユーザデバイス115から特定のユーザ(例えば、ユーザ125a)のクライアントデバイス115a上で画像を受信することに応答して提供されてもよい。例えば、メッセージングアプリケーション103は、インスタントメッセージングアプリケーション、ソーシャルネットワークアプリケーション、電子メールアプリケーション、マルチメディアメッセージングアプリケーションなどであってよい。メッセージ提案は、特定のユーザ、および画像を送信および/または受信した1人または複数の他のユーザからの同意により、自動的に生成され、特定のユーザに提供され得る。例えば、メッセージングアプリケーションがインスタントメッセージングアプリケーションである場合、画像は、特定のユーザ125aと1人または複数の他のユーザ125との間のインスタントメッセージング通信の一部として、例えば、2人の参加者を有するメッセージングセッション(例えばチャット)や、3人以上の参加者を含むグループメッセージングセッション等において受信されてもよい。様々な実装形態において、ユーザのうちの1人または複数がボットであってもよい。いくつかの実装形態では、ボットは、ソフトウェアおよび/またはハードウェアで実装される自動化エージェントであり得る。いくつかの実装形態では、ボットは、カメラ(例えば、防犯カメラ、ウェブカメラ、監視カメラなど)、電化製品(例えば、スマート冷蔵庫、警報デバイス、産業用電化製品など)、イメージングデバイス(例えば、顕微鏡、医療用イメージングデバイスなど)を表すかまたはそれらと関連付けられてもよく、メッセージングアプリケーション103を介して1つまたは複数の画像を送信することが可能である。ユーザのうちの1または複数がボットである実装形態では、ボットによって生成されたメッセージを使用することについてボットの所有者またはオペレータから同意が得られる。いくつかの実装形態では、同意は、ボット、カメラ、機器などの構成パラメータとして指定され得、ボットがメッセージングアプリケーション103と対話するとメッセージングアプリケーション103に対し提供され得る。
いくつかの実装形態では、メッセージ提案は、ユーザデータにアクセスすることに同意したユーザに特に提供され得る。いくつかの実装形態では、メッセージ提案は、自動的にまたはユーザ入力に基づいて提供されることが可能であり、例えば、提案を要求するためにユーザにユーザインタフェースが提供され得る。
ブロック208において、調整された言語モデルがトレーニングされる。例えば、このブロックは、方法200の他のブロックを実行する同一または異なるシステムによる前処理ステップとして実行されることが可能であり、方法200の他のブロックとは異なる時点で実行され得る。調整された言語モデルは、入力としての画像特徴ベクトルおよび前の予測された単語(例えば単語シーケンス)を提供されることが可能であり、ボキャブラリ内のすべての単語について、生成された応答における次の単語である確率を判定することができる。いくつかの実装形態では、調整された言語モデルは、(以下で説明されるように)画像を表す画像特徴に条件付けられたチャットのような応答(すなわち一連の単語)をモデル化する長期短期記憶ネットワーク(LSTM)を含む。調整された言語モデルをトレーニングするために使用されるトレーニングデータは、メッセージング会話のコンテキストにおける画像と、その画像に対する応答とを含む複数の画像−応答ペアを含み得る。いくつかの実装形態では、所与の画像に対する応答は、(例えば、人間による)トレーニングデータに対して合成的に作成されることが可能であり、および/または、応答は、テスト中のメッセージまたはユーザからの同意が得られた場合には実際のメッセージ会話コンテキストにおける特定の画像を受信することに対するユーザからの実際の応答のサンプルから得ることができる。トレーニングデータのいくつかの例は、以下でさらに詳細に説明される。
ブロック210において、画像が取得される。様々な実装形態において、画像は、静止画像(例えば、写真、絵文字、または他の画像)、シネマグラフまたはアニメ画像(例えば、動きを含む画像、アニメーションおよび音声を含むステッカー等)、ビデオなどであり得る。
いくつかの実装形態では、画像は、メッセージ会話コンテキスト内で受信されたものとして、例えば通信ネットワークを介して別のユーザデバイスから受信された電子メッセージ内に含まれるものとして、検出されることによって取得され得る。いくつかの実装形態では、画像は、1つまたは複数の提案された応答について、例えばアプリケーションプログラムインタフェース(API)を介して、アプリケーションプログラムからの要求の一部として受信されたものであり得る。
いくつかのさらなる例では、画像は、1つまたは複数のクライアントデバイス115によって、またはメッセージを送信するボットによって送信されたものである可能性があり、画像はネットワーク140を介してクライアントデバイス115によって受信され得る。2人の参加者との1対1(1:1)メッセージングセッションでは、画像は特定のユーザのクライアントデバイスによって受信され得る。グループメッセージングセッションでは、画像は、グループメッセージングセッションの参加者のうちの2つ以上のクライアントデバイスによって受信され得る。いくつかの実装形態では、画像は、ストレージ、例えばクライアントデバイス115のローカルストレージ(例えば、メモリ、ストレージドライブなど)および/またはネットワーク140を介してクライアントデバイスにアクセス可能なリモートストレージ(例えば、リモートクライアントデバイス、サーバデバイス、またはストレージデバイスのストレージドライブなど)から取得されることが可能である。いくつかの実装形態では、ユーザによって送信されている画像を含むメッセージに基づいて、画像をメッセージングアプリケーション内に投稿することができる。例えば、メッセージングサーバは、メッセージングアプリケーション103a内に画像を投稿することができる。別の例では、クライアントデバイス115は、メッセージングアプリケーション103b内に画像を投稿することができる。方法はブロック212に続くことができる。
ブロック212において、いくつかの実装形態では、画像が生成された提案に適しているかどうかが判定される。この例示的方法では、画像は生成された提案に適格であることが判明したと想定されている(画像が適格であると判明しなかった場合、例えば、方法は中止されるか、または別の画像を取得する)。いくつかの例では、画像は、メッセージの提案が提供されるべきではないコンテンツの特定の種類または分類に関してチェックされる。例えば、画像および/またはそのメタデータは、コンテンツサーバ154に送信されることが可能であり、コンテンツサーバ154は、画像コンテンツが、メッセージ提案が提供されるべきではない特定の所定の分類に含まれるかどうかを判定することができる。コンテンツサーバ154は、例えば、オブジェクト検出技術を使用し、および/または不適当であることを示す画像の他の属性を検出することができる。方法はブロック214に続く。
ブロック214において、特徴ベクトルが判定される。特徴ベクトルは、ブロック210で取得された画像の視覚的ピクセルコンテンツの要約された数値表現である。例えば、特徴ベクトルは、各次元に対する値と共に、特定の次元数を有するベクトルであり得る。いくつかの実装形態では、128次元が使用され得る。いくつかの実装形態では、特徴ベクトルは、画像ピクセル値(例えば色値)に基づいてニューラルネットワークによって生成され得る。
いくつかの実装形態では、1つまたは複数の特徴ベクトルが、画像の特定の部分、例えば、画像検出またはオブジェクト認識技術(例えば、パターンマッチング、機械学習など)に基づいて検出された「ローカル」画像特徴から判定されることが可能である。例えば、顔(識別情報なし)、動物、オブジェクト、風景の特徴(葉、建物、空、夕焼けなど)を含む画像特徴が検出されることが可能である。例えば、画像の主要サブジェクトが判定された場合、その主要サブジェクトを表す画像の部分から特徴ベクトルが作成されることが可能である。いくつかの実装形態では、画像の主要サブジェクトの特徴ベクトルは、画像全体を代表すると見なすことができ、方法200で使用されることが可能である。方法はブロック216に続く。
ブロック216において、画像を表す特徴ベクトルに基づいて、その画像に対する1つまたは複数の提案された応答が生成される。いくつかの実装形態では、提案された応答は、メッセージ会話(例えば、ユーザデバイス間で送信された電子メッセージを含む会話)で受信されたメッセージ(例えば、画像)に対する1つまたは複数の会話型の返信として送信されるメッセージ提案であり、受信されたメッセージは、画像を含む。いくつかの例では、1つまたは複数の言語モデルによる推論、例えば、提案された応答を判定するためにブロック208でトレーニングされた調整された言語モデルが、使用され得る。さらに、調整された言語モデルの出力に基づいて提案応答を判定するために異なる技術を使用することができる。提案された応答を生成するいくつかの例示的な実装形態は、ビームサーチ技術およびLSTMネットワークを使用する図3〜5を参照して以下に説明される。いくつかの実装形態では、サンプリング技術を使用して提案された応答を判定することができ、例えば、次の単語である可能性が最も高い判定された単語が単語シーケンスに追加される。
いくつかの実装形態では、デバイスにアクセス可能な1つまたは複数のボットからの情報の呼び出しまたは要求に基づいて、1つまたは複数の提案された応答が生成され得る。調整された言語モデルによって生成された応答が組み合わせられ、ランク付けされて、1つまたは複数の上位の提案応答を識別することができる。提案された応答は、テキスト(例えば、フレーズ、単語など)、画像、ビデオ、および/または他の種類のメディアコンテンツであり得る。いくつかの例示的な実装形態では、提案された応答は、以下で詳細に説明されるいくつかの例で説明されるようにテキスト形式で生成されることが可能であり、この生成されたテキストは、他のタイプのメディアコンテンツ(ユーザの同意が得られている場合、ユーザのコレクションまたはアクセス可能な画像ライブラリまたはフォトライブラリからの画像など)で検出される概念(例えばラベル)と照合され得、これらの概念は、本明細書で説明されているのと同様にメディアコンテンツ内で識別されることが可能である。そのような照合されたメディアコンテンツは、本明細書で説明されるようにメッセージ提案としてその後提供され得る。方法はブロック218に続く。
ブロック218において、上位ランクの提案された応答のうちの1つまたは複数がユーザに提供される。例えば、上位ランクの提案された応答は、ユーザによって使用されるクライアントデバイス115の表示装置上に表示され得る。いくつかの例では、画像が受信されたメッセージ内で取得された場合、その画像は、メッセージングインタフェース内に表示されることができ、上位ランクの提案された応答は、その画像に関連して、例えば画像の片側に表示され得る。様々な実装形態では、例えば、3、10など、特定の数の上位ランクの提案応答が表示されることが可能である。いくつかの実装形態では、提示された提案応答の数は、例えばユーザ入力および/または保存されたユーザプリファレンスを介して、ユーザによって判定され得る。いくつかの実装形態では、上位ランクの提案された応答のうちの1つまたは複数が、要求側のデバイスまたはアプリケーション、例えば1つまたは複数の提案された応答を要求した方法200を実行する同じシステム上または異なるシステム上のアプリケーションに提供(例えば送信)される。方法はブロック220に続く。
ブロック220において、いくつかの実装形態では、表示された上位ランクの提案された応答のうちの1つまたは複数の選択が受信される。例えば、選択は、例えば、ユーザのタッチを受け取るタッチスクリーンまたはトラックパッドなどの入力デバイス、音声コマンドを受け取るマイクロフォン、ユーザ操作を受け取るボタン、マウス、またはジョイスティックなどを介して、ユーザデバイスでユーザによって提供されたユーザ入力に基づくことができる。いくつかの例では、ユーザは、タッチスクリーン上のシングルタップを入力して、関連する提案された応答を選択することができ、したがって手動で応答を入力することと比べてユーザ入力の量を減らすことができる。いくつかの実装形態では、1つまたは複数の提案された応答は、例えば、ユーザの嗜好、ユーザの状況(例えば、もしユーザの同意があれば、地理的位置、時間または日付など)、または他の予め定義された条件に基づいて、自動的に選択され得る。
いくつかの実装形態では、ブロック220は、クライアントデバイスによって実装され得、例えば、クライアントデバイスに接続された入力デバイスを介して選択を受信する。いくつかの実装形態は、例えば、通信ネットワークを通じて、クライアントデバイスまたは他のデバイスにおいてユーザによって使用される入力デバイスから直接サーバデバイスへ送信されるか、またはその他のデバイス(クライアントデバイスおよび/またはサーバデバイスなど)を介して送信される選択を受信するサーバデバイスを使用してブロック220を実装することができる。方法はブロック222に続く。
ブロック222では、いくつかの実装形態では、ブロック220で選択された提案された応答が送信される(またはそうでなければ出力される)。例えば、選択された応答は、1つまたは複数の受信デバイスに1つまたは複数のメッセージとして送信され得る。いくつかの例では、メッセージは、ネットワーク140を通じてメッセージングサーバ101を介して1つまたは複数の他のクライアントデバイス115に、および/または直接他のクライアントデバイス115に送信されることが可能である。いくつかの実装形態では、例えば、1対1の会話では、メッセージは、例えば、チャットメッセージ、テキストメッセージ、電子メールメッセージなど、ユーザデバイスによって受信されたメッセージにおいて、ブロック210で取得された画像を送信したユーザデバイスに送信される。いくつかの実装形態では、メッセージは、ブロック210で取得された画像の送信元のユーザアカウントに対して構成されている1つまたは複数のユーザデバイスに対して送信される。いくつかの実装形態では、例えば、ユーザが複数の提案された応答を選択する場合、選択された応答は、別個のメッセージ、組み合わされたメッセージなどとして送信され得る。いくつかの実装形態において、例えば、メッセージを出力する前に、選択された提案応答がメッセージ作成インタフェースにおいて編集されることを許可するユーザインタフェースが提供され得る。この方法は、次に、いくつかの実装形態では、例えば、別の画像が取得された場合に、ブロック210に戻ることができる。
図3は、画像を表す特徴ベクトルに基づいて1つまたは複数の提案された応答を生成するための例示的な方法300を示すフロー図である。例えば、方法300は、図2の例示的方法200のブロック216を実行するために使用されてもよい。
一般的な概要および例において、方法300はいくつかの実装形態では以下の特徴を含むことができる。まず、開始トークンがビームキュー(beam queue)にプッシュされる。さらに、画像の特徴ベクトルが調整された言語モデルに供給される。初期段階(ブロック304)において、調整された言語モデルは、特徴ベクトルに基づいて判定される第1の単語として、ボキャブラリからの1つまたは複数の単語、例えば、「pretty」、「cute」、「neat」などの、トレーニングデータとして使用された前の応答からの単語を生成する。初期段階の各単語について、次の単語を追加してシーケンスを作成することにより、1つまたは複数の単語シーケンスが決定される。例えば、最初の単語が「pretty」の場合、例えば、「pretty woman」、「pretty girl」、「pretty cool」などの、それぞれ「pretty」で始まるシーケンスが決定され得る。後の段階において、追加の単語が同様に続いて単語シーケンスに追加され得る。単語の並びが異なると長さが異なる場合があり、例えば、「pretty good deal」はサイズ3のシーケンスである。このプロセスは、初期段階で決定された他の単語、例えば、「cute!」、「cute poster」、「neat trick」などに対し繰り返され得る(ブロック306−320)。1つまたは複数の最初の単語に基づいて、決定された単語シーケンスからの上位N個のシーケンスが、提案された応答として選択され得る。
ブロック302において、特徴ベクトルが調整された言語モデルに入力されて、モデルを調整する。例えば、特徴ベクトルは、図2について上述したようにして取得された画像の要約表現であり得る。調整された言語モデルは、例えば、図2のブロック208に関して上述したように、画像のトレーニングデータおよび一般的な応答を使用してトレーニングされたトレーニング済みニューラルネットワークを含むことができる。トレーニングデータ応答は、提案された応答を形成するために使用される利用可能な単語のボキャブラリを形成する単語を含む。例えば、長期短期記憶(LSTM)ニューラルネットワークが使用されることが可能であり、画像特徴ベクトルがLSTMの第1のインスタンシエーションに入力される。使用することができるLSTMネットワークのいくつかの例は、図5に関して以下に説明される。LSTMネットワーク(または他の調整された言語モデル)は、デバイスの記憶装置(例えば、メモリ)内に、1つまたは複数のハードウェアプロセッサを使用して実装することができる。画像を表す所定の特徴ベクトルを調整された言語モデルに入力することのいくつかの利点は、特徴抽出器を調整された言語モデルにデプロイする必要がなく、調整された言語モデルのより小さいサイズおよび潜在的により速いモデルの実行が可能であることを含む。
ブロック304において、最初の単語がビームキューにプッシュされる。この例では、ビームサーチ技術が、画像と調整された言語モデルの出力に基づいて応答を検索して構成するために使用される。各応答は「単語シーケンス」であり、これは1つまたは複数の単語をシーケンス、例えば、「so cute(とてもかわいい)」や「I like it(いいね)」などの応答に見られる単語の列として提供されることが可能である。単語は1つまたは複数の符号の列であり得、符号は、文字、句読点記号(例えば、「!」や「?」など)、またはいくつかの実装形態においては、アイコン、絵文字、記号、またはその他の符号であり得る。
ビームキューにプッシュされる最初の単語は、単語シーケンスの単語生成プロセスを開始するために使用される。いくつかの実装形態では、最初の単語は、それがプロセスの開始であることを示す特別な開始トークンである。例えば、調整された言語モデルから出力された応答は、開始トークンおよび任意の終了トークンを無視することが可能である(後述)。いくつかの実装形態では、ビームキューは最大サイズQを有し、これは、最大でQ個の単語シーケンス(ビーム)が以下に説明されるように処理されるべきであることを示す。例えば、Qは、10、20、または他の数であり得る。
ブロック306において、ビームキュー内の単語シーケンスが選択される。例えば、方法300の最初の反復では、選択された単語シーケンスは、上述のように開始トークンなどの最初の単語である。後の反復では、選択された単語シーケンスは、まだ処理されていない(例えば、その単語シーケンスの次の単語を見つけるためにまだ処理されていない)ビームキュー内の次の単語シーケンスであり得る。いくつかの実装形態では、ビームキューに格納された単語シーケンスは、LSTMニューラルネットワークによって生成された単語−画像埋め込み(word-image embedding)であり、各埋め込みは、単語シーケンスの中にこれまで含まれてきた単語と特徴ベクトルの画像とを要約形式で符号化する数のベクトルである。例えば、各単語は、特徴ベクトルと同じ数の次元を有することができる単語埋め込みによって表すことができ、例えば、それらは同じ空間にマッピングされ、単語−画像埋め込みに組み合わせることができる。
ブロック308において、選択された単語シーケンスは調整された言語モデルに入力される。例えば、選択された単語シーケンスは、調整された言語モデルを提供するLSTMネットワークの1つのLSTM(例えば、インスタンシエーション)に入力されることが可能である。LSTMアーキテクチャの例を図5に示す。いくつかの例では、ブロック308の初期反復において、ブロック302で入力された画像特徴ベクトルが第1のLSTM(例えば、インスタンシエーション)に入力され、初期単語(例えば、開始トークン)も第1のLSTMに入力される。ブロック308の後の反復において、選択された単語シーケンスは、画像特徴ベクトルおよび選択された単語シーケンスにこれまで含まれていた単語を符号化する埋め込みであり、単語シーケンスの次の単語を提供する後のLSTM(例えば、インスタンシエーション)に入力される。
ブロック310では、調整された言語モデルを使用して、複数の単語が、単語シーケンス内の次の候補単語となるように、単語のボキャブラリから判定または生成され、複数の単語が、選択された単語シーケンスにおいて次の単語となる確率が判定される。例えば、選択された単語シーケンスがブロック308で入力されたLSTMは、単語および確率を判定する。単語および確率は、単語のボキャブラリを提供する前の画像および関連する前の応答を含むトレーニングデータを使用した調整された言語モデルのトレーニングに基づいて、調整された言語モデルによって判定される。例えば、単語のボキャブラリは、調整された言語モデルをトレーニングするのに使用されるトレーニングデータの応答において使用される単語を含む。いくつかの実装形態では、単語のボキャブラリは、多数、例えば数千の単語を含むことができる。いくつかの実装形態では、調整された言語モデルは、特定の画像への応答を含むトレーニングデータからのトレーニングに基づくように、ボキャブラリ内の各単語が、画像特徴ベクトルを前提とした単語シーケンス内の次の単語である確率を判定し、ボキャブラリ内の全ての単語が判定された確率を有するようにする。
いくつかの実装形態では、ボキャブラリ単語のセットのサブセット、例えばボキャブラリ内のすべての名詞、副詞、または他の種類の単語、またはボキャブラリ単語の異なる選択されたサブセットについて確率を判定することができる。いくつかの実装形態では、ボキャブラリ単語のサブセットは、例えば、以前に送信されたメッセージおよび応答からの一般的なユーザデータ(そのようなメッセージの送信者/受信者からのユーザ同意が得られた場合)に基づいて、それらが受信された電子メッセージへの応答で使用され、かつ/またはそのようなメッセージにおいて受信された画像への応答で使用される確率が高い(例えば、閾値確率または頻度を超える)と知られている単語のサブセットとすることができる。上述のように、単語は、テキスト単語、記号(例えば句読点記号、楕円など)、絵文字などを含むことができる。いくつかの実装形態では、単語は画像(例えば「ステッカー」)、アニメーションを含むことができる。いくつかの実装形態では、ボキャブラリからの任意の単語シーケンスについて可能な次の単語のうちの1つは、特別な終了トークン、例えば、単語シーケンスの終了を示すように指定されたトークンである。いくつかの実装形態では、複数の異なる単語シーケンスは、各使用されたボキャブラリ単語を、選択された単語シーケンスの末尾にそれぞれ付加することに基づいて、効果的に作成される。
ブロック312において、ブロック310で判定された次の単語を含むいくつか(例えば、Q個)の単語シーケンスが、ブロック310で判定された次の単語の確率に基づいて選択される。したがって、Q個の単語シーケンスは、それらの次の単語に対する関連する確率に基づいて選択される。選択されたQ個の単語シーケンスは、ブロック310で判定された次の単語を、選択された(前の)単語シーケンスにそれぞれ付加することから形成された単語シーケンスのサブセットである。例えば、ブロック310で判定されるように、それらの次の単語が最も高い確率を有するQ個の単語シーケンスが選択される。例えば、ビームキュー内の単語シーケンスの各々について各次の単語に対する確率が生成され、最も高い確率に関連するQ個の単語シーケンスが選択される。例えば、選択された各単語シーケンスは、画像ベクトル、この単語シーケンスの前に選択された単語、およびこの単語シーケンスの最後に現在埋め込まれている次の単語を含む単語埋め込みである。場合によっては、これらは次の単語が終了トークンである単語シーケンスであり得る。いくつかの実装形態では、所定の確率閾値を上回る確率を有するQ個の単語シーケンスが選択される。
いくつかの実装形態では、Q個の単語シーケンスの選択は、他の要因によって影響を受ける可能性がある。例えば、1つの要因は、提案された応答が生成されているユーザによって送信された1つまたは複数の前のメッセージ応答であり得る。いくつかの例では、生成された単語シーケンスのうちの1つまたは複数がメッセージングコンテキストにおいてユーザによって提供された前の応答と同じか、または類似する(例えば、同じシーケンス内の同じ単語のパーセンテージ閾値を有する)場合、より大きな重み付けが、それらの類似した生成された単語シーケンスに割り当てられ得る。例えば、より大きな重み付けは、重み付けされた単語シーケンスと同じまたは類似の確率に関連する他の単語シーケンスよりも、重み付けされた単語シーケンスを選択させ得る。ユーザの同意が得られた場合、前のユーザ応答は、例えば、メッセージアプリケーションデータベース199などのメッセージデータ記憶装置から取得することができる。いくつかの実装形態では、前の応答が返信した前の画像も、(例えば、メッセージデータストレージ内において)そのような前の画像が利用可能であれば、現在の画像と比較することができる。現在の画像が前の画像と類似している場合(例えば、それらの特徴ベクトル内に値の類似性パーセンテージがある場合)、それは前の応答が現在の画像と類似した前の画像に対して返信したことを示す。その結果、その前の画像に対応する前の応答に類似する生成された単語シーケンスは、ブロック312において選択されるそれらの適格性を高めるためにより大きい重み付けを割り当てられることができる。
いくつかの実装形態では、ユーザまたはユーザデバイスによって受信または送信された前の画像は、単語シーケンスの選択(例えばブロック312)および/または単語シーケンスの生成(例えばブロック310)に影響を及ぼす可能性がある。一例では、提案された応答は、現在の(より最近受信された)画像のコンテキストにおいて前の画像を参照するように生成および/または重み付けされ得る。例えば、そのような提案された応答は、現在の画像が受信される前の所定の期間内に前の画像が受信されたかどうかを判定されることが可能である。いくつかの例では、前の画像が第1の種類のオブジェクト(例えば、シャツなどの衣料品)を表すと判定され、現在の画像も同じ種類のオブジェクトを表す(例えば、画像オブジェクト認識技術、画像タグ、または他のメタデータに基づく)場合、生成された提案応答は、「他のものの方が好きだった(I liked the other one better)」および/または「これの方が好き(I like this one better)」を含み得る。
別の例では、提案された応答は、互いの閾値期間内に送信または受信された一連の、またはセットのそのような前の画像に応答して前に送信された前の応答に基づいて生成および/または重み付けされ得る。いくつかの例では、そのような提案された応答は、前の画像のセットに類似または対応する画像のセットが現在受信されている場合(例えば、前の画像のセットが、現在の時刻からの閾値期間内に受信された場合)に生成および/またはより大きく重み付けされ得る。場合によっては、1つまたは複数の前のメッセージは、前の画像に関連付けられる(例えば、前の画像に添付する、または前の画像を送信する閾値期間内に送信する)ことが可能であり、そのような前のメッセージが応答生成および/または重み付けにおいても使用され得る。いくつかの例では、いくつかの前の画像が、現在の時間の閾値期間内にユーザによって受信されていることがあり、それらの主題においてそれらは互いに関連している。例えば、前の画像は、同じ種類(例えば、特定の種類の衣料品)のオブジェクトを示す場合があり、それらは、画像内に描かれた(そして、1つまたは複数の物体認識技術を用いて検出された)、および/または画像のメタデータに示された異なる特性(例えば、色、サイズ、スタイルなど)を有する。また、「どちらを購入すればいいですか(which one should I buy?)」などの前のメッセージが受信された可能性があり、これは前の画像のうちの1つまたは複数に関連付けられている。そのような前の画像および/または前のメッセージのセットに対する前の応答は、「2番目のもの(the second one)」、「青いものが欲しい(I like the blue one)」(描かれた品物のうちの1つが青色の場合)などである可能性がある。提案された応答は、そのような前のメッセージおよび画像を含むトレーニングデータに基づく画像の現在のセットに対して生成され得る。例えば、「1番目のもの」、「2番目のもの」、「3番目のもの」、「青いもの」などの提案された応答は、どのオブジェクトを購入するかを尋ねる画像の受信されたセットおよび/または受信されたメッセージへの応答として、生成された提案応答において生成および/またはより大きく重み付けされ得る。
ブロック314において、いくつかの実装形態では、選択された単語シーケンスのすべてがホワイトリストに載っているかどうかが判定される。例えば、ホワイトリストは、調整された言語モデルをトレーニングするために使用されるトレーニングデータに提供された応答のサブセットであり得る。ホワイトリストは、アクセス可能な記憶装置、例えば環境100のアクセス可能なデバイスのメモリまたは他の記憶装置に格納され得る。いくつかの実装形態では、ホワイトリストは、出力が許可されている応答を提供する。ブロック312から選択された各単語シーケンスは、ホワイトリスト上の応答と比較されることが可能である。ホワイトリストに載っていない単語シーケンスは、提案された応答として出力されることは許可されていない。いくつかの実装形態では、ブラックリストを使用することができ、例えば、出力が許可されない応答を提供して、ブラックリスト上の応答に一致する選択された単語シーケンスが出力されることが許可されないようにする。
ブロック314において、選択された単語シーケンスの全てがホワイトリスト上に発見された場合、方法は後述するブロック318に続く。ブロック314において、選択された単語シーケンスのうちの1つまたは複数がホワイトリスト上に見つからない場合、方法はブロック316に続き、そこでホワイトリストに存在しなかった単語シーケンスは、ブロック310において調整された言語モデルによって判定されたような異なる次の単語を含む他の単語シーケンスと置き換えられる。例えば、N個の最高確率の後の次に最も高い確率を有する次の単語を有する単語シーケンスが選択されて、ホワイトリストに載っていない単語シーケンスを置き換えることが可能である。方法はブロック318に続く。
ブロック318において、選択された単語シーケンスはビームキューにプッシュされる。例えば、ビームキュー内の前のバージョンの単語シーケンスから導出された単語シーケンス(例えば、前のバージョンの方がより少ない単語を有している)が、ビームキュー内の前のバージョンの代わりに(例えば、いくつかの実装形態では、終了トークンを有しない前のバージョンの代わりに)格納され得る。
ブロック320において、ビームキュー内の全ての単語シーケンスが1つまたは複数の終了条件を満たしたかどうかがチェックされる。例えば、1つの終了条件は、ビームキュー内の全ての単語シーケンスが、それらの最後の単語として特別な終了トークンで終わっていることであってよく、これは、それらの単語シーケンスにこれ以上単語が追加されないことを示す。調整された言語モデルは、シーケンスの生成された次の単語のうちの1つとして、単語シーケンスの終了トークンを生成することが可能である。別の終了条件は、ビームキュー内の単語シーケンスについて、単語シーケンス内の単語の最大長に達したことであり得る。終了条件の組み合わせ、例えば、ビームキュー内のすべての単語シーケンスが特別な終了トークンで終わるか、または最大の単語長を有することが確認されることも可能である。
ビームキュー内のすべての単語シーケンスが1つまたは複数の終了条件を満たすとは限らない場合、方法はブロック306に戻り、ビームキュー内の単語シーケンスを選択する。いくつかの実装形態では、選択された単語シーケンスは、特別な終了トークンで終了していない、最大単語長に達していない、または他の何らかの終了条件を達成していない単語シーケンスであり得る。いくつかの実装形態では、選択された単語シーケンスは、直前に生成され(例えば、単語が追加され)、かつ最後の反復でビームキューに格納された単語シーケンスのうちの1つとすることができる。
ブロック320において、ビームキュー内のすべての単語シーケンスが、1つまたは複数の終了条件を満たす場合、方法はブロック322に進み、そこでビームキュー内の単語シーケンスが提案された応答として指定される。例えば、これらの単語シーケンスおよびこれらの単語シーケンスのスコア(後述)は、提案された応答としてフラグを立てられ、および/または格納されることが可能である。方法は次にブロック324に続く。
ブロック324において、処理すべき1つまたは複数の追加の単語シーケンスがあるかどうかがチェックされる。例えば、処理のために他の選択された単語シーケンスがビームキューにプッシュされたために終了条件をまだ満たしていない、前の反復からブロック312で選択された(そしてブロック314で適格とされた)1つまたは複数の単語シーケンスが存在し得る。処理する単語シーケンスがさらにある場合、方法はブロック304に進み、未処理の単語シーケンスを(空の)ビームキューにプッシュし、ブロック306〜320の処理を繰り返す。
ブロック324でチェックされるように、処理すべき単語シーケンスがこれ以上ない場合、方法はブロック326に進み、ここで指定された単語シーケンスが生成された提案応答として出力される。例えば、出力された提案応答は、図2のブロック218に提供されることが可能である。いくつかの実装形態では、ブロック322に関して上述したように、ビームサーチは各単語シーケンスについてスコアを生成し、単語シーケンスはこのスコアに基づいてランク付けされる。例えば、単語シーケンスのスコアは、調整された言語モデルによって判定されるような、その単語シーケンスに含まれる1つまたは複数の単語の確率に基づくことができる。様々な実装形態では、単語シーケンスのスコアは、単語シーケンスに最後の単語が追加される確率、または単語シーケンス内の単語の確率の組み合わせ(例えば平均)、および/または他の要因(例えば、より少ない単語を有する単語シーケンスは、より多くの単語を有する単語シーケンスよりも良い(例えば、より高い)スコアを割り当てられることが可能であり、(例えば、所定のリストからの)特定の単語を有する単語シーケンスは、リストに載っていない単語よりもより高いスコアを割り当てられることが可能である等)に基づくことができる。
いくつかの実装形態では、単語シーケンスは、それらのスコアに基づいてランク付けされた順序で、ブロック320において出力されることが可能であり、例えば、ブロック218は、特定の数の上位ランクの提案された応答を選択し得る。
他の実装形態では、図3のブロックの他の方法または変形形態が、調整された言語モデルを使用して提案された応答を判定するために用いられ得る。例えば、いくつかの実装形態は、異なるサイズのビームキュー、1つまたは複数のブロックの異なる実行順序、調整された言語モデルから提供される異なる単語シーケンスを生成し保持するための異なる技術などを使用することができる。
図4は、本明細書に記載の1つまたは複数の提案された応答機能を実装することができる1つの例示的モジュール400を示すブロック図である。いくつかの実装形態では、メッセージングモジュール402は、メッセージングアプリケーション103の構成要素とすることができ、例えば、異なるユーザデバイスからの受信されたメッセージの一部として、図2に関して上述したように画像を取得することができる。画像は、いくつかの異なる構成要素を含み得るメッセージ提案モジュール404に送信されることができる。メッセージ提案モジュール404の構成要素の一部または全部は、メッセージングアプリケーション103、応答生成器150、および/または環境100に示されるシステムの他のモジュールもしくは構成要素において実装されることが可能である。
例えば、画像(例えば、画像ピクセル)は、メッセージングモジュール402から図2を参照して上述した特徴ベクトル生成器406に送信され得る。上述のように、特徴ベクトル生成器406は、画像ピクセルに基づいて特徴ベクトルを判定し、特徴ベクトルは画像を表す。特徴ベクトル生成器は、いくつかの次元の特徴ベクトルを出力し、それは応答生成器408に出力される。
いくつかの実装形態では、応答生成モジュール408は、調整された言語モデル410を使用することによって画像特徴ベクトルに対する1つまたは複数の提案された応答を判定する。応答生成モジュール408(および/または調整された言語モデル410)は、いくつかの実装形態ではホワイトリスト412を使用して、例えばホワイトリストに現れない、いくつかの提案された応答を潜在的にフィルタ除去することができる。
いくつかの実装形態では、デバイスにアクセス可能な1つまたは複数のボットから情報を呼び出すこと、または要求することに基づいて、1つまたは複数の提案された応答を生成することができる。例えば、適切な提案応答が画像のコンテンツに関連する特定の情報であると応答生成コンポーネント408(またはシステムの他の構成要素)が判定した場合、その情報を取得できるボットが判定されることが可能であり、ボットへのコマンドおよび/または要求が、提案された応答として生成され得る。
いくつかの実装形態では、メッセージランク付けコンポーネント414は、応答生成モジュール408によって生成された提案応答を受信し、提案された応答をランク付けされた順序に組み合わせてランク付けすることができる。例えば、提案された応答は、計算されたスコアに基づいてランク付けされることができ、スコアは画像について判定された各提案された応答に対して判定され得る。いくつかの実装形態では、提案された応答ごとにスコアが判定され得る。いくつかの実装形態では、スコアは、上記のように調整された言語モデルによって判定された確率に基づいている。いくつかの実装形態では、スコアは、提案された応答が画像に関連するという判定された確率に基づくことができ、その確率は、例えば、履歴メッセージデータ(および/または上述のトレーニングデータ)における応答の発生頻度に基づくことができる。履歴メッセージデータは、会話の参加者が、提案応答機能を実装するためにそのようなデータの使用について同意を提供した、前の会話からのデータであり得る。ユーザがそのような使用の許可を与えていない場合、履歴メッセージデータは使用されない。いくつかの実装形態では、応答生成モジュール408は、応答に対してスコアを提供することができ、それはメッセージランク付けコンポーネント414によって応答をランク付けするために使用することができる。いくつかの実装形態では、応答生成モジュール408は、図3に関して上で説明したように、生成された提案応答のスコアおよびランク付けを提供することができ、例えば、メッセージランク付けコンポーネント414は、応答生成モジュール408に含まれ得る。
提案された応答はランク付けされた順序で出力されることが可能である。いくつかの実装形態では、ボットからの情報を要求する提案応答は、類似の要因(トレーニングメッセージデータ内の頻度など)に基づいて判定された1つまたは複数の信頼スコアに基づいて同様にランク付けされることができ、および/または、いくつかの実装形態では、少なくとも1つのボット関連応答は、常に高いランクにランク付けされ得る(例えば、ボットを起動する応答は、ユーザに対する代替の提案応答として提示され得る)。いくつかの実装形態では、システムは、多様性に基づいて提案応答をランク付けすることもできる。例えば、複数の最高ランクの提案された応答が、単語、文字、または(例えば、辞書、シソーラス、または他の技術および/またはデータを参照することによって判定されるような)意味論的意味において互いに類似している場合、例えば、類似した応答のうちの少なくとも1つのランクを下げることによって、提案された応答の多様性を増すようにランク付けが調整され得る。
いくつかの実装形態では、特定の数の上位ランクの提案された応答が送信され、ユーザデバイス上に表示されるか、そうでなければ出力されることが可能である。これらの提案された応答のうちの1つまたは複数は、ユーザ入力により選択されて、他のデバイスに対し1つまたは複数のメッセージを送信することができ、1つまたは複数のメッセージは、選択された提案応答のコンテンツを含む。いくつかの実装形態では、選択された提案応答がボットへのコマンドまたは要求である場合、ボットがメッセージ会話に追加され、要求された情報を取得して会話インタフェースに表示し、ユーザはさらなるメッセージをボットに送信することができる。
図5は、本明細書に記載の1つまたは複数の機能を実装することができるLSTMアーキテクチャ500の一例を示すブロック図である。LSTMアーキテクチャ500は、調整された言語モデルを実装し、実行されたプロセスの異なる段階におけるLSTMモデルブロックのインスタンシエーションまたはコピーを表す複数のLSTM502を含む。
この例では、トレーニングが最初にシステムに提供される。いくつかの実装形態では、トレーニングデータは、フィルタリングされている(例えば、自己相互情報量(pointwise mutual information:PMI)フィルタリングによりフィルタリングされている)、および/または他の方法で処理されている可能性がある上述のような画像−応答ペアを含み得る。LSTMモデルは、画像特徴ベクトルと単語シーケンス内のすべての前の単語とを含む埋め込みが入力された後、単語シーケンス内の次の単語の確率を出力するようにトレーニングされる。トレーニングのために、トレーニングデータの画像を表す画像特徴ベクトルが第1のLSTM506に入力される。さらに、(推論のためではなく)トレーニングのために、単語埋め込みがLSTM506の後のLSTMに入力され、単語埋め込みは、画像に対応するトレーニングデータの応答に含まれた個々の単語を表す。いくつかの例では、トレーニングデータ応答の単語は、一度にLSTMに入力される。いくつかの例では、単語ID(例えば、単語ID514または524)は、特定の単語を表し、ボキャブラリの次元サイズを有するone−hotベクトルであってよく、これは、例えば、画像特徴ベクトルの次元を有する、より低い次元のベクトルである単語埋め込み(例えば単語埋め込み516または526)を生成するためにニューラルネットワークに供給される。
例示的なトレーニングプロセスでは、第1のLSTM506は、単語1に対する単語の分布を示す情報を符号化する値のベクトル(LSTMニューラルネットワークの出力、例えば、LSTMのトップレイヤ)を出力し、ベクトルはソフトマックス関数508へ入力される。ソフトマックス関数508は、ボキャブラリの単語が単語シーケンス内の次の単語(単語1)である確率を示す単語1の確率分布510を出力する。ボキャブラリの単語は、調整された学習モデルをトレーニングするために使用されるトレーニングデータで使用された応答からのものである。第1のLSTM506は、第2のLSTM512に入力される埋め込みも出力し、埋め込みは、画像特徴ベクトル504の表現およびシーケンスの前の単語を含む。図5の例では、サンプル単語1ID514が、第2のLSTM512に入力される単語埋め込み516として提供され、例えば、画像特徴ベクトル504によって表される画像に対する応答に含まれる第1の単語を表す。LSTM512は、ソフトマックス関数518に入力される次の単語(単語2)に対する単語の分布を示す情報を符号化する値のベクトルを出力し、ソフトマックス関数518は、ボキャブラリの単語が単語シーケンスの次の単語(単語2)となる確率を示す単語2の確率分布520を出力する。LSTM512は、画像特徴ベクトルおよびシーケンスの前の単語を表す埋め込みを出力し、埋め込みはN番目のLSTM522に入力される。N番目のLSTM522への単語埋め込み526として、N−1番目の単語ID524が与えられる。LSTM522は、判定された次の単語(単語N)に対するベクトルを出力し、それはソフトマックス関数528に入力され、そしてソフトマックス関数528は、ボキャブラリの単語が単語シーケンス内の次の単語(単語N)である確率を示す単語Nの確率分布530を出力する。
例示的なトレーニングプロセスでは、判定された確率がLSTMにフィードバックされ、例えば、トレーニングデータの画像(画像特徴ベクトルによって表される)に対応するトレーニングデータの応答に含まれていることが知られている単語1の埋め込み516から単語N−1の埋め込み526の入力に基づいて、LSTMが応答に使用された単語シーケンスに対して高い確率を生成するように重み付けが調整される。
ランタイム(例えば、その例が図3について説明されている、入力画像に基づいて単語確率を判定する推論処理)の間、調整された言語モデルはあらかじめトレーニングされている。画像特徴ベクトル504によって表される新しい画像は、LSTM506に入力される。LSTM506は、画像特徴ベクトルに基づいて次の単語である単語1についてのボキャブラリの単語にわたる分布を判定し、ソフトマックス関数508に入力される分布についての値のベクトルを出力する。ソフトマックス関数508は、単語シーケンス内の次の単語として単語1に使用することができるボキャブラリの単語の確率を示す確率分布510を判定して出力する。サーチ方法は、例えば、図3を参照して上述したビームサーチ技術を使用して、これらの確率に基づいてこれらの単語のうちの1つまたは複数を選択することができる。
後続の反復において、サーチ方法(例えば、図3のブロック308)は、特徴ベクトルと単語シーケンスのために選択された前の単語とを表す埋め込みを第2のLSTM512に提供する。LSTM512は、埋め込みに基づいて、単語シーケンスの次の単語である単語2についてのボキャブラリから単語の分布を判定し、ソフトマックス関数518に入力される分布についての値のベクトルを出力する。ソフトマックス関数518は、単語シーケンス内の次の単語として単語2に使用することができるボキャブラリの単語の確率を示す確率分布520を判定して出力する。サーチ方法は、これらの確率に基づいて、これらの単語の1つまたは複数を選択する。後続の反復では、サーチ方法は、特徴ベクトルと単語シーケンスに対して選択された前の単語とを表す埋め込みを次のLSTM522に入力して、単語シーケンスのN番目の単語に対する単語分布を判定することができ、LSTM522は、単語Nに対する確率分布530を同様に生成する。サーチ方法は、これらの確率に基づいて、これらの単語の1つまたは複数を選択する。
したがって、図5のLSTMネットワークは、単語シーケンス内の各次の単語の確率を判定する。実際には、LSTMネットワークは、各単語シーケンスに関連する確率を判定し、これは、それらの確率に基づいて判定された前の単語が、LSTMインスタンシエーションが次のLSTMインスタンシエーションに提供する単語シーケンス埋め込みに含まれるからである。単語シーケンスから判定された提案応答は、このように確率にも関連している。
調整された言語モデルは、上記のようにトレーニングデータに基づいてトレーニングすることができる。調整された言語モデルは、提案応答が生成されるべき画像を受信する前に、トレーニングデータに基づいて作成されることができるので、画像を受信すると、既存のモデルを使用して提案されたメッセージが生成され得る。
いくつかの実装形態では、調整された言語モデルの一部または全部は、ランタイム中に受信された画像に基づいて、およびメッセージで送信するために最終的にユーザ(またはアプリケーション)によって選択された、または他の利用のために選択された提案応答に基づいて更新され得る。例えば、受信された画像とユーザが選択した応答とは、モデルのトレーニングを更新する際に使用する新しい画像−応答ペアとして提供され得る。
いくつかの例では、トレーニングデータは、画像およびそれらの画像に対する応答を含むメッセージデータであり得る。例えば、メッセージデータは、例えば人間のユーザが参加していない擬似会話に基づく合成データとすることができる。いくつかの実装形態では、トレーニングデータは、トレーニング目的でそのようなデータを提供することに同意したユーザによって実際に交換された画像およびメッセージを含み得る。トレーニングデータは、ユーザ識別子やその他のユーザ関連情報を削除するために使用前に処理される。例えば、いくつかの実装形態では、画像−応答ペアがトレーニングメッセージデータとして取得されることが可能であり、これは、受信された特定の画像と、ユーザによって選択され特定の画像を受信することへの返信として送信された応答のコンテンツとを識別する。例えば、応答は、会話中にメッセージングアプリケーションにおいて選択されている場合がある。
いくつかの実装形態では、メッセージデータのセットからトレーニングメッセージデータの少なくとも一部を判定するために、システムは、メッセージ内の画像を受信することへの返信としての、メッセージデータのセットにおけるユーザからの頻度の高い履歴応答を判定することができ、最も頻繁な応答および画像が、トレーニングデータとしてシステムによって編成され格納されることができる。
いくつかの実装形態では、メッセージデータのセット内の最も頻度の高い応答の多くは、他のより頻度の低い応答ほど提案された応答を判定するのに適していない可能性がある。例えば、最も頻度の高い応答は、特定の画像(例えば、特定の種類の画像コンテンツ)に特有ではない可能性がある応答によって支配されることがある。いくつかの例では、「lol(笑)」などの一般的な応答は、多くの異なる画像および/または多くの異なるタイプの画像コンテンツ(例えば、画像特徴)に対する最も頻度の高い応答であり得、特定の画像コンテンツまたは画像コンテンツのタイプに特有ではない。いくつかの実装形態は、そのような頻繁な一般的な応答を除外して、トレーニングデータのために、画像に対して、よりコンテンツ固有の応答を得ることができる。例えば、画像と応答との間の統計的関連スコアが計算されることが可能である。いくつかの例では、自己相互情報量(PMI)が、以下のように各画像−応答ペアについて判定され得る。
特定の関連閾値(例えば、PMI閾値)よりも低い関連スコア(例えば、PMI)を有するペアは、トレーニングデータから削除され得る。いくつかの例では、1の関連閾値が使用され得る。画像と応答とが独立してメッセージデータのセット内で発生する場合、フィルタリング後に残るペアは、フィルタリングされたペアよりも頻繁に発生し、従って、これらの残りのペアの応答は、これらの残りのペアの画像コンテンツに対し、より特有のものである(例えば、残りのペアは、相互により関連性の高い画像および応答を有するが、フィルタ除去されたペアは、相互により関連性の低い画像および応答を有する)。残りのペアは、調整された言語モデルをトレーニングするためのトレーニングデータとして使用することができ、残りのペアに含まれる画像と類似していることが検出された新しい画像に対する提案された応答を生成する。したがって、トレーニングデータは、トレーニングデータ内の前の応答が、トレーニングデータから除外された他のより一般的な前の応答よりも、前の画像の特定のコンテンツに対してより特有であるように、フィルタリングされ得る。
いくつかの実装形態では、ユーザの同意が得られている場合、(例えば、前の応答データに示されているように)1つまたは複数の応答に対するユーザの嗜好を使用して、モデルのトレーニングのためのトレーニングデータ中の同じまたは類似の応答に重み付けすることができる。ユーザの嗜好は、例えば、ユーザによって頻繁に提供された(例えば、閾値回数を超えてユーザによって提供された)応答、および/またはユーザによって好意的に受信され評価された(例えば、明示的なユーザ評価または肯定的な折り返しの返信がある)応答について示され得る。例えば、同じまたは類似の応答は、モデルのトレーニングにおいてより大きなバイアスを有する可能性があり、例えば、上述のようにモデルが確率を生成するときにこれらの応答により大きい確率またはスコアを持たせる。同様の応答には、同じ語根(例えば、接尾辞や句読点のない単語)、および/または参照されているデータベース(例えば、シソーラス、辞書など)、ナレッジグラフ、またはモデルによって判定されるのと同じ意味論的意味を持つ応答が含まれ得る。
本明細書に記載の方法、ブロック、および動作は、図示または説明したものとは異なる順序で実行することができ、および/または適切な場合には他のブロックまたは動作と(部分的または完全に)同時に実行することができる。いくつかのブロックまたは動作は、データのある部分に対して実行され、後で、例えば、データの別の部分に対して、再度実行されることができる。説明されたブロックおよび動作のすべてが様々な実装形態において実行される必要があるわけではない。いくつかの実装形態では、ブロックおよび動作は、異なる順序で、および/または方法の中で異なる時間に、複数回実行することができる。
いくつかの実装形態では、いくつかの、またはすべての方法は、1つまたは複数のクライアントデバイスなどのシステム上に実装することができる。いくつかの実装形態では、本明細書で説明されている1つまたは複数の方法は、例えば、サーバシステム上、および/またはサーバシステムおよびクライアントシステムの両方の上に実装することができる。いくつかの実装形態では、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素は、異なるブロック、動作、または方法の他の部分を実行することができる。
図6は、メッセージングアプリケーションがユーザ間の会話に使用されるユーザインタフェース601を表示する例示的なクライアントデバイス600のグラフィック表現である。この例では、第1のユーザと第2のユーザとは、彼らのクライアントデバイスを介してチャットに参加しており、第2のユーザはクライアントデバイス600を操作している。表示されているアイコン602で表される第1のユーザは、ユーザインタフェースに表示されているようにメッセージ604を第2のユーザに送信する。例えば、メッセージ602は、ネットワークを介して第1のユーザのユーザデバイスから第2のユーザによって操作されるクライアントデバイス600に送信された可能性がある。第2のユーザは、ユーザインタフェースに表示されているメッセージ606で応答する。例えば、第2のユーザは、例えば表示されたキーボードまたは他の入力ディスプレイまたはデバイスを介して、メッセージ606をユーザインタフェース601に入力した可能性がある。それに応答して、第1のユーザは、画像608を含むメッセージを第2のユーザに送信し、画像608は、会話の前のメッセージの後に(例えば、下に)ユーザインタフェースで表示される。いくつかの例では、第1のユーザ602は人間のユーザである。いくつかの実装形態では、第1のユーザ602はボットであってよい。
いくつかの実装形態では、第1のユーザは、電話番号をメッセージングすること(例えば、メッセージングアプリケーション103が、SMS、または電話番号を利用する別のメッセージングアプリケーションで動作する場合)により、または連絡先リストからユーザを選択すること(例えば、メッセージングアプリケーション103がリッチコミュニケーションサービス(RCS)または他のチャットインタフェースで動作する場合)により、メッセージを送信する。
図7は、受信された画像に対する生成された提案応答を含むメッセージングアプリケーションにおける会話を伴う、図6の例示的なクライアントデバイス600およびユーザインタフェース601のグラフィック表現である。図7に示す会話は、図6の会話と同じである。図7に見られるように、メッセージングアプリケーション103は、例えば、図2に示される方法を使用することによって、画像608に対する1つまたは複数の提案された応答710を提供し、それはユーザインタフェース601に表示される。あるいは、メッセージフィールド718が、(例えばキーボード、音声コマンドなどを介して)第1のユーザに送信するためのテキストメッセージを入力するために第2のユーザによって使用され得る。提案された応答710のうちのいずれも、画像608を受信したことに対する応答として第2のユーザによって選択され得る。例えば、(テキスト「おー(aww)」を有する)提案された応答712、(テキスト「かわいいカップル?(cute couple?)」を有する)提案された応答714、および(テキスト「それはどこ?(where is that?)」を有する)提案された応答806が、画像608を含むメッセージに応答するために第2のユーザが選択するためのオプションとしてユーザインタフェース601に表示される。例えば、提案された応答712、714、および716は、図7の受信された画像608の下に表示されているが、ユーザインタフェースの様々な場所のいずれにも(例えば、画像608の上、側方、または周囲、ユーザインタフェース601内の別個に表示されたフィールドまたはウィンドウ内などに)表示され得る。
図7に示される例では、画像608は、本明細書に記載されるようにモデルのトレーニングに基づいて提案応答を判定するために、調整された言語モデルによって処理されている。提案された応答710のうちの1つまたは複数は、画像608と同様のピクセルを描画する画像に対してユーザによって提供された前の応答を含むトレーニングデータによってトレーニングされた調整された言語モデルに基づいて判定され得る。応答は画像ピクセルの表現に基づいて直接判定されるので、画像に対し適切かつ関連性があり、かつ画像608においてシステムによって検出された概念または描かれた画像特徴に基づく判定されたラベルに限定されない提案応答を判定し提示することができる。この例では、提案された応答712「おー(aww)」は、画像ピクセルと、前のメッセージデータに基づく機械学習トレーニングとに基づいて判定される。ラベルが判定され、提案された応答が、ラベルから、例えば提案された応答にラベルを関連付けるデータに基づいて判定される他の技術によっては、提案された応答712は判定することができなかったかもしれない。例えば、そのようなラベルは、システムによって画像608において検出された画像特徴を記述するために「人」、「男性」、および「女性」を含むことができ、そのようなラベルは、応答712および/または他の応答714または716などの提案された応答を生成する可能性が低いかもしれない。
図8、9、10、および11は、例えば異なるユーザデバイスからのメッセージで受信された、画像に対する判定された提案応答の追加の例を示すグラフィック表現である。これらの例では、提案された応答は、メッセージングアプリケーションのユーザインタフェースに表示され、本明細書に記載の1つまたは複数の機能を使用してメッセージングアプリケーションによって、またはメッセージングアプリケーションに対して生成することができる。
図8は、受信された画像802と、画像802に基づいて、調整された言語モデルを使用して判定され、画像802への返信として第2のユーザによる選択のためにユーザインタフェース800に提示された提案応答804とを表示するユーザインタフェース800を示す。この例では、提案された応答は、提案された応答806(「美しい(beautiful)」)、提案された応答808(「きれい(pretty)」)、および提案された応答810(「それはどこ?(where is that?)」)を含む。応答806、808、および810のうちの1つまたは複数が選択されて、選択された応答を第1のユーザに通信ネットワークを介して送信することができる(例えば、確認プロンプトが表示されて、選択された提案応答が送られるべきことを第2のユーザが確認することを要求することが可能である)。代わりに、メッセージフィールド812が、第1のユーザに送信するためのテキストメッセージを入力するために第2のユーザによって使用され得る。応答806、808、および810は、画像ピクセルに基づいて直接判定された適切な応答であり得る。例えば、検出された画像特徴および画像に描かれた概念に基づいて判定された「湖」、「空」、および「木」などのラベルに基づいて提案応答が判定される他の技術によっては、応答806が判定されることはなかった可能性がある。
図9は、同様に、受信された画像902と、画像902に基づいて、調整された言語モデルを使用して判定され、画像902への返信として第2のユーザによる選択のためにユーザインタフェース900に提示された提案応答904とを表示するユーザインタフェース900を示す。この例では、提案された応答は、提案された応答906(「楽しそう(looks like fun)」)、提案された応答908(「わーい(whee)」)、および提案された応答910(「楽しいね!(fun!)」)を含む。応答906、908、および910のうちの1つまたは複数が第2のユーザによって選択されて、選択された応答を第1のユーザに通信ネットワークを介して送信することができる。代わりに、メッセージフィールド912が、第1のユーザに送信するためのテキストメッセージを入力するために第2のユーザによって使用され得る。応答906、908、および910は、画像ピクセルに基づいて直接判定された適切な応答であり得る。例えば、検出された画像特徴および画像に描かれた概念に基づいて画像に対し判定された「人」、「男性」、「女性」、および「木」などのラベルに基づいて提案応答が判定される他の技術によっては、応答906が判定されることはなかった可能性がある。
図10は、受信された画像1002と、画像1002に基づいて調整された言語モデルを使用して判定され、画像1002への返信として第2のユーザによる選択のためにユーザインタフェース1000に提示される提案された応答1004とを表示するユーザインタフェース1000を同様に示す。この例では、提案された応答は、提案された応答1006(「これはかわいい(those are cute)」)、提案された応答1008(「いいね(I like it)」)、および提案された応答1010(「赤もありますか?(available in red?)」)を含む。応答1006、1008、および1010のうちの1つまたは複数が第2のユーザによって選択されて、選択された応答を第1のユーザに通信ネットワークを介して送信することができる。代わりに、メッセージフィールド1012が、第1のユーザに送信するためのテキストメッセージを入力するために第2のユーザによって使用され得る。応答1006、1008、および1010は、画像ピクセルに基づいて直接判定された適切な応答であり得る。例えば、検出された画像特徴および画像に描かれた概念に基づいて画像に対し判定された「衣服」および「ズボン」などのラベルに基づいて提案応答が判定される他の技術によっては、応答1006が判定されることはなかった可能性がある。
図11は、受信された画像1102と、画像1102に基づいて調整された言語モデルを使用して判定され、画像1102への返信として第2のユーザによる選択のためにユーザインタフェース1100に提示される提案された応答1104とを表示するユーザインタフェース1100を同様に示す。この例では、提案された応答は、提案された応答1106(「素敵ですね(You look great)」)、提案された応答1008(「彼女はあなたを愛している!(she loves you!)」)、および提案された応答1010(「幸せ者(lucky guy)」)を含む。応答1106、1108、および1110のうちの1つまたは複数が第2のユーザによって選択されて、選択された応答を第1のユーザに通信ネットワークを介して送信することができる。代わりに、メッセージフィールド1112が、第1のユーザに送信するためのテキストメッセージを入力するために第2のユーザによって使用され得る。応答1106、1108、および1110は、画像ピクセルに基づいて直接判定された適切な応答であり得る。例えば、検出された画像特徴および画像に描かれている概念に基づいて画像に対し判定された「人」、「女性」、「男性」、および「キス」などのラベルに基づいて提案応答が判定される他の技術によっては、応答1106が判定されることはなかった可能性がある。
ボットの実装
ボットは自動化されたサービスで、1つまたは複数のコンピュータに実装されており、ユーザは主にテキストを通じて、例えばメッセージングアプリケーション103a/103bを介して対話する。ボットは、ボットが様々なメッセージングアプリケーションのユーザと対話できるように、ボットプロバイダによって実装され得る。いくつかの実装形態では、メッセージングアプリケーション103a/103bのプロバイダは、1つまたは複数のボットを提供することもある。いくつかの実装形態では、メッセージングアプリケーション103a/103bのプロバイダによって提供されるボットは、ボットが他のメッセージングアプリケーションに含まれることができるように、例えば他のプロバイダによって提供されるように構成され得る。ボットは他のモードに比べていくつかの利点を提供することが可能である。例えば、ボットは、クライアントデバイスにアプリケーションをインストールしたり、ウェブサイトにアクセスしたりすることなく、ユーザが新しいサービス(例えば、タクシー予約サービス、レストラン予約サービスなど)を試すことを許可することができる。さらに、ユーザは、テキストを介してボットと対話することができ、これは、ウェブサイト、ソフトウェアアプリケーション、電話通話、例えば、対話式音声応答(interactive voice response:IVR)サービス、またはサービスとやり取りする他の方法を使用するのに必要な学習と比較して、最小限の学習しか必要とせず、または全く学習を必要としない。メッセージングサービスまたはアプリケーションにボットを組み込むことで、ユーザは、メッセージングサービス内で旅行の計画、買い物、イベントのスケジュール、情報の取得などのさまざまなタスクを他のユーザと協力することも可能となり、タスクを実行するためのさまざまなアプリケーション(例えば、タクシー予約アプリケーション、レストラン予約アプリケーション、カレンダーアプリケーションなど)間またはWebサイト間での切り替えのような面倒な操作を排除することができる。
ボットは、メッセージングアプリケーション103a/103bを介して一または複数のユーザ(例えば、ユーザ125a〜nのうちのいずれか)と対話して情報を提供するか、またはメッセージングアプリケーション103内で特定のアクションを実施するように構成されたコンピュータプログラムまたはアプリケーション(例えば、ソフトウェアアプリケーション)として実装されてもよい。一例として、情報検索ボットは、インターネット上の情報を検索し、メッセージングアプリ内で最も関連性の高い検索結果を提示することができる。別の例として、トラベルボットは、例えば、メッセージングアプリ内で旅行およびホテルのチケットの購入を可能にし、メッセージングアプリ内でホテルを予約し、メッセージングアプリ内でレンタカーを予約することなどによって、メッセージングアプリケーション103を介して旅行手配をする能力を有し得る。別の例として、タクシーボットは、別個のタクシー予約アプリを起動することも呼び出すこともせずに、例えば、(ユーザ125が位置情報へのアクセスを許可する場合にクライアントデバイス115からタクシーボットによって取得される)ユーザの位置にタクシーを呼び出す能力を有し得る。別の例として、コーチ/チューターボットは、ユーザを個人指導して、例えば、試験に現れる可能性がある質問をし、ユーザの応答が正しいか誤っているかについてのフィードバックを提供することによって、メッセージングアプリ内のいくつかの科目の内容についてユーザを指導し得る。別の例として、ゲームボットは、メッセージングアプリ内においてユーザとは反対サイドまたは同じサイドでゲームをプレイすることができる。別の例として、コマーシャルボットは、例えば、商人のカタログから製品情報を検索し、メッセージングアプリを通じて購入を可能とすることによって、特定の商人からサービスを提供することができる。別の例として、インタフェースボットは、メッセージングアプリのユーザが遠隔デバイスまたは車両とチャットし、そこから情報を検索し、および/または遠隔デバイスまたは車両に命令を提供できるように遠隔デバイスまたは車両とインタフェースしてもよい。
ボットの機能には、ユーザの意図を理解して実行することが含まれ得る。ユーザの意図は、ユーザの会話およびその文脈を分析し理解することによって理解され得る。ボットは、会話の変化するコンテキスト、または時間の経過とともに進化する会話に基づくユーザの変化する感情および/または意図を理解することもできる。例えば、ユーザAがコーヒーのための会議を提案したが、ユーザBがコーヒーを好まないと述べた場合、ボットはユーザBにコーヒーに対する否定的な感情スコアを割り当て、会議のためにコーヒーショップを提案しない可能性がある。
メッセージングアプリケーション103a/103bのユーザと通信することができるボットを実装することは、多くの利点を提供することができる。従来、ユーザは、請求書の支払い、食べ物の注文、チケットの予約などの活動を実行するためにソフトウェアアプリケーションまたはウェブサイトを利用することがある。そのような実施に関する問題は、複数の活動を実行するために、ユーザが複数のソフトウェアアプリケーションやウェブサイトをインストールまたは使用することを要求されることである。例えば、ユーザは、(例えば、公益事業会社からの)公共料金の請求書に対する支払いをするため、映画のチケットを購入するため(例えば、チケットサービスプロバイダからのチケット予約アプリケーション)、(例えばそれぞれのレストランから)レストランの予約をするために、異なるソフトウェアアプリケーションをインストールしなければならない場合があり、または各活動のためにそれぞれのウェブサイトを訪問する必要があり得る。そのような実施に関する別の問題は、ユーザが複雑なユーザインタフェース、例えばウィンドウ、ボタン、チェックボックス、ダイアログボックスなどのような複数のユーザインタフェース要素を使用して実装されたユーザインタフェースなどを学習しなくてはならないことである。
したがって、1つまたは複数の説明された実装形態の利点は、単一のアプリケーションが、別個のウェブサイトへのアクセスまたはソフトウェアアプリケーションのインストールおよび実行を必要とせずに、ユーザが任意の数の相手との対話を含むアクティビティを実行できることであり、これはクライアントデバイス上のメモリ、ストレージ、および処理リソースの消費を削減する技術的効果を有する。説明された実装形態の利点は、会話型インタフェースにより、ユーザが、例えば複雑なユーザインタフェースを学習する必要なしに、そのような活動を完了することをより簡単かつ迅速とすることであり、これは計算リソースの消費を低減するという技術的効果を有する。説明された実装形態の別の利点は、ボットを実装することによって、例えば、通信サーバ、1つまたは複数のWebサーバでホストされているWebサイト、EメールサーバでホストされているカスタマーサポートEメールなどのうちの一つまたは複数を使用して実装された無料電話番号など、様々な参加エンティティがより低いコストでユーザ対話を提供できるようになることであり、これは、ユーザ対話を可能とするために展開される計算リソースの必要性を減らすことができるという技術的効果を有する。説明された特徴の他の技術的効果は、通信ネットワークにわたってユーザタスクを完了するために必要とされるシステム処理および伝送リソースの消費の問題の縮小である。
本明細書における特定の例は、ボットと一または複数のユーザとの間の対話を説明しているが、ボットとユーザ125との間の1対1の対話、ボットと二以上のユーザとの間の(例えば、グループメッセージングの会話における)1対多の対話、複数のボットとユーザとの間の多対1の対話、および複数のボットと複数のユーザとの間の多対多の対話などの様々なタイプの対話が可能である。さらに、いくつかの実装形態では、ボットは、メッセージングアプリケーション103を介して、ボット間の直接通信を介して、または組み合わせにより、他のボット(例えば、ボット107a/107b、109a/109b、111、113など)と対話するようにも構成され得る。例えば、レストラン予約ボットは、テーブルを予約するために特定のレストランのボットと対話することができる。
特定の実施形態では、ボットは会話型インタフェースを使用して自然言語を使用してユーザと会話的に対話することができる。いくつかの実施形態では、ボットは、例えばレストランの住所の要求に応じて、「レストランRの位置はLである」などのテンプレートを使用するなど、テンプレートベースのフォーマットを使用して、ユーザと対話するための文章を作成することができる。場合によっては、例えばボットがユーザと対話するために自然言語を使用するかどうか、ボットがテンプレートベースの対話を使用するかどうかなど、ユーザが、ボット対話フォーマットを選択できるようにすることが可能であり得る。
ボットが自然言語を使用して会話的に対話する場合、ボットの対話の内容および/またはスタイルは、自然言語処理を使用して判定される会話の内容、会話中のユーザの識別情報、1つまたは複数の会話コンテキスト(例えば、ユーザの対話に関する履歴情報、ソーシャルグラフに基づく会話内のユーザ間の関係)、外部条件(例えば、天気、交通)、ユーザのスケジュール、ユーザに関連する関連コンテキストなどのうちの一つまたは複数に基づいて動的に変化し得る。このような場合、ボットの対話の内容とスタイルは、会話に参加しているユーザが同意した要素のみに基づいて異なる。
一例として、会話のユーザがフォーマルな言葉を使用していると判断された場合(例えば、俗語や絵文字がない、または最小限の俗語または絵文字)、ボットもフォーマルな言葉を使用してその会話内で対話することができ、逆もまた同様である。別の例として、会話中のユーザが(現在および/または過去の会話に基づいて)絵文字のヘビーユーザであると判定された場合、ボットは、1つまたは複数の絵文字を使用してそのユーザと対話することもできる。別の例として、会話中の2人のユーザがソーシャルグラフ内で遠い関係であると判定された場合(例えば、彼らの間に2人以上の中間ノードを有する、例えば、彼らが友達の友達の友達であることを示す)、ボットはその会話でよりフォーマルな言葉を使用し得る。会話に参加しているユーザが、ユーザのソーシャルグラフ、スケジュール、場所、またはユーザに関連するその他のコンテキストなどの要素をボットが利用することに同意していない場合、ボットの対話の内容およびスタイルは、このような要素を利用する必要がないデフォルトスタイル、例えばニュートラルスタイルであり得る。
さらに、いくつかの実装形態では、一または複数のボットは、ユーザとの会話をやり取りするための機能を含むことができる。例えば、ユーザが、「@ムービーボット映画を推薦してくれませんか?(@moviebot Can you recommend a movie?)」と入力することにより映画に関する情報を要求した場合、「ムービーボット(moviebot)」というボットが「コメディーの気分ですか?」と応答し得る。次に、ユーザは、例えば「いいえ」と応答する場合があり、これに対し、ボットは、「了解しました。「宇宙と星」というタイトルのSF映画は素晴らしい評価を得ています。チケットを予約しましょうか?」と応答し得る。するとユーザは、「はい、私は午後6時より後に行くことができます。スティーブが参加できるかどうか確認してください」と表明することができる。ボットが自分の連絡先についての情報にアクセスすることに対するユーザの同意、およびボットからメッセージを受信することに対する友人スティーブの同意があると、ボットはユーザの友人スティーブにメッセージを送信し、適切な時間に映画チケットを予約するさらなるアクションを実行することが可能である。
特定の実施形態では、会話に参加しているユーザは、例えば、ボット名またはボットハンドル(例えば、タクシー(taxi)、@タクシーボット(@taxibot)、@ムービー(@movies)など)を入力すること、音声コマンド(例えば、「銀行ボットを呼び出して」など)を使用すること、ユーザインタフェース要素(例えば、ボット名またはハンドルでラベル付けされたボタンまたはその他の要素)をアクティブにすることなどによって、特定のボットまたは特定のタスクを実行するボットを呼び出すことが可能とされ得る。ボットが呼び出されると、ユーザ125は、他のユーザ125にメッセージを送信するのと同様の方法で、メッセージングアプリケーション103a/103bを介してボットにメッセージを送信することができる。例えば、タクシーを呼ぶには、ユーザは「@タクシーボットタクシーを呼んで(@taxibot get me a cab)」と入力することができ、ホテルを予約するには、ユーザは「@ホテルボット私の近くの中華料理店で4人のテーブルを予約して(@hotelbot book a table for 4 at a Chinese restaurant near me)」と入力することができる。
特定の実施形態では、ボットは、具体的に呼び出されることなく、メッセージング会話内の情報またはアクションを自動的に提案することができる。つまり、ユーザはボットを特別に呼び出す必要がないかもしれない。これらの実施形態では、ボットは、継続的にまたは別々の時点での会話の分析および理解に依存することができる。会話の分析は、特定のユーザのニーズを理解し、いつボットが支援を提案すべきかを識別するために使用することができる。一例として、ボットは、ユーザが情報を必要としていると判定した場合(例えば、ユーザが他のユーザに質問することに基づいて、複数のユーザがある情報を有していないことを示すことに基づいて)、何らかの情報を検索して答えを提案することが可能である。別の例として、複数のユーザが中華料理を食べることに興味を表明したと判定された場合、ボットは自動的にユーザの近くにある一連の中華レストランを提案してもよく、これは、レストランの場所、評価、ウェブサイトへのリンクなどの任意の情報の提案を含む。
特定の実施形態では、ボットを自動的に呼び出したり、またはユーザがボットを明示的に呼び出すのを待ったりするのではなく、自動的な提案がメッセージング会話中の一または複数のユーザに対し行われて、一または複数のボットを呼び出すことができる。これらの実施形態では、会話は継続的にまたは別々の時点で分析されることができ、会話の分析は、特定のユーザのニーズを理解し、いつ会話内でボットを提案すべきかを識別するために使用することができる。
ボットが具体的に呼び出されることなく、メッセージング会話内において情報またはアクションを自動的に提案することができる実施形態では、例えば、メッセージング会話に参加している一または複数のユーザが、ユーザの会話の分析をボットが実施することについて同意しない場合、そのような機能は無効にされる。さらに、そのような機能は、ユーザ入力に基づいて一時的に無効にされてもよい。例えば、会話がプライベートであることをユーザが示したとき、会話コンテキストの分析は、ユーザがボットをアクティブにするための入力を提供するまで一時停止される。さらに、分析機能が無効化されているという標示を、例えばユーザインタフェース要素を用いて、会話の参加者に提供することができる。
様々な実装形態では、ボットは様々な構成で実装され得る。例えば、図1に示されるように、ボット105はクライアントデバイス115a上に実装される。この例では、ボットは、クライアントデバイス115aに対してローカルなソフトウェアアプリケーション内のモジュールであり得る。例えば、ユーザがクライアントデバイス115a上にタクシーを呼ぶアプリケーションをインストールした場合、ボット機能はタクシーを呼ぶアプリケーションにモジュールとして組み込まれることができる。この例では、ユーザは、例えば「@タクシーボットタクシーを呼んで(@taxibot get me a cab)」というメッセージを送信することによって、タクシーボットを呼び出すことが可能である。メッセージングアプリケーション103bは、タクシーを呼ぶアプリケーション内のボットモジュールを自動的に起動させることができる。このようにして、ユーザがメッセージングアプリケーション103を介してボットと会話することができるように、ボットはクライアントデバイス上にローカルに実装され得る。
図1に示す別の例では、ボット107aはクライアントデバイス115a上に実装されているように示され、ボット107bはメッセージングサーバ101上に実装されているように示されている。この例では、ボットは、ボット107a(サーバモジュール)およびボット107b(クライアントモジュール)のそれぞれによって提供されるボット機能の一部を用いて、例えばクライアント−サーバコンピュータプログラムとして、実装することができる。例えば、ボットがハンドル@カレンダー(@calendar)を有するスケジューリングボットである場合、ユーザ115aは、「@カレンダー夕方に洗濯物を受け取ることをリマインドして(@calendar remind me to pick up laundry in the evening)」と入力することによって、リマインダをスケジュールすることができ、これは、ボット107b(クライアントモジュール)によって取り扱われ得る。この例を続けると、ユーザ115aがボットに「ジムは4時に会えるかをチェックして」と言うと、ボット107a(サーバモジュール)はメッセージを交換するためにユーザであるジム(またはジムのスケジューリングボット)に連絡し、ユーザ115aに応答を提供する。
別の例では、ボット109a(サーバモジュール)はサーバ135上に実装され、ボット109b(クライアントモジュール)はクライアントデバイス115上に実装される。この例では、ボット機能は、クライアントデバイス115、およびメッセージングサーバ101とは異なるサーバ135上に実装されたモジュールによって提供される。いくつかの実装形態では、ボットは、例えば、複数のクライアントデバイスおよびサーバ(例えば、クライアントデバイス115、サーバ135、メッセージングサーバ101など)にわたって分散されたモジュールを用いて、分散アプリケーションとして実装され得る。いくつかの実装形態では、ボットは、サーバアプリケーションとして実装されることができ、それは、例えば、メッセージングサーバ101上に実装されるボット111、およびサーバ135上に実装されるボット113である。
クライアントのみ、サーバのみ、クライアント−サーバ、分散などの種々の実装は、様々な利点を提供することができる。例えば、クライアントのみの実装では、ボット機能をローカルで、例えば、ネットワークアクセスがなくても、提供することが可能であり、これは、例えば、ユーザがネットワークのサービスエリア外にいるとき、または少ないまたは限られたネットワーク帯域幅しか有しない任意のエリア内にいる場合のような、特定の状況において有利であり得る。サーバのみ、クライアント−サーバ、または分散構成などの1つまたは複数のサーバを含む実装では、例えば、金融取引、チケットの予約などのクライアントデバイスでローカルに提供できない特定の機能が許可され得る。
図1では、ボットをメッセージングアプリケーション103とは異なるものとして示しているが、いくつかの実装形態では、1つまたは複数のボットは、メッセージングアプリケーション103の一部として実装され得る。ボットがメッセージングアプリケーション103の一部として実装される実装形態では、ボットを実行する前にユーザの許可が取得される。例えば、ボットがメッセージングアプリケーション103a/103bの一部として実行される場合、メッセージングアプリケーション103a/103bは、特定の活動を実施することができるボット、例えば、送受信メッセージを翻訳する翻訳ボット、ユーザのカレンダー上のイベントをスケジュールするスケジューリングボットなどを提供することが可能である。この例では、翻訳ボットはユーザの具体的な許可がある場合にのみアクティブになる。ユーザが同意しない場合、メッセージングアプリケーション103a/103b内のボットは実装されない(例えば、無効化、削除など)。ユーザが同意する場合、ボットまたはメッセージングアプリケーション103a/103bは、メッセージングアプリケーション103a/103bを介してユーザ間で交換されるメッセージを限定的に使用して、特定の機能、例えば、翻訳、スケジューリングなどを提供することができる。
いくつかの実装形態では、メッセージングアプリケーション103a/103bのプロバイダおよびユーザ125とは異なるサードパーティが、特定の目的のためにメッセージングアプリケーション103a/103bを介してユーザ125と通信することができるボットを提供し得る。例えば、タクシーサービスプロバイダはタクシーボットを提供し、発券サービスはイベントチケットを予約できるボットを提供し、銀行ボットは金融取引を実行する機能を提供することができる。
メッセージングアプリケーション103を介してボットを実装する際、ボットは、特定のユーザ許可があった場合にのみユーザと通信することを許可される。例えば、ユーザがボットを呼び出すと、ボットは、例えば、ボットを呼び出すというユーザの動作に基づいて返信することができる。別の例では、ユーザは、ユーザに連絡することができる特定のボットまたはボットの種類を示すことができる。例えば、ユーザは、旅行ボットが自分と通信することを許可するが、ショッピングボットには許可を与えないことがある。この例では、メッセージングアプリケーション103a/103bは、旅行ボットがユーザとメッセージを交換することを許可するが、ショッピングボットからのメッセージをフィルタリングまたは拒否することができる。
さらに、いくつかの機能(例えば、タクシーの呼出、フライト予約、友達への連絡など)を提供するために、ボットは、場所、支払い情報、連絡先などのユーザデータへのボットのアクセスをユーザが許可することを要求し得る。そのような場合、ユーザには、ボットへアクセスを許可または拒否するオプションが提示される。ユーザがアクセスを拒否した場合、ボットはメッセージで、例えば「申し訳ありませんが、タクシーを予約することができません」と、応答する可能性がある。さらに、ユーザは、限定されたやり方で情報へのアクセスを提供することができ、例えば、ユーザは、ボットの特定の起動時にのみタクシーボットが現在位置にアクセスすることを許可し、他の場合は許可しないことができる。異なる実装形態では、ユーザは、ボットがアクセスできる情報の種類、量、および粒度を制御することができ、そのような許可をいつでも変更することができる(例えば、ユーザインタフェースを介した)機能が提供されている。いくつかの実装形態では、ボットがそのようなデータにアクセスすることができるようになる前に、例えば、個人を識別可能な情報を削除するなど、情報を特定のデータ要素に制限するためにユーザデータが処理され得る。さらに、ユーザは、メッセージングアプリケーション103a/103bおよび1つまたは複数のボットによるユーザデータの使用を制御することができる。例えば、ユーザは、金融取引を行う能力を提供するボットが、取引完了前にユーザ認証を必要とすることを指定することができ、例えば、ボットは、「映画「宇宙と星」のチケットは各12ドルです。このまま予約しますか?」というメッセージ、または「このシャツの最安値は送料込みで125ドルです。あなたの下4桁1234のクレジットカードに請求しますか?」というメッセージを送信し得る。
いくつかの実装形態では、上記のシステム(例えば、図2〜11について説明したシステム)によって生成された1つまたは複数の提案された応答は、ボットを起動または命令するために使用されるメッセージであり得る。例えば、システムは、受信された画像が、ボットによって提供される情報および/または1つまたは複数の機能によって支援されることになるコンテンツを含むかどうかを判断することができる。いくつかの例では、会話中の第1のユーザは、「Guess where?(どこだと思う?)」というテキストメッセージを第2のユーザに送信することができる。次に、第1のユーザは画像を第2のユーザの装置に送信する。システムは、提案された応答が画像コンテンツに関連する情報を見つけるための要求であり得ることを、単語「guess(だと思う)」を含むフレーズが示していると判断することができる。(「where(どこ)」、「what(何)」などの他の単語もそのような要求を示し得る。)応答として、システムは、関連情報を提供することができる適切なボットへの要求またはコマンドである提案された応答を生成することができる。例えば、提案された応答は、画像内に描かれた場所の名前を提供するためのマッピングボットへの要求であり得る(例えば、ボットがウェブ検索、地図および地図帳、受信された画像の地理的位置メタデータ等を使用してそのような情報を判定し得る場合)。いくつかの実装形態では、トレーニングメッセージデータが、(例えば、もしユーザの同意が得られているならば、1つまたは複数の画像検出または認識技術を使用して)画像内で検出された特定の種類の画像コンテンツについて適切な種類のボットを判定するために使用されることができ(ユーザの同意が得られている場合)、および/またはルールベースの文法が、画像コンテンツの種類および/または画像コンテンツで検出された概念に基づいて、提案応答においてどの種類のボットを呼び出すべきかを判定することが可能である。
いくつかの実装形態では、ボット関連の提案された応答が可能な応答としてユーザに対し表示され、ユーザがその提案を選択する場合、ボットがメッセージ会話およびメッセージングインタフェースに追加され、例えばボット名で表されることが可能である。ボットは、会話において要求された情報を判定し、例えば、メッセージングユーザインタフェース内の第1のユーザおよび第2のユーザの両方へのメッセージとして出力することができる。
別の例では、第1のユーザは、第2のユーザにとって外国語であるテキストを描く画像を送信する。システムは、適切な提案応答が、画像内のテキストを翻訳すること、およびメッセージ会話インタフェース内に翻訳されたテキストを出力するための言語ボットへの要求であると判定することができる。
別の例では、第1のユーザは食品を描く画像を送信する。システムは、適切な提案応答が、1つまたは複数のアクセス可能なデータソース(例えばインターネット上)をチェックして、典型的にまたは具体的にその食品に含まれる成分および/またはカロリーを判定し、その情報をメッセージ会話インタフェースに出力するためのボットへの要求であると判定することができる。
本明細書に記載の実装形態は、一般にメッセージングアプリケーションに関する。特定の実装形態は、1つまたは複数のメッセージング会話の画像コンテンツおよび/またはユーザ情報を(例えば、ユーザの介入なしに)自動的に分析して、メッセージングアプリケーション内でユーザに対し提案された応答を自動的に提供し得る。いくつかの例では、自動的に提案された応答は、メッセージングアプリケーションで応答するためにユーザによって選択されてもよく、および/またはユーザに代わって1つまたは複数の適切な応答として自動的に送信されてもよい。他の特定の例では、提案は、特定の非メッセージング機能をメッセージングアプリケーションに自動的に組み込むことができる。
前述の説明は、画像を受信したことに応答して、提案された応答を提供するための技術を含むが、提案された応答は、会話において受信される任意の種類のメディアコンテンツに応答して提供され得る。例えば、そのようなコンテンツは、(例えば、チャットアプリケーションにおける)ステッカー、アニメ画像(例えば、シネマグラフ、GIF画像など)、およびビデオを含み得る。さらに、前述の説明は、提案された応答をテキスト応答として説明しているが、他のタイプの応答も、例えば受信された画像の分析に基づいて提案されてもよい。例えば、他の応答は、提案された画像、提案されたステッカー、提案されたアニメ画像(例えば、シネマグラフ、GIF画像など)および提案されたビデオのうちの1つまたは複数を含み得る。これらの提案を提供するために、提案モジュール304は、例えば、受信されたアイテム(例えば、テキスト、画像、ビデオ、ステッカー、アニメ画像など)内の識別された概念の、異なるタイプの応答内の概念との比較を実行することができ、テキストを含む提案された応答を参照して上述したように、適切な応答を選択することが可能である。ユーザが同意を提供する異なる実装形態では、応答のタイプはコンテキストに基づいて選択または優先順位付けされることが可能であり、例えば、ステッカーは、着信ステッカーに応答して、提案された応答として選択される場合があり、ビデオは、着信画像に応答して、提案された応答として選択される場合がある。
特定の実装形態は、人間のユーザおよび/またはチャットボットとのメッセージングを可能にする。特定の実装形態では、チャットボットがメッセージング会話に参加しているかどうかに基づいて、自動メッセージ提案がカスタマイズされ得る。いくつかの例では、チャットボットがメッセージング会話中に存在しない場合、第1セットの自動メッセージ提案が提供され、チャットボットがメッセージング会話中に存在する場合、第2セットの自動的に提案されたメッセージが提供され得、第1セットおよび第2セットの応答は、少なくとも部分的に異なる。例えば、これらの実装は、チャットボットの従う会話ルールを採用し、そのルールに基づいてメッセージをユーザに提案することができる。これにより、チャットボットにより容易に理解される言語および形式でチャットボットと通信する際にユーザが抱える課題を軽減できる。
いくつかの実装形態は、ユーザの場所に関連する地域、市場、および国のうちの少なくとも1つにおける他のメッセージに基づいて1つまたは複数のトレンディング応答(例えば、多くの異なるユーザによって送信される人気のメッセージコンテンツを含むメッセージ応答)を判定することを含み得る。1つまたは複数の判定された提案応答は、1つまたは複数のトレンディング応答を含み得る。いくつかの実装形態では、ユーザの状況、例えば地理的位置、休日、またはイベントなどが、提示のために提案された応答のうちの1つまたは複数を生成および判断するために用いられ得る。
いくつかの実装形態では、1つまたは複数の提案された応答を判定することは、機械学習を使用してユーザのためのパーソナライズされたモデルを開発することに基づいてもよい。提案された応答を判定することは、ユーザの嗜好および/または通信中のユーザの前の動作に基づくことができる(そのような動作およびデータの使用についてのユーザの同意が得られた場合)。例えば、ユーザの嗜好は、含めることができる特定の単語を示すホワイトリスト、および/またはメッセージの提案に含めることができない特定の単語を示すブラックリストを含むことができる。ユーザの同意が得られた場合、メッセージの提案は、前の機会にユーザによって提供された句読点の使用、絵文字の使用、または他のコンテンツのうちの1つまたは複数に基づいて生成または修正され得る。
提案された応答を提供するために使用されるモデル、例えば上述の調整された言語モデルは、クライアントデバイス115および/またはサーバ、例えばサーバ101および/または応答生成器150によって実装され得る。いくつかの実装形態では、会話の参加者のクライアントデバイスだけが会話コンテンツにアクセスできるように、会話を暗号化することができる。これらの実装形態では、それぞれのクライアントデバイスによって実装されたモデルが、提案された応答を提供するために使用されることが可能であり、サーバによって実装されたモデルは使用されない。例えば、ユーザがサーバによって実装されるモデルの使用について同意を与えない場合、クライアントデバイスによって実装されるモデルが使用されてもよい。いくつかの実装形態では、クライアント実装モデルは、サーバ実装モデルに基づくかまたはそれから導出され得る。いくつかの実装形態では、例えば、クライアントデバイスがクライアントモデルを実装する能力を欠いている場合、サーバモデルが使用され得、クライアントモデルは使用されない可能性がある。いくつかの実装形態では、クライアントモデルおよびサーバモデルの組み合わせが使用され得る。
この文書に記載されている例は英語で示されている概念を利用しているが、提案は、任意の言語、例えばクライアントデバイス115に対して構成された言語、ロケール、または他の地理的情報、ユーザプリファレンスに基づいて選択された言語などで提供され得る。ユーザが会話のコンテキストの分析について同意を提供するいくつかの実装形態では、ユーザを含む(例えば、最近のメッセージにおける)様々な会話で使用された言語が検出されることが可能であり、メッセージの提案がその言語で提供され得る。
いくつかの実装形態では、本明細書に記載の1つまたは複数の機能に従って、複数の調整された言語モデルが格納され、トレーニングされ、利用され得る。いくつかの例では、各調整された言語モデルは、特定の人間により使用される言語の単語および応答でトレーニングされ、かつ使用され得る。例えば、第1の調整された言語モデルは、具体的には英語の応答でトレーニングされることが可能であり、第2の調整された言語モデルは、具体的にはヒンディー語の応答でトレーニングされることが可能である。いくつかの実装形態では、複数の利用可能な調整された言語モデルのうちの1つが、ランタイム中に使用するために、現在のユーザメッセージング会話について判定された言語に基づいて選択され得る。例えば、ユーザの同意が得られた場合、ユーザの現在の会話における前のメッセージ(例えば、現在のメッセージより前の所定の時間内のメッセージ、または所定の数の送信された新しいメッセージ)が、(例えば、メッセージングアプリケーションデータベース199から)読み出されることが可能であり、会話の言語は、例えば、使用された単語およびアクセス可能な記憶装置から言語データにアクセスすることに基づいて、システムによって検出される。検出された言語が利用可能な調整された言語モデルの言語と一致する場合、一致する調整された言語モデルが使用のために選択されて、本明細書で説明されるように、画像に対して1つまたは複数の提案された応答をプログラム的に生成する。
いくつかの実装形態では、複数の調整された言語モデルが、特定の画像に対する応答を生成するために使用され得る。例えば、受信された画像は、第1の調整された言語モデルおよび第2の調整された言語モデルに入力されることが可能であり、結果として得られる提案された応答のセットにおいて両方のモデルからの応答が使用される。いくつかの実装形態では、単一の調整された言語モデルがトレーニングされ、複数の言語に対する応答を提供するために使用され得、例えば、複数の言語において提供された応答が、調整された言語モデルのトレーニングに使用される。
図12は、本明細書に記載の1つまたは複数の機能を実装するために使用することができる例示的なデバイス1200のブロック図である。一例では、デバイス1200は、クライアントデバイス、例えば図1に示されるクライアントデバイス115のうちのいずれかを実装するために使用され得る。あるいは、デバイス1200は、サーバデバイス、例えば、図1のメッセージングサーバ101、概念識別器120、およびコンテンツ分類器130を実装する。デバイス1200は、上述したような任意の適切なコンピュータシステム、サーバ、または他の電子もしくはハードウェアデバイスであり得る。
本明細書に記載の1つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、宝飾品、帽子、バーチャルリアリティゴーグルまたはメガネ、拡張現実ゴーグルまたはメガネなど)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「app」)において実行することができる。一例では、クライアント/サーバアーキテクチャを使用することができ、例えば、(クライアントデバイスとしての)モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、出力のための(例えば、表示のための)最終出力データをサーバから受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割することができる。
いくつかの実装形態では、デバイス1200は、プロセッサ1202、メモリ1204、および入力/出力(I/O)インタフェース1206を含む。プロセッサ1202は、プログラムコードを実行し、デバイス1200の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、機構または構成要素を含む。プロセッサは、汎用中央処理装置(CPU)、複数の処理装置、機能を達成するための専用回路、または他のシステムを有するシステムを含み得る。処理は特定の地理的位置に限定される必要はなく、または時間的な制限がある必要もない。例えば、プロセッサは、その機能を「リアルタイム」、「オフライン」、「バッチモード」などで実行することができる。処理の部分は、異なる時間に、異なる場所で、異なる(または同じ)処理システムにより実行することができる。コンピュータは、メモリと通信する任意のプロセッサであり得る。
メモリ1204は、通常、プロセッサ1202によるアクセスのためにデバイス1200に設けられ、プロセッサにより実行される命令を格納するのに適したランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能読み取り専用メモリ(EEPROM)、フラッシュメモリなどの任意の適切なプロセッサ読み取り可能記憶媒体とすることができ、プロセッサ1202とは別個に配置され、および/またはそれと一体化され得る。メモリ1204は、オペレーティングシステム1208、メッセージングアプリケーション1216、およびデータ表示エンジン、ウェブホスティングエンジン、画像表示エンジン、通知エンジン、ソーシャルネットワーキングエンジンなどの他のアプリケーション1214を含む、プロセッサ1202によってサーバデバイス1200上で動作するソフトウェアを格納することができる。いくつかの実装形態では、メッセージングアプリケーション1216は、プロセッサ1202が本明細書に記載の機能、例えば、図2の方法のうちのいくつかまたは全てを実施することを可能とする命令を含み得る。例えば、メッセージングアプリケーション1216は、本明細書で説明されたようなメッセージ提案を提供することができる。いくつかの実装形態では、メッセージングアプリケーション1216は、特徴ベクトル生成器1216A、応答生成器1216B、およびユーザ対話モジュール1216Cなどの1つまたは複数のモジュールを含むことができ、および/または、これらのモジュールは、デバイス1200と通信する他のアプリケーションまたはデバイスに実装されることが可能である。アプリケーションのうちの1つまたは複数は、例えば、選択可能なオプションまたはコントロール、および選択されたオプションに基づくデータを表示するためのユーザ入力に応答して表示されるユーザインタフェースを提供することができる。他のアプリケーションまたはエンジン1214は、例えば、画像編集アプリケーション、メディア表示アプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーションなどを同様にまたは代替的に含むことができる。本明細書で開示された1つまたは複数の方法は、いくつかの環境およびプラットフォーム、例えば、任意のタイプのコンピューティングデバイス上で実行できるスタンドアロンコンピュータプログラム、ウェブページを有するウェブアプリケーション、モバイルコンピューティングデバイス上で実行されるモバイルアプリケーション(「app」)などとして、動作することができる。
あるいは、メモリ1204内のソフトウェアのいずれも、他の任意の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ1204(および/または他の接続された単数または複数の記憶デバイス)は、1つまたは複数のメッセージ、1つまたは複数の分類法、電子百科事典、辞書、シソーラス、メッセージデータ、文法、ユーザの嗜好、および/または本明細書で説明された機能で使用される他の命令およびデータを格納することができる。メモリ1204および他の任意の種類の記憶装置(磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体)は、「記憶装置」または「記憶デバイス」と見なすことができる。
I/Oインタフェース1206は、サーバデバイス1200を他のシステムおよびデバイスとインタフェースすることを可能にするための機能を提供することができる。インタフェースされたデバイスは、デバイス1200の一部として含めることができ、または分離してデバイス1200と通信することができる。例えば、ネットワーク通信デバイス、記憶デバイス(例えば、メモリおよび/またはデータベース106)、および入力/出力デバイスは、I/Oインタフェース1206を介して通信することができる。いくつかの実装形態では、I/Oインタフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど)および/または出力デバイス(表示デバイス、スピーカーデバイス、プリンター、モーターなど)のようなインタフェースデバイスに接続することができる。
I/Oインタフェース1206に接続することができるインタフェースデバイスのいくつかの例は、コンテンツ、例えば、本明細書で説明されるような出力アプリケーションの画像、ビデオ、および/またはユーザインタフェースを表示するために使用できる表示デバイス1220を含み得る。表示デバイス1220は、ローカル接続(例えば、表示バス)および/またはネットワーク接続を介してデバイス1200に接続されることができ、任意の適切な表示デバイスとすることができる。表示デバイス1220は、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3Dディスプレイスクリーン、または他の視覚的表示デバイスのような任意の適切な表示デバイスを含むことができる。例えば、表示デバイス1220は、モバイルデバイスに提供されるフラットディスプレイスクリーン、ゴーグルデバイスに提供される複数の表示スクリーン、またはコンピュータデバイス用のモニタスクリーンであり得る。
I/Oインタフェース1206は、他の入力および出力デバイスとインタフェースすることができる。いくつかの例は、画像をキャプチャすることができる1つまたは複数のカメラを含む。いくつかの実装形態は、(例えば、キャプチャされた画像、音声コマンドなどの一部として)音声をキャプチャするためのマイクロフォン、音声を出力するためのオーディオスピーカデバイス、または他の入出力デバイスを提供することができる。
説明を簡単にするために、図12は、プロセッサ1202、メモリ1204、I/Oインタフェース1206、およびソフトウェアブロック1208、1214、および1216の各々について1つのブロックを示している。これらのブロックは、1つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、I/Oインタフェース、アプリケーション、および/またはソフトウェアモジュールを表すことができる。他の実装形態では、デバイス1200は、示された構成要素の全てを有しない場合があり、かつ/または本明細書に示されたものの代わりにまたはそれに加えて他のタイプの要素を含む他の要素を有し得る。いくつかの構成要素は、本明細書のいくつかの実装形態で説明されるように、ブロックおよび動作を実行するものとして説明されているが、環境100、デバイス1200、同様のシステム、またはそのようなシステムに関連する任意の適切な1つまたは複数のプロセッサの任意の適切なコンポーネントまたはコンポーネントの組合せが、説明されているブロックおよび動作を実行し得る。
本明細書に記載の方法は、コンピュータプログラム命令またはコードによって実装することができ、それらはコンピュータ上で実行することができる。例えば、コードは、1つまたは複数のデジタルプロセッサ(例えば、マイクロプロセッサまたは他の処理回路)によって実装することができ、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、リジッドメモリを含む、磁気、光学、電磁気、または半導体の記憶媒体のような、非一時的コンピュータ可読媒体(例えば、記憶媒体)を含むコンピュータプログラム製品に格納することができる。プログラム命令は、例えば、サーバ(例えば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形で、電子信号に含まれ、電子信号として提供されることもできる。あるいは、1つまたは複数の方法をハードウェア(論理ゲートなど)で、またはハードウェアとソフトウェアの組合せで実装することができる。ハードウェアの例は、プログラマブルプロセッサ(例えば、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などであり得る。1つまたは複数の方法は、システム上で実行されているアプリケーションの一部またはコンポーネントとして、あるいは他のアプリケーションおよびオペレーティングシステムと共に実行されているアプリケーションまたはソフトウェアとして実行することができる。
説明は、特定の実装形態に関して記載されているが、これらの特定の実装形態は単なる例示であり、限定的なものではない。例に示されている概念は、他の例および実装にも適用することができる。
本明細書で説明する特定の実装形態が、ユーザに関する個人情報(例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの位置および時間、ユーザのバイオメトリック情報、ユーザの活動およびデモグラフィック情報)を収集または使用し得る状況では、個人情報が収集されるかどうか、個人情報が保存されるかどうか、個人情報が使用されるかどうか、およびどのようにユーザに関する情報が収集され、保存され、使用されるかを制御する一または複数の機会がユーザに提供される。すなわち、本明細書で論じられるシステムおよび方法は、具体的にそのようにすることについて関連するユーザから明示的な許可を受けた場合に、ユーザの個人情報を収集し、保存し、かつ/または使用する。さらに、特定のデータは、個人を特定できる情報が削除されるように、保存または使用される前に1つまたは複数の方法で処理され得る。一例として、ユーザの識別情報は、個人を識別可能な情報が判定され得ないように取り扱われ得る。別の例として、ユーザの地理的位置は、ユーザの特定の位置が判定されることができないように、より大きな領域に一般化され得る。
本開示に記載されている機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組み合わせに統合または分割することができることに留意されたい。特定の実装形態のルーチンを実装するために、任意の適切なプログラミング言語およびプログラミング技術が使用され得る。手続き型またはオブジェクト指向などの異なるプログラミング技術が使用され得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行することができる。ステップ、動作、または計算は特定の順序で提示され得るが、異なる特定の実装形態においてはその順序は変更されてもよい。いくつかの実装形態では、本明細書において連続的なものとして示されている複数のステップまたは動作が同時に実行され得る。

Claims (22)

  1. コンピュータにより実施される、メッセージングアプリケーションにおいてコンテンツを自動的に提案する方法であって、
    第1のユーザによって第1のメッセージ内に投稿された画像を検出すること、
    前記画像をプログラム的に分析して、前記画像を表す特徴ベクトルを判定すること、
    前記特徴ベクトルに基づいて、前記第1のメッセージに対する1つまたは複数の提案された応答をプログラム的に生成することであって、前記1つまたは複数の提案された応答は、それぞれ前記第1のメッセージに対する会話型の返信であり、前記1つまたは複数の提案された応答をプログラム的に生成することは、
    前の画像に対する前の応答でトレーニングされたモデルを用いて前記特徴ベクトルについて単語シーケンスに関連する確率を判定すること、
    前記単語シーケンスに関連する確率に基づいて、前記単語シーケンスのうちの1つまたは複数の単語シーケンスを選択することであって、前記1つまたは複数の提案された応答は、選択された1つまたは複数の単語シーケンスに基づいて判定される、前記選択すること
    を含む、前記生成すること、
    前記1つまたは複数の提案された応答が、第2のユーザに対する1つまたは複数の提案として前記メッセージングアプリケーションにおいてレンダリングされるようにすること
    を含む、方法。
  2. 前記特徴ベクトルは、前記画像の視覚的ピクセルコンテンツの要約された数値表現である、請求項1に記載の方法。
  3. 前記1つまたは複数の提案された応答を提供することは、前記メッセージングアプリケーションにおいて前記1つまたは複数の提案された応答をレンダリングするためのコマンドを送信することを含む、請求項1または2に記載の方法。
  4. 前記確率は、格納されたボキャブラリにおける各単語が前記1つまたは複数の単語シーケンスのうちの1つにおける次の単語である確率を含み、前記1つまたは複数の単語シーケンスを選択することは、判定された確率のうちの1つまたは複数の最高確率に関連付けられた1つまたは複数の単語シーケンスのうちの複数を選択することを含む、請求項1乃至3のいずれか一項に記載の方法。
  5. 前記モデルは、調整された言語モデルであり、前記単語シーケンスに関連する確率を判定することは、前記特徴ベクトルを前記調整された言語モデルに入力することを含む、請求項1乃至4のいずれか一項に記載の方法。
  6. 前記調整された言語モデルは、長期短期記憶(LSTM)ネットワークを使用する、請求項5に記載の方法。
  7. 前記調整された言語モデルは、トレーニングされたニューラルネットワークを含む、請求項5または6に記載の方法。
  8. 前記1つまたは複数の単語シーケンスを選択することは、ビームサーチ技術を使用することを含む、請求項1乃至7のいずれか一項に記載の方法。
  9. 前記1つまたは複数の単語シーケンスの各々は、前記単語シーケンスおよび前記特徴ベクトルに含まれる単語を符号化する単語埋め込みとして前記モデルによって使用されている、請求項1乃至8のいずれか一項に記載の方法。
  10. 前記1つまたは複数の単語シーケンスは、前記前の応答から判定されたボキャブラリ内の複数の単語から判定されており、前記単語シーケンスに関連する確率を判定することは、前記ボキャブラリ内の各単語が、前記単語シーケンス内の次の単語になる確率を各単語シーケンスに対して反復的に判定することを含む、請求項1乃至9のいずれか一項に記載の方法。
  11. 前記前の応答は、前記前の画像に対する応答のより大きいセットから選択されたものであり、前記前の応答は、前記応答のより大きいセットの他の前の応答よりも前記前の画像の特定のコンテンツに対してより特有のものである、請求項1乃至10のいずれか一項に記載の方法。
  12. 前記モデルは、調整された言語モデルであり、前記1つまたは複数の単語シーケンスを選択することは、反復的に、
    前記特徴ベクトルおよび前の単語シーケンスを前記調整された言語モデルに供給して、前記特徴ベクトルおよび前の単語シーケンスに基づいて、新しい単語シーケンスのセットおよび前記新しい単語シーケンスに関連する確率を判定することであって、前記新しい単語シーケンスのうちの1つまたは複数は、前記前の単語シーケンスに対して少なくとも1つの追加の単語を有する、前記判定すること、
    前記新しい単語シーケンスに関連する確率に基づいて新しい単語シーケンスのセットのサブセットを選択し、選択されたサブセットのうちの1つの単語シーケンスを次の反復のための前の単語シーケンスとして選択すること
    を含む、請求項1乃至11のいずれか一項に記載の方法。
  13. 前記第2のユーザが前記提案された応答を選択すると、前記提案された応答をメッセージ応答として前記第1のメッセージに投稿することをさらに含む、請求項1乃至12のいずれか一項に記載の方法。
  14. 前記1つまたは複数の単語シーケンスの各々が、単語シーケンスのホワイトリストに存在するかどうかをチェックすることをさらに含み、選択された1つまたは複数の単語シーケンスは、前記ホワイトリストに存在するものである、請求項1乃至13のいずれか一項に記載の方法。
  15. 前記1つまたは複数の単語シーケンスを選択することは、前記第2のユーザによって提供された前のメッセージ応答に対する類似性に基づいて重み付けされた少なくとも1つの単語シーケンスを選択することを含む、請求項1乃至14のいずれか一項に記載の方法。
  16. 前記調整された言語モデルを第1の言語に固有の第1の調整された言語モデルとして提供すること、
    第2の言語に固有の第2の調整された言語モデルを提供すること、
    前記第1のメッセージが受信されるメッセージ会話のための言語が、前記第1の言語であることを判定すること、
    前記第1の調整された言語モデルを選択して、前記1つまたは複数の提案された応答をプログラム的に生成することにおいて用いられるようにすること
    をさらに含む、請求項5、6、および7のいずれか一項に記載の方法。
  17. メッセージングアプリケーションにおいてコンテンツを自動的に提案するためのシステムであって、
    メモリと、
    前記メモリにアクセスするように構成され、かつ動作を実行するように構成された少なくとも1つのプロセッサであって、前記動作は、
    第1のユーザによって第1のメッセージ内に投稿された画像を検出すること、
    前記画像をプログラム的に分析して、前記画像を表す特徴ベクトルを判定すること、
    前記特徴ベクトルに基づいて前記第1のメッセージに対する1つまたは複数の提案された応答をプログラム的に生成することであって、前記1つまたは複数の提案された応答は、それぞれ、前記第1のメッセージに対する会話型の返信であり、かつ単語シーケンス内に配列された1つまたは複数の単語を有するものであり、前記1つまたは複数の提案された応答をプログラム的に生成することは、前記1つまたは複数の提案された応答のうちの各1つに対し、前記特徴ベクトルに基づいて、および前記単語シーケンス内の1つまたは複数の前の単語に基づいて、前記単語シーケンス内に配列された1つまたは複数の単語のうちの各単語を反復的に判定することを含む、前記生成すること、
    前記1つまたは複数の提案された応答が、第2のユーザに対する1つまたは複数の提案としてメッセージングアプリケーションにレンダリングされるようにすること
    を含む、システム。
  18. 前記1つまたは複数の提案された応答をプログラム的に生成する動作は、前の画像に対する前の応答を含むデータに基づいて前記1つまたは複数の単語シーケンスに関連する確率を判定することを含む、請求項17に記載のシステム。
  19. 前記1つまたは複数の提案された応答をプログラム的に生成する動作は、前記1つまたは複数の単語シーケンスに関連する確率に基づいて前記1つまたは複数の提案された応答を選択することを含む、請求項18に記載のシステム。
  20. 前記単語シーケンスの確率を判定する動作は、前の画像に対する前の応答を含む前記データを使用してトレーニングされた調整された言語モデルを使用することを含み、前記調整された言語モデルは、入力として受信された前記特徴ベクトルによって調整されており、長期短期記憶(LSTM)ネットワークを使用する、請求項18または19に記載のシステム。
  21. プロセッサによって実行されると、動作を実行することによって、提案されたコンテンツを前記プロセッサに自動的に提供させるソフトウェア命令を格納する非一時的コンピュータ可読媒体であって、前記動作は、
    画像を受信すること、
    前記画像をプログラム的に分析して、前記画像を表す特徴ベクトルを判定すること、
    前記特徴ベクトルに基づいて前記画像に対する1つまたは複数の提案された応答をプログラム的に生成することであって、前記1つまたは複数の提案された応答は、それぞれ、前記画像に対する会話型の返信であり、かつ単語シーケンス内に配列された1つまたは複数の単語を有するものであり、前記1つまたは複数の提案された応答をプログラム的に生成することは、前記1つまたは複数の提案された応答の各々について、前記特徴ベクトルおよび前記単語シーケンス内の1つまたは複数の前の単語に基づいて、前記単語シーケンス内に配列された前記1つまたは複数の単語の各単語を反復的に判定することを含む、前記生成すること、
    前記1つまたは複数の提案された応答を出力して、ユーザに対する1つまたは複数の提案としてアプリケーションにおいてレンダリングされるようにすること
    を含む、コンピュータ可読媒体。
  22. 前記提案された応答は、メッセージングアプリケーションにおいてレンダリングされるものであり、前記1つまたは複数の提案された応答をプログラム的に生成する動作は、
    前の画像に対する前の応答を含むデータに基づいてトレーニングされ、かつ入力として受信された前記特徴ベクトルにより調整された、調整された言語モデルを用いて前記1つまたは複数の提案された応答に関連する確率を判定することであって、前記調整された言語モデルは、長期短期記憶(LSTM)ネットワークを使用する、前記判定すること、
    前記1つまたは複数の提案された応答に関連する確率に基づいて、前記1つまたは複数の提案された応答を選択すること
    を含む、請求項21に記載のコンピュータ可読媒体。
JP2019520680A 2017-01-25 2017-10-17 言語モデルを用いたメッセージ内受信画像に対する自動提案応答 Active JP6625789B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/415,506 US10146768B2 (en) 2017-01-25 2017-01-25 Automatic suggested responses to images received in messages using language model
US15/415,506 2017-01-25
PCT/US2017/057044 WO2018140099A1 (en) 2017-01-25 2017-10-17 Automatic suggested responses to images received in messages using language model

Publications (2)

Publication Number Publication Date
JP2019536135A true JP2019536135A (ja) 2019-12-12
JP6625789B2 JP6625789B2 (ja) 2019-12-25

Family

ID=60268457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019520680A Active JP6625789B2 (ja) 2017-01-25 2017-10-17 言語モデルを用いたメッセージ内受信画像に対する自動提案応答

Country Status (6)

Country Link
US (1) US10146768B2 (ja)
EP (1) EP3516537A1 (ja)
JP (1) JP6625789B2 (ja)
KR (1) KR102050334B1 (ja)
CN (2) CN117149970A (ja)
WO (1) WO2018140099A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022073949A (ja) * 2020-10-30 2022-05-17 ソプラ株式会社 セキュリティidの会話文検索システム

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
JP2016508007A (ja) 2013-02-07 2016-03-10 アップル インコーポレイテッド デジタルアシスタントのためのボイストリガ
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
CN108476164B (zh) 2015-12-21 2021-10-08 谷歌有限责任公司 在消息传送应用中自动地提供机器人服务的方法
EP3395018A1 (en) 2015-12-21 2018-10-31 Google LLC Automatic suggestions for message exchange threads
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US11769193B2 (en) * 2016-02-11 2023-09-26 Ebay Inc. System and method for detecting visually similar items
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10387461B2 (en) 2016-08-16 2019-08-20 Google Llc Techniques for suggesting electronic messages based on user activity and other context
CN117556888A (zh) 2016-08-19 2024-02-13 莫维迪乌斯有限公司 用于深度学习模型的分布式训练的系统和方法
US10015124B2 (en) * 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
US10547574B2 (en) 2016-09-20 2020-01-28 Google Llc Suggested responses based on message stickers
WO2018057536A1 (en) 2016-09-20 2018-03-29 Google Llc Bot requesting permission for accessing data
US10416846B2 (en) 2016-11-12 2019-09-17 Google Llc Determining graphical element(s) for inclusion in an electronic communication
CN108075959B (zh) * 2016-11-14 2021-03-12 腾讯科技(深圳)有限公司 一种会话消息处理方法和装置
US10608967B2 (en) * 2017-01-10 2020-03-31 International Business Machines Corporation Ensuring that all users of a group message receive a response to the group message
TWI754694B (zh) * 2017-03-21 2022-02-11 香港商阿里巴巴集團服務有限公司 通訊方法及裝置
US10581765B2 (en) * 2017-04-03 2020-03-03 Microsoft Technology Licensing, Llc Conversation bot discovery and response fusion
US10333868B2 (en) * 2017-04-14 2019-06-25 Facebook, Inc. Techniques to automate bot creation for web pages
US10491548B2 (en) * 2017-04-17 2019-11-26 Facebook, Inc. Techniques to configure bot flow
US11003839B1 (en) * 2017-04-28 2021-05-11 I.Q. Joe, Llc Smart interface with facilitated input and mistake recovery
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10891485B2 (en) 2017-05-16 2021-01-12 Google Llc Image archival based on image categories
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US11121991B2 (en) * 2017-07-03 2021-09-14 Mycelebs Co., Ltd. User terminal and search server providing a search service using emoticons and operating method thereof
US10650095B2 (en) 2017-07-31 2020-05-12 Ebay Inc. Emoji understanding in online experiences
US10922483B1 (en) 2017-08-04 2021-02-16 Grammarly, Inc. Artificial intelligence communication assistance for providing communication advice utilizing communication profiles
WO2019077013A1 (en) * 2017-10-18 2019-04-25 Soapbox Labs Ltd. METHODS AND SYSTEMS FOR PROCESSING AUDIO SIGNALS CONTAINING VOICE DATA
US10599391B2 (en) 2017-11-06 2020-03-24 Google Llc Parsing electronic conversations for presentation in an alternative interface
US10305766B1 (en) * 2017-11-07 2019-05-28 Amazon Technologies, Inc. Coexistence-insensitive presence detection
EP3486850A1 (en) * 2017-11-17 2019-05-22 Orange Method for generating an sms message and equipment for implementing the method
CN110301117B (zh) * 2017-11-24 2022-10-21 微软技术许可有限责任公司 用于在会话中提供响应的方法和装置
US10810322B2 (en) * 2017-12-05 2020-10-20 Microsoft Technology Licensing, Llc Sharing user information with and between bots
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US11024307B2 (en) * 2018-02-08 2021-06-01 Computime Ltd. Method and apparatus to provide comprehensive smart assistant services
JP6818706B2 (ja) * 2018-02-13 2021-01-20 日本電信電話株式会社 情報提供装置、情報提供方法、およびプログラム
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US20190327330A1 (en) * 2018-04-20 2019-10-24 Facebook, Inc. Building Customized User Profiles Based on Conversational Data
US11288299B2 (en) * 2018-04-24 2022-03-29 International Business Machines Corporation Enhanced action fulfillment using classification valency
US11610239B2 (en) * 2018-05-03 2023-03-21 Disney Enterprises, Inc. Machine learning enabled evaluation systems and methods
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10860804B2 (en) 2018-05-16 2020-12-08 Microsoft Technology Licensing, Llc Quick text classification model
US10867130B2 (en) * 2018-05-31 2020-12-15 Microsoft Technology Licensing, Llc Language classification system
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11062084B2 (en) 2018-06-27 2021-07-13 Microsoft Technology Licensing, Llc Generating diverse smart replies using synonym hierarchy
US11658926B2 (en) * 2018-06-27 2023-05-23 Microsoft Technology Licensing, Llc Generating smart replies involving image files
RU2712101C2 (ru) * 2018-06-27 2020-01-24 Общество с ограниченной ответственностью "Аби Продакшн" Предсказание вероятности появления строки с использованием последовательности векторов
US10721190B2 (en) * 2018-07-31 2020-07-21 Microsoft Technology Licensing, Llc Sequence to sequence to classification model for generating recommended messages
USD950587S1 (en) 2018-08-31 2022-05-03 Zoox, Inc. Display screen or portion thereof having a graphical user interface
US20200081939A1 (en) * 2018-09-11 2020-03-12 Hcl Technologies Limited System for optimizing detection of intent[s] by automated conversational bot[s] for providing human like responses
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11398918B1 (en) 2018-10-22 2022-07-26 Wells Fargo Bank, N.A. Passive user authentication
US10755099B2 (en) * 2018-11-13 2020-08-25 Adobe Inc. Object detection in images
CN113366510A (zh) 2019-02-03 2021-09-07 国际商业机器公司 经由训练的原始网络与双网络来执行多目标任务
US10956474B2 (en) * 2019-03-14 2021-03-23 Microsoft Technology Licensing, Llc Determination of best set of suggested responses
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
USD912697S1 (en) 2019-04-22 2021-03-09 Facebook, Inc. Display screen with a graphical user interface
USD912693S1 (en) 2019-04-22 2021-03-09 Facebook, Inc. Display screen with a graphical user interface
USD914049S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with an animated graphical user interface
USD913314S1 (en) 2019-04-22 2021-03-16 Facebook, Inc. Display screen with an animated graphical user interface
USD914051S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with an animated graphical user interface
USD930695S1 (en) 2019-04-22 2021-09-14 Facebook, Inc. Display screen with a graphical user interface
USD914058S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with a graphical user interface
USD913313S1 (en) 2019-04-22 2021-03-16 Facebook, Inc. Display screen with an animated graphical user interface
US11554322B2 (en) * 2019-04-26 2023-01-17 Sony Interactive Entertainment LLC Game controller with touchpad input
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US10817142B1 (en) 2019-05-20 2020-10-27 Facebook, Inc. Macro-navigation within a digital story framework
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11388132B1 (en) * 2019-05-29 2022-07-12 Meta Platforms, Inc. Automated social media replies
US10757054B1 (en) 2019-05-29 2020-08-25 Facebook, Inc. Systems and methods for digital privacy controls
CA3137860C (en) 2019-05-31 2024-03-26 Ran GODRICH Systems and methods for processing images of slides to automatically prioritize the processed images of slides for digital pathology
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
USD924255S1 (en) 2019-06-05 2021-07-06 Facebook, Inc. Display screen with a graphical user interface
USD914705S1 (en) 2019-06-05 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
USD914739S1 (en) 2019-06-05 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
USD912700S1 (en) 2019-06-05 2021-03-09 Facebook, Inc. Display screen with an animated graphical user interface
USD916915S1 (en) 2019-06-06 2021-04-20 Facebook, Inc. Display screen with a graphical user interface
USD918264S1 (en) 2019-06-06 2021-05-04 Facebook, Inc. Display screen with a graphical user interface
USD914757S1 (en) 2019-06-06 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
USD917533S1 (en) 2019-06-06 2021-04-27 Facebook, Inc. Display screen with a graphical user interface
US11238221B2 (en) * 2019-06-19 2022-02-01 Microsoft Technology Licensing, Llc Language profiling service
KR102238973B1 (ko) * 2019-07-10 2021-04-12 주식회사 인텔로이드 대화 데이터베이스를 이용한 대화문장 추천 방법 및 그것이 적용된 음성대화장치
US11176330B2 (en) * 2019-07-22 2021-11-16 Advanced New Technologies Co., Ltd. Generating recommendation information
US11429778B2 (en) * 2019-08-29 2022-08-30 Rovi Guides, Inc. Systems and methods for generating personalized content
US11620814B2 (en) * 2019-09-12 2023-04-04 Nec Corporation Contextual grounding of natural language phrases in images
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
US11295368B2 (en) * 2019-11-22 2022-04-05 Stubhub, Inc. Interactive and personalized ticket recommendation
CN111385188A (zh) * 2019-11-22 2020-07-07 百度在线网络技术(北京)有限公司 对话元素的推荐方法、装置、电子设备和介质
US11361762B2 (en) * 2019-12-18 2022-06-14 Fujitsu Limited Recommending multimedia based on user utterances
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot
CN111563575B (zh) * 2020-05-06 2021-06-29 陈永聪 一种模仿人类智能的机器智能实现方法
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11209964B1 (en) * 2020-06-05 2021-12-28 SlackTechnologies, LLC System and method for reacting to messages
US11610065B2 (en) 2020-06-12 2023-03-21 Apple Inc. Providing personalized responses based on semantic context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US20220108079A1 (en) * 2020-10-06 2022-04-07 Sap Se Application-Specific Generated Chatbot
US11563706B2 (en) 2020-12-29 2023-01-24 Meta Platforms, Inc. Generating context-aware rendering of media contents for assistant systems
US11809480B1 (en) 2020-12-31 2023-11-07 Meta Platforms, Inc. Generating dynamic knowledge graph of media contents for assistant systems
US11792141B2 (en) * 2021-01-12 2023-10-17 Meta Platforms Technologies, Llc Automated messaging reply-to
US11861315B2 (en) 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems
US11743215B1 (en) 2021-06-28 2023-08-29 Meta Platforms Technologies, Llc Artificial reality messaging with destination selection
CN113878584A (zh) * 2021-10-29 2022-01-04 广东电网有限责任公司 一种变电站智能机器人及控制方法
CN114398135A (zh) * 2022-01-14 2022-04-26 北京字跳网络技术有限公司 交互方法、装置、电子设备、存储介质和程序产品
US11962546B1 (en) 2023-03-03 2024-04-16 Microsoft Technology Licensing, Llc Leveraging inferred context to improve suggested messages
US11947902B1 (en) 2023-03-03 2024-04-02 Microsoft Technology Licensing, Llc Efficient multi-turn generative AI model suggested message generation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015062284A1 (zh) * 2013-10-28 2015-05-07 茵鲁维夫有限公司 自然表达处理方法、处理及回应方法、设备及系统
WO2016187472A1 (en) * 2015-05-21 2016-11-24 Baidu Usa Llc Multilingual image question answering

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283992B2 (en) 2001-11-30 2007-10-16 Microsoft Corporation Media agent to suggest contextually related media content
US7512580B2 (en) 2005-08-04 2009-03-31 Sap Ag Confidence indicators for automated suggestions
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8082151B2 (en) 2007-09-18 2011-12-20 At&T Intellectual Property I, Lp System and method of generating responses to text-based messages
US20090119584A1 (en) 2007-11-02 2009-05-07 Steve Herbst Software Tool for Creating Outlines and Mind Maps that Generates Subtopics Automatically
US8195656B2 (en) * 2008-02-13 2012-06-05 Yahoo, Inc. Social network search
US20090282114A1 (en) 2008-05-08 2009-11-12 Junlan Feng System and method for generating suggested responses to an email
US8166019B1 (en) 2008-07-21 2012-04-24 Sprint Communications Company L.P. Providing suggested actions in response to textual communications
US8391618B1 (en) 2008-09-19 2013-03-05 Adobe Systems Incorporated Semantic image classification and search
US9782527B2 (en) 2009-05-27 2017-10-10 Tc1 Llc Monitoring of redundant conductors
US8515957B2 (en) 2009-07-28 2013-08-20 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via injection
US9929982B2 (en) 2010-04-08 2018-03-27 Microsoft Technology Licensing, Llc Designating automated agents as friends in a social network service
US20170098122A1 (en) * 2010-06-07 2017-04-06 Affectiva, Inc. Analysis of image content with associated manipulation of expression presentation
US8688698B1 (en) 2011-02-11 2014-04-01 Google Inc. Automatic text suggestion
US8589407B2 (en) * 2011-06-17 2013-11-19 Google Inc. Automated generation of suggestions for personalized reactions in a social network
US9245253B2 (en) 2011-08-19 2016-01-26 Disney Enterprises, Inc. Soft-sending chat messages
US9727880B2 (en) * 2011-10-25 2017-08-08 Microsoft Technology Licensing, Llc Predicting user responses
CN106408252B (zh) * 2012-06-22 2019-11-29 谷歌有限责任公司 呈现针对当前位置或时间的信息
US9191786B2 (en) 2012-06-27 2015-11-17 At&T Intellectual Property I, L.P. Method and apparatus for generating a suggested message to be sent over a network
KR20140011073A (ko) 2012-07-17 2014-01-28 삼성전자주식회사 텍스트 추천 방법 및 장치
US9195645B2 (en) * 2012-07-30 2015-11-24 Microsoft Technology Licensing, Llc Generating string predictions using contexts
US20140088954A1 (en) 2012-09-27 2014-03-27 Research In Motion Limited Apparatus and method pertaining to automatically-suggested emoticons
US10691743B2 (en) 2014-08-05 2020-06-23 Sri International Multi-dimensional realization of visual content of an image collection
US9244905B2 (en) 2012-12-06 2016-01-26 Microsoft Technology Licensing, Llc Communication context based predictive-text suggestion
US20140164506A1 (en) 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of networked media content
US20140237057A1 (en) 2013-02-21 2014-08-21 Genesys Telecommunications Laboratories, Inc. System and method for processing private messages in a contact center
US8825474B1 (en) 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
US9177318B2 (en) 2013-04-22 2015-11-03 Palo Alto Research Center Incorporated Method and apparatus for customizing conversation agents based on user characteristics using a relevance score for automatic statements, and a response prediction function
US10599765B2 (en) 2013-06-27 2020-03-24 Avaya Inc. Semantic translation model training
US10162884B2 (en) 2013-07-23 2018-12-25 Conduent Business Services, Llc System and method for auto-suggesting responses based on social conversational contents in customer care services
CN104144108B (zh) * 2013-09-30 2017-07-25 腾讯科技(深圳)有限公司 一种消息响应方法、装置及系统
US8996639B1 (en) 2013-10-15 2015-03-31 Google Inc. Predictive responses to incoming communications
US10565268B2 (en) 2013-12-19 2020-02-18 Adobe Inc. Interactive communication augmented with contextual information
WO2015100362A1 (en) 2013-12-23 2015-07-02 24/7 Customer, Inc. Systems and methods for facilitating dialogue mining
US9817813B2 (en) 2014-01-08 2017-11-14 Genesys Telecommunications Laboratories, Inc. Generalized phrases in automatic speech recognition systems
US20150207765A1 (en) 2014-01-17 2015-07-23 Nathaniel Brantingham Messaging Service with Conversation Suggestions
US10095748B2 (en) 2014-03-03 2018-10-09 Microsoft Technology Licensing, Llc Personalized information query suggestions
US9213941B2 (en) 2014-04-22 2015-12-15 Google Inc. Automatic actions based on contextual replies
WO2015183699A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
EP3165012A1 (en) 2014-07-03 2017-05-10 Nuance Communications, Inc. System and method for suggesting actions based upon incoming messages
US9569728B2 (en) 2014-11-14 2017-02-14 Bublup Technologies, Inc. Deriving semantic relationships based on empirical organization of content by users
US20160179816A1 (en) 2014-12-22 2016-06-23 Quixey, Inc. Near Real Time Auto-Suggest Search Results
KR101634086B1 (ko) * 2015-01-19 2016-07-08 주식회사 엔씨소프트 감정 분석을 통한 스티커 추천 방법 및 시스템
US9883358B2 (en) * 2015-05-08 2018-01-30 Blackberry Limited Electronic device and method of determining suggested responses to text-based communications
US10049322B2 (en) * 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10504509B2 (en) 2015-05-27 2019-12-10 Google Llc Providing suggested voice-based action queries
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
KR102427833B1 (ko) 2015-11-30 2022-08-02 삼성전자주식회사 사용자 단말장치 및 디스플레이 방법
US20170171117A1 (en) 2015-12-10 2017-06-15 International Business Machines Corporation Message Suggestion Using Dynamic Information
CN108476164B (zh) 2015-12-21 2021-10-08 谷歌有限责任公司 在消息传送应用中自动地提供机器人服务的方法
EP3395018A1 (en) 2015-12-21 2018-10-31 Google LLC Automatic suggestions for message exchange threads
US10831802B2 (en) 2016-04-11 2020-11-10 Facebook, Inc. Techniques to respond to user requests using natural-language machine learning based on example conversations
US9866693B2 (en) 2016-05-06 2018-01-09 Genesys Telecommunications Laboratories, Inc. System and method for monitoring progress of automated chat conversations
US20170344224A1 (en) 2016-05-27 2017-11-30 Nuance Communications, Inc. Suggesting emojis to users for insertion into text-based messages
US10515393B2 (en) * 2016-06-30 2019-12-24 Paypal, Inc. Image data detection for micro-expression analysis and targeted data services
US10453074B2 (en) 2016-07-08 2019-10-22 Asapp, Inc. Automatically suggesting resources for responding to a request

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015062284A1 (zh) * 2013-10-28 2015-05-07 茵鲁维夫有限公司 自然表达处理方法、处理及回应方法、设备及系统
WO2016187472A1 (en) * 2015-05-21 2016-11-24 Baidu Usa Llc Multilingual image question answering

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022073949A (ja) * 2020-10-30 2022-05-17 ソプラ株式会社 セキュリティidの会話文検索システム
JP7132576B2 (ja) 2020-10-30 2022-09-07 ソプラ株式会社 セキュリティidの会話文検索システム

Also Published As

Publication number Publication date
EP3516537A1 (en) 2019-07-31
US10146768B2 (en) 2018-12-04
JP6625789B2 (ja) 2019-12-25
US20180210874A1 (en) 2018-07-26
WO2018140099A1 (en) 2018-08-02
CN117149970A (zh) 2023-12-01
KR20190049886A (ko) 2019-05-09
CN110178132B (zh) 2023-09-19
CN110178132A (zh) 2019-08-27
KR102050334B1 (ko) 2019-11-29

Similar Documents

Publication Publication Date Title
JP6625789B2 (ja) 言語モデルを用いたメッセージ内受信画像に対する自動提案応答
US10862836B2 (en) Automatic response suggestions based on images received in messaging applications
US11303590B2 (en) Suggested responses based on message stickers
US11336467B2 (en) Bot permissions
JP6605151B2 (ja) ボットインタラクション
CN111279349B (zh) 解析电子对话用于在替代界面中呈现
CN110709869A (zh) 用于在聊天对话中与嵌入式应用一起使用的建议项目

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190417

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190417

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191127

R150 Certificate of patent or registration of utility model

Ref document number: 6625789

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250