(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】ダイアログフローをナビゲートするための機械学習ツール
(51)【国際特許分類】
G06Q 10/06 20230101AFI20240508BHJP
【FI】
G06Q10/06
(21)【出願番号】P 2020529432
(86)(22)【出願日】2019-10-04
(86)【国際出願番号】 US2019054643
(87)【国際公開番号】W WO2020086234
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-03
(32)【優先日】2018-10-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】パンチャンガム,キラン・ブイ
(72)【発明者】
【氏名】ロニアル,サンディヤ
(72)【発明者】
【氏名】ビジャヤン,サジート
【審査官】野元 久道
(56)【参考文献】
【文献】国際公開第2017/218560(WO,A1)
【文献】特開2018-160088(JP,A)
【文献】米国特許第10013416(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするための方法であって、前記方法は、
ユーザと訓練されたインテリジェンスボットとの間のチャットセッションの開始後に、前記ユーザから1つ以上の発話を受信するステップと、
前記訓練されたインテリジェンスボットを用いて前記発話を処理することにより、複数の予め定められたインテントのうちのあるインテントを解決するステップとを含み、前記インテリジェンスボットは、ユーザの発話から、予め定められたインテントを、前記予め定められたインテントの各々に対応付けられた訓練データに基づいて解決するように訓練され、
前記解決したインテントに対応付けられた、予め定められたダイアログフローを、前記インテリジェンスボットを用いてナビゲートするステップを含み、前記インテリジェンスボットは、前記ユーザにまたは前記チャットセッションに対応付けられたコンテキスト変数を用いて前記ユーザを前記ダイアログフローを通してガイドし、
前記ダイアログフローの前記ナビゲートまたは前記コンテキスト変数のうちの1つ以上に基づいて生成された取り出し要求を用いて前記インテリジェンスボットが取り出した企業データを前記ユーザに提供するステップ
を含み、前記企業データは、階層的多次元企業データモデルを含み、
前記予め定められたダイアログフローのナビゲートに基づくユーザ入力に応じてバッチプロセスをトリガするステップを含み、前記バッチプロセスは、前記階層的多次元企業データモデルからのデータを使用して一連の計算を実行し、前記バッチプロセスは、前記ダイアログフローをナビゲートしている間に前記ユーザーによって修正された前記階層的多次元企業データモデルからの1つまたは複数のデータ値を使用する、方法。
【請求項2】
前記解決したインテントに対応付けられた前記訓練データは、前記解決したインテントを示すユーザ発話の複数の例を含む、請求項1に記載の方法。
【請求項3】
前記予め定められたダイアログフローは、前記ユーザからの前記取り出し要求のパラメータを取得するように前記インテリジェンスボットを構成し、前記パラメータは、前記予め定められたダイアログフローに対応付けられた前記解決したインテントに基づく、請求項1または2に記載の方法。
【請求項4】
前記ダイアログフローは、前記ダイアログフローについての状態、遷移、および変数を含むデータ定義ドキュメントによって定められる、請求項3に記載の方法。
【請求項5】
前記予め定められたダイアログフローをナビゲートするステップは、前記取り出し要求のパラメータを入力するよう前記ユーザを促す前記インテリジェンスボットから予め設定されたメッセージを生成するステップを含む、請求項4に記載の方法。
【請求項6】
前記予め設定されたメッセージは、前記ダイアログフローを定める前記データ定義ドキュメント内の状態間の遷移中に前記インテリジェンスボットが生成する、請求項5に記載の方法。
【請求項7】
複数の前記状態のうちの少なくとも第1の状態から複数の前記状態のうちの第2の状態に遷移することは、前記インテリジェンスボットが前記第1の状態で生成した第1の予め設定されたメッセージに応じた前記ユーザからの入力に基づく、請求項6に記載の方法。
【請求項8】
前記データ定義ドキュメントは、前記第1の予め設定されたメッセージに応じた前記ユーザからの入力が第1のカテゴリのときは前記第1の状態から前記第2の状態への遷移を定め、前記第1の予め設定されたメッセージに応じた前記ユーザからの入力が第2のカテゴリのときは前記第1の状態から第3の状態への遷移を定める、請求項7に記載の方法。
【請求項9】
前記バッチプロセスは、前記予め定められたダイアログフローのナビゲート中に受けたユーザ承認、または、前記予め定められたダイアログフローのナビゲート中に受けた企業情報に対するユーザ編集に応じて決まる、請求項
1~8のいずれか1項に記載の方法。
【請求項10】
訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのシステムであって、前記システムは、
命令を格納するメモリと、
前記メモリに格納される命令を実行して請求項1~
9のいずれか1項に記載の方法を実施するプロセッサとを備える、システム。
【請求項11】
プロセッサによって実行されると、前記プロセッサに、請求項1~
9のいずれか1項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2018年10月22日出願の米国仮特許出願第62/748,929号に基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
【0002】
分野
本開示の実施形態は、概してダイアログフローをナビゲートするための機械学習ツールに関する。
【背景技術】
【0003】
背景
人工知能(「AI」)の実装は、教師あり学習に基づく予測から顔認識まで、具体的な利点を生み出してきた。しかしながら、システムごとに異なることが多い実装固有の問題等の、AIにまつわる課題は残っている。たとえば、AIシステムを用いた人間と機械との対話は依然として不十分な点が多い。加えて、企業、クライアント、または個人にとって具体的な価値のある結果等の、有益な結果を生み出すAIソリューションに到達するのが困難な場合がある。それ故に、期待された一貫性のある有益な結果をもたらし得るAIツールは、このようなシステムのユーザにとって有用であろう。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示の実施形態は、概して、関連技術を実質的に改善する、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのシステムおよび方法に向けられている。ユーザと訓練されたインテリジェンスボットとの間のチャットセッションの開始後に、1つ以上の発話をユーザから受信することができる。訓練されたインテリジェンスボットを用いて発話を処理することにより、複数の予め定められたインテントのうちのあるインテントを解決し、インテリジェンスボットは、ユーザの発話から、予め定められたインテントを、これら予め定められたインテントの各々に対応付けられた訓練データに基づいて解決するように訓練される。解決したインテントに対応付けられた、予め定められたダイアログフローを、インテリジェンスボットを用いてナビゲートすることができ、インテリジェンスボットは、ユーザにまたはチャットセッションに対応付けられたコンテキスト変数を用いてユーザをダイアログフローを通してガイドする。ダイアログフローのナビゲートまたはコンテキスト変数のうちの1つ以上に基づいて生成された取り出し要求を用いてインテリジェンスボットが取り出した企業データをユーザに提供することができる。
【0005】
実施形態の特徴および利点は、以下の説明に記載されている、または、この記載から明らかであろう、または、本開示の実施から知り得るものである。
【0006】
その他の実施形態、詳細、利点、および変形は、添付の図面とともに考慮されるべき好ましい実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0007】
【
図1】実施形態の一例に係る、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのシステムを示す図である。
【
図2】実施形態の一例に係る、システムに作動的に結合されたコンピューティングデバイスのブロック図を示す。
【
図3】実施形態の一例に係るダイアログフローを実現する図を示す。
【
図4】実施形態の一例に係る、訓練されたインテリジェンスボットおよびビジネスロジックを用いてダイアログフローを実現するためのシステムを示す図である。
【
図5A】実施形態の一例に係る、クラウドサービスクライアントを用いてダイアログフローを実現するためのシステムコンポーネントを示す図である。
【
図5B】実施形態の一例に係る、ウェブロジックコンテナを用いてダイアログフローを実現するためのシステムコンポーネントを示す図である。
【
図6A】実施形態の一例に係るダイアログフローの一例を示す図である。
【
図6B】実施形態の一例に係るダイアログフローの一例を示す図である。
【
図6C】実施形態の一例に係るダイアログフローの一例を示す図である。
【
図7】実施形態の一例に係る、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのフロー図を示す。
【
図8】実施形態の一例に係る、本明細書に開示される、改善された供給アクションを含む、サプライヤ、在庫、およびロジスティックスの統合システムを示す図である。
【発明を実施するための形態】
【0008】
詳細な説明
実施形態は、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートする。いくつかの実施形態において、ユーザと、訓練されたインテリジェンスボット等の訓練されたAIコンポーネントとの間のチャットセッションを開始することができる。たとえば、ユーザは、所定の構成の企業ソフトウェアアプリケーション等のソフトウェアアプリケーションとインターフェイスしている場合がある。このソフトウェアアプリケーションの構成は、このソフトウェアアプリケーションによって表示されるデータと、ユーザが閲覧している、解析中の、そうでなければ選択されたデータの、クロスセクションと、ユーザIDまたはロールと、その他任意の適切な構成情報とを含み得る。いくつかの実施形態において、そのようなソフトウェアアプリケーション構成情報は、コンテキストとして知られているものであってもよい。
【0009】
ユーザは、訓練されたインテリジェンスボットと対話しているときに、インテントを有する場合がある。たとえば、ユーザは、企業アプリケーションを使用しているとき、特定の企業データを取り出すこと、特定のデータを処理もしくは解析すること、または、バッチソフトウェアプロセスもしくはその他何らかの機能、これらを組み合わせたもの、もしくはその他任意の適切なインテントを実行することを、所望する場合がある。いくつかの実施形態において、インテリジェンスボットを、ユーザが入力したテキストまたはユーザの発話に基づいて複数のインテントのうちのあるインテントを解決するように、訓練することができる。たとえば、インテリジェンスボットを、複数のインテントの各々についてのテキスト例を用いて訓練することができ、したがって、それらの例を活用することで、ユーザの発話からインテントを解決することができる。インテリジェンスボットに送ることができるソフトウェアアプリケーションコンテキストを用いてインテントを解決することもできる。
【0010】
いくつかの実施形態において、解決したインテントに対応付けられた、予め定められたダイアログフローを、インテリジェンスボットによってナビゲートすることができる。たとえば、このインテントに対応付けられたダイアログフローを、マークアップ言語データドキュメント(またはその他のデータ記述言語ドキュメント)の場合のように定めることができる。いくつかの実施形態において、データドキュメントは、ダイアログフローについて、変数、状態、および遷移を定めることができる。インテリジェンスボットは、予め定められたダイアログフローに基づいて、ユーザとの間でメッセージをやり取りすることができる。いくつかの実施形態において、インテリジェンスボットは状態遷移に従ってダイアログフローをナビゲートするが、この状態遷移は、インテリジェンスボットのメッセージに対してユーザが与えるレスポンスに基づく。
【0011】
いくつかの実施形態において、ダイアログフローのナビゲートは、機能の実行をトリガすることができる。たとえば、取り出し要求(たとえばクエリ)を生成することにより、企業データを取り出すことができ、この取り出し要求についてのパラメータは、ダイアログフローのナビゲート中にユーザから与えられたレスポンスおよび/またはソフトウェアアプリケーションコンテキストに基づく。別の例において、ユーザ介入/編集に基づいて調整されたまたはユーザ承認を含むプロセス等のソフトウェアプロセス(たとえばバッチプロセス)を、トリガすることができ、ダイアログフローは、ソフトウェアプロセスに関連する、ユーザ介入、編集、および/または承認を含み得る。いくつかの実施形態において、これらの機能のうちの1つ以上がダイアログフローのナビゲーションに含まれ得る。
【0012】
次に、その例が添付の図面に示されている本開示の実施形態について詳細に述べる。以下の詳細な説明では、本開示の十分な理解のために数多くの具体的な詳細が記載されている。しかしながら、これらの具体的な詳細がなくても本開示を実施し得ることが当業者には明らかであろう。その他の場合において、周知の方法、手順、コンポーネント、および回路は、実施形態の局面を不必要に曖昧にしないよう、詳細には説明していない。可能な限り、同様の参照番号を同様の要素に使用する。
【0013】
図1は、実施形態の一例に係る、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのシステムを示す。システム100は、サービスコンポーネント102と、ウェブロジックコンテナ104と、ボットサービス106とを含む。いくつかの実施形態において、サービスコンポーネント102は、ウェブロジックコンテナ104および/またはボットサービス106と通信するクライアントを提供することにより、ダイアログフローをナビゲートすることができる。たとえば、サービスコンポーネント102を介してユーザとのチャットセッションを開始することができ、ウェブロジックコンテナ104およびボットサービス106はこのチャットセッションのための機能を提供することができる。
【0014】
ある実施形態において、ボットサービス106は、チャットセッションのために訓練されたインテリジェンスボットを提供することができる。ある実施形態において、ウェブロジックコンテナ104は、このセッションのチャットサーバをホストする、および/またはダイアログフローをナビゲートするために使用されるカスタムビジネスロジックコンポーネントを実現することができる。サービスコンポーネント102、ウェブロジックコンテナ104、およびボットサービス106を組み合わせて使用することにより、訓練されたインテリジェンスボットがユーザとのダイアログフローをナビゲートする、ユーザとのチャットセッションを実現することができる。その他任意の適切なフレームワーク、コンポーネント、または複数のコンポーネントの組み合わせを同様に実現することができる。
【0015】
図2は、実施形態に係るコンピュータサーバ/システム200のブロック図である。システム200のすべてまたは一部を用いることにより、
図1に示される要素のうちのいずれかを実現してもよい。
図2に示されるように、システム200は、プロセッサ222およびメモリ214等のシステム200の各種コンポーネント間で情報を伝達するように構成されたバスデバイス212および/またはその他の通信機構(複数の通信機構)を含み得る。加えて、通信デバイス220は、ネットワーク(図示せず)を介してプロセッサ222から別のデバイスに送信されるデータを符号化しネットワークを介して別のシステムから受信したプロセッサ222に対するデータを復号することにより、プロセッサ222と他のデバイスとの間の接続を可能にすることができる。
【0016】
たとえば、通信デバイス220は、ワイヤレスネットワーク通信を提供するように構成されたネットワークインターフェイスカードを含み得る。赤外線、無線、ブルートゥース(登録商標)、Wi-Fi(登録商標)、および/またはセルラー通信を含む、さまざまなワイヤレス通信技術を使用することができる。これに代えて、通信デバイス220は、イーサネット(登録商標)接続等の有線ネットワーク接続を提供するように構成されてもよい。
【0017】
プロセッサ222は、システム200の計算および制御機能を実行する1つ以上の汎用または専用プロセッサを含み得る。プロセッサ222は、マイクロ処理デバイス等の単一の集積回路を含み得る、または、プロセッサ222の機能を実現するために協働する複数の集積回路デバイスおよび/または回路基板を含み得る。加えて、プロセッサ222は、メモリ214に格納されたオペレーティングシステム215、AIモジュール216、およびその他のアプリケーション218等のコンピュータプログラムを実行することができる。
【0018】
システム200は、情報と、プロセッサ222が実行する命令とを格納するためのメモリ214を含み得る。メモリ214は、データの取り出し、提示、修正、および格納のための、さまざまなコンポーネントを含み得る。たとえば、メモリ214は、プロセッサ222によって実行されると機能を提供するソフトウェアモジュールを格納してもよい。モジュールは、システム200のためのオペレーティングシステム機能を提供するオペレーティングシステム215を含んでいてもよい。モジュールは、オペレーティングシステム215と、本明細書に開示されるダイアログフローのナビゲートおよびその他すべての機能を実行するように構成されたAIモジュール216と、その他のアプリケーションモジュール218とを含み得る。オペレーティングシステム215は、システム200のためのオペレーティングシステム機能を提供する。いくつかの場合において、AIモジュール216は、インメモリ構成として実現されてもよい。いくつかの実装例において、システム200は、AIモジュール216の機能を実行するときに、本明細書に開示されている機能を実行する、従来にない専用コンピュータシステムを実現する。
【0019】
非一時的なメモリ214は、プロセッサ222がアクセスし得るさまざまなコンピュータ読取可能媒体を含み得る。たとえば、メモリ214は、ランダムアクセスメモリ(「RAM」)、ダイナミックRAM(「DRAM」)、スタティックRAM(「SRAM」)、読出専用メモリ(「ROM」)、フラッシュメモリ、キャッシュメモリ、および/またはその他任意の種類の非一時的なコンピュータ読取可能媒体の、任意の組み合わせを含み得る。プロセッサ222はさらに、液晶ディスプレイ(「LCD」)等のディスプレイ224にバス212を介して結合される。キーボード226およびコンピュータマウス等のカーソルコントロールデバイス228が、さらに通信デバイス220に結合されて、ユーザがシステム200とインターフェイスできるようにする。
【0020】
いくつかの実施形態において、システム200は、より大きなシステムの一部であってもよい。したがって、システム200は、追加機能を含むために1つ以上のその他の機能モジュール218を含み得る。その他のアプリケーションモジュール218は、たとえば、オラクル(登録商標)クラウドインフラストラクチャ(Cloud Infrastructure)、オラクル(登録商標)クラウドプラットフォーム(Cloud Platform)、オラクル(登録商標)クラウドアプリケーション(Cloud Application)のさまざまなモジュールを含み得る。AIモジュール216、その他のアプリケーションモジュール218、およびシステム200のその他任意の適切なコンポーネントは、オラクル(登録商標)リテールアドバンストサイエンスクラウドサービス(Retail Advanced Science Cloud Service)、オラクル(登録商標)インテリジェンスボット(Intelligence Bot)、オラクル(登録商標)デジタルアシスタント(Digital Assistant)、およびその他の適切なフレームワーク/サービスのさまざまなモジュールを含み得る。
【0021】
データベース217は、バス212に結合されて、モジュール216および218のための集中型ストレージを提供するとともに、たとえば、データAIモジュール216またはその他のデータソースを格納する。データベース217は、論理的に関連付けられた記録またはファイルを一体的に収集したものにデータを格納することができる。データベース217は、オペレーショナルデータベース、アナリティカルデータベース、データウェアハウス、分散型データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向データベース、非リレーショナルデータベース、NoSQLデータベース、Hadoop(登録商標)分散ファイルシステム(distributed file system)(「HDFS」)、または、当該技術で周知の他の任意のデータベースであってもよい。
【0022】
単一システムとして示されているが、システム200の機能は分散型システムとして実現されてもよい。たとえば、メモリ214およびプロセッサ222を、集合的にシステム200を表す複数の異なるコンポーネントに分散させてもよい。一実施形態において、システム200はデバイス(たとえば、スマートフォン、タブレット、コンピュータなど)の一部であってもよい。ある実施形態において、システム200は、デバイスから分離していてもよく、このデバイスの開示されている機能を遠隔から提供してもよい。さらに、システム200の1つ以上のコンポーネントが含まれていなくてもよい。たとえば、ユーザまたはコンシューマデバイスとしての機能の場合、システム200は、プロセッサとメモリとディスプレイとを含むスマートフォンまたはその他のワイヤレスデバイスであってもよく、
図2に示されるその他のコンポーネントのうちの1つ以上を含んでおらず、アンテナ、トランシーバ、またはその他任意の適切なワイヤレスデバイスコンポーネント等の、
図2に示されていない追加のコンポーネントを含む。さらに、システム200は、本明細書に開示されている機能を実行するように実現される場合、AIチャットセッション機能を提供するように特別に構成された、専用コンピュータである。
【0023】
図3は、実施形態の一例に係る、ダイアログフローを実現する図を示す。たとえば、
図3は、ダイアログフロー310が、インテント302と、発話304と、エンティティ306と、ビジネスロジック308とを含むことを示している。たとえば、インテリジェンスボットおよび/またはその他のシステムコンポーネントを組み合わせたものは、インテント302、発話304、エンティティ306、およびビジネスロジック308を用いることにより、ダイアログフロー310をナビゲートすることができる。
【0024】
いくつかの実施形態において、インテリジェンスボットとのチャットセッション中に、発話304をユーザから受信することができる。訓練されたインテリジェンスボットは、発話304を用いて、複数のインテントのうちのインテント302を認識することができる。たとえば、インテントは、典型的なユーザ要求およびステートメントまたは発話304の順列であってもよい。いくつかの実施形態において、インテリジェンスボットは、訓練されて、所定のインテントを、この所定のインテントを示すテキスト例を用いて、認識することができる。訓練されたインテリジェンスボットは、このインテリジェンスボットを訓練するために使用されたインテント302のための例に、発話304が似ている場合に、複数のインテントのうちのインテント302を認識することができる。多数の発話例のセットは、ユーザが何を望んでいるかをインテリジェンスボットが理解することを可能にする。たとえば、発話から「ボストンというロケーションについての最適化結果を示して下さい」というインテントを認識しその他の予め定められたインテントと区別することができる。
【0025】
インテントにより、インテリジェンスボットは、ユーザがインテリジェンスボットに何をして欲しいのかを理解することができる。たとえば、インテントは、典型的なユーザ要求を、ボットが実行するタスクおよびアクションに基づいて分類することができる。小売最適化の企業アプリケーションを使用する実施形態に対するサンプルインテントは、最適化サマリレビューという直接要求に対応付けられた最適化サマリインテントであってもよい。
【0026】
いくつかの実施形態において、インテントは、特定のアクションについての発話の集まりに基づいた、たとえばテキストのロバストなデータセット(たとえば十数個~二十数個の発話)に基づいた認識に対して作成することができる。発話の集まりは、訓練されたインテリジェンスが曖昧なユーザ入力を解釈できるように、変更されてもよい。たとえば、多数の発話のセットは、構造、トーン、シンタックスなどが異なるユーザメッセージから、ユーザが何を望むかをインテリジェンスボットが理解することを可能にする。
【0027】
インテントは、ユースケースを説明するものとみなすこともできる。なぜなら、インテントは、インテリジェンスボットがそのユーザによる完了を支援する各種アクションを記述するからである。インテントは、インテリジェンスボットができることを記述するだけではなく、インテントはまた、インテリジェンスボットにより、ユーザ入力の認識のために使用される。なぜなら、各インテントは、対応付けられた発話のセットを有するからである。以下にインテントの例を示す。
・インテントは、典型的な価格設定ユーザについて作成することができる。
・例外管理。たとえば、ユーザは、利幅改善が5%未満の部門のロケーションを見ることを要求できる。
・承認プロセス。たとえば、値引きが40%を上回る実行についての価格推奨を拒絶する、または、収入の5%の改善を示すすべてのバッチ実行を承認する。
・重要業績評価メトリクスを再計算する。たとえば、値引きが70%を上回る推奨を拒絶し、メトリクスを再計算する。
【0028】
認識されたインテントは、このインテントのダイアログフローを定めるデータドキュメント(たとえばマークアップ言語ドキュメントまたはデータ記述言語ドキュメント)に対応付けることができる。たとえば、インテント302は、変数、状態、および遷移を含むデータドキュメントに対応付けることができる。エンティティ306はインテント302のコンテキストであってもよく、このコンテキストをデータドキュメントとともに使用することにより、ダイアログフローをナビゲートする。たとえば、インテントは単語および語句を特定のアクションにマッピングするのに対し、エンティティはインテント自体にコンテキストを追加する。これらは、インテントを一層十分に記述しインテリジェンスボットがユーザ要求を満たすことができるようにするのに役立つ。エンティティ306の一例は、「ボストンというロケーションについての最適化結果を見せて下さい」という発話におけるボストンというロケーションである。
【0029】
いくつかの実施形態において、データドキュメントは、ダイアログフローをナビゲートするのに使用される変数を含み得る。たとえば、ダイアログフローは、企業データの特定のクロスセクションを取り出すことを含み得る。よって、変数は企業データのクロスセクションを定めるパラメータを含み得る。一例において、データドキュメントは、所望のデータを返すことを求める取り出し要求を構成するために、パラメータについての1つ以上の値をインテリジェンスボットが取得するように、構成されてもよい。
【0030】
いくつかの実施形態において、ユーザ変数はダイアログフローをナビゲートするために使用することもできる。たとえば、ユーザ変数は、ユーザID、ロール、プリファレンスなどを含み得る。ソフトウェアアプリケーションまたはソフトウェアアプリケーションのステータスについてのコンテキスト変数等のその他の変数を送ることにより、ダイアログフローをナビゲートすることもできる。たとえば、セッションおよび/またはユーザスコープ変数(user scoped variables)をダイアログフローにおいて定めることができる。これらの変数は、ソフトウェアアプリケーションとインテリジェンスボットエンジンとの間で情報を(たとえばREST APIを介して)伝達するために使用されるカスタムコンポーネントの一部であってもよい。
【0031】
いくつかの実施形態において、変数は、英数字の値、電子メールアドレス、特定の時間、継続時間、電話番号、統一資源ロケータなどを含み得る。また、変数は値のリストを含み得るものであり、それは、同様のコンセプトを示し得るユーザ入力のリスト、エンティティリスト等であり、それは、エンティティ、導き出された変数-ある変数は別の変数から導き出される、または、ユーザ入力における予め定められたパターンをインテリジェンスボットが特定できるようにする通常の表現の、スーパーセット等である。エンティティ306は、これらの変数のうちの1つ以上を含み得る。
【0032】
ビジネスロジック308は、ダイアログフローをナビゲートしユーザに対してアクションを実行するためにインテリジェンスボットが使用するビジネスインテリジェンスを含み得る。たとえば、データドキュメント内でコールされたいくつかの状態、遷移、および/または機能は、ビジネス上の考慮に従って、たとえば、取り出すことが所望される企業データのデータスキーマに従って、またはダイアログフローをナビゲートすることにより構成されているバッチプロセスの構造に従って、またはその他任意の適切な考慮に従って、構成することができる。いくつかの実施形態において、インテリジェンスボットは、トランザクションデータストアからデータを返すときおよび/またはビジネスロジックを実行するときに、企業データベースからロケーション:ボストンについてのサマリー結果をフェッチするインテリジェンスボットのインスタンス等のカスタムコンポーネントを使用することができる。
【0033】
いくつかの実施形態において、データドキュメントは、マークアップ言語ドキュメントであってもよい。たとえば、データドキュメントは、予め定められたYAML Ain't Markup Language(「YAML」)構造を実現することができ、インテリジェンスボットは、予め定められたYAML構造に基づいてダイアログフローをナビゲートするように構成される。その他任意の適切なデータドキュメントを同様に実現することができる。
【0034】
以下は、ピザの注文の簡略化バージョンに関連する解決されたインテントについてのデータドキュメント定義の一例であり、このデータドキュメントを用いてインテリジェンスボットを構成することによりユーザとのダイアログフローをナビゲートしてピザの注文を満たす。
【0035】
【0036】
以下は、本開示の各種実施形態に記載されている、企業ソフトウェアの実現に関連する解決されたインテントのデータドキュメント定義の別の例である。
【0037】
【0038】
いくつかの実施形態において、ダイアログフローのこの例は、コンテキストと、デフォルト遷移と、状態とを含み得るものであり、また、カスタムコンポーネント(たとえば外部コンポーネントおよび/または企業ソフトウェアアプリケーションのコンポーネントとの通信に使用される)を含み得る。以下は、ダイアログフローにおけるカスタムコンポーネントの例(たとえば、commonGreetingおよびretailOptimization)である。たとえば、各コンポーネントは、プロパティを、アクションを実行するために(たとえばボットサービスから)カスタムコンポーネントに送られる変数として取り込むことができる。いくつかの実施形態において、カスタムコンポーネントは、要求の処理後に、コンテキスト変数を更新してレスポンスでボットサービスに送信することができる。
【0039】
【0040】
インテント302、発話304、エンティティ306、およびビジネスロジック308を組み合わせて用いることにより、ダイアログフロー310をナビゲートするおよび/またはユーザに対して関連するアクションを実行することができる。いくつかの実施形態において、インテリジェンスボットは、小売データウェアハウス(たとえば企業データを格納するデータベース)とやり取りし質問をすることによって重要業績評価指標(key performance indicator:「KPI」)およびビジネス業績をレビューするための小売会話型AI設定におけるような、トランザクションボットであってもよい。これらのインテリジェンスボットは、会話を通してコンテキストを維持することができるとともに、小売企業アプリケーションフロー内で統合することができる。これらのインテリジェンスボットにより、小売業者は、UIワークフロー内でインタラクティブな会話を行うことができるようになり、エンドユーザには、KPIを伴う単純なテキストメッセージ、ユーザ選択についての複数選択肢、またはシステム状態に基づいた他の画面への案内等の、企業アプリケーション内の変化するレスポンスが与えられる。
図6A~
図6Cは、実現の一例を示すものを提供する。
【0041】
いくつかの実施形態において、チャットセッションを、ボイスアシスタント(たとえば、Echo(登録商標)、Google Home(登録商標)、Chrome(登録商標)ボイスアシスタントなど)、機械学習技術(たとえば自然言語処理)、および企業ソフトウェア(たとえばオラクル(登録商標)小売オファー最適化(Retail Offer Optimization)など)と、統合することができる。このような実現により、企業ソフトウェアアプリケーションの典型的なユーザの労力を減じることができ、かつ、複雑なビジネスプロセスユースケースの扱いを含むことができる。
【0042】
企業小売ソフトウェアの現在のバージョンにおいて、価格設定の決定/最適化等の複雑なビジネスユースケースは、ボイスアシスタント/インテリジェンスボットと統合されて複雑なワークフロー/ビジネスプロセスの質問を処理する訳ではない。たとえば、小売アパレルの価格推奨を管理するバイヤーまたはマネージャは、例外管理(たとえば、価格推奨に基づく利幅改善が5%未満の部門のロケーションを見せて下さい)、複雑な承認プロセス(たとえば、40%を上回る価格推奨を拒絶し、重要業績評価メトリクスを再計算し、ターゲット指定オファーをプラチナカスタマーに送る)、またはオンザフライアグリゲーション(たとえば、米国、ドイツの利幅改善とは?)等のユースケースに興味を持つであろう。いくつかの実施形態において、ユーザは、音声起動型デバイスに対する特定の質問(発話)を言語で表現することができ、(たとえばオラクル(登録商標)インテリジェントボット(Intelligent Bot)によって実現される)自然言語処理(Natural Language Processing:「NLP])アルゴリズムを用いて発話をテキストに変換しインテント/エンティティにマッピングすることができる。いくつかの例において、インテント/エンティティが解決されダイアログフローがナビゲートされると、適切なプロセスを実行して情報を返すことができる価格設定ソリューションをコールすることができる(たとえばオラクル(登録商標)小売オファー最適化)。
【0043】
実施形態は、ユーザが、特定の複雑なビジネスプロセスに着手する一方で音声起動機能に基づいて企業ビジネスソフトウェアアプリケーションに対して自然言語で話しかけることができるようにする機能を追加するのに必要な、ユーザの労力を減じることができる。たとえば、このようなソフトウェアの典型的なユーザであるビジネスユーザは、そのビジネスユースケースに関して企業ビジネスソフトウェアアプリケーションに話しかけることができる。
【0044】
実施形態は、たとえば価格設定ソフトウェアソリューションにおいて、典型的なユーザについて生じる特定の質問に回答するための、(たとえばオラクル(登録商標)デジタルアシスタントを用いて実現される)訓練され統合されたインテリジェンスボットを含む。たとえば、小売アパレルの価格推奨を管理するバイヤーまたはマネージャは、以下のようなユースケースに興味を持つかもしれない。
・例外管理。たとえば、ユーザは、利幅改善が5%未満の部門のロケーションを見ることを要求できる。
・承認プロセス。たとえば、値引きが40%を上回る実行についての価格推奨を拒絶する、または、収入の5%の改善を示すすべてのバッチ実行を承認する。
・重要業績評価メトリクスを再計算する。たとえば、値引きが70%を上回る推奨を拒絶し、メトリクスを再計算する。
・Q&A。この統合は、ユーザから最も頻繁に出される質問に回答するのに役立つ。たとえば、ユーザはプロモーションについて尋ねることができ、Q&Aタブは関連質問および「プロモーション」という用語に関連する回答を提示する。
【0045】
いくつかの実施形態は以下を含み得る。
1.ユーザはボイスアシスタントを(たとえばマイクの記号をクリックすることにより)有効にすることができる。
2.ユーザは音声起動型デバイスに対して特定の質問(発話)を話しかけることができる。
3.発話はNLPアルゴリズムを用いてテキストに変換することができ、その後、インテントおよび対応するエンティティをこの発話から解決することができる。たとえば、訓練されたインテリジェンスボットを用いることにより、上記ユースケースについてのインテントを認識することができる。また、訓練されたインテリジェンスボットを用いることにより、適切なフォローアップ質問を行ってインテントに到達することもできる。
4.インテント/エンティティが解決されると、ダイアログフローをナビゲートすることができるとともに、企業ソフトウェアアプリケーション(たとえばオラクル(登録商標)小売オファー最適化)をコールすることができ、これが次に適切なプロセスを実行する。
5.プロセスが完了すると、企業ソフトウェアアプリケーションは情報を返すことができる。
【0046】
さまざまなユースケースに対して1つ以上のインテントを作成することにより、ユーザが関連機能を実現するのを支援することができる。加えて、1つ以上のインテリジェンスボットを訓練することにより、作成されたインテントを認識することができる。たとえば、ユーザは、承認基準を満たさない部門のロケーションを見ることを要求できる、または、ユーザは、利幅改善が5%未満の部門のロケーションを見ることを要求できる。本明細書に記載のように、各インテントについて発話例を提供することにより、インテリジェンスボットを訓練することができる。
【0047】
実施形態は複数の訓練技術を実現することができる。たとえば、NLPに基づく言語学を用い与えられた発話例のセットに基づいて生成規則テンプレートの組み合わせを導き出すTrainer Ht技術を用いることができる。これは、インテリジェンスボットの高速デプロイメントに役立ち得るものであり、かつ、極めて正確な予測をもたらすことができる。Trainer Htは、小規模訓練コーパス(たとえば作成された1つのインテントについて10~20の発話)に使用することができ、NLPに基づく言語学を活用することによってインテントを認識することができ、かつ、マッチングルールを用いてテンプレートを作成しインテントを区別することができる。
【0048】
もう1つの訓練技術であるTrainer Tmは、より多くの会話データを利用できる場合に使用することができる。Trainer Tmは、インテント予測の一般化が望ましく開発者が会話フローについて品質初期データセットを構築している場合に、良く適合する。これらのモデルは、分類されていない大量のテキストから教師なし学習を実行することにより、小売企業アプリケーションにおいてエンドユーザが時間をかけて収集したデータに基づいて、ユーザインテント予測のためのコンテキスト依存のマッピングを生成することが可能な、アルゴリズムの組み合わせを用いることができる。
【0049】
価格設定ソリューションに固有の訓練データを提供すること以外に、その他の適切なNLP処理技術を同様に使用してもよく、それはたとえば各インテントに属するサンプル語句だけでなくそれらに類似する語句も認識する技術である。たとえば、オラクル(登録商標)デジタルアシスタントが実現するNLP技術を用いることができる。いくつかの実施形態において、単語解析および意味解析を実行するNLPアルゴリズムを活用することができる。たとえば、マッチエンジンは、ユーザ表現またはステートメントを文法的にかつ意味的に解析することによってユーザのインテントを理解できる。
【0050】
いくつかの実施形態において、NLP技術は、スペル訂正、見出語認定(たとえば、単語の形態は、見出語として知られている単語の1つの一般形態または基底形に対応付けることができる)、ステミング(たとえば基底語を導き出すために単語の端を削除することができ、たとえばcatsはcatとなる)、同義語探索、上位語および下位語解析(たとえば、それぞれ一種のクラスである親子関係のようなものであり、たとえば色は赤の上位語でありスプーンはカトラリーの(ある種の)下位語)、複数の単語単位の検出、語彙の曖昧さの解消(たとえば特定の産業部門およびユーザについての知識を用いて曖昧さを解消する、たとえば金融分野において銀行(bank)は川の土手ではなく金融機関を意味する)、意味論解析、およびその他の適切なNLP技術を含み得る。
【0051】
訓練に加えて、エンティティをインテントについて定めてもよい。たとえば、いくつかの場合において、コンテキストを用いることにより、インテリジェンスボットがユーザ要求を満たすことができるようにしてもよい。ユースケースおよび要求に応じて、ロケーション、商品などのようなエンティティを追加できる。たとえば、承認基準を満たさない実行を見出すことに関連するインテントの場合、ロケーション、部門というエンティティを含めることができる。
【0052】
訓練およびエンティティが定められると、カスタムビジネスロジックおよび/または機能等(たとえばREST APIコール)のカスタムコンポーネントを統合することができる。実施形態は、データドキュメント(たとえばマークアップ言語データドキュメントまたは同様のデータ定義ドキュメント)を用いてダイアログフローを定めることを含み、インテリジェンスボットは、訓練、エンティティ、カスタムコンポーネント/ビジネスロジック、および定められたデータドキュメントを用いることにより、ユーザとのダイアログフローをナビゲートすることができる。
【0053】
図4は、実施形態の一例に係る、訓練されたインテリジェンスボットおよびビジネスロジックを用いてダイアログフローを実現するためのシステムを示す。このシステムは、企業AIクライアント402と、ウェブロジックコンテナ404と、ボットサービス406と、アドバンストサイエンスクラウドサービスチャットコンポーネント408と、AIチャットサーバ410と、ボット要求412と、イベントウェブフック414と、チャネル構成416と、サービス構成418と、訓練コンポーネント420と、ダイアログフロー422と、ビジネスロジックコンポーネント424と、キャッシュ426と、データベース428と、カスタムコンポーネントAPI430とを含む。
【0054】
企業AIクライアント402には、質問するまたは質問をタイプしレスポンスを獲得し質問およびユーザに対するレスポンスの履歴をユーザが閲覧できるよう表示する(たとえばチャットディスプレイ)ことができるようにする、音声起動ソリューションが統合されていてもよい。企業AIクライアント402は、たとえば、Google(登録商標) Chrome(登録商標)の音声認識キットを用いることにより、音声をテキストに変換することができる、または、その他任意の適切な技術、サービス、もしくはフレームワークを使用することができる。企業AIクライアント402を、ユーザワークフローのコンテキストでユーザが質問を出すことができるようにするユーザインターフェイスに(たとえばコンテキストエリアに)表示することができる。このようなクライアントからのクエリの一例は、オファー最適化ワークフローにおけるターゲット指定オファーを閲覧しているときの、「店舗XYZではどのようなプロモーションが実行されているか」である。また、企業AIクライアント402は、UIからのコンテキストをリセットすることにより、企業アプリケーションとの会話をリセットし再スタートする機能を提供することもできる。
【0055】
ウェブロジックコンテナ404およびAIチャットサーバ410は、クライアントクエリを、アプリケーションコンテキストおよび/またはセキュリティロールをクライアント要求に追加することにより、ボットサービス406に中継することができる。たとえば、クライアントクエリは単純な要求であってもよく、または詳細を得るための基準を有するものであってもよく、このようなクエリ基準の一例は、「店舗YYまたは部門XXにおけるプロモーションを示されたい」であってもよい。ウェブロジックコンテナ404およびAIチャットサーバ410はまた、ベースカスタムコンポーネントAPI430、ビジネスロジックコンポーネント424、キャッシュ426、およびデータベース428を用いて、企業データをボットサービス406に与えることもできる。
【0056】
ボットサービス406は、会話および遷移状態を定めるダイアログフローの複合物を含み得る。これらのダイアログフローは、ビジネスユースケースに対して構成されていてもよく、内蔵コンポーネントに依拠してもよく、および/または企業固有のコンポーネントに依拠してメッセージを次々と表示し次の状態に移る、コンポーネントによって制御されるナビゲーションを有していてもよい。ボットサービス406は、訓練コンポーネント420を用いて、ボットの過去の使用において収集されたデータを利用することによりモデルを一括して周期的に訓練することができる。いくつかの実施形態において、これらのコンポーネントレイヤは、(たとえばRESTアプリケーションプログラミングインターフェイス(application programming interface:「API」)を用いて)相互にやり取りすることができ、かつ、メディエータの役割を果たすAIチャットサーバ410とメッセージ(たとえばJSONオブジェクトメッセージ)を共有することができる。メディエータは、Java(登録商標)企業サーバ上のウェブアプリケーションとしてデプロイすることができる。いくつかの実施形態において、企業アプリケーションは、ログインユーザ、それらのロール、現在UIに表示されているまたはUIにナビゲートされるアプリケーションまたはモジュール等の、アプリケーションコンテキストを、ボットサービス406と共有することができる。
【0057】
いくつかの実施形態において、企業AIクライアント402は、ボット要求をウェブロジックコンテナ404に送信することができ、コンテナはこの要求をボットサービス406に中継することができる。チャネル構成416および/またはサーバ構成418を用いることにより、インテリジェンスボットとのチャットセッションを構成することができる。いくつかの実施形態において、ダイアログフロー(たとえばダイアログフロー422)のナビゲーションは、ビジネスロジックコンポーネントを必要とする場合があり、ベースカスタムコンポーネントAPI430、ビジネスロジックコンポーネント424、キャッシュ426、およびデータベース428を用いて、ビジネスオペレーションを実行することおよび/または企業データを返すことができる。イベントウェブフック414は、
図4に示されるように、情報を中継して企業AIクライアント402に返すように構成および使用されてもよい。
【0058】
いくつかの実施形態において、ベースカスタムコンポーネントAPI430に対するコールの一例は以下を含み得る。
【0059】
【0060】
いくつかの実施形態において、コールに対する、ベースカスタムコンポーネントAPI430からのレスポンスの一例(たとえば、データを取り出しおよび/またはビジネスロジックコンポーネント424、キャッシュ426、データベース248でアクションを実行した後)は、以下を含み得る。
【0061】
【0062】
いくつかの実施形態において、ボットサービス406は、要求を、カスタムコンポーネントおよび1つ以上のパラメータとともに、さらに、ボットサービスが管理するコンテキスト変数とともに、送信することができる。ベースカスタムコンポーネントAPI430は、関連情報を(たとえばJDBCを用いてトランザクションデータベースから)取り出すことができる、または、他のコンポーネントと通信してデータをフェッチすることができる。いくつかの実施形態において、送られたパラメータに基づいて、ベースカスタムコンポーネントAPI430は、コンテキスト変数を更新しレスポンスを構築してボットサービス406に返信することができる。このレスポンスは、データ、成功またはエラーのレスポンス、および/またはボットサービス406が次に行うべきアクションを、含み得る。
【0063】
いくつかの実施形態において、ユーザチャットは、ボットサービス406に送信されるユーザプロンプトで開始することができ、インテントを、NLPアルゴリズムまたは機械学習モデルを用いて解決する。インテントの解決後、ボットサービス406は、1つ以上のコンポーネントを呼び出してリアルタイムの企業データを獲得することができ、このようなデータおよび次の遷移状態は、レスポンスとしてボットサービス406に返すことができる。遷移状態を解決することにより、次のアクションを実行するおよび/またはチャットウィンドウに表示されるレスポンスメッセージをユーザに与えることができる。いくつかの実施形態において、レスポンスメッセージは、選択についての複数の選択肢、単純なメッセージであってもよい、または、企業アプリケーションにおいてユーザを別の画面にガイドすることができる。ボットサービス406におけるダイアログフローは、インテントが解決されない場合またはユーザを案内するように、または、さらに明確にするようユーザを促すように、構成された、例外フローを有するように設計されてもよい。
【0064】
図5Aは、実施形態の一例に係る、クラウドサービスクライアントを用いてダイアログフローを実現するためのシステムコンポーネントを示す。
図5Aはアドバンストサイエンスクラウドサービスチャットコンポーネント408を示しており、これは、UIコンポーネント450と、音声認識コンポーネント453と、カスタム変更コンポーネント458と、UIとADFのインタラクション454と、ウェブソケット456とを含み得る。UIコンポーネント450は、クライアントのインターフェイスにおよび/または企業アプリケーションのUI内に(たとえば
図6A~
図6Cに示されるチャットウィンドウ)、チャットクライアントを表示することができる。音声認識452は、自然言語音声を認識することができ、かつ、Google(登録商標) Chrome(登録商標)の音声認識キット、またはその他任意の適切なコンポーネントを含み得る。カスタム変更458は、クライアントにおけるチャットセッションのカスタム実現を含み得る。
【0065】
たとえば、チャットは、企業アプリケーショングリーティングで、会話のコンテキストを設定することにより、開始することができ、これに、ボットサービス406で解明され会話に遷移する発話を続けることができる。カスタム変更458は、カスタムグリーティングおよび/またはカスタムリセット条件を実現することにより、コンテキストをリセットできる。たとえば、JavaScript(登録商標)リセット法を追加することで、チャットクライアントからのメッセージをクリアすることができる。メッセージがクリアされると、リセットインテントにマッピングされた「リセット」発話をボットサービス406にプッシュすることにより、変数をリセットすることができる。いくつかの実施形態において、ウェブソケット接続の初期化中に、チャットクライアントにJavaScriptのinit helloメッセージを追加してもよい。
【0066】
いくつかの実施形態において、アプリケーションデータフレームワーク(application data framework:「ADF」)は、アプリケーション/UIコンポーネントとやり取りすることができる。たとえば、インテリジェンスボットとの対話中に、メッセージをカスタムコンポーネントからボットサーバ406に送信することができ、そうすると、ボットサーバは結果をコールバックとしてチャネルウェブフックに返す。次に、これらのパラメータを複合コンポーネントに送ることができ、そうすると、複合コンポーネントはこれらのパラメータをJavaScriptのペアレントウィンドウに送ることができる(たとえばADFコンポーネント)。そうすると、このコンポーネントは、バッキングbeanをコールすることができる(たとえばタスクフローを開くために)。いくつかの実施形態において、JavaScriptを追加することによって音声をテキストに変換し、次にテキストをボットサーバ406にプッシュする。これは、タイプされたテキストメッセージの配信のやり方と同様であってもよい。チャットクライアントは、ウェブソケット456を用いてチャットサーバと通信することができる。
【0067】
図5Bは、実施形態の一例に係る、ウェブロジックコンテナを用いてダイアログフローを実現するためのシステムコンポーネントを示す。
図5Bはウェブロジックコンテナ404を示しており、これは、チャット構成460と、タスクフロー462と、チャットコンテキスト464と、チャットJSONモデル466と、チャットセキュリティ468と、メッセージイベント470と、ウェブソケットメディエータ472と、ベースカスタムコンポーネントAPI474と、ウェブフック476と、コンポーネントレジストリ478と、クレデンシャルストア480と、セキュリティコンテキスト482と、ビジネスサービスおよびコンポーネント484と、ロールおよびパーミッション486とを含み得る。
【0068】
チャット構成460は、チャットを、チャネルidおよびその他関連する構成情報で構成することができる。タスクフロー462は、UIコンポーネントおよび企業ソフトウェアアプリケーションに統合するために使用できるタスクフローメタデータを含み得る。チャットコンテキスト464は、ユーザコンテキスト、企業アプリケーションコンテキストなどを含む、チャットセッションのためのコンテキストデータを含み得る。チャットJSONモデル466は、ユーザをガイドするためにインテリジェンスボットを構成するためのデータ記述(たとえばダイアログフローデータドキュメントのデータ記述)を含み得る。
【0069】
チャットセキュリティ468は、閲覧ロールおよびサービスロール(たとえばボットサービス406に登録された限定されたユーザに与えられる)を含み得る。クレデンシャルストア480は、チャットセッションにおけるセキュリティを管理するために使用されるチャネルシークレットキーを格納することができ、セキュリティコンテキスト482は、外部カスタムコンポーネント(たとえば企業アプリケーションのカスタムコンポーネント)によってユーザロールが検証されることを保証することができる。
【0070】
メッセージイベント470は、ユーザとインテリジェンスボットとの間のメッセージ(たとえばボットサービス406からコールバックとして受信されるメッセージ)を表すことができる。いくつかの実施形態において、これはセキュアソケットレイヤ(secure sockets layer:「SSL」)プロトコルを用いて実現される。ウェブソケットメディエータ472は、チャットクライアントからメッセージを受信し、ボットサービス406にデータをプッシュすることができる。ベースカスタムコンポーネントAPI474を用いることにより、カスタムコンポーネント(たとえば企業データを返す企業アプリケーションのコンポーネント)からメッセージペイロードを読み出すことができる。ウェブフック476はチャネル構成の一部として構成される。コンポーネントレジストリ478は、スプリングアプリケーションコンテキストをレジストリとして用いることができ、これは、どのサービス/コンポーネントを共通レイヤから呼び出してビジネスレイヤに委任するかを示すことができる。
【0071】
いくつかの実施形態では、質疑応答(question and answer:Q&A)インテリジェンスボットも構成される。Q&Aボットは、質問および回答の予め定められたセットに依拠してユーザおよび顧客サービスをコンテキスト質問でガイドすることができる。Q&Aボットは、エラスティックサーチに依拠しビルトインルールおよび推測されたルールを用いてインテントを解決することができる。このタイプのボットは、企業ソリューションから素早いレスポンスを得るので、顧客サービスへの関与を最小にすることができ、また、複数の小売業者で繰り消し出される質問に答える際の企業開発チームの関与を少なくすることもできる。
【0072】
Q&Aボットはマスタおよびチャイルドボットを用いて実現することができ、これは、コンテキストセットに基づいて解決することができる。ある実施形態において、企業アプリケーションが小売であり予想およびオファー最適化(Forecasting and Offer Optimization)等のモジュールを有する場合、マスタボットをロジックで構成し特定のインテント解決の場合は特定のQ&Aボットに切り替えればよい。このように、予想およびオファー最適化は混合されるのではなく異なるボットに分離される。
【0073】
いくつかの実施形態において、カスタムコンポーネントを使用することにより、コンポーネントナビゲーションの後にインテントを解決することができる。たとえば、いくつかのダイアログナビゲーションは、インテリジェンスボットによって解決することができる。コンポーネントナビゲーションの一例は、カスタムコンポーネントが複数のメッセージを順に表示し、次にアクションを用いて次の状態に遷移するようインテリジェンスボットに要求する場合である。以下に実施形態の一例を示す。
ユーザ:最適化の結果を見せて下さい。
ボット:(カスタムコンポーネントをコールし、カスタムコンポーネントは最適化の結果についてのメッセージのリストをメトリクスとともに、さらに質問でユーザを促す次のアクションを返す(結果を承認するまたはコピーする?)
ユーザ:最適化の結果を(再度)見せて下さい
ボット:カスタム制御ナビゲーションではインテリジェンスボットはインテントを正確に解決し表示することができます
(カスタムコンポーネントをコールし、カスタムコンポーネントはメトリクスとともにメッセージのリストを、さらに質問でユーザを促すための次のアクションとともに、提供する(結果を承認するまたはコピーする?)
いくつかの実施形態において、ダイアログフローのナビゲーションは、ダイアログナビゲーションとカスタムコンポーネントナビゲーションとを含み得る。たとえば、ダイアログナビゲーションにおけるインテントはインテリジェンスボットによって解決できる(たとえば定められたダイアログフローおよび発話例を用いて)のに対し、カスタムコンポーネントナビゲーションのインテント解決はカスタムコンポーネントからインテリジェンスボットに転送することができる(本開示に記載のように)。カスタムコンポーネントナビゲーションの上記例において、カスタムコンポーネントは複数のメッセージを順番に表示し(ユーザアクション基準なしで)、ユーザによって促されると、カスタムコンポーネントはインテリジェンスボットを構成してユーザインテントを解決することを担う。いくつかの実施形態において、ダイアログフローのナビゲーションはダイアログナビゲーションとカスタムコンポーネントナビゲーションとを(たとえば組み合わせて)含み得る。
【0074】
複数のダイアログフロー例のナビゲーションを示すその他のテキスト例は次の通りである。
会話サンプル:全部門の国レベルでのレビュー
ユーザ:「米国内の私の店舗がどのような業績を上げているかを知りたい。」
ボット:「わかりました。店舗の国レベルのメトリクスを見てみたいということのようですね。<アメリカ、ヨーロッパ、電子商取引US>からロケーションを特定して下さい。
ユーザ:「アメリカ」
ボット:「特定部門または全部門のうちいずれをレビューしたいですか?」
ユーザ:「全部門」
ボット:「指定されたロケーション(複数ロケーション)および全部門の集約されたメトリクスは次の通りです。収入が2756451.736、収入の変動が-1.49%、売上総利益が1868901.003、売上総利益の変動が-3%、実売(sell through)が0.6861、実売の変動が1.28%。」
会話サンプル:選択部門の国レベルでのビュー
ユーザ:「米国内の私の店舗がどのような業績を上げているかを知りたい。」
ボット:「わかりました。店舗の国レベルのメトリクスを見てみたいということのようですね。<アメリカ、ヨーロッパ、電子商取引US>からロケーションを特定して下さい。
ユーザ:「アメリカ」
ボット:「特定部門または全部門のうちいずれをレビューしたいですか?」
ユーザ:「特定部門」
ボット:「ご興味のある部門は?」
ユーザ:「女性用スポーツウェア」
ボット:「指定されたロケーション(複数ロケーション)および部門(複数部門)の集約されたメトリクスは次の通りです。収入が2756451.736、収入の変動が-1.49%、売上総利益が1868901.003、売上総利益の変動が-3%、実売が0.6861、実売の変動が1.28%。
【0075】
会話サンプル:例外管理
ユーザ:「承認基準を満たさないロケーションを知りたい。」
ボット:「わかりました。例外の発見にご興味があるようですね。先ず、ご興味のある部門は?」
ユーザ:「女性用スポーツウェア」
ボット:「お探しのメトリクスは、収入改善、利幅改善、実売改善、または実売のいずれでしょうか?」
ユーザ:「実売」
ボット:「実績不振のロケーションを特定するためのしきい値(たとえば15%)を指定して下さい。」
ユーザ:「10%」
ボット:「実売が10%未満の女性用スポーツウェア部門のロケーションは会社です。」
ボット:「この部門およびロケーションについての実行サマリーを知りたいですか?」
ユーザ:「はい。」
ボット:実行「Copy_Of_test」のメトリクスは次の通りです。収入が2756451.736、収入の変動が-1.49%、売上総利益が1868901.003、売上総利益の変動が-3%、実売が0.6861、実売の変動が1.28%。」
ボット:「この実行を承認しますか-イエス/ノー?」
ここでのユーザの回答に応じてフローは異なる。ユーザが「イエス」と言った場合、ユーザは承認ユースケースに導かれる。ユーザが「ノー」と言った場合、ユーザはユースケース再計算に導かれる。
【0076】
会話サンプル:承認ユースケース
ユーザ:「メトリクスをレビューし今日の実行承認に対処したい。」
ボット:「わかりました。実行の承認にご興味があるようですね。まず、ご興味のあるロケーションは?」
ユーザ:「会社。」
ボット:「ご興味のある部門は?」
ユーザ:「女性用スポーツウェア。」
ボット:実行「Copy_Of_test」のメトリクスは次の通りです。収入が2756451.736、収入の変動が-1.49%、売上総利益が1868901.003、売上総利益の変動が-3%、実売が0.6861、実売の変動が1.28%。」
ボット:「この実行を承認しますか-イエス/ノー?」
ユーザ:「イエス。」
ボット:「この実行は承認され、オファーは顧客に送られました。」
ボット:「オファー最適化アプリケーションについて御用があればお知らせ下さい。」
会話サンプル:ユースケース再計算
ユーザ:「メトリクスをレビューし推奨に何らかの変更を加えるか否かを判断したい。」
ボット:「わかりました。推奨を受け入れるか拒絶するかにご興味があるようですね。先ず、ご興味のあるロケーションは?」
ユーザ:「会社。」
ボット:「ご興味のある部門は?」
ユーザ:「女性用スポーツウェア。」
ボット:「実行「Copy_Of_test」のメトリクスは次の通りです。収入が2756451.736、収入の変動が-1.49%、売上総利益が1868901.003、売上総利益の変動が-3%、実売が0.6861、実売の変動が1.28%。」
ボット:「この実行を承認しますか-イエス/ノー?」
ユーザ:「ノー。」
ボット:「提供されている推奨を受け入れますか/拒絶しますか?-受け入れる/拒絶する。」
ユーザ:「受け入れます。」
ボット:「プロモーション/値下げ推奨を受け入れますか?-プロモーション/値下げ。」
ユーザ:「プロモーション。」
ボット:「プロモーション推奨を受け入れる場合の最大値引率基準は?」
ユーザ:「40%」
ボット:「40%未満のプロモーション価格推奨が受け入れられました。」
ボット:「メトリクスを再び再計算して欲しいですか-イエス/ノー?」
ユーザ:「イエス。」
ボット:「この実行はメトリクス再計算のためにサブミットされました。新たなメトリクスを見る場合はボットにクエリして下さい。」
ボット:「オファー最適化アプリケーションについてさらに御用があればお知らせ下さい。」
いくつかの実施形態において、チャットセッションは、企業アプリケーションのコンテキストで開催することができる(たとえば、企業アプリケーションに対応付けられたアクションを実行するおよび/またはデータを取り出すために)。たとえば、企業アプリケーションは、オファー最適化機能(たとえば、オファー最適化付きのオラクル(登録商標)リテールアドバンストサイエンスクラウドサービス)を含み得る。いくつかの実施形態において、企業アプリケーションは、多次元(ディメンション)の企業データモデル等の企業データを含むおよび/またはこの企業データにアクセスすることができる。このようなモデルは、製品、メトリクス、ロケーション、カレンダー、シーズン、部門などのような、データディメンションを含み得る。いくつかの実施形態において、各ディメンションは、複数のメンバ(たとえば、複数の製品、組織メトリクス、ロケーション、カレンダータイミング、シーズン、部門など)を含み得るものであり、いくつかの実装例において、これらのメンバシップのうちの1つ以上がマルチレベル組織構造を有していてもよく、または階層として組織されてもよい(たとえば、製品が製品ラインの下に組織される、特定の組織メトリクスがより一般的なメトリクスの下に組織される、たとえば、店内収益が収益の下に、特定のロケーションがより大きな地理的ロケーションの下に、より細かいカレンダータイミングがより大きなカレンダータイミングの下に、たとえば週が月の下に、具体的な部門がより総合的な部門の下に組織される、など)。
【0077】
いくつかの実施形態において、これらのディメンションのクロスセクションは、特定の地理的ロケーションの範囲内の店舗における年間のうちの特定の時期の特定の製品ラインの総売上高のような、有用な情報を表すことができる。この例の場合、この情報は、製品、メトリクス、ロケーション、およびカレンダーというディメンションのメンバの指定されたクロスセクション(たとえば、興味の対象であるこれらのディメンション各々に含まれる個々のメンバによって特定されるクロスセクション)に基づいて、取り出すことができる。したがって、企業データにアクセスすることは、場合によっては、多次元データモデルのメンバを特定するパラメータを含み得る。
【0078】
いくつかの実施形態において、オファー最適化を用いることにより、プロモーション、値下げ、またはターゲット指定オファーについて推奨価格設定を決定することができる。たとえば、プロモーションおよび値下げは、ロケーションレベル(たとえば価格帯)であってもよく、ターゲット指定オファーは、ロケーションを考慮する、および/または各顧客固有のものとすることができる。プロモーション、値下げ、またはターゲット指定オファーのタイミングおよび深さは、製品のライフサイクルにわたる在庫管理に影響する可能性がある。たとえば、オファー最適化は以下のシナリオ例において有用となり得る。
・正規価格の販売期間だけでなくクリアランス期間においても在庫を所望レベルにする。
・製品のライフサイクル全体にわたって売上総利益を最大化する。
・シーズン中の業績を評価する。
・推奨を毎週更新する。そうすることで、新たな売上高、在庫、価格レベル、予定されたプロモーション、およびその他の関連データを含む、最近のデータに基づく意思決定が容易になる。
・ターゲット指定価格推奨をセグメントレベルで提供する。
【0079】
いくつかの実施形態において、オファー最適化を用いることにより、たとえば百貨店を対象とするバイヤーのビジネス戦略を、価格推奨を生成することで、強化することができる。バイヤーは、ビジネス戦略を指定することができ、プロモーションをいつオファーするか、プロモーションの深さ、プロモーションの一部とみなすべきアイテム、および値下げに関する同様の問いを、特定のビジネスルールおよび在庫レベルに留意して決定することを所望する場合がある。いくつかの実施形態において、オファー最適化は、プロモーションまたは値下げをオファーしたときの利益、および、最適化目的を効率的に達成できる顧客専用のプロモーションをオファーするか否かを考慮した、さまざまな価格の組み合わせを通して行うことができる。最適化が完了すると、この実行は、「レビュー可能」ステータスに入る。ユーザは、(たとえば各アイテムレベルで)推奨をレビューし、この推奨を受け入れるのか、拒絶するのか、または覆すのかを、判断することができる。終了すると、実行ステータスを「レビュー済」に変更することができる。レビュー済の実行は、承認のためにバイヤーに送ることができる。バイヤーがこの推奨を気に入った場合、バイヤーは実行ステータスを「サブミット済」に変更すればよい。たとえば、「サブミット」は価格推奨が価格実行システムまたはソフトウェアアプリケーションに送られることを示し得る。
【0080】
いくつかの実施形態において、最適化は、設定された処理(または実行)ロケーション、商品レベル、およびカレンダーレベルで実行することができる。最適化が完了すると、商品レベルおよびロケーションレベルに代わり、推奨レベルと呼ばれる、処理レベルよりも低いレベルで、推奨を生成することができる。ロケーションおよび商品レベルはそれぞれロケーション階層および商品階層におけるいずれかのレベルであればよい。実施形態は、次の点を考慮する最適化を含み、すなわち、最適化は実行の商品レベルの1つ下のレベルで行うことができる(たとえば、実行商品レベルが百貨店であれば、各ジョブはクラスレベルである)点、設定された推奨商品レベルにおいて、在庫は所望の推奨商品レベルにロールすることができるおよび/または在庫を複数のまたはすべてのロケーションにわたって集約して実行のロケーションレベルにできる点、価格推奨は推奨商品、ロケーション、ならびにカレンダーレベルおよび顧客セグメントレベルで生成できる点、である。
【0081】
図6A~
図6Cは、実施形態の一例に係るダイアログフローの一例を示す。たとえば、企業アプリケーション600は、小売オファー最適化アプリケーション等の企業アプリケーションを示す。チャットウィンドウ602は、インテリジェンスボットとユーザとの間のダイアログフローのナビゲーションを示し、これは、インテントの解決、企業データのカスタムデータレイヤのナビゲート、企業情報の取り出し、および企業バッチプロセスのトリガを含む。
【0082】
図7は、実施形態の一例に係る、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートするためのフロー図を示す。一実施形態において、
図7の機能は、メモリまたはその他のコンピュータ読取可能もしくは有形の媒体に格納されプロセッサによって実行されるソフトウェアによって実現される。その他の実施形態において、各機能は、ハードウェアによって(たとえば、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA])、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用を通して)実行されてもよく、または、ハードウェアとソフトウェアの任意の組み合わせによって実行されてもよい。実施形態において、
図7の機能は、
図2のシステム200の1つ以上の要素によって実行することができる。
【0083】
702において、ユーザと訓練されたインテリジェンスボットとの間のチャットセッションの開始後に、ユーザから1つ以上の発話を受信することができる。たとえば、チャットセッションは、企業アプリケーションとインターフェイスしているユーザと、ボットサービスから提供されるインテリジェンスボットとの間で開始することができる。ユーザのインテントまたはユースケースを示す発話または言語/テキストをユーザから受信することができる。
【0084】
704において、訓練されたインテリジェンスボットを用いて発話を処理することにより、複数の予め定められたインテントのうちのあるインテントを解決することができ、インテリジェンスボットは、ユーザの発話から、予め定められたインテントを、当該予め定められたインテントの各々に対応付けられた訓練データに基づいて解決するように訓練される。たとえば、インテリジェンスボットがその解決のために訓練される各インテントは、一連の発話例または訓練データに対応付けることができる。インテリジェンスボットは、これらの例を用いて訓練することができ、したがって、解決を実施するときに、複数のインテントのうちのあるインテントを区別することができる。
【0085】
706において、インテリジェンスボットは、たとえばユーザの発話に応答してメッセージを生成することができる。708において、たとえば、インテリジェンスボットからのプロンプトまたはメッセージに応じたユーザからのレスポンスを受信することができる。このやり取りは、710において、解決されたインテントに対応付けられた予め定められたダイアログフローをナビゲートすることを含み得る。
【0086】
たとえば、インテントは、ダイアログフローをナビゲートするためにインテリジェンスボットが使用する状態、遷移、および変数を定めるデータドキュメント(たとえば予め定められたダイアログフロー)に対応付けることができる。ある実施形態において、この予め定められたダイアログフローは、ユーザからの取り出し要求のパラメータを取得するようにインテリジェンスボットを構成し、このパラメータは、上記予め定められたダイアローグフローに対応付けられた解決したインテントに基づく。たとえば、ダイアログフローのナビゲートは、企業データの取り出しまたは企業バッチプロセスの実行等の、企業アクションに対して使用されるパラメータを確保することを含み得る。
【0087】
ある実施形態において、予め定められたダイアログフローをナビゲートすることは、取り出し要求のパラメータを入力するようユーザを促すインテリジェンスボットからの予め設定されたメッセージを生成することを含む。たとえば、この予め設定されたメッセージは、ダイアログフローを定めるデータ定義ドキュメント内の状態間の遷移中にインテリジェンスボットが生成することができる。ある実施形態において、複数の状態のうちの少なくとも第1の状態から複数の状態のうちの第2の状態に遷移することは、インテリジェンスボットが第1の状態で生成した第1の予め設定されたメッセージに応じたユーザからの入力に基づいていてもよい。たとえば、データ定義ドキュメントは、第1の予め設定されたメッセージに応じたユーザからの入力が第1のカテゴリのときは第1の状態から第2の状態への遷移を定め、第1の予め設定されたメッセージに応じたユーザからの入力が第2のカテゴリのときは第1の状態から第3の状態への遷移を定めることができる。
【0088】
712において、取り出し要求を生成することにより、ダイアログフローのナビゲートに基づくパラメータを用いて企業データを取り出すことができる。たとえば、企業データは、多次元データのクロスセクションを含み得るものであり、ダイアログフローのナビゲートは、インテリジェンスボットが、この多次元データを取りだすためのパラメータをユーザから取得することを含み得る。次に、カスタム機能(たとえばREST API)をコールすることにより、たとえば企業データストアまたはデータベースから企業データを取りだすことができる。
【0089】
714において、ダイアログフローをナビゲートする一方でバッチプロセスをトリガすることができる。たとえば、バッチプロセスは、最適化された小売オファーについての推奨を承認すること、プロモーション、値下げなどのしきい値等のこのプロセスのパラメータの編集後にオファー最適化プロセスを実行すること、推奨されたオファーまたは推奨するオファーのサブセットを拒絶すること、おのびその他適切なバッチプロセスを、含み得る。
【0090】
図8は、実施形態の一例に係る、在庫管理を含む、サプライヤ、在庫、およびロジスティックスの統合システムを示す。
図8に示されるように、システム800は、コードを実行することにより企業ロケーション801~804の製品のストックを倉庫880を用いて管理するとともに倉庫880から直接顧客に対して製品を出荷する企業ビジネスシステム870を含み得る。企業ビジネスシステム870は、クラウドネットワーク850またはその他の種類の通信ネットワークを介して1つ以上の在庫システム820と通信する。いくつかの実施形態において、企業ビジネスシステム870の小売オファー最適化ソフトウェアは、さまざまな製品について最適化されたオファーを生成することができる。在庫システム820および倉庫880は、これらの最適化されたオファーに基づいて企業ロケーション801~804へのおよびこれらのロケーションからの出荷を実行することができる。いくつかの実施形態において、カスタマイズされ訓練されたモデルを使用することで、これらの在庫レベルを改善することにより、より効率的な出荷プロセスを生み出すことができる。
【0091】
在庫システム820は、在庫を保管し、トラック810~813またはその他何らかの輸送機構を用いて輸送ロジスティックスを提供することにより、商品を企業ロケーション801~804および消費者ロケーション(たとえば消費者の自宅)に届けることができる。一実施形態における在庫システム820は、企業アプリケーション専用コンピュータシステムまたは専用在庫コントロールシステムを実現し、このシステムは、小売オファー最適化ソフトウェア等の企業ビジネスシステム810からの入力を用いることにより、在庫のレベルを判断するとともに企業ロケーション801~804への製品の配送の量およびタイミングを判断する。
【0092】
倉庫880は、在庫システム820に基づいて1つ以上の製品を企業ロケーション801~804に供給するとともに、製品を消費者ロケーション(たとえば消費者の自宅)に出荷する、フルフィルメント倉庫であってもよい。一実施形態における倉庫880は、小売オファー最適化ソフトウェア等の企業ビジネスシステム810からの入力を使用する専用コンピュータシステムまたは専用サプライヤシステムを実現することにより、在庫システム820および/または企業ロケーション801~804への製品の出荷の量およびタイミングを判断する。いくつかの実施形態において、たとえば、企業ロケーション801~804への返品に基づいて、倉庫880は、企業ロケーションからの出荷を受け入れることにより、たとえば企業ロケーションが供給過剰にならないことを保証するとともに十分な製品の種類を備えることができる。
【0093】
実施形態は、訓練されたインテリジェンスボットを用いてダイアログフローをナビゲートする。いくつかの実施形態において、ユーザと、訓練されたインテリジェンスボット等の訓練されたAIコンポーネントとの間のチャットセッションを開始することができる。たとえば、ユーザは、所定の構成の企業ソフトウェアアプリケーション等のソフトウェアアプリケーションとインターフェイスしている場合がある。このソフトウェアアプリケーションの構成は、このソフトウェアアプリケーションによって表示されるデータと、ユーザが閲覧している、解析中の、そうでなければ選択されたデータの、クロスセクションと、ユーザIDまたはロールと、その他任意の適切な構成情報とを含み得る。いくつかの実施形態において、そのようなソフトウェアアプリケーション構成情報は、コンテキストとして知られているものであってもよい。
【0094】
ユーザは、訓練されたインテリジェンスボットと対話しているときに、インテントを有する場合がある。たとえば、ユーザは、企業アプリケーションを使用しているとき、特定の企業データを取り出すこと、特定のデータを処理もしくは解析すること、または、バッチソフトウェアプロセスもしくはその他何らかの機能、これらを組み合わせたもの、もしくはその他任意の適切なインテントを実行することを、所望する場合がある。いくつかの実施形態において、インテリジェンスボットを、ユーザが入力したテキストまたはユーザの発話に基づいて複数のインテントのうちのあるインテントを解決するように、訓練することができる。たとえば、インテリジェンスボットを、複数のインテントの各々についてのテキスト例を用いて訓練することができ、したがって、それらの例を活用することで、ユーザの発話からインテントを解決することができる。インテリジェンスボットに送ることができるソフトウェアアプリケーションコンテキストを用いてインテントを解決することもできる。
【0095】
いくつかの実施形態において、解決したインテントに対応付けられた、予め定められたダイアログフローを、インテリジェンスボットによってナビゲートすることができる。たとえば、このインテントに対応付けられたダイアログフローを、マークアップ言語データドキュメント(またはその他のデータ記述言語ドキュメント)の場合のように定めることができる。いくつかの実施形態において、データドキュメントは、ダイアログフローについて、変数、状態、および遷移を定めることができる。インテリジェンスボットは、予め定められたダイアログフローに基づいて、ユーザとの間でメッセージをやり取りすることができる。いくつかの実施形態において、インテリジェンスボットは状態遷移に従ってダイアログフローをナビゲートするが、この状態遷移は、インテリジェンスボットのメッセージに対してユーザが与えるレスポンスに基づく。
【0096】
いくつかの実施形態において、ダイアログフローのナビゲートは、機能の実行をトリガすることができる。たとえば、取り出し要求を生成することにより、企業データを得ることができ、この取り出し要求についてのパラメータは、ダイアログフローのナビゲート中にユーザから与えられたレスポンスおよび/またはソフトウェアアプリケーションコンテキストに基づく。別の例において、ユーザ介入/編集に基づいて調整されたまたはユーザ承認を含むプロセス等のソフトウェアプロセス(たとえばバッチプロセス)を、トリガすることができ、ダイアログフローは、ソフトウェアプロセスに関連する、ユーザ介入、編集、および/または承認を含み得る。いくつかの実施形態において、これらの機能のうちの1つ以上がダイアログフローのナビゲーションに含まれ得る。
【0097】
本明細書全体を通して記載されている、本開示の特徴、構造、または特性は、1つ以上の実施形態において任意の適切なやり方で組み合わされてもよい。たとえば、本明細書全体を通して、「一実施形態」、「いくつかの実施形態」、「特定の実施形態」、「複数の特定の実施形態」、またはその他同様の表現が使用されている場合、それは、当該実施形態に関して記載されている特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれ得ることを意味している。よって、本明細書全体を通して、文言「一実施形態」、「いくつかの実施形態」、「特定の実施形態」、「複数の特定の実施形態」、またはその他同様の表現がある場合、それは、すべてが同一グループの実施形態を必ずしも意味する訳ではなく、記載されている特徴、構造、または特性は、1つ以上の実施形態において任意の適切なやり方で組み合わされてもよい。
【0098】
上記実施形態は、開示されているものと異なる順序のステップで、および/または開示されているものと異なる構成の要素で実施されてもよいことを、当業者は容易に理解するであろう。したがって、この開示は概要を示した実施形態について考察しているが、本開示の精神および範囲の中に留まっている特定の修正、変形、および代替構成が明白であることが、当業者には明らかであろう。よって、本開示の範囲を判断するには以下の請求項を参照する必要がある。