(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-04
(45)【発行日】2023-10-13
(54)【発明の名称】デュアル・ネットワークと共に訓練された主ネットワークを介した多目的タスクの実行
(51)【国際特許分類】
G06N 3/045 20230101AFI20231005BHJP
G06N 3/084 20230101ALI20231005BHJP
【FI】
G06N3/045
G06N3/084
(21)【出願番号】P 2021537204
(86)(22)【出願日】2020-02-03
(86)【国際出願番号】 IB2020050827
(87)【国際公開番号】W WO2020157731
(87)【国際公開日】2020-08-06
【審査請求日】2022-07-25
(32)【優先日】2019-02-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-02-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】カンター、アミール
(72)【発明者】
【氏名】ウジエル、ガイ
(72)【発明者】
【氏名】アナビー-タヴォール、アテレト
【審査官】坂庭 剛史
(56)【参考文献】
【文献】米国特許出願公開第2018/0357566(US,A1)
【文献】米国特許出願公開第2018/0210874(US,A1)
【文献】TESSLER, Chen et al.,"Reward Constrained Policy Optimization",arXiv [online],2018年12月,[2023年09月12日検索],インターネット<URL:https://arxiv.org/abs/1805.11074v3>,1805.11074v3
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-99/00
G06F 40/56
(57)【特許請求の範囲】
【請求項1】
プロセッサを含むシステムであって、前記プロセッサが、
多目的タスク用のデータを受信し、
訓練済みの主ネットワークを介して、受信した前記データに対して前記多目的タスクを実行し、前記主ネットワークおよびデュアル・ネットワークが、複数の目的を表すラグランジュ損失関数を使用して多目的タスク用に訓練され、前記主ネットワークが前記ラグランジュ損失関数を最小化するように訓練され、前記デュアル・ネットワークが前記ラグランジュ損失関数を最大化するように訓練される、システム。
【請求項2】
前記多目的タスクが、有限状態空間および有限行動空間を含むマルコフ決定過程を含む、請求項1に記載のシステム。
【請求項3】
前記主ネットワークが、別の設定から学習された一般的な方策またはランダムな初期化を使用して事前訓練される、請求項1に記載のシステム。
【請求項4】
前記デュアル・ネットワークが、訓練中にランダムに初期化される、請求項1に記載のシステム。
【請求項5】
前記主ネットワークが、訓練中の前記デュアル・ネットワークのステップ・サイズとは異なるステップ・サイズを含む、請求項1に記載のシステム。
【請求項6】
前記プロセッサが、尤度比推定に基づいて勾配を推定するように動作可能である、請求項1に記載のシステム。
【請求項7】
前記多目的タスクが、選択、分類、回帰、推奨、生成、または予測タスクを含む、請求項1に記載のシステム。
【請求項8】
前記プロセッサが受信するように動作可能である前記データが、会話の接頭辞およびテキスト入力であり、前記プロセッサが、前記訓練済みの主ネットワークを介して前記会話の接頭辞および前記テキスト入力に基づいて完成応答を生成するように動作可能である、請求項1に記載のシステム。
【請求項9】
前記プロセッサが、
複数の完成応答を生成し、
前記完成応答を含む前記複数の完成応答を選択用にユーザに提示し、
前記完成応答から選択された応答を受信し、
前記選択された応答を第2のユーザに送信する
ように動作可能である、請求項8に記載のシステム。
【請求項10】
前記会話の接頭辞が第1のユーザと第2のユーザとの間の対話を含み、前記テキスト入力が前記完成応答の一部を含む、請求項8に記載のシステム。
【請求項11】
前記主ネットワークおよび前記デュアル・ネットワークが、異なるパラメータおよび場合によっては追加のネットワーク要素を有する長短期記憶(LSTM)モデルを含む、請求項8に記載のシステム。
【請求項12】
前記複数の目的が、パープレキシティの目的または関連性の目的を含む、請求項8に記載のシステム。
【請求項13】
前記複数の目的が、冗長性非尤度の目的または意味的非類似度の目的を含む、請求項8に記載のシステム。
【請求項14】
前記複数の目的が、意味的一貫性の目的を含む、請求項13に記載のシステム。
【請求項15】
コンピュータ実施方法であって、
複数の目的を表すラグランジュ損失関数を使用して主ネットワークおよびデュアル・ネットワークを多目的タスク用に訓練することであって、前記主ネットワークおよび前記デュアル・ネットワークを訓練することが、前記ラグランジュ損失関数を最小化するように前記主ネットワークを訓練し、前記ラグランジュ損失関数を最大化するように前記デュアル・ネットワークを訓練することを含む、前記訓練することと、
前記多目的タスク用のデータを受信することと、
前記訓練済みの主ネットワークを介して、受信した前記データに対して前記多目的タスクを実行することと
を含む、コンピュータ実施方法。
【請求項16】
前記多目的タスクを、有限状態空間および有限動作空間を含むマルコフ決定過程として含む、請求項15に記載のコンピュータ実施方法。
【請求項17】
別の設定から学習された一般的な方策を使用して、または訓練中に前記主ネットワークをランダムに初期化して、前記主ネットワークを事前訓練することを含む、請求項15に記載のコンピュータ実施方法。
【請求項18】
訓練中に前記デュアル・ネットワークをランダムに初期化することを含む、請求項15に記載のコンピュータ実施方法。
【請求項19】
前記主ネットワークおよび前記デュアル・ネットワークを訓練することが、尤度比に基づいて前記主ネットワークおよび前記デュアル・ネットワークの勾配を推定することを含む、請求項15に記載のコンピュータ実施方法。
【請求項20】
前記主ネットワークおよび前記デュアル・ネットワークの異なるステップ・サイズに基づいて、前記主ネットワークおよび前記デュアル・ネットワークの方策勾配を更新することを含む、請求項15に記載のコンピュータ実施方法。
【請求項21】
前記主ネットワークおよび前記デュアル・ネットワークを訓練することが、前記主ネットワークおよび前記デュアル・ネットワークを交互に訓練することを含む、請求項15に記載のコンピュータ実施方法。
【請求項22】
受信される前記データが、会話の接頭辞およびテキスト入力であり、前記方法が、
前記訓練済みの主ネットワークを介して前記会話の接頭辞および前記テキスト入力に基づいて完成応答を生成すること含む、請求項15に記載のコンピュータ実施方法。
【請求項23】
複数の完成応答を生成することと、
前記完成応答を含む前記複数の完成応答を選択用にユーザに提示することと、
前記完成応答から選択された応答を受信することと、
前記選択された応答を第2のユーザに送信することと
を含む、請求項22に記載のコンピュータ実施方法。
【請求項24】
前記完成応答の信頼度スコアが閾値スコアを超えたことを検出したことに応答して、前記完成応答を問合せへの応答として送信すること
を含む、請求項22に記載のコンピュータ実施方法。
【請求項25】
前記完成応答を生成することが、前記テキスト入力で始まる前記完成応答を単語単位で反復的に構築することを含む、請求項22に記載のコンピュータ実施方法。
【請求項26】
前記完成応答を生成することが、複数の完成応答を生成するためのビーム探索を含む、請求項22に記載のコンピュータ実施方法。
【請求項27】
会話のターンの第1の制限を使用し、前記第1の制限を会話のターンの第2の制限まで段階的に増加させて、主ネットワークを訓練することを含む、請求項22に記載のコンピュータ実施方法。
【請求項28】
訓練データセット内のすべてのシーケンス間で冗長な応答を生成する尤度が低いシーケンスを使用して前記主ネットワークを訓練することを含む、請求項22に記載のコンピュータ実施方法。
【請求項29】
コンピュータ・プログラムであって、請求項15ないし28のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
【請求項30】
請求項29に記載のコンピュータ・プログラムを記録した、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、人工ニューラル・ネットワークに関する。より詳細には、本技術は、ニューラル・ネットワークを訓練および使用して多目的タスクを実行することに関する。
【発明の概要】
【0002】
本明細書に記載の実施形態によれば、システムが、多目的タスク用のデータを受信するためのプロセッサを含む。プロセッサはさらに、訓練済みの主ネットワークを介して、受信したデータに対して多目的タスクを実行することもでき、主ネットワークおよびデュアル・ネットワークが、複数の目的を表すラグランジュ損失関数(Lagrangian loss function)を使用して多目的タスク用に訓練される。主ネットワークはラグランジュ損失関数を最小化するように訓練され、デュアル・ネットワークはラグランジュ損失関数を最大化するように訓練される。
【0003】
本明細書に記載の別の実施形態によれば、方法が、複数の目的を表すラグランジュ損失関数を使用して、主ネットワークおよびデュアル・ネットワークを多目的タスク用に訓練することを含む。主ネットワークおよびデュアル・ネットワークを訓練することは、ラグランジュ損失関数を最小化するように主ネットワークを訓練すること、およびラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練することを含む。方法は、多目的タスク用のデータを受信することをさらに含むことができる。方法はまた、訓練済みの主ネットワークを介して、受信したデータに対して多目的タスクを実行することをさらに含むことができる。
【0004】
一実施形態によれば、前記プログラムがコンピュータ上で実行されると、段落3または段落7の方法を実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム製品が提供される。
【0005】
本明細書に記載の別の実施形態によれば、多目的タスクを実行するようにニューラル・ネットワークを訓練するためのコンピュータ・プログラム製品が、プログラム・コードが具現化されたコンピュータ可読記憶媒体を含む。コンピュータ可読記憶媒体は、一過性の信号自体ではない。プログラム・コードは、プロセッサによって実行可能であり、プロセッサに、複数の目的を表すラグランジュ損失関数を使用して主ネットワークおよびデュアル・ネットワークを多目的タスク用に訓練することを行わせる。プログラム・コードは、プロセッサに、ラグランジュ損失関数を最小化するように主ネットワークを訓練し、ラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練することを行わせることもできる。プログラム・コードは、プロセッサに多目的タスク用のデータを受信することを行わせることもできる。プログラム・コードは、プロセッサに、訓練済みの主ネットワークを介して、受信したデータに対して多目的タスクを実行することを行わせることもできる。
【0006】
一実施形態によれば、会話の接頭辞およびテキスト入力を受信し、訓練済みの主ネットワークを介して会話の接頭辞およびテキスト入力に基づいて完成応答(completed response)を生成するためのプロセッサを含むシステムであって、主ネットワークが、複数の目的を表すラグランジュ損失関数を最小化するように訓練され、デュアル・ネットワークが、ラグランジュ損失関数を最大化するように訓練される、システムが提供される。
【0007】
一実施形態によれば、コンピュータ実施方法であって、会話の接頭辞およびテキスト入力を受信することと、訓練済みの主ネットワークを介して会話の接頭辞およびテキスト入力に基づいて完成応答を生成することとを含み、訓練済みの主ネットワークが、複数の目的を表すラグランジュ損失関数を最小化するように訓練され、デュアル・ネットワークが、ラグランジュ損失関数を最大化するように訓練される、コンピュータ実施方法が提供される。
【0008】
一実施形態によれば、完成応答生成のためのコンピュータ・プログラム製品であって、プログラム・コードが具現化されたコンピュータ可読記憶媒体を含み、コンピュータ可読記憶媒体が、一過性の信号自体ではなく、プログラム・コードが、プロセッサによって実行可能であり、プロセッサに、複数の目的を表すラグランジュ損失関数を最小化するように主ネットワークを訓練し、ラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練することと、会話の接頭辞およびテキスト入力を受信することと、訓練済みの主ネットワークを介して、会話の接頭辞およびテキスト入力に基づいて完成応答を生成することとを行わせる、コンピュータ・プログラム製品が提供される。
【0009】
ここで、本発明の好ましい実施形態について、以下の図面を参照して単なる例として説明する。
【図面の簡単な説明】
【0010】
【
図1】多目的タスクを実行するように主ネットワークを訓練することができる例示的なミニマックス・ニューラル・ネットワークのブロック図である。
【
図2】訓練済みの主ネットワークを使用して多目的タスクを実行することができる例示的な方法のプロセス・フロー図である。
【
図3】訓練済みの主ネットワークを使用して自動化応答生成を実行することができる例示的な方法のプロセス・フロー図である。
【
図4】多目的タスクを実行するように主ネットワークを訓練するための例示的な方法のプロセス・フロー図である。
【
図5】自動化応答生成を実行する主ネットワークを訓練するための例示的な方法のプロセス・フロー図である。
【
図6】3つの長短期記憶(LSTM:long short-term memory)セルを含む例示的な主ニューラル・ネットワークの図である。
【
図7】(A)は、生成された完成応答のセットを含む例示的なチャット表示の図である。 (B)は、生成された更新済みの完成応答のセットを含む例示的なチャット表示の図である。
【
図8】ミニマックス・ニューラル・ネットワーク・アーキテクチャを使用して訓練された主ネットワークを使用して多目的タスクを実行することができる例示的なコンピューティング・デバイスのブロック図である。
【
図9】ミニマックス・ニューラル・ネットワーク・アーキテクチャを使用して訓練された主ネットワークを使用して自動化応答生成を実行することができる例示的なコンピューティング・デバイスのブロック図である。
【
図10】本明細書に記載の実施形態による例示的なクラウド・コンピューティング環境の図である。
【
図11】本明細書に記載の実施形態による例示的な抽象化モデル層の図である。
【
図12】訓練済みのミニマックス・ニューラル・ネットワークを使用して多目的タスクを実行することができる例示的な有形の非一過性コンピュータ可読媒体のブロック図である。
【
図13】自動化応答生成を実行するように主ネットワークを訓練することができる例示的な有形の非一過性コンピュータ可読媒体のブロック図である。
【発明を実施するための形態】
【0011】
ニューラル・ネットワークは、訓練データセット上で目的関数または損失関数を使用して、訓練中に目的関数によって表される特定の目的に関連する特定のタスクを実行するように訓練される。一部の実世界のアプリケーションでは、いくつかの目的を同時に実行することが求められる場合がある。いくつかの目的関数を学習アーキテクチャに組み込む1つの方法は、目的に相対的な重みを割り当てることによって、多目的問題を単一目的問題に変換する方法であり得る。しかしながら、異なる単位を有する異なる目的をどのように比較するかが不明確である場合があるので、このような重みを最適化することは困難である場合がある。さらに、学習器がいくつかの目的の閾値を満たす必要がある場合、単一目的手法は適切ではない可能性がある。また、いくつかの目的をある単一のオブジェクトに組み込むために重みを調整すること、および重みを調整することは、計算的に困難である場合がある。
【0012】
本明細書に記載の技術によれば、システムは、複数の目的を含む多目的タスク用のデータを受信するためのプロセッサを含むことができる。プロセッサは、訓練済みの主ネットワークを介して、受信したデータに対して多目的タスクを実行することができる。主ネットワークおよびデュアル・ネットワークは、複数の目的を表すラグランジュ損失関数を使用して交互に訓練される。一例において、プロセッサは、会話の接頭辞およびテキスト入力を受信することができる。次いで、プロセッサは、訓練済みの主ネットワークを介して、会話の接頭辞およびテキスト入力に基づいて完成応答を生成することができる。したがって、本明細書に記載の技術により、事前定義された相対的な重みを設定することなく、ニューラル・ネットワークを複数の目的を用いて訓練することが可能になる。また、本技術は、複数の目的で訓練されたニューラル・ネットワークを使用して、会話での問合せに対する自動化および半自動化された応答の改善を実現する。さらに、本技術は、テキストの自動化要約、環境との対話を学習する自律マシンなど、様々なアプリケーションで使用することができる。
【0013】
いくつかのシナリオにおいて、本明細書に記載の技術は、クラウド・コンピューティング環境に実装されてもよい。少なくとも
図8~
図13を参照して以下でより詳細に述べるように、多目的タスクを実行するように構成されたコンピューティング・デバイスは、クラウド・コンピューティング環境に実装されてもよい。本開示はクラウド・コンピューティングに関する説明を含み得るが、本明細書に記載された教示の実装はクラウド・コンピューティング環境に限定されないことをあらかじめ理解されたい。むしろ、本発明の実施形態は、現在知られている、または後に開発される他の任意のタイプのコンピューティング環境と組み合わせて実装することが可能である。
【0014】
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限の対話で迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの簡便かつオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0015】
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、サービス・プロバイダとの間で人間の対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して複数のコンシューマにサービス提供するようにプール化され、異なる物理リソースおよび仮想リソースが、要求に応じて動的に割当ておよび再割当てされる。コンシューマは一般に、提供されるリソースの正確な位置に対して制御も知識も有していないが、より高い抽象化レベルでは位置(例えば、国、州、またはデータセンター)を特定し得るという点で、位置の独立性があるといえる。
迅速な柔軟性:機能を、迅速かつ柔軟に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、プロビジョニングに利用可能な機能は、しばしば無制限であるように見え、いつでも任意の数量で購入することができる。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象化レベルでの計量機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、および報告することができ、利用するサービスのプロバイダとコンシューマの両方に透明性を提供する。
【0016】
サービス・モデルは、以下の通りである。
ソフト・ウェア・アズ・ア・サービス(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。限定されたユーザ固有のアプリケーション構成設定を想定される例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS):プロバイダによってサポートされるプログラミング言語およびツールを使用して生成されたコンシューマが生成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージなどの基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および場合によってはアプリケーションをホストする環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS):オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをコンシューマが展開および動作させることができる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングするために、コンシューマに提供される機能である。コンシューマは、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0017】
展開モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは複数の組織で共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界グループにとって利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された技術または専用の技術によって結び付けられる2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
【0018】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に焦点を置くことを重視したサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0019】
ここで
図1を参照すると、ブロック図は、多目的タスクを実行するように主ネットワークを訓練することができる例示的なミニマックス・ニューラル・ネットワークを示す。
図1の例示的なミニマックス・ニューラル・ネットワーク100は、主ネットワーク102およびデュアル・ネットワーク104を含む。主ネットワーク102およびデュアル・ネットワーク104は、ラグランジュ関数106に通信可能に結合されている。デュアル・ネットワーク104は、1対のラグランジュ乗数108を出力するように示されている。主ネットワーク102は、LSTMセル110を含む。デュアル・ネットワーク104は、LSTMセル112を含む。主ネットワークは、値114A、114B、114Cを受信し、値116A~116Dを出力するように示されている。デュアル・ネットワークは、値114A、114B、および114Cを受信するように示されている。
【0020】
図1の例では、主ネットワーク102およびデュアル・ネットワーク104は、ラグランジュ関数106を使用して互いに交互に訓練される。例えば、デュアル・ネットワーク104が一定に保たれている間、主ネットワーク102は、ラグランジュ関数106を最小化するように訓練されてもよい。同様に、主ネットワーク102が一定に保たれている間、デュアル・ネットワーク104は、ラグランジュ関数を最大化するように訓練されてもよい。したがって、方策に関する勾配降下法とラグランジュ乗数(Lagrange multiplier)に関する勾配上昇法との交互の反復が実行されてもよい。
【0021】
図1の例では、主ネットワーク102は生成ネットワークである。したがって、値114A、114B、および114Cによって表される単語を含む入力発話が与えられると、主ネットワーク102は、値116A~116Dによって表される単語の出力応答を生成する。値114A、114B、および114Cによって表される同じ入力発話が与えられると、デュアル・ネットワーク104は、ラグランジュ106の一部であるラグランジュ乗数108を出力する。
【0022】
具体的には、意思決定の問題は、有限の状態空間および行動空間を有するマルコフ決定過程(MDP:Markov Decision process)とすることができる。一般に、有限MDPはタプル
【数1】
で表すことができ、式中、X={1,…,n,x
Ter}およびA={1,…,m}はそれぞれ、状態空間および行動空間であり、x
Terは再帰的終了状態である。状態xおよび行動aの場合、R(x,a)を有界な報酬関数とすることができ、D
1(x,a)、…、Dn(x,a)を制約コスト関数とすることができる。
【数2】
を遷移確率分布とすることができ、P
0(・)は初期状態分布となる。MDPの定常方策μ(・|x)は、現在の状態を条件とする行動全体の確率分布である。方策勾配法では、このような方策を、k次元ベクトルθによってパラメータ化することができ、この表記法を使用して、方策の空間を、
【数3】
と記述することができる。この設定では、方策μがそのパラメータ・ベクトルθによって一意に定義されるので、方策依存関数を、μまたはθの関数として記述することができ、μ(・|x;θ)を使用して方策を示し、θを使用して方策(パラメータ)に対する依存関係を示す。多目的MDPの場合、最適化は次式を使用して表すことができる。
【数4】
式中、γ
1…γ
nはユーザ定義の閾値である。上記の問題を解くために、ラグランジュ緩和手順を使用して、式1を変換することができる。その結果、ラグランジュ関数の形式の制約のない問題、すなわち、
【数5】
となり、本明細書ではラグランジュとも呼ぶ。式中、λ
iはラグランジュ乗数である。多目的の目標を達成するために、主ネットワークは、ミニマックス方策に収束するように訓練されてもよい。具体的には、方策に関する勾配降下法とラムダ乗数に関する勾配上昇法などの交互の方策勾配更新を使用して、最適な方策に収束することができる。さらに、ラグランジュ変数は、状態空間を条件としてもよい。言い換えると、双対変数は、以下の式4に示すように、
【数6】
であるパラメータζを使用してパラメータ化された異なるデータ依存モデルとして扱われてもよい。
【数7】
式3と式4の同等性は、拡大された探索空間から得られ、ラムダ変数が一定である場合を含む。
【0023】
上記の式4の定式化を使用すると、
図1に見られるような2つの異なるネットワーク、主ネットワーク102およびデュアル・ネットワーク104を使用した2つの方策が同時にモデル化される。具体的には、
図1の主ネットワーク102およびデュアル・ネットワーク104は、チャット・ボットまたは任意の他の生成タスクで使用するための異なるパラメータを有する2つのLSTMモデルとしてモデル化されてもよい。ネットワークの目的関数はラグランジュであり、主ネットワーク102はラグランジュ関数を最小化する方策を見出すように構成され、デュアル・ネットワークはラグランジュ関数を最大化する方策を見出すように構成される。
【0024】
したがって、任意の数の複数の目的が、ラグランジュ乗数によって表され、主ネットワークの訓練に組み込まれてもよい。応答を生成する特定の生成タスクでは、組み込まれ得るいくつかの報酬関数は、冗長性非尤度の目的、意味的非類似度の目的、および意味的一貫性の目的を含むことができる。冗長性非尤度の目的は、対話での回答のしやすさを向上させてもよい。例えば、良好に生成された対話を行うための望ましい特性の1つは、各ターンにおいて、半自動化または自動化されたエージェントが、相手が応答しやすいと感じる応答を生成することであり得る。通常のSeq2Seqモデルを訓練すると、「あなたが何を話しているのか分かりません」、「全く分かりません」などの冗長な回答を得る可能性が高くなる場合がある。これらの回答は、言語モデルのパープレキシティの観点では適切であり、幅広い質問に適している場合があるが、このような回答を受け取った後に対話を継続することは困難である。したがって、エージェントによって生成されたターンへの回答の容易さを測定するために、順方向関数が使用されてもよい。いくつかの例において、この容易さの測定は、その発話に対して冗長な応答によって応答するという負の対数尤度を使用して行われてもよい。この関数を構築するために、いくつかの冗長な応答を演繹的に利用可能にし、それにより、会話のSEQ2SEQモデルで非常に頻繁に発生し得るこのような応答のセットSを、手動で構築することができる。このようなすべての応答を手動で見出すことは不可能ではないにせよ非常に困難であり得るが、同様の応答がSの応答の近くに埋め込まれるものと想定することができる。したがって、リスト内で発話を生成する可能性が低いシステムは、他の単調な応答を生成する可能性も低くなる。冗長性非尤度の目的は、式
【数8】
を使用して算出されてもよい。式中、N
SはSの濃度を示し、N
sは応答sのトークンの数を示し、
【数9】
は言語モデルの確率である。
【0025】
いくつかの例において、情報の流れを改善するために、意味的非類似度の目的を使用することができる。例えば、会話エージェントのもう1つの望ましい特性は、各ターンにおいて対話に新しい情報が追加されることであり得る。長い対話を生成するためには、各エージェントは各ターンで新しい情報を提供しなければならない。言い換えれば、対話はよどみなく進むべきであり、繰り返しのシーケンスは回避されるべきである。したがって、いくつかの例において、同じエージェントからの連続するターン間の意味的類似度にペナルティを課すことができる。形式的に、
【数10】
、
【数11】
を、符号器から取得された2つの連続するターンpiおよびpi+1に対する埋め込み表現とすると、次式に示すように、それらの間のコサイン類似度の負の対数によって、報酬を算出することができる。
【数12】
式中、(・,・)はユークリッド内積であり、||・||はユークリッド・ノルムである。
【0026】
いくつかの例において、意味的一貫性を改善するために、意味的一貫性の目的を訓練に含めることができる。前の報酬に加えて、別の目的は、生成された応答が確実に、実際に一貫性があり、会話のトピック、より正確には会話の前のターンのトピックに関連するようにすることであり得る。このタイプの要件は、行動aと以前の履歴ターンとの間の相互情報量を使用して測定することができ、次式を使用して、生成された応答が一貫性があり適切であることを保証することができる。
【数13】
式中、
【数14】
は、前の対話発話[p
i,q
i]が与えられた場合に応答を生成する確率を示し、
【数15】
は、応答aに基づいて前の対話発話qiを生成する後ろ向き確率を示す。このモデルを訓練するために、同じseq2seq(注意を用いたLSTMモデル)を、ソースとターゲットを交換して訓練することができる。損失をスケーリングするために、この報酬を、発話の長さで除算することができる。
【0027】
これらの報酬のすべてを一緒に組み込むために、報酬のうちの1つを選択して、閾値によって他の目的によって制約される主要損失にすることができる。したがって、次式を使用して、問題を多目的問題に変換することができる。
【数16】
【0028】
図1のブロック図は、ミニマックス・ニューラル・ネットワーク100が
図1に示すコンポーネントのすべてを含むことを示すものではないことを理解されたい。むしろ、ミニマックス・ニューラル・ネットワーク100は、より少ないコンポーネント、または
図1に示されていない追加のコンポーネント(例えば、追加の入力、出力、モデル、ニューラル・ネットワーク、セル、ラグランジュ乗数など)を含むことができる。
【0029】
図2は、訓練済みの主ネットワークを使用して多目的タスクを実行することができる例示的な方法のプロセス・フロー図である。方法200は、
図8のコンピューティング・デバイス800などの任意の適切なコンピューティング・デバイスを用いて実施され得る。例えば、方法200は、
図8のコンピューティング・デバイス800のプロセッサ802を使用して、または
図12のプロセッサ1202およびコンピュータ可読媒体1200を使用して実施され得る。
【0030】
ブロック202において、ミニマックス・ニューラル・ネットワークの主ネットワークおよびデュアル・ネットワークは、複数の目的を表すラグランジュ損失関数を使用して多目的タスク用に訓練される。主ネットワークはラグランジュ損失関数を最小化するように訓練され、デュアル・ネットワークはラグランジュ損失関数を最大化するように訓練される。いくつかの例において、多目的タスクは、有限状態空間および有限行動空間を含むマルコフ決定過程である。様々な例において、主ネットワークは、別の設定から学習された一般的な方策を使用して、または訓練中に主ネットワークをランダムに初期化することによって、事前訓練される。いくつかの例において、デュアル・ネットワークは、訓練中にランダムに初期化される。いくつかの例において、主ネットワークとデュアル・ネットワークの勾配は、尤度比に基づいて推定される。様々な例において、主ネットワークおよびデュアル・ネットワークの方策勾配は、主ネットワークおよびデュアル・ネットワークの異なるステップ・サイズに基づいて交互に更新される。いくつかの例において、主ネットワークおよびデュアル・ネットワークは、既存のデータセット、シミュレータ、環境からのフィードバック、またはそれらの任意の組合せを使用して交互に訓練される。例えば、ミニマックス・ニューラル・ネットワークは、
図4の方法400を使用して訓練され得る。
【0031】
ブロック204において、多目的タスク用のデータが受信される。例えば、自動化応答生成の場合、データは、入力テキストからの単語および会話の接頭辞を含んでもよい。
【0032】
ブロック206において、訓練済みの主ネットワークを介して、受信したデータに対して多目的タスクが実行される。例えば、多目的タスクは、自動化応答生成、選択、分類、またはニューラル・ネットワークを使用して実行できる任意の他の多目的タスクとすることができる。
【0033】
矢印208で示すように、いくつかの例において、多目的タスク、および追加のデータに基づいて実行される追加の多目的タスク用に、追加のデータを受信することができる。例えば、追加のデータは、追加の入力テキストおよび会話の追加の接頭辞とすることができる。
【0034】
図2のプロセス・フロー図は、方法200の動作が特定の順序で実行されること、または方法200の動作のすべてがあらゆる事例に含まれることを意図するものではない。さらに、方法200は、任意の適切な数の追加の動作を含むことができる。
【0035】
図3は、訓練済みの主ネットワークを使用して自動化応答生成を実行することができる例示的な方法のプロセス・フロー図である。方法300は、
図9のコンピューティング・デバイス900などの任意の適切なコンピューティング・デバイスを使用して実施され得る。例えば、方法300は、
図9のコンピューティング・デバイス900のプロセッサ802を使用して、または
図13のプロセッサ1302およびコンピュータ可読媒体1300を使用して実施され得る。
【0036】
ブロック302において、会話の接頭辞およびテキスト入力が受信される。例えば、会話の接頭辞は、第1のユーザと第2のユーザとの間の会話の1つまたは複数のターンを含んでもよい。テキスト入力は、第2のユーザからの問合せに応答して第1のユーザによって入力された1つまたは複数の単語を含む。
【0037】
ブロック304において、訓練済みの主ネットワークを介して、会話の接頭辞およびテキスト入力に基づいて完成応答が生成される。訓練済みの主ネットワークは、複数の目的を表すラグランジュ損失関数を最小化するように訓練される。デュアル・ネットワークは、ラグランジュ損失関数を最大化するように訓練される。例えば、主ネットワークとデュアル・ネットワークを交互に訓練して、ラグランジュ損失関数を最小化および最大化することができる。様々な例において、主ネットワークは、会話のターンの第1の制限を使用し、制限を会話のターンの第2の制限まで段階的に増加させて、訓練される。いくつかの例において、主ネットワークは、訓練データセット内のすべてのシーケンス間で冗長な応答を生成する尤度が低いシーケンスを使用して訓練される。いくつかの例において、複数の完成応答が生成され得る。いくつかの例において、テキスト入力で始まる完成応答が、単語単位で反復的に構築され得る。いくつかの例において、いくつかの完成応答を生成するために、ビーム検索が使用される。
【0038】
ブロック306において、完成応答を含む完成応答が、選択用に第1のユーザに提示される。例えば、完成応答は、
図7の(A)および(B)に示すようにリストとして表示されてもよい。
【0039】
ブロック308において、完成応答から選択された応答が受信される。例えば、ユーザは、応答をクリックするか下にスクロールして応答のリストから応答を選択することによって、または完成応答を単語単位で追加することによって、応答を選択してもよい。
【0040】
ブロック310において、選択された応答が第2のユーザに送信される。例えば、選択された応答は、第1のユーザが応答をタイプ入力して応答を送信したかのように、第2のユーザに送信されてもよい。したがって、選択された応答は、通信ツールまたはアプリケーションを介して送信されてもよい。いくつかの例において、第2のユーザから追加の問合せが受信されてもよく、方法が、ブロック302で再び開始してもよい。
【0041】
図3のプロセス・フロー図は、方法300の動作が特定の順序で実行されること、または方法300の動作のすべてがあらゆる事例に含まれることを意図するものではない。さらに、方法300は、任意の適切な数の追加の動作を含むことができる。例えば、方法300は、追加の受信された会話の接頭辞およびテキスト入力に対して繰り返され得る。いくつかの例において、方法300は、完成応答の信頼度スコアが閾値スコアを超えたことを検出したことに応答して、完成応答を問合せへの応答として送信することを含むことができる。
【0042】
図4は、多目的タスクを実行するように主ネットワークを訓練するための例示的な方法のプロセス・フロー図である。方法400は、
図8のコンピューティング・デバイス800などの任意の適切なコンピューティング・デバイスを用いて実施され得る。例えば、方法400は、
図8のコンピューティング・デバイス800のプロセッサ802を使用して、または
図12のプロセッサ1202およびコンピュータ可読媒体1200を使用して実施され得る。
【0043】
ブロック402において、訓練データセットおよび複数の目的が受信される。訓練データセットは、実行すべき特定の多目的タスクに応じたデータを含んでもよい。例えば、生成テキスト・タスクのデータセットは、
図5に関して説明した会話を含んでもよい。目的には、他の可能な目的の中でもとりわけ、関連性、リスクの低減、冗長性の低減、意味的類似度の低減、および意味的一貫性が含まれ得る。いくつかの例において、目的は、損失関数の形式で受信されてもよい。
【0044】
ブロック404において、訓練すべきミニマックス・ニューラル・ネットワークの主ネットワークおよびデュアル・ネットワークが初期化される。例えば、主ネットワークは、完全教師あり設定から学習された一般的な応答方策を使用して事前訓練されるか、ランダムに初期化され得る。デュアル・ネットワークは、ランダムに初期化され得る。
【0045】
ブロック406において、主ネットワークおよびデュアル・ネットワークは、複数の目的を表すラグランジュ損失関数を使用して交互に訓練される。いくつかの例において、多目的タスクは、有限状態空間および有限行動空間を含むマルコフ決定過程とすることができる。主ネットワークは、ラグランジュ損失関数を最小化するように訓練され、デュアル・ネットワークは、ラグランジュ損失関数を最大化するように交互に訓練され得る。
【0046】
ブロック408において、主ネットワークおよびデュアル・ネットワークの方策勾配は、主ネットワークおよびデュアル・ネットワークの異なるステップ・サイズに基づいて更新される。いくつかの例において、主ネットワークおよびデュアル・ネットワークの勾配は、尤度比推定器(likelihood ratioestimator)に基づいて推定される。
【0047】
判定のひし形410において、訓練を使い切ったかどうかに関して判定がなされる。例えば、訓練の前に、検証分割に関する事前設定条件が設定されてもよく、またはいくつかの測定の手動検査が実行される。
【0048】
ブロック412において、訓練は終了する。次いで、主ネットワークを使用して、(
図2のように)受信したデータに対して多目的タスクを実行してもよい。
【0049】
図4のプロセス・フロー図は、方法400の動作が特定の順序で実行されること、または方法400の動作のすべてがあらゆる事例に含まれることを意図するものではない。さらに、方法400は、任意の適切な数の追加の動作を含むことができる。例えば、方法400に、追加の判定のひし形もしくは条件、またはさらには訓練中に測定される様々な測定基準の手動検査が含まれてもよい。
【0050】
図5は、自動化応答生成を実行するように主ネットワークを訓練するための例示的な方法のプロセス・フロー図である。方法500は、
図9のコンピューティング・デバイス900などの任意の適切なコンピューティング・デバイスを用いて実施され得る。例えば、方法500は、
図9のコンピューティング・デバイス900のプロセッサ802を使用して、または
図13のプロセッサ1302およびコンピュータ可読媒体1300を使用して実施され得る。
【0051】
ブロック502において、訓練データセットおよび複数の目的が受信される。例えば、訓練データセットは、映画の会話のOpenSubtitlesデータセットとすることができる。OpenSubtitlesデータセットは、映画の登場人物が発した文を含んでいる。例えば、このデータセットでは、各発話を、前の発話に対する応答として、また次の応答のコンテキストとして扱うことができる。したがって、訓練および検証分割は、訓練の例として6200万個の文(9億2300万個のトークン)を含む場合があり、テスト・セットは2600万個の文(3億9500万個のトークン)を含む場合がある。分割は、1対の文の各文が訓練セットまたはテスト・セットの両方ではなくいずれかに共に表示されるような方法で行われる。映画の範囲が広いことを考慮すると、これは、オープンドメインの会話データセットである。データセット内の各ターンは、ターゲットとして扱われてもよく、前の2つの文の連結は、ソース入力として扱われてもよい。
【0052】
ブロック504において、主ネットワークは、事前選択されたモデルに基づいて事前訓練され、デュアル・ネットは、ランダムに初期化される。例えば、主ネットワークは、シーケンス間(Seq2Seq)言語モデルを用いて初期化されてもよい。いくつかの例において、強化学習(RL)システムは、完全教師あり設定から学習される一般的な応答生成方策を使用して初期化される。事前訓練用に選択されるモデルは、単純なモデルでもよく、任意の他のモデルと置き換えることができる。生成された文は、Seq2Seq言語モデルによって定義された方策に従って実行される行動と見なすことができる。方策は、
【数17】
である状態が与えられた場合の行動の確率分布によって定義されてもよい。いくつかの例において、この確率分布はSeq2SeqLSTMモデルを使用してモデル化される。いくつかの例において、LSTMモデルを、任意の他の適切な別の言語生成モデルに置き換えることができる。
【0053】
したがって、行動は、生成された発話とすることができる。方法500の訓練は対話を含むので、状態空間は、会話の過去のターンについての情報を含む場合がある。例えば、状態は、前の2つの対話ターン[pi,qi]を含んでもよい。したがって、状態のベクトル表現は、以前に生成された応答piと第2のエージェントからの応答qiとの連結によって符号化される。
【0054】
ブロック506において、ミニマックス・ニューラル・ネットワークの主ネットワークおよびデュアル・ネットワークは、複数の目的を表すためのラグランジュ損失関数を使用して訓練データセット上で交互に訓練される。いくつかの例において、ミニマックス・ニューラル・ネットワークは、会話の2つのターンの初期制限を使用して訓練され、制限は会話の5つターンまで段階的に増加される。いくつかの例において、ミニマックス・ニューラル・ネットワークは、訓練データセット内の他のシーケンスよりも冗長な応答を生成する尤度が低いシーケンスを含む所定数のシーケンスを使用して訓練される。いくつかの例において、対話シミュレーションの別の有用なステップとして、OpenSubtitlesデータセットから1000万個のメッセージのサブセットが取得されてもよく、初期入力に対する応答が容易であることを保証するために、セットから冗長な応答を生成する尤度が最も低い80万個のシーケンスが抽出されてもよい。
【0055】
ブロック508において、主ネットワークおよびデュアル・ネットの方策勾配が、異なるステップ・サイズに基づいて交互に更新される。例えば、方策勾配を交互に更新するために、異なる時間スケール方法が使用されてもよい。ミニマックス・ネットワーク訓練は2つの異なる(交互の)勾配方策の更新を含むので、主ネットワークおよびデュアル・ネットワークのそれぞれは、異なるステップ・サイズを有することになる。例えば、主ネットワークのステップ・サイズは、訓練中のデュアル・ネットワークのステップ・サイズとは異なる桁数とすることができる。したがって、主ネットワークは、より高い収束率を受信することになり、一方、デュアル・ネットは、より小さいステップ・サイズを受信することになり、したがって収束がより遅くなる。いくつかの例において、方策の勾配を推定するために、尤度比推定器が使用される。尤度比推定器は、統計理論に基づいて勾配を推定することができる。例えば、尤度比推定器は、1992年に公開されたREINFORCEトリックを使用することができる。
【0056】
判定のひし形510において、訓練を使い切ったかどうかに関して判定がなされる。例えば、訓練の前に、事前設定された訓練の反復回数を設定することができる。
【0057】
ブロック512において、訓練は終了する。次いで、主ネットワークを使用して、上記の
図3で説明したように、受信した問合せに対する自動化応答を生成してもよい。
【0058】
図5のプロセス・フロー図は、方法500の動作が特定の順序で実行されること、または方法500の動作のすべてがあらゆる事例に含まれることを意図するものではない。さらに、方法500は、任意の適切な数の追加の動作を含むことができる。例えば、方法500に、追加の判定のひし形もしくは条件、またはさらには訓練中に測定される様々な測定基準の手動検査が含まれてもよい。
【0059】
図6は、3つの長短期記憶(LSTM)セルを含む例示的な主ニューラル・ネットワークの図である。例示的なニューラル・ネットワーク600は、方法500を使用して訓練され、方法300および
図9のコンピューティング・デバイス900を使用して完成応答を生成することができる。例えば、ニューラル・ネットワーク600は、注意メカニズムの有無にかかわらず、シーケンス間深層学習アーキテクチャとすることができる。
図6は、3つのLSTMセル602、604、および606を含む。第1のLSTMセル602は、クライアントの問合せに対応する単語608A、608B、608C、および608Dを含む。第2のLSTMセル604は、人間のエージェントからのテキスト入力に対応するテキスト入力610Aおよび610Bを含む。第3のLSTMセル606は、完成応答の完成部分に対応する単語612A、612B、612C、および612Dを含む。
【0060】
図6に示すように、第1のLSTM602は、クライアントの問合せを単語単位で、または会話の完全な接頭辞を受信し、単語を固定長の隠れ状態ベクトルhAとして符号化する。第2のLSTM604は、人間のエージェントからテキスト入力を受信し、テキスト入力を単語単位で符号化することによって、ベクトルhAを隠れ状態ベクトルhBに変換する。第3のLSTM606は、ベクトルhBを、完成応答の完成部(completion)である出力単語612A~612Dのシーケンスに変換(復号)する。完成応答は、テキスト入力610A、610Bを完成部612A~612Dと連結することによって生成され得る。いくつかの例において、ニューラル・ネットワーク600は、1つの完成回答を生成する代わりに、いくつかの完成応答を抽出することができる。例えば、いくつかの完成応答は、ビーム検索を使用して抽出され得る。
【0061】
訓練フェーズでは、すべての履歴会話が、クライアントの問合せ、対応する人間のエージェントの応答の開始、およびエージェントの応答の終了で構成される訓練トリプルに変換される。人間のエージェントの応答は、開始と終了のすべての組合せに分けられる。応答は、異なる訓練例を生成するために各単語で区分されてもよい。ニューラル・ネットワーク600は、すべての目的を組み込んだラグランジュ損失関数を介して複数の目的を使用して訓練されてもよい。例えば、訓練中に使用される目的には、本明細書に記載の目的の中でもとりわけ、単語単位の確率、エージェントの応答の終了のパープレキシティ、および関連性が含まれ得る。
【0062】
図7の(A)は、生成された完成応答のセットを含む例示的なチャット表示の図である。例示的なチャット表示700Aは、
図3の方法300および
図5の方法500を使用する
図9のコンピューティング・デバイス900を使用して生成され得る。
【0063】
図7の(A)には、通信チャネルを介した人間の顧客サービス・エージェントのチャット表示700Aが示されている。
図7の(A)における第1のメッセージ702は、企業用に自動的に生成されたものである。第2のメッセージ704は、顧客から受信される。画面の下部、横線の上では、人間のエージェントが自分の応答を入力している。プレーン・テキストには、エージェントのテキスト入力706A「喜んで(I’ll be happy)」が表示されている。テキスト入力706Aの下に、どのように応答を完了するかに関するエージェントのための3つの提案708A、708B、および708Cが表示されている。例えば、提案708A、708B、および708Cは、本明細書に記載の技術を使用して生成されてもよい。選択された提案708Aは、選択されたテキスト内のテキスト入力に続いて、線の上にも表示される。例示的なチャット表示700Aに見られるように、3つの自動化された提案708A、708B、および708Cは、第1のメッセージ702および第2のメッセージ704を含む会話コンテキストと、エージェントのテキスト入力706Aとの両方に基づいてもよい。
【0064】
図7の(B)は、生成された更新済みの完成応答のセットを含む例示的なチャット表示の図である。例示的なチャット表示700Aは、
図3の方法300および
図5の方法500を使用する
図9のコンピューティング・デバイス900を使用して生成され得る。
【0065】
図7の(B)では、エージェントがタイプ入力を続けると、更新済みのチャット表示700B内の更新済みのテキスト入力706Bの下に、提案応答708D、708E、708Fの新しいセットが表示される。したがって、エージェントのタイプ入力に応じて、新しい提案応答がリアルタイムで生成されてもよい。例えば、エージェントがテキスト入力706Bに追加の単語を入力するたびに、提案応答の新しいセットが生成されてもよい。選択された応答708Eなど、提案応答のうちの1つが正しい場合、エージェントはその応答を選択することができ、応答708Eがユーザに送信されることになる。
【0066】
したがって、人間のエージェントと顧客との間のゼロ個以上のテキスト・メッセージを含む会話の接頭辞が与えられ、部分的な応答に対応するエージェントによる最初のテキスト入力が与えられると、アプリケーションは、1つまたは複数の完成応答を提案することができる。完成部は、進行中の会話だけでなく、特定のテキスト入力に対応してもよい。いくつかの例において、テキストに加えて他のタイプのデータおよびメタデータが、会話接頭辞、テキスト入力、またはさらには完成応答の一部として含まれてもよい。例えば、メタデータには、画像、ビデオ、ウェブ・リンクなどが含まれ得る。いくつかの例において、完成応答は、履歴会話から自動的に学習されてもよい。例えば、履歴会話を、完成応答を生成するために使用されるニューラル・ネットワークを訓練するための訓練データとして使用することができる。同様に、履歴会話を使用してニューラル・ネットワークを訓練し、チャット・ボットなどのエンド・ツー・エンドのソリューションを作成することもできる。ニューラル・ネットワークが追加の会話で訓練され得るので、アプリケーションはそれぞれの新しい会話と共に向上し続けることができる。いくつかの例において、エージェントが単一の単語をタイプ入力する前でも高い信頼度で応答が識別される会話の部分では、完成応答は、人間の介入なしに完全に自動化されてもよい。したがって、提案応答を使用すること、または応答を完全にタイプ入力する代わりに信頼度の高い応答を自動的に送信することによって、時間を節約することができる。さらに、タイプミスおよび他のエラーの機会を排除することによって、応答の品質を向上させることができる。
【0067】
図8は、ミニマックス・ニューラル・ネットワーク・アーキテクチャを使用して訓練された主ネットワークを使用して多目的タスクを実行することができる例示的なコンピューティング・デバイスのブロック図である。コンピューティング・デバイス800は、例えば、サーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、またはスマートフォンとすることができる。いくつかの例において、コンピューティング・デバイス800は、クラウド・コンピューティング・ノードとすることができる。コンピューティング・デバイス800は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラム・モジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などが含まれ得る。コンピューティング・デバイス800は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境において実現されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に配置されてもよい。
【0068】
コンピューティング・デバイス800は、格納された命令を実行するプロセッサ802と、動作中の前記命令の動作のための一時的なメモリ空間を提供するメモリ・デバイス804とを含んでもよい。プロセッサは、シングルコア・プロセッサ、マルチコア・プロセッサ、コンピューティング・クラスタ、または任意の数の他の構成とすることができる。メモリ804は、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ、フラッシュ・メモリ、または任意の他の適切なメモリ・システムを含むことができる。
【0069】
プロセッサ802は、システム相互接続806(例えば、PCI(R)、PCI-Express(R)など)を介して、コンピューティング・デバイス800を1つまたは複数のI/Oデバイス810に接続するように適合された入力/出力(I/O)デバイス・インターフェース808に接続されてもよい。I/Oデバイス810には、例えば、キーボードおよびポインティング・デバイスが含まれてもよく、ポインティング・デバイスには、とりわけ、タッチパッドまたはタッチスクリーンが含まれてもよい。I/Oデバイス810は、コンピューティング・デバイス800の内蔵コンポーネントとすることができ、またはコンピューティング・デバイス800に外部接続されているデバイスとすることができる。
【0070】
プロセッサ802はまた、システム相互接続806を介して、コンピューティング・デバイス800を表示デバイス814に接続するように適合された表示インターフェース812にリンクされてもよい。表示デバイス814は、コンピューティング・デバイス800の内蔵コンポーネントである表示画面を含んでもよい。表示デバイス814はまた、とりわけ、コンピューティング・デバイス800に外部接続されたコンピュータ・モニタ、テレビ、またはプロジェクタを含んでもよい。さらに、ネットワーク・インターフェース・コントローラ(NIC)816は、システム相互接続806を介してコンピューティング・デバイス800をネットワーク818に接続するように適合されてもよい。いくつかの実施形態において、NIC816は、とりわけ、インターネット小型コンピュータ・システム・インターフェースなどの任意の適切なインターフェースまたはプロトコルを使用してデータを送信することができる。ネットワーク818は、とりわけ、セルラ・ネットワーク、無線ネットワーク、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、またはインターネットとすることができる。外部コンピューティング・デバイス820は、ネットワーク818を介してコンピューティング・デバイス800に接続してもよい。いくつかの例において、外部コンピューティング・デバイス820は、外部ウェブサーバ820とすることができる。いくつかの例において、外部コンピューティング・デバイス820は、クラウド・コンピューティング・ノードとすることができる。
【0071】
プロセッサ802はまた、システム相互接続806を介して、ハードドライブ、光学ドライブ、USBフラッシュ・ドライブ、ドライブのアレイ、またはそれらの任意の組合せを含み得る記憶デバイス822にリンクされてもよい。いくつかの例において、記憶デバイスは、受信器824、主ネットワーク826、および訓練ネットワーク828を含んでもよい。受信器824は、多目的タスク用のデータを受信することができる。例えば、いくつかの目的が、損失関数の形式で受信されてもよい。目的のタスクは、他の可能なタスクの中でも、選択タスク、分類タスク、または生成タスクとすることができる。例えば、多目的タスクは、選択、分類、回帰、推奨、生成、またはその他のタイプの予測タスクを含むことができる。主ネットワーク826は、訓練ネットワーク828を介して、受信したデータに対して多目的タスクを実行するように訓練され得る。例えば、訓練ネットワーク828は、ミニマックス・ニューラル・ネットワークとすることができる。例えば、訓練ネットワーク828は、主ネットワークおよびデュアル・ネットワークを含むことができる。訓練ネットワーク828は、いくつかの目的を表すラグランジュ損失関数を使用して、主ネットワークおよびデュアル・ネットワークを多目的タスク用に訓練することができる。訓練ネットワーク828は、ラグランジュ損失関数を最小化するように主ネットワークを訓練し、ラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練する。いくつかの例において、多目的タスクは、有限状態空間および有限行動空間を含むマルコフ決定過程である。いくつかの例において、訓練ネットワーク828は、別の設定から学習された一般的な方策、またはランダムな初期化を使用して、主ネットワークを事前訓練する。訓練ネットワーク828は、訓練中、デュアル・ネットワークをランダムに初期化することができる。いくつかの例において、主ネットワークは、訓練中のデュアル・ネットワークのステップ・サイズよりも小さいステップ・サイズを有する。例えば、主ネットワークのステップ・サイズは、デュアル・ネットワークのステップ・サイズよりも1桁以上小さくてもよい。いくつかの例において、訓練ネットワーク828は、尤度比推定に基づいて勾配を推定することができる。例えば、訓練ネットワーク828は、
図4の方法400を使用して主ネットワークを訓練することができる。
【0072】
図8のブロック図は、コンピューティング・デバイス800が
図8に示すコンポーネントのすべてを含むことを示すものではないことを理解されたい。むしろ、コンピューティング・デバイス800は、より少ないコンポーネント、または
図8に示されていない追加のコンポーネント(例えば、追加のメモリ・コンポーネント、組込みコントローラ、モジュール、追加のネットワーク・インターフェースなど)を含むことができる。さらに、受信器824、主ネットワーク826、および訓練ネットワーク828の機能のいずれかは、部分的または全体的に、ハードウェアまたはプロセッサ802あるいはその両方に実装されてもよい。例えば、機能は、とりわけ、特定用途向け集積回路、組込みコントローラに実装された論理、またはプロセッサ802に実装された論理で実装されてもよい。いくつかの実施形態において、受信器824、主ネットワーク826、および訓練ネットワーク828の機能は、論理で実装することができ、本明細書に記載の論理は、任意の適切なハードウェア(例えば、とりわけ、プロセッサなど)、ソフトウェア(例えば、とりわけ、アプリケーションなど)、ファームウェア、または、ハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを含むことができる。
【0073】
図9は、ミニマックス・ニューラル・ネットワーク・アーキテクチャを使用して訓練された主ネットワークを使用して自動化応答生成を実行することができる例示的なコンピューティング・デバイスのブロック図である。
図9のコンピューティング・デバイス900は、
図8の同様に番号付けされた要素を含む。さらに、コンピューティング・デバイス900は、応答表示器902および応答送信器904を含む。
【0074】
例示的なコンピューティング・デバイス900において、受信器824は、会話の接頭辞およびテキスト入力を受信することができる。例えば、会話の接頭辞は、第1のユーザと第2のユーザとの間の対話を含むことができ、テキスト入力は、完成応答の一部を含むことができる。主ネットワーク826は、訓練ネットワーク828を介して、また既存のデータセットを使用して、会話の接頭辞およびテキスト入力に基づいて完成応答を生成するように訓練される。例えば、訓練ネットワーク828は、ミニマックス・ニューラル・ネットワークとすることができる。例えば、訓練ネットワーク828は、複数の目的を表すラグランジュ損失関数を使用して訓練された主ネットワークおよびデュアル・ネットワークを含んでもよい。複数の目的には、目的の中でもとりわけ、パープレキシティの目的、関連性の目的、冗長性非尤度の目的、意味的非類似度の目的、意味的一貫性の目的、またはそれらの任意の組合せが含まれ得る。いくつかの例において、主ネットワークおよびデュアル・ネットワークは、異なるパラメータを有する長短期記憶(LSTM)モデルである。いくつかの例において、訓練される主ネットワーク826は、完成応答を生成することによってラグランジュ損失関数を最小化するように訓練され得る。デュアル・ネットワークは、ラグランジュ損失関数を最大化するように訓練される。応答表示器902は、主ネットワーク826によって生成された完成応答を表示することができる。例えば、応答表示器902は、完成応答を含む複数の完成応答を選択用にユーザに提示することができる。例えば、完成応答は、
図7の(A)および(B)のように、アプリケーション内にリストとして表示されてもよい。応答送信器904は、完成応答から選択された応答を受信し、選択された応答を第2のユーザに送信することができる。
【0075】
次に
図10を参照すると、例示的なクラウド・コンピューティング環境1000が示されている。図示のように、クラウド・コンピューティング環境1000は、例えば、携帯情報端末(PDA:personal digital assistant)もしくは携帯電話1004A、デスクトップ・コンピュータ1004B、ラップトップ・コンピュータ1004C、または自動車コンピュータ・システム1004Nあるいはその組合せなどのクラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる1つまたは複数のクラウド・コンピューティング・ノード1002を含む。ノード1002は、互いに通信してもよい。ノード1002は、本明細書で上述したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境1000は、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することが可能になる。
図10に示すコンピューティング・デバイス1004A~1004Nのタイプは、例示のみを意図しており、コンピューティング・ノード1002およびクラウド・コンピューティング環境1000は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0076】
次に
図11を参照すると、クラウド・コンピューティング環境1000(
図10)によって提供される機能抽象化層のセットが示されている。
図11に示すコンポーネント、層、および機能は、例示のみを意図しており、本発明の実施形態はそれらに限定されないことをあらかじめ理解されたい。図示のように、以下の層および対応する機能が提供される。
【0077】
ハードウェアおよびソフトウェア層1100は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一例ではIBM(R)zSeries(R)システム、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ、一例ではIBM pSeries(R)システム、IBM xSeries(R)システム、IBM BladeCenter(R)システム、記憶デバイス、ネットワークおよびネットワーキング・コンポーネントが含まれる。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例ではIBM DB2(R)データベース・ソフトウェアが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの法域で登録されたInternational Business Machines Corporationの商標である。)
【0078】
仮想化層1102は、抽象化層を提供し、この層から仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントが提供され得る。一例では、管理層1104は、以下に記載の機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量および価格決定は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド・コンシューマおよびタスクのための本人確認、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータルは、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)の計画および履行は、SLAに従って将来において要求されることが予想されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0079】
ワークロード層1106は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、ならびに多目的タスク処理が含まれる。
【0080】
本技術は、システム、方法、またはコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含んでもよい。
【0081】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せが含まれる。本明細書で使用する場合、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0082】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワークまたはその組合せを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体での記憶のために転送する。
【0083】
本技術の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたコードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、本技術の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路をパーソナライズすることによって、電子回路がコンピュータ可読プログラム命令を実行してもよい。
【0084】
本技術の態様は、本技術の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0085】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0086】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0087】
ここで
図12を参照すると、多目的タスクを実行するように主ネットワークを訓練することができる例示的な有形の非一過性コンピュータ可読媒体1200のブロック図が示されている。有形の非一過性コンピュータ可読媒体1200は、コンピュータ相互接続1204を介してプロセッサ1202によってアクセスされてもよい。さらに、有形の非一過性コンピュータ可読媒体1200は、プロセッサ1202に
図2の方法200および
図4の方法400の動作を実行するように指示するコードを含んでもよい。
【0088】
図12に示すように、本明細書に述べる様々なソフトウェア・コンポーネントは、有形の非一過性コンピュータ可読媒体1200上に記憶されてもよい。例えば、ネットワーク訓練モジュール1206は、複数の目的を表すラグランジュ損失関数を使用して主ネットワークおよびデュアル・ネットワークを多目的タスク用に訓練するためのコードを含む。ネットワーク訓練モジュール1206はまた、ラグランジュ損失関数を最小化するように主ネットワークを訓練し、ラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練するためのコードを含む。ネットワーク訓練モジュール1206はまた、有限状態空間および有限行動空間を含むマルコフ決定過程として多目的タスクを処理するためのコードも含むことができる。様々な例において、ネットワーク訓練モジュール1206は、既存のデータセット、シミュレータ、環境からのフィードバック、またはそれらの任意の組合せを使用して、主ネットワークとデュアル・ネットワークとを交互に訓練するためのコードを含む。いくつかの例において、ネットワーク訓練モジュール1206は、別の設定から学習された一般的な方策を使用して、または訓練中に主ネットワークをランダムに初期化することによって主ネットワークを事前訓練するためのコードを含む。様々な例において、ネットワーク訓練モジュール1206は、訓練中にデュアル・ネットワークをランダムに初期化するためのコードを含む。いくつかの例において、ネットワーク訓練モジュール1206は、尤度比に基づいて主ネットワークおよびデュアル・ネットワークの勾配を推定するためのコードを含む。いくつかの例において、ネットワーク訓練モジュール1206は、主ネットワークおよびデュアル・ネットワークの異なるステップ・サイズに基づいて、主ネットワークおよびデュアル・ネットワークの方策勾配を更新するためのコードを含む。受信器モジュール1208は、複数の目的を含む多目的タスク用のデータを受信するためのコードを含む。主ニューラル・ネットワーク・モジュール1210は、訓練済みの主ネットワークを介して、受信したデータに対して複数の目的を含む多目的タスクを実行するためのコードを含む。有形の非一過性コンピュータ可読媒体1200内には、特定の用途に応じて、
図12に示されていない任意の数の追加のソフトウェア・コンポーネントが含まれ得ることを理解されたい。
【0089】
ここで
図13を参照すると、自動化応答生成を実行するように主ネットワークを訓練することができる例示的な有形の非一過性コンピュータ可読媒体1300のブロック図が示されている。有形の非一過性コンピュータ可読媒体1300は、コンピュータ相互接続1304を介してプロセッサ1302によってアクセスされてもよい。さらに、有形の非一過性コンピュータ可読媒体1300は、プロセッサ1302に上記の
図3の方法300および
図5の方法500の動作を実行するように指示するコードを含んでもよい。
【0090】
図13に示すように、本明細書に述べる様々なソフトウェア・コンポーネントは、有形の非一過性コンピュータ可読媒体1300上に記憶されてもよい。例えば、ネットワーク訓練モジュール1306は、複数の目的を表すラグランジュ損失関数を最小化するように主ネットワークを訓練し、ラグランジュ損失関数を最大化するようにデュアル・ネットワークを訓練するためのコードを含む。ネットワーク訓練モジュール1306はまた、会話のターンの第1の制限を使用してミニマックス・ニューラル・ネットワークを訓練し、制限を会話のターンの第2の制限まで段階的に増加させるためのコードを含むことができる。一例として、第1の制限を、会話の2つのターンとすることができ、第2の制限を、会話の5つのターンとすることができる。受信器モジュール1308は、会話の接頭辞およびテキスト入力を受信するためのコードを含む。主ニューラル・ネットワーク・モジュール1310は、会話の接頭辞およびテキスト入力に基づいて完成応答を生成するためのコードを含む。例えば、主ニューラル・ネットワーク・モジュール1310は、テキスト入力で始まる文を単語単位で反復的に構築するためのコードを含むことができる。主ニューラル・ネットワーク・モジュール1310はまた、複数の完成応答を生成するためのコードも含む。例えば、主ニューラル・ネットワーク・モジュール1310は、ビーム探索を使用して完成応答を含む複数の完成応答を生成するためのコードを含むことができる。応答表示器モジュール1312は、完成応答を含む複数の完成応答を選択用にユーザに提示するためのコードを含む。応答送信器モジュール1314は、完成応答から選択された応答を受信し、選択された応答を第2のユーザに送信するためのコードを含む。応答送信器モジュール1314は、完成応答の信頼度スコアが閾値スコアを超えたことを検出したことに応答して、完成応答を問合せへの応答として自動的に送信するコードを含むことができる。有形の非一過性コンピュータ可読媒体1300内には、特定の用途に応じて、
図13に示されていない任意の数の追加のソフトウェア・コンポーネントが含まれ得ることを理解されたい。
【0091】
図中のフローチャートおよびブロック図は、本技術の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。有形の非一過性コンピュータ可読媒体1200および1300内には、特定の用途に応じて、
図12および
図13に示されていない任意の数の追加のソフトウェア・コンポーネントが含まれ得ることが理解されよう。
【0092】
本技術の様々な実施形態の説明を例示の目的で提示してきたが、網羅的であることも、開示された実施形態に限定されることも意図されていない。当業者には、説明した実施形態の範囲および思想から逸脱することなく多くの変更形態および変形形態が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術を超える技術的な改良を最もよく説明するように、または本明細書で開示される実施形態を当業者が理解することが可能になるように選択されたものである。