JP2023520415A - ターゲットに基づくハイパーパラメータチューニングのための方法およびシステム - Google Patents
ターゲットに基づくハイパーパラメータチューニングのための方法およびシステム Download PDFInfo
- Publication number
- JP2023520415A JP2023520415A JP2022559629A JP2022559629A JP2023520415A JP 2023520415 A JP2023520415 A JP 2023520415A JP 2022559629 A JP2022559629 A JP 2022559629A JP 2022559629 A JP2022559629 A JP 2022559629A JP 2023520415 A JP2023520415 A JP 2023520415A
- Authority
- JP
- Japan
- Prior art keywords
- machine learning
- learning model
- metric
- score
- hyperparameters
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000010801 machine learning Methods 0.000 claims abstract description 153
- 230000006870 function Effects 0.000 claims abstract description 97
- 230000004044 response Effects 0.000 claims abstract description 34
- 238000010200 validation analysis Methods 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims description 91
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000003062 neural network model Methods 0.000 claims 2
- 238000012545 processing Methods 0.000 description 60
- 230000008569 process Effects 0.000 description 42
- 238000003860 storage Methods 0.000 description 42
- 238000004891 communication Methods 0.000 description 28
- 230000009471 action Effects 0.000 description 21
- 235000013550 pizza Nutrition 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013403 standard screening design Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000011521 glass Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000013305 food Nutrition 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013439 planning Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 241000238558 Eucarida Species 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013398 bayesian method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
- G06F18/2178—Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
機械学習モデルのハイパーパラメータをチューニングするための技術が開示される。機械学習モデルのハイパーパラメータがチューニングされるべき複数のメトリックが選択される。各メトリックは、ターゲットスコア、ペナルティ係数、およびボーナス係数を含む複数の仕様パラメータに関連付けられる。複数の仕様パラメータは、各メトリックに対して第1の基準に従って設定される。機械学習モデルは、メトリックスコアを得るために1つ以上の検証データセットを使用して評価される。重み付き損失関数が、メトリックスコアと各メトリックのターゲットスコアとの差、ペナルティ係数またはボーナス係数に基づいて定式化される。機械学習モデルに関連付けられるハイパーパラメータは、重み付き損失関数を最適化するために調整される。重み付き損失関数が最適化されることに応答して、機械学習モデルは、検証された機械学習モデルとして提供される。
Description
関連出願への相互参照
本出願は、(1)2020年3月30日に提出された米国仮出願第63/002,159号、(2)2020年11月30日に提出された米国仮出願第63/119,577号、(3)2021年3月29日に提出された米国非仮出願第17/216,496号、および(4)2021年3月29日に提出された米国非仮出願第17/216,498号に対する優先権の利益を主張する。上記で参照した出願は、あらゆる目的のためにその全体が参照によりここに組み込まれる。
本出願は、(1)2020年3月30日に提出された米国仮出願第63/002,159号、(2)2020年11月30日に提出された米国仮出願第63/119,577号、(3)2021年3月29日に提出された米国非仮出願第17/216,496号、および(4)2021年3月29日に提出された米国非仮出願第17/216,498号に対する優先権の利益を主張する。上記で参照した出願は、あらゆる目的のためにその全体が参照によりここに組み込まれる。
発明の分野
本開示は、概してチャットボットシステムに関し、より詳細には、チャットボットシステムで使用される機械学習モデルのハイパーパラメータをチューニングする技術に関する。
本開示は、概してチャットボットシステムに関し、より詳細には、チャットボットシステムで使用される機械学習モデルのハイパーパラメータをチューニングする技術に関する。
背景
世界中の多くのユーザは、即時反応を得るためにインスタントメッセージングまたはチャットプラットフォーム上にいる。組織は、しばしば、これらのインスタントメッセージングまたはチャットプラットフォームを用いて、顧客(またはエンドユーザ)とライブ会話に携わる。しかしながら、顧客またはエンドユーザとのライブ通信に携わるためにサービス人員を雇用することは、組織にとって非常に費用がかかり得る。チャットボットまたはボットは、特にインターネット上で、エンドユーザとの会話をシミュレートするために開発され始めた。エンドユーザは、エンドユーザが既にインストールし使用しているメッセージングアプリを介してボットと通信することができる。一般に人工知能(AI)によって駆動されるインテリジェントなボットは、ライブ会話において、より知的にかつ文脈に沿って通信することができ、したがって、改善された会話体験のために、ボットとエンドユーザとの間の、より自然な会話を可能にすることができる。ボットが応答の仕方を知っているキーワードまたはコマンドの固定セットをエンドユーザが学習する代わりに、インテリジェントなボットは、自然言語でのエンドユーザ発話に基づいてエンドユーザの意図を理解し、それに応じて応答することができる。
世界中の多くのユーザは、即時反応を得るためにインスタントメッセージングまたはチャットプラットフォーム上にいる。組織は、しばしば、これらのインスタントメッセージングまたはチャットプラットフォームを用いて、顧客(またはエンドユーザ)とライブ会話に携わる。しかしながら、顧客またはエンドユーザとのライブ通信に携わるためにサービス人員を雇用することは、組織にとって非常に費用がかかり得る。チャットボットまたはボットは、特にインターネット上で、エンドユーザとの会話をシミュレートするために開発され始めた。エンドユーザは、エンドユーザが既にインストールし使用しているメッセージングアプリを介してボットと通信することができる。一般に人工知能(AI)によって駆動されるインテリジェントなボットは、ライブ会話において、より知的にかつ文脈に沿って通信することができ、したがって、改善された会話体験のために、ボットとエンドユーザとの間の、より自然な会話を可能にすることができる。ボットが応答の仕方を知っているキーワードまたはコマンドの固定セットをエンドユーザが学習する代わりに、インテリジェントなボットは、自然言語でのエンドユーザ発話に基づいてエンドユーザの意図を理解し、それに応じて応答することができる。
典型的には、個々のボットは、分類器としてトレーニングされ、クラスまたはカテゴリのセットから入力のクラスまたはカテゴリを予測または推論するモデルを採用する。機械学習モデルを作成する一方で、モデルのアーキテクチャを定義する、モデルのパラメータを決定しなければならない。そのようなパラメータは、モデルのハイパーパラメータと呼ばれる。ハイパーパラメータの理想的な設定、すなわちモデルの各ハイパーパラメータに割り当てられるべき値を決定するプロセスは、ハイパーパラメータチューニングと呼ばれる。
標準的なハイパーパラメータチューニングアルゴリズムは、単一の目標(例えば、モデル正解率)が考慮中の状態で、ハイパーパラメータのチューニング動作を実行する。この目標を達成するために、ハイパーパラメータチューニングアルゴリズムは、単一の目標を最適化する最良のハイパーパラメータ設定を探索する。したがって、モデルは、単一の目標を最適化するように調整される。異なる目標に対しては、異なるモデルをトレーニングしなければならず、それらの各々は、対応する目標を最適化するように調整される。
ここに記載される実施形態は、これらおよび他の問題を個々におよび集合的に対処する。
概要
チャットボットシステムで使用される機械学習モデルのハイパーパラメータをチューニングするための技術(たとえば、方法、システム、1つ以上のプロセッサによって実行可能なコードまたは命令を記憶する非一時的コンピュータ可読媒体)が提供される。ここでは、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を記憶する非一時的コンピュータ可読記憶媒体などを含む様々な実施形態について説明する。
チャットボットシステムで使用される機械学習モデルのハイパーパラメータをチューニングするための技術(たとえば、方法、システム、1つ以上のプロセッサによって実行可能なコードまたは命令を記憶する非一時的コンピュータ可読媒体)が提供される。ここでは、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を記憶する非一時的コンピュータ可読記憶媒体などを含む様々な実施形態について説明する。
本開示の一局面によって、チャットボットシステムで使用される機械学習モデルのハイパーパラメータのセットをチューニングするための方法が提供される。機械学習モデルのハイパーパラメータがチューニングされるべき複数のメトリックが選択される。各メトリックは、ターゲットスコア、ペナルティ係数、およびボーナス係数を含む複数の仕様パラメータに関連付けられる。複数の仕様パラメータは、各メトリックに対して第1の基準に従って構成される。機械学習モデルは、メトリックスコアを得るために1つ以上の検証データセットを使用して評価される。重み付き損失関数が、メトリックスコアと各メトリックのターゲットスコアとの差、ペナルティ係数またはボーナス係数に基づいて定式化される。機械学習モデルに関連付けられるハイパーパラメータは、重み付き損失関数を最適化するために調整される。重み付き損失関数が最適化されることに応答して、機械学習モデルは、検証された機械学習モデルとして提供される。
本開示の一局面によって、1つ以上のデータプロセッサと、命令を含む非一時的なコンピュータ可読記憶媒体とを備えるシステムが提供される。命令は、実行されると、1つ以上のデータプロセッサに、ここで説明する1つ以上の方法の一部またはすべてを実行させる。
本開示の別の局面によって、ここで説明する1つ以上の方法のすべてまたは一部を1つ以上のデータプロセッサに実行させるよう構成される命令を含む、非一時的機械可読記憶媒体において有形に具現化されるコンピュータプログラム製品が提供される。
前述は、他の特徴および実施形態とともに、以下の明細書、請求項、および添付の図面を参照すると、より明白となるであろう。
詳細な説明
以下の説明では、説明の目的のために、特定の詳細が、特定の発明の実施形態の完全な理解を促すために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施されてもよいことは明らかであろう。図および記載は、限定することを意図したものではない。「例示的」という文言は、ここでは、「例、事例、または例示として供される」ことを意味するために用いられる。「例示的」としてここに記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
以下の説明では、説明の目的のために、特定の詳細が、特定の発明の実施形態の完全な理解を促すために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施されてもよいことは明らかであろう。図および記載は、限定することを意図したものではない。「例示的」という文言は、ここでは、「例、事例、または例示として供される」ことを意味するために用いられる。「例示的」としてここに記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
序
デジタルアシスタントは、ユーザが自然言語会話において様々なタスクを達成するのを助ける人工知能駆動型インターフェイスである。各デジタルアシスタントについて、顧客は、1つ以上のスキルをアセンブルすることができる。スキル(ここでは、チャットボット、ボット、またはスキルボットとしても記載される)は、在庫の追跡、タイムカードの提出、および経費報告の作成など、特定の種類のタスクに焦点を当てる個々のボットである。エンドユーザがデジタルアシスタントに携わると、デジタルアシスタントは、エンドユーザ入力を評価し、適切なチャットボットに会話をルーティングし、適切なチャットから会話をルーティングする。デジタルアシスタントは、FACEBOOK(登録商標)メッセンジャー、SKYPE MOBILE(登録商標)メッセンジャー、またはショートメッセージサービス(SMS)などの様々なチャネルを介してエンドユーザに利用可能にすることができる。チャネルは、様々なメッセージングプラットフォーム上でエンドユーザからデジタルアシスタントおよびその様々なチャットボットへチャットを行き来させる。チャネルはまた、ユーザエージェント漸増、イベント起動型会話、およびテストをサポートしてもよい。
デジタルアシスタントは、ユーザが自然言語会話において様々なタスクを達成するのを助ける人工知能駆動型インターフェイスである。各デジタルアシスタントについて、顧客は、1つ以上のスキルをアセンブルすることができる。スキル(ここでは、チャットボット、ボット、またはスキルボットとしても記載される)は、在庫の追跡、タイムカードの提出、および経費報告の作成など、特定の種類のタスクに焦点を当てる個々のボットである。エンドユーザがデジタルアシスタントに携わると、デジタルアシスタントは、エンドユーザ入力を評価し、適切なチャットボットに会話をルーティングし、適切なチャットから会話をルーティングする。デジタルアシスタントは、FACEBOOK(登録商標)メッセンジャー、SKYPE MOBILE(登録商標)メッセンジャー、またはショートメッセージサービス(SMS)などの様々なチャネルを介してエンドユーザに利用可能にすることができる。チャネルは、様々なメッセージングプラットフォーム上でエンドユーザからデジタルアシスタントおよびその様々なチャットボットへチャットを行き来させる。チャネルはまた、ユーザエージェント漸増、イベント起動型会話、およびテストをサポートしてもよい。
インテントにより、チャットボットは、ユーザがチャットボットに何をして欲しいかを理解することができる。インテントは、発話(例えば、口座残高を入手する、購入を行うなど)とも称される、典型的なユーザ要求およびステートメントの順列から構成される。ここで用いられる場合、発話またはメッセージは、チャットボットとの会話の間に交換される単語のセット(たとえば、1つ以上の文)を指し得る。インテントは、何らかのユーザアクション(例えば、ピザを注文する)を示す名前を提供し、そのアクションをトリガすることに一般に関連付けられる実生活ユーザステートメントまたは発話のセットをコンパイルすることによって、作成されてもよい。チャットボットの認知は、これらのインテントから導き出されるので、各インテントは、ロバストな(1から二十数個の発話)であるデータセットから作成され、チャットボットがあいまいなユーザ入力を解釈できるように、変動してもよい。豊富な発話のセットは、チャットボットが、「この注文は無視して」または「配達は取りやめて!」のような、同じものを意味するが異なって表現されるメッセージを受信したときに、ユーザが何を望むかを理解することを可能にする。集合的に、インテントおよびそれらに属する発話は、チャット用のトレーニングコーパスを構成する。コーパスを用いて機械学習モデルをトレーニングすることによって、顧客は、その機械学習モデル(以下、単に「モデル」と称される)を、本質的に、エンドユーザ入力を単一のインテントに解決するための参照ツールに変換することができる。顧客は、インテントテストおよびインテントトレーニングの循環を通じてチャットの認知の鋭敏さを改善することができる。
しかしながら、ユーザ発話に基づいてエンドユーザのインテントを判断することができるチャットボットを構築することは、部分的には、自然言語の微妙さおよび曖昧さ、ならびに入力空間の次元(例えば、可能性のあるユーザ発話)および出力空間のサイズ(インテントの数)のため、困難なタスクである。したがって、チャットボットの性能およびチャットボットによるユーザ体験を改善するために、チャットボットを設計、トレーニング、監視、デバッグ、および再トレーニングする必要がある場合がある。従来のシステムでは、モデルアーキテクチャを設計および改善し、口語理解(SLU)および自然言語処理(NLP)におけるデジタルアシスタントまたはチャットボットのモデルをトレーニングおよび再トレーニングするために、設計およびトレーニングシステムが提供される。
いくつかの例では、モデルは、分類器としてトレーニングされ、所与の入力(例えば、発話)に対して、ターゲットクラスまたはカテゴリのセットから、その入力に対するクラスまたはカテゴリを予測または推論するよう構成される。そのような分類器は、典型的には、ターゲットクラスのセットに対する確率の分布を生成するようにトレーニングされ、確率は、分類器によって、セット内の各ターゲットクラスに対して生成され、生成された確率は、合計で1(または、パーセンテージとして表される場合、100%)である。ニューラルネットワークなどの分類器では、ニューラルネットワークの出力層は、クラスのセットについて確率スコアの分布を生成するために、softmax関数をその活性化関数として使用してもよい。これらの確率は、信頼度スコアとも呼ばれる。最も高い関連付けられる信頼度スコアを伴うクラスは、入力に対する回答として出力されてもよい。
モデルのトレーニングは、トレーニングデータ(ラベル付きデータと呼ばれることもある)を使用して実行され、入力およびそれらの入力に関連付けられるラベル(グラウンドトゥルース)は既知である。例えば、トレーニングデータは、入力x(i)と、各入力x(i)について、その入力についてのターゲット値または正解(グラウンドトゥルースとも呼ばれる)y(i)とを含んでもよい。(x(i),y(i))のペアはトレーニングサンプルと呼ばれ、トレーニングデータは多くのそのようなトレーニングサンプルを含んでもよい。例えば、チャットボットのためにモデルをトレーニングするために使用されるトレーニングデータは、発話のセットと、そのセット内の各発話について、その発話についての既知の(グラウンドトゥルース)クラスとを含んでもよい。トレーニングデータにおけるすべての入力x(i)の空間をXで表し、すべての対応するターゲットy(i)の空間をYで表してもよい。ニューラルネットワークをトレーニングする目標は、h(x)がyの対応する値の良好な予測子となるようにトレーニング入力空間Xをターゲット値空間Yにマッピングする仮説関数「h()」を学習することである。いくつかの実現例では、仮説関数を導出することの一部として、入力に対するグラウンドトゥルース値とモデルによってその入力に対して予測される値との間の差を測定するコスト関数または損失関数が定義される。このコスト関数または損失関数は、トレーニングの一部として最小化される。ニューラルネットワークによって提供される出力に関連付けられる損失関数を最小限に抑えるよう目標を伴うニューラルネットワークにおいてパーセプトロンへの入力に関連付けられる重みを反復的に変更/操作する、ニューラルネットワークとともに使用される逆伝搬トレーニング技術などのトレーニング技術が使用されてもよい。
前述のように、標準的なハイパーパラメータチューニングアルゴリズムは、単一の目標(例えば、モデル正解率)が考慮中の状態で、ハイパーパラメータのチューニング動作を実行する。そのような標準的なハイパーパラメータチューニングアルゴリズムの欠点は、最適化プロセスを実行する間に他の重要な目標(例えば、回帰誤差)を無視することである。さらに、標準的なハイパーパラメータチューニング機構は、機械学習モデルをトレーニング/評価するために単一のデータセットのみを考慮する。いくつかのハイパーパラメータチューニングアルゴリズムは、モデルを評価しながら複数のデータセットを考慮するが、データセットの各々は、機械学習モデルのトレーニングにおいて同じレベルの重要度を有するよう考慮される。
したがって、これらの問題に対処するために異なるアプローチが必要とされる。本開示は、複数のメトリックを同時に考慮しながら機能を最適化する、すなわち、多目的最適化を実行する、ハイパーパラメータチューニングシステムおよび技術を提供する。メトリックの各々には、機械学習モデルの性能に対するメトリックの重要度のレベルを示す重みが割り当てられる。ハイパーパラメータチューニングシステムおよび技術はまた、様々な重要度レベルの異なるデータセットを考慮しながら、ハイパーパラメータのチューニングを提供する。具体的には、各データセットに重みが割り当てられ、機械学習モデルのトレーニングにおけるデータセットの重要度を指定する。加えて、ハイパーパラメータチューニングシステムおよび技術は、トレーニングされている機械学習モデルに対する1つ以上の制約を可能にする。トレーニングインフラストラクチャ(ここではハイパーパラメータチューニングシステムとも呼ばれる)は、トレーニングされたモデルがそのモデルに対して指定された制約に準拠し、それを満たすように、モデルをトレーニングするためにハイパーパラメータを自動的に識別し、設定し、チューニングするために、様々な自動化された技術を使用する。このようにして、本開示のハイパーパラメータチューニングシステムは、異なるデータセットおよび異なるメトリックにわたって機能する単一の機械学習モデルを提供する。
ボットシステム
ボット(スキル、チャットボット、チャターボット、またはトークボットとも称される)は、エンドユーザとの会話を実行することができるコンピュータプログラムである。ボットは一般に、自然言語メッセージを用いるメッセージングアプリケーションを通じて自然言語メッセージ(例えば質問またはコメント)に応答することができる。企業は、1つ以上のボットシステムを用いて、メッセージングアプリケーションを通じてエンドユーザと通信し得る。メッセージングアプリケーションは、チャネルと呼ばれることもあり、エンドユーザが既にインストールし、慣れ親しんでいる、エンドユーザの好みのメッセージングアプリケーションであってもよい。したがって、エンドユーザは、ボットシステムとチャットするために新たなアプリケーションをダウンロードおよびインストールする必要がない。メッセージングアプリケーションは、例えば、オーバーザトップ(OTT)メッセージングチャネル(例えば、Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack,またはSMS)、バーチャルプライベートアシスタント(例えば、Amazon Dot, Echo,またはShow, Google(登録商標) Home, Apple HomePodなど)、チャット機能を有するネイティブもしくはハイブリッド/応答モバイルアプリもしくはウェブアプリケーションを拡張するモバイルおよびウェブアプリ拡張、または音声ベースの入力(例えば、Siri, Cortana, Google Voice、または対話のための他の音声入力を用いるインターフェイスを有するデバイスもしくはアプリ)を含むことができる。
ボット(スキル、チャットボット、チャターボット、またはトークボットとも称される)は、エンドユーザとの会話を実行することができるコンピュータプログラムである。ボットは一般に、自然言語メッセージを用いるメッセージングアプリケーションを通じて自然言語メッセージ(例えば質問またはコメント)に応答することができる。企業は、1つ以上のボットシステムを用いて、メッセージングアプリケーションを通じてエンドユーザと通信し得る。メッセージングアプリケーションは、チャネルと呼ばれることもあり、エンドユーザが既にインストールし、慣れ親しんでいる、エンドユーザの好みのメッセージングアプリケーションであってもよい。したがって、エンドユーザは、ボットシステムとチャットするために新たなアプリケーションをダウンロードおよびインストールする必要がない。メッセージングアプリケーションは、例えば、オーバーザトップ(OTT)メッセージングチャネル(例えば、Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack,またはSMS)、バーチャルプライベートアシスタント(例えば、Amazon Dot, Echo,またはShow, Google(登録商標) Home, Apple HomePodなど)、チャット機能を有するネイティブもしくはハイブリッド/応答モバイルアプリもしくはウェブアプリケーションを拡張するモバイルおよびウェブアプリ拡張、または音声ベースの入力(例えば、Siri, Cortana, Google Voice、または対話のための他の音声入力を用いるインターフェイスを有するデバイスもしくはアプリ)を含むことができる。
図1は、特定の実施形態によるチャットボットシステムを組み込んだ環境100の簡略ブロック図である。環境100は、デジタルアシスタントビルダプラットフォーム(DABP)102を含み、DABP102のユーザがデジタルアシスタントまたはチャットボットシステムを作成および展開することを可能にする。DABP102は、1つ以上のデジタルアシスタント(またはDA)またはチャットボットシステムを作成するために使用することができる。例えば、図1に示すように、特定の企業を表すユーザ104は、DABP102を使用して、特定の企業のユーザ用のデジタルアシスタント106を作成および展開することができる。例えば、銀行が、DABP102を使用して、銀行の顧客による使用のために1つ以上のデジタルアシスタントを作成することができる。複数の企業が、同じDABP102プラットフォームを使用して、デジタルアシスタントを作成することができる。別の例として、レストラン(例えば、ピザショップ)の所有者は、DABP102を用いて、レストランの顧客が食べ物を注文すること(例えば、ピザを注文すること)を可能にするデジタルアシスタントを作成および展開することができる。
図1は、特定の実施形態によるチャットボットシステムを組み込んだ環境100の簡略ブロック図である。環境100は、デジタルアシスタントビルダプラットフォーム(DABP)102を含み、DABP102のユーザがデジタルアシスタントまたはチャットボットシステムを作成および展開することを可能にする。DABP102は、1つ以上のデジタルアシスタント(またはDA)またはチャットボットシステムを作成するために使用することができる。例えば、図1に示すように、特定の企業を表すユーザ104は、DABP102を使用して、特定の企業のユーザ用のデジタルアシスタント106を作成および展開することができる。例えば、銀行が、DABP102を使用して、銀行の顧客による使用のために1つ以上のデジタルアシスタントを作成することができる。複数の企業が、同じDABP102プラットフォームを使用して、デジタルアシスタントを作成することができる。別の例として、レストラン(例えば、ピザショップ)の所有者は、DABP102を用いて、レストランの顧客が食べ物を注文すること(例えば、ピザを注文すること)を可能にするデジタルアシスタントを作成および展開することができる。
DABP102を使用して構築されるデジタルアシスタント106等のデジタルアシスタントは、デジタルアシスタントとそのユーザ108との間の自然言語ベースの会話を介して、種々のタスクを行うために使用されることができる。会話の一部として、ユーザは、1つ以上のユーザ入力110をデジタルアシスタント106に提供し、デジタルアシスタント106から応答112を得てもよい。会話は、入力110および応答112のうちの1つ以上を含むことができる。これらの会話を介して、ユーザは、1つ以上のタスクがデジタルアシスタント106によって実行されるよう要求することができ、それに応答して、デジタルアシスタント106は、ユーザ要求タスクを実行し、ユーザに適切な応答で応答するよう構成される。
ユーザ入力110は、概して自然言語形式であり、発話と呼ばれる。ユーザ発話110は、ユーザが文、質問、テキスト片、または単一の単語でさえタイプし、テキストを入力としてデジタルアシスタント106に提供するときなどの、テキスト形式であり得る。いくつかの実施形態では、ユーザ発話110は、ユーザがデジタルアシスタント106に入力として提供される何かを言うかまたは話すときなどの、音声入力または発話形式であり得る。発話は、典型的には、ユーザ108によって話される言語である。たとえば、発話は、英語または何らかの他の言語であってもよい。発話が音声形式である場合、音声入力はその特定の言語のテキスト形式の発話に変換され、次いで、テキスト発話はデジタルアシスタント106によって処理される。様々な音声-テキスト処理技術を用いて、音声または聴覚的入力をテキスト発話に変換してもよく、テキスト発話は、その後、デジタルアシスタント106によって処理される。いくつかの実施形態では、音声からテキストへの変換は、デジタルアシスタント106自体によって行われてもよい。
テキスト発話または音声発話であってもよい発話は、断章、文、複数の文、1つ以上の単語、1つ以上の質問、前述のタイプの組合せなどであってもよい。デジタルアシスタント106は、ユーザ入力の意味を理解するために発話に自然言語理解(NLU)技術を適用するよう構成される。発話に対するNLU処理の一部として、デジタルアシスタント106は、発話の意味を理解するための処理を実行するように構成され、これは、発話に対応する1つ以上のインテントおよび1つ以上のエンティティを識別することを伴う。発話の意味を理解すると、デジタルアシスタント106は、理解された意味またはインテントに応答して1つ以上のアクションまたは動作を実行することができる。本開示の目的のために、発話は、デジタルアシスタント106のユーザ108によって直接提供されるテキスト発話であるか、または入力音声発話のテキスト形式への変換の結果であると仮定する。しかしながら、これは、いかなる態様においても限定的または制限的であることを意図するものではない。
例えば、ユーザ入力108は、「私はピザを注文したい」等の発話を提供することによって、ピザが注文されることを要求してもよい。そのような発話を受信すると、デジタルアシスタント106は、発話の意味を理解し、適切なアクションを取るよう構成される。適切なアクションは、例えば、ユーザが注文したいピザのタイプ、ピザのサイズ、ピザの任意のトッピングなどに関する、ユーザ入力を要求する質問で、ユーザに応答することを含んでもよい。デジタルアシスタント106によって提供される応答はまた、自然言語形式であってもよく、典型的には入力発話と同じ言語であってもよい。これらの応答を生成することの一部として、デジタルアシスタント106は、自然言語生成(NLG)を実行してもよい。ユーザがピザを注文するために、ユーザとデジタルアシスタント106との間の会話を介して、デジタルアシスタントは、ピザを注文するためのすべての必要な情報を提供するようにユーザを誘導してもよく、次いで、会話の終わりに、ピザを注文させてもよい。デジタルアシスタント106は、ピザが注文されたことを示す情報をユーザに出力することによって、会話を終了してもよい。
概念レベルでは、デジタルアシスタント106は、ユーザから受信された発話に応答して、種々の処理を実行する。いくつかの実施形態では、この処理は、例えば、(NLUを用いて)入力発話の意味を理解すること、発話に応答して実行されるべきアクションを決定すること、適切な場合にはアクションが実行されることを引き起こすこと、ユーザ発話に応答してユーザに出力されるべき応答を生成すること、応答をユーザに出力することなどを含む、一連の処理ステップまたは処理ステップのパイプラインを伴う。NLU処理は、受信した入力発話を構文解析して発話の構造および意味を理解することと、発話を精緻化および再構成して、発話について、よりよく理解可能な形式(例えば、論理形式)または構造を展開することとを含むことができる。応答を生成することは、自然言語生成(NLG技術)を使用することを含んでもよい。したがって、デジタルアシスタントによって実行される自然言語処理(NLP)は、NLUおよびNLG処理の組み合わせを含み得る。デジタルアシスタント106などのデジタルアシスタントによって実行されるNLU処理は、文解析(例えば、トークン化、並べ換え、文に対する品詞タグの識別、文における固有表現の識別、文構造を表すための依存関係ツリーの生成、文の節への分割、個々の節の分析、照応形の解決、チャンク化の実行など)などの様々なNLU関連処理を含み得る。ある実施形態では、NLU処理またはその一部は、デジタルアシスタント106自体によって実行される。いくつかの他の実施形態では、デジタルアシスタント106は、他のリソースを用いて、NLU処理の一部を実行することができる。例えば、入力発話文の構文および構造は、構文解析、品詞タグ付け、および/または固有表現認識を用いて文を処理することによって識別されてもよい。一実現例では、英語の場合、文構造および構文を解析するために、Stanford NLP Groupによって提供されるもののような、構文解析、品詞タグ付け、および固有表現認識が用いられる。これらは、Stanford CoreNLPツールキットの一部として提供される。
本開示で提供される様々な例は英語の発話を示すが、これは単なる例として意味される。特定の実施形態では、デジタルアシスタント106は、英語以外の言語で発話を処理することもできる。デジタルアシスタント106は、異なる言語に対する処理を実行するよう構成されるサブシステム(例えば、NLU機能を実現するコンポーネント)を提供してもよい。これらのサブシステムは、NLUコアサーバからのサービスコールを用いて呼び出され得るプラグ可能ユニットとして実現されてもよい。これは、NLU処理を、異なる順序の処理を可能にすることを含めて、各言語に対して柔軟かつ拡張可能にする。言語パックは、個々の言語に対して提供されてもよく、言語パックは、NLUコアサーバからサービス提供され得るサブシステムのリストを登録することができる。
図1に示されるデジタルアシスタント106等のデジタルアシスタントは、限定ではないが、あるアプリケーションを介して、ソーシャルメディアプラットフォームを介して、種々のメッセージングサービスおよびアプリケーション(たとえば、インスタントメッセージングアプリケーション)を介して、ならびに他のアプリケーションまたはチャネル等の種々の異なるチャネルを介して、そのユーザ108に利用可能またはアクセス可能にされることができる。単一のデジタルアシスタントは、それのためにいくつかのチャネルを構成することができるので、異なるサービス上で同時に実行され、異なるサービスによって同時にアクセスされることができる。
デジタルアシスタントまたはチャットボットシステムは、一般に、1つ以上のスキルを含むか、または1つ以上のスキルに関連付けられる。ある実施形態では、これらのスキルは、ユーザと対話し、在庫の追跡、タイムカードの提出、経費報告の作成、食品の注文、銀行口座の確認、予約の作成、ウィジェットの購入などの特定の種類のタスクを満たすように構成された個々のチャットボット(スキルボットと呼ばれる)である。例えば、図1に示される実施形態では、デジタルアシスタントまたはチャットボットシステム106は、スキル116-1、116-2等を含む。本開示の目的のために、「スキル」という語は、「スキルボット」という語と同義的に用いられる。
デジタルアシスタントに関連付けられる各スキルは、ユーザとの会話を通じて、デジタルアシスタントのユーザがタスクを完了するのを助け、会話は、ユーザによって提供されるテキストまたは聴覚的入力と、スキルボットによって提供される応答との組み合わせを含むことができる。これらの応答は、ユーザへのテキストメッセージもしくは聴覚メッセージの形態であってもよく、および/またはユーザが選択を行うようユーザに提示される単純なユーザインターフェイス要素(たとえば、選択リスト)を用いて与えられてもよい。
スキルまたはスキルボットをデジタルアシスタントに関連付けるかまたは追加することができる様々な方法がある。ある例では、スキルボットは企業によって開発され、次いでDABP102を用いて、たとえば、DABP102によって与えられるユーザインターフェイスを介して、スキルボットをデジタルアシスタントに登録するために、デジタルアシスタントに追加され得る。他の例では、スキルボットは、DABP102を用いて開発および作成され、次いで、DABP102を用いて作成されたデジタルアシスタントに追加され得る。さらに他の例では、DABP102は、広範囲のタスクに向けられた複数のスキルを提供するオンラインデジタルストア(「スキルストア」と呼ばれる)を提供する。スキルストアを通じて提供されるスキルも、様々なクラウドサービスを公開してもよい。DABP102を使用して生成されるデジタルアシスタントにスキルを追加するために、DABP102のユーザは、DABP102を介してスキルストアにアクセスし、所望のスキルを選択し、選択されたスキルがDABP102を使用して作成されるデジタルアシスタントに追加されることを示すことができる。スキルストアからのスキルは、そのまま、または修正された形態で、デジタルアシスタントに追加することができる(例えば、DABP102のユーザは、スキルストアによって提供される特定のスキルボットを選択してクローニングし、選択されたスキルボットをカスタマイズまたは修正し、次いで、修正されたスキルボットを、DABP102を用いて作成されたデジタルアシスタントに追加してもよい)。
デジタルアシスタントまたはチャットボットシステムを実現するために、様々な異なるアーキテクチャが使用されてもよい。例えば、ある実施形態では、DABP102を用いて作成および展開されるデジタルアシスタントは、マスタボット/子(もしくはサブ)ボットパラダイムまたはアーキテクチャを用いて実現されてもよい。このパラダイムによれば、デジタルアシスタントは、スキルボットである1つ以上の子ボットと対話するマスタボットとして実現される。例えば、図1に示す実施形態では、デジタルアシスタント106は、マスタボット114と、マスタボット114の子ボットであるスキルボット116-1、116-2などとを含む。特定の実施形態では、デジタルアシスタント106自体がマスタボットとして動作すると考えられる。
マスタ・子ボットアーキテクチャに従って実現されるデジタルアシスタントは、デジタルアシスタントのユーザが、統合されたユーザインターフェイスを介して、すなわちマスタボットを介して、複数のスキルと対話することを可能にする。ユーザがデジタルアシスタントに関与すると、ユーザ入力はマスタボットによって受信される。次いで、マスタボットは、ユーザ入力発話の意味を判定するための処理を実行する。次いで、マスタボットは、発話においてユーザによって要求されたタスクがマスタボット自体によって処理され得るかどうかを判定し、そうでなければ、マスタボットは、ユーザ要求を処理するために適切なスキルボットを選択し、会話を選択されたスキルボットにルーティングする。これにより、ユーザは共通の単一のインターフェイスを介してデジタルアシスタントと会話することができ、特定のタスクを実行するよう構成されるいくつかのスキルボットを使用する能力を依然として提供することができる。例えば、企業用に開発されたデジタルアシスタントの場合、デジタルアシスタントのマスタボットは、顧客関係管理(CRM)に関連する機能を実行するためのCRMボット、企業資源計画(ERP)に関連する機能を実行するためのERPボット、人的資本管理(HCM)に関連する機能を実行するためのHCMボットなどの特定の機能を有するスキルボットとインターフェイスすることができる。このように、デジタルアシスタントのエンドユーザまたは消費者は、共通のマスタボットインターフェイスを介してデジタルアシスタントにアクセスする方法を知るだけでよく、背後には、複数のスキルボットがユーザ要求を処理するために提供される。
ある実施形態では、マスタボット/子ボットインフラストラクチャにおいて、マスタボットは、スキルボットの利用可能なリストを認識するよう構成される。マスタボットは、様々な利用可能なスキルボット、および各スキルボットについて、各スキルボットによって実行され得るタスクを含む各スキルボットの能力を識別するメタデータへのアクセスを有してもよい。ユーザ要求を発話の形態で受信すると、マスタボットは、複数の利用可能なスキルボットから、ユーザ要求に最も良く対応できるかもしくはユーザ要求をもっとも良く処理することができる特定のスキルボットを識別または予測するよう構成される。次いで、マスタボットは、その発話(またはその発話の一部分)を、さらなる処理のために、その特定のスキルボットにルーティングする。従って、制御はマスタボットからスキルボットに流れる。マスタボットは、複数の入力および出力チャネルをサポートすることができる。いくつかの実施形態では、ルーティングは、1つ以上の利用可能なスキルボットによって実行される処理の助けを借りて実行されてもよい。例えば、以下に論じられるように、スキルボットは、発話のインテントを推論し、推論されたインテントが、スキルボットが構成されるインテントに合致するかどうかを判定するように、トレーニングされることができる。したがって、マスタボットによって実行されるルーティングは、スキルボットが発話を処理するのに適したインテントとともに構成されているかどうかの指示を、スキルボットがマスタボットに通信することを含むことができる。
図1の実施形態は、マスタボット114ならびにスキルボット116-1、116-2、および116-3を備えるデジタルアシスタント106を示すが、これは限定を意図するものではない。デジタルアシスタントは、デジタルアシスタントの機能を提供する様々な他のコンポーネント(例えば、他のシステムおよびサブシステム)を含むことができる。これらのシステムおよびサブシステムは、ソフトウェア(例えば、コンピュータ可読媒体上に記憶され、1つ以上のプロセッサによって実行可能なコード、命令)のみ、ハードウェアのみ、またはソフトウェアとハードウェアとの組み合わせを用いる実現例において実現されてもよい。
DABP102は、DABP102のユーザが、デジタルアシスタントに関連付けられる1つ以上のスキルボットを含むデジタルアシスタントを作成することを可能にする、インフラストラクチャならびに種々のサービスおよび特徴を提供する。場合によっては、スキルボットは、既存のスキルボットをクローニングすることによって、例えば、スキルストアによって提供されるスキルボットをクローニングすることによって、作成することができる。前述のように、DABP102は、様々なタスクを実行するための複数のスキルボットを提供するスキルストアまたはスキルカタログを提供し得る。DABP102のユーザは、スキルストアからスキルボットをクローニングすることができる。必要に応じて、クローニングされたスキルボットに修正またはカスタマイズを行ってもよい。いくつかの他の事例では、DABP102のユーザは、DABP102によって提供されるツールおよびサービスを使用して、スキルボットをゼロから作成する。
特定の実施形態では、ある高次レベルにおいて、スキルボットを作成またはカスタマイズすることは、以下のステップを含む:
(1)新たなスキルボットに対する設定を設定する
(2)スキルボットに対して1つ以上のインテントを設定する
(3)1つ以上のインテントに対して1つ以上のエンティティを設定する
(4)スキルボットをトレーニングする
(5)スキルボットのためのダイアログフローを作成する
(6)必要に応じてカスタムコンポーネントをスキルボットに追加する
(7)スキルボットをテストおよび展開する。
以下、各工程について簡単に説明する。
(1)新たなスキルボットに対する設定を設定する
(2)スキルボットに対して1つ以上のインテントを設定する
(3)1つ以上のインテントに対して1つ以上のエンティティを設定する
(4)スキルボットをトレーニングする
(5)スキルボットのためのダイアログフローを作成する
(6)必要に応じてカスタムコンポーネントをスキルボットに追加する
(7)スキルボットをテストおよび展開する。
以下、各工程について簡単に説明する。
(1)新たなスキルボットに対する設定を設定する-様々な設定がスキルボットのために設定されてもよい。例えば、スキルボット設計者は、作成されているスキルボットの1つ以上の呼出し名を指定することができる。これらの呼出し名は、スキルボットのための識別子として働き、次いで、スキルボットを明示的に呼び出すためにデジタルアシスタントのユーザによって使用されることができる。例えば、ユーザは、ユーザの発話に呼出し名を含ませて、対応するスキルボットを明示的に呼び出すことができる。
(2)スキルボットに対して1つ以上のインテントおよび関連付けられる例示的な発話を設定する-スキルボット設計者は、作成されているスキルボットに対して1つ以上のインテント(ボットインテントとも呼ばれる)を指定する。次いで、スキルボットは、これらの指定されたインテントに基づいてトレーニングされる。これらのインテントは、スキルボットが入力発話について推論するようにトレーニングされるカテゴリまたはクラスを表す。発話を受信すると、トレーニングされたスキルボットは、発話のインテントを推論し、推論されるインテントは、スキルボットをトレーニングするために使用されたインテントの事前定義されたセットから選択される。次いで、スキルボットは、発話に対して推論されたインテントに基づいて、その発話に応答する適切なアクションを取る。場合によっては、スキルボットのためのインテントは、スキルボットがデジタルアシスタントのユーザに対して実行することができるタスクを表す。各インテントには、インテント識別子またはインテント名が与えられる。例えば、銀行に対してトレーニングされたスキルボットの場合、そのスキルボットに対して指定されたインテントは、「CheckBalance(残高照会)」、「TransferMoney(送金)」、「DepositCheck(小切手を預け入れる)」などを含んでもよい。
スキルボットに対して定義される各インテントについて、スキルボット設計者はまた、そのインテントを代表し示す1つ以上の例示的な発話も提供してもよい。これらの例示的な発話は、ユーザがそのインテントのためにスキルボットに入力してもよい発話を表すよう意味される。例えば、残高照会のインテントについては、例示的な発話は、「What's my savings account balance?(私の普通預金口座の残高は?)」、「How much is in my checking account?(私の当座預金口座にはいくらありますか?)」、「How much money do I have in my account(私の口座にはいくらのお金がありますか?)」などを含んでもよい。したがって、典型的なユーザ発話の様々な順列が、インテントのための発話例として指定されてもよい。
インテントおよびそれらの関連付けられる例示的発話は、スキルボットをトレーニングするためのトレーニングデータとして使用される。様々な異なるトレーニング技術が使用されてもよい。このトレーニングの結果として、予測モデルが生成され、それは、発話を入力として取り込み、予測モデルによって発話について推論されたインテントを出力するよう構成される。いくつかの事例では、入力発話は、トレーニングされたモデルを使用して入力発話に対するインテントを予測または推測するよう構成される、インテント分析エンジン(例えば、スキルボットによって実行される、ルールベースまたは機械学習ベースまたは機械学習の分類器)に提供される。次いで、スキルボットは、推論されたインテントに基づいて1つ以上のアクションを取ってもよい。
(3)1つ以上のインテントに対して1つ以上のエンティティを設定する-いくつかの例では、スキルボットがユーザ発話に適切に応答することを可能にするために追加のコンテキストが必要とされてもよい。例えば、ユーザ入力発話が、スキルボットにおいて同じインテントに解決する状況があり得る。例えば、上記の例では、発話「What's my savings account balance?(私の普通預金口座の残高は?)」および「How much is in my checking account?(私の当座預金口座にはいくらありますか?)」は両方とも、同じ残高照会のインテントに解決しているが、これらの発話は、異なることを望む異なる要求である。そのような要求を明確にするために、1つ以上のエンティティがインテントに追加され得る。銀行業務スキルボットの例を用いると、「checking(当座)」および「saving(普通)」と呼ばれる値を定義するAccountType(口座種類)と呼ばれるエンティティは、スキルボットがユーザ要求を解析し、適切に応答することを可能にしてもよい。上記の例では、発話は同じインテントに解決するが、AccountTypeエンティティに関連付けられる値は、2つの発話について異なる。これにより、スキルボットは、2つの発話が同じインテントに解決するにもかかわらず、2つの発話に対して場合によっては異なるアクションを実行することができる。1つ以上のエンティティは、スキルボットに対して設定された特定のインテントのために指定され得る。したがって、エンティティは、コンテキストをインテント自体に追加するために用いられる。エンティティは、インテントをより充分に記述するのに役立ち、スキルボットがユーザ要求を完了できるようにする。
ある実施形態では、2つのタイプのエンティティ、すなわち、(a)DABP102によって提供される組込みエンティティ、および(2)スキルボット設計者によって指定され得るカスタムエンティティがある。組込みエンティティは、多種多様なボットとともに用いることができる汎用エンティティである。組込みエンティティの例は、限定はしないが、時間、日付、アドレス、番号、電子メールアドレス、持続時間、循環期間、通貨、電話番号、URLなどに関連するエンティティを含む。カスタムエンティティは、よりカスタマイズされた用途に用いられる。例えば、銀行業務スキルについては、AccountTypeエンティティは、スキルボット設計者によって、当座、普通およびクレジットカードなどのようなキーワードについてユーザ入力をチェックすることによって様々な銀行取引を可能にするよう定義されてもよい。
(4)スキルボットをトレーニングする-スキルボットは、ユーザ入力を発話の形態で受信し、受信した入力を解析またはその他の方法で処理し、受信したユーザ入力に関連するインテントを識別または選択するように構成される。上述のように、スキルボットは、このためにトレーニングされなければならない。ある実施形態では、スキルボットは、そのスキルボットに対して設定されたインテント、およびそのインテントに関連付けられる例示的な発話(集合的にトレーニングデータ)に基づいてトレーニングされ、それにより、スキルボットは、ユーザ入力発話を、スキルボットの設定されたインテントの1つに解決することができる。特定の実施形態では、スキルボットは、トレーニングデータを用いてトレーニングされ、ユーザが何を言っているか(または場合によっては、何を言おうとしているか)をスキルボットが識別することを可能にする予測モデルを使用する。DABP102は、様々な機械学習ベースのトレーニング技術、ルールベースのトレーニング技術、および/またはそれらの組み合わせを含む、スキルボットをトレーニングするためにスキルボット設計者によって用いられ得る様々な異なるトレーニング技術を提供する。ある実施形態では、トレーニングデータの一部分(例えば80%)は、スキルボットモデルをトレーニングするために用いられ、別の部分(例えば残りの20%)は、モデルをテストまたは検証するために用いられる。トレーニングされると、トレーニングされたモデル(トレーニングされたスキルボットと呼ばれることもある)は、次いで、ユーザ発話を処理し、それに応答するよう使用されることができる。ある場合には、ユーザの発話は、単一の回答だけを必要とし、さらなる会話を必要としない質問であり得る。このような状況に対処するために、スキルボットに対してQ&A(質疑応答)インテントを定義してもよい。Q&Aインテントは、通常のインテントと同様に生成される。Q&Aインテントについてのダイアログフローは、通常のインテントについてのダイアログフローとは異なり得る。例えば、通常のインテントとは異なり、Q&Aインテントのためのダイアログフローは、ユーザから追加の情報(例えば、特定のエンティティのための値)を請うためのプロンプトを必要としなくてもよい。
(5)スキルボットのためにダイアログフローを作成する-スキルボットに対して指定されるダイアログフローは、受信されたユーザ入力に応答してスキルボットに対する異なるインテントが解決される際にスキルボットがどのように反応するかを記述する。ダイアログフローは、例えば、スキルボットがどのようにユーザ発話に応答するか、スキルボットがどのようにユーザに入力を促すか、およびスキルボットがどのようにデータを返すかといった、スキルボットがとる動作またはアクションを定義する。ダイアログフローは、スキルボットが辿るフローチャートのようなものである。スキルボット設計者は、マークダウン言語などの言語を用いてダイアログフローを指定する。ある実施形態では、OBotMLと呼ばれるYAMLのバージョンを用いて、スキルボットのためのダイアログフローを指定することができる。スキルボットのためのダイアログフロー定義は、スキルボット設計者に、スキルボットとスキルボットが対応するユーザとの間の対話のコレオグラフィを行わせる、会話自体のモデルとして働く。
ある実施形態では、スキルボットのダイアログフロー定義は、3つのセクションを含む:
(a)コンテキストセクション
(b)デフォルト遷移セクション
(c)状態セクション。
(a)コンテキストセクション
(b)デフォルト遷移セクション
(c)状態セクション。
コンテキストセクション-スキルボット設計者は、コンテキストセクションにおいて、会話フローで用いられる変数を定義することができる。コンテキストセクションで指名され得る他の変数は、限定されないが、エラー処理のための変数、組込みエンティティまたはカスタムエンティティのための変数、スキルボットがユーザ選好を認識および持続することを可能にするユーザ変数などを含む。
デフォルト遷移セクション-スキルボットのための遷移は、ダイアログフロー状態セクションまたはデフォルト遷移セクションで定義することができる。デフォルト遷移セクションで定義される遷移は、フォールバックとして作用し、状態内に定義される適用可能な遷移がない場合または状態遷移をトリガするために必要な条件を満たせない場合にトリガされる。デフォルト遷移セクションは、スキルボットが予想外のユーザアクションをそつなく処理することを可能にするルーティングを定義するために用いられ得る。
状態セクション-ダイアログフローおよびその関連動作は、ダイアログフロー内の論理を管理する一連の一時的な状態として定義される。ダイアログフロー定義内の各状態ノードは、ダイアログのその点において必要とされる機能を提供するコンポーネントを指名する。このようにして、コンポーネントの周囲に状態を構築する。状態は、コンポーネント固有の特性を含み、コンポーネントが実行された後にトリガされる他の状態への遷移を定義する。
特別なケースのシナリオは、状態セクションを用いて取り扱うことができる。例えば、ユーザが取りかかっている第1のスキルを一時的に出て、デジタルアシスタント内で第2のスキルにおいて何かを行うというオプションを、ユーザに与えることが望ましい場合があるかもしれない。例えば、ユーザがショッピングスキルとの会話に関わっている(例えば、ユーザは、購入のために何らかの選択を行った)場合、ユーザは、銀行業務スキルにジャンプし(例えば、ユーザは、その購入に十分な金額を有することを確かめたい場合がある)、その後、ユーザの注文を完了するためにショッピングスキルに戻ることを望む場合がある。これに対処するために、第1のスキルのダイアログフロー定義における状態セクションは、同じデジタルアシスタントにおいて第2の異なるスキルとの対話を開始し、次いで元のダイアログフローに戻るように構成されることができる。
(6)カスタムコンポーネントをスキルボットに追加する-上述のように、スキルボットのためにダイアログフローにおいて指定される状態は、その状態に対応する必要な機能を提供するコンポーネントを指名する。コンポーネントは、スキルボットが機能を実行することを可能にする。ある実施形態では、DABP102は、広範囲の機能を実行するための事前設定されたコンポーネントのセットを提供する。スキルボット設計者は、これらの事前設定されたコンポーネントのうちの1つ以上を選択し、それらをスキルボットのためのダイアログフロー内の状態と関連付けることができる。スキルボット設計者はまた、DABP102によって提供されるツールを用いてカスタムまたは新たなコンポーネントを作成し、カスタムコンポーネントをスキルボットのためのダイアログフロー内の1つ以上の状態と関連付けることができる。
(7)スキルボットをテストおよび展開する-DABP102は、スキルボット設計者が開発中のスキルボットをテストすることを可能にするいくつかの特徴を提供する。次いで、スキルボットは、デジタルアシスタントにおいて展開され、それに含めることができる。
上記の説明は、スキルボットをどのように作成するかについて説明しているが、同様の技術を用いて、デジタルアシスタント(またはマスタボット)を作成することもできる。マスタボットまたはデジタルアシスタントレベルでは、デジタルアシスタントのために組込みシステムインテントを設定することができる。これらの組込みシステムインテントは、デジタルアシスタント自体(すなわち、マスタボット)が、デジタルアシスタントに関連付けられるスキルボットを呼び出すことなく取り扱うことができる一般的なタスクを識別するために用いられる。マスタボットに対して定義されるシステムインテントの例は、以下を含む:(1)退出:ユーザがデジタルアシスタントにおいて現在の会話またはコンテキストを終了したい旨を知らせる場合に当てはまる;(2)ヘルプ:ユーザがヘルプまたは方向付けを求める場合に当てはまる;(3)未解決のインテント:退出インテントおよびヘルプインテントとうまく一致しないユーザ入力に当てはまる。デジタルアシスタントはまた、デジタルアシスタントに関連付けられる1つ以上のスキルボットに関する情報を記憶する。この情報は、マスタボットが、発話を処理するために、特定のスキルボットを選択することを可能にする。
マスタボットまたはデジタルアシスタントレベルでは、ユーザがデジタルアシスタントに句または発話を入力すると、デジタルアシスタントは、発話および関連する会話をどのようにルーティングするかを判断する処理を行うように構成される。デジタルアシスタントは、ルールベース、AIベース、またはそれらの組み合わせとすることができるルーティングモデルを用いて、これを判断する。デジタルアシスタントは、ルーティングモデルを用いて、ユーザ入力発話に対応する会話が、処理のために特定のスキルにルーティングされるべきか、組込みシステムインテントに従ってデジタルアシスタントまたはマスタボット自体によって処理されるべきか、または現在の会話フローにおいて異なる状態として処理されるべきかを判断する。
特定の実施形態では、この処理の一部として、デジタルアシスタントは、ユーザ入力発話が、スキルボットを、その呼出し名を用いて明示的に識別するかどうかを判断する。呼出し名がユーザ入力に存在する場合、それは、呼出し名に対応するスキルボットの明示的な呼出しとして扱われる。そのようなシナリオでは、デジタルアシスタントは、ユーザ入力を、さらなる処理のために、明示的に呼び出されたスキルボットにルーティングすることができる。特定の、または明示的な呼出しがない場合、ある実施形態では、デジタルアシスタントは、受信されたユーザ入力発話を評価し、デジタルアシスタントに関連付けられるシステムインテントおよびスキルボットについて信頼度スコアを計算する。スキルボットまたはシステムインテントについて計算されるスコアは、ユーザ入力が、スキルボットが実行するように構成されるタスクを表すかまたはシステムインテントを表す可能性を表す。関連付けられる計算された信頼度スコアが閾値(例えば、Confidence Threshold(信頼度閾値)ルーティングパラメータ)を超えるシステムインテントまたはスキルボットは、さらなる評価の候補として選択される。次いで、デジタルアシスタントは、識別された候補から、ユーザ入力発話のさらなる処理のために、特定のシステムインテントまたはスキルボットを選択する。特定の実施形態では、1つ以上のスキルボットが候補として識別された後、それらの候補スキルに関連付けられるインテントが(各スキルに対するトレーニングされたモデルを用いて)評価され、信頼度スコアが各インテントについて判断される。一般に、閾値(例えば70%)を超える信頼度スコアを有するインテントは、候補インテントとして扱われる。特定のスキルボットが選択された場合、ユーザ発話は、さらなる処理のために、そのスキルボットにルーティングされる。システムインテントが選択された場合、選択されたシステムインテントに従って、マスタボット自体によって、1つ以上のアクションが実行される。
制約およびターゲットベースのハイパーパラメータチューニング
前述のように、チャットボットは、様々な機能を実行するために1つ以上の機械学習モデルを使用してもよい。例えば、チャットボットは、発話を入力として取り、各発話のインテントを推論または予測するよう構成される、機械学習モデルを使用してもよい。モデルによって発話について推論されるインテントは、次いで、その発話にどのように応答するかを決定するために、チャットボットによって使用されてもよい。チャットボットにおける機械学習モデル(モデルとも呼ばれる)の実現は、通常、2つの段階、すなわち、(1)トレーニングデータを1つ以上のアルゴリズム上で実行して、トレーニングされたモデルを作成するトレーニング段階、および(2)トレーニングされたモデルを使用して、新たなデータに基づいて予測を行う推論段階、で行われる。トレーニングインフラストラクチャは、概して、モデルをトレーニングするようトレーニング段階を実現するために提供される。トレーニングインフラストラクチャは、トレーニングを実行するために使用されるツールもしくはアプリケーション、またはソフトウェアによって提供されてもよい。トレーニングインフラストラクチャは、トレーニングデータを1つ以上のアルゴリズム上で実行して、アルゴリズムをトレーニングまたは学習させ、モデルを作成するよう構成される。トレーニングインフラストラクチャは、概して、このトレーニングプロセスを管理するハイパーパラメータを提供する。これらのハイパーパラメータに対する値のセットは、アルゴリズムのためのネットワーク構造(例えば、入力層の数、隠れ層の数、活性化関数など)およびアルゴリズムがどのようにトレーニングされるか(例えば、学習率、エポック数等)を決定する。
前述のように、チャットボットは、様々な機能を実行するために1つ以上の機械学習モデルを使用してもよい。例えば、チャットボットは、発話を入力として取り、各発話のインテントを推論または予測するよう構成される、機械学習モデルを使用してもよい。モデルによって発話について推論されるインテントは、次いで、その発話にどのように応答するかを決定するために、チャットボットによって使用されてもよい。チャットボットにおける機械学習モデル(モデルとも呼ばれる)の実現は、通常、2つの段階、すなわち、(1)トレーニングデータを1つ以上のアルゴリズム上で実行して、トレーニングされたモデルを作成するトレーニング段階、および(2)トレーニングされたモデルを使用して、新たなデータに基づいて予測を行う推論段階、で行われる。トレーニングインフラストラクチャは、概して、モデルをトレーニングするようトレーニング段階を実現するために提供される。トレーニングインフラストラクチャは、トレーニングを実行するために使用されるツールもしくはアプリケーション、またはソフトウェアによって提供されてもよい。トレーニングインフラストラクチャは、トレーニングデータを1つ以上のアルゴリズム上で実行して、アルゴリズムをトレーニングまたは学習させ、モデルを作成するよう構成される。トレーニングインフラストラクチャは、概して、このトレーニングプロセスを管理するハイパーパラメータを提供する。これらのハイパーパラメータに対する値のセットは、アルゴリズムのためのネットワーク構造(例えば、入力層の数、隠れ層の数、活性化関数など)およびアルゴリズムがどのようにトレーニングされるか(例えば、学習率、エポック数等)を決定する。
図2は、様々な実施形態によるハイパーパラメータの例示的なタイプを示す図である。ハイパーパラメータは、モデル内の層の数、モデルをトレーニングするために使用される学習アルゴリズムのタイプ、学習率、トレーニングエポックの数、各層内の隠れユニットの数、および幅、すなわち各隠れ層内のユニットの数を含んでもよい。典型的には、トレーニングインフラストラクチャを使用しているユーザは、ハイパーパラメータの値を手動で設定する。しかしながら、これは、トレーニングプロセスの非常に深い知識を必要とする非常に困難なタスクであり得る。図4を参照して次に説明するように、様々な実施形態によるハイパーパラメータチューニングシステムが提供され、これは、自動化された方法で、多目的最適化を実行する、すなわち、複数のメトリックの関数(例えば、損失関数)を最適化するよう構成される。図3に示されるように、メトリックは、安定性メトリック、回帰誤差メトリック、信頼度スコアメトリック、モデルサイズメトリック、トレーニング時間もしくは実行時間メトリック、正解率メトリック、またはそれらの任意の組合せを含んでもよい。
安定性メトリックは、トレーニングプロセスが安定していること、すなわち、トレーニングデータにわずかな変更が行われたとき(例えば、1つのトレーニング例が追加または除去されたとき)に、モデルによって行われる予測が根本的に変化しないことを保証する。回帰誤差メトリックは、モデルの回帰の数を最小限にし、すなわち、回帰誤差は、あるモデルがある入力を誤って分類することに対応するが、そのモデルの以前のバージョンはその入力を正しく分類した。信頼度スコアメトリックは、モデルが特定の例を高い信頼度で予測することを確実にする(すなわち、モデルは正しい予測を行うだけでなく、それを高い信頼度で行う)。モデルサイズメトリックは、ユーザ定義閾値、例えば、100メガバイト内にあるべき、トレーニングされたモデルのサイズに対応し、トレーニング時間メトリックは、モデルをトレーニングする際に利用される時間量に対応する。正解率メトリックは、トレーニングされたモデルが、あるユーザ定義の正解率レベル、例えば、ある検証データセットに対する95%正解率を達成することを確実にする。言い換えれば、機械学習モデルが特定のトレーニングデータセット上でトレーニングされるとき、特定の検証データセットに対して特定のターゲット正解率が達成される。トレーニングおよび検証データセットは、チャットボットのユースケースの全範囲にわたるように、すなわち、サイズがアプリケーションの範囲にわたって非常に小さいデータセットから非常に大きいデータセットまで及ぶデータセットが選択され得ることが理解される。
本開示のハイパーパラメータチューニングシステムは、複数のデータセット(例えば、トレーニングデータセット)に関して機械学習モデルをトレーニングし、複数のメトリックに関して機械学習モデルの性能を評価するよう構成される。いくつかの実施形態によれば、機械学習モデルをトレーニングする際に使用されるデータセットの各々には、機械学習モデルをトレーニングする際にデータセットの重要度を示す重みが割り当てられる。言い換えれば、データセットに割り当てられる重みは、データセットが機械学習モデルのトレーニングに及ぼす影響のレベルに対応する。
さらに、ハイパーパラメータチューニングシステムは、多目的最適化において利用される各メトリックに重みを割り当てるよう構成される。具体的には、メトリックに割り当てられる重みは、機械学習モデルの性能に対するメトリックの重要度を示す。以下で詳細に説明するように、メトリックおよび異なるデータセットへの重みの割り当ては、ハイパーパラメータチューニングシステムを管理する1つ以上のポリシーに従って実行される。
さらに、ハイパーパラメータチューニングシステムは、機械学習モデルをトレーニングする際に1つ以上の制約を指定することを可能にする。制約は、機械学習モデルに課される要件、すなわち、トレーニングされたモデルにおいてユーザが達成することを所望する品質または特性であってもよい。制約は、トレーニングプロセス自体に関連してもよい。制約は、モデルのトレーニングを開始する前に指定されてもよい。したがって、所与の制約のセットに対して、トレーニングインフラストラクチャは、トレーニングされた機械学習モデルが制約のセットに準拠し、それを満たすように、機械学習モデルをトレーニングするために、自動的にハイパーパラメータを識別し、ハイパーパラメータの値を設定し、ハイパーパラメータ値をチューニングするために、様々な自動化技術を使用する。
いくつかの実施形態では、ハイパーパラメータチューニングシステムは、広範囲の検証/テストデータセット上で機械学習モデルを検証することを提供する。ハイパーパラメータチューニングシステムは、特定のターゲット値を、機械学習モデルの性能を評価するために使用される1つ以上のメトリックに関連付ける。ハイパーパラメータ目的関数(例えば損失関数)が、複数のメトリックのターゲット値に基づいて構築される。加えて、図4を参照して以下で詳細に説明されるように、ハイパーパラメータチューニングシステムは、機械学習モデルを検証する際に異なるメトリックに重みを割り当てるために、非対称損失機構(すなわち、ターゲットを満たさない場合は、ターゲットを満たしたことまたは上回ることに報酬を与える場合に比べて、ペナルティが大きい)を採用する。
図4を参照すると、様々な実施形態によるハイパーパラメータチューニングシステムが示される。ハイパーパラメータチューニングシステム400は、データセット重み割当ユニット410と、メトリック選択および重み割当ユニット420と、制約確立ユニット430と、ハイパーパラメータチューナ450とを含む。ハイパーパラメータチューナ450は、オプティマイザ451(ここではチューニングユニットとも呼ばれる)と、ハイパーパラメータのセット455とを含む。
ハイパーパラメータチューニングシステム400は、機械学習モデル(例えば、チャットボットに関連付けられるモデル)を複数のデータセット(すなわち、トレーニングデータセット)に関してトレーニングし、複数のメトリックに基づいて機械学習モデルの性能を評価するよう構成される。データセット重み割当ユニット410は、1つ以上のデータセット、たとえば、データセット1 405A、データセット2 405B、およびデータセットK 405Cを取得し、いくつかのポリシー415に従って各データセットに重みを割り当てる。データセットに割り当てられる重みは、機械学習モデルのトレーニングにおけるデータセットの重要度に対応する。異なる重みを異なるデータセットに割り当てることは、データセットが機械学習モデルのトレーニングに適切な影響を(すなわち、それぞれの重みに従って)有することを提供する。
例として、ポリシー415のうちの1つのポリシーは、機械学習モデルが低回帰を達成することを必要としてもよい。したがって、データセット重み割当ユニット410は、回帰データセット(たとえば、データセット1 405A)に、別のタイプのデータセットよりも高い重みを割り当てる。別の例として、データセット1 405Aは、ハイパーパラメータチューニングシステム400の第1のクライアントから取得されたデータセットに対応してもよく、データセット2 405Bは、第1のクライアントとは異なる第2のクライアントから取得されたデータセットに対応してもよい。データセット1およびデータセット2に含まれるトレーニングデータは、コンテキストに関して(それぞれのクライアントによって提供される)異なるタイプのユーザ発話に対応してもよい。ポリシー415のうちの1つが、第1のクライアントは第2のクライアントよりも重要である(例えば、第1のクライアントは、ハイパーパラメータチューニングシステム400と、より高いサービスレベル合意(SLA)を有する)ことを示す、と仮定すると、第1のクライアントに対応するデータセット、すなわち、データセット1 405Aは、データセット2 405Bよりも高い重みを割り当てられる。さらに、ハイパーパラメータチューニングシステム400のシステム管理者は機械学習モデルのトレーニングの前にポリシー415を判断することが理解される。重み付けされたデータセット405は、ハイパーパラメータチューナ450への第1の入力として提供される。
メトリック選択および重み割当てユニット420は、1つ以上のデータセット405に関する機械学習モデルの性能を評価するために、複数のメトリック440、たとえばメトリック1 440A、メトリック2 440B、およびメトリックM 440Cを選択する。メトリック440は、図3に関して示され説明されるように、安定性、正解率、モデルサイズ、回帰誤差等のメトリックに対応することに留意されたい。一実施形態では、メトリック選択および重み割当ユニット420は、ある基準に基づいて、利用可能なメトリックのセット440から複数のメトリック、たとえばメトリック1 440A、メトリック2 440Bなどを選択する。例えば、ハイパーパラメータチューニングシステム400の第1のクライアントは、機械学習モデルに正解率パラメータを強調するよう所望してもよく、ハイパーパラメータチューニングシステム400の別のクライアントは、機械学習モデルに別のメトリック、例えば回帰誤差メトリックを強調するよう所望してもよい。異なるクライアントの要件は、ポリシー415のうちの1つとして記憶され得、それに基づいて、メトリック選択および重み割当ユニット420は、機械学習モデルの性能を評価するための複数のメトリックを選択する。
メトリック選択および重み割当ユニット420は、さらに、選択されたメトリックの各々に重みを割り当てるように構成される。特定のメトリックに割り当てられた重みは、機械学習モデルの性能に対するメトリックの重要度を示す。一実施形態では、メトリック選択および重み割当ユニット420は、ハイパーパラメータチューニングシステム400のクライアントの重要度のレベルに基づいて、メトリックに重みを割り当てる。例えば、第1のクライアントが第2のクライアントよりも重要である(すなわち、第1のクライアントは、第2のクライアントよりも高いSLAを有する)場合、第1のクライアントによって要求されるメトリックには、第2のクライアントによって要求されるメトリックよりも高い重みが割り当てられる。別の例として、ドメイン検出のためにトレーニングされる機械学習モデルを考える。そのような場合、2つのメトリック、すなわち、機械学習モデルの性能を評価するために使用されるドメイン内再現率およびドメイン外再現率がある。そのようなドメイン検出モデルでは、モデルが、ドメイン外検出と比較して、ドメイン内検出に関して良好に、すなわち、ある閾値レベルを上回って機能することがしばしば所望される。この場合、重み割当ユニット420は、ドメイン外再現率メトリックと比較して、より高い重みをドメイン内再現率メトリックに割り当てる。複数の重み付けされたメトリックは、ハイパーパラメータチューナ450への第2の入力として提供される。
メトリック440の各々は、対応する仕様セットに関連付けられる。仕様セットは、メトリックを定義または特徴付ける複数の仕様パラメータを含む。図4に示すように、メトリック1 440Aは仕様セット1 442Aに関連付けられ、メトリック2 440Bは仕様セット2 442Bに関連付けられ、メトリックM 440Cは仕様セットM 442Cに関連付けられる。特定のメトリックに関連付けられる仕様セットは、他のメトリックに関連付けられる仕様セットに対して独立して設定され得ることを諒解されたい。図5を参照すると、メトリックの仕様セットは、(1)トレーニングデータセット、(2)検証データセット、(3)モデルがデータセット、例えばトレーニングデータセットおよび検証データセットに対するターゲット目標をどの程度良好に満たすかに関する尺度を定義するメトリック定義、(4)メトリックのターゲットスコア(すなわち、モデルが満たすと期待されるメトリックのスコア)、(5)メトリックについてのペナルティ係数、および(6)メトリックについてのボーナス係数を含む。
いくつかの実施形態によれば、メトリックは、トレーニングデータセットおよび/または検証データセットを共有することが許されてもよい。しかしながら、機械学習モデルは、異なるメトリック間にトレーニングデータセットおよび検証データセットの多様性がある場合に、よりロバストな結果を生成することが期待される。仕様セット442A、442B、および442Cの各々の仕様パラメータは、所望の結果を達成するために特定の値に設定され得る。例えば、回帰誤差のメトリックに関して、対応する仕様セットは、以下のように設定することができる:
1.トレーニングデータセットは、特定のセットの顧客、例えば重要な顧客に基づいてモデル化される。検証データセットは、以前の機械学習モデルが正しく分類し、顧客によって広く使用されることが期待される例を含む。
2.回帰誤差のメトリック定義は正解率に設定される。
3.ターゲットスコアは95%に設定され、すなわち、機械学習モデルの古いバージョンが正しくラベル付けした例の少なくとも95%が機械学習モデルの新しいバージョンでも正しくラベル付けされるよう達成することが期待される。
4.ペナルティ係数は100に設定され、ボーナス係数は1に設定される。そうする際に、95%を下回る各パーセンテージ点は、95%を上回るパーセンテージ点より100倍多くペナルティを課される。
1.トレーニングデータセットは、特定のセットの顧客、例えば重要な顧客に基づいてモデル化される。検証データセットは、以前の機械学習モデルが正しく分類し、顧客によって広く使用されることが期待される例を含む。
2.回帰誤差のメトリック定義は正解率に設定される。
3.ターゲットスコアは95%に設定され、すなわち、機械学習モデルの古いバージョンが正しくラベル付けした例の少なくとも95%が機械学習モデルの新しいバージョンでも正しくラベル付けされるよう達成することが期待される。
4.ペナルティ係数は100に設定され、ボーナス係数は1に設定される。そうする際に、95%を下回る各パーセンテージ点は、95%を上回るパーセンテージ点より100倍多くペナルティを課される。
一実施形態では、安定性のメトリックに関して、対応する仕様セットを以下のように設定することができる:
1.小さなデータセットは、より高い不安定性を引き起こすと予想されるので、トレーニングデータセットは、サイズが小さなデータセットであるよう設定される。検証データセットは、トレーニングデータセットよりもサイズが妥当に大きくなるよう設定されてもよい。
2.安定性のメトリック定義は、例えば、機械学習モデルが10回トレーニングされるとき、検証データセット上の機械学習モデルの正解率スコアにおいて標準偏差であるよう設定される。
3.ターゲットスコアは5%に設定され、すなわち、機械学習モデルの正解率スコアの変動が最大で5%であることが望まれる。
4.ペナルティ係数は10に設定され、ボーナス係数は1に設定される。そうする際に、ターゲットスコアを満たさない各パーセンテージ点は、ターゲットスコアを超えるパーセンテージ点改善よりも10倍大きい損失を被る。
1.小さなデータセットは、より高い不安定性を引き起こすと予想されるので、トレーニングデータセットは、サイズが小さなデータセットであるよう設定される。検証データセットは、トレーニングデータセットよりもサイズが妥当に大きくなるよう設定されてもよい。
2.安定性のメトリック定義は、例えば、機械学習モデルが10回トレーニングされるとき、検証データセット上の機械学習モデルの正解率スコアにおいて標準偏差であるよう設定される。
3.ターゲットスコアは5%に設定され、すなわち、機械学習モデルの正解率スコアの変動が最大で5%であることが望まれる。
4.ペナルティ係数は10に設定され、ボーナス係数は1に設定される。そうする際に、ターゲットスコアを満たさない各パーセンテージ点は、ターゲットスコアを超えるパーセンテージ点改善よりも10倍大きい損失を被る。
一実施形態では、信頼度スコアのメトリックに関して、対応する仕様セットは以下のように設定することができる:
1.トレーニングデータセットは、サイズが小さいものから大きいものまでの範囲にわたり得、ドメインによって異なり得る。検証データセットは、それらのインテントクラスラベルに属するドメイン内例を含んでもよい。
2.信頼度スコアメトリックのメトリック定義は、モデルの信頼度閾値が25%より大きい文の何分の一かに設定される(すなわち、予測は正確であり、他の予測よりも少なくとも25%多く信頼できる)。
3.ターゲットスコアは85%に設定され、すなわち、例の少なくとも85%が確信的にラベル付けされるよう望まれる。
4.ペナルティ係数は10に設定され、ボーナス係数は1に設定される。
1.トレーニングデータセットは、サイズが小さいものから大きいものまでの範囲にわたり得、ドメインによって異なり得る。検証データセットは、それらのインテントクラスラベルに属するドメイン内例を含んでもよい。
2.信頼度スコアメトリックのメトリック定義は、モデルの信頼度閾値が25%より大きい文の何分の一かに設定される(すなわち、予測は正確であり、他の予測よりも少なくとも25%多く信頼できる)。
3.ターゲットスコアは85%に設定され、すなわち、例の少なくとも85%が確信的にラベル付けされるよう望まれる。
4.ペナルティ係数は10に設定され、ボーナス係数は1に設定される。
上記に述べた仕様セットの設定は、例示的であり、非限定的であることが意図されることが理解される。システム管理者は、仕様セットの各々を、異なる要件に基づいて任意の他の態様で設定してもよい。さらに、機械学習モデルを検証する際の異なる仕様セットの利用は、ハイパーパラメータチューナ450を参照して以下で説明される。
いくつかの実施形態によれば、ハイパーパラメータチューニングシステム400は、ユーザ(例えば、システム管理者)が、機械学習モデルのハイパーパラメータチューニングのために1つ以上の制約を指定することを可能にする。1つ以上の制約は、制約確立ユニット430を介して指定される。1つ以上の制約は、ハイパーパラメータチューナ450に第3の入力として提供される。各制約は、機械学習モデルのハイパーパラメータチューニングに課される要件であり、すなわち、各制約は、トレーニングされた機械学習モデルによって満たされるべき要件である。1つ以上の制約が与えられると、ハイパーパラメータチューナ450は、各制約に影響を及ぼすハイパーパラメータのセットを識別し、識別されたハイパーパラメータのために値を指定し、トレーニングされた機械学習モデルが以下で説明するように1つ以上の制約の各々を満たすまでハイパーパラメータを反復的にチューニングするよう構成される。
一実施形態では、1つ以上の制約の各々について、ハイパーパラメータチューナ450は、ハイパーパラメータのセット455から、各制約に影響を及ぼす1つ以上のハイパーパラメータを識別する。ハイパーパラメータチューナ450は、ハイパーパラメータの値を変化させ、ハイパーパラメータの値の変化が制約に関連付けられる値に影響を与えるかどうかを判定することによって、制約に影響を与える1つ以上のハイパーパラメータを識別する。さらに、第1の制約に影響を及ぼすハイパーパラメータの第1のセットは、第2の制約に影響を及ぼすハイパーパラメータの第2のセットとは異なり得ることを諒解されたい。
各制約に影響を及ぼす1つ以上のハイパーパラメータを識別すると、ハイパーパラメータチューナ450は、ハイパーパラメータのセット455の値を指定し、制約の各々が満たされるまでハイパーパラメータを反復的にチューニングする。例として、ハイパーパラメータのセット455が5つのハイパーパラメータ:H=[h1,h2,h3,h4,h5]を含むと考える。さらに、説明のため、ユーザが2つの制約C1およびC2を指定し、ハイパーパラメータチューナ450が、ハイパーパラメータh1およびh3は制約C1に影響を及ぼし、ハイパーパラメータh2、h3、およびh5は制約C2に影響を及ぼす、と識別した、と考える。
ハイパーパラメータチューナ450のオプティマイザ451(ここではチューニングユニットとも呼ばれる)は、ハイパーパラメータHのセットのための値、すなわち、ここではハイパーパラメータの設定と呼ばれるV(H)=[v(h1)、v(h2)、v(h3)、v(h4)、v(h5)]を指定する。なお、オプティマイザ451は、ハイパーパラメータの初期設定をランダムな態様で割り当てる。さらに、制約C1に関して、オプティマイザは、制約C1が満たされるまで、(ハイパーパラメータh2、h4およびh5の値を維持しながら)ハイパーパラメータh1および/またはh3の値を反復的に変更する。制約に影響するハイパーパラメータの値が、制約によって課される要件を満たすと、その制約は満たされることに留意されたい。制約C2に関して、オプティマイザ451は、制約C2が満たされるまで、(ハイパーパラメータh1およびh3の値を維持しながら)ハイパーパラメータh2、h4、および/またはh5の値を反復的に変更/修正する。オプティマイザは、1つ以上のデータセットに関して機械学習モデルをトレーニングしながら上述の反復を実行することに留意されたい。具体的には、次に説明するように、オプティマイザ451は、複数のメトリックについて機械学習モデルの目的関数(例えばコストまたは損失関数)を最適化しながら、各制約を満たすハイパーパラメータの最適な設定を決定する。一実施形態では、ユーザ指定の制約の例は、以下のような制約を含む:
-所与のバッチについての推論待ち時間は、特定の閾値未満であるべきであり、例えば、待ち時間は、1のバッチサイズについて50ミリ秒未満であるべきである。
-トレーニングされたモデルの最大サイズは、なんらかの特定の閾値(例えば、10MB)を下回る必要がある。
-モデルのトレーニング時間は、何らかのユーザ固有の時間閾値未満であるべきであり、例えば、トレーニング時間は、5分以下であるべきである。
-所与のバッチについての推論待ち時間は、特定の閾値未満であるべきであり、例えば、待ち時間は、1のバッチサイズについて50ミリ秒未満であるべきである。
-トレーニングされたモデルの最大サイズは、なんらかの特定の閾値(例えば、10MB)を下回る必要がある。
-モデルのトレーニング時間は、何らかのユーザ固有の時間閾値未満であるべきであり、例えば、トレーニング時間は、5分以下であるべきである。
さらに、いくつかの実施形態では、ユーザによって指定された複数の制約が優先される。例えば、各制約には、その制約の履行を反映する重要度レベルが割り当てられる。いくつかの実施形態では、制約は、トレーニングされた機械学習モデルは必然的にいくつかの制約を満たさなければならないが、他の制約の履行は所望されるが随意であるように、指定されてもよい。
ハイパーパラメータチューナ450のオプティマイザ451は、目的関数を、最適化されるよう構築/定式化する。目的関数は、1つ以上のトレーニング/検証データセットを用いて機械学習モデルをトレーニング/検証する性能指標として供される損失関数またはコスト関数である。一実施形態では、目的関数の引数は、オプティマイザ451によって最適化される、機械学習モデルに関連付けられるハイパーパラメータのセットである。目的関数の値は、各メトリックの実際の値と各メトリックに対して設定されたターゲット値との間の差の重み付けされた組み合わせである。重み付けされた組み合わせにおける各メトリックの重みは、そのメトリックがターゲット値を超えるかまたは超えないかに依存する。具体的には、(ターゲット値を超えるよりも)ターゲット値を達成できないことに関連付けられる、より高い重みが、メトリックに割り当てられる、非対称損失技術が利用される。
例えば、一実施形態によれば、目的関数は以下のように定式化することができる:vがハイパーパラメータ値のベクトルであり、mi(v)がv上のi番目のメトリックの値として示され、tiがi番目のメトリックのターゲット値として示され、piおよびbiがi番目のメトリックのペナルティ係数およびボーナス係数としてそれぞれ示される場合、目的関数または損失関数(L(v))は以下のように定式化することができる:
オプティマイザ451は、複数のメトリックにわたって目的関数を最適化する(例えば、損失関数の最小値を得る)ために、機械学習モデルに関連付けられるハイパーパラメータのセット455を調整する。オプティマイザは、グリッドに基づく方法、勾配探索法、およびベイジアン法のうちの1つを利用して、ハイパーパラメータのセットをチューニングしてもよい。次に、図5および図6を参照して、ハイパーパラメータのチューニングに関する詳細を説明する。このようにして、ハイパーパラメータチューナ450は、ハイパーパラメータのセットをチューニングすることによって機械学習モデルをトレーニング/検証して、1つ以上の制約の各々が満たされることを確実にしながら、異なる重み付けされたメトリックに関して最適な性能を達成する。言い換えれば、ハイパーパラメータチューニングシステム400は、1つ以上のユーザ指定の制約をサポートしながら、異なる重み付きデータセット上で機械学習モデルをトレーニングすることによって、複数の重み付きメトリックの最適化を実行する。複数のメトリックについて機械学習モデルを最適化すると、ハイパーパラメータチューニングシステム400は、トレーニング/検証されたMLモデルを、1つ以上の制約を満たすだけでなく目的関数を最適化するハイパーパラメータの設定とともに、出力する。上述した実施形態では、オプティマイザ451は、目的関数を構築し、最適化する。なお、上述したハイパーパラメータチューナ450の構成は、本開示の範囲を限定するものではない。例えば、ハイパーパラメータチューナ450は、オプティマイザ451によって最適化される目的関数を定式化する目的関数定式化ユニット(図示せず)を含んでもよい。
図6は、いくつかの実施形態によるハイパーパラメータチューニングシステムによって実行されるトレーニングプロセスを示す簡略化されたフローチャート600を示す。図6に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(たとえば、メモリデバイス上に)記憶されてもよい。図6に提示され、以下に説明される方法は、例示的かつ非限定的であることを意図している。図6は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
ステップ610において、機械学習モデルをトレーニングするためのデータセットが取得される。ステップ620において、ハイパーパラメータチューニングシステムは、ポリシーに従って、取得されたデータセットの各々に重みを割り当てる。異なる重みを異なるデータセットに割り当てることは、データセットが機械学習モデルのトレーニングに適切な影響を(すなわち、それらのそれぞれの重みに従って)有することを可能にすることに留意されたい。
ステップ630において、取得されたデータセットに対する機械学習モデルの性能を評価するために複数のメトリックが選択される。例えば、図3に示すような1つ以上のメトリックが、機械学習モデルの性能を評価するためにユーザ(例えば、システム管理者)によって選択される。選択された各メトリックについて、機械学習モデルの性能に対するメトリックの重要度を示すために、別のポリシーに従ってメトリックに重みが割り当てられる(ステップ640)。ステップ650において、ユーザは、1つ以上の制約を確立する。各制約は、トレーニングされた機械学習モデルにおいてユーザが達成することを望む品質または特性である。言い換えれば、各制約は、機械学習モデルに課される要件である。
ステップ660において、プロセスは、入力された重み付きメトリックおよびハイパーパラメータのセット455に基づいて関数(すなわち、目的関数)を定式化/構築する。一実施形態では、目的関数は、1つ以上のデータセットを用いて機械学習モデルをトレーニングする性能指標として供される損失関数またはコスト関数である。
ステップ670において、プロセスは、複数のメトリックについて機械学習モデルを最適化(例えば、目的関数の最適値を得る)するために、機械学習モデルに関連付けられるハイパーパラメータのセットを反復的にチューニングする。例えば、重み付けされたデータセット上で機械学習モデルをトレーニングする際に、1つ以上の制約および/または関数に影響を及ぼす1つ以上のハイパーパラメータが、ハイパーパラメータの値を変動させること、およびハイパーパラメータの値の変動が制約および/または関数に関連付けられる値に影響を及ぼすかどうかを判定することによって、識別される。
一実施形態では、ハイパーパラメータをチューニングするプロセスは、ハイパーパラメータの現在の設定(すなわち、ハイパーパラメータの値)、関数の値を評価し、現在の設定が1つ以上の制約の各々を満たすかどうかを判断する。制約のうちの少なくとも1つに違反し、および/または関数の値が最適でない場合、チューニングプロセスは、1つ以上のハイパーパラメータの値を修正してハイパーパラメータの新たな設定を取得し、新たな設定に基づいて機械学習モデルをトレーニングし続ける。現在の設定が特定の制約に違反するかどうかの判断は、制約に影響を及ぼす1つ以上のハイパーパラメータの値が制約によって課される要件を満たすかどうかを判断することによって実行されることに留意されたい。さらに、(現在の設定に対する機械学習モデルの性能を示す)関数の値が最適であるかどうかの判断は、関数の値を、ハイパーパラメータの異なる設定を介して得られる関数の新たな値と比較することによって、行われる。
このようにして、チューニングプロセスは、関数の最適値をもたらす(およびいかなる制約にも違反しない)設定が達成されるまで、ハイパーパラメータ値の空間を通して反復する。さらに、ハイパーパラメータをチューニングするプロセスは、ランダムな態様で割り当てられるハイパーパラメータの初期設定で開始できることが理解される。さらに、チューニングプロセスは、新たなハイパーパラメータ設定を得るためにハイパーパラメータ値の空間を探索する際に、ランダム検索法、ベイジアン検索法、分枝限定法、グリッド検索法、遺伝的アルゴリズムなどのうちの1つを実施することができる。機械学習モデルが最適化されると、機械学習モデルは、(最適化された機械学習モデルを達成するハイパーパラメータの値とともに、)トレーニングされた機械学習モデルとしてユーザに出力される。
図7は、ある実施形態による、ハイパーパラメータチューニングシステムによって実行される検証プロセスを示す、簡略化されたフローチャート700を示す。図7に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(たとえば、メモリデバイス上に)記憶されてもよい。図7に提示され、以下に説明される方法は、例示的かつ非限定的であることを意図している。図7は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
ステップ710において、機械学習モデルの性能を評価するために、および機械学習モデルのどのハイパーパラメータがチューニングされるべきかに関して、複数のメトリックが選択される。ステップ720において、各選択されたメトリックに関連付けられる仕様セットが、ある基準に従って設定される。具体的には、基準に基づいて、仕様セットに含まれる仕様パラメータに値が割り当てられる。例えば、回帰誤差を低減することが望ましい場合、回帰誤差メトリックに関連付けられる仕様セットは、以下のように設定される:ターゲットスコアには低い値が設定され、回帰誤差メトリックに対応するペナルティ係数には高い値が設定される。例として、ターゲットスコアは90%に設定されてもよく、すなわち、以前に正しくラベル付けされたトレーニング例の少なくとも90%が、機械学習モデルの現在のバージョンによっても正しくラベル付けされることが期待される。さらに、高いペナルティ係数、例えば、100のペナルティ係数を設定することは、90%を下回る各パーセンテージ点(すなわち、機械学習モデルの性能)が、90%を上回るパーセンテージ点より100倍多くペナルティを課されることを意味する。このように回帰誤差メトリックの仕様セットを設定する際、回帰誤差は目的関数(すなわち損失関数)を支配し、図4のハイパーパラメータチューナは、回帰誤差を最小化するハイパーパラメータのチューニングを実行する。
ステップ730において、各メトリックについてメトリックスコアが計算される。具体的には、選択されたメトリックは検証データセット上で評価され、各メトリックに対するメトリックスコアを生成する。各メトリックについて計算されたメトリックスコアは、ステップ740において、そのメトリックについての対応するターゲットスコアと比較される。一実施形態では、メトリックスコアとメトリックのターゲットスコアとの間の差が計算される。メトリックスコアがターゲットスコアよりも高い場合、その差は、そのメトリックに関連付けられるボーナス係数で乗算される。しかしながら、メトリックスコアがターゲットスコアよりも低い場合、その差はペナルティ係数で乗算される。ステップ750において、目的関数、例えば損失関数が、ステップ740において実行された処理に基づいて定式化される。具体的には、損失関数は、(メトリックスコアとターゲットスコアとの間の)差の合計に、対応するボーナス係数またはペナルティ係数のいずれかを乗じたものであると判断される。その後、プロセスはステップ760に進み、定式化された目的関数を最適化する。
ステップ760において、ハイパーパラメータチューナは、ステップ750において定式化された重み付き損失関数を最適化する(例えば、損失関数の最小値を取得する)ために、機械学習モデルに関連付けられるハイパーパラメータを反復的に調整する。一実施形態では、ハイパーパラメータをチューニングする際に、ハイパーパラメータチューナは、現在の設定(すなわち、ハイパーパラメータの値)について損失関数の値を評価する。ハイパーパラメータチューナはさらに、損失関数の値を、ハイパーパラメータの異なる設定を介して得られる損失関数の新たな値と比較することによって、損失関数の値が最適であるかどうかを判断する。
このようにして、チューニングプロセスは、損失関数の最適値をもたらす設定が達成されるまで、ハイパーパラメータ値の空間を通して反復する。さらに、ハイパーパラメータをチューニングするプロセスは、ランダムな態様で割り当てられるハイパーパラメータの初期設定で開始できる。さらに、チューニングプロセスは、新たなハイパーパラメータ設定を取得するために、ハイパーパラメータ空間を探索するための検索アルゴリズムを実現することができる。ハイパーパラメータチューナは、ハイパーパラメータ空間の探索において、ランダム検索法、ベイジアン検索法、分枝限定法等のいずれかを利用することができる。損失関数が最適化される(すなわち、損失関数の最小値が取得される)と、ハイパーパラメータチューナは、出力として、検証された機械学習モデルを、最適化された損失関数を達成するハイパーパラメータの値とともに、ユーザに提供する。
例示的なシステム
図8は、分散型システム800の簡略図を示す。図示される例において、分散型システム800は、1つ以上の通信ネットワーク810を介してサーバ812に結合された1つ以上のクライアントコンピューティングデバイス802、804、806、および808を含む。クライアントコンピューティングデバイス802、804、806、および808は、1つ以上のアプリケーションを実行するように構成され得る。
図8は、分散型システム800の簡略図を示す。図示される例において、分散型システム800は、1つ以上の通信ネットワーク810を介してサーバ812に結合された1つ以上のクライアントコンピューティングデバイス802、804、806、および808を含む。クライアントコンピューティングデバイス802、804、806、および808は、1つ以上のアプリケーションを実行するように構成され得る。
さまざまな例において、サーバ812は、本開示に記載される1つ以上の実施形態を可能にする1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。ある例では、サーバ812はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの例では、これらのサービスは、クライアントコンピューティングデバイス802、804、806および/または808のユーザに対して、サービスとしてのソフトウェア(Software as a Service:SaaS)モデル下のように、ウェブベースのサービスまたはクラウドサービスとして提供され得る。クライアントコンピューティングデバイス802、804、806および/または808を操作するユーザは、1つ以上のクライアントアプリケーションを利用してサーバ812とやり取りすることで、これらのコンポーネントによって提供されるサービスを利用し得る。
図8に示される構成では、サーバ812は、サーバ812によって実行される機能を実現する1つ以上のコンポーネント818、820および822を含み得る。これらのコンポーネントは、1つ以上のプロセッサ、ハードウェアコンポーネント、またはそれらの組合わせによって実行され得るソフトウェアコンポーネントを含み得る。分散型システム800とは異なり得る多種多様なシステム構成が可能であることが認識されるはずである。したがって、図8に示される例は、例のシステムを実現するための分散型システムの一例であり、限定するよう意図されたものではない。
ユーザは、クライアントコンピューティングデバイス802、804、806および/または808を用いて、1つ以上のアプリケーション、モデルまたはチャットボットを実行し、それは、1つ以上のイベントまたはモデルを生成してもよく、それは次いで本開示の教示に従って実現または処理されてもよい。クライアントデバイスは、当該クライアントデバイスのユーザが当該クライアントデバイスと対話することを可能にするインターフェイスを提供し得る。クライアントデバイスはまた、このインターフェイスを介してユーザに情報を出力してもよい。図8は4つのクライアントコンピューティングデバイスだけを示しているが、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
クライアントデバイスは、ポータブルハンドヘルドデバイス、パーソナルコンピュータおよびラップトップのような汎用コンピュータ、ワークステーションコンピュータ、ウェアラブルデバイス、ゲームシステム、シンクライアント、各種メッセージングデバイス、センサまたはその他のセンシングデバイスなどの、さまざまな種類のコンピューティングシステムを含み得る。これらのコンピューティングデバイスは、さまざまな種類およびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえばMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、Linux(登録商標)またはLinux系オペレーティングシステム、たとえば、各種モバイルオペレーティングシステム(たとえばMicrosoft Windows Mobile(登録商標)、iOS(登録商標)、Windows Phone(登録商標)、Android(登録商標)、BlackBerry(登録商標)、Palm OS(登録商標))を含むGoogle Chrome(登録商標)OS)を含み得る。ポータブルハンドヘルドデバイスは、セルラーフォン、スマートフォン(たとえばiPhone(登録商標))、タブレット(たとえばiPad(登録商標))、携帯情報端末(PDA)などを含み得る。ウェアラブルデバイスは、Google Glass(登録商標)ヘッドマウントディスプレイおよびその他のデバイスを含み得る。ゲームシステムは、各種ハンドヘルドゲームデバイス、インターネット接続可能なゲームデバイス(たとえばKinect(登録商標)ジェスチャ入力デバイス付き/無しのMicrosoft Xbox(登録商標)ゲーム機、Sony PlayStation(登録商標)システム、Nintendo(登録商標)が提供する各種ゲームシステムなど)を含み得る。クライアントデバイスは、各種インターネット関連アプリケーション、通信アプリケーション(たとえばEメールアプリケーション、ショートメッセージサービス(SMS)アプリケーション)のような多種多様なアプリケーションを実行可能であってもよく、各種通信プロトコルを使用してもよい。
ネットワーク810は、利用可能な多様なプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当該技術の当業者には周知のいずれかの種類のネットワークであればよく、上記プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalk(登録商標)などを含むがこれらに限定されない。単に一例として、ネットワーク810は、ローカルエリアネットワーク(LAN)、Ethernet(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば電気電子学会(IEEE)802.11プロトコルスイートのいずれかの下で動作する無線ネットワーク、Bluetooth(登録商標)および/または任意の他の無線プロトコル)、および/またはこれらおよび/または他のネットワークの任意の組み合わせを含み得る。
サーバ812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組み合わせで構成されてもよい。サーバ812は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。これはたとえば、サーバに対して仮想記憶装置を維持するように仮想化できる論理記憶装置の1つ以上のフレキシブルプールなどである。様々な例において、サーバ812を、上記開示に記載の機能を提供する1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合させてもよい。
サーバ812内のコンピューティングシステムは、上記オペレーティングシステムのうちのいずれかを含む1つ以上のオペレーティングシステム、および、市販されているサーバオペレーティングシステムを実行し得る。また、サーバ812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)(International Business Machines)などから市販されているものを含むが、それらに限定されない。
いくつかの実現例において、サーバ812は、クライアントコンピューティングデバイス802、804、806および808のユーザから受信したデータフィードおよび/またはイベントアップデートを解析および整理統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)アップデートまたはリアルタイムのアップデートを含み得るが、それらに限定されない。サーバ812は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス802、804、806および808の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含み得る。
分散型システム800はまた、1つ以上のデータリポジトリ814、816を含み得る。特定の例において、これらのデータリポジトリを用いてデータおよびその他の情報を格納することができる。たとえば、データリポジトリ814、816のうちの1つ以上を用いて、様々な実施形態による様々な機能を実行するときにチャットボット性能またはサーバ812によって使用されるチャットボットによる使用のための生成されたモデルに関連する情報のような情報を格納することができる。データリポジトリ814、816は、さまざまな場所に存在し得る。たとえば、サーバ812が使用するデータリポジトリは、サーバ812のローカル位置にあってもよく、またはサーバ812から遠隔の位置にあってもよく、ネットワークベースの接続または専用接続を介してサーバ812と通信する。データリポジトリ814、816は、異なる種類であってもよい。特定の例において、サーバ812が使用するデータリポジトリは、データベース、たとえば、Oracle Corporation(登録商標)および他の製造業者が提供するデータベースのようなリレーショナルデータベースであってもよい。これらのデータベースのうちの1つ以上を、SQLフォーマットのコマンドに応じて、データの格納、アップデート、およびデータベースとの間での取り出しを可能にするように適合させてもよい。
特定の例では、データリポジトリ814、816のうちの1つ以上は、アプリケーションデータを格納するためにアプリケーションによって用いられてもよい。アプリケーションが使用するデータリポジトリは、たとえば、キー値ストアリポジトリ、オブジェクトストアリポジトリ、またはファイルシステムがサポートする汎用ストレージリポジトリのようなさまざまな種類のものであってもよい。
特定の例において、本開示に記載される機能は、クラウド環境を介してサービスとして提供され得る。図9は、特定の例に係る、各種サービスをクラウドサービスとして提供し得るクラウドベースのシステム環境の簡略化されたブロック図である。図9に示される例において、クラウドインフラストラクチャシステム902は、ユーザが1つ以上のクライアントコンピューティングデバイス904、906および908を用いて要求し得る1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム902は、サーバ812に関して先に述べたものを含み得る1つ以上のコンピュータおよび/またはサーバを含み得る。クラウドインフラストラクチャシステム902内のコンピュータは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他任意の適切な配置および/または組み合わせとして編成され得る。
ネットワーク910は、クライアント904、906、および908と、クラウドインフラストラクチャシステム902との間におけるデータの通信および交換を容易にし得る。ネットワーク910は、1つ以上のネットワークを含み得る。ネットワークは同じ種類であっても異なる種類であってもよい。ネットワーク910は、通信を容易にするために、有線および/または無線プロトコルを含む、1つ以上の通信プロトコルをサポートし得る。
図9に示される例は、クラウドインフラストラクチャシステムの一例にすぎず、限定を意図したものではない。なお、その他いくつかの例において、クラウドインフラストラクチャシステム902が、図9に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、または、異なる構成または配置のコンポーネントを有していてもよいことが、理解されるはずである。たとえば、図9は3つのクライアントコンピューティングデバイスを示しているが、代替例においては、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
クラウドサービスという用語は一般に、サービスプロバイダのシステム(たとえばクラウドインフラストラクチャシステム902)により、インターネット等の通信ネットワークを介してオンデマンドでユーザにとって利用可能にされるサービスを指すのに使用される。典型的に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。よって、顧客は、別途ライセンス、サポート、またはハードウェアおよびソフトウェアリソースをサービスのために購入しなくても、クラウドサービスプロバイダが提供するクラウドサービスを利用できる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストし得るとともに、ユーザは、アプリケーションを実行するためにインフラストラクチャリソースを購入しなくても、インターネットを介してオンデマンドでアプリケーションをオーダーして使用し得る。クラウドサービスは、アプリケーション、リソースおよびサービスに対する容易でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダがクラウドサービスを提供する。たとえば、ミドルウェアサービス、データベースサービス、Java(登録商標)クラウドサービスなどのいくつかのクラウドサービスが、カリフォルニア州レッドウッド・ショアーズのOracle Corporation(登録商標)から提供される。
特定の例において、クラウドインフラストラクチャシステム902は、ハイブリッドサービスモデルを含む、サービスとしてのソフトウェア(SaaS)モデル、サービスとしてのプラットフォーム(PaaS)モデル、サービスとしてのインフラストラクチャ(IaaS)モデルなどのさまざまなモデルを使用して、1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム902は、各種クラウドサービスのプロビジョンを可能にする、アプリケーション、ミドルウェア、データベース、およびその他のリソースのスイートを含み得る。
SaaSモデルは、アプリケーションまたはソフトウェアを、インターネットのような通信ネットワークを通して、顧客が基本となるアプリケーションのためのハードウェアまたはソフトウェアを購入しなくても、サービスとして顧客に配信することを可能にする。たとえば、SaaSモデルを用いることにより、クラウドインフラストラクチャシステム902がホストするオンデマンドアプリケーションに顧客がアクセスできるようにし得る。Oracle Corporation(登録商標)が提供するSaaSサービスの例は、人的資源/資本管理のための各種サービス、カスタマー・リレーションシップ・マネジメント(CRM)、エンタープライズ・リソース・プランニング(ERP)、サプライチェーン・マネジメント(SCM)、エンタープライズ・パフォーマンス・マネジメント(EPM)、解析サービス、ソーシャルアプリケーションなどを含むがこれらに限定されない。
IaaSモデルは一般に、インフラストラクチャリソース(たとえばサーバ、ストレージ、ハードウェアおよびネットワーキングリソース)を、クラウドサービスとして顧客に提供することにより、柔軟な計算およびストレージ機能を提供するために使用される。各種IaaSサービスがOracle Corporation(登録商標)から提供される。
PaaSモデルは一般に、顧客が、環境リソースを調達、構築、または管理しなくても、アプリケーションおよびサービスを開発、実行、および管理することを可能にするプラットフォームおよび環境リソースをサービスとして提供するために使用される。Oracle Corporation(登録商標)が提供するPaaSサービスの例は、Oracle Java Cloud Service(JCS)、Oracle Database Cloud Service(DBCS)、データ管理クラウドサービス、各種アプリケーション開発ソリューションサービスなどを含むがこれらに限定されない。
クラウドサービスは一般に、オンデマンドのセルフサービスベースで、サブスクリプションベースで、柔軟にスケーラブルで、信頼性が高く、可用性が高い、安全なやり方で提供される。たとえば、顧客は、サブスクリプションオーダーを介し、クラウドインフラストラクチャシステム902が提供する1つ以上のサービスをオーダーしてもよい。次いで、クラウドインフラストラクチャシステム902は、処理を実行することにより、顧客のサブスクリプションオーダーで要求されたサービスを提供する。例えば、ユーザは、発話を用いて、クラウドインフラストラクチャシステムに、上記のように特定のアクション(例えばインテント)をとらせ、および/または本明細書で説明するようにチャットボットシステムのためのサービスを提供させるように要求することができる。クラウドインフラストラクチャシステム902を、1つのクラウドサービスまたは複数のクラウドサービスであっても提供するように構成してもよい。
クラウドインフラストラクチャシステム902は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルにおいて、クラウドインフラストラクチャシステム902は、第三者クラウドサービスプロバイダによって所有されていてもよく、クラウドサービスは一般のパブリックカスタマーに提供される。このカスタマーは個人または企業であってもよい。ある他の例では、プライベートクラウドモデル下において、クラウドインフラストラクチャシステム902がある組織内で(たとえば企業組織内で)機能してもよく、サービスはこの組織内の顧客に提供される。たとえば、この顧客は、人事部、給与部などの企業のさまざまな部署であってもよく、企業内の個人であってもよい。ある他の例では、コミュニティクラウドモデル下において、クラウドインフラストラクチャシステム902および提供されるサービスは、関連コミュニティ内のさまざまな組織で共有されてもよい。上記モデルの混成モデルなどのその他各種モデルが用いられてもよい。
クライアントコンピューティングデバイス904、906、および908は、異なるタイプであってもよく(たとえば図8に示されるクライアントコンピューティングデバイス802、804、806および808)、1つ以上のクライアントアプリケーションを操作可能であってもよい。ユーザは、クライアントデバイスを用いることにより、クラウドインフラストラクチャシステム902が提供するサービスを要求することなど、クラウドインフラストラクチャシステム902とのやり取りを行い得る。例えば、ユーザは、本開示に記載されているように、クライアントデバイスを使用してチャットボットから情報またはアクションを要求することができる。
いくつかの例において、クラウドインフラストラクチャシステム902が、サービスを提供するために実行する処理は、モデルトレーニングおよび展開を含み得る。この解析は、データセットを使用し、解析し、処理することにより、1つ以上のモデルをトレーニングおよび展開することを含み得る。この解析は、1つ以上のプロセッサが、場合によっては、データを並列に処理し、データを用いてシミュレーションを実行するなどして、実行してもよい。たとえば、チャットボットシステムのために1つ以上のモデルを生成およびトレーニングするために、ビッグデータ解析がクラウドインフラストラクチャシステム902によって実行されてもよい。この解析に使用されるデータは、構造化データ(たとえばデータベースに格納されたデータもしくは構造化モデルに従って構造化されたデータ)および/または非構造化データ(たとえばデータブロブ(blob)(binary large object:バイナリ・ラージ・オブジェクト))を含み得る。
図9の例に示されるように、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステム902が提供する各種クラウドサービスのプロビジョンを容易にするために利用されるインフラストラクチャリソース930を含み得る。インフラストラクチャリソース930は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。特定の例では、アプリケーションから要求されたストレージを処理するために利用可能なストレージ仮想マシンは、クラウドインフラストラクチャシステム902の一部である場合がある。他の例では、ストレージ仮想マシンは、異なるシステムの一部である場合がある。
特定の例において、異なる顧客に対しクラウドインフラストラクチャシステム902が提供する各種クラウドサービスをサポートするためのこれらのリソースを効率的にプロビジョニングし易くするために、リソースを、リソースのセットまたはリソースモジュール(「ポッド」とも処される)にまとめてもよい。各リソースモジュールまたはポッドは、1種類以上のリソースを予め一体化し最適化した組み合わせを含み得る。特定の例において、異なるポッドを異なる種類のクラウドサービスに対して予めプロビジョニングしてもよい。たとえば、第1のポッドセットをデータベースサービスのためにプロビジョニングしてもよく、第1のポッドセット内のポッドと異なるリソースの組み合わせを含み得る第2のポッドセットをJavaサービスなどのためにプロビジョニングしてもよい。いくつかのサービスについて、これらのサービスをプロビジョニングするために割り当てられたリソースをサービス間で共有してもよい。
クラウドインフラストラクチャシステム902自体が、クラウドインフラストラクチャシステム902の異なるコンポーネントによって共有されるとともにクラウドインフラストラクチャシステム902によるサービスのプロビジョニングを容易にするサービス932を、内部で使用してもよい。これらの内部共有サービスは、セキュリティ・アイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウィルススキャン・ホワイトリストサービス、高可用性、バックアップリカバリサービス、クラウドサポートを可能にするサービス、Eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されない。
クラウドインフラストラクチャシステム902は複数のサブシステムを含み得る。これらのサブシステムは、ソフトウェア、またはハードウェア、またはそれらの組み合わせで実現され得る。図9に示されるように、サブシステムは、クラウドインフラストラクチャシステム902のユーザまたは顧客がクラウドインフラストラクチャシステム902とやり取りすることを可能にするユーザインターフェイスサブシステム912を含み得る。ユーザインターフェイスサブシステム912は、ウェブインターフェイス914、クラウドインフラストラクチャシステム902が提供するクラウドサービスが宣伝広告され消費者による購入が可能なオンラインストアインターフェイス916、およびその他のインターフェイス918などの、各種異なるインターフェイスを含み得る。たとえば、顧客は、クライアントデバイスを用いて、クラウドインフラストラクチャシステム902がインターフェイス914、916、および918のうちの1つ以上を用いて提供する1つ以上のサービスを要求(サービス要求934)してもよい。たとえば、顧客は、オンラインストアにアクセスし、クラウドインフラストラクチャシステム902が提供するクラウドサービスをブラウズし、クラウドインフラストラクチャシステム902が提供するとともに顧客が申し込むことを所望する1つ以上のサービスについてサブスクリプションオーダーを行い得る。このサービス要求は、顧客と、顧客が申しむことを所望する1つ以上のサービスを識別する情報を含んでいてもよい。たとえば、顧客は、クラウドインフラストラクチャシステム902によって提供されるサービスの申し込み注文を出すことができる。注文の一部として、顧客は、サービスが提供されるチャットボットシステムを識別する情報と、任意選択でチャットボットシステムの1つ以上の資格情報を提供することができる。
図9に示される例のような特定の例において、クラウドインフラストラクチャシステム902は、新しいオーダーを処理するように構成されたオーダー管理サブシステム(order management subsystem:OMS)920を含み得る。この処理の一部として、OMS920は、既に作成されていなければ顧客のアカウントを作成し、要求されたサービスを顧客に提供するために顧客に対して課金するのに使用する課金および/またはアカウント情報を顧客から受け、顧客情報を検証し、検証後、顧客のためにこのオーダーを予約し、各種ワークフローを調整することにより、プロビジョニングのためにオーダーを準備するように、構成されてもよい。
適切に妥当性確認がなされると、OMS920は、処理、メモリ、およびネットワーキングリソースを含む、このオーダーのためのリソースをプロビジョニングするように構成されたオーダープロビジョニングサブシステム(OPS)924を呼び出し得る。プロビジョニングは、オーダーのためのリソースを割り当てることと、顧客オーダーが要求するサービスを容易にするようにリソースを構成することとを含み得る。オーダーのためにリソースをプロビジョニングするやり方およびプロビジョニングされるリソースのタイプは、顧客がオーダーしたクラウドサービスのタイプに依存し得る。たとえば、あるワークフローに従うと、OPS924を、要求されている特定のクラウドサービスを判断し、この特定のクラウドサービスのために予め構成されたであろうポッドの数を特定するように構成されてもよい。あるオーダーのために割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てるポッドの数は、サービスがサポートすべきユーザの数、サービスが要求されている期間などに基づいて決定してもよい。次に、割り当てられたポッドを、要求されたサービスを提供するために、要求している特定の顧客に合わせてカスタマイズしてもよい。
特定の例では、セットアップ段階処理は、上記のように、クラウドインフラストラクチャシステム902によって、プロビジョニングプロセスの一部として実行され得る。クラウドインフラシステム902は、アプリケーションIDを生成し、クラウドインフラシステム902自体によって提供されるストレージ仮想マシンの中から、またはクラウドインフラシステム902以外の他のシステムによって提供されるストレージ仮想マシンから、アプリケーション用のストレージ仮想マシンを選択することができる。
クラウドインフラストラクチャシステム902は、要求されたサービスがいつ使用できるようになるかを示すために、応答または通知944を、要求している顧客に送ってもよい。いくつかの例において、顧客が、要求したサービスの利益の使用および利用を開始できるようにする情報(たとえばリンク)を顧客に送信してもよい。特定の例では、サービスを要求する顧客に対して、応答は、クラウドインフラストラクチャシステム902によって生成されたチャットボットシステムID、およびチャットボットシステムIDに対応するチャットボットシステムのためにクラウドインフラストラクチャシステム902によって選択されたチャットボットシステムを識別する情報を含み得る。
クラウドインフラストラクチャシステム902はサービスを複数の顧客に提供し得る。各顧客ごとに、クラウドインフラストラクチャシステム902は、顧客から受けた1つ以上のサブスクリプションオーダーに関連する情報を管理し、オーダーに関連する顧客データを維持し、要求されたサービスを顧客に提供する役割を果たす。また、クラウドインフラストラクチャシステム902は、申し込まれたサービスの顧客による使用に関する使用統計を収集してもよい。たとえば、統計は、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップタイムおよびシステムダウンタイムの量などについて、収集されてもよい。この使用情報を用いて顧客に課金してもよい。課金はたとえば月ごとに行ってもよい。
クラウドインフラストラクチャシステム902は、サービスを複数の顧客に並列に提供してもよい。クラウドインフラストラクチャシステム902は、場合によっては著作権情報を含む、これらの顧客についての情報を格納してもよい。特定の例において、クラウドインフラストラクチャシステム902は、顧客の情報を管理するとともに管理される情報を分離することで、ある顧客に関する情報が別の顧客に関する情報からアクセスされないようにするように構成された、アイデンティティ管理サブシステム(IMS)928を含む。IMS928は、情報アクセス管理などのアイデンティティサービス、認証および許可サービス、顧客のアイデンティティおよび役割ならびに関連する能力などを管理するためのサービスなどの、各種セキュリティ関連サービスを提供するように構成されてもよい。
図10は、コンピュータシステム1000の例を示す。いくつかの例では、コンピュータシステム1000は、分散環境内の任意のデジタルアシスタントまたはチャットボットシステムのいずれか、ならびに上記の様々なサーバおよびコンピュータシステムを実現するために用いられ得る。図10に示されるように、コンピュータシステム1000は、バスサブシステム1002を介して他のいくつかのサブシステムと通信する処理サブシステム1004を含むさまざまなサブシステムを含む。これらの他のサブシステムは、処理加速ユニット1006、I/Oサブシステム1008、ストレージサブシステム1018、および通信サブシステム1024を含み得る。ストレージサブシステム1018は、記憶媒体1022およびシステムメモリ1010を含む非一時的なコンピュータ可読記憶媒体を含み得る。
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム1002は単一のバスとして概略的に示されているが、バスサブシステムの代替例は複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバス、およびIEEE P1386.1規格に従って製造されるメザニンバスとして実現され得る周辺コンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスなどを含み得る。
処理サブシステム1004は、コンピュータシステム1000の動作を制御し、1つ以上のプロセッサ、特定用途向け集積回路(ASIC)、またはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。プロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。コンピュータシステム1000の処理リソースを、1つ以上の処理ユニット1032、1034などに組織することができる。処理ユニットは、1つ以上のプロセッサ、同一のまたは異なるプロセッサからの1つ以上のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとのその他の組み合わせを含み得る。いくつかの例において、処理サブシステム1004は、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)などのような1つ以上の専用コプロセッサを含み得る。いくつかの例では、処理サブシステム1004の処理ユニットの一部または全部は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用し得る。
いくつかの例において、処理サブシステム1004内の処理ユニットは、システムメモリ1010またはコンピュータ可読記憶媒体1022に格納された命令を実行し得る。さまざまな例において、処理ユニットはさまざまなプログラムまたはコード命令を実行するとともに、同時に実行する複数のプログラムまたはプロセスを維持し得る。任意の所定の時点で、実行されるべきプログラムコードの一部または全部は、システムメモリ1010および/または潜在的に1つ以上の記憶装置を含むコンピュータ可読記憶媒体1022に常駐していてもよい。適切なプログラミングを介して、処理サブシステム1004は、上述のさまざまな機能を提供し得る。コンピュータシステム1000が1つ以上の仮想マシンを実行している例において、1つ以上の処理ユニットが各仮想マシンに割り当ててもよい。
特定の例において、コンピュータシステム1000によって実行される全体的な処理を加速するように、カスタマイズされた処理を実行するために、または処理サブシステム1004によって実行される処理の一部をオフロードするために、処理加速ユニット1006を任意に設けることができる。
I/Oサブシステム1008は、コンピュータシステム1000に情報を入力するための、および/またはコンピュータシステム1000から、もしくはコンピュータシステム1000を介して、情報を出力するための、デバイスおよび機構を含むことができる。一般に、「入力デバイス」という語の使用は、コンピュータシステム1000に情報を入力するためのすべての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、たとえば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御しそれと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび音声コマンドを用いる入力を受信するためのインターフェイスを提供するデバイスなど、モーションセンシングおよび/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行っている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
ユーザインターフェイス入力デバイスの他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されない。また、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、および医療用超音波検査デバイスなどの医療用画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
一般に、出力デバイスという語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するための考えられるすべてのタイプのデバイスおよび機構を含むことを意図している。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどのような非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使うものなどのフラットパネルデバイス、計画デバイス、タッチスクリーンなどであってもよい。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されない。
ストレージサブシステム1018は、コンピュータシステム1000によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1018は、いくつかの例の機能を提供する基本的なプログラミングおよびデータ構成を格納するための有形の非一時的なコンピュータ可読記憶媒体を提供する。処理サブシステム1004によって実行されると上述の機能を提供するソフトウェア(たとえばプログラム、コードモジュール、命令)が、ストレージサブシステム1018に格納されてもよい。ソフトウェアは、処理サブシステム1004の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム1018はまた、本開示の教示に従って認証を提供してもよい。
ストレージサブシステム1018は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的メモリデバイスを含み得る。図10に示すように、ストレージサブシステム1018は、システムメモリ1010およびコンピュータ可読記憶媒体1022を含む。システムメモリ1010は、プログラム実行中に命令およびデータを格納するための揮発性主ランダムアクセスメモリ(RAM)と、固定命令が格納される不揮発性読取り専用メモリ(ROM)またはフラッシュメモリとを含む、いくつかのメモリを含み得る。いくつかの実現例において、起動中などにコンピュータシステム1000内の要素間における情報の転送を助ける基本的なルーチンを含むベーシックインプット/アウトプットシステム(basic input/output system:BIOS)は、典型的には、ROMに格納されてもよい。典型的に、RAMは、処理サブシステム1004によって現在操作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ1010は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)などのような複数の異なるタイプのメモリを含み得る。
一例として、限定を伴うことなく、図10に示されるように、システムメモリ1010は、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのような各種アプリケーションを含み得る、実行中のアプリケーションプログラム1012、プログラムデータ1014、およびオペレーティングシステム1016を、ロードしてもよい。一例として、オペレーティングシステム1016は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinuxオペレーティングシステム、市販されているさまざまなUNIX(登録商標)またはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、および/または、iOS(登録商標)、Windows Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSオペレーティングシステムのようなさまざまなバージョンのモバイルオペレーティングシステムなどを、含み得る。
コンピュータ可読記憶媒体1022は、いくつかの例の機能を提供するプログラミングおよびデータ構成を格納することができる。コンピュータ可読記憶媒体1022は、コンピュータシステム1000のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供することができる。処理サブシステム1004によって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1018に格納されてもよい。一例として、コンピュータ可読記憶媒体1022は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスクなどの光ディスクドライブ、またはその他の光学媒体のような不揮発性メモリを含み得る。コンピュータ可読記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されない。コンピュータ可読記憶媒体1022は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどのような不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMのような揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
特定の例において、ストレージサブシステム1018は、コンピュータ可読記憶媒体1022にさらに接続可能なコンピュータ可読記憶媒体リーダ1020も含み得る。リーダ1020は、ディスク、フラッシュドライブなどのようなメモリデバイスからデータを受け、読取るように構成されてもよい。
特定の例において、コンピュータシステム1000は、処理およびメモリリソースの仮想化を含むがこれに限定されない仮想化技術をサポートし得る。たとえば、コンピュータシステム1000は、1つ以上の仮想マシンを実行するためのサポートを提供し得る。特定の例において、コンピュータシステム1000は、仮想マシンの構成および管理を容易にするハイパーバイザなどのプログラムを実行し得る。各仮想マシンには、メモリ、演算(たとえばプロセッサ、コア)、I/O、およびネットワーキングリソースを割り当てられてもよい。各仮想マシンは通常、他の仮想マシンから独立して実行される。仮想マシンは、典型的には、コンピュータシステム1000によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであり得るかまたは異なり得るそれ自体のオペレーティングシステムを実行する。したがって、潜在的に複数のオペレーティングシステムがコンピュータシステム1000によって同時に実行され得る。
通信サブシステム1024は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間のデータの送受のためのインターフェイスとして機能する。たとえば、通信サブシステム1024は、コンピュータシステム1000が、1つ以上のクライアントデバイスとの間で情報を送受信するために、インターネットを介して1つ以上のクライアントデバイスへの通信チャネルを確立することを可能にし得る。例えば、コンピュータシステム1000が、図1に示されるボットシステム120を実現するために使用される場合、通信サブシステムは、アプリケーション用に選択されたチャットボットシステムと通信するために使用され得る。
通信サブシステム1024は、有線および/または無線通信プロトコルの両方をサポートし得る。ある例において、通信サブシステム1024は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.XXファミリー規格、もしくは他のモバイル通信技術、またはそれらのいずれかの組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの例において、通信サブシステム1024は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続(たとえばEthernet(登録商標))を提供し得る。
通信サブシステム1024は、さまざまな形式でデータを受信および送信し得る。いくつかの例において、通信サブシステム1024は、他の形式に加えて、構造化データフィードおよび/または非構造化データフィード1026、イベントストリーム1028、イベントアップデート1030などの形式で入力通信を受信してもよい。たとえば、通信サブシステム1024は、ソーシャルメディアネットワークおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)アップデート、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイムアップデートなどのような他の通信サービスのユーザから、リアルタイムでデータフィード1026を受信(または送信)するように構成されてもよい。
特定の例において、通信サブシステム1024は、連続データストリームの形式でデータを受信するように構成されてもよく、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム1028および/またはイベントアップデート1030を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどを挙げることができる。
通信サブシステム1024は、コンピュータシステム1000からのデータを他のコンピュータシステムまたはネットワークに伝えるように構成されてもよい。このデータは、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベントアップデート1030などのような各種異なる形式で、コンピュータシステム1000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに、伝えられてもよい。
コンピュータシステム1000は、ハンドヘルドポータブルデバイス(たとえばiPhone(登録商標)セルラーフォン、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのうちの1つであればよい。コンピュータおよびネットワークの性質が常に変化しているため、図10に示されるコンピュータシステム1000の記載は、具体的な例として意図されているに過ぎない。図10に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有するその他多くの構成が可能である。本明細書における開示および教示に基づいて、さまざまな例を実現するための他の態様および/または方法があることが認識されるはずである。
特定の例について説明したが、さまざまな変形、変更、代替構成、および均等物が可能である。例は、特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作させることができる。さらに、例を特定の一連のトランザクションおよびステップを使用して説明したが、これが限定を意図しているのではないことは当業者には明らかであるはずである。いくつかのフローチャートは動作を逐次的プロセスとして説明しているが、これらの動作のうちの多くは並列または同時に実行されてもよい。加えて、動作の順序を再指定してもよい。プロセスは図に含まれない追加のステップを有し得る。上記の例の各種特徴および局面は、個別に使用されてもよく、またはともに使用されてもよい。
さらに、特定の例をハードウェアとソフトウェアとの特定の組み合わせを用いて説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であることが理解されるはずである。特定の例は、ハードウェアでのみ、またはソフトウェアでのみ、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現されてもよい。
デバイス、システム、コンポーネントまたはモジュールが特定の動作または機能を実行するように構成されると記載されている場合、そのような構成は、たとえば、動作を実行するように電子回路を設計することにより、動作を実行するようにプログラミング可能な電子回路(マイクロプロセッサなど)をプログラミングすることにより、たとえば、非一時的なメモリ媒体に格納されたコードもしくは命令またはそれらの任意の組み合わせを実行するようにプログラミングされたコンピュータ命令もしくはコード、またはプロセッサもしくはコアを実行するなどにより、達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、異なる対のプロセスは異なる技術を使用してもよく、同じ対のプロセスは異なる時間に異なる技術を使用してもよい。
本開示では具体的な詳細を示すことにより例が十分に理解されるようにしている。しかしながら、例はこれらの具体的な詳細がなくとも実施し得るものである。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技術は、例が曖昧にならないようにするために不必要な詳細事項なしで示している。本明細書は例示的な例のみを提供し、他の例の範囲、適用可能性、または構成を限定するよう意図されたものではない。むしろ、例の上記説明は、各種例を実現することを可能にする説明を当業者に提供する。要素の機能および構成の範囲内でさまざまな変更が可能である。
したがって、明細書および図面は、限定的な意味ではなく例示的なものとみなされるべきである。しかしながら、請求項に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がこれらになされ得ることは明らかであろう。このように、具体的な例を説明してきたが、これらは限定を意図するものではない。さまざまな変形例および同等例は添付の特許請求の範囲内にある。
上記の明細書では、本開示の局面についてその具体的な例を参照して説明しているが、本開示はそれに限定されるものではないということを当業者は認識するであろう。上記の開示のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、例は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
上記の説明では、例示の目的で、方法を特定の順序で記載した。代替の例では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させてもよいマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、CD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリのような、1つ以上の機械可読媒体、または電子命令を記憶するのに適した他の種類の機械可読媒体に保存できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
構成要素が特定の動作を実行するように構成されるとして記載されている場合、そのような構成は、たとえば、特定の動作を実行するよう電子回路もしくは他のハードウェアを設計すること、特定の動作を実行するようプログラミング可能な電子回路(たとえばマイクロプロセッサもしくは他の好適な電子回路)をプログラミングすること、またはそれらの任意の組み合わせによって達成されてもよい。
本願の説明のための例をここに詳細に記載したが、本発明の概念は、他の態様で様々に具現化および採用され得ること、および特許請求の範囲は、先行技術によって制限される場合を除き、そのような変形を含むように解釈されるよう意図されることを理解されたい。
Claims (20)
- 方法であって、
機械学習モデルのハイパーパラメータがチューニングされるべき複数のメトリックを選択することを含み、各メトリックは、前記メトリックのターゲットスコア、ペナルティ係数、およびボーナス係数を含む複数の仕様パラメータに関連付けられ、前記方法はさらに、
前記複数のメトリックの各メトリックに対する前記複数の仕様パラメータを、第1の基準に従って設定することと、
1つ以上の検証データセットを使用して前記機械学習モデルを評価して、前記複数のメトリックの各メトリックについてメトリックスコアを取得することと、
前記メトリックスコアと各メトリックの前記ターゲットスコアとの差、前記ペナルティ係数または前記ボーナス係数に基づいて重み付き損失関数を定式化することと、
前記重み付き損失関数を最適化するために、前記機械学習モデルに関連付けられる前記ハイパーパラメータをチューニングすることと、
前記重み付き損失関数が最適化されることに応答して、前記機械学習モデルを、検証された機械学習モデルとして提供することとを含む、方法。 - 前記複数の仕様パラメータを設定することは、前記第1の基準に従って、前記ターゲットスコア、前記ペナルティ係数、および前記ボーナス係数の値を設定することを含む、請求項1に記載の方法。
- 前記重み付き損失関数を定式化することは、さらに、
各メトリックについて、前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも大きいと判断することに応答して、前記メトリックスコアと前記ターゲットスコアとの前記差に、前記ボーナス係数を、前記メトリックに関連付けられる重みとして割り当てることと、
前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも低いと判断することに応答して、前記ターゲットスコアと前記メトリックスコアとの前記差に、前記ペナルティ係数を、前記メトリックに関連付けられる前記重みとして割り当てることとを含む、請求項2に記載の方法。 - 前記複数のメトリックは、少なくとも、前記機械学習モデルのサイズ、前記機械学習モデルのトレーニング時間、前記機械学習モデルの正解率、前記機械学習モデルの安定性、前記機械学習モデルの回帰誤差、および前記機械学習モデルの信頼度スコアを含む、請求項1に記載の方法。
- 前記第1の基準は、前記機械学習モデルの回帰誤差を最小化することに対応し、前記設定することは、前記ボーナス係数に第1の値を割り当てることと、前記ペナルティ係数に第2の値を割り当てることとを含み、前記第2の値は前記第1の値よりも大きい、請求項2に記載の方法。
- 前記機械学習モデルに関連付けられる前記ハイパーパラメータをチューニングすることは、さらに、
(i)前記ハイパーパラメータの初期値を選択することを含み、前記機械学習モデルは、前記初期値に基づいて構成され、前記機械学習モデルに関連付けられる前記ハイパーパラメータをチューニングすることは、さらに、
(ii)前記ハイパーパラメータの前記初期値を使用して前記重み付き損失関数を評価することと、
(iii)前記評価に基づいて前記重み付き損失関数が最適化されるかどうかを判断することと、
(iv)前記重み付き損失関数が最適化されていないことに応答して、前記ハイパーパラメータのための新たな値を探索し、前記機械学習モデルを前記新たな値で再構成し、前記再構成された機械学習モデルを使用してステップ(ii)~(iii)を繰り返すこととを含む、請求項1に記載の方法。 - 前記機械学習モデルはニューラルネットワークモデルであり、前記機械学習モデルに関連付けられるハイパーパラメータは、少なくとも、前記機械学習モデルの層の数、前記機械学習モデルの学習率、前記機械学習モデルの各層内の隠れユニットの数、前記機械学習モデルをトレーニングするために利用される学習アルゴリズムを含む、請求項1に記載の方法。
- コンピューティングデバイスであって、
プロセッサと、
命令を含むメモリとを備え、前記命令は、前記プロセッサによって実行されると、前記コンピューティングデバイスに、少なくとも、
機械学習モデルのハイパーパラメータがチューニングされるべき複数のメトリックを選択させ、各メトリックは、前記メトリックのターゲットスコア、ペナルティ係数、およびボーナス係数を含む複数の仕様パラメータに関連付けられ、前記命令は、さらに、前記プロセッサによって実行されると、前記コンピューティングデバイスに、少なくとも、
前記複数のメトリックの各メトリックに対する前記複数の仕様パラメータを、第1の基準に従って設定させ、
1つ以上の検証データセットを使用して前記機械学習モデルを評価させて、前記複数のメトリックの各メトリックについてメトリックスコアを取得させ、
前記メトリックスコアと各メトリックの前記ターゲットスコアとの差、前記ペナルティ係数または前記ボーナス係数に基づいて重み付き損失関数を定式化させ、
前記重み付き損失関数を最適化するために、前記機械学習モデルに関連付けられる前記ハイパーパラメータをチューニングさせ、
前記重み付き損失関数が最適化されることに応答して、前記機械学習モデルを、検証された機械学習モデルとして提供させる、コンピューティングデバイス。 - 前記複数の仕様パラメータを設定することは、前記第1の基準に従って、前記ターゲットスコア、前記ペナルティ係数、および前記ボーナス係数の値を設定することを含む、請求項8に記載のコンピューティングデバイス。
- 前記プロセッサは、さらに、前記重み付き損失関数を定式化するように構成され、前記定式化するように構成されることは、
各メトリックについて、前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも大きいと判断することに応答して、前記メトリックスコアと前記ターゲットスコアとの前記差に、前記ボーナス係数を、前記メトリックに関連付けられる重みとして割り当てることと、
前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも低いと判断することに応答して、前記ターゲットスコアと前記メトリックスコアとの前記差に、前記ペナルティ係数を、前記メトリックに関連付けられる前記重みとして割り当てることととによって行われる、請求項9に記載のコンピューティングデバイス。 - 前記複数のメトリックは、少なくとも、前記機械学習モデルのサイズ、前記機械学習モデルのトレーニング時間、前記機械学習モデルの正解率、前記機械学習モデルの安定性、前記機械学習モデルの回帰誤差、および前記機械学習モデルの信頼度スコアを含む、請求項8に記載のコンピューティングデバイス。
- 前記第1の基準は、前記機械学習モデルの回帰誤差を最小化することに対応し、前記設定することは、前記ボーナス係数に第1の値を割り当てることと、前記ペナルティ係数に第2の値を割り当てることとを含み、前記第2の値は前記第1の値よりも大きい、請求項9に記載のコンピューティングデバイス。
- 前記プロセッサは、
(i)前記ハイパーパラメータの初期値を選択するよう構成され、前記機械学習モデルは、前記初期値に基づいて構成され、前記プロセッサはさらに、
(ii)前記ハイパーパラメータの前記初期値を使用して前記重み付き損失関数を評価し、
(iii)前記評価に基づいて前記重み付き損失関数が最適化されるかどうかを判断し、
(iv)前記重み付き損失関数が最適化されていないことに応答して、前記ハイパーパラメータのための新たな値を探索し、前記機械学習モデルを前記新たな値で再構成し、前記再構成された機械学習モデルを使用してステップ(ii)~(iii)を繰り返すよう構成される、請求項8に記載のコンピューティングデバイス。 - 前記機械学習モデルはニューラルネットワークモデルであり、前記機械学習モデルに関連付けられるハイパーパラメータは、少なくとも、前記機械学習モデルの層の数、前記機械学習モデルの学習率、前記機械学習モデルの各層内の隠れユニットの数、前記機械学習モデルをトレーニングするために利用される学習アルゴリズムを含む、請求項8に記載のコンピューティングデバイス。
- 特定のコンピュータ実行可能命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、コンピュータシステムに、少なくとも、
機械学習モデルのハイパーパラメータがチューニングされるべき複数のメトリックを選択させ、各メトリックは、前記メトリックのターゲットスコア、ペナルティ係数、およびボーナス係数を含む複数の仕様パラメータに関連付けられ、前記命令は、さらに、前記プロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
前記複数のメトリックの各メトリックに対する前記複数の仕様パラメータを、第1の基準に従って設定させ、
1つ以上の検証データセットを使用して前記機械学習モデルを評価させて、前記複数のメトリックの各メトリックについてメトリックスコアを取得させ、
前記メトリックスコアと各メトリックの前記ターゲットスコアとの差、前記ペナルティ係数または前記ボーナス係数に基づいて重み付き損失関数を定式化させ、
前記重み付き損失関数を最適化するために、前記機械学習モデルに関連付けられる前記ハイパーパラメータをチューニングさせ、
前記重み付き損失関数が最適化されることに応答して、前記機械学習モデルを、検証された機械学習モデルとして提供させる、非一時的コンピュータ可読媒体。 - 前記複数の仕様パラメータを設定することは、前記第1の基準に従って、前記ターゲットスコア、前記ペナルティ係数、および前記ボーナス係数の値を設定することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
- 前記コンピュータシステムは、さらに、前記重み付き損失関数を定式化するように構成され、前記定式化するように構成されることは、
各メトリックについて、前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも大きいと判断することに応答して、前記メトリックスコアと前記ターゲットスコアとの前記差に、前記ボーナス係数を、前記メトリックに関連付けられる重みとして割り当てることと、
前記メトリックスコアが前記メトリックの前記ターゲットスコアよりも低いと判断することに応答して、前記ターゲットスコアと前記メトリックスコアとの前記差に、前記ペナルティ係数を、前記メトリックに関連付けられる前記重みとして割り当てることととによって行われる、請求項16に記載の非一時的コンピュータ可読媒体。 - 前記複数のメトリックは、少なくとも、前記機械学習モデルのサイズ、前記機械学習モデルのトレーニング時間、前記機械学習モデルの正解率、前記機械学習モデルの安定性、前記機械学習モデルの回帰誤差、および前記機械学習モデルの信頼度スコアを含む、請求項15に記載の非一時的コンピュータ可読媒体。
- 前記第1の基準は、前記機械学習モデルの回帰誤差を最小化することに対応し、前記設定することは、前記ボーナス係数に第1の値を割り当てることと、前記ペナルティ係数に第2の値を割り当てることとを含み、前記第2の値は前記第1の値よりも大きい、請求項16に記載の非一時的コンピュータ可読媒体。
- 前記コンピュータシステムは、さらに、
(i)前記ハイパーパラメータの初期値を選択するよう構成され、前記機械学習モデルは、前記初期値に基づいて構成され、前記コンピュータシステムはさらに、
(ii)前記ハイパーパラメータの前記初期値を使用して前記重み付き損失関数を評価し、
(iii)前記評価に基づいて前記重み付き損失関数が最適化されるかどうかを判断し、
(iv)前記重み付き損失関数が最適化されていないことに応答して、前記ハイパーパラメータのための新たな値を探索し、前記機械学習モデルを前記新たな値で再構成し、前記再構成された機械学習モデルを使用してステップ(ii)~(iii)を繰り返すよう構成される、請求項16に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063002159P | 2020-03-30 | 2020-03-30 | |
US63/002,159 | 2020-03-30 | ||
US202063119577P | 2020-11-30 | 2020-11-30 | |
US63/119,577 | 2020-11-30 | ||
US17/216,498 | 2021-03-29 | ||
US17/216,496 | 2021-03-29 | ||
US17/216,498 US20210304074A1 (en) | 2020-03-30 | 2021-03-29 | Method and system for target based hyper-parameter tuning |
US17/216,496 US20210304003A1 (en) | 2020-03-30 | 2021-03-29 | Method and system for constraint based hyperparameter tuning |
PCT/US2021/024953 WO2021202576A1 (en) | 2020-03-30 | 2021-03-30 | Method and system for target based hyper-parameter tuning |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023520415A true JP2023520415A (ja) | 2023-05-17 |
JPWO2021202576A5 JPWO2021202576A5 (ja) | 2024-03-27 |
Family
ID=77856190
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022559629A Pending JP2023520415A (ja) | 2020-03-30 | 2021-03-30 | ターゲットに基づくハイパーパラメータチューニングのための方法およびシステム |
JP2022559647A Pending JP2023520425A (ja) | 2020-03-30 | 2021-03-30 | 制約に基づくハイパーパラメータチューニングのための方法およびシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022559647A Pending JP2023520425A (ja) | 2020-03-30 | 2021-03-30 | 制約に基づくハイパーパラメータチューニングのための方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (2) | US20210304003A1 (ja) |
EP (2) | EP4127962A1 (ja) |
JP (2) | JP2023520415A (ja) |
CN (2) | CN115398418A (ja) |
WO (2) | WO2021202576A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569335B (en) * | 2017-12-13 | 2022-07-27 | Sage Global Services Ltd | Chatbot system |
US11463386B2 (en) * | 2020-09-23 | 2022-10-04 | Capital One Services, Llc | Systems and methods for generating conversational responses using machine learning models |
US11870651B2 (en) * | 2021-11-29 | 2024-01-09 | Sap Se | Landscape model verification system |
WO2023196879A2 (en) * | 2022-04-05 | 2023-10-12 | Thrive Technologies, Inc | Systems and processes for optimizing inventory |
US12026254B2 (en) * | 2022-06-17 | 2024-07-02 | Optum, Inc. | Prediction model selection for cyber security |
CN115277073B (zh) * | 2022-06-20 | 2024-02-06 | 北京邮电大学 | 信道传输的方法、装置、电子设备及介质 |
US20240044961A1 (en) * | 2022-08-04 | 2024-02-08 | Viasat, Inc. | Machine learning based tuning of radio frequency apparatuses |
CN115827171B (zh) * | 2023-01-31 | 2023-05-23 | 阿里巴巴达摩院(杭州)科技有限公司 | 云端调参***、调参方法及调参*** |
US12008409B1 (en) * | 2023-05-02 | 2024-06-11 | The Strategic Coach Inc. | Apparatus and a method for determining resource distribution |
CN116301282B (zh) * | 2023-05-16 | 2023-08-01 | 中诚华隆计算机技术有限公司 | 一种多核处理器芯片的低功耗控制方法和装置 |
CN116738239B (zh) * | 2023-08-11 | 2023-11-24 | 浙江菜鸟供应链管理有限公司 | 模型训练方法、资源调度方法及装置、***、设备及介质 |
CN116991429B (zh) * | 2023-09-28 | 2024-01-16 | 之江实验室 | 计算机程序的编译调优方法、装置和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572823B1 (en) * | 2016-12-13 | 2020-02-25 | Ca, Inc. | Optimizing a malware detection model using hyperparameters |
US10217061B2 (en) * | 2017-05-17 | 2019-02-26 | SigOpt, Inc. | Systems and methods implementing an intelligent optimization platform |
US20190019108A1 (en) * | 2017-07-13 | 2019-01-17 | General Electric Company | Systems and methods for a validation tree |
US20190236487A1 (en) * | 2018-01-30 | 2019-08-01 | Microsoft Technology Licensing, Llc | Machine learning hyperparameter tuning tool |
US10635939B2 (en) * | 2018-07-06 | 2020-04-28 | Capital One Services, Llc | System, method, and computer-accessible medium for evaluating multi-dimensional synthetic data using integrated variants analysis |
EP3620996A1 (en) * | 2018-09-04 | 2020-03-11 | Siemens Aktiengesellschaft | Transfer learning of a machine-learning model using a hyperparameter response model |
US20200372307A1 (en) * | 2019-05-22 | 2020-11-26 | Adobe Inc. | Model insights framework for providing insight based on model evaluations to optimize machine learning models |
US20210304056A1 (en) * | 2020-03-25 | 2021-09-30 | International Business Machines Corporation | Learning Parameter Sampling Configuration for Automated Machine Learning |
-
2021
- 2021-03-29 US US17/216,496 patent/US20210304003A1/en active Pending
- 2021-03-29 US US17/216,498 patent/US20210304074A1/en active Pending
- 2021-03-30 JP JP2022559629A patent/JP2023520415A/ja active Pending
- 2021-03-30 CN CN202180025672.6A patent/CN115398418A/zh active Pending
- 2021-03-30 JP JP2022559647A patent/JP2023520425A/ja active Pending
- 2021-03-30 WO PCT/US2021/024953 patent/WO2021202576A1/en unknown
- 2021-03-30 WO PCT/US2021/024950 patent/WO2021202573A1/en unknown
- 2021-03-30 EP EP21721259.6A patent/EP4127962A1/en active Pending
- 2021-03-30 EP EP21721669.6A patent/EP4127963A1/en active Pending
- 2021-03-30 CN CN202180025698.0A patent/CN115398419A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021202573A1 (en) | 2021-10-07 |
CN115398419A (zh) | 2022-11-25 |
US20210304074A1 (en) | 2021-09-30 |
US20210304003A1 (en) | 2021-09-30 |
CN115398418A (zh) | 2022-11-25 |
JP2023520425A (ja) | 2023-05-17 |
EP4127962A1 (en) | 2023-02-08 |
EP4127963A1 (en) | 2023-02-08 |
WO2021202576A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11657797B2 (en) | Routing for chatbots | |
US20210304075A1 (en) | Batching techniques for handling unbalanced training data for a chatbot | |
US20210304003A1 (en) | Method and system for constraint based hyperparameter tuning | |
JP2022547631A (ja) | 自然言語処理のためのストップワードデータ拡張 | |
JP2023520416A (ja) | ドメイン外(ood)検出のための改良された技術 | |
US20220230000A1 (en) | Multi-factor modelling for natural language processing | |
US20220172021A1 (en) | Method and system for over-prediction in neural networks | |
US20210319347A1 (en) | Fast and scalable multi-tenant serve pool for chatbots | |
US20220100961A1 (en) | Automatic out of scope transition for chatbot | |
JP2023538923A (ja) | テキスト分類についての説明を与えるための技術 | |
US20230098783A1 (en) | Framework for focused training of language models and techniques for end-to-end hypertuning of the framework | |
US20220230462A1 (en) | Usage based resource utilization of training pool for chatbots | |
US20220229991A1 (en) | Multi-feature balancing for natural language processors | |
US20240086767A1 (en) | Continuous hyper-parameter tuning with automatic domain weight adjustment based on periodic performance checkpoints | |
US20240095584A1 (en) | Objective function optimization in target based hyperparameter tuning | |
US20230080553A1 (en) | Adjusting outlier data points for training a machine-learning model | |
US20230136965A1 (en) | Prohibiting inconsistent named entity recognition tag sequences | |
US20230161963A1 (en) | System and techniques for handling long text for pre-trained language models | |
WO2023091436A1 (en) | System and techniques for handling long text for pre-trained language models | |
KR20240111760A (ko) | 자연어 프로세싱을 위한 경로 드롭아웃 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240314 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240314 |