JP2019518292A - 会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術 - Google Patents

会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術 Download PDF

Info

Publication number
JP2019518292A
JP2019518292A JP2019503901A JP2019503901A JP2019518292A JP 2019518292 A JP2019518292 A JP 2019518292A JP 2019503901 A JP2019503901 A JP 2019503901A JP 2019503901 A JP2019503901 A JP 2019503901A JP 2019518292 A JP2019518292 A JP 2019518292A
Authority
JP
Japan
Prior art keywords
bot
user
developer
based
interactions
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.)
Pending
Application number
JP2019503901A
Other languages
English (en)
Inventor
ブランダン、ウィリー
ルブラン、アレクサンドル
Original Assignee
フェイスブック,インク.
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
Priority to US201662320869P priority Critical
Priority to US62/320,869 priority
Priority to US15/380,112 priority patent/US20170293681A1/en
Priority to US15/380,112 priority
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Priority to PCT/US2017/022700 priority patent/WO2017180286A1/en
Publication of JP2019518292A publication Critical patent/JP2019518292A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computer systems based on biological models
    • G06N3/02Computer systems based on biological models using neural network models
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computer systems using knowledge-based models
    • G06N5/04Inference methods or devices
    • G06N5/041Abduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/02Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages with automatic reactions or user delegation, e.g. automatic replies or chatbot
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computer systems based on biological models
    • G06N3/004Artificial life, i.e. computers simulating life
    • G06N3/006Artificial life, i.e. computers simulating life based on simulated virtual individual or collective life forms, e.g. single "avatar", social simulations, virtual worlds or particle swarm optimisation

Abstract

会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術を説明する。一実施形態では、装置は、ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信するように動作可能なボットアプリケーションインタフェースコンポーネントと、対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するように動作可能な対話処理コンポーネントとを含み、対話サンプルリポジトリを提示することに応答して、自然言語機械学習コンポーネントからシーケンスモデルを受信し、シーケンスモデルに基づいてユーザ対ボット会話を実行することができる。他の実施形態が記載され請求される。

Description

本発明は、会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術に関する。

ユーザは、メッセージングシステムにおいて、2人以上のユーザ間でテキストベースの会話で互いにメッセージをやりとりしながら互いに対話することができる。ユーザは、メッセージングシステムにおいて自身に関連付けられたユーザアカウントを有してもよく、ユーザアカウントは、ユーザのオンライン識別情報、ユーザに向けられたメッセージの宛先を提供し、一般にメッセージングシステムへのユーザのアクセスとその使用を調整する。ユーザは、モバイルデバイス(例えば、携帯電話)、デスクトップコンピュータ、ウェブブラウザ、専用のメッセージングアプリケーションなどを含む多様なエンドポイントからメッセージングシステムにアクセスすることができる。

ネットワーク接続されたコンピューティングデバイスは、人に対するコミュニケーションに参加するこれまでにない能力をユーザに提供することができる。人々は、自分の友達、家族、同僚、および他の仲間とのメッセージングのやりとりに参加することができる。その者達の連絡先とのユーザのメッセージ交換は、それぞれ異なるメッセージスレッド内で維持され得る。

これらのネットワーク接続されたコンピューティングデバイスは、そのデバイスのユーザにネットワークアクセス可能なサービスへのアクセスを提供することもできる。例えば、交通サービス、食事サービス、娯楽サービス、および他のサービスは、ウェブサイト、ウェブアプリケーション、クライアントアプリケーション、または他のネットワークアクセス技術を使用して、人々がクライアントデバイスを使用してサービスに参加できるようにすることが可能である。いくつかの娯楽またはメディアサービスのようないくつかの場合には、クライアントデバイスを介してサービスを手配するとともに配信することができる。例えば、音楽をクライアントデバイスを介して購入し、再生のためにクライアントデバイスに配信し得る。交通、食事、および個人的娯楽などの他の場合には、サービスは、クライアントデバイスを介して手配し得るが、クライアントデバイスの外部で実行される。例えば、同乗サービスは、クライアントデバイスを介して手配し得るが、車両およびドライバがユーザに同乗を提供することによって実行される。

場合によっては、ネットワークアクセス可能なサービスの使用は、複数の人物に関連し得る。特に、サービスへのユーザのアクセスが、メッセージングにも使用するクライアントデバイスである場合、ユーザは、メッセージングクライアント内のネットワークアクセス可能なサービスへの参加を、サービスが関係する他のユーザと共有することにより利益を得ることができる。したがって、メッセージスレッドは、他のユーザの連絡先とのユーザのオンラインソーシャル関係のハブとして作用することができ、メッセージスレッドは、メッセージングに使用される同じクライアントを介して要求、監視、または参加するサービスを組み込んでいる。

ユーザがメッセージングコンテキストを介してサービスと対話するのを助けるために、サービスは、メッセージングシステム内のメッセージングボットとしての役割を果たすことができる。メッセージングボットは、メッセージスレッドの参加者としての役割を果たすことができるネットワークアクセス可能なサービスへの自動化されたフロントエンドであり得る。場合によっては、メッセージングボットは、特定のユーザとメッセージングボットとの間の一対一メッセージスレッドなどの、メッセージングボットを明示的に含むメッセージスレッドに対応し得る。他の場合に、メッセージングボットは、メッセージングボットが正規の参加者ではないメッセージスレッドに対応してもよく、メッセージングボットは、サービスと対話するためにメッセージスレッド内の一時的な参加者であってもよい。メッセージングボットは、2人のユーザ間の一対一のスレッドであろうと、複数のユーザ間のグループスレッドであろうと、任意の他のスレッドに一時的な参加者として含め得る。

したがって、ユーザは、メッセージングクライアントになじみがある体験の中でネットワークサービスに参加することができる。更に、メッセージングクライアントを使用することによって、ユーザは、他の人々を含めることができるように、メッセージングコンテキスト内でネットワークサービスに参加することができる。場合によっては、このことは単に、友達や家族に交通の詳細を知らせるなど、サービスに関してその他の人々に知らせるのみであり得る。他の場合に、このことは夕食、乗り物、娯楽、または他のサービスが複数の人々の使用のために手配される場合などで、複数の人々にサービスの実行を可能にし得る。結果として、これらの実施形態は、ネットワークアクセス可能なサービスを使用する体験を向上させることができ、ネットワークアクセス可能なサービスの範囲をメッセージングシステムのユーザにまで広げることができる。

メッセージングボットの開発は、自然言語処理(NLP)システムを生成することの困難さによって制約される可能性がある。したがって、メッセージングシステムは、メッセージング会話の分析を実行するNLPシステムであって、メッセージングボットを実装したボットアプリケーションにメッセージングボットによるサービスの実行に関連するNLP情報を提供するNLPシステムを提供することができる。

自動ボットを生成するための1つの可能な手法は、規則の特定によるものである。自動ボットが様々な状況にどのように対応すべきかについて、開発者が不可避の命令を与える場合がある。規則を使用した開発は初期において単純となる可能性があって、2つの規則を有する自動ボットは機能が非常に制限され得るが、制限された範囲内でその機能は役割を果たし得る。しかし、新たな状況、新たな機能、または他の新たな要素に適応するために、規則に追加の規則が補充される。事前コーディングされた推論の連鎖は、より長く、より複雑になるため、規則間で矛盾することなく一貫して維持することがより困難となる。

したがって、機械学習が規則ベースのボットと比較して望ましい場合がある。しかし、訓練データセットに基づく機械学習は、開発者に、訓練データセットを生成または収集する負担をかける。このことは、主要リソースを有する大規模開発者を単一のプロジェクトに専念させ得るが、小規模開発者や、妥当な予算および時間枠内で様々なサービスを導入しようとする大規模開発者にとっては実用的でない。

したがって、ボットプラットフォームは、豊富なボットコミュニティを生成するのに十分な程度の量の時間およびリソースを使用して、開発者が機械学習ベースのボットを作成することを可能にする機械学習フレームワークを提供することにより、利益を生じ得る。開発者が機械学習を使用して経時的に改善できるボットを効率的に開発できるようにするボットプラットフォームは、ボットの作成を促進し、これによりボットプラットフォームの消費者にサービスを提供することを促進する。

メッセージングボットがそのサービスの実行に関連する情報をどのように収集すべきかの構造を指定する自然な方法を提供することによって、開発者を支援し得る。ボットプラットフォームは、開発者がストーリを使用して開発者のボットの動作を定義できるようにするボットエンジンを提供し得る。ストーリは会話サンプルである。ストーリは、ユーザメッセージおよびボットメッセージに加えて、ボットが提供するサービスを実行するボットアクションを含んでもよい。ストーリに、ユーザメッセージからボットが抽出している情報のサンプルを用いて注釈付けすることにより、ボットに何を学習させ、どのように学習させるかを教えてもよい。

開発者は、情報収集プロセスがどのように機能し得るかを示す、仮想ユーザとメッセージングボットとの間の注釈付き会話サンプルを提供することによって、情報収集プロセスを構成することができる。開発者は、各会話がメッセージングボットのシナリオを表す、複数の会話サンプルを起草することができる。これらの会話サンプルには、ユーザから受信した各メッセージについて、要求されたサービスのコンテキストを構築するためにメッセージングボットがどのような情報を抽出すべきかを示すように、注釈付けをし得る。会話サンプルはボットアプリケーションへのアプリケーションプログラムインタフェース(API)呼出しに対し構築することができ、API呼出しが会話サンプルを通じて構築されたコンテキストを使用する。

ボットを作成するときに、開発者は、最も可能性の高い会話経路を記述するいくつかのストーリから開始することができる。その段階において、ボットエンジンは、意図的にストーリデータセットに過剰適合する機械学習モデルを構築することができる。これにより、開発者は、いくつかの会話サンプルの特定を通じて、機能的なメッセージングボットを作成することができる。ただし、限られたサンプルに起因して、これらの会話サンプルに基づくメッセージングボットは、開発者が検討および例示したもの以外の状況には十分に適応しない可能性がある。実際には、そのことは、ストーリが予期しない状況への応答において柔軟性を有さず、または限られた柔軟性しか有さずに、ほぼ規則どおりに動作することを意味する。これは、規則ベースのNLPシステムが直面する困難、すなわちNLPシステムは、現実世界のユーザが規則の構造において暗黙的なユーザ行動について想定外に行動する場合に障害を起こしやすいということに、ある程度相当し得る。

これにより、開発者はごく少数のストーリを生成した後にボットの試験を開始することができる。この試験では、非公開でまたは生の環境でも、会話が作成されることとなる。開発者は、試験または実際の会話を追加のストーリに変えることができ、ボットの既存のストーリに追加されたこれらの追加のストーリは、ボットエンジンにフィードされて、更新および改善された機械学習モデルを生成する。規則によるものとは異なり、ボットエンジンは、ストーリが互いに対立する状況を解決することができる。規定ではなく例として、ボットエンジンが矛盾したストーリを無視できるならば、新たなユースケースが発見された場合に、開発者が以前のすべてのストーリを考慮する必要性を伴わずに追加のストーリを追加することができる。したがって、本手法によって、規則ベースの開発の初期開発を、ストーリデータセットが増大する際の機械学習の複雑さを首尾よく管理する柔軟性と拡張された能力とを備えて、迅速で効率的にすることができる。開発者は矛盾があっても解決を模索する必要がない、またはあるストーリが他のストーリにどのように関連するかを指定する必要がないため、各ストーリの追加自体を開発者にとって単純なアクションであるとして、単純なシステムを複雑なシステムに合わせて調整し得る。したがって、複雑化への調整は、開発者にとって単純な、したがって管理しやすいプロセスであり得る。

したがって、規則ベースの手法の初期の欠点は、開発者によって作成された最初のサンプルのみでなく、生の製造環境または開始前の生の試験環境において、メッセージングボットによる現実世界の対話から生成された追加のサンプルも含むように、対話サンプルのリポジトリを拡張することによって修正され得る。メッセージングシステムは、ユーザとの会話を記録し、これらの会話を、開発者または他の管理者による編集および検証に提示し得る。メッセージングボットが動作に成功した生のサンプルに注釈付けをし、今後、メッセージングボットのサンプルとして使用し得る。失敗に終わった生のサンプルを編集してメッセージングボットがどのように動作すべきであったかを示し、次いで注釈付けをし、メッセージングボットのサンプルとして使用し得る。成功または失敗のいずれでも、新たなサンプルを生成し、そのサンプルを、メッセージングボットの自然言語を処理する方法を学習するNLPシステムに利用可能に拡張し得る。このことは、メッセージングボットの動作が、規則ベースのシステムと同じ厳密さに基づく失敗に陥ることを脱して、より抽象的なシステムの適合性を享受することに移行するように作用し得る。

この移行は実際に発生する問題に基づいて起こり得るため、開発者を改良の最重要領域に専心させながら、重大な何度も経験した問題にこの上なく早く対処し得る。同様に、この移行は実際にボットを使用している実際のユーザに応答して生じるため、ボットは、ユーザが実際にサービスに対して寄せている期待に合わせて洗練および拡張され得る。更に、この移行がメッセージングボットの存続期間に亘って起こるため、開発者は、機能的な製品でサービスを開始して市場と関わることにより、収益を享受して、経時的に開発者のサービスを向上させるようにする。結果として、メッセージングシステムによって提供される学習NLPシステムは、開発者にNLPベースのサービスを提供する実用性を向上させ得る。

一実施形態のユーザ要求通信システムを示す図。 一実施形態のユーザクライアント用のユーザインタフェースを示す図。 一実施形態のユーザクライアント用のユーザインタフェースを示す図。 一実施形態の、ボットメッセージサンプルを使用して会話サンプルを構成する開発者コンソール用のユーザインタフェースを示す図。 一実施形態の、ボットアクションサンプルを用いて会話サンプルを構成する開発者コンソール用のユーザインタフェースを示す図。 一実施形態の開発者コンソール用のユーザインタフェースを示す図。 一実施形態の図1のシステムに関する分岐論理フローを示す図。 ユーザ要求通信システムによってユーザ対ボット会話を実行する一実施形態を示す図。 一実施形態の図1のシステムに関する論理フローを示す図。 一実施形態の図1のシステムに関する集中型システムを示す図。 一実施形態の図1のシステムに関する分散型システムを示す図。 一実施形態のコンピューティングアーキテクチャを示す図。 一実施形態の通信アーキテクチャを示す図。 一実施形態の無線デバイスアーキテクチャを示す図。

以下は、本明細書に記載されるいくつかの新規の実施形態の基本的な理解を提供するために、簡単な概要を提示する。この概要は、包括的な概観ではなく、本発明の主要/重要要素を指定することも、本発明の範囲を画定することも意図していない。後に提示されるより詳細な説明への前置きとして、いくつかの概念を簡単な形態で提示する。

様々な実施形態は、一般に、会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術に向けられている。いくつかの実施形態は、特に、ユーザサービス要求の達成のための会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術に向けられている。1つの実施形態では、例えば、装置は、ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信するように動作可能なボットアプリケーションインタフェースコンポーネントと、対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するように動作可能な対話処理コンポーネントとを含み、対話サンプルリポジトリを提示することに応答して、自然言語機械学習コンポーネントからシーケンスモデルを受信し、シーケンスモデルに基づいてユーザ対ボット会話を実行することができる。他の実施形態が記載され請求される。

上記の、および関連する目的を達成するために、ある特定の例示的な態様が、以下の説明および添付の図面に関連して本明細書において記載される。これらの態様は、本明細書において開示される原理を実行することができる様々な方法を示し、全ての態様およびその均等物が、特許請求される主題の範囲内にあることが意図される。他の利点および新規の特徴は、以下の詳細な説明を図面と併せて検討することにより明らかとなるであろう。

以下では図面を参照し、図面では、類似の要素には全体を通して同様の参照符号を用いる。以下の説明では、その完全な理解を与えるため、説明を目的として、様々な具体的詳細について記載している。しかしながら、これら特定の詳細を省いても、新規な実施形態を実施できることは明らかであろう。一方で、周知の構造およびデバイスについては、その説明を容易とするために、ブロック図の形式で示している。その意図は、特許請求される主題に矛盾しないあらゆる変更、均等物、および代替案を包括することである。

本明細書で使用される「a」および「b」および「c」および同様の記号は、任意の正の整数を表す変数であることを意図していることに留意されたい。したがって、例えば、実施においてa=5の値が設定される場合、コンポーネント122−1〜122−aとして示される全一式のコンポーネント122は、コンポーネント122−1、122−2、122−3、122−4、および122−5を含む。実施形態は、これに限定されない。

図1は、ユーザ要求通信システム100のブロック図を示す。1つの実施形態では、ユーザ要求通信システム100は、1つまたは複数のコンポーネントを含むソフトウェアアプリケーションを有するコンピュータ実装システムを含み得る。図1に示すユーザ要求通信システム100は、特定のトポロジにおいて限定された数の要素を有するが、ユーザ要求通信システム100は、所与の実施に関して所望されるように、代替トポロジにおいてより多くの、またはより少ない要素を含むことができることが理解されるであろう。

ボットアプリケーション、場合によって複数のボットアプリケーションは、メッセージおよび他の情報の交換を可能にするメッセージングシステムを含むネットワーク環境内で動作し得る。ボットアプリケーション190は、コンピュータシステム上で実行されるソフトウェアアプリケーションを含み得る。ボットアプリケーション190は、メッセージングシステムを使用して、ユーザメッセージおよびボットメッセージを含むメッセージを交換し得る。ユーザメッセージは、ユーザ要求と、ユーザ要求を明確にし、指定するメッセージとを含み得る。ボットメッセージは、ユーザ要求に関連する情報とユーザ要求に関連する実行情報との要求を明確にすることができる。場合によっては、メッセージングシステムは、他のメッセージにも使用される一般的なメッセージングシステムを含み得る。他の場合には、メッセージングシステムは、ボットアプリケーションと通信するのに専用のメッセージングシステムを含み得る。

メッセージングサーバ110は、ユーザ要求通信システム100の一部としてメッセージングシステムによって操作される1つまたは複数のメッセージングサーバを含み得る。メッセージングサーバは、インターネットアクセス可能なサーバを備え、ネットワーク120は、少なくとも一部にインターネットを含むユーザ要求通信システム100の様々なデバイスを接続する。

ユーザは、スマートフォンデバイス150を所有し、操作し得る。スマートフォンデバイス150には、iPhone(登録商標)デバイス、Android(登録商標)デバイス、Blackberry(登録商標)デバイス、またはスマートフォン方式に準拠した他の任意のモバイルコンピューティングデバイスが含まれ得る。スマートフォンデバイス150は、セルラー信号135を用いてセルシステム130を介してネットワーク120に接続することが可能なセルラーデバイスであり得る。いくつかの実施形態では、場合によっては、スマートフォンデバイス150は、Wi−Fiまたは他のネットワーク接続技術を追加的または代替的に使用して、ネットワーク120に接続し得る。スマートフォンデバイス150は、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行してメッセージングサーバ110にアクセスし得る。

同じユーザが、タブレットデバイス160を所有し、操作し得る。タブレットデバイス160には、iPad(登録商標)デバイス、Android(登録商標)タブレットデバイス、Kindle Fire(登録商標)デバイス、またはタブレット方式に準拠した任意の他のモバイルコンピューティングデバイスが含まれ得る。タブレットデバイス160は、Wi−Fi信号145用いてWi−Fiアクセスポイント140を介してネットワーク120に接続することが可能なWi−Fiデバイスであり得る。いくつかの実施形態では、場合によっては、タブレットデバイス160は、セルラーまたは他のネットワーク接続技術を追加的または代替的に使用して、ネットワーク120に接続し得る。タブレットデバイス160は、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行してメッセージングサーバ110にアクセスし得る。

同じユーザが、パーソナルコンピュータデバイス180を所有し、操作し得る。パーソナルコンピュータデバイス180には、Mac OS(登録商標)デバイス、Windows(登録商標)デバイス、Linux(登録商標)デバイス、または別のオペレーティングシステムを実行する他のコンピュータデバイスが含まれ得る。パーソナルコンピュータデバイス180は、イーサネット(登録商標)接続を介してネットワーク120に接続することが可能なイーサネットデバイスであり得る。いくつかの実施形態では、場合によっては、パーソナルコンピュータデバイス180は、セルラー、Wi−Fi、または他のネットワーク接続技術をネットワーク120に追加的または代替的に使用してもよい。パーソナルコンピュータデバイス180は、メッセージングクライアント、ウェブブラウザ170、または他のローカルアプリケーションを実行してメッセージングサーバ110にアクセスし得る。

メッセージングクライアントは、専用のメッセージングクライアントとすることができる。専用のメッセージングクライアントは、メッセージングサーバ110を含むメッセージングシステムを管理するメッセージングプロバイダに特に関連付けられ得る。専用メッセージングクライアントは、メッセージングサーバ110を含むメッセージングシステムを管理するメッセージングプロバイダを含む複数の異なるメッセージングプロバイダと連携して動作可能な一般的なクライアントとすることができる。メッセージングクライアントは、ボットアプリケーションを、メッセージングサーバ110を介してアクセス可能な複数のエンドポイントおよび/またはサービスの1つとするなど、サービスの実行のためにボットアプリケーションへのアクセスを強化し得る。

メッセージングクライアントは、追加機能を提供するアプリケーションのコンポーネントとすることができる。例えば、ソーシャルネットワーキングサービスは、ソーシャルネットワーキングサービスにアクセスしてこれを使用するモバイルデバイス上での使用に供されるソーシャルネットワーキングアプリケーションを提供し得る。ソーシャルネットワーキングサービスは、メッセージングサーバ110によって提供され得るようなメッセージング機能を含み得る。メッセージングサーバ110は、ソーシャルネットワーキングサービスのためのコンピューティングデバイスの1つのコンポーネントであり得、コンピューティングデバイスは、ソーシャルネットワーキングサービスの追加機能を提供することが理解されるであろう。同様に、ソーシャルネットワーキングアプリケーションは、メッセージ機能と追加機能との両方を提供し得る。

場合によっては、メッセージングエンドポイントがユーザセッション間の状態を保持し、場合によっては、メッセージングエンドポイントがユーザセッション間の状態を放棄し得る。メッセージングエンドポイントは、ローカルストアを使用してメッセージ受信ボックスの現在の状態を保持し得る。このローカルストアは、例えば、ローカルアプリケーションが終了したり、またはそれ以外によってメモリから消去されたり、デバイスの電源が遮断されて再投入されたりする状況を含む、あるセッションと次のセッションとの間にその状態を取り出し得るように、持続的なストレージに保存され得る。これに代えて、メッセージングエンドポイントはメモリキャッシュを使用してメッセージ受信ボックスの現在の状態を保持するが、メッセージ受信ボックスの状態を持続的なストレージに留めないように自律し得る。

メッセージ受信ボックスの状態を保持するメッセージングエンドポイントは、専用メッセージングアプリケーション、またはソーシャルネットワーキングアプリケーションのような別のローカルアプリケーションに統合されたメッセージングユーティリティを含み得る。メッセージ受信ボックスの状態を放棄するメッセージングエンドポイントは、ウェブブラウザ内に実装されたメッセージングアクセスを含み得る。1つの実施形態では、パーソナルコンピュータデバイス180上で実行中のウェブブラウザ170などのウェブブラウザは、メッセージングサーバとインタラクトするHTML5コードを実行してユーザにメッセージング機能を提示し得る。

ユーザは、スマートフォンデバイス150、タブレットデバイス160、およびパーソナルコンピュータデバイス180を含む複数のデバイスからメッセージを送受信し得る。ユーザは、スマートフォンデバイス150上の第1のメッセージングアプリケーション、タブレットデバイス160上の第2のメッセージングアプリケーション、およびパーソナルコンピュータデバイス180上のウェブブラウザ170を使用し得る。異なるデバイス上のメッセージングアプリケーションは、両方のデバイス上に同じアプリケーションをインストールすることを含み得る。異なるデバイス上のメッセージングアプリケーションは、共通アプリケーションのスマートフォン仕様のバージョンおよびタブレット仕様のバージョンを含み得る。異なるデバイス上のメッセージングアプリケーションは、異なるアプリケーションを含み得る。

ユーザは、ユーザのメッセージ受信ボックスをユーザのデバイス間で一貫した状態に保つことによって利益を得ることができる。ユーザは、ユーザの留守中にセルシステム130上でユーザのスマートフォンデバイス150を使用して、セルシステム130を介してメッセージを送受信し得る。ユーザは、Wi−Fiを提供するコーヒーショップまたは他の場所に立ち寄り、ユーザのタブレットデバイス160をWi−Fiアクセスポイント140に接続し得る。タブレットデバイス160は、メッセージ受信ボックスについての現在の既知の状態を受信し、スマートフォンデバイス150によって送信されたメッセージを含む、タブレットデバイス160がネットワークにアクセスした最後の時以降に生じた更新であって、ユーザがスマートフォンデバイス150を操作している間に受信している場合がある更新を受信し得る。その後、ユーザは、帰宅し、パーソナルコンピュータデバイス180上のウェブブラウザ170を使用してメッセージ受信ボックスにアクセスし得る。ウェブブラウザ170は、ウェブブラウザ170がメッセージ受信ボックスの現在の状態を保持していないか、あるいはその状態にアクセスしていないため、メッセージングサーバ110からメッセージ受信ボックスの現在の状態のスナップショットを受信し得る。次いで、ウェブブラウザ170は、メッセージングサーバ110とのユーザセッションを維持する限り、メッセージ受信ボックスの状態に対する新たな変化についての増分更新を受信し、ユーザによってウェブブラウザ170を閉じるときなどのセッションの終了時に、メッセージ受信ボックスについての既知の状態を破棄し得る。限定されないが、更新は、受信ボックスへのメッセージの追加、受信ボックスからのメッセージの削除、および開封確認メッセージに対応し得る。

ユーザ要求通信システム100は、メッセージ受信ボックスを複数のメッセージを含むように定義することによって動作することができ、各メッセージは、2人以上の参加者間の通信の個々のトランザクション処理である。メッセージングサーバは、メッセージ受信ボックスのメッセージインデックスを保持することによって動作し得る。メッセージングサーバは、メッセージを受信し、そのメッセージをメッセージアーカイブに記憶することができ、そのメッセージアーカイブからメッセージインデックスを参照してメッセージを受信し得る。メッセージングクライアントは、メッセージングサーバに接続し、メッセージクライアントの最後の更新後にメッセージクライアントのメッセージアーカイブに追加されたメッセージを受信し得る。メッセージングクライアントは、メッセージアーカイブから、どのようなメッセージがメッセージアーカイブに記憶されているかを示すメッセージインデックスを受信し得る。メッセージングクライアントは、どのようなメッセージが欠落しているかを判断するためにメッセージングクライアントのメッセージアーカイブを現在の受信ボックスと比較し、次いでそれをメッセージアーカイブに要求し得る。メッセージングクライアントは受信ボックスに変更を加えることができ、その結果、メッセージアーカイブにメッセージ受信ボックス命令が送信され、メッセージアーカイブにメッセージアーカイブ上のメッセージ受信ボックスの表現を変更するように指示する。

メッセージングシステムによって媒介されるメッセージング対話は、メッセージスレッドとして知られる共有空間に編成され得る。メッセージスレッドは、特定のグループのユーザ間で共有されるメッセージをまとめて収集することができる。一対のユーザの間で個別に送信されたメッセージは、その対のユーザ間のプライベートメッセージングに一意に関連付けられた一対一のメッセージスレッドに収集されてもよい。3人以上のユーザのグループの間で送信されるメッセージは、そのメンバーシップによって一意に定義されない場合があり、いくつかの実施形態では、グループスレッドを一意に指定する識別子によって代わりに定義され得る。グループスレッドのメンバーシップは、いくつかの実施形態では、経時的に変化し、メンバーを追加し、および/または失うことがある。メッセージスレッドは、例えば、ユーザとメッセージングボットとの間のものとすることができ、ユーザは、要求を提示して要求に関する対話に参加するために、メッセージスレッドにアクセスしてメッセージングボットとのメッセージングに参加する。

ユーザ要求通信システム100は、ユーザ間の対話から生じた知識を用いることができる。ユーザ要求通信システム100は、ソーシャルネットワーキングシステムのコンポーネントを含むことができ、ソーシャルネットワーキングシステムのより広範な対話から生じた知識を用いることができる。したがって、ユーザ要求通信システム100およびより大きなソーシャルネットワーキングシステムのユーザのプライバシーを保護するために、ユーザ要求通信システム100は、ユーザのアクションをユーザ要求通信システム100によって記録すること、または例えば適切なプライバシー設定を設定することによって他のシステム(例えば、第三者システム)と共有することの、開始または終了をユーザが選択できるようにする認証サーバ(または他の適切なコンポーネント)を含み得る。ユーザのプライバシー設定は、ユーザに関連するどのような情報が記録され得るか、ユーザに関連する情報がどのようにして記録され得るか、ユーザに関連する情報がいつ記録され得るか、ユーザに関連する情報を誰が記録し得るか、ユーザに関連する情報が誰と共有され得るか、およびどのような目的でユーザに関連する情報が記録または共有され得るかを決定することができる。認証サーバまたは他の認証コンポーネントを使用して、ブロッキング、データハッシング、匿名化、または適宜の他の適切な技術によって、ユーザ要求通信システム100とソーシャルネットワーキングシステムの他の要素のユーザの1つまたは複数のプライバシー設定を実施し得る。

図2Aは、ユーザクライアント用のユーザインタフェース200の一実施形態を示す。
ユーザインタフェース200は、クライアントデバイス220上に表示され得る。クライアントデバイス220は、限定されないが、スマートフォンデバイス150、パーソナルコンピュータデバイス180、タブレットデバイス160、または任意の他の形態のクライアントデバイスに対応し得る。ユーザインタフェース200は、スマートフォンデバイス150、タブレットデバイス160、パーソナルコンピュータデバイス180、または他のデバイス上で実行し得るようなウェブブラウザを介して表示され得る。ユーザインタフェース200は、スマートフォンデバイス150、タブレットデバイス160、パーソナルコンピュータデバイス180、または他のデバイス上で実行し得るようなメッセージングアプリケーションに表示され得る。ユーザインタフェース200は、スマートフォンデバイス150、タブレットデバイス160、パーソナルコンピュータデバイス180、または他のデバイス上で実行し得るような自動ボットサービスアプリケーションに表示され得る。ユーザインタフェース200は、ここに列挙された例に限定されることなく、様々な技術を使用して表示され得る。

ユーザインタフェース200は、メッセージ対話表示210を含むことができる。メッセージ対話表示210は、クライアントデバイス220のユーザとボットアプリケーション190によって実装された自動ボットとの間で交換される一連のメッセージを含むことができる。メッセージ対話表示210は、複数のユーザメッセージのうちの1つのユーザメッセージ215を含むことができる。ユーザメッセージは、ユーザのアバタに関連付けられて表示され得る。メッセージ対話表示210は、複数のボットメッセージのうちの1つのボットメッセージ217を含むことができる。ボットメッセージは、ボットアプリケーション190に対応するようにボットのアバタに関連付けられて表示され得る。メッセージ対話表示210は、場合によっては、クライアントデバイス220の限られた画面スペースに起因するなどして、ユーザメッセージおよびボットメッセージの一部分を視覚的に含むのみであり得る。

クライアントデバイス220は、ユーザインタフェース200を操作する制御部を含むことができる。制御部は、テキストベースのメッセージの構成に合わせてテキストを入力することを可能にするテキスト入力制御部222を含むことができる。制御部には、ハードウェア制御部が含まれ得る。いくつかの実施形態では、制御部はタッチスクリーン方式の制御部であり得る。

図2Bは、ユーザクライアント用のユーザインタフェース225の一実施形態を示す。
メッセージングクライアントは、メッセージングクライアントヘッダ227を表示することができる。メッセージングクライアントヘッダ227は、ユーザがメッセージスレッドを介して参加し得るメッセージングボットの名称などの、メッセージスレッドのタイトルを含むことができる。メッセージングクライアントヘッダ227は、ユーザをメッセージングクライアントの受信ボックスビューに戻す制御部を含むことができる。未読メッセージを含む複数の最近のメッセージスレッドで受信ボックスビュー制御部を拡張し得る。

ユーザインタフェース225は、メッセージ対話表示230を含むことができる。メッセージ対話表示230は、クライアントデバイス220のユーザと、ボットアプリケーション190によって実装された自動ボットとの間で交換される一連のメッセージを含むことができる。メッセージ対話表示230は、複数のユーザメッセージを含むことができる。ユーザメッセージは、ユーザが自分自身に指定される必要がないため、クライアントデバイス220のユーザのアバタを使用せずに表示され得る。メッセージ対話表示230は、複数のボットメッセージを含むことができる。ボットメッセージは、ボットアプリケーション190に対応するようにボットのアバタに関連付けられて表示され得る。メッセージ対話表示230は、場合によっては、クライアントデバイス220の限られた画面スペースに起因するなどして、ユーザメッセージおよびボットメッセージの一部分を視覚的に含むのみであり得る。メッセージ対話表示230は、いいね(サムズアップ)などのソーシャル賛同アイコンを表示するソーシャル賛同アイコン表示235を含むことができる。ソーシャル賛同アイコン表示235の送受信は、ソーシャル賛同アイコン表示235をメッセージ内に埋め込まれた要素とし、メッセージングシステムを使用してメッセージを送受信する特定の場合を含むことができる。メッセージ対話表示230は、下線で印を付けられることのある、テキストの実行可能な部分を示す検出されたイベント240を含むことができる。検出されたイベント240を選択することによって、検出されたイベント240をユーザのカレンダーに追加するインタフェースをインスタンス化し得る。

図3Aは、ボットメッセージサンプル310を用いた会話サンプルを構成する開発者コンソール用のユーザインタフェース300の一実施形態を示す。例示のユーザインタフェース300は、スクロール可能なインタフェースに表示されることのある会話サンプルの一部のみを含むことができる。

メッセージングボットの開発者が開発者コンソールを使用して、ユーザへの1つまたは複数のサービスの実行のためにメッセージングボットを構成することができる。開発者コンソールを使用して、開発者が起草した会話サンプルを作成して注釈付けすることができる。開発者用コンソールを使用して、製造用に派生させた会話サンプルを編集して注釈付けをしてもよい。ユーザインタフェース300は、これらの場合のいずれかに対応し得る。

開発者コンソールは、注釈付きのメッセージング会話を表示し、注釈付きのメッセージング会話の作成を可能にし得る。メッセージング会話サンプルは、メッセージングボットの予定された動作を例示するストーリからなり得る。ストーリは、予定されるのみでなく、実際の会話を含むこともできる。例えば、メッセージングボットが使用される際に、システムは実際の会話を収集し、その後にその会話を訓練用のストーリとして使用し得る。メッセージング会話サンプルは、生のユーザ対ボットメッセージング会話から生成された、またはメッセージングボットの開発者によって起草されたユーザメッセージサンプル305を含むことができる。メッセージング会話サンプルはボットメッセージサンプル310を含むことができ、ボットメッセージサンプル310は生のユーザ対ボットメッセージング会話に基づいて会話に配置されるか、またはメッセージングボットの開発者によって配置されている。ボットメッセージは、開発者によって起草されたサンプルから導出され得るので、生のユーザ対ボットメッセージング会話に基づいて会話に配置されたボットメッセージサンプル310は、ボット開発者による最初に草案作成されたままである可能性があることを理解されるであろう。

ユーザメッセージサンプルに、構造化データ抽出サンプルを用いて注釈付けすることができる。メッセージングボットは、ユーザ要求コンテキストの記憶のために、開発者によって定義された構造化データオブジェクトを有することができる。ユーザ要求コンテキストは、コンテキスト情報を複数のデータフィールドにカプセル化することができる。構造化データ抽出は、複数のデータフィールドの1つまたは複数に値を付与することができる。例えば、第1のユーザメッセージサンプル305は、対話に対する一般的なユーザの意図を表すもので、この場合、ピザの注文に構造化データ抽出サンプル307で注釈付けすることができ、構造化データ抽出サンプル307は、メッセージングボットが、ユーザメッセージサンプル305を、特定の構造化データフィールド、ここでは「wants_pizza」フィールドを真であるように設定するものと解釈すべきことを示す。第2のユーザメッセージサンプル315も同様である。この場合に、具体的にLサイズのピザを要求することに構造化データ抽出サンプル317で注釈付けすることができ、構造化データ抽出サンプル317は、メッセージングボットが、ユーザメッセージサンプル315を、「Lサイズ」との語からなる、ユーザメッセージサンプル315から抽出された値に等しくなるように「pizza_size」フィールドを設定するものと解釈すべきことを示す。第1のメッセージからの抽出は、特定の値を抽出することなく、第1のメッセージ全体に対して全体論的であり得る。ただし、第2のメッセージからの抽出は、ユーザメッセージサンプル315内に含まれる特定の値に関し、その値は開発者コンソールに印を付けられて抽出される。いくつかの実施形態では、ユーザメッセージサンプル内の値とは異なり得る特定の値を構造化データ抽出サンプル317内において指定して、メッセージングボットに同義語などの、値の代替形態を認識することを期待する伝達を行ってもよい。

ボットメッセージサンプル310は、ユーザメッセージサンプル305に対するボット応答サンプルを含むことができる。指定されたテキストをメッセージングボットによってメッセージとして送信すべきであるという通知により、ボット応答エントリにおいてボットメッセージサンプル310を示してもよい。ボットメッセージサンプル310は、変数追加制御部312に関連付けられ得る。変数追加制御部312は、ボットメッセージサンプル310などの、ボット応答への変数の追加を可能にし得る。

図3Bは、ボットアクションサンプル340を用いた会話サンプルを構成する開発者コンソール用のユーザインタフェース325の一実施形態を示す。
ピザの上に一組のトッピングを希望するというユーザメッセージサンプル330においてユーザが指定する構造化データ抽出サンプル335は、ユーザメッセージから複数の値が抽出され得ることを示す。この場合に、これらの複数の値は、特定のデータフィールドのリストとして結合され得るが、他の場合には、単一のユーザメッセージから抽出された値が複数のデータフィールドに割り当てられ得る。

ユーザとボットとの間のメッセージング対話は、メッセージングボットによるユーザへのサービスの遂行を構築し得るが、そのアクションはユーザとボットとの間の会話の終了を表さない場合がある。ボットアクションサンプル340は、開発者コンソールにおいて指定され得る。ボットアクションサンプル340は、開発者によって付与されるボットアプリケーション190へのボットAPI呼出しの観点から定義され得る。ボットAPI呼出しは、ユーザ要求コンテキストおよびユーザ要求エンティティを入力として受け入れ得る。ユーザ要求コンテキストは、NLPシステムによって抽出された値を含む構造化データオブジェクトを含むことができる。ユーザ要求エンティティは、NLPシステムによるユーザ入力の意味分析の出力を含むことができる。ユーザ要求エンティティは、限定されないが、会話中のすべてのユーザメッセージについての最新のユーザメッセージ、または他の任意のユーザメッセージセットの意味分析の出力を含むことができる。

ボットAPI呼出しは、開発者によってボットアプリケーション190に実装することができ、NLPシステムは、メッセージングボットに対して指定され得る複数のボットAPI呼出しのうちから行うべき特定のボットAPI呼出しを決定する。ボットAPI呼出しは、ユーザ要求コンテキストを更新する1つまたは複数の値を返し得る。例示の実施形態では、ユーザ要求コンテキストの「delivery_time」フィールドは、ボットAPI呼出しに基づいて更新される。ボットアプリケーション190は、ピザの注文を実行して、配達時間をユーザ要求コンテキストの構造化データオブジェクトの「delivery_time」フィールドの値として返すように、開発者によって実装され得る。コンテキスト更新追加制御部343を使用してさらなるコンテキスト更新を追加することができる。

ユーザメッセージサンプルに対する複数のボット応答を、開発者コンソールに示すことができ、したがって、メッセージングボットによって実行することができる。例えば、ボットは、アクションを実行し、その後メッセージを介してそのアクションをユーザに報告するするとパターン化されるこができる。ボットメッセージサンプル345は、会話サンプルにおいて指定され得る。変数追加制御部347を使用して、ユーザ要求コンテキストの構造化データオブジェクトからのフィールドなどの、特定の変数の値をボットメッセージサンプル345に追加することができる。例示の実施形態では、以前のボットアクションの実行中に指定された値が、その後に、以降のボットメッセージサンプル345に含められる。いくつかの実施形態では、ボットアクションおよびボットメッセージなどの複数のボット応答は、ユニットとして定義され、したがって、不可分なユニットとしてメッセージングボットにより訓練および再現される。場合によっては、ボットアクションは、開発者システム上のボットアプリケーションによって実行される任意のアクションに加えて、ボットアプリケーションからの応答において受信した、更新されたユーザ要求コンテキストとともに、現在のユーザ要求コンテキストを開発者システムによって実行されるボットアプリケーションに渡すことを含むことができる。

図3Cは、開発者コンソール用のユーザインタフェース350の一実施形態を示す。いくつかの実施形態では、開発者コンソールは、ユーザ要求通信システム100によってホストされる開発者コンソールを用いて、ユーザ要求通信システム100のウェブサイトにアクセスするウェブブラウザに表示され得る。

開発者コンソールは、ストーリセクションを含む複数のセクションを含むことができる。ストーリセクションは、ストーリ選択制御部355を選択することによって選択され得る。ストーリセクションを使用して、自然言語機械学習コンポーネントにメッセージングボットの所望の動作を教える際に使用するストーリを構成し得る。開発者コンソールは、(メッセージングボットに関連するメッセージを受信する)受信ボックスセクション、(メッセージングボットによる実行に供されるボットアクションを設定する)アクションセクション、(メッセージング対話のユーザコンテキストを記憶する際に使用される構造化データオブジェクトを構成する)エンティティセクション、(追加のストーリを生成するために使用され得るようなメッセージングボットのメッセージング対話のログを見るための)ログセクション、および(メッセージングボットの設定を構成する)設定セクションを含むことができる。他の、または代替のセクションを使用することができる。

場合によっては、ストーリセクションには、ログセクションを介して到達することができる。ログセクションは、メッセージングボットが参加している会話の一部またはすべてのログを表示し得る。開発者は、これらの会話を検討して、メッセージングボットに望まれる追加機能、メッセージングボットが処理できる追加要求、メッセージングボットが理解できる追加のステートメント、およびメッセージングボットに適した一般に追加される訓練を指定し得る。場合によっては、開発者はストーリセクションに移行することを選び、ストーリを作成して追加の訓練を与え得る。場合によっては、開発者は、記録された会話をストーリセクションにコピーすることを選び、記録された会話を編集および注釈付けをしてストーリを生成し得る。

開発者コンソールは、ストーリ作成制御部359を含むことができる。ストーリ作成制御部359は、メッセージングボットを構成する際に使用する追加のストーリの作成を可能にし得る。

開発者コンソールは、再試行保存制御部358を含むことができる。再試行保存制御部358を使用して、保存操作を開始し、および/または保存操作を再試行し得る。
開発者コンソールは、削除制御部357を含むことができる。削除制御部357は、開発者コンソールにおいて編集されている現在のストーリの削除を許可することができる。

開発者コンソールは、ユーザメッセージサンプル360を含むことができる。ユーザメッセージサンプル360は、メッセージングボットとの対話に対して予測される、または起こり得るユーザメッセージを示すように開発者コンソールを介して開発者により構成された、テキストセグメントを含み得る。

開発者コンソールは、エンティティ名指定部364を含むことができる。エンティティ名指定部364は、構造化データオブジェクト内に構成されたエンティティの名称を指定し得る。このエンティティのこの指定部は、エンティティを、ユーザメッセージサンプル360に現れるものとして指定する。

開発者コンソールは、構造化データ抽出サンプル366を含むことができる。構造化データ抽出サンプル366は、エンティティ名指定部364に関連付けられたユーザメッセージサンプル360の部分を、類似サンプルから抽出するためにメッセージングボットを訓練すべきであると指定し得る。構造化データ抽出サンプル366は、ドロップダウンメニューを介して指定することができ、ドロップダウンメニューは、ユーザメッセージサンプル360内のテキストセグメントの各々を含む。

いくつかのエンティティは、予め定義されたエンティティ指定部368を介して指定され得る。予め定義されたエンティティ指定部368は、ユーザ要求通信システム100を用いて事前に定義されたタイプのエンティティに対応し得る。事前に定義されたエンティティタイプには、限定されないが、地名タイプ、住所タイプ、人名タイプ、電話番号タイプ、電子メールアドレスタイプ、またはメッセージング対話においてそれらに共通に出現するものに基づいてユーザ要求通信システム100を用いて事前に定義された任意の他のタイプが含まれ得る。

開発者コンソールは、ボットメッセージサンプル370を含むことができる。ユーザメッセージサンプル370は、ユーザとの対話について予測される、または起こり得るボットメッセージを示すように、開発者コンソールを介して開発者により構成されたテキストセグメントを含むことができる。

開発者コンソールは、変数追加制御部372を含むことができる。変数追加制御部374は、変数要素の値が、ユーザに送信されるとボットメッセージサンプル370に含められるように、ボットメッセージサンプル370に変数要素を追加することを可能にし得る。

図4は、図1のユーザ要求通信システム100の分岐論理フロー400の一実施形態を示す。論理フロー400は、本明細書で説明する1つまたは複数の実施形態によって実行される動作の一部または全部を表し得る。

図4に示す例示の実施形態において、論理フロー400は、ブロック405においてユーザメッセージを受信することができる。この論理フロー400は、一般に、ユーザメッセージの受信、したがって論理フロー400のプロセスで開始することができる。論理フロー400は、ブロック410に進むことができる。

論理フロー400は、ブロック410においてユーザ要求コンテキストを更新することができる。ユーザ要求コンテキストを更新することは、受信したユーザメッセージから1つまたは複数の値を抽出し、1つまたは複数の値を構造化データオブジェクトに記憶することを含むことができる。論理フロー400は、次にブロック415に進むことができる。

論理フロー400は、ブロック415において、受信したユーザメッセージに対する1つまたは複数のボット応答を生成することができる。1つまたは複数のボット応答を生成することは、複数のボット応答オプションを生成することと、ユーザメッセージに応答して、使用する特定の1つまたは複数を選択することとを含むことができる。論理フロー400は、次にブロック420に進むことができる。

論理フロー400は、ブロック420において、実行されないボット応答が利用可能であるか否かに基づいて分岐することができる。ボット応答を順序付けることができ、したがって次の利用可能なボット応答が存在し得ることは理解されるであろう。次の利用可能なボット応答がボットアクションである場合、論理フロー400はブロック430に進むことができる。次の利用可能なボット応答がボット応答メッセージである場合、論理フロー400はブロック450に進むことができる。利用可能なボット応答がない場合、論理フロー400はブロック460に進むことができる。

論理フロー400は、ブロック430において、API情報を取得することができる。ボットアクションは、1つまたは複数の入力を用いてボットアプリケーション190へのAPI呼出しを実行することによって実行され得る。API呼出しへの入力に関する情報を取得して利用可能にすることができる。論理フロー400は次にブロック435に進むことができる。

論理フロー400は、ブロック435において、ボットAPI呼出しを実行することができる。ボットAPI呼出しを実行することは、ボットアプリケーション190へのAPI呼出しに関与することを含むことができる。いくつかのボットアプリケーションは、論理フロー400を実行しているコンピュータによってローカルに実行され得る、したがって、API呼出しはローカルAPI呼出しであり得る。いつかのボットアプリケーションは、論理フロー400を実行しているコンピュータシステムとは異なるコンピュータシステムによってリモートに実行され得る、したがって、API呼出しはボットアプリケーション190へのネットワークアクセスを使用するリモートAPI呼出しであり得る。論理フロー400は、次にブロック440に進むことができる。

論理フロー400は、ブロック440において、ボットAPI呼出しに基づいてユーザ要求コンテキストを更新することができる。場合によっては、ボットAPI呼出しがユーザ要求コンテキストの値を返し得る。いくつかの実施形態では、戻り値がボットAPI呼出しへの戻り値として提供され得る。他の場合には、ユーザ要求コンテキストを具現化する構造化データオブジェクトを、ボットアプリケーション190によって変更し、変更された構造化データオブジェクトとして返し、返された変更後の構造化データオブジェクトが、NLPシステムによって使用された以前の構造化データオブジェクトを置換し得る。論理フロー400は、次いで、ブロック420にループバックするように進むことができる。

論理フロー400は、ブロック450において、ボット応答メッセージのための変数を取得することができる。場合によっては、ボット応答メッセージは静的メッセージであり、ボット応答メッセージのすべての要素が静的に指定され得る。他の場合には、ボット応答メッセージが、実行時に特定の値で埋められる1つまたは複数の変数エントリを含み得る。論理フロー400は、これらの値を取得して、ユーザ要求コンテキストに基づいて変数を指定することができる。論理フロー400は、ブロック455に進むことができる。

論理フロー400は、ブロック455において、ボット応答メッセージを送信することができる。ボット応答メッセージを送信することは、メッセージングシステムを介してユーザのクライアントデバイスにメッセージを送信することを含むことができる。ボット応答メッセージは、送信前に取得した値に設定される1つまたは複数の変数を有することができる。論理フロー400は、次いで、ブロック420にループバックするように進むことができる。

論理フロー400は、ブロック460において、会話履歴を更新することができる。会話履歴は、受信したユーザメッセージと、任意の実行されたボットアクションおよび送信されたボットメッセージとを含むように更新することができる。いくつかの実施形態では、任意のユーザメッセージの受信後、任意のボットアクションの実行後、および任意のボットメッセージの送信後に、会話履歴を直ちに更新することができることが理解されるであろう。論理フロー400は、次いで、ブロック405にループバックするように進むことができる。

論理フロー400は、会話の終了まで継続することができる。場合によっては、ユーザに対する実行に関する情報の提供と、任意のユーザフィードバックの受信とを含んで、ユーザ要求の実行が成功すると会話を完了し得る。場合によっては、ユーザ要求を満たすことに失敗すると会話を完了し得る。場合によっては、ユーザがユーザメッセージを提示することを停止すると会話を完了し得る。場合によっては、会話が終了し、ユーザ要求コンテキストおよび会話履歴がクリアされ、論理フロー400が後続の会話でユーザメッセージを受信するために引き続き利用可能である。

図5は、ユーザ要求通信システム100によって実行されるユーザ対ボット会話の一実施形態を示す。
ユーザ対ボット会話は、ボットサーバ525によって仲介され得る。ボットサーバ525は、メッセージングシステム用のメッセージングサーバ110に結合され得る。メッセージングサーバ110は、ボットサーバ525とユーザクライアント520との間でメッセージの送受信を行うことができる。メッセージングサーバ110は、ボットサーバ525とボットアプリケーション190との間で情報の送受信を行うことができ、またはボットアプリケーションフロントエンドを使用することができる。

ユーザクライアント520には、メッセージングクライアント、ボットアプリケーション190または複数のボットアプリケーション190へのアクセスのための専用クライアント、またはメッセージング機能を含む任意の他のクライアントが含まれ得る。ユーザクライアント520は、クライアントデバイス上で実行することができる。ユーザクライアント520は、クライアント通信コンポーネント540を使用してボットサーバ525とのユーザメッセージ交換530に参加することができる。クライアント通信コンポーネント540は、メッセージングシステムによるメッセージの送信によって仲介され得るクライアントフロントエンドをボットサーバ525に設けることができる。ユーザメッセージ交換530は、ユーザクライアント520からボットサーバ525へのユーザ作成メッセージの送信と、ボットサーバ525からユーザクライアント520へのボットメッセージの送信とを含むことができる。

ボットアプリケーション190は、開発者コンピュータシステム上で実行することができるようなソフトウェアプログラムを含むことができ、またはユーザ要求通信システム100によってホストされ得る。ボットアプリケーション190は、ボットアプリケーションインタフェースコンポーネント580を介してボットサーバ525とのボット情報交換590に参加することができる。ボットアプリケーションインタフェースコンポーネント580は、ボットアプリケーション用のボットサーバ525および/またはメッセージングシステムのフロントエンドとして動作することができる。ボット情報交換590は、ボットサーバ525への会話サンプルの提示と、ボットアプリケーション190に対するボットアプリケーションインタフェースコンポーネント580によるボットAPI呼出しの実行とを含むことができる。

対話処理コンポーネント560は、自然言語機械学習(NLML)コンポーネント550とインタフェース接続して、シーケンスモデル510を生成することができる。対話処理コンポーネント560は、シーケンスモデル510を使用して、ボットメッセージおよびボットアクションを含むボット応答を生成することができる。対話処理コンポーネント560は、クライアント通信コンポーネント540とボットアプリケーションインタフェースコンポーネント580との間の仲介者として作用することができる。NLMLコンポーネント550は、既知の自然言語処理(NLP)および機械学習(ML)技術を使用して実装することができる。

対話処理コンポーネント560は、対話サンプルリポジトリ570を受信することができ、対話サンプルリポジトリ570は、ユーザ対ボット対話の複数のサンプルを含む。対話処理コンポーネント560は、ボット情報交換590の一部としてのボットアプリケーションインタフェースコンポーネント580を介して、ボットアプリケーションから対話サンプルリポジトリ570にアクセスすることができる。対話処理コンポーネント560は、対話サンプルリポジトリ570を自然言語機械学習コンポーネント550に提示し、対話サンプルリポジトリ570を提示することに応答して、自然言語機械学習コンポーネント550からシーケンスモデル510を受信することができる。クライアント通信コンポーネント540、対話処理コンポーネント560、およびボットアプリケーションインタフェースコンポーネント580を含むボットサーバ525は、シーケンスモデル510に基づいてユーザ対ボット会話を実行することができる。

ユーザ対ボット会話(すなわち、ストーリ)は、メッセージングセッションに従って描写することができる。いくつかの実施形態では、ボットアプリケーション190は、メッセージセッションの中断を検出し、メッセージセッションの中断がボット情報交換590の一部として発生したことをボットサーバ525に通知する役割を果たすことができる。いくつかの実施形態では、対話処理コンポーネント560は、会話の意味分析および/または会話中の時間間隔の長さに依存し得る会話中断技術を使用して、メッセージングセッションの中断を検出することができる。

シーケンスモデル510に基づいてユーザ対ボット会話を実行することは、シーケンスモデル510をユーザ要求コンテキスト、ユーザ対ボット会話履歴、および1つまたは複数のユーザメッセージに関する意味分析情報に適用することを含むことができる。ユーザ要求コンテキストは、開発者が定義した構造化データオブジェクトに従って記憶することができ、開発者が定義した構造化データオブジェクトは、複数のフィールドを含む。これらのフィールドは、ユーザ対ボット会話中のユーザメッセージから抽出された意味分析情報に基づいて、ユーザ対ボット会話の長さにわたって反復的に決定されてもよい。ユーザ対ボット会話履歴は、ユーザ対ボット会話のためのボットアクションに加えて、ユーザメッセージおよびボットメッセージの完全な交換を含むことができる。シーケンスモデル510は、他の可能な用途の中で特に、メッセージとアクションとの重複を避けるために、ユーザ対ボット会話履歴を順に組み込むことができる。意味分析情報は、NLMLコンポーネント550によるユーザメッセージからの意図および他の意味情報の抽出を含むことができる。

ユーザ対ボット会話を実行することは、クライアントデバイスからユーザメッセージを受信すること、および、ユーザメッセージおよびシーケンスモデル510に基づいてボット応答を生成することを含むことができる。ボット応答はボット応答メッセージを含むことができ、クライアント通信コンポーネント540がボット応答メッセージをクライアントデバイスに送信する。あるいは、ボット応答はボットアクションを含むことができる。いくつかの実施形態では、ボットサーバ525は、ホストされたメッセージングボットのボットアクションを実行することができる。他の実施形態では、ボットアプリケーションインタフェースコンポーネント580が、ボットアプリケーションをボットアプリケーション190に送信することができる。ボットアクションをボットアプリケーション190に送信することは、ボットAPI呼出しを実行することを含むことができる。

ボットアクションは、開発者サーバ上のボットアプリケーション190によって実行され、ボットアクションの実行の開発において開発者を解放することができる。開発者が開発者のシステムで実装して実行できる任意のアクションを、メッセージングボットを介してサービスとしてユーザに提供することができる。これにより、どのようなプラットフォーム上で実行するか、どのようなプラットフォームを用いて開発するか、ボットの実行の範囲(例えば、実行に対してボットに利用可能なリソース)、使用するプログラミング言語、どのようなAPIをボットが呼び出し得るかなどにおける、開発者の制約を取り除き得る。

ユーザメッセージおよびシーケンスモデル510に基づいてボット応答を生成することは、ユーザメッセージに関する意味分析情報を生成することと、意味分析情報にシーケンスモデル510を適用することに基づいてボット応答を生成することとを含むことができる。意味分析情報は、NLP技術を使用してユーザメッセージからの意図を抽出するものであってもよい。

ユーザ要求コンテキストは、メッセージングボットによるユーザとの会話に従って更新することができる。対話処理コンポーネント560は、現在のユーザ要求コンテキストに関連してシーケンスモデルを用いてユーザメッセージを処理することに基づいて、更新されたユーザ要求コンテキストを生成することができる。いくつかの実施形態では、ユーザ要求コンテキストの更新は、ボットアプリケーション190によって実行されてもよい。対話処理コンポーネント560は、現在のユーザ要求コンテキストに関連してシーケンスモデル510を用いてユーザメッセージを処理することに基づいて、ユーザ要求コンテキスト更新を生成することができる。ボットアプリケーションインタフェースコンポーネント580は、ボットアプリケーション190にユーザ要求コンテキスト更新を送信し、応答するボットアプリケーション190から更新されたユーザ要求コンテキストを受信することができる。対話処理コンポーネント560は、将来のユーザメッセージを処理する際に使用するために、更新されたユーザ要求コンテキストを記憶することができる。

開発者システム上のボットアクションの実行と同様に、開発者システム上でのコンテキストの更新は、ボットアクションに基づいてコンテキストがどのように更新されるかという点で開発者を解放することができる。更に、アクションの実行とコンテキストへの更新とを組み合わせることにより、機械学習は、NLMLコンポーネント550が単一のアクションとして動作することを学習することができるユニットにロジックの一部をカプセル化することによって、1つまたは複数のAPI呼出し、1つまたは複数の計算、コンテキストに対する1つまたは複数の変更などの単一のボットアクションの一部として生じ得る複数のサブアクションを1つにまとめなければならないのとは異なって、より実用的となり得る。これにより、単一のボットアクションにカプセル化され得る別々のステップをつなげてまとめるようにボットを訓練するのに使用され得る何百ものストーリが存在しない機能モデルをNLMLコンポーネント550が学習することが、より実用的になり得る。

ボット応答の生成は、シーケンスモデル510を使用して起こり得るボット応答の集合を生成するために、ユーザ対ボット会話の現在の状態を処理することを含むことができる。シーケンスモデル510は、ユーザ対ボット対話の複数のサンプルの表現を含むことができる。シーケンスモデル510を使用してユーザ対ボット会話の現在の状態を処理することにより、現在の状態に適合する次のステップにシーケンスモデル510が最もよく対応することを示す、ユーザ対ボット対話の複数のサンプルからの複数のボット応答を選択する結果が得られる。

ただし、場合によっては、これらの選択されたボット応答の一部が不適切であることがある。したがって、ボット応答を生成することは、各々が応答ランク付けスコアに関連する複数の推奨ボット応答を受信することと、複数の推奨ボット応答の1つまたは複数の無効なボット応答を除外して複数の後処理された推奨ボット応答を生成することと、ボット応答を、応答ランク付けスコアが最も高いポスト処理された推奨ボット応答のうちの推奨ボット応答として選択することとを含む。

場合によっては、1つまたは複数の無効なボット応答を、推奨ボットアクションに対する完全なコンテキストの欠如に基づいて除外し得る。ボットアプリケーション190によってサポートされる各ボットアクションは、ユーザ要求コンテキストを記憶する構造化データオブジェクトのフィールドに記憶された情報を使用することができる。ユーザ要求通信システム100に対するメッセージングボットの登録は、サポートされたボット動作の指定を含むことができる。サポートされるボットアクションの指定は、ボットアプリケーションインタフェースコンポーネント580がAPI呼出しを使用して、ボットアプリケーション190を用いたボットアクションと、API呼出しを行う前に指定されなければならないこととなっているボットアクションを実行する際に使用される構造化データオブジェクトのフィールドとをインスタンス化することを含むことができる。シーケンスモデル510は、これらの制限を組み込んでいない可能性があり、従って、ボットアクションに対応する推奨ボット応答を、構造化データオブジェクトの指定されたフィールドのすべてがそのフィールドに対する入力値を有していたのではないとの対話処理コンポーネント560による決定に基づいて、対話処理コンポーネント560により、後処理ステップにおいて除外し得る。

いくつかの実施形態では、ユーザ要求通信システム100は、一貫した会話の意味構造をモデル化する一貫性モデルを含むことができる。この一貫性モデルは、複数の一貫したチャット会話を含む一貫したチャット会話リポジトリに基づいて生成され得る。これらの一貫したチャット会話は、ユーザ要求通信システム100の人間のオペレータによって選択され得る。一貫性モデルは、人間が自然であるとみなす受け答えに対応する人間の会話の一貫した流れをモデル化するように構築され得る。例えば、一貫性モデルは、現在のトピックの解決を伴わずに会話を次のトピックに移動させないようにすることができる。一貫性モデルは、サービス要求情報(例えば、要求されたサービス、要求されたサービスオプション)からサービス性能情報(例えば、ピックアップ/配信アドレス、連絡先電話番号など)を決めるように、ユーザ対ボット会話を導くことができる。例えば、ピザを注文するためのメッセージングボットは、ピザをどのようにどこに配達すべきかの設定を決める前または後に、連続した一連の質問でピザの構成を決めるよう案内され得る。

対話処理コンポーネント560が一貫性モデルを使用して、複数の推奨ボット応答のそれぞれについて一貫性スコアを生成し得る。一貫性スコアは、複数の推奨ボット応答のそれぞれがユーザ対ボット会話の既存の履歴とどの程度一貫性があるかの、0と1との間の評価からなり得る。一貫性スコアは、複数の推奨ボット応答のそれぞれの追加があると、ユーザ対ボット会話がどの程度一貫性があるかの、0と1との間の評価からなり得る。したがって、複数の推奨ボット応答のそれぞれについての応答ランク付けスコアは、複数の推奨ボット応答のそれぞれについての一貫性スコアに基づいて決定され、最高の応答ランク付けスコアを有する推奨ボット応答が使用に選択される。

ユーザ対ボット会話を実行することは、シーケンスモデル510に基づいてユーザ要求コンテキストの反復的な更新をすることを含むことができる。ユーザ要求コンテキストを反復的に更新して、ボットアクションの実行のためにユーザ要求コンテキスト内の特定の情報の可用性に依存するボットアクションを用いて、メッセージングボットに参加するユーザの意図および嗜好を決定し得る。ユーザ対ボット会話は、ボットメッセージの送信およびユーザメッセージの受信を介してユーザからこの情報を収集する試みであり得る。したがって、ユーザ対ボット会話を実行することは、メッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換してユーザ要求コンテキストを生成することを含むことができる。

ユーザ対ボット会話を実行することは、メッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換して推論されたユーザ要求アクションを生成することを含むことができる。この推論されたユーザ要求アクションは、シーケンスモデル510に基づいて生成された1つまたは複数のボット動作を含むことができる。次に、ボットアプリケーションインタフェースコンポーネント580は、ユーザ要求コンテキストに基づいて、推論されたユーザ要求アクションを実行することができる。推論されたユーザ要求アクションはAPI呼出しに基づいて定義することができ、API呼出しの1つまたは複数のパラメータはユーザ要求コンテキストに基づいて定義される。

対話サンプルリポジトリ570の場合、ユーザ対ボット対話のサンプルのうちの1つまたは複数は、開発者が起草したユーザ対ボット仮想対話を含むことができる。これらの開発者が起草したユーザ対ボット仮想対話は、メッセージングボットの優先動作を記述するために開発者によって生成され得る。ボットアプリケーションインタフェースコンポーネント580は、開発者コンソールを介して、開発者が起草した1つまたは複数のユーザ対ボット対話を受信することができる。

対話サンプルリポジトリ570の場合、ユーザ対ボット対話の1つまたは複数は、使用ベースのユーザ対ボット対話を含むことができる。これらの、使用ベースのユーザ対ボット対話は、開発者がスクリプトを作成するのではなく、ユーザに対するメッセージングボットの実行から開発され得る。ただし、開発者は、ユーザに対するメッセージングボットの会話を、サンプルとして展開する前に編集することができる。

ボットアプリケーションインタフェースコンポーネント580は、製造段間で実行されたユーザ対ボット対話から生成された1つまたは複数の製造ユーザ対ボット対話を受信し得る。開発者コンソールは、1つまたは複数の製造ユーザ対ボット対話を表示し、1つまたは複数の製造ユーザ対ボット対話の開発者による検証を受信して、使用ベースのユーザ対ボット対話を生成することができる。対話処理コンポーネント560は、1つまたは複数の使用ベースのユーザ対ボット対話の開発者による検証を受信することに応答して、対話サンプルリポジトリ570に1つまたは複数の使用ベースのユーザ対ボット対話を含めることができる。

場合によっては、開発者は、製造ユーザ対ボット対話を編集してから、それを使用ベースのユーザ対ボット対話として検証して、対話サンプルリポジトリ570に含めてもよい。開発者コンソールは、1つまたは複数の製造ユーザ対ボット対話のための1つまたは複数の開発者による修正を受信して、使用ベースのユーザ対ボット対話を生成することができる。したがって、対話サンプルリポジトリ570に含まれるユーザ対ボットの対話のバージョンは、開発者による修正を含むことができる。場合によっては、これらの開発者による修正を行って、個人情報からなる記録されたユーザ対ボット対話を削除し得る。ユーザのプライバシーを保護するために、個人情報を除外し得る。要求特定情報を保持し、しかもユーザ要求コンテキストを決定する基となるユーザ対ボット対話の部分を示すように注釈付けをし得る。

いくつかの実施形態では、NLMLコンポーネント550は、ユーザ対ボット対話の注釈に依存して、ユーザ要求コンテキストに追加するためにユーザメッセージから抽出すべき情報を決定してもよい。開発者コンソールは、1つまたは複数の製造ユーザ対ボット対話の1つまたは複数の開発者による注釈を受信し、使用ベースのユーザ対ボット対話を生成することができる。対話処理コンポーネント560は、対話サンプルリポジトリ570に、1つまたは複数の使用ベースのユーザ対ボット対話とともに、1つまたは複数の開発者による注釈を含めることができる。1つまたは複数の開発者による注釈は、コンテキスト更新注釈を含むことができる。

いくつかの実施形態では、意味情報の抽出は、構造化データオブジェクトのフィールドの値の決定を対象としてもよい。したがって、意味情報の抽出は、教師付き情報抽出であり、管理は、自然言語処理をこれらのフィールドの値の決定のみに制限することに基づいている。このため、対話サンプルリポジトリ570、したがってシーケンスモデル510に表される異なるボット応答を区別することは、構造化データオブジェクトのフィールドに基づいてのみ実行され得る。

ただし、他の実施形態では、非構造化意味情報の教師なし情報抽出を使用してもよい。対話処理コンポーネント560がシーケンスモデル510に基づいてユーザ対ボット会話を実行することは、抽出された教師なし情報を1つまたは複数の推奨ボット応答に組み込むことを含むことができる。NLMLコンポーネント550および対話処理コンポーネント560は、教師なし情報を抽出し、教師なし情報を使用して、構造化意味情報の教師付き情報抽出のみに基づいて区別されない可能性がある異なるボット応答を区別することができる。推奨ボット応答の選択、または推奨ボット応答のランク付けのいずれかは、この教師なし情報を使用し得る。非構造化意味情報は、ユーザ対ボット会話を実行するためのシーケンスモデル510への追加の入力を含むことができる。したがって、シーケンスモデル510に基づいてユーザ対ボット会話を実行することは、シーケンスモデル510をユーザ要求コンテキスト、ユーザ対ボット会話履歴、1つまたは複数のユーザメッセージの意味分析情報、最新のユーザメッセージから抽出された教師なし情報に適用することを含むことができる。

例えば、ユーザの丁寧な開始発言に対して、ボット応答メッセージサンプル内の丁寧さの含意の非構造化検出に対するユーザの開始発言からの丁寧さの意図の非構造化抽出によって、メッセージングボットによる丁寧な開始応答をマッチングさせることができる。一般に、ボット応答を分析して、ボット応答のための教師なし意味情報を決定し得る。ユーザメッセージを分析して、ユーザメッセージの教師なし意味情報を決定し得る。教師なし意味情報を比較および使用して、ボット応答を選択および/またはランク付けし得る。種々のランク付けスコア、またはランク付け重みの数学的組み合わせなどによって、種々のランク付け基準を組み合わせ得る。

クロスメッセンジャボット学習を利用してもよい。ユーザ対ボット会話の一部は、メッセージングボットによって提供される特定のサービスに依存しなくてよい。例えば、会話の開始時または終了時のフレンドリーな冗談は、複数のボット間に共通であり得る。いくつかの実施形態では、あるメッセージングボットのシーケンスモデル510は、他のメッセージングボットの会話サンプルに基づいて生成されたサービスに依存しないボット応答を組み込み得る。代替的または追加的に、いくつかの実施形態では、同様のサービスに関してクロスメッセンジャボット学習を利用することができ、サービス固有のボット応答は、別のメッセージングボットのシーケンスモデル510を生成するときに含められる、あるメッセージングボットの会話サンプルに基づいて生成される。

いくつかの実施形態では、同じサービスまたは異なるサービスのいずれかについての複数のメッセージングボットの会話サンプルをまとめて結合して、シーケンスモデル510を生成することができる。複数のメッセージングボットが同一または類似のサービスを提供する場合の会話サンプルを結合してまとめる場合に、得られたシーケンスモデル510を展開することにより、一メッセージングボットの単一の会話サンプルセットの場合に提供されるものを超えて、そのサービスに対するユーザ要求通信システム100の品質を向上させることができる。複数のメッセージングボットが異なるサービスを提供する場合の会話サンプルを結合してまとめる場合に、得られたシーケンスモデル510を展開することにより、単一のメッセージング会話における異なるタイプのサービス要求に応答する際のユーザ要求通信システム100の柔軟性を向上させることができる。複数のメッセージングボットの会話サンプルを結合してまとめる場合に、ボットアクションは、特定のメッセージングボット、したがってボットアプリケーションに依然として固有であり、ボットアプリケーションは、使用されている選択されたボットアクションの特定のボットAPI呼出しに対応し得る。

本明細書では、開示されるアーキテクチャの新規な態様を実施するための例示的な方法を示す一式のフローチャートを記載している。本明細書で示す1つまたは複数の方法は、説明を簡単にするために、例えばフローチャートまたはフロー図の形式で、一連の動作として図示および記載しているが、それらの方法は、その動作の順序に限定されるものではなく、本発明によるいくつかの動作は、本明細書で図示および記載しているのとは異なる順序で、かつ/または他の動作と同時に実施してよいことは、理解および認識されるべきである。例えば、方法は、代替的に、状態図のような一連の相関した状態または事象として表すことができることは、当業者であれば理解および認識できるであろう。また、新規な実施のために、方法に示すすべての動作が必要であるとは限らない。

図6は、論理フロー600の1つの実施形態を示す。論理フロー600は、本明細書で説明する1つまたは複数の実施形態によって実行される一部または全部の動作を表す。
図6に示される図示の実施形態では、論理フロー600は、ブロック602においてユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信することができる。

論理フロー600は、ブロック604において、対話サンプルリポジトリを自然言語機械学習コンポーネントに提示することができる。
論理フロー600は、ブロック606において対話サンプルリポジトリを提示することに応答して、自然言語機械学習コンポーネントからシーケンスモデルを受信することができる。

論理フロー600は、ブロック608において、シーケンスモデルに基づいてユーザ対ボット会話を実行することができる。
実施形態はこの例に限定されない。

図7は、集中型システム700のブロック図を示す。集中型システム700は、単一集中型サーバデバイス720の全範囲などの、単一の計算エンティティ内のユーザ要求通信システム100のための構造および/または動作のうちのいくつかまたは全てを実装することができる。

集中型サーバデバイス720は、ユーザ要求通信システム100のための情報を受信し、処理し、送信することができる任意の電子デバイスを含むことができる。電子デバイスの例は、限定ではないが、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話、デジタル電話、携帯電話、電子書籍リーダ、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家庭用電子機器、プログラム可能な家庭用電子機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組合せを含むことができる。実施形態は、これに限定されない。

集中型サーバデバイス720は、処理コンポーネント730を使用して、ユーザ要求通信システム100のための処理動作またはロジックを実行することができる。処理コンポーネント730は、様々なハードウェア要素、ソフトウェア要素、または双方の組合せを含むことができる。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、レジスタ、キャパシタ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含むことができる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、シンボル、またはそれらの任意の組合せを含むことができる。実施形態がハードウェア要素を用いて実装されるか、かつ/またはソフトウェア要素を用いて実装されるかを判断することは、所望の計算速度、パワーレベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度および他の設計または性能の制約等の任意の数の要因に従って、所与の実施態様にとって望ましいとおりに変動することができる。

集中型サーバデバイス720は、通信コンポーネント740を使用して、ユーザ要求通信システム100のための通信動作またはロジックを実行することができる。通信コンポーネント740は、パケット交換ネットワーク(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回路交換網(例えば、公衆交換電話網)、またはパケット交換ネットワークおよび回路交換網の(適切なゲートウェイおよび変換器を用いた)組合せ等と共に用いるのに適した技法等の、任意周知の通信技法およびプロトコルを実施することができる。通信コンポーネント740は、1つまたは複数の通信インタフェース、ネットワークインタフェース、ネットワークインタフェースカード(NIC:Network Interface Card)、無線通信デバイス、無線送信機/無線受信機(トランシーバ)、有線および/または無線通信媒体、物理的コネクタ等の様々なタイプの標準的な通信要素を含むことができる。限定ではないが、例として、通信媒体712は、有線通信媒体および無線通信媒体を含む。有線通信媒体の例は、有線、ケーブル、金属導線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、伝搬信号等を含むことができる。無線通信媒体の例は、音響、無線周波数(RF)スペクトル、赤外線および他の無線媒体を含むことができる。

集中型サーバデバイス720は、通信コンポーネント740により通信信号714を使用して通信媒体712を介して他のデバイスと通信することができる。デバイスは、所与の実施に関して所望されるように集中型サーバデバイス720の内部または外部に存在し得る。集中型サーバデバイス720は、ボットサーバ525、自然言語機械学習コンポーネント550、およびボットアプリケーション190を実装することができる。このことは、メッセージングシステムによってボットアプリケーション190を実行する実施形態を含むことができる。いくつかの実施形態では、集中型サーバデバイス720を、ボットプロバイダによって実行されるボットアプリケーション190とともに使用することができる。集中型サーバデバイス720は、それぞれがユーザクライアント520を実行する複数のユーザクライアントデバイス725と通信することができる。

図8は、分散型システム800のブロック図を示している。分散型システム800は、ユーザ要求通信システム100について、その構造および/またはオペレーションの部分を複数のコンピューティングエンティティに分散させることができる。分散型システム800の例として、限定するものではないが、クライアントサーバアーキテクチャ、三層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムを含むことができる。実施形態は、これに限定されない。

分散型システム800は、複数のメッセージングサーバデバイス810、ボットサーバデバイス850、および自然言語機械学習サーバデバイス860を備えることができる。概して、サーバデバイス810、850、および860は、図8を参照して説明したような集中型サーバデバイス820と同じまたは類似したものであり得る。例えば、サーバデバイス810、850、および860は、それぞれ、処理コンポーネント830および通信コンポーネント840を有することができ、それらは、図8を参照して説明したような処理コンポーネント830および通信コンポーネント840とそれぞれ同じまたは類似したものである。他の例では、サーバデバイス810、850、および860は、通信コンポーネント840を介して、通信信号814を用いて通信媒体812を通して通信することができる。

サーバデバイス810は、記載された実施形態に従って様々な方法を実行するように動作する1つまたは複数のプログラムを備えるかまたは使用することができる。1つの実施形態では、例えば、メッセージングサーバデバイス810は、複数のボットサーバ525を実装することができる。

ボットサーバデバイス850は、記載された実施形態に従って様々な方法を実行するように動作する1つまたは複数のプログラムを備えるかまたは使用することができる。1つの実施形態では、例えば、ボットサーバデバイス850は、複数の自然言語機械学習コンポーネント550を実装することができる。

自然言語機械学習(NLML)サーバデバイス860は、記載された実施形態に従って様々な方法を実行するように動作する1つまたは複数のサーバプログラムを備えるかまたは使用することができる。1つの実施形態では、例えば、自然言語機械学習サーバデバイス860は、複数のメッセージングサーバ815を実装することができる。

サーバデバイス810、850、および860は、複数のボットアプリケーション890と通信することができる。複数のボットアプリケーション890の各々は、異なる自動サービスを提供することができるが、競争を提供するなどの自動サービスの複製もあり得る。サーバデバイス810、850、および860は、それぞれがユーザクライアント520を実行する複数のユーザクライアントデバイス825と通信することができる。

図9は、上記に記載の様々な実施形態を実施するのに適した例示的なコンピューティングアーキテクチャ900の一実施形態を示す。1つの実施形態では、コンピューティングアーキテクチャ900は、電子デバイスを備えるか、電子デバイスの一部として実施されることが可能である。電子デバイスの例は、中でも、図7、8を参照して説明したものを含むことができる。実施形態は、これに限定されない。

本出願において用いられるとき、「システム」および「コンポーネント」という語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関係したエンティティを指すことを意図され、それらの例が、例示的なコンピューティングアーキテクチャ900によって提供される。例えば、コンポーネントは、限定ではないが、プロセッサにおいて実行されるプロセス、プロセッサ、ハードディスクドライブ、(光学および/または磁気記録媒体の)マルチ記録ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであり得る。例示のために、サーバ上で実行されるアプリケーションおよびサーバの双方がコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に常駐することができ、コンポーネントは、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間で分散され得る。更に、コンポーネントは、動作を協調させるように、様々なタイプの通信媒体によって互いに通信可能に結合され得る。協調は、情報の一方向または双方向の交換を含むことができる。例えば、コンポーネントは、通信媒体により通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り当てられる信号として実施され得る。そのような割り当てにおいて、各メッセージは信号である。一方、更なる実施形態は、代替的にデータメッセージを用いることができる。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続は、パラレルインタフェース、シリアルインタフェースおよびバスインタフェースを含む。

コンピューティングアーキテクチャ900は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力(I/O)コンポーネント、電源等の様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ900による実施に限定されない。

図9に示すように、コンピューティングアーキテクチャ900は、処理ユニット904、システムメモリ906、およびシステムバス908を備える。処理ユニット904は、限定ではないが、AMD(登録商標)プロセッサ、Athlon(登録商標)プロセッサ、Duron(登録商標)プロセッサおよびOpteron(登録商標)プロセッサ;ARM(登録商標)のアプリケーションプロセッサ、組込み型プロセッサおよびセキュアプロセッサ;IBM(登録商標)およびMotorola(登録商標)のDragonBall(登録商標)プロセッサおよびPowerPC(登録商標)プロセッサ;IBMおよびSony(登録商標)のセルプロセッサ;Intel(登録商標)のCeleron(登録商標)プロセッサ、Core(2)Duo(登録商標)プロセッサ、Itanium(登録商標)プロセッサ、Pentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサおよびXScale(登録商標)プロセッサ;ならびに同様なプロセッサを含む様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも処理ユニット904として用いられることが可能である。

システムバス908は、限定ではないがシステムメモリ906を含むシステムコンポーネントのためのインタフェースを処理ユニット904に提供する。システムバス908は、多岐にわたる市販のバスアーキテクチャのうちの任意のものを用いてメモリバス(メモリコントローラを有するかまたは有しない)、周辺バス、およびローカルバスに更に相互接続することができるいくつかのタイプのバス構造のうちの任意のものとすることができる。インタフェースアダプタは、スロットアーキテクチャを介してシステムバス908に接続することができる。例示的なスロットアーキテクチャは、限定ではないが、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、周辺コンポーネント相互接続(拡張)(PCI(X))、PCIエクスプレス、パーソナルコンピュータメモリカード国際組織(PCMCIA)等を含むことができる。

コンピューティングアーキテクチャ900は、様々な製造品を含むかまたは実装することができる。製造品は、ロジックを記憶するためのコンピュータ可読記録媒体を含むことができる。コンピュータ可読記録媒体の例は、揮発性メモリまたは不揮発性メモリ、取外し可能または非取外し可能メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含むことができる。ロジックの例は、ソースコード、コンパイルされたコード、解釈実行されたコード、実行可能コード、スタティックコード、ダイナミックコード、オブジェクト指向コード、視覚コード等の任意の適切なタイプのコードを用いて実施される実行可能なコンピュータプログラム命令を含むことができる。実施形態はまた、1つまたは複数のプロセッサによって読出しおよび実行されて、本明細書に記載の動作の実行を可能にすることができる、非一時的コンピュータ可読媒体に含まれるかまたは非一時的コンピュータ可読媒体上にある命令として少なくとも部分的に実施されることが可能である。

システムメモリ906は、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレート(DDR)DRAM、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ(ovonic memory)、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS)メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ(RAID)ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)および情報を記憶するのに適した任意の他のタイプの記録媒体等の1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読記録媒体を含むことができる。図9に示す例示される実施形態では、システムメモリ906は、不揮発性メモリ910および/または揮発性メモリ912を含むことができる。基本入出力システム(BIOS:Basic Input/Output System)を不揮発性メモリ910に記憶することができる。

コンピュータ902は、内部(または外部)ハードディスクドライブ(HDD)914、取外し可能な磁気ディスク918に対し読出しまたは書き込みを行うための磁気フロッピー(登録商標)ディスクドライブ(FDD)916、および取外し可能な光ディスク922(例えば、CD−ROMまたはDVD)に対し読出しまたは書き込みを行うための光ディスクドライブ920を含む1つまたは複数の低速メモリユニットの形態で様々なタイプのコンピュータ可読記録媒体を備えることができる。HDD914、FDD916および光ディスクドライブ920は、それぞれHDDインタフェース924、FDDインタフェース926、および光ドライブインタフェース928によってシステムバス908に接続されることが可能である。外部ドライブ実装のためのHDDインタフェース924は、ユニバーサルシリアルバス(USB)およびIEEE1394インタフェース技術の少なくとも一方または双方を含むことができる。

ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性記録および/または不揮発性記録を提供する。例えば、オペレーティングシステム930、1つまたは複数のアプリケーションプログラム932、他のプログラムモジュール934およびプログラムデータ936を含む複数のプログラムモジュールがドライブおよびメモリユニット910、912に記憶され得る。1つの実施形態では、1つまたは複数のアプリケーションプログラム932、他のプログラムモジュール934、およびプログラムデータ936は、例えば、ユーザ要求通信システム100の様々なアプリケーションおよび/またはコンポーネントを含むことができる。

ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード938、およびマウス940等のポインティングデバイスを通じてコンピュータ902にコマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量型、抵抗型等)、トラックボール、トラックパッド、センサ、スタイラス等を含むことができる。これらのおよび他の入力デバイスは、多くの場合に、システムバス908に結合された入力デバイスインタフェース942を通じて処理ユニット904に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース等の他のインタフェースによって接続されてもよい。

モニタ944または他のタイプの表示デバイスも、ビデオアダプタ946等のインタフェースを介してシステムバス908に接続される。モニタ944は、コンピュータ902に対し内部または外部にあり得る。モニタ944に加えて、コンピュータは通常、スピーカ、プリンタ等の他の周辺出力デバイスを備える。

コンピュータ902は、リモートコンピュータ948等の1つまたは複数のリモートコンピュータへの有線および/または無線通信を介して論理接続を用いてネットワーク化された環境において動作することができる。リモートコンピュータ948は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサに基づく娯楽機器、ピアデバイス、または他の共通ネットワークノードであり得、通常、コンピュータ902について記載した要素のうちの多くまたは全てを備えるが、簡潔にするために、メモリ/記録デバイス950のみが示されている。描かれる論理接続は、ローカルエリアネットワーク(LAN)952および/またはより大きなネットワーク、例えば広域ネットワーク(WAN)954への有線/無線接続を含む。そのようなLANおよびWANネットワーキング環境は、事務所および会社において一般的であり、イントラネット等の、企業規模のコンピュータネットワークを容易にする。これらは全て、グローバル通信ネットワーク、例えばインターネットに接続することができる。

LANネットワーキング環境において用いられるとき、コンピュータ902は、有線および/または無線通信ネットワークインタフェースまたはアダプタ956を通じてLAN952に接続される。アダプタ956は、アダプタ956の無線機能と通信するためにアダプタ956上に配置された無線アクセスポイントを含んでもよいLAN952への有線および/または無線通信を容易にすることができる。

WANネットワーキング環境で使用される場合、コンピュータ902は、モデム958を含むことができ、またはWAN954上の通信サーバに接続され得るか、またはインターネットなどによってWAN954上で通信を確立するための他の手段を有する。内部または外部の、有線および/または無線デバイスであり得るモデム958は、入力デバイスインタフェース942を介してシステムバス908に接続する。ネットワーク化された環境では、コンピュータ902について述べられたプログラムモジュールまたはその一部分をリモートメモリ/記録デバイス950に記憶することができる。示されるネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段が用いられてもよいことが理解されるであろう。

コンピュータ902は、IEEE802系規格を用いて、無線通信(例えば、IEEE802.11オーバーザエアー変調技法)において動作可能に配置される無線デバイス等の、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは、少なくとも、中でも、Wi−Fi(または無線フィデリティ)、WiMaxおよびBluetooth(登録商標)の無線通信技術を含む。このため、この通信は従来のネットワークと同じように予め定義された通信構造であり得るか、または、単に少なくとも2つのデバイスの間におけるアドホック通信であり得る。Wi−Fiネットワークは、安全で、信頼性が高く、高速な無線接続を提供するIEEE802.11x(a、b、g、n等)と称される無線技術を用いる。Wi−Fiネットワークはコンピュータを互いに、インターネットに、および有線ネットワーク(IEEE802.3関連の媒体および機能を用いる)に接続するのに用いられ得る。

図10は、上記の様々な実施形態を実施するのに適した例示的な通信アーキテクチャ1000のブロック図を示す。この通信アーキテクチャ1000は、トランスミッタ、レシーバ、トランシーバ、無線通信デバイス、ネットワークインタフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の様々な一般的な通信要素を含む。しかしながら、本発明の実施形態は通信アーキテクチャ1000による実施に限定されない。

図10に示されるように、通信アーキテクチャ1000は1つまたは複数のクライアント1002およびサーバ1004を含む。クライアント1002は、1つまたは複数のユーザクライアント520および/または1つまたは複数のボットアプリケーション190を実装することができる。サーバ1004は、1つまたは複数のボットサーバ525、1つまたは複数の自然言語機械学習コンポーネント550、および/または1つまたは複数のメッセージングサーバ815を実装することができる。クライアント1002およびサーバ1004は、1つまたは複数のそれぞれのクライアントデータストア1008およびサーバデータストア1010に動作可能に接続されている。これらは、クッキーおよび/または関連付けられたコンテキスト情報等のそれぞれのクライアント1002およびサーバ1004にローカルな情報を記憶するために利用されることが可能である。

クライアント1002およびサーバ1004は通信フレームワーク1006を用いて互いの間で情報を通信することができる。通信フレームワーク1006は任意の既知の通信技法およびプロトコルを実装することができる。通信フレームワーク1006は、パケット交換網(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回線交換網(例えば、公衆交換電話網)、またはパケット交換網と回線交換網との組合せ(適切なゲートウェイおよび変換器を備える)として実装されることが可能である。

通信フレームワーク1006は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するように構成される様々なネットワークインタフェースを実施することができる。ネットワークインタフェースは、特殊な形態の入出力インタフェースと見なされ得る。ネットワークインタフェースは、限定ではないが、直接接続、イーサネット(例えば、シック、シン、ツイストペア10/100/1000BaseT等)、トークンリング、無線ネットワークインタフェース、セルラーネットワークインタフェース、IEEE802.11a−xネットワークインタフェース、IEEE802.16ネットワークインタフェース、IEEE802.20ネットワークインタフェース等を含む接続プロトコルを用いることができる。更に、様々な通信ネットワークタイプと関わるために複数のネットワークインタフェースが用いられ得る。例えば、ブロードキャスト、マルチキャストおよびユニキャストネットワークによる通信を可能にするために、複数のネットワークインタフェースが用いられることが可能である。処理要件がより高い速度およびより多くの容量を指示する場合、クライアント1002およびサーバ1004によって必要とされる通信帯域幅をプールし、負荷分散し、他の形で増大させるために、分散ネットワークコントローラアーキテクチャが同様に利用されることが可能である。通信ネットワークは、限定ではないが、直接相互接続、セキュア化されたカスタム接続、プライベートネットワーク(例えば、社内イントラネット)、公衆ネットワーク(例えば、インターネット)、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとして動作しているミッション(OMNI)、広域ネットワーク(WAN)、無線ネットワーク、セルラーネットワークおよび他の通信ネットワークを含む有線および/または無線ネットワークのうちの任意の1つまたはそれらの組合せであり得る。

図11は、ユーザ要求通信システム100のようなマルチキャリアOFDMシステムで使用するためのデバイス1100の一実施形態を示している。デバイス1100は、例えば、ユーザ要求通信システム100を参照して説明したようなソフトウェアコンポーネント1160、および/または論理回路1135を実装することができる。論理回路1135は、ユーザ要求通信システム100について説明したオペレーションを実行するための物理回路を含み得る。図11に示すように、デバイス1100は、無線インタフェース1110と、ベースバンド回路1120と、コンピューティングプラットフォーム1130とを備え得るが、ただし実施形態は、この構成に限定されない。

デバイス1100は、完全に単一のデバイス内にあるなどの単一のコンピューティングエンティティにおいて、ユーザ要求通信システム100および/または論理回路1135について、その構造および/またはオペレーションの一部またはすべてを具体化することができる。あるいは、デバイス1100は、クライアントサーバアーキテクチャ、三層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムのような分散システムアーキテクチャを用いて、ユーザ要求通信システム100および/または論理回路1135について、その構造および/またはオペレーションの部分を複数のコンピューティングエンティティに分散させることができる。実施形態は、これに限定されない。

1つの実施形態では、無線インタフェース1110は、(例えば、相補型符号変調(CCK)および/または直交周波数分割多重(OFDM)シンボルを含む)シングルキャリアまたはマルチキャリア変調信号を送信および/または受信するように構成されたコンポーネントもしくはコンポーネントの組み合わせを有し得るが、ただし実施形態は、いずれかの特定の空中(over−the−air)インタフェースまたは変調方式に限定されない。無線インタフェース1110は、例えば、受信機1112、送信機1116、および/または周波数シンセサイザ1114を有し得る。無線インタフェース1110は、バイアスコントロール、水晶発振器、および/または1つまたは複数のアンテナ1118を有し得る。他の実施形態では、無線インタフェース1110は、必要に応じて、外部の電圧制御発振器(VCO)、弾性表面波フィルタ、中間周波数(IF)フィルタ、および/またはRFフィルタを使用することができる。可能なRFインタフェース構成は多様であるため、その広範な説明は省略する。

ベースバンド回路1120は、受信信号および/または送信信号を処理するために無線インタフェース1110と通信することができ、例えば、受信信号をダウンコンバートするためのアナログデジタル変換器1122、信号を送信用にアップコンバートするためのデジタルアナログ変換器1124を有し得る。更に、ベースバンド回路1120は、個々の受信/送信信号のPHYリンク層処理のためのベースバンドまたは物理層(PHY)処理回路1156を有し得る。ベースバンド回路1120は、例えば、メディアアクセス制御(MAC)/データリンク層処理のための処理回路1128を有し得る。ベースバンド回路1120は、例えば、1つまたは複数のインタフェース1134を介した処理回路1128および/またはコンピューティングプラットフォーム1130による通信のためのメモリコントローラ1132を有し得る。

いくつかの実施形態では、PHY処理回路1126は、無線フレームのような通信フレームを構築および/または分解するために、バッファメモリのような追加回路と組み合わせて、フレーム構築および/または検出モジュールを含み得る。代替的または追加的に、MAC処理回路1128は、これらの機能のうちのいくつかの処理を共有するか、またはこれらのプロセスをPHY処理回路1126とは独立に実行することができる。いくつかの実施形態では、MACおよびPHY処理を単一の回路に統合することができる。

コンピューティングプラットフォーム1130は、デバイス1100にコンピューティング機能を提供し得る。図示のように、コンピューティングプラットフォーム1130は、処理コンポーネント1140を有し得る。デバイス1100は、ベースバンド回路1120に対して追加的または代替的に、処理コンポーネント1140を用いて、ユーザ要求通信システム100および論理回路1135について、その処理オペレーションまたはロジックを実行することができる。処理コンポーネント1140(および/またはPHY 1126および/またはMAC 1128)は、各種ハードウェア要素、ソフトウェア要素、またはその両方の組み合わせを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、レジスタ、キャパシタ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含むことができる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、シンボル、またはそれらの任意の組合せを含むことができる。実施形態がハードウェア要素を用いて実施されるか、かつ/またはソフトウェア要素を用いて実施されるかを判断することは、所望の計算速度、パワーレベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度および他の設計または性能の制約等の任意の数の要因に従って、所与の実施態様にとって望ましいとおりに変動することができる。

コンピューティングプラットフォーム1130は、更に、他のプラットフォームコンポーネント1150を有し得る。他のプラットフォームコンポーネント1150は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント(例えば、デジタルディスプレイ)、パワーサプライなどのような、一般的な計算要素を含む。メモリユニットの例として、限定するものではないが、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリのようなポリマーメモリ、オーボニックメモリ(ovonic memory)、相変化または強誘電体メモリ、シリコン/酸化膜/窒化膜/酸化膜/シリコン(SONOS)メモリ、磁気または光カード、独立ディスクの冗長アレイ(RAID)ドライブのようなデバイスアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報を保存するのに適した他の任意のタイプの記憶媒体のような、1つまたは複数のより高速のメモリユニットの形態の各種タイプのコンピュータ可読およびマシン可読記憶媒体を含むことができる。

デバイス1100は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン(M2M)デバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話、デジタル電話、携帯電話、ユーザデバイス、電子書籍リーダ、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家庭用電子機器、プログラム可能な家庭用電子機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、ノードB、発展型ノードB(eNB)、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはその組み合わせであり得る。従って、本明細書に記載のデバイス1100の機能および/または具体的な構成は、要求に応じて適宜、デバイス1100の種々の実施形態に含むことも、または省くこともできる。いくつかの実施形態では、デバイス1100は、3GPP LTE仕様および/またはWMAN用のIEEE1102.16規格および/または本明細書で引用される他の広帯域無線ネットワークの1つまたは複数に関連したプロトコルおよび周波数に準拠するように構成することができるが、実施形態は、この点に関して限定されない。

デバイス1100の実施形態は、単入力単出力(SISO)アーキテクチャを用いて実現することができる。一方、いくつかの実現形態では、ビームフォーミングまたは空間分割多重アクセス(SDMA)のための適応アンテナ技術、および/またはMIMO通信技術を用いた送信および/または受信用のマルチアンテナ(例えば、アンテナ1118)を備えることができる。

デバイス1100のコンポーネントおよび機能は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲート、および/またはシングルチップアーキテクチャの任意の組み合わせを用いて実装することができる。更に、デバイス1100の機能は、必要に応じて適宜、マイクロコントローラ、プログラマブルロジックアレイ、および/またはマイクロプロセッサ、またはその任意の組み合わせを用いて実装することができる。なお、本明細書において、ハードウェア、ファームウェア、および/またはソフトウェア要素を、「ロジック」または「回路」と総称または個称する場合があるということに留意すべきである。

図11のブロック図に示す例示的なデバイス1100は、多くの可能性のある実現形態の1つの機能的説明例を表し得るということは理解されるべきである。従って、添付の図面に示す機能ブロックの分割、欠落、または組み込みは、必ずしも、実施形態における、それらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェア、および/または要素の分割、欠落、または組み込みを推測させるものではない。

コンピュータ実装方法は、ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信するステップと、対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するステップと、対話サンプルリポジトリを提示することに応答して、自然言語機械学習コンポーネントからシーケンスモデルを受信するステップと、シーケンスモデルに基づいてユーザ対ボット会話を実行するステップと、を含むことができる。

コンピュータ実施方法は、ユーザ対ボット会話がメッセージングセッションに従って描写され、メッセージングセッションの中断を検出するステップを更に含むことができる。
コンピュータ実装方法は、ユーザ対ボット会話を実行するステップが、シーケンスモデルをユーザ要求コンテキスト、ユーザ対ボット会話履歴、および1以上のユーザメッセージの意味分析情報に適用するステップを含むことを更に含むことができる。

コンピュータ実装方法は、ユーザ対ボット会話を実行するステップを更に含み、ユーザ対ボット会話を実行するステップはクライアントデバイスからユーザメッセージを受信するステップと、ユーザメッセージおよびシーケンスモデルに基づいてボット応答を生成するステップとを含むことができる。

コンピュータ実装方法は、ボット応答メッセージを含むボット応答を更に含み、ボット応答メッセージをクライアントデバイスに送信するステップを更に含むことができる。
コンピュータ実装方法は、ボットアクションを含むボット応答を更に含み、ボットアクションを実行するステップを更に含むことができる。

コンピュータ実装方法は、ボットアクションを含むボット応答を更に含み、ボットアクションをボットアプリケーションに送信するステップであって、ボットアクションは、ユーザ要求コンテキストに関連してボットアプリケーションに送信されるステップと、ボットアプリケーションから更新されたユーザ要求コンテキストを受信するステップとを更に含むことができる。

コンピュータ実行方法は、ユーザメッセージおよびシーケンスモデルに基づいてボット応答を生成するステップを更に含み、ボット応答を生成するステップはユーザメッセージに関する意味分析情報を生成するステップと、意味分析情報にシーケンスモデルを適用することに基づいてボット応答を生成するステップとを含むことができる。

コンピュータ実装方法は、現在のユーザ要求コンテキストに関連してシーケンスモデルを用いてユーザメッセージを処理することに基づいて、更新されたユーザ要求コンテキストを生成するステップを更に含むことができる。

コンピュータ実装方法は、現在のユーザ要求コンテキストに関連してシーケンスモデルを用いてユーザメッセージを処理することに基づいてユーザ要求コンテキスト更新を生成するステップと、ボットアプリケーションにユーザ要求コンテキスト更新を送信するステップと、ボットアプリケーションから更新されたユーザ要求コンテキストを受信するステップとを更に含むことができる。

コンピュータ実装方法は、ボット応答を生成することを更に含み、ボット応答を生成するステップは複数の推奨ボット応答を受信し、複数の推奨ボット応答のそれぞれが応答ランク付けスコアに関連するステップと、複数の推奨ボット応答の1以上の無効なボット応答を除外して、複数の後処理された推奨ボット応答を生成するステップと、ボット応答を、応答ランク付けスコアが最も高い後処理ボット応答の推奨ボット応答として選択するステップとを含むことができる。

コンピュータ実装方法は、推奨ボットアクションの完全なコンテキストの欠如に基づいて除外された1以上の無効なボット応答を更に含むことができる。
コンピュータ実装方法は、複数の推奨ボット応答のそれぞれについての一貫性スコアに基づいて決定された複数の推奨ボット応答のそれぞれについての応答ランク付けスコアを更に含むことができる。

コンピュータ実装方法は、一貫性モデルに基づいて決定された複数の推奨ボット応答のそれぞれに対する一貫性スコアを更に含むことができ、一貫したチャット会話リポジトリに基づいて一貫性モデルを生成するステップを更に含むことができる。

コンピュータ実装方法は、ユーザ対ボット会話を実行するステップが、シーケンスモデルに基づいてユーザ要求コンテキストの反復的な更新をするステップを含むことを更に含むことができる。

コンピュータ実装方法は、開発者が定義した構造化データオブジェクトに従って記憶されたユーザ要求コンテキストを更に含むことができる。
コンピュータ実施方法は、ユーザ対ボット会話を実行するステップが、ユーザ要求コンテキストを生成するためにメッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換するステップを含むことを更に含むことができる。

コンピュータ実行方法は、ユーザ対ボット会話を実行するステップが、推論されたユーザ要求アクションを生成するためにメッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換するステップを含むことを更に含むことができる。

コンピュータ実装方法は、ユーザ要求コンテキストに基づいて推論されたユーザ要求アクションを実行するステップを更に含むことができる。
コンピュータ実装方法は、アプリケーションプログラムインタフェース呼出しに基づいて定義された推論されたユーザ要求アクションを更に含むことができ、アプリケーションプログラムインタフェース呼出しの1以上のパラメータがユーザ要求コンテキストに基づいて定義される。

コンピュータ実装方法は、ユーザ対ボット対話のサンプルの1以上が、開発者が起草したユーザ対ボット仮想対話を含み、開発者コンソールを介して開発者が起草した1以上のユーザ対ボット対話を受信するステップを更に含むことができる。

コンピュータ実施方法は、ユーザ対ボット対話のサンプルの1以上が、使用ベースのユーザ対ボット対話を含むことを更に含むことができる。
コンピュータ実装方法は、製造段階で実行されたユーザ対ボット会話から生成された1以上の製造ユーザ対ボット対話を受信するステップと、開発者コンソールを介して1以上の製造ユーザ対ボット対話を表示するステップと、開発者コンソールを介して1以上の製造ユーザ対ボット対話の開発者による検証を受信して使用ベースのユーザ対ボット対話を生成するステップと、1以上の使用ベースのユーザ対ボット対話の開発者による検証を受信することに応答して、1以上の使用ベースのユーザ対ボット対話を対話サンプルリポジトリに含めるステップと、を含むことができる。

コンピュータ実装方法は、開発者コンソールを介して1以上の製造ユーザ対ボット対話の開発者による1以上の修正を受信して、使用ベースのユーザ対ボット対話を生成するステップを更に含むことができる。

コンピュータ実装方法は、開発者コンソールを介して1以上の製造ユーザ対ボット対話の開発者による1以上の注釈を受信して、使用ベースのユーザ対ボット対話を生成するステップと、開発者による1以上の注釈を1以上の使用ベースのユーザ対ボット対話とともに対話サンプルリポジトリに含めるステップとを更に含むことができる。

コンピュータ実装方法は、コンテキスト更新注釈を含む開発者による1以上の注釈を更に含むことができる。
コンピュータ実装方法は、抽出された教師なし情報を1以上の推奨ボット応答に組み込むことを含むシーケンスモデルに基づいてユーザ対ボット会話を実行するステップを更に含むことができる。

装置は、プロセッサ回路と、ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するようにプロセッサ回路上で動作し、対話サンプルリポジトリを提示することに応答して、自然言語機械学習コンポーネントからのシーケンスモデルを受信する対話処理コンポーネントと、ユーザクライアントとのユーザメッセージ交換を実行してシーケンスモデルに基づいてユーザ対ボット会話を実行するように動作可能なクライアント通信コンポーネントと、ボットアプリケーションから対話サンプルリポジトリを受信しかつボットアプリケーションとのボット情報交換を実行してシーケンスモデルに基づいてユーザ対ボット会話を実行するように動作可能なボットアプリケーションインタフェースコンポーネントとを含むことができ、シーケンスモデルに基づいてユーザ対ボット会話を実行することが、シーケンスモデルを、ユーザ要求コンテキスト、ユーザ対ボット会話履歴、1以上のユーザメッセージの意味分析情報、および1以上のユーザメッセージの抽出された教師なし情報に適用することを含む。この装置は、本明細書に記載のコンピュータ実装方法のいずれかを実施するように動作可能であり得る。

少なくとも1つのコンピュータ可読記録媒体は、実行されると、本明細書に記載のコンピュータ実装方法のいずれかをシステムに実行させる命令を含むことができる。
いくつかの実施形態は、「1つの実施形態」または「実施形態」という表現と、それらの派生語とを用いて説明され得る。これらの用語は、実施形態に関して説明される特定の特徴、構造または特性が少なくとも1つの実施形態に含まれることを意味している。本明細書の様々な箇所に現れる「1つの実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指しているわけではない。更に、いくつかの実施形態は、「結合された」および「接続された」という表現と、それらの派生語とを用いて説明され得る。これらの表現は必ずしも互いの同義語として意図されているわけではない。例えば、いくつかの実施形態は、「接続された」および/または「結合された」という表現を用いることにより、2つ以上の要素が直接物理的にまたは電気的に相互接触していることを示すように説明され得る。一方、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、それでも互いに協働または相互作用していることを意味する場合もある。

本明細書において用いられる表記および専門用語を全体的に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点で表され得る。これらのプロシージャに関する記載および表現は、当業者によって、その技術分野における他の当業者に自身の研究の本質を最も効果的に伝えるために用いられている。

プロシージャとは、ここでは、また一般的に、所望の結果をもたらすオペレーションの首尾一貫したシーケンスであると考えられる。これらのオペレーションは、物理的量の物理的操作を必要とするものである。必須ではないが通例、これらの量は、記憶、転送、組合せ、比較および他の形で操作されることが可能な電気信号、磁気信号または光信号の形態をとる。場合によっては、主に一般的用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、語、数等と呼ぶことが好都合であることがわかっている。しかしながら、これらの用語および同様の用語は全て適切な物理的量に関連付けられ、これらの量に適用される好都合なラベルにすぎないことに留意されたい。

更に、実行される操作は、多くの場合、人間のオペレータによって実行される知的オペレーションに一般的に関連付けられる、追加または比較等の用語で参照される。1つまたは複数の実施形態の一部を形成する、本明細書に説明されるオペレーションのいずれにおいても、人間のオペレータのそのような能力は必要でないか、ほとんどの場合に望ましくない。むしろ、オペレーションは機械オペレーションである。様々な実施形態のオペレーションを実行するための有用な機械は、汎用デジタルコンピュータまたは同様のデバイスを含む。

様々な実施形態は、これらのオペレーションを実行するための装置またはシステムにも関する。この装置は、必要とされる目的のために特に構築されることが可能であるか、またはコンピュータに記憶されるコンピュータプログラムによって選択的にアクティベートまたは再構成される汎用コンピュータを含むことができる。本明細書において提示されるプロシージャは、特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用機械は、本明細書における教示に関連して書かれたプログラムと共に用いられ得るか、または、必要とされる方法ステップを実行する、より特殊な装置を構築することが好都合であるとわかる場合がある。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるであろう。

本開示の要約書は、読み手が技術的開示の本質を迅速に理解できるようにするために提供されていることを強調しておく。本要約書は、特許請求の範囲の範囲又は意味を解釈又は限定するために使用するものではないとの理解に基づいて提出されている。更に、上記した「発明を実施するための形態」においては、開示を効率化するために様々な特徴がまとめて単一の実施形態にされていることを見てとることができる。このような開示方法は、特許請求される実施形態が各請求項に明示的に記された特徴以外のものを必要とする意図を表していると解釈されるべきではない。むしろ、以下の特許請求の範囲が表しているように、本発明の主題は、開示されている単一の実施形態の全特徴よりも少ない特徴にある。このため、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれ、各請求項は独立した1つの実施形態に基づく。添付の特許請求の範囲において、用語「含む(including)」および「において(in which)」は、それぞれの用語「含む(comprising)」および「において(wherein)」の平易な英語の同義語として用いられる。「第1の」、「第2の」、「第3の」等の用語は単にラベルとして用いられており、それらの対象物に数的限定を課すことを意図したものではない。

上記で説明したものは、開示されているアーキテクチャの例を含む。当然ながら、コンポーネントおよび/または方法の全ての考え得る組合せを記載することは不可能であるが、当業者であれば、多くの更なる組合せおよび置き換えが可能であることを認識することができる。したがって、新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内にある全ての変化、変更および変形を包含することが意図される。

Claims (20)

  1. ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信するステップと、
    前記対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するステップと、
    前記対話サンプルリポジトリを提示することに応答して、前記自然言語機械学習コンポーネントからシーケンスモデルを受信するステップと、
    前記シーケンスモデルに基づいてユーザ対ボット対話を実行するステップと、を含むコンピュータ実装方法。
  2. 前記ユーザ対ボット会話を実行するステップは、前記シーケンスモデルを、ユーザ要求コンテキスト、ユーザ対ボット会話履歴、および1以上のユーザメッセージの意味分析情報に適用することを含む、請求項1に記載の方法。
  3. 前記ユーザ対ボット会話を実行するステップは、クライアントデバイスからユーザメッセージを受信し、前記ユーザメッセージおよび前記シーケンスモデルに基づいて、ボットアクションを含むボット応答を生成するステップを含み、
    前記ボットアクションをボットアプリケーションに送信するステップであって、前記ボットアクションは、ユーザ要求コンテキストに関連して前記ボットアプリケーションに送信されるステップと、
    前記ボットアプリケーションから更新されたユーザ要求コンテキストを受信するステップとを更に含む、請求項1に記載の方法。
  4. 前記ユーザ対ボット会話を実行するステップは、クライアントデバイスからユーザメッセージを受信し、前記ユーザメッセージおよび前記シーケンスモデルに基づいてボット応答を生成するステップを含み、前記方法は、
    現在のユーザ要求コンテキストに関連して前記シーケンスモデルを用いて前記ユーザメッセージを処理することに基づいて更新されたユーザ要求コンテキストを生成するステップを更に含む、請求項1に記載の方法。
  5. 前記ユーザ対ボット会話を実行するステップは、メッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換してユーザ要求コンテキストおよび推論されたユーザ要求アクションを生成するステップを含み、推論された前記ユーザ要求アクションが、アプリケーションプログラムインタフェース呼出しに基づいて定義され、前記アプリケーションプログラムインタフェース呼出しの1以上のパラメータが、前記ユーザ要求コンテキストに基づいて定義される、請求項1に記載の方法。
  6. 前記ユーザ対ボット対話のサンプルの1以上は、開発者が起草したユーザ対ボット仮想対話を含み、前記方法は、
    開発者コンソールを介して、開発者が起草した前記1以上のユーザ対ボット対話を受信するステップを更に含む、請求項1に記載の方法。
  7. 前記ユーザ対ボット対話のサンプルの1以上は、使用ベースのユーザ対ボット対話を含み、前記方法は、
    製造段階で実行されたユーザ対ボット会話から生成された1以上の製造ユーザ対ボット対話を受信するステップと、
    開発者コンソールを介して前記1以上の製造ユーザ対ボット対話を表示するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボットの対話に関する開発者による1以上修正を受信して、前記使用ベースのユーザ対ボット対話を生成するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による検証を受信して、前記使用ベースのユーザ対ボット対話を生成するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による1以上の注釈を受信して、前記使用ベースのユーザ対ボット対話を生成するステップであって、開発者による前記1以上の注釈はコンテキスト更新注釈を含む、ステップと、
    前記1以上の使用ベースのユーザ対ボット対話の前記開発者による検証を受信することに応答して、前記1以上の使用ベースのユーザ対ボット対話を前記対話サンプルリポジトリに含めるステップと、
    開発者による前記1以上の注釈を、前記1以上の使用ベースのユーザ対ボット対話とともに前記対話サンプルリポジトリに含めるステップとを更に含む、請求項1に記載の方法。
  8. 前記ユーザ対ボット会話を実行するステップは、
    抽出された教師なし情報を1以上の推奨ボット応答に組み込むステップを含む、請求項1に記載の方法。
  9. プロセッサ回路と、
    ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するように前記プロセッサ回路上で動作し、前記対話サンプルリポジトリを提示することに応答して、前記自然言語機械学習コンポーネントからシーケンスモデルを受信する対話処理コンポーネントと、
    ユーザクライアントとのユーザメッセージ交換を実行して、前記シーケンスモデルに基づいてユーザ対ボット会話を実行するように動作可能なクライアント通信コンポーネントと、
    ボットアプリケーションから前記対話サンプルリポジトリを受信しかつ前記ボットアプリケーションとのボット情報交換を実行して、前記シーケンスモデルに基づいて前記ユーザ対ボット会話を実行するように動作可能なボットアプリケーションインタフェースコンポーネントとを含み、
    前記シーケンスモデルに基づいて前記ユーザ対ボット会話を実行することが、前記シーケンスモデルを、ユーザ要求コンテキスト、ユーザ対ボット会話履歴、1以上のユーザメッセージの意味分析情報、および前記1以上のユーザメッセージの抽出された教師なし情報に適用することを含む、装置。
  10. 前記ユーザクライアントとの前記ユーザメッセージ交換は、クライアントデバイスからユーザメッセージを受信することを含み、前記ユーザ対ボット会話は、前記ユーザメッセージおよび前記シーケンスモデルに基づくボット応答を含み、前記ボット応答は、ボットアクションを含み、
    前記ボットアプリケーションインタフェースコンポーネントが前記ボットアクションを前記ボットアプリケーションに送信するように動作し、前記ボットアクションがユーザ要求コンテキストに関連して前記ボットアプリケーションに送信され、前記ボットアプリケーションから更新されたユーザ要求コンテキストを受信することを更に含む、請求項9に記載の装置。
  11. 前記ユーザ対ボット会話を実行することは、クライアントデバイスからユーザメッセージを受信し、前記ユーザメッセージおよび前記シーケンスモデルに基づいてボット応答を生成することを含み、
    前記対話処理コンポーネントは、現在のユーザ要求コンテキストに関連して前記シーケンスモデルを用いて前記ユーザメッセージを処理することに基づいて、更新されたユーザ要求コンテキストを生成するように動作可能であることを更に含む、請求項9に記載の装置。
  12. 前記ユーザ対ボット会話を実行することは、メッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換して前記ユーザ要求コンテキストおよび推論されたユーザ要求アクションを生成することを含み、推論された前記ユーザ要求アクションが、アプリケーションプログラムインタフェース呼出しに基づいて定義され、前記アプリケーションプログラムインタフェース呼出しの1以上のパラメータが、前記ユーザ要求コンテキストに基づいて定義される、請求項9に記載の装置。
  13. 前記ユーザ対ボット対話のサンプルの1以上は、開発者が起草したユーザ対ボット仮想対話を含み、
    開発者が起草した前記1以上のユーザ対ボット対話を受信するように動作可能な開発者コンソールを更に含む、請求項9に記載の装置。
  14. 前記ユーザ対ボット対話のサンプルの1以上は、使用ベースのユーザ対ボット対話を含み、
    製造段階で実行されたユーザ対ボット会話から生成された1以上の製造ユーザ対ボット対話を受信し、開発者コンソールを介して前記1以上の製造ユーザ対ボット対話を表示し、前記開発者コンソールを介して、前記1以上の製造ユーザ対ボットの対話に関する開発者による1以上の修正を受信して、前記使用ベースのユーザ対ボット対話を生成し、前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による検証を受信して、前記使用ベースのユーザ対ボット対話を生成し、前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による1以上の注釈を受信して、前記使用ベースのユーザ対ボット対話を生成し、開発者による前記1以上の注釈はコンテキスト更新注釈を含むように動作可能な開発者コンソールと、
    前記1以上の使用ベースのユーザ対ボット対話の前記開発者による検証を受信することに応答して、前記1以上の使用ベースのユーザ対ボット対話を前記対話サンプルリポジトリに含め、開発者による前記1以上の注釈を、前記1以上の使用ベースのユーザ対ボット対話とともに前記対話サンプルリポジトリに含めるように動作可能な対話処理コンポーネントとを更に含む、請求項9に記載の装置。
  15. 命令を含む少なくとも1つのコンピュータ可読記録媒体であって、前記命令が実行されるとシステムに、
    ユーザ対ボット対話の複数のサンプルを含む対話サンプルリポジトリを受信するステップと、
    前記対話サンプルリポジトリを自然言語機械学習コンポーネントに提示するステップと、
    前記対話サンプルリポジトリを提示することに応答して、前記自然言語機械学習コンポーネントからシーケンスモデルを受信するステップと、
    前記シーケンスモデルに基づいてユーザ対ボット会話を実行するステップであって、前記シーケンスモデルを、ユーザ要求コンテキスト、ユーザ対ボット会話履歴、1以上のユーザメッセージの意味分析情報、および前記1以上のユーザメッセージの抽出された教師なし情報に適用することを含むステップと、を行わせる、コンピュータ可読記録媒体。
  16. 前記ユーザ対ボット会話を実行するステップは、クライアントデバイスからユーザメッセージを受信し、前記ユーザメッセージおよび前記シーケンスモデルに基づいて、ボットアクションを含むボット応答を生成すステップを含み、前記命令が実行されるとシステムに、
    前記ボットアクションをボットアプリケーションに送信するステップであって、前記ボットアクションは、ユーザ要求コンテキストに関連して前記ボットアプリケーションに送信されるステップと、
    前記ボットアプリケーションから更新されたユーザ要求コンテキストを受信するステップとを更に行わせる、請求項15に記載のコンピュータ可読記録媒体。
  17. 前記ユーザ対ボット会話を実行するステップは、クライアントデバイスからユーザメッセージを受信し、前記ユーザメッセージおよび前記シーケンスモデルに基づいてボット応答を生成するステップを含み、前記命令が実行されるとシステムに、
    現在のユーザ要求コンテキストに関連して前記シーケンスモデルを用いて前記ユーザメッセージを処理することに基づいて更新されたユーザ要求コンテキストを生成するステップを更に行わせる、請求項15に記載のコンピュータ可読記録媒体。
  18. 前記ユーザ対ボット会話を実行するステップは、メッセージングシステムを介して一連のユーザメッセージおよびボットメッセージを交換して前記ユーザ要求コンテキストおよび推論されたユーザ要求アクションを生成するステップを含み、推論された前記ユーザ要求アクションが、アプリケーションプログラムインタフェース呼出しに基づいて定義され、前記アプリケーションプログラムインタフェース呼出しの1以上のパラメータが、前記ユーザ要求コンテキストに基づいて定義される、請求項15に記載のコンピュータ可読記録媒体。
  19. 前記ユーザ対ボット対話のサンプルの1以上は、開発者が起草したユーザ対ボット仮想対話を含み、前記命令が実行されるとシステムに、開発者コンソールを介して、開発者が起草した前記1以上のユーザ対ボット対話を受信するステップを行わせる、請求項15に記載のコンピュータ可読記録媒体。
  20. 前記ユーザ対ボット対話のサンプルの1以上は、使用ベースのユーザ対ボット対話を含み、前記命令が実行されるとシステムに、
    製造段階で実行されたユーザ対ボット会話から生成された1以上の製造ユーザ対ボット対話を受信するステップと、
    開発者コンソールを介して前記1以上の製造ユーザ対ボット対話を表示するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボットの対話に関する開発者による1以上の修正を受信して、前記使用ベースのユーザ対ボット対話を生成するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による検証を受信して、前記使用ベースのユーザ対ボット対話を生成するステップと、
    前記開発者コンソールを介して前記1以上の製造ユーザ対ボット対話の開発者による1以上の注釈を受信して、前記使用ベースのユーザ対ボット対話を生成するステップであって、開発者による前記1以上の注釈はコンテキスト更新注釈を含む、ステップと、
    前記1以上の使用ベースのユーザ対ボット対話の前記開発者による検証を受信することに応答して、前記1以上の使用ベースのユーザ対ボット対話を前記対話サンプルリポジトリに含めるステップと、
    開発者による前記1以上の注釈を、前記1以上の使用ベースのユーザ対ボット対話とともに前記対話サンプルリポジトリに含めるステップとを更に行わせる、請求項15に記載のコンピュータ可読記録媒体。
JP2019503901A 2016-04-11 2017-03-16 会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術 Pending JP2019518292A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US201662320869P true 2016-04-11 2016-04-11
US62/320,869 2016-04-11
US15/380,112 US20170293681A1 (en) 2016-04-11 2016-12-15 Techniques to respond to user requests using natural-language machine learning based on example conversations
US15/380,112 2016-12-15
PCT/US2017/022700 WO2017180286A1 (en) 2016-04-11 2017-03-16 Techniques to respond to user requests using natural-language machine learning based on example conversations

Publications (1)

Publication Number Publication Date
JP2019518292A true JP2019518292A (ja) 2019-06-27

Family

ID=59998104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019503901A Pending JP2019518292A (ja) 2016-04-11 2017-03-16 会話サンプルに基づいて自然言語機械学習を使用してユーザ要求に応答する技術

Country Status (5)

Country Link
US (2) US20170293681A1 (ja)
JP (1) JP2019518292A (ja)
KR (1) KR20180125031A (ja)
CN (1) CN109074402A (ja)
WO (1) WO2017180286A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068174B2 (en) 2012-08-02 2018-09-04 Artifical Solutions Iberia S.L. Hybrid approach for developing, optimizing, and executing conversational interaction applications
WO2017112786A1 (en) 2015-12-21 2017-06-29 Google Inc. Automatic suggestions for message exchange threads
US10162817B2 (en) * 2016-06-14 2018-12-25 Microsoft Technology Licensing, Llc Computer messaging bot creation
US10360906B2 (en) 2016-06-14 2019-07-23 Microsoft Technology Licensing, Llc Computer proxy messaging bot
US10387461B2 (en) 2016-08-16 2019-08-20 Google Llc Techniques for suggesting electronic messages based on user activity and other context
US10015124B2 (en) * 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
CN109952572A (zh) 2016-09-20 2019-06-28 谷歌有限责任公司 基于消息贴纸的建议响应
DE112017003594T5 (de) * 2016-09-20 2019-04-25 Google Llc Bot, der Genehmigung zum Zugriff auf Daten anfordert
US20180090135A1 (en) * 2016-09-23 2018-03-29 Microsoft Technology Licensing, Llc Conversational Bookmarks
CA182556S (en) 2016-10-07 2018-09-04 Siemens Ag Transformer
US10361975B2 (en) * 2016-10-10 2019-07-23 Microsoft Technology Licensing, Llc Messaging bot selection in multi-bot chat sessions
US10437841B2 (en) * 2016-10-10 2019-10-08 Microsoft Technology Licensing, Llc Digital assistant extension automatic ranking and selection
USD817993S1 (en) 2016-10-27 2018-05-15 Apple Inc. Display screen or portion thereof with graphical user interface
US10416846B2 (en) 2016-11-12 2019-09-17 Google Llc Determining graphical element(s) for inclusion in an electronic communication
US10146768B2 (en) 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
US10455378B2 (en) 2017-05-09 2019-10-22 ROKO Labs, LLC System and method for generating analytics for conversations within applications
US20180331979A1 (en) * 2017-05-09 2018-11-15 ROKO Labs, LLC System and method for creating conversations to launch within applications
US10289456B2 (en) * 2017-06-01 2019-05-14 International Business Machines Corporation Software bot conflict-resolution service agent
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10599402B2 (en) * 2017-07-13 2020-03-24 Facebook, Inc. Techniques to configure a web-based application for bot configuration
US20190089655A1 (en) * 2017-09-15 2019-03-21 Microsoft Technology Licensing, Llc Capturing and Leveraging Signals Reflecting BOT-to-BOT Delegation
US10594817B2 (en) * 2017-10-04 2020-03-17 International Business Machines Corporation Cognitive device-to-device interaction and human-device interaction based on social networks
US10691764B2 (en) * 2017-10-23 2020-06-23 International Business Machines Corporation Search engine optimization techniques
US20190140986A1 (en) * 2017-11-09 2019-05-09 International Business Machines Corporation Chatbot orchestration
US20190325084A1 (en) * 2018-04-20 2019-10-24 Facebook, Inc. Generating Personalized Content Summaries for Users
US20190340527A1 (en) * 2018-05-07 2019-11-07 Microsoft Technology Licensing, Llc Graphical user interface features for updating a conversational bot

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295981B1 (en) * 2004-01-09 2007-11-13 At&T Corp. Method for building a natural language understanding model for a spoken dialog system
US20070168480A1 (en) * 2006-01-13 2007-07-19 Microsoft Corporation Interactive Robot Creation
US8630961B2 (en) * 2009-01-08 2014-01-14 Mycybertwin Group Pty Ltd Chatbots
US8798999B2 (en) * 2009-05-01 2014-08-05 Alpine Electronics, Inc. Dialog design tool and method
KR101359718B1 (ko) * 2012-05-17 2014-02-13 포항공과대학교 산학협력단 대화 관리 시스템 및 방법
US20140122618A1 (en) * 2012-10-26 2014-05-01 Xiaojiang Duan User-aided learning chatbot system and method
US10274911B2 (en) * 2015-06-25 2019-04-30 Intel Corporation Conversational interface for matching text of spoken input based on context model
US9715498B2 (en) * 2015-08-31 2017-07-25 Microsoft Technology Licensing, Llc Distributed server system for language understanding
US20170132199A1 (en) * 2015-11-09 2017-05-11 Apple Inc. Unconventional virtual assistant interactions

Also Published As

Publication number Publication date
US20170293834A1 (en) 2017-10-12
CN109074402A (zh) 2018-12-21
US20170293681A1 (en) 2017-10-12
WO2017180286A1 (en) 2017-10-19
KR20180125031A (ko) 2018-11-21

Similar Documents

Publication Publication Date Title
US10409381B2 (en) Gestures, interactions, and common ground in a surface computing environment
US10296547B2 (en) Client-side modification of search results based on social network data
US10050879B2 (en) Techniques for selecting content based on network conditions
US20180152396A1 (en) Designating Automated Agents as Friends in Social Network Service
US10142279B2 (en) Method and system for presenting a listing of message logs
TWI641955B (zh) 用於使用者體驗的方法、系統及電腦可讀取儲存媒體
AU2018206697B2 (en) Authentication of service requests initiated from a social networking site
US9819561B2 (en) System and methods for facilitating object assignments
US8429103B1 (en) Native machine learning service for user adaptation on a mobile platform
KR101902037B1 (ko) 조정가능한 통지
US20150019729A1 (en) Use of information channels to provide communications in a virtual environment
CN103797887B (zh) 用于多重个性支持和动态个性选择的方法和装置
US9003556B2 (en) Techniques for in-app user data authorization
JP5917604B2 (ja) 電話機への、プレゼンスおよびソーシャルネットワーキング情報の提供
US9392039B2 (en) Method and apparatus for implementing user relationship in social network application
US8700735B1 (en) Multi-level cache with synch
US8425291B2 (en) Game builder for mobile device-based games
US9148394B2 (en) Systems and methods for user interface presentation of virtual agent
KR20170070094A (ko) 음성 및 연결 플랫폼
KR20180135097A (ko) 통신들 및 관련 기능들의 채팅―기반 지원
US20170192799A1 (en) Method and System for Embedded Personalized Communication
CN106465124B (zh) 在无线网络中的设备隔离
WO2016112056A1 (en) Protecting private information in input understanding system
US20140156833A1 (en) System and method for automatically triggered synchronous and asynchronous video and audio communications between users at different endpoints
US9112928B2 (en) Method and apparatus for automatic loading of applications

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191211